@convex-dev/better-auth 0.8.0-alpha.9 → 0.8.1

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 (301) 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 -601
  18. package/dist/commonjs/client/index.d.ts.map +1 -1
  19. package/dist/commonjs/client/index.js +337 -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/schema.d.ts +451 -207
  30. package/dist/commonjs/component/schema.d.ts.map +1 -1
  31. package/dist/commonjs/component/schema.js +50 -177
  32. package/dist/commonjs/component/schema.js.map +1 -1
  33. package/dist/commonjs/component/util.d.ts.map +1 -1
  34. package/dist/commonjs/nextjs/index.d.ts +1 -2
  35. package/dist/commonjs/nextjs/index.d.ts.map +1 -1
  36. package/dist/commonjs/nextjs/index.js +3 -2
  37. package/dist/commonjs/nextjs/index.js.map +1 -1
  38. package/dist/commonjs/plugins/convex/client.d.ts +2 -5
  39. package/dist/commonjs/plugins/convex/client.d.ts.map +1 -1
  40. package/dist/commonjs/plugins/convex/client.js.map +1 -1
  41. package/dist/commonjs/plugins/convex/index.d.ts +7 -134
  42. package/dist/commonjs/plugins/convex/index.d.ts.map +1 -1
  43. package/dist/commonjs/plugins/convex/index.js +10 -125
  44. package/dist/commonjs/plugins/convex/index.js.map +1 -1
  45. package/dist/commonjs/plugins/cross-domain/index.js +2 -2
  46. package/dist/commonjs/plugins/cross-domain/index.js.map +1 -1
  47. package/dist/commonjs/react-start/index.d.ts +17 -36
  48. package/dist/commonjs/react-start/index.d.ts.map +1 -1
  49. package/dist/commonjs/react-start/index.js +42 -31
  50. package/dist/commonjs/react-start/index.js.map +1 -1
  51. package/dist/commonjs/src/auth.d.ts +3085 -0
  52. package/dist/commonjs/src/auth.d.ts.map +1 -0
  53. package/dist/commonjs/src/auth.js +72 -0
  54. package/dist/commonjs/src/auth.js.map +1 -0
  55. package/dist/commonjs/src/client/adapter.d.ts +18 -0
  56. package/dist/commonjs/src/client/adapter.d.ts.map +1 -0
  57. package/dist/commonjs/src/client/adapter.js +211 -0
  58. package/dist/commonjs/src/client/adapter.js.map +1 -0
  59. package/dist/commonjs/src/client/createSchema.d.ts +25 -0
  60. package/dist/commonjs/src/client/createSchema.d.ts.map +1 -0
  61. package/dist/commonjs/src/client/createSchema.js +103 -0
  62. package/dist/commonjs/src/client/createSchema.js.map +1 -0
  63. package/dist/commonjs/src/client/index.d.ts +3310 -0
  64. package/dist/commonjs/src/client/index.d.ts.map +1 -0
  65. package/dist/commonjs/src/client/index.js +377 -0
  66. package/dist/commonjs/src/client/index.js.map +1 -0
  67. package/dist/commonjs/src/client/plugins/index.d.ts +3 -0
  68. package/dist/commonjs/src/client/plugins/index.d.ts.map +1 -0
  69. package/dist/commonjs/src/client/plugins/index.js +3 -0
  70. package/dist/commonjs/src/client/plugins/index.js.map +1 -0
  71. package/dist/commonjs/src/component/_generated/api.d.ts +12 -0
  72. package/dist/commonjs/src/component/_generated/api.d.ts.map +1 -0
  73. package/dist/commonjs/src/component/_generated/api.js +22 -0
  74. package/dist/commonjs/src/component/_generated/api.js.map +1 -0
  75. package/dist/commonjs/src/component/_generated/server.d.ts +64 -0
  76. package/dist/commonjs/src/component/_generated/server.d.ts.map +1 -0
  77. package/dist/commonjs/src/component/_generated/server.js +74 -0
  78. package/dist/commonjs/src/component/_generated/server.js.map +1 -0
  79. package/dist/commonjs/src/component/adapter.d.ts +355 -0
  80. package/dist/commonjs/src/component/adapter.d.ts.map +1 -0
  81. package/dist/commonjs/src/component/adapter.js +573 -0
  82. package/dist/commonjs/src/component/adapter.js.map +1 -0
  83. package/dist/commonjs/src/component/adapterTest.d.ts +18 -0
  84. package/dist/commonjs/src/component/adapterTest.d.ts.map +1 -0
  85. package/dist/commonjs/src/component/adapterTest.js +75 -0
  86. package/dist/commonjs/src/component/adapterTest.js.map +1 -0
  87. package/dist/commonjs/src/component/convex.config.d.ts +3 -0
  88. package/dist/commonjs/src/component/convex.config.d.ts.map +1 -0
  89. package/dist/commonjs/src/component/convex.config.js +4 -0
  90. package/dist/commonjs/src/component/convex.config.js.map +1 -0
  91. package/dist/commonjs/src/component/schema.d.ts +562 -0
  92. package/dist/commonjs/src/component/schema.d.ts.map +1 -0
  93. package/dist/commonjs/src/component/schema.js +217 -0
  94. package/dist/commonjs/src/component/schema.js.map +1 -0
  95. package/dist/commonjs/src/nextjs/index.d.ts +10 -0
  96. package/dist/commonjs/src/nextjs/index.d.ts.map +1 -0
  97. package/dist/commonjs/src/nextjs/index.js +43 -0
  98. package/dist/commonjs/src/nextjs/index.js.map +1 -0
  99. package/dist/commonjs/src/plugins/convex/client.d.ts +9 -0
  100. package/dist/commonjs/src/plugins/convex/client.d.ts.map +1 -0
  101. package/dist/commonjs/src/plugins/convex/client.js +7 -0
  102. package/dist/commonjs/src/plugins/convex/client.js.map +1 -0
  103. package/dist/commonjs/src/plugins/convex/index.d.ts +415 -0
  104. package/dist/commonjs/src/plugins/convex/index.d.ts.map +1 -0
  105. package/dist/commonjs/src/plugins/convex/index.js +354 -0
  106. package/dist/commonjs/src/plugins/convex/index.js.map +1 -0
  107. package/dist/commonjs/src/plugins/cross-domain/client.d.ts +132 -0
  108. package/dist/commonjs/src/plugins/cross-domain/client.d.ts.map +1 -0
  109. package/dist/commonjs/src/plugins/cross-domain/client.js +176 -0
  110. package/dist/commonjs/src/plugins/cross-domain/client.js.map +1 -0
  111. package/dist/commonjs/src/plugins/cross-domain/index.d.ts +83 -0
  112. package/dist/commonjs/src/plugins/cross-domain/index.d.ts.map +1 -0
  113. package/dist/commonjs/src/plugins/cross-domain/index.js +153 -0
  114. package/dist/commonjs/src/plugins/cross-domain/index.js.map +1 -0
  115. package/dist/commonjs/src/plugins/index.d.ts +3 -0
  116. package/dist/commonjs/src/plugins/index.d.ts.map +1 -0
  117. package/dist/commonjs/src/plugins/index.js +3 -0
  118. package/dist/commonjs/src/plugins/index.js.map +1 -0
  119. package/dist/commonjs/src/react/client.d.ts +31 -0
  120. package/dist/commonjs/src/react/client.d.ts.map +1 -0
  121. package/dist/commonjs/src/react/client.js +96 -0
  122. package/dist/commonjs/src/react/client.js.map +1 -0
  123. package/dist/commonjs/src/react/index.d.ts +9 -0
  124. package/dist/commonjs/src/react/index.d.ts.map +1 -0
  125. package/dist/commonjs/src/react/index.js +15 -0
  126. package/dist/commonjs/src/react/index.js.map +1 -0
  127. package/dist/commonjs/src/react-start/index.d.ts +45 -0
  128. package/dist/commonjs/src/react-start/index.d.ts.map +1 -0
  129. package/dist/commonjs/src/react-start/index.js +60 -0
  130. package/dist/commonjs/src/react-start/index.js.map +1 -0
  131. package/dist/commonjs/src/utils/index.d.ts +9 -0
  132. package/dist/commonjs/src/utils/index.d.ts.map +1 -0
  133. package/dist/commonjs/src/utils/index.js +35 -0
  134. package/dist/commonjs/src/utils/index.js.map +1 -0
  135. package/dist/esm/auth.d.ts +4 -0
  136. package/dist/esm/auth.d.ts.map +1 -0
  137. package/dist/esm/auth.js +44 -0
  138. package/dist/esm/auth.js.map +1 -0
  139. package/dist/esm/client/adapter.d.ts +8 -10
  140. package/dist/esm/client/adapter.d.ts.map +1 -1
  141. package/dist/esm/client/adapter.js +48 -32
  142. package/dist/esm/client/adapter.js.map +1 -1
  143. package/dist/esm/client/adapterUtils.d.ts +66 -0
  144. package/dist/esm/client/adapterUtils.d.ts.map +1 -0
  145. package/dist/esm/client/adapterUtils.js +429 -0
  146. package/dist/esm/client/adapterUtils.js.map +1 -0
  147. package/dist/esm/client/createSchema.d.ts +24 -0
  148. package/dist/esm/client/createSchema.d.ts.map +1 -0
  149. package/dist/esm/client/createSchema.js +101 -0
  150. package/dist/esm/client/createSchema.js.map +1 -0
  151. package/dist/esm/client/index.d.ts +449 -601
  152. package/dist/esm/client/index.d.ts.map +1 -1
  153. package/dist/esm/client/index.js +337 -212
  154. package/dist/esm/client/index.js.map +1 -1
  155. package/dist/esm/component/adapter.d.ts +128 -0
  156. package/dist/esm/component/adapter.d.ts.map +1 -0
  157. package/dist/esm/component/adapter.js +5 -0
  158. package/dist/esm/component/adapter.js.map +1 -0
  159. package/dist/esm/component/adapterTest.d.ts +3 -5
  160. package/dist/esm/component/adapterTest.d.ts.map +1 -1
  161. package/dist/esm/component/adapterTest.js +3 -17
  162. package/dist/esm/component/adapterTest.js.map +1 -1
  163. package/dist/esm/component/schema.d.ts +451 -207
  164. package/dist/esm/component/schema.d.ts.map +1 -1
  165. package/dist/esm/component/schema.js +50 -177
  166. package/dist/esm/component/schema.js.map +1 -1
  167. package/dist/esm/component/util.d.ts.map +1 -1
  168. package/dist/esm/nextjs/index.d.ts +1 -2
  169. package/dist/esm/nextjs/index.d.ts.map +1 -1
  170. package/dist/esm/nextjs/index.js +3 -2
  171. package/dist/esm/nextjs/index.js.map +1 -1
  172. package/dist/esm/plugins/convex/client.d.ts +2 -5
  173. package/dist/esm/plugins/convex/client.d.ts.map +1 -1
  174. package/dist/esm/plugins/convex/client.js.map +1 -1
  175. package/dist/esm/plugins/convex/index.d.ts +7 -134
  176. package/dist/esm/plugins/convex/index.d.ts.map +1 -1
  177. package/dist/esm/plugins/convex/index.js +10 -125
  178. package/dist/esm/plugins/convex/index.js.map +1 -1
  179. package/dist/esm/plugins/cross-domain/index.js +2 -2
  180. package/dist/esm/plugins/cross-domain/index.js.map +1 -1
  181. package/dist/esm/react-start/index.d.ts +17 -36
  182. package/dist/esm/react-start/index.d.ts.map +1 -1
  183. package/dist/esm/react-start/index.js +42 -31
  184. package/dist/esm/react-start/index.js.map +1 -1
  185. package/dist/esm/src/auth.d.ts +3085 -0
  186. package/dist/esm/src/auth.d.ts.map +1 -0
  187. package/dist/esm/src/auth.js +72 -0
  188. package/dist/esm/src/auth.js.map +1 -0
  189. package/dist/esm/src/client/adapter.d.ts +18 -0
  190. package/dist/esm/src/client/adapter.d.ts.map +1 -0
  191. package/dist/esm/src/client/adapter.js +211 -0
  192. package/dist/esm/src/client/adapter.js.map +1 -0
  193. package/dist/esm/src/client/createSchema.d.ts +25 -0
  194. package/dist/esm/src/client/createSchema.d.ts.map +1 -0
  195. package/dist/esm/src/client/createSchema.js +103 -0
  196. package/dist/esm/src/client/createSchema.js.map +1 -0
  197. package/dist/esm/src/client/index.d.ts +3310 -0
  198. package/dist/esm/src/client/index.d.ts.map +1 -0
  199. package/dist/esm/src/client/index.js +377 -0
  200. package/dist/esm/src/client/index.js.map +1 -0
  201. package/dist/esm/src/client/plugins/index.d.ts +3 -0
  202. package/dist/esm/src/client/plugins/index.d.ts.map +1 -0
  203. package/dist/esm/src/client/plugins/index.js +3 -0
  204. package/dist/esm/src/client/plugins/index.js.map +1 -0
  205. package/dist/esm/src/component/_generated/api.d.ts +12 -0
  206. package/dist/esm/src/component/_generated/api.d.ts.map +1 -0
  207. package/dist/esm/src/component/_generated/api.js +22 -0
  208. package/dist/esm/src/component/_generated/api.js.map +1 -0
  209. package/dist/esm/src/component/_generated/server.d.ts +64 -0
  210. package/dist/esm/src/component/_generated/server.d.ts.map +1 -0
  211. package/dist/esm/src/component/_generated/server.js +74 -0
  212. package/dist/esm/src/component/_generated/server.js.map +1 -0
  213. package/dist/esm/src/component/adapter.d.ts +355 -0
  214. package/dist/esm/src/component/adapter.d.ts.map +1 -0
  215. package/dist/esm/src/component/adapter.js +573 -0
  216. package/dist/esm/src/component/adapter.js.map +1 -0
  217. package/dist/esm/src/component/adapterTest.d.ts +18 -0
  218. package/dist/esm/src/component/adapterTest.d.ts.map +1 -0
  219. package/dist/esm/src/component/adapterTest.js +75 -0
  220. package/dist/esm/src/component/adapterTest.js.map +1 -0
  221. package/dist/esm/src/component/convex.config.d.ts +3 -0
  222. package/dist/esm/src/component/convex.config.d.ts.map +1 -0
  223. package/dist/esm/src/component/convex.config.js +4 -0
  224. package/dist/esm/src/component/convex.config.js.map +1 -0
  225. package/dist/esm/src/component/schema.d.ts +562 -0
  226. package/dist/esm/src/component/schema.d.ts.map +1 -0
  227. package/dist/esm/src/component/schema.js +217 -0
  228. package/dist/esm/src/component/schema.js.map +1 -0
  229. package/dist/esm/src/nextjs/index.d.ts +10 -0
  230. package/dist/esm/src/nextjs/index.d.ts.map +1 -0
  231. package/dist/esm/src/nextjs/index.js +43 -0
  232. package/dist/esm/src/nextjs/index.js.map +1 -0
  233. package/dist/esm/src/plugins/convex/client.d.ts +9 -0
  234. package/dist/esm/src/plugins/convex/client.d.ts.map +1 -0
  235. package/dist/esm/src/plugins/convex/client.js +7 -0
  236. package/dist/esm/src/plugins/convex/client.js.map +1 -0
  237. package/dist/esm/src/plugins/convex/index.d.ts +415 -0
  238. package/dist/esm/src/plugins/convex/index.d.ts.map +1 -0
  239. package/dist/esm/src/plugins/convex/index.js +354 -0
  240. package/dist/esm/src/plugins/convex/index.js.map +1 -0
  241. package/dist/esm/src/plugins/cross-domain/client.d.ts +132 -0
  242. package/dist/esm/src/plugins/cross-domain/client.d.ts.map +1 -0
  243. package/dist/esm/src/plugins/cross-domain/client.js +176 -0
  244. package/dist/esm/src/plugins/cross-domain/client.js.map +1 -0
  245. package/dist/esm/src/plugins/cross-domain/index.d.ts +83 -0
  246. package/dist/esm/src/plugins/cross-domain/index.d.ts.map +1 -0
  247. package/dist/esm/src/plugins/cross-domain/index.js +153 -0
  248. package/dist/esm/src/plugins/cross-domain/index.js.map +1 -0
  249. package/dist/esm/src/plugins/index.d.ts +3 -0
  250. package/dist/esm/src/plugins/index.d.ts.map +1 -0
  251. package/dist/esm/src/plugins/index.js +3 -0
  252. package/dist/esm/src/plugins/index.js.map +1 -0
  253. package/dist/esm/src/react/client.d.ts +31 -0
  254. package/dist/esm/src/react/client.d.ts.map +1 -0
  255. package/dist/esm/src/react/client.js +96 -0
  256. package/dist/esm/src/react/client.js.map +1 -0
  257. package/dist/esm/src/react/index.d.ts +9 -0
  258. package/dist/esm/src/react/index.d.ts.map +1 -0
  259. package/dist/esm/src/react/index.js +15 -0
  260. package/dist/esm/src/react/index.js.map +1 -0
  261. package/dist/esm/src/react-start/index.d.ts +45 -0
  262. package/dist/esm/src/react-start/index.d.ts.map +1 -0
  263. package/dist/esm/src/react-start/index.js +60 -0
  264. package/dist/esm/src/react-start/index.js.map +1 -0
  265. package/dist/esm/src/utils/index.d.ts +9 -0
  266. package/dist/esm/src/utils/index.d.ts.map +1 -0
  267. package/dist/esm/src/utils/index.js +35 -0
  268. package/dist/esm/src/utils/index.js.map +1 -0
  269. package/package.json +21 -4
  270. package/src/auth.ts +57 -0
  271. package/src/client/adapter.test.ts +15 -0
  272. package/src/client/adapter.ts +83 -58
  273. package/src/{component/lib.ts → client/adapterUtils.ts} +106 -256
  274. package/src/client/createSchema.ts +149 -0
  275. package/src/client/index.ts +558 -317
  276. package/src/component/_generated/api.d.ts +1711 -547
  277. package/src/component/adapter.ts +13 -0
  278. package/src/component/adapterTest.ts +8 -34
  279. package/src/component/schema.ts +58 -192
  280. package/src/nextjs/index.ts +5 -5
  281. package/src/plugins/convex/client.ts +2 -3
  282. package/src/plugins/convex/index.ts +15 -147
  283. package/src/plugins/cross-domain/index.ts +2 -2
  284. package/src/react-start/index.ts +76 -44
  285. package/dist/commonjs/client/cors.d.ts +0 -77
  286. package/dist/commonjs/client/cors.d.ts.map +0 -1
  287. package/dist/commonjs/client/cors.js +0 -297
  288. package/dist/commonjs/client/cors.js.map +0 -1
  289. package/dist/commonjs/util.d.ts +0 -2
  290. package/dist/commonjs/util.d.ts.map +0 -1
  291. package/dist/commonjs/util.js +0 -8
  292. package/dist/commonjs/util.js.map +0 -1
  293. package/dist/esm/client/cors.d.ts +0 -77
  294. package/dist/esm/client/cors.d.ts.map +0 -1
  295. package/dist/esm/client/cors.js +0 -297
  296. package/dist/esm/client/cors.js.map +0 -1
  297. package/dist/esm/util.d.ts +0 -2
  298. package/dist/esm/util.d.ts.map +0 -1
  299. package/dist/esm/util.js +0 -8
  300. package/dist/esm/util.js.map +0 -1
  301. package/src/component/util.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,IAAI,UAAU,EACvB,6BAA6B,EAC7B,KAAK,mBAAmB,EACxB,KAAK,MAAM,EAEX,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,UAAU,EACf,gBAAgB,EAMjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,EAAK,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAe1D,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,eAAe,CAAC;AA0C9E,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,mBAAmB,IAAI,iBAAiB,CAC1E,UAAU,EACV,UAAU,GAAG,QAAQ,EACrB,CAAC,CACF,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,IACxE,eAAe,CAAC,SAAS,CAAC,GAC1B,kBAAkB,CAAC,SAAS,CAAC,GAC7B,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAEhC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAC;IAC7E,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAC;IAC7E,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,SAAS,SAAS,gBAAgB,EAClC,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAEzC,QAAQ,MAAM,EACd,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Q1E,CAAC;AAEF,MAAM,MAAM,QAAQ,CAClB,SAAS,SAAS,gBAAgB,EAClC,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,IACvC;KACD,CAAC,IAAI,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC9B,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,kBAAkB,CAAC,SAAS,CAAC,EACnD,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG;YAC7C,GAAG,EAAE,MAAM,CAAC;YACZ,aAAa,EAAE,MAAM,CAAC;SACvB,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,kBAAkB,CAAC,SAAS,CAAC,EACnD,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG;YAChD,GAAG,EAAE,MAAM,CAAC;YACZ,aAAa,EAAE,MAAM,CAAC;SACvB,EACD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG;YAChD,GAAG,EAAE,MAAM,CAAC;YACZ,aAAa,EAAE,MAAM,CAAC;SACvB,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,kBAAkB,CAAC,SAAS,CAAC,EACnD,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG;YAC7C,GAAG,EAAE,MAAM,CAAC;YACZ,aAAa,EAAE,MAAM,CAAC;SACvB,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;KACpB;CACF,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,SAAS,SAAS,gBAAgB,EAClC,MAAM,SAAS,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,OAAO,aAAa,EAE3E,WAAW,MAAM,CAAC,OAAO,GAAG,CAAC,EAC7B,SAAS;IACP,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;CACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA0BgB,UAAU,CAAC,SAAS,CAAC;sBAEZ,WAAW,GAAG;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE;2BA1BxB,eAAe,CAAC,SAAS,CAAC;uBAkDnC,eAAe,CAAC,SAAS,CAAC;qBAW5C,kBAAkB,CAAC,SAAS,CAAC,UAC1B,MAAM,UACN,MAAM;;;;;;;;;;;;;;;;2BA+CR,UAAU,cACJ,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,SACnE;QACJ,IAAI,CAAC,EACD,OAAO,GACP;YAEE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;YAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;YAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;SAC3B,CAAC;KACP;CAgGN,CAAC;AAIF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;IACxD,WAAW,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;IACxD,WAAW,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC;IACjE,SAAS,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,cAAc,GAAG,YAAY,CAAC;AAEjE,MAAM,MAAM,SAAS,CAAC,CAAC,IACrB,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,CAAC,GACzB,MAAM,GACN,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACnB,SAAS,CAAC,CAAC,CAAC,EAAE,GACd,CAAC,SAAS,WAAW,GACnB,WAAW,GACX,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACnC,CAAC,CAAC;AAEd,MAAM,MAAM,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC;KAC9B,GAAG,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,iBAAiB,CACpD,MAAM,KAAK,EACX,QAAQ,EACR,MAAM,KAAK,EACX,MAAM,WAAW,EACjB,MAAM,cAAc,CACrB,GACG,iBAAiB,CACf,KAAK,EACL,UAAU,EACV,SAAS,CAAC,KAAK,CAAC,EAChB,SAAS,CAAC,WAAW,CAAC,EACtB,cAAc,CACf,GACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACrB,CAAC,CAAC"}
@@ -1,257 +1,382 @@
1
- import { httpActionGeneric, internalMutationGeneric, queryGeneric, } from "convex/server";
1
+ import { httpActionGeneric, internalMutationGeneric, mutationGeneric, paginationOptsValidator, queryGeneric, } from "convex/server";
2
2
  import { v } from "convex/values";
3
- import schema from "../component/schema";
4
3
  import { convexAdapter } from "./adapter";
5
- import { omit } from "convex-helpers";
6
- import { createCookieGetter } from "better-auth/cookies";
7
- import { fetchQuery } from "convex/nextjs";
8
- import { JWT_COOKIE_NAME } from "../plugins/convex";
4
+ import { asyncMap } from "convex-helpers";
9
5
  import { requireEnv } from "../utils";
10
- import { parse, partial } from "convex-helpers/validators";
11
- import { adapterArgsValidator, adapterWhereValidator } from "../component/lib";
6
+ import { partial } from "convex-helpers/validators";
7
+ import { adapterWhereValidator, checkUniqueFields, hasUniqueFields, listOne, paginate, selectFields, } from "./adapterUtils";
12
8
  import { corsRouter } from "convex-helpers/server/cors";
13
9
  import { version as convexVersion } from "convex";
14
10
  import semver from "semver";
11
+ import { getAuthTables } from "better-auth/db";
15
12
  export { convexAdapter };
16
13
  if (semver.lt(convexVersion, "1.25.0")) {
17
14
  throw new Error("Convex version must be at least 1.25.0");
18
15
  }
19
- const createUserFields = omit(schema.tables.user.validator.fields, ["userId"]);
20
- const createUserValidator = v.object(createUserFields);
21
- const createPermissiveArgsValidator = v.object({
22
- input: v.object({
23
- model: v.literal("user"),
24
- data: v.record(v.string(), v.union(v.string(), v.number(), v.boolean(), v.array(v.string()), v.array(v.number()), v.null())),
25
- }),
16
+ const whereValidator = (schema, tableName) => v.object({
17
+ field: v.union(...Object.keys(schema.tables[tableName].validator.fields).map((field) => v.literal(field)), v.literal("id")),
18
+ 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"))),
19
+ value: v.union(v.string(), v.number(), v.boolean(), v.array(v.string()), v.array(v.number()), v.null()),
20
+ connector: v.optional(v.union(v.literal("AND"), v.literal("OR"))),
26
21
  });
27
- const createUserArgsValidator = v.object({
28
- input: v.object({
29
- model: v.literal("user"),
30
- data: v.object(createUserFields),
31
- }),
32
- });
33
- const updateUserArgsValidator = v.object({
34
- input: v.object({
35
- model: v.literal("user"),
36
- where: v.optional(v.array(adapterWhereValidator)),
37
- update: v.object(partial(createUserFields)),
38
- }),
39
- });
40
- const createSessionArgsValidator = v.object({
41
- input: v.object({
42
- model: v.literal("session"),
43
- data: v.object(schema.tables.session.validator.fields),
44
- }),
45
- });
46
- export class BetterAuth {
47
- component;
48
- config;
49
- constructor(component, config) {
50
- this.component = component;
51
- this.config = config;
52
- }
53
- async isAuthenticated(token) {
54
- if (!this.config.publicAuthFunctions?.isAuthenticated) {
55
- throw new Error("isAuthenticated function not found. It must be a named export in convex/auth.ts");
56
- }
57
- return fetchQuery(this.config.publicAuthFunctions.isAuthenticated, {}, { token: token ?? undefined });
58
- }
59
- async getHeaders(ctx) {
60
- const session = await ctx.runQuery(this.component.lib.getCurrentSession);
61
- return new Headers({
62
- ...(session?.token ? { authorization: `Bearer ${session.token}` } : {}),
63
- ...(session?.ipAddress ? { "x-forwarded-for": session.ipAddress } : {}),
64
- });
65
- }
66
- // TODO: use the proper id type for auth functions
67
- async getAuthUserId(ctx) {
68
- const identity = await ctx.auth.getUserIdentity();
69
- if (!identity) {
70
- return null;
71
- }
72
- return identity.subject;
73
- }
74
- // Convenience function for getting the Better Auth user
75
- async getAuthUser(ctx) {
22
+ export const createApi = (schema, createAuth) => {
23
+ const betterAuthSchema = getAuthTables(createAuth({}).options);
24
+ return {
25
+ create: mutationGeneric({
26
+ args: {
27
+ input: v.union(...Object.entries(schema.tables).map(([model, table]) => v.object({
28
+ model: v.literal(model),
29
+ data: v.object(table.validator.fields),
30
+ }))),
31
+ select: v.optional(v.array(v.string())),
32
+ onCreateHandle: v.optional(v.string()),
33
+ },
34
+ handler: async (ctx, args) => {
35
+ await checkUniqueFields(ctx, schema, betterAuthSchema, args.input.model, args.input.data);
36
+ const id = await ctx.db.insert(args.input.model, args.input.data);
37
+ const doc = await ctx.db.get(id);
38
+ if (!doc) {
39
+ throw new Error(`Failed to create ${args.input.model}`);
40
+ }
41
+ const result = selectFields(doc, args.select);
42
+ if (args.onCreateHandle) {
43
+ await ctx.runMutation(args.onCreateHandle, {
44
+ model: args.input.model,
45
+ doc,
46
+ });
47
+ }
48
+ return result;
49
+ },
50
+ }),
51
+ findOne: queryGeneric({
52
+ args: {
53
+ model: v.union(...Object.keys(schema.tables).map((model) => v.literal(model))),
54
+ where: v.optional(v.array(adapterWhereValidator)),
55
+ select: v.optional(v.array(v.string())),
56
+ },
57
+ handler: async (ctx, args) => {
58
+ return await listOne(ctx, schema, betterAuthSchema, args);
59
+ },
60
+ }),
61
+ findMany: queryGeneric({
62
+ args: {
63
+ model: v.union(...Object.keys(schema.tables).map((model) => v.literal(model))),
64
+ where: v.optional(v.array(adapterWhereValidator)),
65
+ limit: v.optional(v.number()),
66
+ sortBy: v.optional(v.object({
67
+ direction: v.union(v.literal("asc"), v.literal("desc")),
68
+ field: v.string(),
69
+ })),
70
+ offset: v.optional(v.number()),
71
+ paginationOpts: paginationOptsValidator,
72
+ },
73
+ handler: async (ctx, args) => {
74
+ return await paginate(ctx, schema, betterAuthSchema, args);
75
+ },
76
+ }),
77
+ updateOne: mutationGeneric({
78
+ args: {
79
+ input: v.union(...Object.entries(schema.tables).map(([tableName, table]) => {
80
+ const fields = partial(table.validator.fields);
81
+ return v.object({
82
+ model: v.literal(tableName),
83
+ update: v.object(fields),
84
+ where: v.optional(v.array(whereValidator(schema, tableName))),
85
+ });
86
+ })),
87
+ onUpdateHandle: v.optional(v.string()),
88
+ },
89
+ handler: async (ctx, args) => {
90
+ const doc = await listOne(ctx, schema, betterAuthSchema, args.input);
91
+ if (!doc) {
92
+ throw new Error(`Failed to update ${args.input.model}`);
93
+ }
94
+ await checkUniqueFields(ctx, schema, betterAuthSchema, args.input.model, args.input.update, doc);
95
+ await ctx.db.patch(doc._id, args.input.update);
96
+ const updatedDoc = await ctx.db.get(doc._id);
97
+ if (!updatedDoc) {
98
+ throw new Error(`Failed to update ${args.input.model}`);
99
+ }
100
+ if (args.onUpdateHandle) {
101
+ await ctx.runMutation(args.onUpdateHandle, {
102
+ model: args.input.model,
103
+ oldDoc: doc,
104
+ newDoc: updatedDoc,
105
+ });
106
+ }
107
+ return updatedDoc;
108
+ },
109
+ }),
110
+ updateMany: mutationGeneric({
111
+ args: {
112
+ input: v.union(...Object.entries(schema.tables).map(([tableName, table]) => {
113
+ const fields = partial(table.validator.fields);
114
+ return v.object({
115
+ model: v.literal(tableName),
116
+ update: v.object(fields),
117
+ where: v.optional(v.array(whereValidator(schema, tableName))),
118
+ });
119
+ })),
120
+ paginationOpts: paginationOptsValidator,
121
+ onUpdateHandle: v.optional(v.string()),
122
+ },
123
+ handler: async (ctx, args) => {
124
+ const { page, ...result } = await paginate(ctx, schema, betterAuthSchema, {
125
+ ...args.input,
126
+ paginationOpts: args.paginationOpts,
127
+ });
128
+ if (args.input.update) {
129
+ if (hasUniqueFields(betterAuthSchema, args.input.model, args.input.update ?? {}) &&
130
+ page.length > 1) {
131
+ 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(", ")}`);
132
+ }
133
+ await asyncMap(page, async (doc) => {
134
+ await checkUniqueFields(ctx, schema, betterAuthSchema, args.input.model, args.input.update ?? {}, doc);
135
+ await ctx.db.patch(doc._id, args.input.update);
136
+ if (args.onUpdateHandle) {
137
+ await ctx.runMutation(args.onUpdateHandle, {
138
+ model: args.input.model,
139
+ oldDoc: doc,
140
+ newDoc: await ctx.db.get(doc._id),
141
+ });
142
+ }
143
+ });
144
+ }
145
+ return {
146
+ ...result,
147
+ count: page.length,
148
+ ids: page.map((doc) => doc._id),
149
+ };
150
+ },
151
+ }),
152
+ deleteOne: mutationGeneric({
153
+ args: {
154
+ input: v.union(...Object.keys(schema.tables).map((tableName) => {
155
+ return v.object({
156
+ model: v.literal(tableName),
157
+ where: v.optional(v.array(whereValidator(schema, tableName))),
158
+ });
159
+ })),
160
+ onDeleteHandle: v.optional(v.string()),
161
+ },
162
+ handler: async (ctx, args) => {
163
+ const doc = await listOne(ctx, schema, betterAuthSchema, args.input);
164
+ if (!doc) {
165
+ return;
166
+ }
167
+ await ctx.db.delete(doc._id);
168
+ if (args.onDeleteHandle) {
169
+ await ctx.runMutation(args.onDeleteHandle, { model: args.input.model, doc });
170
+ }
171
+ return doc;
172
+ },
173
+ }),
174
+ deleteMany: mutationGeneric({
175
+ args: {
176
+ input: v.union(...Object.keys(schema.tables).map((tableName) => {
177
+ return v.object({
178
+ model: v.literal(tableName),
179
+ where: v.optional(v.array(whereValidator(schema, tableName))),
180
+ });
181
+ })),
182
+ paginationOpts: paginationOptsValidator,
183
+ onDeleteHandle: v.optional(v.string()),
184
+ },
185
+ handler: async (ctx, args) => {
186
+ const { page, ...result } = await paginate(ctx, schema, betterAuthSchema, {
187
+ ...args.input,
188
+ paginationOpts: args.paginationOpts,
189
+ });
190
+ await asyncMap(page, async (doc) => {
191
+ if (args.onDeleteHandle) {
192
+ await ctx.runMutation(args.onDeleteHandle, {
193
+ model: args.input.model,
194
+ doc,
195
+ });
196
+ }
197
+ await ctx.db.delete(doc._id);
198
+ });
199
+ return {
200
+ ...result,
201
+ count: page.length,
202
+ ids: page.map((doc) => doc._id),
203
+ };
204
+ },
205
+ }),
206
+ };
207
+ };
208
+ export const createClient = (component, config) => {
209
+ const safeGetAuthUser = async (ctx) => {
76
210
  const identity = await ctx.auth.getUserIdentity();
77
211
  if (!identity) {
78
- return null;
212
+ return;
79
213
  }
80
- const doc = await ctx.runQuery(this.component.lib.findOne, {
214
+ const doc = (await ctx.runQuery(component.adapter.findOne, {
81
215
  model: "user",
82
216
  where: [
83
217
  {
84
- field: "userId",
218
+ field: "id",
85
219
  value: identity.subject,
86
220
  },
87
221
  ],
88
- });
222
+ }));
89
223
  if (!doc) {
90
- return null;
91
- }
92
- // Type narrowing
93
- if (!("emailVerified" in doc)) {
94
- throw new Error("invalid user");
95
- }
96
- return omit(doc, ["_id", "_creationTime"]);
97
- }
98
- async getIdTokenCookieName(createAuth) {
99
- const auth = createAuth({});
100
- const createCookie = createCookieGetter(auth.options);
101
- const cookie = createCookie(JWT_COOKIE_NAME);
102
- return cookie.name;
103
- }
104
- async updateUserMetadata(ctx, userId, metadata) {
105
- return ctx.runMutation(this.component.lib.updateOne, {
106
- input: {
107
- model: "user",
108
- where: [{ field: "userId", value: userId }],
109
- update: metadata,
110
- },
111
- });
112
- }
113
- async getUserByUsername(ctx, username) {
114
- const user = await ctx.runQuery(this.component.lib.findOne, {
115
- model: "user",
116
- where: [{ field: "username", value: username }],
117
- });
118
- if (!user) {
119
- return null;
224
+ return;
120
225
  }
121
- return omit(user, ["_id", "_creationTime"]);
122
- }
123
- createAuthFunctions(opts) {
124
- return {
125
- isAuthenticated: queryGeneric({
126
- args: v.object({}),
127
- handler: async (ctx) => {
128
- const identity = await ctx.auth.getUserIdentity();
129
- return identity !== null;
226
+ return doc;
227
+ };
228
+ return {
229
+ component,
230
+ adapter: (ctx) => convexAdapter(ctx, component, config),
231
+ getHeaders: async (ctx) => {
232
+ const identity = await ctx.auth.getUserIdentity();
233
+ if (!identity) {
234
+ return new Headers();
235
+ }
236
+ const session = await ctx.runQuery(component.adapter.findOne, {
237
+ model: "session",
238
+ where: [
239
+ {
240
+ field: "userId",
241
+ value: identity.subject,
242
+ },
243
+ ],
244
+ });
245
+ return new Headers({
246
+ ...(session?.token ? { authorization: `Bearer ${session.token}` } : {}),
247
+ ...(session?.ipAddress
248
+ ? { "x-forwarded-for": session.ipAddress }
249
+ : {}),
250
+ });
251
+ },
252
+ safeGetAuthUser,
253
+ getAuthUser: async (ctx) => {
254
+ const user = await safeGetAuthUser(ctx);
255
+ if (!user) {
256
+ throw new Error("Unauthenticated");
257
+ }
258
+ return user;
259
+ },
260
+ // Replaces 0.7 behavior of returning a new user id from
261
+ // onCreateUser
262
+ setUserId: async (ctx, authId, userId) => {
263
+ await ctx.runMutation(component.adapter.updateOne, {
264
+ input: {
265
+ model: "user",
266
+ where: [{ field: "id", value: authId }],
267
+ update: { userId },
130
268
  },
131
- }),
132
- createUser: internalMutationGeneric({
133
- args: createPermissiveArgsValidator,
134
- handler: async (ctx, args) => {
135
- const userId = await opts.onCreateUser(ctx, args.input.data);
136
- const parsedArgs = parse(createUserArgsValidator, args);
137
- return ctx.runMutation(this.component.lib.create, {
138
- input: {
139
- ...parsedArgs.input,
140
- data: { ...parsedArgs.input.data, userId },
141
- },
142
- });
269
+ });
270
+ },
271
+ triggersApi: () => ({
272
+ onCreate: internalMutationGeneric({
273
+ args: {
274
+ doc: v.any(),
275
+ model: v.string(),
143
276
  },
144
- }),
145
- deleteUser: internalMutationGeneric({
146
- args: adapterArgsValidator,
147
277
  handler: async (ctx, args) => {
148
- const doc = await ctx.runMutation(this.component.lib.deleteOne, args);
149
- if (doc && opts.onDeleteUser) {
150
- await opts.onDeleteUser(ctx, doc.userId);
151
- }
152
- return doc;
278
+ await config?.triggers?.[args.model]?.onCreate?.(ctx, args.doc);
153
279
  },
154
280
  }),
155
- updateUser: internalMutationGeneric({
156
- args: updateUserArgsValidator,
281
+ onUpdate: internalMutationGeneric({
282
+ args: {
283
+ oldDoc: v.any(),
284
+ newDoc: v.any(),
285
+ model: v.string(),
286
+ },
157
287
  handler: async (ctx, args) => {
158
- const updatedUser = await ctx.runMutation(this.component.lib.updateOne, { input: args.input });
159
- // Type narrowing
160
- if (!("emailVerified" in updatedUser)) {
161
- throw new Error("invalid user");
162
- }
163
- if (opts.onUpdateUser) {
164
- await opts.onUpdateUser(ctx, omit(updatedUser, ["_id"]));
165
- }
166
- return updatedUser;
288
+ await config?.triggers?.[args.model]?.onUpdate?.(ctx, args.oldDoc, args.newDoc);
167
289
  },
168
290
  }),
169
- createSession: internalMutationGeneric({
170
- args: createSessionArgsValidator,
291
+ onDelete: internalMutationGeneric({
292
+ args: {
293
+ doc: v.any(),
294
+ model: v.string(),
295
+ },
171
296
  handler: async (ctx, args) => {
172
- const session = await ctx.runMutation(this.component.lib.create, {
173
- input: args.input,
174
- });
175
- await opts.onCreateSession?.(ctx, session);
176
- return session;
297
+ await config?.triggers?.[args.model]?.onDelete?.(ctx, args.doc);
177
298
  },
178
299
  }),
179
- };
180
- }
181
- registerRoutes(http, createAuth, opts = {}) {
182
- const betterAuthOptions = createAuth({}).options;
183
- const path = betterAuthOptions.basePath ?? "/api/auth";
184
- const authRequestHandler = httpActionGeneric(async (ctx, request) => {
185
- if (this.config.verbose) {
186
- console.log("options.baseURL", betterAuthOptions.baseURL);
187
- console.log("request headers", request.headers);
300
+ }),
301
+ registerRoutes: (http, createAuth, opts = {}) => {
302
+ const authDummy = createAuth({});
303
+ const path = authDummy.options.basePath ?? "/api/auth";
304
+ const authRequestHandler = httpActionGeneric(async (ctx, request) => {
305
+ if (config?.verbose) {
306
+ console.log("options.baseURL", authDummy.options.baseURL);
307
+ console.log("request headers", request.headers);
308
+ }
309
+ const auth = createAuth(ctx);
310
+ const response = await auth.handler(request);
311
+ if (config?.verbose) {
312
+ console.log("response headers", response.headers);
313
+ }
314
+ return response;
315
+ });
316
+ const wellKnown = http.lookup("/.well-known/openid-configuration", "GET");
317
+ // If registerRoutes is used multiple times, this may already be defined
318
+ if (!wellKnown) {
319
+ // Redirect root well-known to api well-known
320
+ http.route({
321
+ path: "/.well-known/openid-configuration",
322
+ method: "GET",
323
+ handler: httpActionGeneric(async () => {
324
+ const url = `${requireEnv("CONVEX_SITE_URL")}${path}/convex/.well-known/openid-configuration`;
325
+ return Response.redirect(url);
326
+ }),
327
+ });
188
328
  }
189
- const auth = createAuth(ctx);
190
- const response = await auth.handler(request);
191
- if (this.config?.verbose) {
192
- console.log("response headers", response.headers);
329
+ if (!opts.cors) {
330
+ http.route({
331
+ pathPrefix: `${path}/`,
332
+ method: "GET",
333
+ handler: authRequestHandler,
334
+ });
335
+ http.route({
336
+ pathPrefix: `${path}/`,
337
+ method: "POST",
338
+ handler: authRequestHandler,
339
+ });
340
+ return;
193
341
  }
194
- return response;
195
- });
196
- const wellKnown = http.lookup("/.well-known/openid-configuration", "GET");
197
- // If registerRoutes is used multiple times, this may already be defined
198
- if (!wellKnown) {
199
- // Redirect root well-known to api well-known
200
- http.route({
201
- path: "/.well-known/openid-configuration",
202
- method: "GET",
203
- handler: httpActionGeneric(async () => {
204
- const url = `${requireEnv("CONVEX_SITE_URL")}${path}/convex/.well-known/openid-configuration`;
205
- return Response.redirect(url);
206
- }),
342
+ const corsOpts = typeof opts.cors === "boolean"
343
+ ? { allowedOrigins: [], allowedHeaders: [], exposedHeaders: [] }
344
+ : opts.cors;
345
+ let trustedOriginsOption;
346
+ const cors = corsRouter(http, {
347
+ allowedOrigins: async (request) => {
348
+ trustedOriginsOption =
349
+ trustedOriginsOption ??
350
+ (await authDummy.$context).options.trustedOrigins ??
351
+ [];
352
+ const trustedOrigins = Array.isArray(trustedOriginsOption)
353
+ ? trustedOriginsOption
354
+ : await trustedOriginsOption(request);
355
+ return trustedOrigins
356
+ .map((origin) =>
357
+ // Strip trailing wildcards, unsupported for allowedOrigins
358
+ origin.endsWith("*") && origin.length > 1
359
+ ? origin.slice(0, -1)
360
+ : origin)
361
+ .concat(corsOpts.allowedOrigins ?? []);
362
+ },
363
+ allowCredentials: true,
364
+ allowedHeaders: ["Content-Type", "Better-Auth-Cookie"].concat(corsOpts.allowedHeaders ?? []),
365
+ exposedHeaders: ["Set-Better-Auth-Cookie"].concat(corsOpts.exposedHeaders ?? []),
366
+ debug: config?.verbose,
367
+ enforceAllowOrigins: false,
207
368
  });
208
- }
209
- if (!opts.cors) {
210
- http.route({
369
+ cors.route({
211
370
  pathPrefix: `${path}/`,
212
371
  method: "GET",
213
372
  handler: authRequestHandler,
214
373
  });
215
- http.route({
374
+ cors.route({
216
375
  pathPrefix: `${path}/`,
217
376
  method: "POST",
218
377
  handler: authRequestHandler,
219
378
  });
220
- return;
221
- }
222
- const corsOpts = typeof opts.cors === "boolean"
223
- ? { allowedOrigins: [], allowedHeaders: [], exposedHeaders: [] }
224
- : opts.cors;
225
- const cors = corsRouter(http, {
226
- allowedOrigins: async (request) => {
227
- const trustedOriginsOption = (await createAuth({}).$context).options.trustedOrigins ?? [];
228
- const trustedOrigins = Array.isArray(trustedOriginsOption)
229
- ? trustedOriginsOption
230
- : await trustedOriginsOption(request);
231
- return trustedOrigins
232
- .map((origin) =>
233
- // Strip trailing wildcards, unsupported for allowedOrigins
234
- origin.endsWith("*") && origin.length > 1
235
- ? origin.slice(0, -1)
236
- : origin)
237
- .concat(corsOpts.allowedOrigins ?? []);
238
- },
239
- allowCredentials: true,
240
- allowedHeaders: ["Content-Type", "Better-Auth-Cookie"].concat(corsOpts.allowedHeaders ?? []),
241
- exposedHeaders: ["Set-Better-Auth-Cookie"].concat(corsOpts.exposedHeaders ?? []),
242
- debug: this.config?.verbose,
243
- enforceAllowOrigins: false,
244
- });
245
- cors.route({
246
- pathPrefix: `${path}/`,
247
- method: "GET",
248
- handler: authRequestHandler,
249
- });
250
- cors.route({
251
- pathPrefix: `${path}/`,
252
- method: "POST",
253
- handler: authRequestHandler,
254
- });
255
- }
256
- }
379
+ },
380
+ };
381
+ };
257
382
  //# sourceMappingURL=index.js.map