@better-auth-ui/react 1.6.8 → 1.6.9

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 (334) hide show
  1. package/dist/components/auth/auth-context.d.ts +3 -0
  2. package/dist/components/auth/auth-context.js +4 -0
  3. package/dist/components/auth/auth-provider.d.ts +4 -4
  4. package/dist/components/auth/auth-provider.js +65 -41
  5. package/dist/components/auth/email/email-changed.d.ts +2 -2
  6. package/dist/components/auth/email/email-changed.js +68 -154
  7. package/dist/components/auth/email/email-localization.d.ts +11 -3
  8. package/dist/components/auth/email/email-localization.js +25 -18
  9. package/dist/components/auth/email/email-styles.js +77 -52
  10. package/dist/components/auth/email/email-verification.d.ts +2 -2
  11. package/dist/components/auth/email/email-verification.js +73 -138
  12. package/dist/components/auth/email/index.d.ts +10 -9
  13. package/dist/components/auth/email/index.js +10 -9
  14. package/dist/components/auth/email/magic-link.d.ts +2 -2
  15. package/dist/components/auth/email/magic-link.js +70 -139
  16. package/dist/components/auth/email/new-device.d.ts +2 -2
  17. package/dist/components/auth/email/new-device.js +88 -221
  18. package/dist/components/auth/email/organization-invitation.d.ts +121 -0
  19. package/dist/components/auth/email/organization-invitation.js +110 -0
  20. package/dist/components/auth/email/otp-email.d.ts +2 -2
  21. package/dist/components/auth/email/otp-email.js +63 -127
  22. package/dist/components/auth/email/password-changed.d.ts +2 -2
  23. package/dist/components/auth/email/password-changed.js +74 -157
  24. package/dist/components/auth/email/reset-password.d.ts +2 -2
  25. package/dist/components/auth/email/reset-password.js +66 -138
  26. package/dist/components/auth/fetch-options-provider.d.ts +1 -1
  27. package/dist/components/auth/fetch-options-provider.js +28 -27
  28. package/dist/components/icons/apple.d.ts +1 -1
  29. package/dist/components/icons/apple.js +9 -16
  30. package/dist/components/icons/atlassian.d.ts +1 -1
  31. package/dist/components/icons/atlassian.js +13 -38
  32. package/dist/components/icons/cognito.d.ts +1 -1
  33. package/dist/components/icons/cognito.js +9 -19
  34. package/dist/components/icons/discord.d.ts +1 -1
  35. package/dist/components/icons/discord.js +9 -16
  36. package/dist/components/icons/dropbox.d.ts +1 -1
  37. package/dist/components/icons/dropbox.js +9 -16
  38. package/dist/components/icons/facebook.d.ts +1 -1
  39. package/dist/components/icons/facebook.js +11 -19
  40. package/dist/components/icons/figma.d.ts +1 -1
  41. package/dist/components/icons/figma.js +12 -34
  42. package/dist/components/icons/github.d.ts +1 -1
  43. package/dist/components/icons/github.js +11 -16
  44. package/dist/components/icons/gitlab.d.ts +1 -1
  45. package/dist/components/icons/gitlab.js +9 -30
  46. package/dist/components/icons/google.d.ts +1 -1
  47. package/dist/components/icons/google.js +9 -39
  48. package/dist/components/icons/huggingface.d.ts +1 -1
  49. package/dist/components/icons/huggingface.js +9 -38
  50. package/dist/components/icons/index.d.ts +35 -35
  51. package/dist/components/icons/index.js +35 -35
  52. package/dist/components/icons/kakao.d.ts +1 -1
  53. package/dist/components/icons/kakao.js +11 -16
  54. package/dist/components/icons/kick.d.ts +1 -1
  55. package/dist/components/icons/kick.js +11 -20
  56. package/dist/components/icons/line.d.ts +1 -1
  57. package/dist/components/icons/line.js +9 -16
  58. package/dist/components/icons/linear.d.ts +1 -1
  59. package/dist/components/icons/linear.js +9 -16
  60. package/dist/components/icons/linkedin.d.ts +1 -1
  61. package/dist/components/icons/linkedin.js +9 -33
  62. package/dist/components/icons/microsoft.d.ts +1 -1
  63. package/dist/components/icons/microsoft.js +9 -30
  64. package/dist/components/icons/naver.d.ts +1 -1
  65. package/dist/components/icons/naver.js +9 -16
  66. package/dist/components/icons/notion.d.ts +1 -1
  67. package/dist/components/icons/notion.js +9 -16
  68. package/dist/components/icons/paybin.d.ts +1 -1
  69. package/dist/components/icons/paybin.js +8 -32
  70. package/dist/components/icons/paypal.d.ts +1 -1
  71. package/dist/components/icons/paypal.js +9 -30
  72. package/dist/components/icons/polar.d.ts +1 -1
  73. package/dist/components/icons/polar.js +9 -24
  74. package/dist/components/icons/railway.d.ts +1 -1
  75. package/dist/components/icons/railway.js +9 -16
  76. package/dist/components/icons/reddit.d.ts +1 -1
  77. package/dist/components/icons/reddit.js +9 -21
  78. package/dist/components/icons/roblox.d.ts +1 -1
  79. package/dist/components/icons/roblox.js +12 -17
  80. package/dist/components/icons/salesforce.d.ts +1 -1
  81. package/dist/components/icons/salesforce.js +9 -16
  82. package/dist/components/icons/slack.d.ts +1 -1
  83. package/dist/components/icons/slack.js +9 -30
  84. package/dist/components/icons/spotify.d.ts +1 -1
  85. package/dist/components/icons/spotify.js +9 -16
  86. package/dist/components/icons/tiktok.d.ts +1 -1
  87. package/dist/components/icons/tiktok.js +10 -23
  88. package/dist/components/icons/twitch.d.ts +1 -1
  89. package/dist/components/icons/twitch.js +12 -43
  90. package/dist/components/icons/vercel.d.ts +1 -1
  91. package/dist/components/icons/vercel.js +9 -16
  92. package/dist/components/icons/vk.d.ts +1 -1
  93. package/dist/components/icons/vk.js +9 -16
  94. package/dist/components/icons/wechat.d.ts +1 -1
  95. package/dist/components/icons/wechat.js +9 -16
  96. package/dist/components/icons/x.d.ts +1 -1
  97. package/dist/components/icons/x.js +9 -16
  98. package/dist/components/icons/zoom.d.ts +1 -1
  99. package/dist/components/icons/zoom.js +11 -69
  100. package/dist/components/mutation-invalidator.d.ts +1 -0
  101. package/dist/components/mutation-invalidator.js +31 -0
  102. package/dist/components/settings/account/theme-preview.js +7 -286
  103. package/dist/email.d.ts +1 -1
  104. package/dist/email.js +1 -11
  105. package/dist/hooks/auth/use-authenticate.d.ts +3 -3
  106. package/dist/hooks/auth/use-authenticate.js +28 -22
  107. package/dist/hooks/auth/use-user.d.ts +34 -34
  108. package/dist/hooks/auth/use-user.js +14 -10
  109. package/dist/hooks/use-auth-mutation.d.ts +4 -4
  110. package/dist/hooks/use-auth-mutation.js +18 -10
  111. package/dist/hooks/use-auth-plugin.d.ts +1 -1
  112. package/dist/hooks/use-auth-plugin.js +26 -8
  113. package/dist/hooks/use-auth-query.d.ts +3 -3
  114. package/dist/hooks/use-auth-query.js +20 -14
  115. package/dist/index.d.ts +48 -45
  116. package/dist/index.js +47 -79
  117. package/dist/lib/auth-client.d.ts +7 -4
  118. package/dist/lib/auth-client.js +1 -0
  119. package/dist/lib/auth-plugin.d.ts +19 -3
  120. package/dist/lib/auth-plugin.js +1 -0
  121. package/dist/lib/auth-server.d.ts +10 -3
  122. package/dist/lib/auth-server.js +1 -0
  123. package/dist/lib/provider-icons.d.ts +2 -2
  124. package/dist/lib/provider-icons.js +47 -75
  125. package/dist/lib/settings-tab.d.ts +19 -0
  126. package/dist/lib/settings-tab.js +1 -0
  127. package/dist/lib/utils.d.ts +1 -1
  128. package/dist/lib/utils.js +4 -7
  129. package/dist/mutations/api-key/create-api-key-mutation.d.ts +9 -7
  130. package/dist/mutations/api-key/create-api-key-mutation.js +37 -27
  131. package/dist/mutations/api-key/delete-api-key-mutation.d.ts +10 -6
  132. package/dist/mutations/api-key/delete-api-key-mutation.js +37 -27
  133. package/dist/mutations/auth/request-password-reset-mutation.d.ts +4 -4
  134. package/dist/mutations/auth/request-password-reset-mutation.js +31 -22
  135. package/dist/mutations/auth/reset-password-mutation.d.ts +4 -4
  136. package/dist/mutations/auth/reset-password-mutation.js +32 -22
  137. package/dist/mutations/auth/send-verification-email-mutation.d.ts +4 -4
  138. package/dist/mutations/auth/send-verification-email-mutation.js +31 -22
  139. package/dist/mutations/auth/sign-in-email-mutation.d.ts +10 -10
  140. package/dist/mutations/auth/sign-in-email-mutation.js +38 -27
  141. package/dist/mutations/auth/sign-in-social-mutation.d.ts +6 -6
  142. package/dist/mutations/auth/sign-in-social-mutation.js +36 -22
  143. package/dist/mutations/auth/sign-out-mutation.d.ts +9 -7
  144. package/dist/mutations/auth/sign-out-mutation.js +39 -26
  145. package/dist/mutations/auth/sign-up-email-mutation.d.ts +12 -12
  146. package/dist/mutations/auth/sign-up-email-mutation.js +34 -27
  147. package/dist/mutations/auth-mutation-options.d.ts +2 -2
  148. package/dist/mutations/auth-mutation-options.js +22 -18
  149. package/dist/mutations/magic-link/sign-in-magic-link-mutation.d.ts +4 -4
  150. package/dist/mutations/magic-link/sign-in-magic-link-mutation.js +31 -22
  151. package/dist/mutations/multi-session/revoke-multi-session-mutation.d.ts +8 -8
  152. package/dist/mutations/multi-session/revoke-multi-session-mutation.js +37 -27
  153. package/dist/mutations/multi-session/set-active-session-mutation.d.ts +8 -9
  154. package/dist/mutations/multi-session/set-active-session-mutation.js +38 -29
  155. package/dist/mutations/organization/accept-invitation-mutation.d.ts +43 -0
  156. package/dist/mutations/organization/accept-invitation-mutation.js +32 -0
  157. package/dist/mutations/organization/cancel-invitation-mutation.d.ts +25 -0
  158. package/dist/mutations/organization/cancel-invitation-mutation.js +28 -0
  159. package/dist/mutations/organization/check-slug-mutation.d.ts +21 -0
  160. package/dist/mutations/organization/check-slug-mutation.js +30 -0
  161. package/dist/mutations/organization/create-organization-mutation.d.ts +39 -0
  162. package/dist/mutations/organization/create-organization-mutation.js +29 -0
  163. package/dist/mutations/organization/delete-organization-mutation.d.ts +21 -0
  164. package/dist/mutations/organization/delete-organization-mutation.js +29 -0
  165. package/dist/mutations/organization/index.d.ts +12 -0
  166. package/dist/mutations/organization/index.js +12 -0
  167. package/dist/mutations/organization/invite-member-mutation.d.ts +43 -0
  168. package/dist/mutations/organization/invite-member-mutation.js +35 -0
  169. package/dist/mutations/organization/leave-organization-mutation.d.ts +65 -0
  170. package/dist/mutations/organization/leave-organization-mutation.js +32 -0
  171. package/dist/mutations/organization/reject-invitation-mutation.d.ts +31 -0
  172. package/dist/mutations/organization/reject-invitation-mutation.js +25 -0
  173. package/dist/mutations/organization/remove-member-mutation.d.ts +35 -0
  174. package/dist/mutations/organization/remove-member-mutation.js +29 -0
  175. package/dist/mutations/organization/set-active-organization-mutation.d.ts +71 -0
  176. package/dist/mutations/organization/set-active-organization-mutation.js +72 -0
  177. package/dist/mutations/organization/update-member-role-mutation.d.ts +31 -0
  178. package/dist/mutations/organization/update-member-role-mutation.js +36 -0
  179. package/dist/mutations/organization/update-organization-mutation.d.ts +21 -0
  180. package/dist/mutations/organization/update-organization-mutation.js +36 -0
  181. package/dist/mutations/passkey/add-passkey-mutation.d.ts +16 -16
  182. package/dist/mutations/passkey/add-passkey-mutation.js +38 -27
  183. package/dist/mutations/passkey/delete-passkey-mutation.d.ts +8 -8
  184. package/dist/mutations/passkey/delete-passkey-mutation.js +37 -27
  185. package/dist/mutations/passkey/sign-in-passkey-mutation.d.ts +24 -24
  186. package/dist/mutations/passkey/sign-in-passkey-mutation.js +36 -27
  187. package/dist/mutations/settings/change-email-mutation.d.ts +9 -8
  188. package/dist/mutations/settings/change-email-mutation.js +35 -27
  189. package/dist/mutations/settings/change-password-mutation.d.ts +6 -6
  190. package/dist/mutations/settings/change-password-mutation.js +31 -22
  191. package/dist/mutations/settings/delete-user-mutation.d.ts +4 -4
  192. package/dist/mutations/settings/delete-user-mutation.js +31 -22
  193. package/dist/mutations/settings/link-social-mutation.d.ts +4 -4
  194. package/dist/mutations/settings/link-social-mutation.js +31 -22
  195. package/dist/mutations/settings/revoke-session-mutation.d.ts +8 -8
  196. package/dist/mutations/settings/revoke-session-mutation.js +37 -27
  197. package/dist/mutations/settings/unlink-account-mutation.d.ts +8 -8
  198. package/dist/mutations/settings/unlink-account-mutation.js +37 -27
  199. package/dist/mutations/settings/update-user-mutation.d.ts +8 -8
  200. package/dist/mutations/settings/update-user-mutation.js +34 -33
  201. package/dist/mutations/username/is-username-available-mutation.d.ts +4 -4
  202. package/dist/mutations/username/is-username-available-mutation.js +34 -22
  203. package/dist/mutations/username/sign-in-username-mutation.d.ts +10 -10
  204. package/dist/mutations/username/sign-in-username-mutation.js +35 -27
  205. package/dist/plugins/captcha-plugin.d.ts +3 -3
  206. package/dist/plugins/captcha-plugin.js +31 -26
  207. package/dist/plugins.d.ts +1 -1
  208. package/dist/plugins.js +1 -2
  209. package/dist/queries/api-key/list-api-keys-query.d.ts +20 -11
  210. package/dist/queries/api-key/list-api-keys-query.js +52 -29
  211. package/dist/queries/auth/session-query.d.ts +6 -6
  212. package/dist/queries/auth/session-query.js +70 -28
  213. package/dist/queries/auth-query-options.d.ts +2 -2
  214. package/dist/queries/auth-query-options.js +20 -16
  215. package/dist/queries/multi-session/list-device-sessions-query.d.ts +8 -8
  216. package/dist/queries/multi-session/list-device-sessions-query.js +83 -29
  217. package/dist/queries/organization/active-organization-query.d.ts +39 -0
  218. package/dist/queries/organization/active-organization-query.js +37 -0
  219. package/dist/queries/organization/full-organization-query.d.ts +37 -0
  220. package/dist/queries/organization/full-organization-query.js +31 -0
  221. package/dist/queries/organization/has-permission-query.d.ts +21 -0
  222. package/dist/queries/organization/has-permission-query.js +38 -0
  223. package/dist/queries/organization/index.d.ts +7 -0
  224. package/dist/queries/organization/index.js +7 -0
  225. package/dist/queries/organization/list-invitations-query.d.ts +29 -0
  226. package/dist/queries/organization/list-invitations-query.js +37 -0
  227. package/dist/queries/organization/list-members-query.d.ts +61 -0
  228. package/dist/queries/organization/list-members-query.js +37 -0
  229. package/dist/queries/organization/list-organizations-query.d.ts +22 -0
  230. package/dist/queries/organization/list-organizations-query.js +31 -0
  231. package/dist/queries/organization/list-user-invitations-query.d.ts +29 -0
  232. package/dist/queries/organization/list-user-invitations-query.js +31 -0
  233. package/dist/queries/passkey/list-passkeys-query.d.ts +8 -8
  234. package/dist/queries/passkey/list-passkeys-query.js +81 -29
  235. package/dist/queries/settings/account-info-query.d.ts +6 -6
  236. package/dist/queries/settings/account-info-query.js +85 -29
  237. package/dist/queries/settings/list-accounts-query.d.ts +6 -6
  238. package/dist/queries/settings/list-accounts-query.js +83 -29
  239. package/dist/queries/settings/list-sessions-query.d.ts +6 -6
  240. package/dist/queries/settings/list-sessions-query.js +81 -29
  241. package/dist/server/queries/api-key/list-api-keys-query.d.ts +83 -0
  242. package/dist/server/queries/api-key/list-api-keys-query.js +49 -0
  243. package/dist/server/queries/auth/session-query.d.ts +5 -5
  244. package/dist/server/queries/auth/session-query.js +50 -12
  245. package/dist/server/queries/multi-session/list-device-sessions-query.d.ts +7 -7
  246. package/dist/server/queries/multi-session/list-device-sessions-query.js +53 -11
  247. package/dist/server/queries/organization/active-organization-query.d.ts +61 -0
  248. package/dist/server/queries/organization/active-organization-query.js +25 -0
  249. package/dist/server/queries/organization/full-organization-query.d.ts +42 -0
  250. package/dist/server/queries/organization/full-organization-query.js +21 -0
  251. package/dist/server/queries/organization/has-permission-query.d.ts +66 -0
  252. package/dist/server/queries/organization/has-permission-query.js +23 -0
  253. package/dist/server/queries/organization/list-invitations-query.d.ts +34 -0
  254. package/dist/server/queries/organization/list-invitations-query.js +21 -0
  255. package/dist/server/queries/organization/list-members-query.d.ts +66 -0
  256. package/dist/server/queries/organization/list-members-query.js +21 -0
  257. package/dist/server/queries/organization/list-organizations-query.d.ts +27 -0
  258. package/dist/server/queries/organization/list-organizations-query.js +21 -0
  259. package/dist/server/queries/organization/list-user-invitations-query.d.ts +34 -0
  260. package/dist/server/queries/organization/list-user-invitations-query.js +21 -0
  261. package/dist/server/queries/passkey/list-passkeys-query.d.ts +7 -7
  262. package/dist/server/queries/passkey/list-passkeys-query.js +53 -11
  263. package/dist/server/queries/settings/account-info-query.d.ts +5 -5
  264. package/dist/server/queries/settings/account-info-query.js +53 -11
  265. package/dist/server/queries/settings/list-accounts-query.d.ts +5 -5
  266. package/dist/server/queries/settings/list-accounts-query.js +53 -11
  267. package/dist/server/queries/settings/list-sessions-query.d.ts +5 -5
  268. package/dist/server/queries/settings/list-sessions-query.js +53 -11
  269. package/dist/server.d.ts +15 -7
  270. package/dist/server.js +14 -7
  271. package/package.json +20 -17
  272. package/src/components/auth/auth-context.tsx +7 -0
  273. package/src/components/auth/auth-provider.tsx +19 -31
  274. package/src/components/auth/email/email-localization.tsx +5 -3
  275. package/src/components/auth/email/index.ts +1 -0
  276. package/src/components/auth/email/organization-invitation.tsx +454 -0
  277. package/src/components/mutation-invalidator.tsx +67 -0
  278. package/src/index.ts +3 -0
  279. package/src/lib/auth-client.ts +7 -0
  280. package/src/lib/auth-plugin.ts +17 -0
  281. package/src/lib/auth-server.ts +17 -1
  282. package/src/lib/settings-tab.ts +21 -0
  283. package/src/mutations/api-key/create-api-key-mutation.ts +34 -19
  284. package/src/mutations/api-key/delete-api-key-mutation.ts +36 -19
  285. package/src/mutations/auth/sign-in-email-mutation.ts +18 -22
  286. package/src/mutations/auth/sign-out-mutation.ts +19 -13
  287. package/src/mutations/auth/sign-up-email-mutation.ts +18 -22
  288. package/src/mutations/multi-session/revoke-multi-session-mutation.ts +31 -20
  289. package/src/mutations/multi-session/set-active-session-mutation.ts +25 -44
  290. package/src/mutations/organization/accept-invitation-mutation.ts +71 -0
  291. package/src/mutations/organization/cancel-invitation-mutation.ts +67 -0
  292. package/src/mutations/organization/check-slug-mutation.ts +55 -0
  293. package/src/mutations/organization/create-organization-mutation.ts +71 -0
  294. package/src/mutations/organization/delete-organization-mutation.ts +71 -0
  295. package/src/mutations/organization/index.ts +12 -0
  296. package/src/mutations/organization/invite-member-mutation.ts +81 -0
  297. package/src/mutations/organization/leave-organization-mutation.ts +74 -0
  298. package/src/mutations/organization/reject-invitation-mutation.ts +64 -0
  299. package/src/mutations/organization/remove-member-mutation.ts +67 -0
  300. package/src/mutations/organization/set-active-organization-mutation.ts +142 -0
  301. package/src/mutations/organization/update-member-role-mutation.ts +81 -0
  302. package/src/mutations/organization/update-organization-mutation.ts +84 -0
  303. package/src/mutations/passkey/add-passkey-mutation.ts +28 -17
  304. package/src/mutations/passkey/delete-passkey-mutation.ts +27 -17
  305. package/src/mutations/passkey/sign-in-passkey-mutation.ts +18 -21
  306. package/src/mutations/settings/change-email-mutation.ts +22 -18
  307. package/src/mutations/settings/delete-user-mutation.ts +2 -2
  308. package/src/mutations/settings/revoke-session-mutation.ts +24 -19
  309. package/src/mutations/settings/unlink-account-mutation.ts +24 -17
  310. package/src/mutations/settings/update-user-mutation.ts +18 -30
  311. package/src/mutations/username/is-username-available-mutation.ts +2 -2
  312. package/src/mutations/username/sign-in-username-mutation.ts +20 -23
  313. package/src/queries/api-key/list-api-keys-query.ts +20 -8
  314. package/src/queries/multi-session/list-device-sessions-query.ts +2 -2
  315. package/src/queries/organization/active-organization-query.ts +140 -0
  316. package/src/queries/organization/full-organization-query.ts +113 -0
  317. package/src/queries/organization/has-permission-query.ts +124 -0
  318. package/src/queries/organization/index.ts +7 -0
  319. package/src/queries/organization/list-invitations-query.ts +133 -0
  320. package/src/queries/organization/list-members-query.ts +133 -0
  321. package/src/queries/organization/list-organizations-query.ts +122 -0
  322. package/src/queries/organization/list-user-invitations-query.ts +122 -0
  323. package/src/queries/passkey/list-passkeys-query.ts +2 -2
  324. package/src/server/queries/api-key/list-api-keys-query.ts +94 -0
  325. package/src/server/queries/multi-session/list-device-sessions-query.ts +2 -2
  326. package/src/server/queries/organization/active-organization-query.ts +92 -0
  327. package/src/server/queries/organization/full-organization-query.ts +64 -0
  328. package/src/server/queries/organization/has-permission-query.ts +66 -0
  329. package/src/server/queries/organization/list-invitations-query.ts +81 -0
  330. package/src/server/queries/organization/list-members-query.ts +75 -0
  331. package/src/server/queries/organization/list-organizations-query.ts +67 -0
  332. package/src/server/queries/organization/list-user-invitations-query.ts +68 -0
  333. package/src/server/queries/passkey/list-passkeys-query.ts +2 -2
  334. package/src/server.ts +8 -0
@@ -0,0 +1,65 @@
1
+ import { type QueryClient } from "@tanstack/react-query";
2
+ import type { BetterFetchError } from "better-auth/react";
3
+ import type { OrganizationAuthClient } from "../../lib/auth-client";
4
+ export type LeaveOrganizationParams<TAuthClient extends OrganizationAuthClient> = Parameters<TAuthClient["organization"]["leave"]>[0];
5
+ export type LeaveOrganizationOptions<TAuthClient extends OrganizationAuthClient> = Omit<ReturnType<typeof leaveOrganizationOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
6
+ export declare function leaveOrganizationOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient): import("@tanstack/react-query").WithRequired<import("@tanstack/react-query").UseMutationOptions<Omit<{
7
+ id: string;
8
+ organizationId: string;
9
+ role: "member" | "admin" | "owner";
10
+ createdAt: Date;
11
+ userId: string;
12
+ user: {
13
+ id: string;
14
+ email: string;
15
+ name: string;
16
+ image?: string | undefined;
17
+ };
18
+ } & {
19
+ user: {
20
+ id: string;
21
+ createdAt: Date;
22
+ updatedAt: Date;
23
+ email: string;
24
+ emailVerified: boolean;
25
+ name: string;
26
+ image?: string | null | undefined;
27
+ };
28
+ }, "user"> & {
29
+ user: {
30
+ id: string;
31
+ name: string;
32
+ email: string;
33
+ image: string | undefined;
34
+ };
35
+ }, BetterFetchError, LeaveOrganizationParams<TAuthClient>, unknown>, "mutationKey">;
36
+ export declare function useLeaveOrganization<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, options?: LeaveOrganizationOptions<TAuthClient>, queryClient?: QueryClient): import("@tanstack/react-query").UseMutationResult<Omit<{
37
+ id: string;
38
+ organizationId: string;
39
+ role: "member" | "admin" | "owner";
40
+ createdAt: Date;
41
+ userId: string;
42
+ user: {
43
+ id: string;
44
+ email: string;
45
+ name: string;
46
+ image?: string | undefined;
47
+ };
48
+ } & {
49
+ user: {
50
+ id: string;
51
+ createdAt: Date;
52
+ updatedAt: Date;
53
+ email: string;
54
+ emailVerified: boolean;
55
+ name: string;
56
+ image?: string | null | undefined;
57
+ };
58
+ }, "user"> & {
59
+ user: {
60
+ id: string;
61
+ name: string;
62
+ email: string;
63
+ image: string | undefined;
64
+ };
65
+ }, BetterFetchError, LeaveOrganizationParams<TAuthClient>, unknown>;
@@ -0,0 +1,32 @@
1
+ import { organizationMutationKeys, organizationQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query";
3
+ import { useSession } from "../../queries/auth/session-query";
4
+ export function leaveOrganizationOptions(authClient) {
5
+ const mutationKey = organizationMutationKeys.leave;
6
+ const mutationFn = (params) => authClient.organization.leave({
7
+ ...params,
8
+ fetchOptions: { ...params?.fetchOptions, throw: true }
9
+ });
10
+ return mutationOptions({
11
+ mutationKey,
12
+ mutationFn
13
+ });
14
+ }
15
+ export function useLeaveOrganization(authClient, options, queryClient) {
16
+ const { data: session } = useSession(authClient, undefined, queryClient);
17
+ const userId = session?.user.id;
18
+ return useMutation({
19
+ ...leaveOrganizationOptions(authClient),
20
+ ...options,
21
+ meta: {
22
+ awaits: [
23
+ organizationQueryKeys.members.all(userId),
24
+ organizationQueryKeys.fullDetails(userId)
25
+ ],
26
+ invalidates: [
27
+ organizationQueryKeys.lists(userId),
28
+ organizationQueryKeys.activeOrganizations(userId)
29
+ ]
30
+ }
31
+ }, queryClient);
32
+ }
@@ -0,0 +1,31 @@
1
+ import { type QueryClient } from "@tanstack/react-query";
2
+ import type { BetterFetchError } from "better-auth/react";
3
+ import type { OrganizationAuthClient } from "../../lib/auth-client";
4
+ export type RejectInvitationParams<TAuthClient extends OrganizationAuthClient> = Parameters<TAuthClient["organization"]["rejectInvitation"]>[0];
5
+ export type RejectInvitationOptions<TAuthClient extends OrganizationAuthClient> = Omit<ReturnType<typeof rejectInvitationOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
6
+ export declare function rejectInvitationOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient): import("@tanstack/react-query").WithRequired<import("@tanstack/react-query").UseMutationOptions<{
7
+ invitation: {
8
+ id: string;
9
+ organizationId: string;
10
+ email: string;
11
+ role: "admin" | "member" | "owner";
12
+ status: import("better-auth/client").InvitationStatus;
13
+ inviterId: string;
14
+ expiresAt: Date;
15
+ createdAt: Date;
16
+ } | null;
17
+ member: null;
18
+ }, BetterFetchError, RejectInvitationParams<TAuthClient>, unknown>, "mutationKey">;
19
+ export declare function useRejectInvitation<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, options?: RejectInvitationOptions<TAuthClient>, queryClient?: QueryClient): import("@tanstack/react-query").UseMutationResult<{
20
+ invitation: {
21
+ id: string;
22
+ organizationId: string;
23
+ email: string;
24
+ role: "admin" | "member" | "owner";
25
+ status: import("better-auth/client").InvitationStatus;
26
+ inviterId: string;
27
+ expiresAt: Date;
28
+ createdAt: Date;
29
+ } | null;
30
+ member: null;
31
+ }, BetterFetchError, RejectInvitationParams<TAuthClient>, unknown>;
@@ -0,0 +1,25 @@
1
+ import { organizationMutationKeys, organizationQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query";
3
+ import { useSession } from "../../queries/auth/session-query";
4
+ export function rejectInvitationOptions(authClient) {
5
+ const mutationKey = organizationMutationKeys.rejectInvitation;
6
+ const mutationFn = (params) => authClient.organization.rejectInvitation({
7
+ ...params,
8
+ fetchOptions: { ...params?.fetchOptions, throw: true }
9
+ });
10
+ return mutationOptions({
11
+ mutationKey,
12
+ mutationFn
13
+ });
14
+ }
15
+ export function useRejectInvitation(authClient, options, queryClient) {
16
+ const { data: session } = useSession(authClient, undefined, queryClient);
17
+ const userId = session?.user.id;
18
+ return useMutation({
19
+ ...rejectInvitationOptions(authClient),
20
+ ...options,
21
+ meta: {
22
+ awaits: [organizationQueryKeys.userInvitations.all(userId)]
23
+ }
24
+ }, queryClient);
25
+ }
@@ -0,0 +1,35 @@
1
+ import { type QueryClient } from "@tanstack/react-query";
2
+ import type { BetterFetchError } from "better-auth/react";
3
+ import type { OrganizationAuthClient } from "../../lib/auth-client";
4
+ export type RemoveMemberParams<TAuthClient extends OrganizationAuthClient> = Parameters<TAuthClient["organization"]["removeMember"]>[0];
5
+ export type RemoveMemberOptions<TAuthClient extends OrganizationAuthClient> = Omit<ReturnType<typeof removeMemberOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
6
+ export declare function removeMemberOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient): import("@tanstack/react-query").WithRequired<import("@tanstack/react-query").UseMutationOptions<{
7
+ member: {
8
+ id: string;
9
+ organizationId: string;
10
+ role: "member" | "admin" | "owner";
11
+ createdAt: Date;
12
+ userId: string;
13
+ user: {
14
+ id: string;
15
+ email: string;
16
+ name: string;
17
+ image?: string | undefined;
18
+ };
19
+ };
20
+ }, BetterFetchError, RemoveMemberParams<TAuthClient>, unknown>, "mutationKey">;
21
+ export declare function useRemoveMember<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, options?: RemoveMemberOptions<TAuthClient>, queryClient?: QueryClient): import("@tanstack/react-query").UseMutationResult<{
22
+ member: {
23
+ id: string;
24
+ organizationId: string;
25
+ role: "member" | "admin" | "owner";
26
+ createdAt: Date;
27
+ userId: string;
28
+ user: {
29
+ id: string;
30
+ email: string;
31
+ name: string;
32
+ image?: string | undefined;
33
+ };
34
+ };
35
+ }, BetterFetchError, RemoveMemberParams<TAuthClient>, unknown>;
@@ -0,0 +1,29 @@
1
+ import { organizationMutationKeys, organizationQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query";
3
+ import { useSession } from "../../queries/auth/session-query";
4
+ export function removeMemberOptions(authClient) {
5
+ const mutationKey = organizationMutationKeys.removeMember;
6
+ const mutationFn = (params) => authClient.organization.removeMember({
7
+ ...params,
8
+ fetchOptions: { ...params?.fetchOptions, throw: true }
9
+ });
10
+ return mutationOptions({
11
+ mutationKey,
12
+ mutationFn
13
+ });
14
+ }
15
+ export function useRemoveMember(authClient, options, queryClient) {
16
+ const { data: session } = useSession(authClient, undefined, queryClient);
17
+ const userId = session?.user.id;
18
+ return useMutation({
19
+ ...removeMemberOptions(authClient),
20
+ ...options,
21
+ meta: {
22
+ awaits: [
23
+ organizationQueryKeys.members.all(userId),
24
+ organizationQueryKeys.fullDetails(userId)
25
+ ],
26
+ invalidates: [organizationQueryKeys.lists(userId)]
27
+ }
28
+ }, queryClient);
29
+ }
@@ -0,0 +1,71 @@
1
+ import { type QueryClient } from "@tanstack/react-query";
2
+ import type { BetterFetchError } from "better-auth/react";
3
+ import type { OrganizationAuthClient } from "../../lib/auth-client";
4
+ export type SetActiveOrganizationParams<TAuthClient extends OrganizationAuthClient> = Parameters<TAuthClient["organization"]["setActive"]>[0];
5
+ export type SetActiveOrganizationOptions<TAuthClient extends OrganizationAuthClient> = Omit<ReturnType<typeof setActiveOrganizationOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
6
+ export declare function setActiveOrganizationOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient): import("@tanstack/react-query").WithRequired<import("@tanstack/react-query").UseMutationOptions<{
7
+ members: {
8
+ id: string;
9
+ organizationId: string;
10
+ role: "member" | "admin" | "owner";
11
+ createdAt: Date;
12
+ userId: string;
13
+ user: {
14
+ id: string;
15
+ email: string;
16
+ name: string;
17
+ image?: string | undefined;
18
+ };
19
+ }[];
20
+ invitations: {
21
+ id: string;
22
+ organizationId: string;
23
+ email: string;
24
+ role: "member" | "admin" | "owner";
25
+ status: import("better-auth/client").InvitationStatus;
26
+ inviterId: string;
27
+ expiresAt: Date;
28
+ createdAt: Date;
29
+ }[];
30
+ } & {
31
+ id: string;
32
+ name: string;
33
+ slug: string;
34
+ createdAt: Date;
35
+ logo?: string | null | undefined | undefined;
36
+ metadata?: any;
37
+ }, BetterFetchError, SetActiveOrganizationParams<TAuthClient>, unknown>, "mutationKey">;
38
+ export declare function useSetActiveOrganization<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, options?: SetActiveOrganizationOptions<TAuthClient>, queryClient?: QueryClient): import("@tanstack/react-query").UseMutationResult<{
39
+ members: {
40
+ id: string;
41
+ organizationId: string;
42
+ role: "member" | "admin" | "owner";
43
+ createdAt: Date;
44
+ userId: string;
45
+ user: {
46
+ id: string;
47
+ email: string;
48
+ name: string;
49
+ image?: string | undefined;
50
+ };
51
+ }[];
52
+ invitations: {
53
+ id: string;
54
+ organizationId: string;
55
+ email: string;
56
+ role: "member" | "admin" | "owner";
57
+ status: import("better-auth/client").InvitationStatus;
58
+ inviterId: string;
59
+ expiresAt: Date;
60
+ createdAt: Date;
61
+ }[];
62
+ } & {
63
+ id: string;
64
+ name: string;
65
+ slug: string;
66
+ createdAt: Date;
67
+ logo?: string | null | undefined | undefined;
68
+ metadata?: any;
69
+ }, BetterFetchError, SetActiveOrganizationParams<TAuthClient>, {
70
+ previousOrganizations: [readonly unknown[], unknown][];
71
+ }>;
@@ -0,0 +1,72 @@
1
+ import { organizationMutationKeys, organizationQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query";
3
+ import { useSession } from "../../queries/auth/session-query";
4
+ import { useListOrganizations } from "../../queries/organization";
5
+ export function setActiveOrganizationOptions(authClient) {
6
+ const mutationKey = organizationMutationKeys.setActive;
7
+ const mutationFn = (params) => authClient.organization.setActive({
8
+ ...params,
9
+ fetchOptions: { ...params?.fetchOptions, throw: true }
10
+ });
11
+ return mutationOptions({
12
+ mutationKey,
13
+ mutationFn
14
+ });
15
+ }
16
+ export function useSetActiveOrganization(authClient, options, queryClient) {
17
+ const { data: session } = useSession(authClient, undefined, queryClient);
18
+ const userId = session?.user.id;
19
+ const { data: organizations } = useListOrganizations(authClient, undefined, queryClient);
20
+ return useMutation({
21
+ ...setActiveOrganizationOptions(authClient),
22
+ ...options,
23
+ onMutate: async (variables, context) => {
24
+ // Cancel any outgoing refetches across every slug-partitioned
25
+ // active-organization cache entry so they don't overwrite our
26
+ // optimistic update.
27
+ await context.client.cancelQueries({
28
+ queryKey: organizationQueryKeys.activeOrganizations(userId)
29
+ });
30
+ // Snapshot every slug-partitioned variant so the rollback hits
31
+ // whichever cache entry the UI is actually subscribed to (the
32
+ // entry's key is `[..., 'active', { organizationSlug }]` when the
33
+ // plugin's slug option is set, and `[..., 'active', null]`
34
+ // otherwise).
35
+ const previousOrganizations = context.client.getQueriesData({
36
+ queryKey: organizationQueryKeys.activeOrganizations(userId)
37
+ });
38
+ // Optimistically update to the new value
39
+ if (variables?.organizationId === null) {
40
+ context.client.setQueriesData({ queryKey: organizationQueryKeys.activeOrganizations(userId) }, null);
41
+ return { previousOrganizations };
42
+ }
43
+ const newOrganization = organizations?.find((organization) => (variables?.organizationId !== undefined &&
44
+ organization.id === variables.organizationId) ||
45
+ (variables?.organizationSlug !== undefined &&
46
+ organization.slug === variables.organizationSlug));
47
+ if (newOrganization) {
48
+ context.client.setQueriesData({ queryKey: organizationQueryKeys.activeOrganizations(userId) }, newOrganization);
49
+ }
50
+ return { previousOrganizations };
51
+ },
52
+ // If the mutation fails,
53
+ // use the result returned from onMutate to roll back
54
+ onError: (error, variables, onMutateResult, context) => {
55
+ const previousOrganizations = onMutateResult?.previousOrganizations;
56
+ if (previousOrganizations?.length && error.error) {
57
+ for (const [queryKey, data] of previousOrganizations) {
58
+ context.client.setQueryData(queryKey, data);
59
+ }
60
+ }
61
+ return options?.onError?.(error, variables, onMutateResult, context);
62
+ },
63
+ // Always refetch after error or success — invalidate every
64
+ // slug-partitioned variant via the broader prefix.
65
+ onSettled: async (data, error, variables, onMutateResult, context) => {
66
+ await context.client.invalidateQueries({
67
+ queryKey: organizationQueryKeys.activeOrganizations(userId)
68
+ });
69
+ return options?.onSettled?.(data, error, variables, onMutateResult, context);
70
+ }
71
+ }, queryClient);
72
+ }
@@ -0,0 +1,31 @@
1
+ import { type QueryClient } from "@tanstack/react-query";
2
+ import type { BetterFetchError } from "better-auth/react";
3
+ import type { OrganizationAuthClient } from "../../lib/auth-client";
4
+ export type UpdateMemberRoleParams<TAuthClient extends OrganizationAuthClient> = Parameters<TAuthClient["organization"]["updateMemberRole"]>[0];
5
+ export type UpdateMemberRoleOptions<TAuthClient extends OrganizationAuthClient> = Omit<ReturnType<typeof updateMemberRoleOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
6
+ export declare function updateMemberRoleOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient): import("@tanstack/react-query").WithRequired<import("@tanstack/react-query").UseMutationOptions<{
7
+ id: string;
8
+ organizationId: string;
9
+ role: "admin" | "member" | "owner";
10
+ createdAt: Date;
11
+ userId: string;
12
+ user: {
13
+ id: string;
14
+ email: string;
15
+ name: string;
16
+ image?: string | undefined;
17
+ };
18
+ }, BetterFetchError, UpdateMemberRoleParams<TAuthClient>, unknown>, "mutationKey">;
19
+ export declare function useUpdateMemberRole<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, options?: UpdateMemberRoleOptions<TAuthClient>, queryClient?: QueryClient): import("@tanstack/react-query").UseMutationResult<{
20
+ id: string;
21
+ organizationId: string;
22
+ role: "admin" | "member" | "owner";
23
+ createdAt: Date;
24
+ userId: string;
25
+ user: {
26
+ id: string;
27
+ email: string;
28
+ name: string;
29
+ image?: string | undefined;
30
+ };
31
+ }, BetterFetchError, UpdateMemberRoleParams<TAuthClient>, unknown>;
@@ -0,0 +1,36 @@
1
+ import { organizationMutationKeys, organizationQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query";
3
+ import { useSession } from "../../queries/auth/session-query";
4
+ import { useActiveOrganization } from "../../queries/organization";
5
+ export function updateMemberRoleOptions(authClient) {
6
+ const mutationKey = organizationMutationKeys.updateMemberRole;
7
+ const mutationFn = (params) => authClient.organization.updateMemberRole({
8
+ ...params,
9
+ fetchOptions: { ...params?.fetchOptions, throw: true }
10
+ });
11
+ return mutationOptions({
12
+ mutationKey,
13
+ mutationFn
14
+ });
15
+ }
16
+ export function useUpdateMemberRole(authClient, options, queryClient) {
17
+ const { data: session } = useSession(authClient, undefined, queryClient);
18
+ const userId = session?.user.id;
19
+ const { data: activeOrganization } = useActiveOrganization(authClient, undefined, queryClient);
20
+ return useMutation({
21
+ ...updateMemberRoleOptions(authClient),
22
+ ...options,
23
+ mutationFn: (params) => authClient.organization.updateMemberRole({
24
+ ...params,
25
+ organizationId: params?.organizationId ?? activeOrganization?.id,
26
+ fetchOptions: { ...params?.fetchOptions, throw: true }
27
+ }),
28
+ meta: {
29
+ awaits: [
30
+ organizationQueryKeys.members.all(userId),
31
+ organizationQueryKeys.fullDetails(userId)
32
+ ],
33
+ invalidates: [organizationQueryKeys.permissions.all(userId)]
34
+ }
35
+ }, queryClient);
36
+ }
@@ -0,0 +1,21 @@
1
+ import { type QueryClient } from "@tanstack/react-query";
2
+ import type { BetterFetchError } from "better-auth/react";
3
+ import type { OrganizationAuthClient } from "../../lib/auth-client";
4
+ export type UpdateOrganizationParams<TAuthClient extends OrganizationAuthClient> = Parameters<TAuthClient["organization"]["update"]>[0];
5
+ export type UpdateOrganizationOptions<TAuthClient extends OrganizationAuthClient> = Omit<ReturnType<typeof updateOrganizationOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
6
+ export declare function updateOrganizationOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient): import("@tanstack/react-query").WithRequired<import("@tanstack/react-query").UseMutationOptions<{
7
+ id: string;
8
+ name: string;
9
+ slug: string;
10
+ createdAt: Date;
11
+ logo?: string | null | undefined | undefined;
12
+ metadata?: any;
13
+ }, BetterFetchError, UpdateOrganizationParams<TAuthClient>, unknown>, "mutationKey">;
14
+ export declare function useUpdateOrganization<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, options?: UpdateOrganizationOptions<TAuthClient>, queryClient?: QueryClient): import("@tanstack/react-query").UseMutationResult<{
15
+ id: string;
16
+ name: string;
17
+ slug: string;
18
+ createdAt: Date;
19
+ logo?: string | null | undefined | undefined;
20
+ metadata?: any;
21
+ }, BetterFetchError, UpdateOrganizationParams<TAuthClient>, unknown>;
@@ -0,0 +1,36 @@
1
+ import { organizationMutationKeys, organizationQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query";
3
+ import { useSession } from "../../queries/auth/session-query";
4
+ import { useActiveOrganization } from "../../queries/organization";
5
+ export function updateOrganizationOptions(authClient) {
6
+ const mutationKey = organizationMutationKeys.update;
7
+ const mutationFn = (params) => authClient.organization.update({
8
+ ...params,
9
+ fetchOptions: { ...params?.fetchOptions, throw: true }
10
+ });
11
+ return mutationOptions({
12
+ mutationKey,
13
+ mutationFn
14
+ });
15
+ }
16
+ export function useUpdateOrganization(authClient, options, queryClient) {
17
+ const { data: session } = useSession(authClient, undefined, queryClient);
18
+ const userId = session?.user.id;
19
+ const { data: activeOrganization } = useActiveOrganization(authClient, undefined, queryClient);
20
+ return useMutation({
21
+ ...updateOrganizationOptions(authClient),
22
+ ...options,
23
+ mutationFn: (params) => authClient.organization.update({
24
+ ...params,
25
+ organizationId: params?.organizationId ?? activeOrganization?.id,
26
+ fetchOptions: { ...params?.fetchOptions, throw: true }
27
+ }),
28
+ meta: {
29
+ awaits: [
30
+ organizationQueryKeys.lists(userId),
31
+ organizationQueryKeys.fullDetails(userId),
32
+ organizationQueryKeys.activeOrganizations(userId)
33
+ ]
34
+ }
35
+ }, queryClient);
36
+ }
@@ -1,13 +1,14 @@
1
- import { BetterFetchError } from 'better-auth/react';
2
- import { PasskeyAuthClient } from '../../lib/auth-client';
1
+ import { type QueryClient } from "@tanstack/react-query";
2
+ import type { BetterFetchError } from "better-auth/react";
3
+ import type { PasskeyAuthClient } from "../../lib/auth-client";
3
4
  export type AddPasskeyParams<TAuthClient extends PasskeyAuthClient> = Parameters<TAuthClient["passkey"]["addPasskey"]>[0];
4
- export type AddPasskeyOptions<TAuthClient extends PasskeyAuthClient> = Omit<ReturnType<typeof addPasskeyOptions<TAuthClient>>, "mutationKey" | "mutationFn">;
5
+ export type AddPasskeyOptions<TAuthClient extends PasskeyAuthClient> = Omit<ReturnType<typeof addPasskeyOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
5
6
  /**
6
7
  * Mutation options factory for registering a new passkey.
7
8
  *
8
9
  * @param authClient - The Better Auth client with the passkey plugin.
9
10
  */
10
- export declare function addPasskeyOptions<TAuthClient extends PasskeyAuthClient>(authClient: TAuthClient): import('@tanstack/react-query').WithRequired<import('@tanstack/react-query').UseMutationOptions<{
11
+ export declare function addPasskeyOptions<TAuthClient extends PasskeyAuthClient>(authClient: TAuthClient): import("@tanstack/react-query").WithRequired<import("@tanstack/react-query").UseMutationOptions<{
11
12
  data: null;
12
13
  error: {
13
14
  message?: string | undefined;
@@ -15,14 +16,14 @@ export declare function addPasskeyOptions<TAuthClient extends PasskeyAuthClient>
15
16
  statusText: string;
16
17
  };
17
18
  } | {
18
- data: import('@better-auth/passkey').Passkey;
19
+ data: import("@better-auth/passkey").Passkey;
19
20
  error: null;
20
21
  } | {
21
22
  webauthn: {
22
- response: import('@better-auth/passkey/client').RegistrationResponseJSON;
23
- clientExtensionResults: import('@better-auth/passkey/client').AuthenticationExtensionsClientOutputs;
23
+ response: import("@better-auth/passkey/client").RegistrationResponseJSON;
24
+ clientExtensionResults: import("@better-auth/passkey/client").AuthenticationExtensionsClientOutputs;
24
25
  };
25
- data: import('@better-auth/passkey').Passkey;
26
+ data: import("@better-auth/passkey").Passkey;
26
27
  error: null;
27
28
  } | {
28
29
  data: null;
@@ -36,14 +37,13 @@ export declare function addPasskeyOptions<TAuthClient extends PasskeyAuthClient>
36
37
  /**
37
38
  * Create a mutation for registering a new passkey.
38
39
  *
39
- * Wraps `authClient.passkey.addPasskey`, refetches the user's passkey list
40
- * on success, and forwards React Query mutation options such as
41
- * `onSuccess`, `onError`, and `retry`.
40
+ * On success, `MutationInvalidator` awaits invalidation of the user's
41
+ * passkey list (see `meta.awaits`).
42
42
  *
43
43
  * @param authClient - The Better Auth client with the passkey plugin.
44
44
  * @param options - React Query options forwarded to `useMutation`.
45
45
  */
46
- export declare function useAddPasskey<TAuthClient extends PasskeyAuthClient>(authClient: TAuthClient, options?: AddPasskeyOptions<TAuthClient>): import('@tanstack/react-query').UseMutationResult<{
46
+ export declare function useAddPasskey<TAuthClient extends PasskeyAuthClient>(authClient: TAuthClient, options?: AddPasskeyOptions<TAuthClient>, queryClient?: QueryClient): import("@tanstack/react-query").UseMutationResult<{
47
47
  data: null;
48
48
  error: {
49
49
  message?: string | undefined;
@@ -51,14 +51,14 @@ export declare function useAddPasskey<TAuthClient extends PasskeyAuthClient>(aut
51
51
  statusText: string;
52
52
  };
53
53
  } | {
54
- data: import('@better-auth/passkey').Passkey;
54
+ data: import("@better-auth/passkey").Passkey;
55
55
  error: null;
56
56
  } | {
57
57
  webauthn: {
58
- response: import('@better-auth/passkey/client').RegistrationResponseJSON;
59
- clientExtensionResults: import('@better-auth/passkey/client').AuthenticationExtensionsClientOutputs;
58
+ response: import("@better-auth/passkey/client").RegistrationResponseJSON;
59
+ clientExtensionResults: import("@better-auth/passkey/client").AuthenticationExtensionsClientOutputs;
60
60
  };
61
- data: import('@better-auth/passkey').Passkey;
61
+ data: import("@better-auth/passkey").Passkey;
62
62
  error: null;
63
63
  } | {
64
64
  data: null;
@@ -1,29 +1,40 @@
1
- import { useListPasskeys as e } from "../../queries/passkey/list-passkeys-query.js";
2
- import { mutationOptions as t, useMutation as n } from "@tanstack/react-query";
3
- import { passkeyMutationKeys as r } from "@better-auth-ui/core/plugins";
4
- //#region src/mutations/passkey/add-passkey-mutation.ts
5
- function i(e) {
6
- let n = r.addPasskey;
7
- return t({
8
- mutationKey: n,
9
- mutationFn: (t) => e.passkey.addPasskey({
10
- ...t ?? {},
11
- fetchOptions: {
12
- ...t?.fetchOptions,
13
- throw: !0
14
- }
15
- })
16
- });
1
+ import { passkeyMutationKeys, passkeyQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { mutationOptions, useMutation } from "@tanstack/react-query";
3
+ import { useSession } from "../../queries/auth/session-query";
4
+ /**
5
+ * Mutation options factory for registering a new passkey.
6
+ *
7
+ * @param authClient - The Better Auth client with the passkey plugin.
8
+ */
9
+ export function addPasskeyOptions(authClient) {
10
+ const mutationKey = passkeyMutationKeys.addPasskey;
11
+ // biome-ignore lint/suspicious/noConfusingVoidType: void allows no-arg mutate
12
+ const mutationFn = (params) => authClient.passkey.addPasskey({
13
+ ...(params ?? {}),
14
+ fetchOptions: { ...params?.fetchOptions, throw: true }
15
+ });
16
+ return mutationOptions({
17
+ mutationKey,
18
+ mutationFn
19
+ });
17
20
  }
18
- function a(t, r) {
19
- let { refetch: a } = e(t, { refetchOnMount: !1 });
20
- return n({
21
- ...i(t),
22
- ...r,
23
- onSuccess: async (...e) => {
24
- await a(), await r?.onSuccess?.(...e);
25
- }
26
- });
21
+ /**
22
+ * Create a mutation for registering a new passkey.
23
+ *
24
+ * On success, `MutationInvalidator` awaits invalidation of the user's
25
+ * passkey list (see `meta.awaits`).
26
+ *
27
+ * @param authClient - The Better Auth client with the passkey plugin.
28
+ * @param options - React Query options forwarded to `useMutation`.
29
+ */
30
+ export function useAddPasskey(authClient, options, queryClient) {
31
+ const { data: session } = useSession(authClient, undefined, queryClient);
32
+ const userId = session?.user.id;
33
+ return useMutation({
34
+ ...addPasskeyOptions(authClient),
35
+ ...options,
36
+ meta: {
37
+ awaits: [passkeyQueryKeys.lists(userId)]
38
+ }
39
+ }, queryClient);
27
40
  }
28
- //#endregion
29
- export { i as addPasskeyOptions, a as useAddPasskey };