@better-auth-ui/react 1.6.7 → 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,49 @@
1
+ import { apiKeyQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { queryOptions } from "@tanstack/react-query";
3
+ /**
4
+ * Query options factory for the current user's API keys on the server.
5
+ *
6
+ * Uses the same query key as the client-side `listApiKeysOptions` so that data
7
+ * fetched during SSR hydrates seamlessly into the client's React Query cache.
8
+ *
9
+ * @param auth - The Better Auth server instance with the API key plugin.
10
+ * @param userId - The signed-in user's ID. Used for cache partitioning.
11
+ * @param params - Parameters forwarded to `auth.api.listApiKeys`.
12
+ */
13
+ export function listApiKeysOptions(auth, userId, params) {
14
+ const queryKey = apiKeyQueryKeys.list(userId, params?.query);
15
+ const options = queryOptions({
16
+ queryKey,
17
+ queryFn: () => auth.api.listApiKeys(params)
18
+ });
19
+ return options;
20
+ }
21
+ /**
22
+ * Get the current user's API keys from the query cache, calling
23
+ * `fetchListApiKeys` under the hood if no cached entry exists.
24
+ *
25
+ * @param queryClient - The React Query client used for SSR hydration.
26
+ * @param auth - The Better Auth server instance with the API key plugin.
27
+ * @param userId - The signed-in user's ID, used for cache partitioning.
28
+ * @param params - Parameters forwarded to `auth.api.listApiKeys`.
29
+ */
30
+ export const ensureListApiKeys = (queryClient, auth, userId, params) => queryClient.ensureQueryData(listApiKeysOptions(auth, userId, params));
31
+ /**
32
+ * Prefetch the current user's API keys into the query cache.
33
+ *
34
+ * @param queryClient - The React Query client used for SSR hydration.
35
+ * @param auth - The Better Auth server instance with the API key plugin.
36
+ * @param userId - The signed-in user's ID, used for cache partitioning.
37
+ * @param params - Parameters forwarded to `auth.api.listApiKeys`.
38
+ */
39
+ export const prefetchListApiKeys = (queryClient, auth, userId, params) => queryClient.prefetchQuery(listApiKeysOptions(auth, userId, params));
40
+ /**
41
+ * Fetch and cache the current user's API keys, resolving with the data or
42
+ * throwing on error.
43
+ *
44
+ * @param queryClient - The React Query client used for SSR hydration.
45
+ * @param auth - The Better Auth server instance with the API key plugin.
46
+ * @param userId - The signed-in user's ID, used for cache partitioning.
47
+ * @param params - Parameters forwarded to `auth.api.listApiKeys`.
48
+ */
49
+ export const fetchListApiKeys = (queryClient, auth, userId, params) => queryClient.fetchQuery(listApiKeysOptions(auth, userId, params));
@@ -1,6 +1,6 @@
1
- import { DataTag, QueryClient } from '@tanstack/react-query';
2
- import { APIError } from 'better-auth';
3
- import { AuthServer } from '../../../lib/auth-server';
1
+ import { type DataTag, type QueryClient } from "@tanstack/react-query";
2
+ import type { APIError } from "better-auth";
3
+ import type { AuthServer } from "../../../lib/auth-server";
4
4
  export type SessionData<TAuth extends AuthServer = AuthServer> = Awaited<ReturnType<TAuth["api"]["getSession"]>>;
5
5
  export type Session<TAuth extends AuthServer = AuthServer> = NonNullable<SessionData<TAuth>>;
6
6
  export type SessionParams<TAuth extends AuthServer> = Parameters<TAuth["api"]["getSession"]>[0];
@@ -14,8 +14,8 @@ export type SessionParams<TAuth extends AuthServer> = Parameters<TAuth["api"]["g
14
14
  * @param params - Parameters forwarded to `auth.api.getSession` (typically
15
15
  * includes request `headers` for cookie-based session resolution).
16
16
  */
17
- export declare function sessionOptions<TAuth extends AuthServer>(auth: TAuth, params: SessionParams<TAuth>): (import('@tanstack/react-query').OmitKeyof<import('@tanstack/react-query').UseQueryOptions<Awaited<ReturnType<TAuth["api"]["getSession"]>>, APIError, Awaited<ReturnType<TAuth["api"]["getSession"]>>, readonly ["auth", "getSession"]>, "queryFn"> & {
18
- queryFn?: import('@tanstack/react-query').QueryFunction<Awaited<ReturnType<TAuth["api"]["getSession"]>>, readonly ["auth", "getSession"], never> | undefined;
17
+ export declare function sessionOptions<TAuth extends AuthServer>(auth: TAuth, params: SessionParams<TAuth>): (import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<Awaited<ReturnType<TAuth["api"]["getSession"]>>, APIError, Awaited<ReturnType<TAuth["api"]["getSession"]>>, readonly ["auth", "getSession"]>, "queryFn"> & {
18
+ queryFn?: import("@tanstack/react-query").QueryFunction<Awaited<ReturnType<TAuth["api"]["getSession"]>>, readonly ["auth", "getSession"], never> | undefined;
19
19
  } & {
20
20
  queryKey: readonly ["auth", "getSession"] & {
21
21
  [dataTagSymbol]: Awaited<ReturnType<TAuth["api"]["getSession"]>>;
@@ -1,13 +1,51 @@
1
- import { authQueryKeys as e } from "@better-auth-ui/core";
2
- import { queryOptions as t } from "@tanstack/react-query";
3
- //#region src/server/queries/auth/session-query.ts
4
- function n(n, r) {
5
- let i = e.session;
6
- return t({
7
- queryKey: i,
8
- queryFn: () => n.api.getSession(r)
9
- });
1
+ import { authQueryKeys } from "@better-auth-ui/core";
2
+ import { queryOptions } from "@tanstack/react-query";
3
+ /**
4
+ * Query options factory for the current session on the server.
5
+ *
6
+ * Uses the same query key as the client-side `sessionOptions` so that data
7
+ * fetched during SSR hydrates seamlessly into the client's React Query cache.
8
+ *
9
+ * @param auth - The Better Auth server instance.
10
+ * @param params - Parameters forwarded to `auth.api.getSession` (typically
11
+ * includes request `headers` for cookie-based session resolution).
12
+ */
13
+ export function sessionOptions(auth, params) {
14
+ const queryKey = authQueryKeys.session;
15
+ const options = queryOptions({
16
+ queryKey,
17
+ queryFn: () => auth.api.getSession(params)
18
+ });
19
+ return options;
10
20
  }
11
- var r = (e, t, r) => e.ensureQueryData(n(t, r)), i = (e, t, r) => e.prefetchQuery(n(t, r)), a = (e, t, r) => e.fetchQuery(n(t, r));
12
- //#endregion
13
- export { r as ensureSession, a as fetchSession, i as prefetchSession, n as sessionOptions };
21
+ /**
22
+ * Get the current session from the query cache, calling `fetchSession` under
23
+ * the hood if no cached entry exists. Resolves with the session data, making
24
+ * it suitable for reading the value directly in a server component.
25
+ *
26
+ * @param queryClient - The React Query client used for SSR hydration.
27
+ * @param auth - The Better Auth server instance.
28
+ * @param params - Parameters forwarded to `auth.api.getSession`.
29
+ */
30
+ export const ensureSession = (queryClient, auth, params) => queryClient.ensureQueryData(sessionOptions(auth, params));
31
+ /**
32
+ * Prefetch the current session into the query cache. Behaves like
33
+ * `fetchSession`, but does not throw on error and does not return the data —
34
+ * use this when you only need the value to be available after hydration.
35
+ *
36
+ * @param queryClient - The React Query client used for SSR hydration.
37
+ * @param auth - The Better Auth server instance.
38
+ * @param params - Parameters forwarded to `auth.api.getSession`.
39
+ */
40
+ export const prefetchSession = (queryClient, auth, params) => queryClient.prefetchQuery(sessionOptions(auth, params));
41
+ /**
42
+ * Fetch and cache the current session, resolving with the data or throwing
43
+ * on error. If a cached entry exists and is neither invalidated nor older
44
+ * than `staleTime`, the cached value is returned without a network call;
45
+ * otherwise the latest data is fetched.
46
+ *
47
+ * @param queryClient - The React Query client used for SSR hydration.
48
+ * @param auth - The Better Auth server instance.
49
+ * @param params - Parameters forwarded to `auth.api.getSession`.
50
+ */
51
+ export const fetchSession = (queryClient, auth, params) => queryClient.fetchQuery(sessionOptions(auth, params));
@@ -1,6 +1,6 @@
1
- import { DataTag, QueryClient } from '@tanstack/react-query';
2
- import { APIError } from 'better-auth';
3
- import { MultiSessionAuthServer } from '../../../lib/auth-server';
1
+ import { type DataTag, type QueryClient } from "@tanstack/react-query";
2
+ import type { APIError } from "better-auth";
3
+ import type { MultiSessionAuthServer } from "../../../lib/auth-server";
4
4
  export type ListDeviceSessionsData<TAuth extends MultiSessionAuthServer> = Awaited<ReturnType<TAuth["api"]["listDeviceSessions"]>>;
5
5
  export type ListDeviceSession<TAuth extends MultiSessionAuthServer = MultiSessionAuthServer> = NonNullable<ListDeviceSessionsData<TAuth>>[number];
6
6
  export type ListDeviceSessionsParams<TAuth extends MultiSessionAuthServer> = Parameters<TAuth["api"]["listDeviceSessions"]>[0];
@@ -12,15 +12,15 @@ export type ListDeviceSessionsParams<TAuth extends MultiSessionAuthServer> = Par
12
12
  * the key matches the client-side `listDeviceSessionsOptions` for SSR hydration.
13
13
  * @param params - Parameters forwarded to `auth.api.listDeviceSessions`.
14
14
  */
15
- export declare function listDeviceSessionsOptions<TAuth extends MultiSessionAuthServer>(auth: TAuth, userId: string, params: ListDeviceSessionsParams<TAuth>): (import('@tanstack/react-query').OmitKeyof<import('@tanstack/react-query').UseQueryOptions<Awaited<ReturnType<TAuth["api"]["listDeviceSessions"]>>, APIError, Awaited<ReturnType<TAuth["api"]["listDeviceSessions"]>>, readonly ["auth", "user", string | undefined, "listDeviceSessions", Record<string, any> | null]>, "queryFn"> & {
16
- queryFn?: import('@tanstack/react-query').QueryFunction<Awaited<ReturnType<TAuth["api"]["listDeviceSessions"]>>, readonly ["auth", "user", string | undefined, "listDeviceSessions", Record<string, any> | null], never> | undefined;
15
+ export declare function listDeviceSessionsOptions<TAuth extends MultiSessionAuthServer>(auth: TAuth, userId: string, params: ListDeviceSessionsParams<TAuth>): (import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<Awaited<ReturnType<TAuth["api"]["listDeviceSessions"]>>, APIError, Awaited<ReturnType<TAuth["api"]["listDeviceSessions"]>>, readonly ["auth", "user", string | undefined, "multiSession", "list", Record<string, any> | null]>, "queryFn"> & {
16
+ queryFn?: import("@tanstack/react-query").QueryFunction<Awaited<ReturnType<TAuth["api"]["listDeviceSessions"]>>, readonly ["auth", "user", string | undefined, "multiSession", "list", Record<string, any> | null], never> | undefined;
17
17
  } & {
18
- queryKey: readonly ["auth", "user", string | undefined, "listDeviceSessions", Record<string, any> | null] & {
18
+ queryKey: readonly ["auth", "user", string | undefined, "multiSession", "list", Record<string, any> | null] & {
19
19
  [dataTagSymbol]: Awaited<ReturnType<TAuth["api"]["listDeviceSessions"]>>;
20
20
  [dataTagErrorSymbol]: APIError;
21
21
  };
22
22
  }) & {
23
- queryKey: DataTag<readonly ["auth", "user", string | undefined, "listDeviceSessions", Record<string, any> | null], Awaited<ReturnType<TAuth["api"]["listDeviceSessions"]>>, APIError>;
23
+ queryKey: DataTag<readonly ["auth", "user", string | undefined, "multiSession", "list", Record<string, any> | null], Awaited<ReturnType<TAuth["api"]["listDeviceSessions"]>>, APIError>;
24
24
  };
25
25
  /**
26
26
  * Get the current user's device sessions from the query cache, calling
@@ -1,12 +1,54 @@
1
- import { authQueryKeys as e } from "@better-auth-ui/core";
2
- import { queryOptions as t } from "@tanstack/react-query";
3
- //#region src/server/queries/multi-session/list-device-sessions-query.ts
4
- function n(n, r, i) {
5
- return t({
6
- queryKey: e.listDeviceSessions(r, i?.query),
7
- queryFn: () => n.api.listDeviceSessions(i)
8
- });
1
+ import { multiSessionQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { queryOptions } from "@tanstack/react-query";
3
+ /**
4
+ * Query options factory for the current user's device sessions.
5
+ *
6
+ * @param auth - The Better Auth server instance with the multi-session plugin.
7
+ * @param userId - The signed-in user's ID. Used for cache partitioning so
8
+ * the key matches the client-side `listDeviceSessionsOptions` for SSR hydration.
9
+ * @param params - Parameters forwarded to `auth.api.listDeviceSessions`.
10
+ */
11
+ export function listDeviceSessionsOptions(auth, userId, params) {
12
+ const queryKey = multiSessionQueryKeys.list(userId, params?.query);
13
+ const options = queryOptions({
14
+ queryKey,
15
+ queryFn: () => auth.api.listDeviceSessions(params)
16
+ });
17
+ return options;
9
18
  }
10
- var r = (e, t, r, i) => e.ensureQueryData(n(t, r, i)), i = (e, t, r, i) => e.prefetchQuery(n(t, r, i)), a = (e, t, r, i) => e.fetchQuery(n(t, r, i));
11
- //#endregion
12
- export { r as ensureListDeviceSessions, a as fetchListDeviceSessions, n as listDeviceSessionsOptions, i as prefetchListDeviceSessions };
19
+ /**
20
+ * Get the current user's device sessions from the query cache, calling
21
+ * `fetchListDeviceSessions` under the hood if no cached entry exists.
22
+ * Resolves with the device session list, making it suitable for reading
23
+ * directly in a server component.
24
+ *
25
+ * @param queryClient - The React Query client used for SSR hydration.
26
+ * @param auth - The Better Auth server instance with the multi-session plugin.
27
+ * @param userId - The signed-in user's ID, used for cache partitioning.
28
+ * @param params - Parameters forwarded to `auth.api.listDeviceSessions`.
29
+ */
30
+ export const ensureListDeviceSessions = (queryClient, auth, userId, params) => queryClient.ensureQueryData(listDeviceSessionsOptions(auth, userId, params));
31
+ /**
32
+ * Prefetch the current user's device sessions into the query cache. Behaves
33
+ * like `fetchListDeviceSessions`, but does not throw on error and does not
34
+ * return the data — use this when you only need the value to be available
35
+ * after hydration.
36
+ *
37
+ * @param queryClient - The React Query client used for SSR hydration.
38
+ * @param auth - The Better Auth server instance with the multi-session plugin.
39
+ * @param userId - The signed-in user's ID, used for cache partitioning.
40
+ * @param params - Parameters forwarded to `auth.api.listDeviceSessions`.
41
+ */
42
+ export const prefetchListDeviceSessions = (queryClient, auth, userId, params) => queryClient.prefetchQuery(listDeviceSessionsOptions(auth, userId, params));
43
+ /**
44
+ * Fetch and cache the current user's device sessions, resolving with the
45
+ * data or throwing on error. If a cached entry exists and is neither
46
+ * invalidated nor older than `staleTime`, the cached value is returned
47
+ * without a network call; otherwise the latest data is fetched.
48
+ *
49
+ * @param queryClient - The React Query client used for SSR hydration.
50
+ * @param auth - The Better Auth server instance with the multi-session plugin.
51
+ * @param userId - The signed-in user's ID, used for cache partitioning.
52
+ * @param params - Parameters forwarded to `auth.api.listDeviceSessions`.
53
+ */
54
+ export const fetchListDeviceSessions = (queryClient, auth, userId, params) => queryClient.fetchQuery(listDeviceSessionsOptions(auth, userId, params));
@@ -0,0 +1,61 @@
1
+ import { type DataTag, type QueryClient } from "@tanstack/react-query";
2
+ import type { APIError } from "better-auth";
3
+ import type { OrganizationAuthServer } from "../../../lib/auth-server";
4
+ import type { FullOrganizationParams } from "./full-organization-query";
5
+ import type { ListOrganization } from "./list-organizations-query";
6
+ /**
7
+ * Cache shape for the active organization. Intentionally narrowed to
8
+ * {@link ListOrganization} (basic fields only) so the cache stays
9
+ * compatible with `setActive`'s optimistic update, which can only produce
10
+ * list-shaped data. Use {@link FullOrganizationData} (via
11
+ * `fullOrganizationOptions`) when you need members / invitations.
12
+ */
13
+ export type ActiveOrganizationData<TAuth extends OrganizationAuthServer = OrganizationAuthServer> = ListOrganization<TAuth>;
14
+ /**
15
+ * Same shape as {@link FullOrganizationParams} so server-side prefetches
16
+ * can target a specific organization (e.g. by `query.organizationSlug` for
17
+ * slug-driven routes) and produce a cache key that matches the client's
18
+ * `useActiveOrganization({ query: { organizationSlug } })` on hydration.
19
+ */
20
+ export type ActiveOrganizationParams<TAuth extends OrganizationAuthServer = OrganizationAuthServer> = FullOrganizationParams<TAuth>;
21
+ /**
22
+ * Query options factory for the active organization. Shares its cache key
23
+ * with the client-side `activeOrganizationOptions` (including any
24
+ * `params.query` partition such as `{ organizationSlug }`) so SSR-prefetched
25
+ * data hydrates without a refetch — even on slug-prefixed routes.
26
+ *
27
+ * @param auth - The Better Auth server instance.
28
+ * @param userId - The signed-in user's ID. Used for cache partitioning so
29
+ * the key matches the client-side `activeOrganizationOptions` for SSR hydration.
30
+ * @param params - Parameters forwarded to `auth.api.getFullOrganization`. Pass
31
+ * `{ query: { organizationSlug } }` for slug-driven prefetches.
32
+ */
33
+ export declare function activeOrganizationOptions<TAuth extends OrganizationAuthServer>(auth: TAuth, userId: string, params: ActiveOrganizationParams<TAuth>): (import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<ActiveOrganizationData<TAuth>, APIError, ActiveOrganizationData<TAuth>, readonly ["auth", "user", string | undefined, "organization", "active", {
34
+ organizationId?: string | undefined;
35
+ organizationSlug?: string | undefined;
36
+ membersLimit?: string | number | undefined;
37
+ } | null]>, "queryFn"> & {
38
+ queryFn?: import("@tanstack/react-query").QueryFunction<ActiveOrganizationData<TAuth>, readonly ["auth", "user", string | undefined, "organization", "active", {
39
+ organizationId?: string | undefined;
40
+ organizationSlug?: string | undefined;
41
+ membersLimit?: string | number | undefined;
42
+ } | null], never> | undefined;
43
+ } & {
44
+ queryKey: readonly ["auth", "user", string | undefined, "organization", "active", {
45
+ organizationId?: string | undefined;
46
+ organizationSlug?: string | undefined;
47
+ membersLimit?: string | number | undefined;
48
+ } | null] & {
49
+ [dataTagSymbol]: ActiveOrganizationData<TAuth>;
50
+ [dataTagErrorSymbol]: APIError;
51
+ };
52
+ }) & {
53
+ queryKey: DataTag<readonly ["auth", "user", string | undefined, "organization", "active", {
54
+ organizationId?: string | undefined;
55
+ organizationSlug?: string | undefined;
56
+ membersLimit?: string | number | undefined;
57
+ } | null], ActiveOrganizationData<TAuth>, APIError>;
58
+ };
59
+ export declare const ensureActiveOrganization: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: ActiveOrganizationParams<TAuth>) => Promise<ActiveOrganizationData<TAuth>>;
60
+ export declare const prefetchActiveOrganization: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: ActiveOrganizationParams<TAuth>) => Promise<void>;
61
+ export declare const fetchActiveOrganization: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: ActiveOrganizationParams<TAuth>) => Promise<ActiveOrganizationData<TAuth>>;
@@ -0,0 +1,25 @@
1
+ import { organizationQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { queryOptions } from "@tanstack/react-query";
3
+ /**
4
+ * Query options factory for the active organization. Shares its cache key
5
+ * with the client-side `activeOrganizationOptions` (including any
6
+ * `params.query` partition such as `{ organizationSlug }`) so SSR-prefetched
7
+ * data hydrates without a refetch — even on slug-prefixed routes.
8
+ *
9
+ * @param auth - The Better Auth server instance.
10
+ * @param userId - The signed-in user's ID. Used for cache partitioning so
11
+ * the key matches the client-side `activeOrganizationOptions` for SSR hydration.
12
+ * @param params - Parameters forwarded to `auth.api.getFullOrganization`. Pass
13
+ * `{ query: { organizationSlug } }` for slug-driven prefetches.
14
+ */
15
+ export function activeOrganizationOptions(auth, userId, params) {
16
+ const queryKey = organizationQueryKeys.activeOrganization(userId, params?.query);
17
+ const options = queryOptions({
18
+ queryKey,
19
+ queryFn: () => auth.api.getFullOrganization(params)
20
+ });
21
+ return options;
22
+ }
23
+ export const ensureActiveOrganization = (queryClient, auth, userId, params) => queryClient.ensureQueryData(activeOrganizationOptions(auth, userId, params));
24
+ export const prefetchActiveOrganization = (queryClient, auth, userId, params) => queryClient.prefetchQuery(activeOrganizationOptions(auth, userId, params));
25
+ export const fetchActiveOrganization = (queryClient, auth, userId, params) => queryClient.fetchQuery(activeOrganizationOptions(auth, userId, params));
@@ -0,0 +1,42 @@
1
+ import { type DataTag, type QueryClient } from "@tanstack/react-query";
2
+ import type { APIError } from "better-auth";
3
+ import type { OrganizationAuthServer } from "../../../lib/auth-server";
4
+ export type FullOrganizationData<TAuth extends OrganizationAuthServer = OrganizationAuthServer> = Awaited<ReturnType<TAuth["api"]["getFullOrganization"]>>;
5
+ export type FullOrganizationParams<TAuth extends OrganizationAuthServer = OrganizationAuthServer> = Parameters<TAuth["api"]["getFullOrganization"]>[0];
6
+ /**
7
+ * Query options factory for full organization details (members, invitations, etc.).
8
+ *
9
+ * @param auth - The Better Auth server instance.
10
+ * @param userId - The signed-in user's ID. Used for cache partitioning so
11
+ * the key matches the client-side `fullOrganizationOptions` for SSR hydration.
12
+ * @param params - Parameters forwarded to `auth.api.getFullOrganization`.
13
+ */
14
+ export declare function fullOrganizationOptions<TAuth extends OrganizationAuthServer>(auth: TAuth, userId: string, params: FullOrganizationParams<TAuth>): (import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<Awaited<ReturnType<TAuth["api"]["getFullOrganization"]>>, APIError, Awaited<ReturnType<TAuth["api"]["getFullOrganization"]>>, readonly ["auth", "user", string | undefined, "organization", "fullDetails", {
15
+ organizationId?: string | undefined;
16
+ organizationSlug?: string | undefined;
17
+ membersLimit?: string | number | undefined;
18
+ } | null]>, "queryFn"> & {
19
+ queryFn?: import("@tanstack/react-query").QueryFunction<Awaited<ReturnType<TAuth["api"]["getFullOrganization"]>>, readonly ["auth", "user", string | undefined, "organization", "fullDetails", {
20
+ organizationId?: string | undefined;
21
+ organizationSlug?: string | undefined;
22
+ membersLimit?: string | number | undefined;
23
+ } | null], never> | undefined;
24
+ } & {
25
+ queryKey: readonly ["auth", "user", string | undefined, "organization", "fullDetails", {
26
+ organizationId?: string | undefined;
27
+ organizationSlug?: string | undefined;
28
+ membersLimit?: string | number | undefined;
29
+ } | null] & {
30
+ [dataTagSymbol]: Awaited<ReturnType<TAuth["api"]["getFullOrganization"]>>;
31
+ [dataTagErrorSymbol]: APIError;
32
+ };
33
+ }) & {
34
+ queryKey: DataTag<readonly ["auth", "user", string | undefined, "organization", "fullDetails", {
35
+ organizationId?: string | undefined;
36
+ organizationSlug?: string | undefined;
37
+ membersLimit?: string | number | undefined;
38
+ } | null], Awaited<ReturnType<TAuth["api"]["getFullOrganization"]>>, APIError>;
39
+ };
40
+ export declare const ensureFullOrganization: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: FullOrganizationParams<TAuth>) => Promise<Awaited<ReturnType<TAuth["api"]["getFullOrganization"]>>>;
41
+ export declare const prefetchFullOrganization: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: FullOrganizationParams<TAuth>) => Promise<void>;
42
+ export declare const fetchFullOrganization: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: FullOrganizationParams<TAuth>) => Promise<Awaited<ReturnType<TAuth["api"]["getFullOrganization"]>>>;
@@ -0,0 +1,21 @@
1
+ import { organizationQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { queryOptions } from "@tanstack/react-query";
3
+ /**
4
+ * Query options factory for full organization details (members, invitations, etc.).
5
+ *
6
+ * @param auth - The Better Auth server instance.
7
+ * @param userId - The signed-in user's ID. Used for cache partitioning so
8
+ * the key matches the client-side `fullOrganizationOptions` for SSR hydration.
9
+ * @param params - Parameters forwarded to `auth.api.getFullOrganization`.
10
+ */
11
+ export function fullOrganizationOptions(auth, userId, params) {
12
+ const queryKey = organizationQueryKeys.fullDetail(userId, params?.query);
13
+ const options = queryOptions({
14
+ queryKey,
15
+ queryFn: () => auth.api.getFullOrganization(params)
16
+ });
17
+ return options;
18
+ }
19
+ export const ensureFullOrganization = (queryClient, auth, userId, params) => queryClient.ensureQueryData(fullOrganizationOptions(auth, userId, params));
20
+ export const prefetchFullOrganization = (queryClient, auth, userId, params) => queryClient.prefetchQuery(fullOrganizationOptions(auth, userId, params));
21
+ export const fetchFullOrganization = (queryClient, auth, userId, params) => queryClient.fetchQuery(fullOrganizationOptions(auth, userId, params));
@@ -0,0 +1,66 @@
1
+ import { type DataTag, type QueryClient } from "@tanstack/react-query";
2
+ import type { APIError } from "better-auth";
3
+ import type { OrganizationAuthServer } from "../../../lib/auth-server";
4
+ export type HasPermissionData<TAuth extends OrganizationAuthServer = OrganizationAuthServer> = Awaited<ReturnType<TAuth["api"]["hasPermission"]>>;
5
+ export type HasPermissionParams<TAuth extends OrganizationAuthServer = OrganizationAuthServer> = Parameters<TAuth["api"]["hasPermission"]>[0];
6
+ /**
7
+ * Query options factory for organization permission checks.
8
+ *
9
+ * @param auth - The Better Auth server instance.
10
+ * @param userId - The signed-in user's ID. Used for cache partitioning so
11
+ * the key matches the client-side `hasPermissionOptions` for SSR hydration.
12
+ * @param params - Parameters forwarded to `auth.api.hasPermission`.
13
+ */
14
+ export declare function hasPermissionOptions<TAuth extends OrganizationAuthServer>(auth: TAuth, userId: string, params: HasPermissionParams<TAuth>): (import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<Awaited<ReturnType<TAuth["api"]["hasPermission"]>>, APIError, Awaited<ReturnType<TAuth["api"]["hasPermission"]>>, readonly ["auth", "user", string | undefined, "organization", "permissions", "has", NonNullable<{
15
+ permissions: {
16
+ readonly organization?: ("update" | "delete")[] | undefined;
17
+ readonly member?: ("update" | "delete" | "create")[] | undefined;
18
+ readonly invitation?: ("create" | "cancel")[] | undefined;
19
+ readonly team?: ("update" | "delete" | "create")[] | undefined;
20
+ readonly ac?: ("update" | "delete" | "create" | "read")[] | undefined;
21
+ };
22
+ } & {
23
+ organizationId?: string | undefined;
24
+ }> | null]>, "queryFn"> & {
25
+ queryFn?: import("@tanstack/react-query").QueryFunction<Awaited<ReturnType<TAuth["api"]["hasPermission"]>>, readonly ["auth", "user", string | undefined, "organization", "permissions", "has", NonNullable<{
26
+ permissions: {
27
+ readonly organization?: ("update" | "delete")[] | undefined;
28
+ readonly member?: ("update" | "delete" | "create")[] | undefined;
29
+ readonly invitation?: ("create" | "cancel")[] | undefined;
30
+ readonly team?: ("update" | "delete" | "create")[] | undefined;
31
+ readonly ac?: ("update" | "delete" | "create" | "read")[] | undefined;
32
+ };
33
+ } & {
34
+ organizationId?: string | undefined;
35
+ }> | null], never> | undefined;
36
+ } & {
37
+ queryKey: readonly ["auth", "user", string | undefined, "organization", "permissions", "has", NonNullable<{
38
+ permissions: {
39
+ readonly organization?: ("update" | "delete")[] | undefined;
40
+ readonly member?: ("update" | "delete" | "create")[] | undefined;
41
+ readonly invitation?: ("create" | "cancel")[] | undefined;
42
+ readonly team?: ("update" | "delete" | "create")[] | undefined;
43
+ readonly ac?: ("update" | "delete" | "create" | "read")[] | undefined;
44
+ };
45
+ } & {
46
+ organizationId?: string | undefined;
47
+ }> | null] & {
48
+ [dataTagSymbol]: Awaited<ReturnType<TAuth["api"]["hasPermission"]>>;
49
+ [dataTagErrorSymbol]: APIError;
50
+ };
51
+ }) & {
52
+ queryKey: DataTag<readonly ["auth", "user", string | undefined, "organization", "permissions", "has", NonNullable<{
53
+ permissions: {
54
+ readonly organization?: ("update" | "delete")[] | undefined;
55
+ readonly member?: ("update" | "delete" | "create")[] | undefined;
56
+ readonly invitation?: ("create" | "cancel")[] | undefined;
57
+ readonly team?: ("update" | "delete" | "create")[] | undefined;
58
+ readonly ac?: ("update" | "delete" | "create" | "read")[] | undefined;
59
+ };
60
+ } & {
61
+ organizationId?: string | undefined;
62
+ }> | null], Awaited<ReturnType<TAuth["api"]["hasPermission"]>>, APIError>;
63
+ };
64
+ export declare const ensureHasPermission: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: HasPermissionParams<TAuth>) => Promise<Awaited<ReturnType<TAuth["api"]["hasPermission"]>>>;
65
+ export declare const prefetchHasPermission: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: HasPermissionParams<TAuth>) => Promise<void>;
66
+ export declare const fetchHasPermission: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: HasPermissionParams<TAuth>) => Promise<Awaited<ReturnType<TAuth["api"]["hasPermission"]>>>;
@@ -0,0 +1,23 @@
1
+ import { organizationQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { queryOptions } from "@tanstack/react-query";
3
+ /**
4
+ * Query options factory for organization permission checks.
5
+ *
6
+ * @param auth - The Better Auth server instance.
7
+ * @param userId - The signed-in user's ID. Used for cache partitioning so
8
+ * the key matches the client-side `hasPermissionOptions` for SSR hydration.
9
+ * @param params - Parameters forwarded to `auth.api.hasPermission`.
10
+ */
11
+ export function hasPermissionOptions(auth, userId, params) {
12
+ // Same logical payload as the client key (permissions ± organizationId): client
13
+ // strips `fetchOptions`; server keeps that shape under `body`.
14
+ const queryKey = organizationQueryKeys.permissions.has(userId, params?.body);
15
+ const options = queryOptions({
16
+ queryKey,
17
+ queryFn: () => auth.api.hasPermission(params)
18
+ });
19
+ return options;
20
+ }
21
+ export const ensureHasPermission = (queryClient, auth, userId, params) => queryClient.ensureQueryData(hasPermissionOptions(auth, userId, params));
22
+ export const prefetchHasPermission = (queryClient, auth, userId, params) => queryClient.prefetchQuery(hasPermissionOptions(auth, userId, params));
23
+ export const fetchHasPermission = (queryClient, auth, userId, params) => queryClient.fetchQuery(hasPermissionOptions(auth, userId, params));
@@ -0,0 +1,34 @@
1
+ import { type DataTag, type QueryClient } from "@tanstack/react-query";
2
+ import type { APIError } from "better-auth";
3
+ import type { OrganizationAuthServer } from "../../../lib/auth-server";
4
+ export type ListOrganizationInvitationsData<TAuth extends OrganizationAuthServer = OrganizationAuthServer> = Awaited<ReturnType<TAuth["api"]["listInvitations"]>>;
5
+ export type ListOrganizationInvitationsParams<TAuth extends OrganizationAuthServer = OrganizationAuthServer> = Parameters<TAuth["api"]["listInvitations"]>[0];
6
+ /**
7
+ * Query options factory for invitations of an organization.
8
+ *
9
+ * @param auth - The Better Auth server instance.
10
+ * @param userId - The signed-in user's ID. Used for cache partitioning so
11
+ * the key matches the client-side `listOrganizationInvitationsOptions` for SSR hydration.
12
+ * @param params - Parameters forwarded to `auth.api.listInvitations`.
13
+ */
14
+ export declare function listOrganizationInvitationsOptions<TAuth extends OrganizationAuthServer>(auth: TAuth, userId: string, params: ListOrganizationInvitationsParams<TAuth>): (import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<Awaited<ReturnType<TAuth["api"]["listInvitations"]>>, APIError, Awaited<ReturnType<TAuth["api"]["listInvitations"]>>, readonly ["auth", "user", string | undefined, "organization", "invitations", "list", {
15
+ organizationId?: string | undefined;
16
+ } | null]>, "queryFn"> & {
17
+ queryFn?: import("@tanstack/react-query").QueryFunction<Awaited<ReturnType<TAuth["api"]["listInvitations"]>>, readonly ["auth", "user", string | undefined, "organization", "invitations", "list", {
18
+ organizationId?: string | undefined;
19
+ } | null], never> | undefined;
20
+ } & {
21
+ queryKey: readonly ["auth", "user", string | undefined, "organization", "invitations", "list", {
22
+ organizationId?: string | undefined;
23
+ } | null] & {
24
+ [dataTagSymbol]: Awaited<ReturnType<TAuth["api"]["listInvitations"]>>;
25
+ [dataTagErrorSymbol]: APIError;
26
+ };
27
+ }) & {
28
+ queryKey: DataTag<readonly ["auth", "user", string | undefined, "organization", "invitations", "list", {
29
+ organizationId?: string | undefined;
30
+ } | null], Awaited<ReturnType<TAuth["api"]["listInvitations"]>>, APIError>;
31
+ };
32
+ export declare const ensureListOrganizationInvitations: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: ListOrganizationInvitationsParams<TAuth>) => Promise<Awaited<ReturnType<TAuth["api"]["listInvitations"]>>>;
33
+ export declare const prefetchListOrganizationInvitations: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: ListOrganizationInvitationsParams<TAuth>) => Promise<void>;
34
+ export declare const fetchListOrganizationInvitations: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: ListOrganizationInvitationsParams<TAuth>) => Promise<Awaited<ReturnType<TAuth["api"]["listInvitations"]>>>;
@@ -0,0 +1,21 @@
1
+ import { organizationQueryKeys } from "@better-auth-ui/core/plugins";
2
+ import { queryOptions } from "@tanstack/react-query";
3
+ /**
4
+ * Query options factory for invitations of an organization.
5
+ *
6
+ * @param auth - The Better Auth server instance.
7
+ * @param userId - The signed-in user's ID. Used for cache partitioning so
8
+ * the key matches the client-side `listOrganizationInvitationsOptions` for SSR hydration.
9
+ * @param params - Parameters forwarded to `auth.api.listInvitations`.
10
+ */
11
+ export function listOrganizationInvitationsOptions(auth, userId, params) {
12
+ const queryKey = organizationQueryKeys.invitations.list(userId, params?.query);
13
+ const options = queryOptions({
14
+ queryKey,
15
+ queryFn: () => auth.api.listInvitations(params)
16
+ });
17
+ return options;
18
+ }
19
+ export const ensureListOrganizationInvitations = (queryClient, auth, userId, params) => queryClient.ensureQueryData(listOrganizationInvitationsOptions(auth, userId, params));
20
+ export const prefetchListOrganizationInvitations = (queryClient, auth, userId, params) => queryClient.prefetchQuery(listOrganizationInvitationsOptions(auth, userId, params));
21
+ export const fetchListOrganizationInvitations = (queryClient, auth, userId, params) => queryClient.fetchQuery(listOrganizationInvitationsOptions(auth, userId, params));
@@ -0,0 +1,66 @@
1
+ import { type DataTag, type QueryClient } from "@tanstack/react-query";
2
+ import type { APIError } from "better-auth";
3
+ import type { OrganizationAuthServer } from "../../../lib/auth-server";
4
+ export type ListOrganizationMembersData<TAuth extends OrganizationAuthServer = OrganizationAuthServer> = Awaited<ReturnType<TAuth["api"]["listMembers"]>>;
5
+ export type ListOrganizationMembersParams<TAuth extends OrganizationAuthServer = OrganizationAuthServer> = Parameters<TAuth["api"]["listMembers"]>[0];
6
+ /**
7
+ * Query options factory for members of an organization.
8
+ *
9
+ * @param auth - The Better Auth server instance.
10
+ * @param userId - The signed-in user's ID. Used for cache partitioning so
11
+ * the key matches the client-side `listOrganizationMembersOptions` for SSR hydration.
12
+ * @param params - Parameters forwarded to `auth.api.listMembers`.
13
+ */
14
+ export declare function listOrganizationMembersOptions<TAuth extends OrganizationAuthServer>(auth: TAuth, userId: string, params: ListOrganizationMembersParams<TAuth>): (import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<Awaited<ReturnType<TAuth["api"]["listMembers"]>>, APIError, Awaited<ReturnType<TAuth["api"]["listMembers"]>>, readonly ["auth", "user", string | undefined, "organization", "members", "list", {
15
+ limit?: string | number | undefined;
16
+ offset?: string | number | undefined;
17
+ sortBy?: string | undefined;
18
+ sortDirection?: "asc" | "desc" | undefined;
19
+ filterField?: string | undefined;
20
+ filterValue?: string | number | boolean | string[] | number[] | undefined;
21
+ filterOperator?: "in" | "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
22
+ organizationId?: string | undefined;
23
+ organizationSlug?: string | undefined;
24
+ } | null]>, "queryFn"> & {
25
+ queryFn?: import("@tanstack/react-query").QueryFunction<Awaited<ReturnType<TAuth["api"]["listMembers"]>>, readonly ["auth", "user", string | undefined, "organization", "members", "list", {
26
+ limit?: string | number | undefined;
27
+ offset?: string | number | undefined;
28
+ sortBy?: string | undefined;
29
+ sortDirection?: "asc" | "desc" | undefined;
30
+ filterField?: string | undefined;
31
+ filterValue?: string | number | boolean | string[] | number[] | undefined;
32
+ filterOperator?: "in" | "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
33
+ organizationId?: string | undefined;
34
+ organizationSlug?: string | undefined;
35
+ } | null], never> | undefined;
36
+ } & {
37
+ queryKey: readonly ["auth", "user", string | undefined, "organization", "members", "list", {
38
+ limit?: string | number | undefined;
39
+ offset?: string | number | undefined;
40
+ sortBy?: string | undefined;
41
+ sortDirection?: "asc" | "desc" | undefined;
42
+ filterField?: string | undefined;
43
+ filterValue?: string | number | boolean | string[] | number[] | undefined;
44
+ filterOperator?: "in" | "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
45
+ organizationId?: string | undefined;
46
+ organizationSlug?: string | undefined;
47
+ } | null] & {
48
+ [dataTagSymbol]: Awaited<ReturnType<TAuth["api"]["listMembers"]>>;
49
+ [dataTagErrorSymbol]: APIError;
50
+ };
51
+ }) & {
52
+ queryKey: DataTag<readonly ["auth", "user", string | undefined, "organization", "members", "list", {
53
+ limit?: string | number | undefined;
54
+ offset?: string | number | undefined;
55
+ sortBy?: string | undefined;
56
+ sortDirection?: "asc" | "desc" | undefined;
57
+ filterField?: string | undefined;
58
+ filterValue?: string | number | boolean | string[] | number[] | undefined;
59
+ filterOperator?: "in" | "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
60
+ organizationId?: string | undefined;
61
+ organizationSlug?: string | undefined;
62
+ } | null], Awaited<ReturnType<TAuth["api"]["listMembers"]>>, APIError>;
63
+ };
64
+ export declare const ensureListOrganizationMembers: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: ListOrganizationMembersParams<TAuth>) => Promise<Awaited<ReturnType<TAuth["api"]["listMembers"]>>>;
65
+ export declare const prefetchListOrganizationMembers: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: ListOrganizationMembersParams<TAuth>) => Promise<void>;
66
+ export declare const fetchListOrganizationMembers: <TAuth extends OrganizationAuthServer>(queryClient: QueryClient, auth: TAuth, userId: string, params: ListOrganizationMembersParams<TAuth>) => Promise<Awaited<ReturnType<TAuth["api"]["listMembers"]>>>;