@better-auth-ui/react 1.6.3 → 1.6.4

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 (346) hide show
  1. package/dist/components/auth/auth-provider.d.ts +23 -8
  2. package/dist/components/auth/auth-provider.js +32 -17
  3. package/dist/components/{email → auth/email}/email-changed.js +2 -2
  4. package/dist/components/{email → auth/email}/email-localization.js +1 -1
  5. package/dist/components/{email → auth/email}/email-styles.js +1 -1
  6. package/dist/components/{email → auth/email}/email-verification.js +2 -2
  7. package/dist/components/{email → auth/email}/magic-link.js +2 -2
  8. package/dist/components/{email → auth/email}/new-device.js +2 -2
  9. package/dist/components/{email → auth/email}/otp-email.js +2 -2
  10. package/dist/components/{email → auth/email}/password-changed.js +2 -2
  11. package/dist/components/{email → auth/email}/reset-password.js +2 -2
  12. package/dist/email.d.ts +1 -0
  13. package/dist/email.js +11 -0
  14. package/dist/hooks/auth/use-authenticate.d.ts +5 -28
  15. package/dist/hooks/auth/use-authenticate.js +12 -12
  16. package/dist/hooks/auth/use-user.d.ts +19 -314
  17. package/dist/hooks/auth/use-user.js +5 -5
  18. package/dist/hooks/use-auth-mutation.d.ts +12 -7
  19. package/dist/hooks/use-auth-plugin.d.ts +31 -0
  20. package/dist/hooks/use-auth-plugin.js +10 -0
  21. package/dist/hooks/use-auth-query.d.ts +3 -3
  22. package/dist/index.d.ts +33 -32
  23. package/dist/index.js +74 -83
  24. package/dist/lib/auth-client.d.ts +23 -3687
  25. package/dist/lib/auth-plugin.d.ts +59 -0
  26. package/dist/lib/auth-server.d.ts +16 -0
  27. package/dist/mutations/auth/request-password-reset-mutation.d.ts +26 -0
  28. package/dist/mutations/auth/request-password-reset-mutation.js +24 -0
  29. package/dist/mutations/auth/reset-password-mutation.d.ts +25 -0
  30. package/dist/mutations/auth/reset-password-mutation.js +24 -0
  31. package/dist/mutations/auth/send-verification-email-mutation.d.ts +24 -0
  32. package/dist/mutations/auth/send-verification-email-mutation.js +24 -0
  33. package/dist/mutations/auth/sign-in-email-mutation.d.ts +71 -0
  34. package/dist/mutations/auth/sign-in-email-mutation.js +29 -0
  35. package/dist/mutations/auth/sign-in-social-mutation.d.ts +77 -0
  36. package/dist/mutations/auth/sign-in-social-mutation.js +24 -0
  37. package/dist/mutations/auth/sign-out-mutation.d.ts +25 -0
  38. package/dist/mutations/auth/sign-out-mutation.js +28 -0
  39. package/dist/mutations/auth/sign-up-email-mutation.d.ts +105 -0
  40. package/dist/mutations/auth/sign-up-email-mutation.js +29 -0
  41. package/dist/mutations/auth-mutation-options.d.ts +37 -20
  42. package/dist/mutations/auth-mutation-options.js +2 -2
  43. package/dist/mutations/magic-link/sign-in-magic-link-mutation.d.ts +24 -0
  44. package/dist/mutations/magic-link/sign-in-magic-link-mutation.js +24 -0
  45. package/dist/mutations/multi-session/revoke-multi-session-mutation.d.ts +25 -0
  46. package/dist/mutations/multi-session/revoke-multi-session-mutation.js +29 -0
  47. package/dist/mutations/multi-session/set-active-session-mutation.d.ts +62 -0
  48. package/dist/mutations/multi-session/set-active-session-mutation.js +31 -0
  49. package/dist/mutations/passkey/add-passkey-mutation.d.ts +71 -0
  50. package/dist/mutations/passkey/add-passkey-mutation.js +29 -0
  51. package/dist/mutations/passkey/delete-passkey-mutation.d.ts +25 -0
  52. package/dist/mutations/passkey/delete-passkey-mutation.js +29 -0
  53. package/dist/mutations/passkey/sign-in-passkey-mutation.d.ts +105 -0
  54. package/dist/mutations/passkey/sign-in-passkey-mutation.js +29 -0
  55. package/dist/mutations/settings/change-email-mutation.d.ts +25 -0
  56. package/dist/mutations/settings/change-email-mutation.js +29 -0
  57. package/dist/mutations/settings/change-password-mutation.d.ts +78 -0
  58. package/dist/mutations/settings/change-password-mutation.js +24 -0
  59. package/dist/mutations/settings/delete-user-mutation.d.ts +26 -0
  60. package/dist/mutations/settings/delete-user-mutation.js +24 -0
  61. package/dist/mutations/settings/link-social-mutation.d.ts +26 -0
  62. package/dist/mutations/settings/link-social-mutation.js +24 -0
  63. package/dist/mutations/settings/revoke-session-mutation.d.ts +25 -0
  64. package/dist/mutations/settings/revoke-session-mutation.js +29 -0
  65. package/dist/mutations/settings/unlink-account-mutation.d.ts +25 -0
  66. package/dist/mutations/settings/unlink-account-mutation.js +29 -0
  67. package/dist/mutations/settings/update-user-mutation.d.ts +25 -0
  68. package/dist/mutations/settings/update-user-mutation.js +35 -0
  69. package/dist/mutations/username/is-username-available-mutation.d.ts +27 -0
  70. package/dist/mutations/username/is-username-available-mutation.js +24 -0
  71. package/dist/mutations/username/sign-in-username-mutation.d.ts +75 -0
  72. package/dist/mutations/username/sign-in-username-mutation.js +29 -0
  73. package/dist/queries/auth/session-query.d.ts +71 -0
  74. package/dist/queries/auth/session-query.js +30 -0
  75. package/dist/queries/auth-query-options.d.ts +26 -15
  76. package/dist/queries/multi-session/list-device-sessions-query.d.ts +76 -0
  77. package/dist/queries/multi-session/list-device-sessions-query.js +31 -0
  78. package/dist/queries/passkey/list-passkeys-query.d.ts +74 -0
  79. package/dist/queries/passkey/list-passkeys-query.js +31 -0
  80. package/dist/queries/settings/account-info-query.d.ts +85 -0
  81. package/dist/queries/settings/account-info-query.js +31 -0
  82. package/dist/queries/settings/list-accounts-query.d.ts +76 -0
  83. package/dist/queries/settings/list-accounts-query.js +31 -0
  84. package/dist/queries/settings/list-sessions-query.d.ts +74 -0
  85. package/dist/queries/settings/list-sessions-query.js +31 -0
  86. package/dist/server/queries/auth/session-query.d.ts +57 -0
  87. package/dist/server/queries/auth/session-query.js +13 -0
  88. package/dist/server/queries/multi-session/list-device-sessions-query.d.ts +60 -0
  89. package/dist/server/queries/multi-session/list-device-sessions-query.js +12 -0
  90. package/dist/server/queries/passkey/list-passkeys-query.d.ts +60 -0
  91. package/dist/server/queries/passkey/list-passkeys-query.js +12 -0
  92. package/dist/server/queries/settings/account-info-query.d.ts +68 -0
  93. package/dist/server/queries/settings/account-info-query.js +12 -0
  94. package/dist/server/queries/settings/list-accounts-query.d.ts +60 -0
  95. package/dist/server/queries/settings/list-accounts-query.js +12 -0
  96. package/dist/server/queries/settings/list-sessions-query.d.ts +60 -0
  97. package/dist/server/queries/settings/list-sessions-query.js +12 -0
  98. package/dist/server.d.ts +7 -0
  99. package/dist/server.js +7 -0
  100. package/package.json +24 -22
  101. package/src/components/auth/auth-provider.tsx +87 -24
  102. package/src/components/{email → auth/email}/email-changed.tsx +1 -1
  103. package/src/components/{email → auth/email}/email-verification.tsx +1 -1
  104. package/src/components/{email → auth/email}/magic-link.tsx +1 -1
  105. package/src/components/{email → auth/email}/new-device.tsx +1 -1
  106. package/src/components/{email → auth/email}/otp-email.tsx +1 -1
  107. package/src/components/{email → auth/email}/password-changed.tsx +1 -1
  108. package/src/components/{email → auth/email}/reset-password.tsx +1 -1
  109. package/src/email.ts +1 -0
  110. package/src/hooks/auth/use-authenticate.ts +12 -6
  111. package/src/hooks/auth/use-user.ts +14 -9
  112. package/src/hooks/use-auth-mutation.ts +30 -12
  113. package/src/hooks/use-auth-plugin.ts +50 -0
  114. package/src/hooks/use-auth-query.ts +11 -7
  115. package/src/index.ts +33 -32
  116. package/src/lib/auth-client.ts +33 -31
  117. package/src/lib/auth-plugin.ts +75 -0
  118. package/src/lib/auth-server.ts +30 -0
  119. package/src/mutations/auth/request-password-reset-mutation.ts +58 -0
  120. package/src/mutations/auth/reset-password-mutation.ts +60 -0
  121. package/src/mutations/auth/send-verification-email-mutation.ts +58 -0
  122. package/src/mutations/auth/sign-in-email-mutation.ts +78 -0
  123. package/src/mutations/auth/sign-in-social-mutation.ts +64 -0
  124. package/src/mutations/auth/sign-out-mutation.ts +71 -0
  125. package/src/mutations/auth/sign-up-email-mutation.ts +74 -0
  126. package/src/mutations/auth-mutation-options.ts +83 -38
  127. package/src/mutations/magic-link/sign-in-magic-link-mutation.ts +59 -0
  128. package/src/mutations/multi-session/revoke-multi-session-mutation.ts +70 -0
  129. package/src/mutations/multi-session/set-active-session-mutation.ts +98 -0
  130. package/src/mutations/passkey/add-passkey-mutation.ts +66 -0
  131. package/src/mutations/passkey/delete-passkey-mutation.ts +66 -0
  132. package/src/mutations/passkey/sign-in-passkey-mutation.ts +74 -0
  133. package/src/mutations/settings/change-email-mutation.ts +67 -0
  134. package/src/mutations/settings/change-password-mutation.ts +59 -0
  135. package/src/mutations/settings/delete-user-mutation.ts +59 -0
  136. package/src/mutations/settings/link-social-mutation.ts +59 -0
  137. package/src/mutations/settings/revoke-session-mutation.ts +69 -0
  138. package/src/mutations/settings/unlink-account-mutation.ts +67 -0
  139. package/src/mutations/settings/update-user-mutation.ts +82 -0
  140. package/src/mutations/username/is-username-available-mutation.ts +62 -0
  141. package/src/mutations/username/sign-in-username-mutation.ts +74 -0
  142. package/src/queries/auth/session-query.ts +135 -0
  143. package/src/queries/auth-query-options.ts +61 -12
  144. package/src/queries/multi-session/list-device-sessions-query.ts +177 -0
  145. package/src/queries/passkey/list-passkeys-query.ts +154 -0
  146. package/src/queries/settings/account-info-query.ts +158 -0
  147. package/src/queries/settings/list-accounts-query.ts +156 -0
  148. package/src/queries/settings/list-sessions-query.ts +154 -0
  149. package/src/server/queries/auth/session-query.ts +94 -0
  150. package/src/server/queries/multi-session/list-device-sessions-query.ts +102 -0
  151. package/src/server/queries/passkey/list-passkeys-query.ts +100 -0
  152. package/src/server/queries/settings/account-info-query.ts +101 -0
  153. package/src/server/queries/settings/list-accounts-query.ts +101 -0
  154. package/src/server/queries/settings/list-sessions-query.ts +101 -0
  155. package/src/server.ts +7 -0
  156. package/dist/core.d.ts +0 -1
  157. package/dist/core.js +0 -1
  158. package/dist/hooks/auth/use-is-username-available.d.ts +0 -20
  159. package/dist/hooks/auth/use-is-username-available.js +0 -13
  160. package/dist/hooks/auth/use-request-password-reset.d.ts +0 -21
  161. package/dist/hooks/auth/use-request-password-reset.js +0 -13
  162. package/dist/hooks/auth/use-reset-password.d.ts +0 -23
  163. package/dist/hooks/auth/use-reset-password.js +0 -13
  164. package/dist/hooks/auth/use-send-verification-email.d.ts +0 -19
  165. package/dist/hooks/auth/use-send-verification-email.js +0 -13
  166. package/dist/hooks/auth/use-session.d.ts +0 -35
  167. package/dist/hooks/auth/use-session.js +0 -16
  168. package/dist/hooks/auth/use-sign-in-email.d.ts +0 -26
  169. package/dist/hooks/auth/use-sign-in-email.js +0 -17
  170. package/dist/hooks/auth/use-sign-in-magic-link.d.ts +0 -27
  171. package/dist/hooks/auth/use-sign-in-magic-link.js +0 -13
  172. package/dist/hooks/auth/use-sign-in-passkey.d.ts +0 -21
  173. package/dist/hooks/auth/use-sign-in-passkey.js +0 -17
  174. package/dist/hooks/auth/use-sign-in-social.d.ts +0 -63
  175. package/dist/hooks/auth/use-sign-in-social.js +0 -13
  176. package/dist/hooks/auth/use-sign-in-username.d.ts +0 -25
  177. package/dist/hooks/auth/use-sign-in-username.js +0 -17
  178. package/dist/hooks/auth/use-sign-out.d.ts +0 -18
  179. package/dist/hooks/auth/use-sign-out.js +0 -16
  180. package/dist/hooks/auth/use-sign-up-email.d.ts +0 -1186
  181. package/dist/hooks/auth/use-sign-up-email.js +0 -17
  182. package/dist/hooks/settings/use-account-info.d.ts +0 -17
  183. package/dist/hooks/settings/use-account-info.js +0 -18
  184. package/dist/hooks/settings/use-add-passkey.d.ts +0 -21
  185. package/dist/hooks/settings/use-add-passkey.js +0 -17
  186. package/dist/hooks/settings/use-change-email.d.ts +0 -21
  187. package/dist/hooks/settings/use-change-email.js +0 -17
  188. package/dist/hooks/settings/use-change-password.d.ts +0 -21
  189. package/dist/hooks/settings/use-change-password.js +0 -13
  190. package/dist/hooks/settings/use-delete-passkey.d.ts +0 -19
  191. package/dist/hooks/settings/use-delete-passkey.js +0 -17
  192. package/dist/hooks/settings/use-delete-user.d.ts +0 -24
  193. package/dist/hooks/settings/use-delete-user.js +0 -13
  194. package/dist/hooks/settings/use-link-social.d.ts +0 -43
  195. package/dist/hooks/settings/use-link-social.js +0 -13
  196. package/dist/hooks/settings/use-list-accounts.d.ts +0 -22
  197. package/dist/hooks/settings/use-list-accounts.js +0 -15
  198. package/dist/hooks/settings/use-list-device-sessions.d.ts +0 -34
  199. package/dist/hooks/settings/use-list-device-sessions.js +0 -15
  200. package/dist/hooks/settings/use-list-sessions.d.ts +0 -23
  201. package/dist/hooks/settings/use-list-sessions.js +0 -15
  202. package/dist/hooks/settings/use-list-user-passkeys.d.ts +0 -14
  203. package/dist/hooks/settings/use-list-user-passkeys.js +0 -15
  204. package/dist/hooks/settings/use-revoke-multi-session.d.ts +0 -19
  205. package/dist/hooks/settings/use-revoke-multi-session.js +0 -17
  206. package/dist/hooks/settings/use-revoke-session.d.ts +0 -19
  207. package/dist/hooks/settings/use-revoke-session.js +0 -17
  208. package/dist/hooks/settings/use-set-active-session.d.ts +0 -20
  209. package/dist/hooks/settings/use-set-active-session.js +0 -20
  210. package/dist/hooks/settings/use-unlink-account.d.ts +0 -21
  211. package/dist/hooks/settings/use-unlink-account.js +0 -17
  212. package/dist/hooks/settings/use-update-user.d.ts +0 -1185
  213. package/dist/hooks/settings/use-update-user.js +0 -24
  214. package/dist/lib/auth-client.js +0 -11
  215. package/dist/lib/auth-config.d.ts +0 -43
  216. package/dist/lib/auth-context.d.ts +0 -2
  217. package/dist/lib/auth-context.js +0 -6
  218. package/dist/mutations/auth/is-username-available-options.d.ts +0 -19
  219. package/dist/mutations/auth/is-username-available-options.js +0 -7
  220. package/dist/mutations/auth/request-password-reset-options.d.ts +0 -15
  221. package/dist/mutations/auth/request-password-reset-options.js +0 -7
  222. package/dist/mutations/auth/reset-password-options.d.ts +0 -17
  223. package/dist/mutations/auth/reset-password-options.js +0 -7
  224. package/dist/mutations/auth/send-verification-email-options.d.ts +0 -15
  225. package/dist/mutations/auth/send-verification-email-options.js +0 -7
  226. package/dist/mutations/auth/sign-in-email-options.d.ts +0 -23
  227. package/dist/mutations/auth/sign-in-email-options.js +0 -11
  228. package/dist/mutations/auth/sign-in-magic-link-options.d.ts +0 -23
  229. package/dist/mutations/auth/sign-in-magic-link-options.js +0 -11
  230. package/dist/mutations/auth/sign-in-passkey-options.d.ts +0 -15
  231. package/dist/mutations/auth/sign-in-passkey-options.js +0 -11
  232. package/dist/mutations/auth/sign-in-social-options.d.ts +0 -61
  233. package/dist/mutations/auth/sign-in-social-options.js +0 -11
  234. package/dist/mutations/auth/sign-in-username-options.d.ts +0 -19
  235. package/dist/mutations/auth/sign-in-username-options.js +0 -11
  236. package/dist/mutations/auth/sign-out-options.d.ts +0 -12
  237. package/dist/mutations/auth/sign-out-options.js +0 -7
  238. package/dist/mutations/auth/sign-up-email-options.d.ts +0 -1180
  239. package/dist/mutations/auth/sign-up-email-options.js +0 -11
  240. package/dist/mutations/settings/add-passkey-options.d.ts +0 -15
  241. package/dist/mutations/settings/add-passkey-options.js +0 -11
  242. package/dist/mutations/settings/change-email-options.d.ts +0 -15
  243. package/dist/mutations/settings/change-email-options.js +0 -7
  244. package/dist/mutations/settings/change-password-options.d.ts +0 -17
  245. package/dist/mutations/settings/change-password-options.js +0 -7
  246. package/dist/mutations/settings/delete-passkey-options.d.ts +0 -13
  247. package/dist/mutations/settings/delete-passkey-options.js +0 -11
  248. package/dist/mutations/settings/delete-user-options.d.ts +0 -20
  249. package/dist/mutations/settings/delete-user-options.js +0 -7
  250. package/dist/mutations/settings/link-social-options.d.ts +0 -39
  251. package/dist/mutations/settings/link-social-options.js +0 -7
  252. package/dist/mutations/settings/revoke-multi-session-options.d.ts +0 -13
  253. package/dist/mutations/settings/revoke-multi-session-options.js +0 -11
  254. package/dist/mutations/settings/revoke-session-options.d.ts +0 -13
  255. package/dist/mutations/settings/revoke-session-options.js +0 -7
  256. package/dist/mutations/settings/set-active-session-options.d.ts +0 -13
  257. package/dist/mutations/settings/set-active-session-options.js +0 -11
  258. package/dist/mutations/settings/unlink-account-options.d.ts +0 -15
  259. package/dist/mutations/settings/unlink-account-options.js +0 -7
  260. package/dist/mutations/settings/update-user-options.d.ts +0 -1182
  261. package/dist/mutations/settings/update-user-options.js +0 -7
  262. package/dist/queries/auth/session-options.d.ts +0 -110
  263. package/dist/queries/auth/session-options.js +0 -7
  264. package/dist/queries/settings/account-info-options.d.ts +0 -32
  265. package/dist/queries/settings/account-info-options.js +0 -12
  266. package/dist/queries/settings/list-accounts-options.d.ts +0 -53
  267. package/dist/queries/settings/list-accounts-options.js +0 -12
  268. package/dist/queries/settings/list-device-sessions-options.d.ts +0 -99
  269. package/dist/queries/settings/list-device-sessions-options.js +0 -12
  270. package/dist/queries/settings/list-sessions-options.d.ts +0 -54
  271. package/dist/queries/settings/list-sessions-options.js +0 -12
  272. package/dist/queries/settings/list-user-passkeys-options.d.ts +0 -18
  273. package/dist/queries/settings/list-user-passkeys-options.js +0 -12
  274. package/src/core.ts +0 -1
  275. package/src/hooks/auth/use-is-username-available.ts +0 -31
  276. package/src/hooks/auth/use-request-password-reset.ts +0 -33
  277. package/src/hooks/auth/use-reset-password.ts +0 -31
  278. package/src/hooks/auth/use-send-verification-email.ts +0 -31
  279. package/src/hooks/auth/use-session.ts +0 -31
  280. package/src/hooks/auth/use-sign-in-email.ts +0 -41
  281. package/src/hooks/auth/use-sign-in-magic-link.ts +0 -29
  282. package/src/hooks/auth/use-sign-in-passkey.ts +0 -40
  283. package/src/hooks/auth/use-sign-in-social.ts +0 -31
  284. package/src/hooks/auth/use-sign-in-username.ts +0 -40
  285. package/src/hooks/auth/use-sign-out.ts +0 -34
  286. package/src/hooks/auth/use-sign-up-email.ts +0 -40
  287. package/src/hooks/settings/use-account-info.ts +0 -40
  288. package/src/hooks/settings/use-add-passkey.ts +0 -37
  289. package/src/hooks/settings/use-change-email.ts +0 -37
  290. package/src/hooks/settings/use-change-password.ts +0 -29
  291. package/src/hooks/settings/use-delete-passkey.ts +0 -37
  292. package/src/hooks/settings/use-delete-user.ts +0 -29
  293. package/src/hooks/settings/use-link-social.ts +0 -29
  294. package/src/hooks/settings/use-list-accounts.ts +0 -39
  295. package/src/hooks/settings/use-list-device-sessions.ts +0 -39
  296. package/src/hooks/settings/use-list-sessions.ts +0 -39
  297. package/src/hooks/settings/use-list-user-passkeys.ts +0 -39
  298. package/src/hooks/settings/use-revoke-multi-session.ts +0 -39
  299. package/src/hooks/settings/use-revoke-session.ts +0 -39
  300. package/src/hooks/settings/use-set-active-session.ts +0 -58
  301. package/src/hooks/settings/use-unlink-account.ts +0 -37
  302. package/src/hooks/settings/use-update-user.ts +0 -50
  303. package/src/lib/auth-config.ts +0 -48
  304. package/src/lib/auth-context.ts +0 -6
  305. package/src/mutations/auth/is-username-available-options.ts +0 -18
  306. package/src/mutations/auth/request-password-reset-options.ts +0 -14
  307. package/src/mutations/auth/reset-password-options.ts +0 -14
  308. package/src/mutations/auth/send-verification-email-options.ts +0 -14
  309. package/src/mutations/auth/sign-in-email-options.ts +0 -19
  310. package/src/mutations/auth/sign-in-magic-link-options.ts +0 -15
  311. package/src/mutations/auth/sign-in-passkey-options.ts +0 -15
  312. package/src/mutations/auth/sign-in-social-options.ts +0 -19
  313. package/src/mutations/auth/sign-in-username-options.ts +0 -15
  314. package/src/mutations/auth/sign-out-options.ts +0 -11
  315. package/src/mutations/auth/sign-up-email-options.ts +0 -15
  316. package/src/mutations/settings/add-passkey-options.ts +0 -15
  317. package/src/mutations/settings/change-email-options.ts +0 -11
  318. package/src/mutations/settings/change-password-options.ts +0 -14
  319. package/src/mutations/settings/delete-passkey-options.ts +0 -15
  320. package/src/mutations/settings/delete-user-options.ts +0 -11
  321. package/src/mutations/settings/link-social-options.ts +0 -11
  322. package/src/mutations/settings/revoke-multi-session-options.ts +0 -15
  323. package/src/mutations/settings/revoke-session-options.ts +0 -14
  324. package/src/mutations/settings/set-active-session-options.ts +0 -15
  325. package/src/mutations/settings/unlink-account-options.ts +0 -14
  326. package/src/mutations/settings/update-user-options.ts +0 -15
  327. package/src/queries/auth/session-options.ts +0 -18
  328. package/src/queries/settings/account-info-options.ts +0 -25
  329. package/src/queries/settings/list-accounts-options.ts +0 -26
  330. package/src/queries/settings/list-device-sessions-options.ts +0 -24
  331. package/src/queries/settings/list-sessions-options.ts +0 -23
  332. package/src/queries/settings/list-user-passkeys-options.ts +0 -23
  333. /package/dist/components/{email → auth/email}/email-changed.d.ts +0 -0
  334. /package/dist/components/{email → auth/email}/email-localization.d.ts +0 -0
  335. /package/dist/components/{email → auth/email}/email-styles.d.ts +0 -0
  336. /package/dist/components/{email → auth/email}/email-verification.d.ts +0 -0
  337. /package/dist/components/{email → auth/email}/index.d.ts +0 -0
  338. /package/dist/components/{email → auth/email}/index.js +0 -0
  339. /package/dist/components/{email → auth/email}/magic-link.d.ts +0 -0
  340. /package/dist/components/{email → auth/email}/new-device.d.ts +0 -0
  341. /package/dist/components/{email → auth/email}/otp-email.d.ts +0 -0
  342. /package/dist/components/{email → auth/email}/password-changed.d.ts +0 -0
  343. /package/dist/components/{email → auth/email}/reset-password.d.ts +0 -0
  344. /package/src/components/{email → auth/email}/email-localization.tsx +0 -0
  345. /package/src/components/{email → auth/email}/email-styles.tsx +0 -0
  346. /package/src/components/{email → auth/email}/index.ts +0 -0
@@ -0,0 +1,30 @@
1
+ import type { passkey } from "@better-auth/passkey"
2
+ import type { Auth } from "better-auth"
3
+ import type { magicLink, multiSession, username } from "better-auth/plugins"
4
+
5
+ export type AuthServer = Pick<Auth, "api">
6
+
7
+ // Per-plugin variants mirror the client-side types in `auth-client.ts` so
8
+ // server-side query factories can depend on a narrow `auth` shape that
9
+ // includes the plugin's API surface without requiring the full `betterAuth`
10
+ // return type to be threaded through as a generic.
11
+
12
+ export type MagicLinkAuthServer = Pick<
13
+ Auth<{ plugins: [ReturnType<typeof magicLink>] }>,
14
+ "api"
15
+ >
16
+
17
+ export type MultiSessionAuthServer = Pick<
18
+ Auth<{ plugins: [ReturnType<typeof multiSession>] }>,
19
+ "api"
20
+ >
21
+
22
+ export type PasskeyAuthServer = Pick<
23
+ Auth<{ plugins: [ReturnType<typeof passkey>] }>,
24
+ "api"
25
+ >
26
+
27
+ export type UsernameAuthServer = Pick<
28
+ Auth<{ plugins: [ReturnType<typeof username>] }>,
29
+ "api"
30
+ >
@@ -0,0 +1,58 @@
1
+ import { authMutationKeys } from "@better-auth-ui/core"
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query"
3
+ import type { BetterFetchError } from "better-auth/react"
4
+
5
+ import type { AuthClient } from "../../lib/auth-client"
6
+
7
+ export type RequestPasswordResetParams<TAuthClient extends AuthClient> =
8
+ Parameters<TAuthClient["requestPasswordReset"]>[0]
9
+
10
+ export type RequestPasswordResetOptions<TAuthClient extends AuthClient> = Omit<
11
+ ReturnType<typeof requestPasswordResetOptions<TAuthClient>>,
12
+ "mutationKey" | "mutationFn"
13
+ >
14
+
15
+ /**
16
+ * Mutation options factory for requesting a password reset email.
17
+ *
18
+ * @param authClient - The Better Auth client.
19
+ */
20
+ export function requestPasswordResetOptions<TAuthClient extends AuthClient>(
21
+ authClient: TAuthClient
22
+ ) {
23
+ const mutationKey = authMutationKeys.requestPasswordReset
24
+
25
+ const mutationFn = (params: RequestPasswordResetParams<TAuthClient>) =>
26
+ authClient.requestPasswordReset({
27
+ ...params,
28
+ fetchOptions: { ...params?.fetchOptions, throw: true }
29
+ })
30
+
31
+ return mutationOptions<
32
+ Awaited<ReturnType<typeof mutationFn>>,
33
+ BetterFetchError,
34
+ Parameters<typeof mutationFn>[0]
35
+ >({
36
+ mutationKey,
37
+ mutationFn
38
+ })
39
+ }
40
+
41
+ /**
42
+ * Create a mutation for requesting a password reset email.
43
+ *
44
+ * Wraps `authClient.requestPasswordReset` and forwards React Query mutation
45
+ * options such as `onSuccess`, `onError`, and `retry`.
46
+ *
47
+ * @param authClient - The Better Auth client.
48
+ * @param options - React Query options forwarded to `useMutation`.
49
+ */
50
+ export function useRequestPasswordReset<TAuthClient extends AuthClient>(
51
+ authClient: TAuthClient,
52
+ options?: RequestPasswordResetOptions<TAuthClient>
53
+ ) {
54
+ return useMutation({
55
+ ...requestPasswordResetOptions(authClient),
56
+ ...options
57
+ })
58
+ }
@@ -0,0 +1,60 @@
1
+ import { authMutationKeys } from "@better-auth-ui/core"
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query"
3
+ import type { BetterFetchError } from "better-auth/react"
4
+
5
+ import type { AuthClient } from "../../lib/auth-client"
6
+
7
+ export type ResetPasswordParams<TAuthClient extends AuthClient> = Parameters<
8
+ TAuthClient["resetPassword"]
9
+ >[0]
10
+
11
+ export type ResetPasswordOptions<TAuthClient extends AuthClient> = Omit<
12
+ ReturnType<typeof resetPasswordOptions<TAuthClient>>,
13
+ "mutationKey" | "mutationFn"
14
+ >
15
+
16
+ /**
17
+ * Mutation options factory for completing a password reset.
18
+ *
19
+ * @param authClient - The Better Auth client.
20
+ */
21
+ export function resetPasswordOptions<TAuthClient extends AuthClient>(
22
+ authClient: TAuthClient
23
+ ) {
24
+ const mutationKey = authMutationKeys.resetPassword
25
+
26
+ const mutationFn = (params: ResetPasswordParams<TAuthClient>) =>
27
+ authClient.resetPassword({
28
+ ...params,
29
+ fetchOptions: { ...params?.fetchOptions, throw: true }
30
+ })
31
+
32
+ return mutationOptions<
33
+ Awaited<ReturnType<typeof mutationFn>>,
34
+ BetterFetchError,
35
+ Parameters<typeof mutationFn>[0]
36
+ >({
37
+ mutationKey,
38
+ mutationFn
39
+ })
40
+ }
41
+
42
+ /**
43
+ * Create a mutation for completing a password reset.
44
+ *
45
+ * Wraps `authClient.resetPassword` (using the token from the reset email)
46
+ * and forwards React Query mutation options such as `onSuccess`, `onError`,
47
+ * and `retry`.
48
+ *
49
+ * @param authClient - The Better Auth client.
50
+ * @param options - React Query options forwarded to `useMutation`.
51
+ */
52
+ export function useResetPassword<TAuthClient extends AuthClient>(
53
+ authClient: TAuthClient,
54
+ options?: ResetPasswordOptions<TAuthClient>
55
+ ) {
56
+ return useMutation({
57
+ ...resetPasswordOptions(authClient),
58
+ ...options
59
+ })
60
+ }
@@ -0,0 +1,58 @@
1
+ import { authMutationKeys } from "@better-auth-ui/core"
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query"
3
+ import type { BetterFetchError } from "better-auth/react"
4
+
5
+ import type { AuthClient } from "../../lib/auth-client"
6
+
7
+ export type SendVerificationEmailParams<TAuthClient extends AuthClient> =
8
+ Parameters<TAuthClient["sendVerificationEmail"]>[0]
9
+
10
+ export type SendVerificationEmailOptions<TAuthClient extends AuthClient> = Omit<
11
+ ReturnType<typeof sendVerificationEmailOptions<TAuthClient>>,
12
+ "mutationKey" | "mutationFn"
13
+ >
14
+
15
+ /**
16
+ * Mutation options factory for sending a verification email.
17
+ *
18
+ * @param authClient - The Better Auth client.
19
+ */
20
+ export function sendVerificationEmailOptions<TAuthClient extends AuthClient>(
21
+ authClient: TAuthClient
22
+ ) {
23
+ const mutationKey = authMutationKeys.sendVerificationEmail
24
+
25
+ const mutationFn = (params: SendVerificationEmailParams<TAuthClient>) =>
26
+ authClient.sendVerificationEmail({
27
+ ...params,
28
+ fetchOptions: { ...params?.fetchOptions, throw: true }
29
+ })
30
+
31
+ return mutationOptions<
32
+ Awaited<ReturnType<typeof mutationFn>>,
33
+ BetterFetchError,
34
+ Parameters<typeof mutationFn>[0]
35
+ >({
36
+ mutationKey,
37
+ mutationFn
38
+ })
39
+ }
40
+
41
+ /**
42
+ * Create a mutation for sending an email-verification link.
43
+ *
44
+ * Wraps `authClient.sendVerificationEmail` and forwards React Query mutation
45
+ * options such as `onSuccess`, `onError`, and `retry`.
46
+ *
47
+ * @param authClient - The Better Auth client.
48
+ * @param options - React Query options forwarded to `useMutation`.
49
+ */
50
+ export function useSendVerificationEmail<TAuthClient extends AuthClient>(
51
+ authClient: TAuthClient,
52
+ options?: SendVerificationEmailOptions<TAuthClient>
53
+ ) {
54
+ return useMutation({
55
+ ...sendVerificationEmailOptions(authClient),
56
+ ...options
57
+ })
58
+ }
@@ -0,0 +1,78 @@
1
+ import { authMutationKeys } from "@better-auth-ui/core"
2
+ import {
3
+ mutationOptions,
4
+ useMutation,
5
+ useQueryClient
6
+ } from "@tanstack/react-query"
7
+ import type { BetterFetchError } from "better-auth/react"
8
+
9
+ import type { AuthClient } from "../../lib/auth-client"
10
+ import { sessionOptions } from "../../queries/auth/session-query"
11
+
12
+ export type SignInEmailParams<TAuthClient extends AuthClient> = Parameters<
13
+ TAuthClient["signIn"]["email"]
14
+ >[0]
15
+
16
+ export type SignInEmailOptions<TAuthClient extends AuthClient> = Omit<
17
+ ReturnType<typeof signInEmailOptions<TAuthClient>>,
18
+ "mutationKey" | "mutationFn"
19
+ >
20
+
21
+ /**
22
+ * Mutation options factory for email/password sign-in.
23
+ *
24
+ * The returned `mutationKey` (`authMutationKeys.signIn.email`) is stable and
25
+ * can be passed to `useIsMutating` or matched inside a global
26
+ * `MutationCache` observer for toast handling.
27
+ *
28
+ * @param authClient - The Better Auth client.
29
+ */
30
+ export function signInEmailOptions<TAuthClient extends AuthClient>(
31
+ authClient: TAuthClient
32
+ ) {
33
+ const mutationKey = authMutationKeys.signIn.email
34
+
35
+ const mutationFn = (params: SignInEmailParams<TAuthClient>) =>
36
+ authClient.signIn.email({
37
+ ...params,
38
+ fetchOptions: { ...params?.fetchOptions, throw: true }
39
+ })
40
+
41
+ return mutationOptions<
42
+ Awaited<ReturnType<typeof mutationFn>>,
43
+ BetterFetchError,
44
+ Parameters<typeof mutationFn>[0]
45
+ >({
46
+ mutationKey,
47
+ mutationFn
48
+ })
49
+ }
50
+
51
+ /**
52
+ * Create a mutation for email/password sign-in.
53
+ *
54
+ * Wraps `authClient.signIn.email`, resets the session query on success so
55
+ * the new session is refetched, and forwards React Query mutation options
56
+ * such as `onSuccess`, `onError`, and `retry`.
57
+ *
58
+ * @param authClient - The Better Auth client.
59
+ * @param options - React Query options forwarded to `useMutation`.
60
+ */
61
+ export function useSignInEmail<TAuthClient extends AuthClient>(
62
+ authClient: TAuthClient,
63
+ options?: SignInEmailOptions<TAuthClient>
64
+ ) {
65
+ const queryClient = useQueryClient()
66
+
67
+ return useMutation({
68
+ ...signInEmailOptions(authClient),
69
+ ...options,
70
+ onSuccess: async (...args) => {
71
+ queryClient.resetQueries({
72
+ queryKey: sessionOptions(authClient).queryKey
73
+ })
74
+
75
+ await options?.onSuccess?.(...args)
76
+ }
77
+ })
78
+ }
@@ -0,0 +1,64 @@
1
+ import { authMutationKeys } from "@better-auth-ui/core"
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query"
3
+ import type { BetterFetchError } from "better-auth/react"
4
+
5
+ import type { AuthClient } from "../../lib/auth-client"
6
+
7
+ export type SignInSocialParams<TAuthClient extends AuthClient> = Parameters<
8
+ TAuthClient["signIn"]["social"]
9
+ >[0]
10
+
11
+ export type SignInSocialOptions<TAuthClient extends AuthClient> = Omit<
12
+ ReturnType<typeof signInSocialOptions<TAuthClient>>,
13
+ "mutationKey" | "mutationFn"
14
+ >
15
+
16
+ /**
17
+ * Mutation options factory for social sign-in.
18
+ *
19
+ * The returned `mutationKey` (`["auth", "signIn", "social"]`) is stable and
20
+ * can be passed to `useIsMutating` or matched inside a global
21
+ * `MutationCache` observer for toast handling.
22
+ *
23
+ * @param authClient - The Better Auth client.
24
+ */
25
+ export function signInSocialOptions<TAuthClient extends AuthClient>(
26
+ authClient: TAuthClient
27
+ ) {
28
+ const mutationKey = authMutationKeys.signIn.social
29
+
30
+ const mutationFn = (params: SignInSocialParams<TAuthClient>) =>
31
+ authClient.signIn.social({
32
+ ...params,
33
+ fetchOptions: { ...params?.fetchOptions, throw: true }
34
+ })
35
+
36
+ return mutationOptions<
37
+ Awaited<ReturnType<typeof mutationFn>>,
38
+ BetterFetchError,
39
+ Parameters<typeof mutationFn>[0]
40
+ >({
41
+ mutationKey,
42
+ mutationFn
43
+ })
44
+ }
45
+
46
+ /**
47
+ * Create a mutation for social sign-in.
48
+ *
49
+ * Wraps `authClient.signIn.social` to initiate a provider redirect and
50
+ * forwards React Query mutation options such as `onSuccess`, `onError`,
51
+ * and `retry`.
52
+ *
53
+ * @param authClient - The Better Auth client.
54
+ * @param options - React Query options forwarded to `useMutation`.
55
+ */
56
+ export function useSignInSocial<TAuthClient extends AuthClient>(
57
+ authClient: TAuthClient,
58
+ options?: SignInSocialOptions<TAuthClient>
59
+ ) {
60
+ return useMutation({
61
+ ...signInSocialOptions(authClient),
62
+ ...options
63
+ })
64
+ }
@@ -0,0 +1,71 @@
1
+ import { authMutationKeys, authQueryKeys } from "@better-auth-ui/core"
2
+ import {
3
+ mutationOptions,
4
+ useMutation,
5
+ useQueryClient
6
+ } from "@tanstack/react-query"
7
+ import type { BetterFetchError } from "better-auth/react"
8
+
9
+ import type { AuthClient } from "../../lib/auth-client"
10
+
11
+ export type SignOutParams<TAuthClient extends AuthClient> = Parameters<
12
+ TAuthClient["signOut"]
13
+ >[0]
14
+
15
+ export type SignOutOptions<TAuthClient extends AuthClient> = Omit<
16
+ ReturnType<typeof signOutOptions<TAuthClient>>,
17
+ "mutationKey" | "mutationFn"
18
+ >
19
+
20
+ /**
21
+ * Mutation options factory for signing out.
22
+ *
23
+ * @param authClient - The Better Auth client.
24
+ */
25
+ export function signOutOptions<TAuthClient extends AuthClient>(
26
+ authClient: TAuthClient
27
+ ) {
28
+ const mutationKey = authMutationKeys.signOut
29
+
30
+ // biome-ignore lint/suspicious/noConfusingVoidType: void allows no-arg mutate
31
+ const mutationFn = (params?: SignOutParams<TAuthClient> | void) =>
32
+ authClient.signOut({
33
+ ...(params ?? {}),
34
+ fetchOptions: { ...params?.fetchOptions, throw: true }
35
+ })
36
+
37
+ return mutationOptions<
38
+ Awaited<ReturnType<typeof mutationFn>>,
39
+ BetterFetchError,
40
+ Parameters<typeof mutationFn>[0]
41
+ >({
42
+ mutationKey,
43
+ mutationFn
44
+ })
45
+ }
46
+
47
+ /**
48
+ * Create a mutation for signing the current user out.
49
+ *
50
+ * Wraps `authClient.signOut`, removes all cached auth queries on success,
51
+ * and forwards React Query mutation options such as `onSuccess`, `onError`,
52
+ * and `retry`.
53
+ *
54
+ * @param authClient - The Better Auth client.
55
+ * @param options - React Query options forwarded to `useMutation`.
56
+ */
57
+ export function useSignOut<TAuthClient extends AuthClient>(
58
+ authClient: TAuthClient,
59
+ options?: SignOutOptions<TAuthClient>
60
+ ) {
61
+ const queryClient = useQueryClient()
62
+
63
+ return useMutation({
64
+ ...signOutOptions(authClient),
65
+ ...options,
66
+ onSuccess: async (...args) => {
67
+ queryClient.removeQueries({ queryKey: authQueryKeys.all })
68
+ await options?.onSuccess?.(...args)
69
+ }
70
+ })
71
+ }
@@ -0,0 +1,74 @@
1
+ import { authMutationKeys } from "@better-auth-ui/core"
2
+ import {
3
+ mutationOptions,
4
+ useMutation,
5
+ useQueryClient
6
+ } from "@tanstack/react-query"
7
+ import type { BetterFetchError } from "better-auth/react"
8
+
9
+ import type { AuthClient } from "../../lib/auth-client"
10
+ import { sessionOptions } from "../../queries/auth/session-query"
11
+
12
+ export type SignUpEmailParams<TAuthClient extends AuthClient> = Parameters<
13
+ TAuthClient["signUp"]["email"]
14
+ >[0]
15
+
16
+ export type SignUpEmailOptions<TAuthClient extends AuthClient> = Omit<
17
+ ReturnType<typeof signUpEmailOptions<TAuthClient>>,
18
+ "mutationKey" | "mutationFn"
19
+ >
20
+
21
+ /**
22
+ * Mutation options factory for email/password sign-up.
23
+ *
24
+ * @param authClient - The Better Auth client.
25
+ */
26
+ export function signUpEmailOptions<TAuthClient extends AuthClient>(
27
+ authClient: TAuthClient
28
+ ) {
29
+ const mutationKey = authMutationKeys.signUp.email
30
+
31
+ const mutationFn = (params: SignUpEmailParams<TAuthClient>) =>
32
+ authClient.signUp.email({
33
+ ...params,
34
+ fetchOptions: { ...params?.fetchOptions, throw: true }
35
+ })
36
+
37
+ return mutationOptions<
38
+ Awaited<ReturnType<typeof mutationFn>>,
39
+ BetterFetchError,
40
+ Parameters<typeof mutationFn>[0]
41
+ >({
42
+ mutationKey,
43
+ mutationFn
44
+ })
45
+ }
46
+
47
+ /**
48
+ * Create a mutation for email/password sign-up.
49
+ *
50
+ * Wraps `authClient.signUp.email`, resets the session query on success so
51
+ * the new session is refetched, and forwards React Query mutation options
52
+ * such as `onSuccess`, `onError`, and `retry`.
53
+ *
54
+ * @param authClient - The Better Auth client.
55
+ * @param options - React Query options forwarded to `useMutation`.
56
+ */
57
+ export function useSignUpEmail<TAuthClient extends AuthClient>(
58
+ authClient: TAuthClient,
59
+ options?: SignUpEmailOptions<TAuthClient>
60
+ ) {
61
+ const queryClient = useQueryClient()
62
+
63
+ return useMutation({
64
+ ...signUpEmailOptions(authClient),
65
+ ...options,
66
+ onSuccess: async (...args) => {
67
+ queryClient.resetQueries({
68
+ queryKey: sessionOptions(authClient).queryKey
69
+ })
70
+
71
+ await options?.onSuccess?.(...args)
72
+ }
73
+ })
74
+ }
@@ -1,49 +1,94 @@
1
- import { type MutationKey, mutationOptions } from "@tanstack/react-query"
1
+ import {
2
+ type MutationKey,
3
+ mutationOptions,
4
+ type UseMutationOptions
5
+ } from "@tanstack/react-query"
2
6
  import type { BetterFetchError, BetterFetchOption } from "better-auth/client"
3
7
 
4
- export type AuthMutationFn<TData = unknown, TVariables = unknown> = (
5
- params: TVariables & { fetchOptions?: BetterFetchOption }
6
- ) => Promise<{ data: TData }>
7
-
8
- type AuthMutationFnData<TFn> =
9
- TFn extends AuthMutationFn<infer TData> ? TData : never
8
+ /**
9
+ * Write-style Better Auth client method. Variables are a single object that
10
+ * may carry top-level params plus `fetchOptions` (e.g. `signIn.email` takes
11
+ * `{ email, password, rememberMe?, fetchOptions? }`).
12
+ *
13
+ * Read-style endpoints use `AuthQueryFn` / `useAuthQuery` instead.
14
+ */
15
+ export type AuthMutationFn = (
16
+ // biome-ignore lint/suspicious/noExplicitAny: variance bridge for arbitrary Better Auth client methods
17
+ variables: any
18
+ ) => Promise<unknown>
10
19
 
11
- // biome-ignore lint/suspicious/noExplicitAny: loose constraint for overloaded/generic signatures
12
- type AuthMutationFnVariables<TFn extends (...args: any) => any> =
13
- undefined extends Parameters<TFn>[0]
14
- ? // biome-ignore lint/suspicious/noConfusingVoidType: void lets `mutate()` be called with no arg
15
- void | NonNullable<Parameters<TFn>[0]>
16
- : Parameters<TFn>[0]
20
+ /**
21
+ * Resolved data type returned by an {@link AuthMutationFn}.
22
+ */
23
+ export type AuthMutationFnData<TFn extends AuthMutationFn> = Awaited<
24
+ ReturnType<TFn>
25
+ >
17
26
 
18
27
  /**
19
- * Build `mutationOptions` for a Better Auth endpoint.
28
+ * Variables type accepted by `mutate` / `mutateAsync` for a given
29
+ * {@link AuthMutationFn}.
20
30
  *
21
- * Wires `throw: true` into `fetchOptions` so the mutation rejects with a
22
- * `BetterFetchError` on failure instead of resolving with `{ error }`.
31
+ * If the method's params are entirely optional (e.g. `authClient.signOut`),
32
+ * this resolves to `Variables | void` so `mutate()` is callable without
33
+ * arguments. Otherwise it resolves to the exact required shape so the type
34
+ * checker rejects `mutate()` when the underlying call needs params.
35
+ */
36
+ export type AuthMutationFnVariables<TFn extends AuthMutationFn> =
37
+ Parameters<TFn>[0] extends infer P
38
+ ? undefined extends P
39
+ ? // biome-ignore lint/suspicious/noConfusingVoidType: void allows no-arg mutate
40
+ NonNullable<P> | void
41
+ : P
42
+ : never
43
+
44
+ /**
45
+ * Return type of {@link authMutationOptions}, matching the shape produced by
46
+ * TanStack Query's own `mutationOptions` helper.
47
+ */
48
+ export type AuthMutationOptions<
49
+ TFn extends AuthMutationFn,
50
+ TMutationKey extends MutationKey = MutationKey
51
+ > = Omit<
52
+ UseMutationOptions<
53
+ AuthMutationFnData<TFn>,
54
+ BetterFetchError,
55
+ AuthMutationFnVariables<TFn>
56
+ >,
57
+ "mutationKey"
58
+ > & {
59
+ mutationKey: TMutationKey
60
+ }
61
+
62
+ /**
63
+ * Build `mutationOptions` for a write-style Better Auth endpoint.
23
64
  *
24
- * TData is inferred from the endpoint's non-throw response shape. For
25
- * required-body endpoints where inference falls back to `never`, pass
26
- * `TData` explicitly (e.g. `authMutationOptions<_, _, { available: boolean }>`).
65
+ * Injects `throw: true` into `fetchOptions` so the promise rejects with a
66
+ * `BetterFetchError` on failure instead of resolving to `{ data, error }`.
27
67
  *
28
- * @param authFn - Better Auth client method (e.g. `authClient.signIn.email`).
29
- * @param mutationKey - Scope for the mutation cache key.
68
+ * @param authFn - Better Auth client method (e.g. `authClient.emailOtp.sendVerificationOtp`).
69
+ * @param mutationKey - Stable key for the mutation (used by `useIsMutating`, `MutationCache`, …).
30
70
  */
31
71
  export function authMutationOptions<
32
- // biome-ignore lint/suspicious/noExplicitAny: constraint widened so required-body endpoints pass
33
- TFn extends (...args: any) => any,
34
- const TMutationKey extends MutationKey,
35
- TData = AuthMutationFnData<TFn>
36
- >(authFn: TFn, mutationKey: TMutationKey) {
37
- return mutationOptions<TData, BetterFetchError, AuthMutationFnVariables<TFn>>(
38
- {
39
- mutationKey,
40
- mutationFn: (variables) => {
41
- const v = variables as { fetchOptions?: BetterFetchOption } | undefined
42
- return authFn({
43
- ...v,
44
- fetchOptions: { ...v?.fetchOptions, throw: true }
45
- } as Parameters<TFn>[0]) as Promise<TData>
46
- }
47
- }
48
- )
72
+ TFn extends AuthMutationFn,
73
+ const TMutationKey extends MutationKey
74
+ >(
75
+ authFn: TFn,
76
+ mutationKey: TMutationKey
77
+ ): AuthMutationOptions<TFn, TMutationKey> {
78
+ const mutationFn = (variables: AuthMutationFnVariables<TFn>) => {
79
+ const vars = (variables ?? {}) as { fetchOptions?: BetterFetchOption }
80
+ return authFn({
81
+ ...vars,
82
+ fetchOptions: { ...vars.fetchOptions, throw: true }
83
+ }) as Promise<AuthMutationFnData<TFn>>
84
+ }
85
+
86
+ return mutationOptions<
87
+ AuthMutationFnData<TFn>,
88
+ BetterFetchError,
89
+ AuthMutationFnVariables<TFn>
90
+ >({
91
+ mutationKey,
92
+ mutationFn
93
+ }) as AuthMutationOptions<TFn, TMutationKey>
49
94
  }