@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
@@ -0,0 +1,176 @@
1
+ export function parseSetCookieHeader(header) {
2
+ const cookieMap = new Map();
3
+ const cookies = header.split(", ");
4
+ cookies.forEach((cookie) => {
5
+ const [nameValue, ...attributes] = cookie.split("; ");
6
+ const [name, value] = nameValue.split("=");
7
+ const cookieObj = { value };
8
+ attributes.forEach((attr) => {
9
+ const [attrName, attrValue] = attr.split("=");
10
+ cookieObj[attrName.toLowerCase()] = attrValue;
11
+ });
12
+ cookieMap.set(name, cookieObj);
13
+ });
14
+ return cookieMap;
15
+ }
16
+ export function getSetCookie(header, prevCookie) {
17
+ const parsed = parseSetCookieHeader(header);
18
+ let toSetCookie = {};
19
+ parsed.forEach((cookie, key) => {
20
+ const expiresAt = cookie["expires"];
21
+ const maxAge = cookie["max-age"];
22
+ const expires = expiresAt
23
+ ? new Date(String(expiresAt))
24
+ : maxAge
25
+ ? new Date(Date.now() + Number(maxAge) * 1000)
26
+ : null;
27
+ toSetCookie[key] = {
28
+ value: cookie["value"],
29
+ expires,
30
+ };
31
+ });
32
+ if (prevCookie) {
33
+ try {
34
+ const prevCookieParsed = JSON.parse(prevCookie);
35
+ toSetCookie = {
36
+ ...prevCookieParsed,
37
+ ...toSetCookie,
38
+ };
39
+ }
40
+ catch {
41
+ //
42
+ }
43
+ }
44
+ return JSON.stringify(toSetCookie);
45
+ }
46
+ export function getCookie(cookie) {
47
+ let parsed = {};
48
+ try {
49
+ parsed = JSON.parse(cookie);
50
+ }
51
+ catch {
52
+ // noop
53
+ }
54
+ const toSend = Object.entries(parsed).reduce((acc, [key, value]) => {
55
+ if (value.expires && value.expires < new Date()) {
56
+ return acc;
57
+ }
58
+ return `${acc}; ${key}=${value.value}`;
59
+ }, "");
60
+ return toSend;
61
+ }
62
+ export const crossDomainClient = (opts = {}) => {
63
+ let store = null;
64
+ const cookieName = `${opts?.storagePrefix || "better-auth"}_cookie`;
65
+ const localCacheName = `${opts?.storagePrefix || "better-auth"}_session_data`;
66
+ const storage = opts?.storage || (typeof window !== "undefined" ? localStorage : undefined);
67
+ return {
68
+ id: "cross-domain",
69
+ $InferServerPlugin: {},
70
+ getActions(_, $store) {
71
+ store = $store;
72
+ return {
73
+ /**
74
+ * Get the stored cookie.
75
+ *
76
+ * You can use this to get the cookie stored in the device and use it in your fetch
77
+ * requests.
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * const cookie = client.getCookie();
82
+ * fetch("https://api.example.com", {
83
+ * headers: {
84
+ * cookie,
85
+ * },
86
+ * });
87
+ */
88
+ getCookie: () => {
89
+ const cookie = storage?.getItem(cookieName);
90
+ return getCookie(cookie || "{}");
91
+ },
92
+ /**
93
+ * Notify the session signal.
94
+ *
95
+ * This is used to trigger an update in useSession, generally when a new session
96
+ * token is set.
97
+ *
98
+ * @example
99
+ * ```ts
100
+ * client.notifySessionSignal();
101
+ * ```
102
+ */
103
+ updateSession: () => {
104
+ $store.notify("$sessionSignal");
105
+ },
106
+ /**
107
+ * Get the stored session data.
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * const sessionData = client.getSessionData();
112
+ * ```
113
+ */
114
+ getSessionData: () => {
115
+ const sessionData = storage?.getItem(localCacheName);
116
+ return sessionData ? JSON.parse(sessionData) : null;
117
+ },
118
+ };
119
+ },
120
+ fetchPlugins: [
121
+ {
122
+ id: "convex",
123
+ name: "Convex",
124
+ hooks: {
125
+ async onSuccess(context) {
126
+ if (!storage) {
127
+ return;
128
+ }
129
+ const setCookie = context.response.headers.get("set-better-auth-cookie");
130
+ if (setCookie) {
131
+ const prevCookie = await storage.getItem(cookieName);
132
+ const toSetCookie = getSetCookie(setCookie || "", prevCookie ?? undefined);
133
+ await storage.setItem(cookieName, toSetCookie);
134
+ store?.notify("$sessionSignal");
135
+ }
136
+ if (context.request.url.toString().includes("/get-session") &&
137
+ !opts?.disableCache) {
138
+ const data = context.data;
139
+ storage.setItem(localCacheName, JSON.stringify(data));
140
+ }
141
+ },
142
+ },
143
+ async init(url, options) {
144
+ if (!storage) {
145
+ return {
146
+ url,
147
+ options: options,
148
+ };
149
+ }
150
+ options = options || {};
151
+ const storedCookie = storage.getItem(cookieName);
152
+ const cookie = getCookie(storedCookie || "{}");
153
+ options.credentials = "omit";
154
+ options.headers = {
155
+ ...options.headers,
156
+ "Better-Auth-Cookie": cookie,
157
+ };
158
+ if (url.includes("/sign-out")) {
159
+ await storage.setItem(cookieName, "{}");
160
+ store?.atoms.session?.set({
161
+ data: null,
162
+ error: null,
163
+ isPending: false,
164
+ });
165
+ storage.setItem(localCacheName, "{}");
166
+ }
167
+ return {
168
+ url,
169
+ options: options,
170
+ };
171
+ },
172
+ },
173
+ ],
174
+ };
175
+ };
176
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../src/plugins/cross-domain/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { z } from "zod";
2
+ export declare const crossDomain: ({ siteUrl }: {
3
+ siteUrl: string;
4
+ }) => {
5
+ id: "cross-domain";
6
+ init(): {
7
+ options: {
8
+ trustedOrigins: string[];
9
+ };
10
+ };
11
+ hooks: {
12
+ before: ({
13
+ matcher(context: import("better-auth").HookEndpointContext): boolean;
14
+ handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
15
+ context: {
16
+ headers: Headers;
17
+ };
18
+ } | undefined>;
19
+ } | {
20
+ matcher: (ctx: import("better-auth").HookEndpointContext) => boolean;
21
+ handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
22
+ context: import("better-call").MiddlewareContext<import("better-call").MiddlewareOptions, import("better-auth").AuthContext & {
23
+ returned?: unknown;
24
+ responseHeaders?: Headers;
25
+ }>;
26
+ }>;
27
+ })[];
28
+ after: {
29
+ matcher: (ctx: import("better-auth").HookEndpointContext) => boolean;
30
+ handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>;
31
+ }[];
32
+ };
33
+ endpoints: {
34
+ verifyOneTimeToken: {
35
+ <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: {
36
+ body: {
37
+ token: string;
38
+ };
39
+ } & {
40
+ method?: "POST" | undefined;
41
+ } & {
42
+ query?: Record<string, any> | undefined;
43
+ } & {
44
+ params?: Record<string, any>;
45
+ } & {
46
+ request?: Request;
47
+ } & {
48
+ headers?: HeadersInit;
49
+ } & {
50
+ asResponse?: boolean;
51
+ returnHeaders?: boolean;
52
+ use?: import("better-call").Middleware[];
53
+ path?: string;
54
+ } & {
55
+ asResponse?: AsResponse | undefined;
56
+ returnHeaders?: ReturnHeaders | undefined;
57
+ }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? {
58
+ headers: Headers;
59
+ response: {
60
+ session: import("better-auth").Session & Record<string, any>;
61
+ user: import("better-auth").User & Record<string, any>;
62
+ };
63
+ } : {
64
+ session: import("better-auth").Session & Record<string, any>;
65
+ user: import("better-auth").User & Record<string, any>;
66
+ }>;
67
+ options: {
68
+ method: "POST";
69
+ body: z.ZodObject<{
70
+ token: z.ZodString;
71
+ }, "strip", z.ZodTypeAny, {
72
+ token: string;
73
+ }, {
74
+ token: string;
75
+ }>;
76
+ } & {
77
+ use: any[];
78
+ };
79
+ path: "/cross-domain/one-time-token/verify";
80
+ };
81
+ };
82
+ };
83
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/cross-domain/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,WAAW,GAAI,aAAa;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmK3D,CAAC"}
@@ -0,0 +1,153 @@
1
+ import { setSessionCookie } from "better-auth/cookies";
2
+ import { generateRandomString } from "better-auth/crypto";
3
+ import { createAuthEndpoint, createAuthMiddleware, oneTimeToken as oneTimeTokenPlugin, } from "better-auth/plugins";
4
+ import { z } from "zod";
5
+ export const crossDomain = ({ siteUrl }) => {
6
+ const oneTimeToken = oneTimeTokenPlugin();
7
+ const rewriteCallbackURL = (callbackURL) => {
8
+ if (callbackURL && !callbackURL.startsWith("/")) {
9
+ return callbackURL;
10
+ }
11
+ const relativeCallbackURL = callbackURL || "/";
12
+ return new URL(relativeCallbackURL, siteUrl).toString();
13
+ };
14
+ return {
15
+ id: "cross-domain",
16
+ // TODO: remove this in the next minor release, it doesn't
17
+ // actually affect ctx.trustedOrigins. cors allowedOrigins
18
+ // is using it, via options.trustedOrigins, though, so it's
19
+ // a breaking change.
20
+ init() {
21
+ return {
22
+ options: {
23
+ trustedOrigins: [siteUrl],
24
+ },
25
+ };
26
+ },
27
+ hooks: {
28
+ before: [
29
+ {
30
+ matcher(context) {
31
+ return Boolean(context.request?.headers.get("better-auth-cookie") ||
32
+ context.headers?.get("better-auth-cookie"));
33
+ },
34
+ handler: createAuthMiddleware(async (c) => {
35
+ const existingHeaders = (c.request?.headers ||
36
+ c.headers);
37
+ const headers = new Headers({
38
+ ...Object.fromEntries(existingHeaders?.entries()),
39
+ });
40
+ // Skip if the request has an authorization header
41
+ if (headers.get("authorization")) {
42
+ return;
43
+ }
44
+ const cookie = headers.get("better-auth-cookie");
45
+ if (!cookie) {
46
+ return;
47
+ }
48
+ headers.append("cookie", cookie);
49
+ return {
50
+ context: {
51
+ headers,
52
+ },
53
+ };
54
+ }),
55
+ },
56
+ {
57
+ matcher: (ctx) => {
58
+ return ctx.method === "GET" && ctx.path.startsWith("/verify-email");
59
+ },
60
+ handler: createAuthMiddleware(async (ctx) => {
61
+ if (ctx.query?.callbackURL) {
62
+ ctx.query.callbackURL = rewriteCallbackURL(ctx.query.callbackURL);
63
+ }
64
+ return { context: ctx };
65
+ }),
66
+ },
67
+ {
68
+ matcher: (ctx) => {
69
+ return ((ctx.method === "POST" && ctx.path.startsWith("/link-social")) ||
70
+ ctx.path.startsWith("/send-verification-email") ||
71
+ ctx.path.startsWith("/sign-in/email") ||
72
+ ctx.path.startsWith("/sign-in/social") ||
73
+ ctx.path.startsWith("/sign-in/magic-link") ||
74
+ ctx.path.startsWith("/delete-user") ||
75
+ ctx.path.startsWith("/change-email"));
76
+ },
77
+ handler: createAuthMiddleware(async (ctx) => {
78
+ const isSignIn = ctx.path.startsWith("/sign-in");
79
+ ctx.body.callbackURL = rewriteCallbackURL(ctx.body.callbackURL);
80
+ if (isSignIn && ctx.body.newUserCallbackURL) {
81
+ ctx.body.newUserCallbackURL = rewriteCallbackURL(ctx.body.newUserCallbackURL);
82
+ }
83
+ if (isSignIn && ctx.body.errorCallbackURL) {
84
+ ctx.body.errorCallbackURL = rewriteCallbackURL(ctx.body.errorCallbackURL);
85
+ }
86
+ return { context: ctx };
87
+ }),
88
+ },
89
+ ],
90
+ after: [
91
+ {
92
+ matcher() {
93
+ return true;
94
+ },
95
+ handler: createAuthMiddleware(async (ctx) => {
96
+ const setCookie = ctx.context.responseHeaders?.get("set-cookie");
97
+ if (!setCookie) {
98
+ return;
99
+ }
100
+ ctx.context.responseHeaders?.delete("set-cookie");
101
+ ctx.setHeader("Set-Better-Auth-Cookie", setCookie);
102
+ }),
103
+ },
104
+ {
105
+ matcher: (ctx) => {
106
+ return (ctx.path?.startsWith("/callback") ||
107
+ ctx.path?.startsWith("/oauth2/callback") ||
108
+ ctx.path?.startsWith("/magic-link/verify"));
109
+ },
110
+ handler: createAuthMiddleware(async (ctx) => {
111
+ // Mostly copied from the one-time-token plugin
112
+ const session = ctx.context.newSession;
113
+ if (!session) {
114
+ console.error("No session found");
115
+ return;
116
+ }
117
+ const token = generateRandomString(32);
118
+ const expiresAt = new Date(Date.now() + 3 * 60 * 1000);
119
+ await ctx.context.internalAdapter.createVerificationValue({
120
+ value: session.session.token,
121
+ identifier: `one-time-token:${token}`,
122
+ expiresAt,
123
+ });
124
+ const redirectTo = ctx.context.responseHeaders?.get("location");
125
+ if (!redirectTo) {
126
+ console.error("No redirect to found");
127
+ return;
128
+ }
129
+ const url = new URL(redirectTo);
130
+ url.searchParams.set("ott", token);
131
+ throw ctx.redirect(url.toString());
132
+ }),
133
+ },
134
+ ],
135
+ },
136
+ endpoints: {
137
+ verifyOneTimeToken: createAuthEndpoint("/cross-domain/one-time-token/verify", {
138
+ method: "POST",
139
+ body: z.object({
140
+ token: z.string(),
141
+ }),
142
+ }, async (ctx) => {
143
+ const response = await oneTimeToken.endpoints.verifyOneTimeToken({
144
+ ...ctx,
145
+ returnHeaders: false,
146
+ });
147
+ await setSessionCookie(ctx, response);
148
+ return response;
149
+ }),
150
+ },
151
+ };
152
+ };
153
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/cross-domain/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./convex";
2
+ export * from "./cross-domain";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./convex";
2
+ export * from "./cross-domain";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { ConvexReactClient } from "convex/react";
2
+ import { ReactNode } from "react";
3
+ import { createAuthClient } from "better-auth/react";
4
+ import { convexClient, crossDomainClient } from "../client/plugins";
5
+ import { BetterAuthClientPlugin, ClientOptions } from "better-auth";
6
+ export declare function useAuth(): {
7
+ isLoading: boolean;
8
+ isAuthenticated: boolean;
9
+ fetchAccessToken: ({ forceRefreshToken, }: {
10
+ forceRefreshToken: boolean;
11
+ }) => Promise<string | null>;
12
+ };
13
+ export type ConvexAuthClient = {
14
+ verbose?: boolean;
15
+ logger?: ConvexReactClient["logger"];
16
+ };
17
+ type CrossDomainClient = ReturnType<typeof crossDomainClient>;
18
+ type ConvexClient = ReturnType<typeof convexClient>;
19
+ type PluginsWithCrossDomain = (CrossDomainClient | ConvexClient | BetterAuthClientPlugin)[];
20
+ type PluginsWithoutCrossDomain = (ConvexClient | BetterAuthClientPlugin)[];
21
+ type AuthClientWithPlugins<Plugins extends PluginsWithCrossDomain | PluginsWithoutCrossDomain> = ReturnType<typeof createAuthClient<ClientOptions & {
22
+ plugins: Plugins;
23
+ }>>;
24
+ export type AuthClient = AuthClientWithPlugins<PluginsWithCrossDomain> | AuthClientWithPlugins<PluginsWithoutCrossDomain>;
25
+ export declare function AuthProvider({ client, authClient, children, }: {
26
+ client: ConvexAuthClient;
27
+ authClient: AuthClient;
28
+ children: ReactNode;
29
+ }): import("react/jsx-runtime").JSX.Element;
30
+ export {};
31
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/react/client.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAEL,SAAS,EAKV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYpE,wBAAgB,OAAO;eATV,OAAO;qBACD,OAAO;sBACN,CAAC,EACjB,iBAAiB,GAClB,EAAE;QACD,iBAAiB,EAAE,OAAO,CAAC;KAC5B,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;EAK7B;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,KAAK,sBAAsB,GAAG,CAC1B,iBAAiB,GACjB,YAAY,GACZ,sBAAsB,CACzB,EAAE,CAAC;AACJ,KAAK,yBAAyB,GAAG,CAAC,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC;AAC3E,KAAK,qBAAqB,CACxB,OAAO,SAAS,sBAAsB,GAAG,yBAAyB,IAChE,UAAU,CACZ,OAAO,gBAAgB,CACrB,aAAa,GAAG;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CACF,CACF,CAAC;AACF,MAAM,MAAM,UAAU,GAClB,qBAAqB,CAAC,sBAAsB,CAAC,GAC7C,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;AAErD,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,UAAU,EACV,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAmHA"}
@@ -0,0 +1,96 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import isNetworkError from "is-network-error";
3
+ import { createContext, useCallback, useContext, useEffect, useMemo, } from "react";
4
+ const ConvexAuthInternalContext = createContext(undefined);
5
+ export function useAuth() {
6
+ return useContext(ConvexAuthInternalContext);
7
+ }
8
+ export function AuthProvider({ client, authClient, children, }) {
9
+ const { data: session, isPending: isSessionPending } = authClient.useSession();
10
+ const verbose = client.verbose ?? false;
11
+ const logVerbose = useCallback((message) => {
12
+ if (verbose) {
13
+ console.debug(`${new Date().toISOString()} ${message}`);
14
+ client.logger?.logVerbose(message);
15
+ }
16
+ }, [verbose]);
17
+ const fetchToken = useCallback(async () => {
18
+ const initialBackoff = 100;
19
+ const maxBackoff = 1000;
20
+ let retries = 0;
21
+ const nextBackoff = () => {
22
+ const baseBackoff = initialBackoff * Math.pow(2, retries);
23
+ retries += 1;
24
+ const actualBackoff = Math.min(baseBackoff, maxBackoff);
25
+ const jitter = actualBackoff * (Math.random() - 0.5);
26
+ return actualBackoff + jitter;
27
+ };
28
+ const fetchWithRetry = async () => {
29
+ try {
30
+ const { data } = await authClient.convex.token();
31
+ return data?.token || null;
32
+ }
33
+ catch (e) {
34
+ if (!isNetworkError(e)) {
35
+ throw e;
36
+ }
37
+ if (retries > 10) {
38
+ logVerbose(`fetchToken failed with network error, giving up`);
39
+ throw e;
40
+ }
41
+ const backoff = nextBackoff();
42
+ logVerbose(`fetchToken failed with network error, attempting retrying in ${backoff}ms`);
43
+ await new Promise((resolve) => setTimeout(resolve, backoff));
44
+ return fetchWithRetry();
45
+ }
46
+ };
47
+ return fetchWithRetry();
48
+ }, [client]);
49
+ const fetchAccessToken = useCallback(async ({ forceRefreshToken }) => {
50
+ if (forceRefreshToken) {
51
+ const token = await fetchToken();
52
+ logVerbose(`returning retrieved token`);
53
+ return token;
54
+ }
55
+ return null;
56
+ }, [fetchToken]);
57
+ useEffect(() => {
58
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
59
+ (async () => {
60
+ const url = new URL(window.location?.href);
61
+ const token = url.searchParams.get("ott");
62
+ if (token) {
63
+ const authClientWithCrossDomain = authClient;
64
+ url.searchParams.delete("ott");
65
+ const result = await authClientWithCrossDomain.crossDomain.oneTimeToken.verify({
66
+ token,
67
+ });
68
+ const session = result.data?.session;
69
+ if (session) {
70
+ await authClient.getSession({
71
+ fetchOptions: {
72
+ headers: {
73
+ Authorization: `Bearer ${session.token}`,
74
+ },
75
+ },
76
+ });
77
+ authClientWithCrossDomain.updateSession();
78
+ }
79
+ window.history.replaceState({}, "", url);
80
+ }
81
+ })();
82
+ },
83
+ // Explicitly chosen dependencies.
84
+ // This effect should mostly only run once
85
+ // on mount.
86
+ [client, authClient]);
87
+ const isAuthenticated = session !== null;
88
+ const isLoading = isSessionPending;
89
+ const authState = useMemo(() => ({
90
+ isLoading,
91
+ isAuthenticated,
92
+ fetchAccessToken,
93
+ }), [fetchAccessToken, isLoading, isAuthenticated]);
94
+ return (_jsx(ConvexAuthInternalContext.Provider, { value: authState, children: children }));
95
+ }
96
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/react/client.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ConvexReactClient } from "convex/react";
2
+ import { PropsWithChildren } from "react";
3
+ import { AuthClient } from "./client";
4
+ export declare function ConvexBetterAuthProvider({ client, authClient, children, }: PropsWithChildren<{
5
+ client: ConvexReactClient;
6
+ authClient: AuthClient;
7
+ }>): import("react/jsx-runtime").JSX.Element;
8
+ export { ConvexBetterAuthProvider as ConvexProviderWithBetterAuth };
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AACnD,OAAO,EACL,UAAU,EAIX,MAAM,UAAU,CAAC;AAElB,wBAAgB,wBAAwB,CAAC,EACvC,MAAM,EACN,UAAU,EACV,QAAQ,GACT,EAAE,iBAAiB,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC,2CAgBD;AAGD,OAAO,EAAE,wBAAwB,IAAI,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { ConvexProviderWithAuth } from "convex/react";
4
+ import { useMemo } from "react";
5
+ import { AuthProvider, useAuth, } from "./client";
6
+ export function ConvexBetterAuthProvider({ client, authClient, children, }) {
7
+ const convexAuthClient = useMemo(() => ({
8
+ verbose: client.options?.verbose,
9
+ logger: client.logger,
10
+ }), [client]);
11
+ return (_jsx(AuthProvider, { client: convexAuthClient, authClient: authClient, children: _jsx(ConvexProviderWithAuth, { client: client, useAuth: useAuth, children: children }) }));
12
+ }
13
+ // TODO: Remove, short-lived alias
14
+ export { ConvexBetterAuthProvider as ConvexProviderWithBetterAuth };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/react/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,sBAAsB,EAAqB,MAAM,cAAc,CAAC;AACzE,OAAO,EAAqB,OAAO,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAEL,YAAY,EACZ,OAAO,GAER,MAAM,UAAU,CAAC;AAElB,MAAM,UAAU,wBAAwB,CAAC,EACvC,MAAM,EACN,UAAU,EACV,QAAQ,GAIR;IACA,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CACH,CAAC;QACC,OAAO,EAAG,MAAc,CAAC,OAAO,EAAE,OAAO;QACzC,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAA4B,EAC/B,CAAC,MAAM,CAAC,CACT,CAAC;IACF,OAAO,CACL,KAAC,YAAY,IAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,YAC5D,KAAC,sBAAsB,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,YACrD,QAAQ,GACc,GACZ,CAChB,CAAC;AACJ,CAAC;AAED,kCAAkC;AAClC,OAAO,EAAE,wBAAwB,IAAI,4BAA4B,EAAE,CAAC"}