@better-auth-ui/react 1.6.8 → 1.6.10

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 (233) hide show
  1. package/dist/components/auth/auth-context.d.ts +3 -0
  2. package/dist/components/auth/email/email-localization.d.ts +11 -3
  3. package/dist/components/auth/email/index.d.ts +1 -0
  4. package/dist/components/auth/email/organization-invitation.d.ts +121 -0
  5. package/dist/components/mutation-invalidator.d.ts +1 -0
  6. package/dist/email.js +1348 -11
  7. package/dist/hooks/auth/use-authenticate.d.ts +1 -1
  8. package/dist/hooks/auth/use-user.d.ts +12 -12
  9. package/dist/hooks/use-auth-query.d.ts +1 -1
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.js +2469 -79
  12. package/dist/lib/auth-client.d.ts +4 -1
  13. package/dist/lib/auth-plugin.d.ts +16 -0
  14. package/dist/lib/auth-server.d.ts +8 -1
  15. package/dist/lib/settings-tab.d.ts +19 -0
  16. package/dist/mutations/api-key/create-api-key-mutation.d.ts +6 -4
  17. package/dist/mutations/api-key/delete-api-key-mutation.d.ts +7 -3
  18. package/dist/mutations/auth/sign-in-email-mutation.d.ts +5 -5
  19. package/dist/mutations/auth/sign-out-mutation.d.ts +6 -4
  20. package/dist/mutations/auth/sign-up-email-mutation.d.ts +5 -5
  21. package/dist/mutations/multi-session/revoke-multi-session-mutation.d.ts +5 -5
  22. package/dist/mutations/multi-session/set-active-session-mutation.d.ts +5 -6
  23. package/dist/mutations/organization/accept-invitation-mutation.d.ts +43 -0
  24. package/dist/mutations/organization/cancel-invitation-mutation.d.ts +25 -0
  25. package/dist/mutations/organization/check-slug-mutation.d.ts +21 -0
  26. package/dist/mutations/organization/create-organization-mutation.d.ts +39 -0
  27. package/dist/mutations/organization/delete-organization-mutation.d.ts +21 -0
  28. package/dist/mutations/organization/index.d.ts +12 -0
  29. package/dist/mutations/organization/invite-member-mutation.d.ts +43 -0
  30. package/dist/mutations/organization/leave-organization-mutation.d.ts +65 -0
  31. package/dist/mutations/organization/reject-invitation-mutation.d.ts +31 -0
  32. package/dist/mutations/organization/remove-member-mutation.d.ts +35 -0
  33. package/dist/mutations/organization/set-active-organization-mutation.d.ts +71 -0
  34. package/dist/mutations/organization/update-member-role-mutation.d.ts +31 -0
  35. package/dist/mutations/organization/update-organization-mutation.d.ts +21 -0
  36. package/dist/mutations/passkey/add-passkey-mutation.d.ts +5 -5
  37. package/dist/mutations/passkey/delete-passkey-mutation.d.ts +5 -5
  38. package/dist/mutations/passkey/sign-in-passkey-mutation.d.ts +5 -5
  39. package/dist/mutations/settings/change-email-mutation.d.ts +6 -5
  40. package/dist/mutations/settings/revoke-session-mutation.d.ts +5 -5
  41. package/dist/mutations/settings/unlink-account-mutation.d.ts +5 -5
  42. package/dist/mutations/settings/update-user-mutation.d.ts +5 -5
  43. package/dist/mutations/username/sign-in-username-mutation.d.ts +5 -5
  44. package/dist/plugins/captcha-plugin.d.ts +2 -2
  45. package/dist/plugins.js +27 -2
  46. package/dist/queries/api-key/list-api-keys-query.d.ts +17 -8
  47. package/dist/queries/auth/session-query.d.ts +1 -1
  48. package/dist/queries/multi-session/list-device-sessions-query.d.ts +5 -5
  49. package/dist/queries/organization/active-organization-query.d.ts +39 -0
  50. package/dist/queries/organization/full-organization-query.d.ts +37 -0
  51. package/dist/queries/organization/has-permission-query.d.ts +21 -0
  52. package/dist/queries/organization/index.d.ts +7 -0
  53. package/dist/queries/organization/list-invitations-query.d.ts +29 -0
  54. package/dist/queries/organization/list-members-query.d.ts +61 -0
  55. package/dist/queries/organization/list-organizations-query.d.ts +22 -0
  56. package/dist/queries/organization/list-user-invitations-query.d.ts +29 -0
  57. package/dist/queries/passkey/list-passkeys-query.d.ts +5 -5
  58. package/dist/queries/settings/account-info-query.d.ts +1 -1
  59. package/dist/queries/settings/list-accounts-query.d.ts +1 -1
  60. package/dist/queries/settings/list-sessions-query.d.ts +1 -1
  61. package/dist/server/queries/api-key/list-api-keys-query.d.ts +83 -0
  62. package/dist/server/queries/multi-session/list-device-sessions-query.d.ts +4 -4
  63. package/dist/server/queries/organization/active-organization-query.d.ts +61 -0
  64. package/dist/server/queries/organization/full-organization-query.d.ts +42 -0
  65. package/dist/server/queries/organization/has-permission-query.d.ts +66 -0
  66. package/dist/server/queries/organization/list-invitations-query.d.ts +34 -0
  67. package/dist/server/queries/organization/list-members-query.d.ts +66 -0
  68. package/dist/server/queries/organization/list-organizations-query.d.ts +27 -0
  69. package/dist/server/queries/organization/list-user-invitations-query.d.ts +34 -0
  70. package/dist/server/queries/passkey/list-passkeys-query.d.ts +4 -4
  71. package/dist/server.d.ts +8 -0
  72. package/dist/server.js +131 -7
  73. package/dist/use-auth-plugin-ClcP84Uz.js +80 -0
  74. package/package.json +19 -16
  75. package/src/components/auth/auth-context.tsx +7 -0
  76. package/src/components/auth/auth-provider.tsx +19 -31
  77. package/src/components/auth/email/email-localization.tsx +5 -3
  78. package/src/components/auth/email/index.ts +1 -0
  79. package/src/components/auth/email/organization-invitation.tsx +454 -0
  80. package/src/components/mutation-invalidator.tsx +67 -0
  81. package/src/index.ts +3 -0
  82. package/src/lib/auth-client.ts +7 -0
  83. package/src/lib/auth-plugin.ts +17 -0
  84. package/src/lib/auth-server.ts +17 -1
  85. package/src/lib/settings-tab.ts +21 -0
  86. package/src/mutations/api-key/create-api-key-mutation.ts +34 -19
  87. package/src/mutations/api-key/delete-api-key-mutation.ts +36 -19
  88. package/src/mutations/auth/sign-in-email-mutation.ts +18 -22
  89. package/src/mutations/auth/sign-out-mutation.ts +19 -13
  90. package/src/mutations/auth/sign-up-email-mutation.ts +18 -22
  91. package/src/mutations/multi-session/revoke-multi-session-mutation.ts +31 -20
  92. package/src/mutations/multi-session/set-active-session-mutation.ts +25 -44
  93. package/src/mutations/organization/accept-invitation-mutation.ts +71 -0
  94. package/src/mutations/organization/cancel-invitation-mutation.ts +67 -0
  95. package/src/mutations/organization/check-slug-mutation.ts +55 -0
  96. package/src/mutations/organization/create-organization-mutation.ts +71 -0
  97. package/src/mutations/organization/delete-organization-mutation.ts +71 -0
  98. package/src/mutations/organization/index.ts +12 -0
  99. package/src/mutations/organization/invite-member-mutation.ts +81 -0
  100. package/src/mutations/organization/leave-organization-mutation.ts +74 -0
  101. package/src/mutations/organization/reject-invitation-mutation.ts +64 -0
  102. package/src/mutations/organization/remove-member-mutation.ts +67 -0
  103. package/src/mutations/organization/set-active-organization-mutation.ts +142 -0
  104. package/src/mutations/organization/update-member-role-mutation.ts +81 -0
  105. package/src/mutations/organization/update-organization-mutation.ts +84 -0
  106. package/src/mutations/passkey/add-passkey-mutation.ts +28 -17
  107. package/src/mutations/passkey/delete-passkey-mutation.ts +27 -17
  108. package/src/mutations/passkey/sign-in-passkey-mutation.ts +18 -21
  109. package/src/mutations/settings/change-email-mutation.ts +22 -18
  110. package/src/mutations/settings/delete-user-mutation.ts +2 -2
  111. package/src/mutations/settings/revoke-session-mutation.ts +24 -19
  112. package/src/mutations/settings/unlink-account-mutation.ts +24 -17
  113. package/src/mutations/settings/update-user-mutation.ts +18 -30
  114. package/src/mutations/username/is-username-available-mutation.ts +2 -2
  115. package/src/mutations/username/sign-in-username-mutation.ts +20 -23
  116. package/src/queries/api-key/list-api-keys-query.ts +20 -8
  117. package/src/queries/multi-session/list-device-sessions-query.ts +2 -2
  118. package/src/queries/organization/active-organization-query.ts +140 -0
  119. package/src/queries/organization/full-organization-query.ts +113 -0
  120. package/src/queries/organization/has-permission-query.ts +124 -0
  121. package/src/queries/organization/index.ts +7 -0
  122. package/src/queries/organization/list-invitations-query.ts +133 -0
  123. package/src/queries/organization/list-members-query.ts +133 -0
  124. package/src/queries/organization/list-organizations-query.ts +122 -0
  125. package/src/queries/organization/list-user-invitations-query.ts +122 -0
  126. package/src/queries/passkey/list-passkeys-query.ts +2 -2
  127. package/src/server/queries/api-key/list-api-keys-query.ts +94 -0
  128. package/src/server/queries/multi-session/list-device-sessions-query.ts +2 -2
  129. package/src/server/queries/organization/active-organization-query.ts +92 -0
  130. package/src/server/queries/organization/full-organization-query.ts +64 -0
  131. package/src/server/queries/organization/has-permission-query.ts +66 -0
  132. package/src/server/queries/organization/list-invitations-query.ts +81 -0
  133. package/src/server/queries/organization/list-members-query.ts +75 -0
  134. package/src/server/queries/organization/list-organizations-query.ts +67 -0
  135. package/src/server/queries/organization/list-user-invitations-query.ts +68 -0
  136. package/src/server/queries/passkey/list-passkeys-query.ts +2 -2
  137. package/src/server.ts +8 -0
  138. package/dist/components/auth/auth-provider.js +0 -44
  139. package/dist/components/auth/email/email-changed.js +0 -156
  140. package/dist/components/auth/email/email-localization.js +0 -19
  141. package/dist/components/auth/email/email-styles.js +0 -104
  142. package/dist/components/auth/email/email-verification.js +0 -140
  143. package/dist/components/auth/email/index.js +0 -9
  144. package/dist/components/auth/email/magic-link.js +0 -141
  145. package/dist/components/auth/email/new-device.js +0 -223
  146. package/dist/components/auth/email/otp-email.js +0 -129
  147. package/dist/components/auth/email/password-changed.js +0 -159
  148. package/dist/components/auth/email/reset-password.js +0 -140
  149. package/dist/components/auth/fetch-options-provider.js +0 -30
  150. package/dist/components/icons/apple.js +0 -17
  151. package/dist/components/icons/atlassian.js +0 -39
  152. package/dist/components/icons/cognito.js +0 -20
  153. package/dist/components/icons/discord.js +0 -17
  154. package/dist/components/icons/dropbox.js +0 -17
  155. package/dist/components/icons/facebook.js +0 -20
  156. package/dist/components/icons/figma.js +0 -35
  157. package/dist/components/icons/github.js +0 -17
  158. package/dist/components/icons/gitlab.js +0 -31
  159. package/dist/components/icons/google.js +0 -40
  160. package/dist/components/icons/huggingface.js +0 -39
  161. package/dist/components/icons/index.js +0 -35
  162. package/dist/components/icons/kakao.js +0 -17
  163. package/dist/components/icons/kick.js +0 -21
  164. package/dist/components/icons/line.js +0 -17
  165. package/dist/components/icons/linear.js +0 -17
  166. package/dist/components/icons/linkedin.js +0 -34
  167. package/dist/components/icons/microsoft.js +0 -31
  168. package/dist/components/icons/naver.js +0 -17
  169. package/dist/components/icons/notion.js +0 -17
  170. package/dist/components/icons/paybin.js +0 -33
  171. package/dist/components/icons/paypal.js +0 -31
  172. package/dist/components/icons/polar.js +0 -25
  173. package/dist/components/icons/railway.js +0 -17
  174. package/dist/components/icons/reddit.js +0 -22
  175. package/dist/components/icons/roblox.js +0 -18
  176. package/dist/components/icons/salesforce.js +0 -17
  177. package/dist/components/icons/slack.js +0 -31
  178. package/dist/components/icons/spotify.js +0 -17
  179. package/dist/components/icons/tiktok.js +0 -24
  180. package/dist/components/icons/twitch.js +0 -44
  181. package/dist/components/icons/vercel.js +0 -17
  182. package/dist/components/icons/vk.js +0 -17
  183. package/dist/components/icons/wechat.js +0 -17
  184. package/dist/components/icons/x.js +0 -17
  185. package/dist/components/icons/zoom.js +0 -70
  186. package/dist/components/settings/account/theme-preview.js +0 -289
  187. package/dist/hooks/auth/use-authenticate.js +0 -23
  188. package/dist/hooks/auth/use-user.js +0 -11
  189. package/dist/hooks/use-auth-mutation.js +0 -11
  190. package/dist/hooks/use-auth-plugin.js +0 -10
  191. package/dist/hooks/use-auth-query.js +0 -15
  192. package/dist/lib/provider-icons.js +0 -76
  193. package/dist/lib/utils.js +0 -8
  194. package/dist/mutations/api-key/create-api-key-mutation.js +0 -29
  195. package/dist/mutations/api-key/delete-api-key-mutation.js +0 -29
  196. package/dist/mutations/auth/request-password-reset-mutation.js +0 -24
  197. package/dist/mutations/auth/reset-password-mutation.js +0 -24
  198. package/dist/mutations/auth/send-verification-email-mutation.js +0 -24
  199. package/dist/mutations/auth/sign-in-email-mutation.js +0 -29
  200. package/dist/mutations/auth/sign-in-social-mutation.js +0 -24
  201. package/dist/mutations/auth/sign-out-mutation.js +0 -28
  202. package/dist/mutations/auth/sign-up-email-mutation.js +0 -29
  203. package/dist/mutations/auth-mutation-options.js +0 -19
  204. package/dist/mutations/magic-link/sign-in-magic-link-mutation.js +0 -24
  205. package/dist/mutations/multi-session/revoke-multi-session-mutation.js +0 -29
  206. package/dist/mutations/multi-session/set-active-session-mutation.js +0 -31
  207. package/dist/mutations/passkey/add-passkey-mutation.js +0 -29
  208. package/dist/mutations/passkey/delete-passkey-mutation.js +0 -29
  209. package/dist/mutations/passkey/sign-in-passkey-mutation.js +0 -29
  210. package/dist/mutations/settings/change-email-mutation.js +0 -29
  211. package/dist/mutations/settings/change-password-mutation.js +0 -24
  212. package/dist/mutations/settings/delete-user-mutation.js +0 -24
  213. package/dist/mutations/settings/link-social-mutation.js +0 -24
  214. package/dist/mutations/settings/revoke-session-mutation.js +0 -29
  215. package/dist/mutations/settings/unlink-account-mutation.js +0 -29
  216. package/dist/mutations/settings/update-user-mutation.js +0 -35
  217. package/dist/mutations/username/is-username-available-mutation.js +0 -24
  218. package/dist/mutations/username/sign-in-username-mutation.js +0 -29
  219. package/dist/plugins/captcha-plugin.js +0 -29
  220. package/dist/queries/api-key/list-api-keys-query.js +0 -31
  221. package/dist/queries/auth/session-query.js +0 -30
  222. package/dist/queries/auth-query-options.js +0 -17
  223. package/dist/queries/multi-session/list-device-sessions-query.js +0 -31
  224. package/dist/queries/passkey/list-passkeys-query.js +0 -31
  225. package/dist/queries/settings/account-info-query.js +0 -31
  226. package/dist/queries/settings/list-accounts-query.js +0 -31
  227. package/dist/queries/settings/list-sessions-query.js +0 -31
  228. package/dist/server/queries/auth/session-query.js +0 -13
  229. package/dist/server/queries/multi-session/list-device-sessions-query.js +0 -12
  230. package/dist/server/queries/passkey/list-passkeys-query.js +0 -12
  231. package/dist/server/queries/settings/account-info-query.js +0 -12
  232. package/dist/server/queries/settings/list-accounts-query.js +0 -12
  233. package/dist/server/queries/settings/list-sessions-query.js +0 -12
@@ -0,0 +1,124 @@
1
+ import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
2
+ import {
3
+ type DataTag,
4
+ type QueryClient,
5
+ queryOptions,
6
+ skipToken,
7
+ useQuery
8
+ } from "@tanstack/react-query"
9
+ import type { BetterFetchError } from "better-auth/react"
10
+
11
+ import type { InferData, OrganizationAuthClient } from "../../lib/auth-client"
12
+ import { useSession } from "../auth/session-query"
13
+ import { useActiveOrganization } from "./active-organization-query"
14
+
15
+ export type HasPermissionData<
16
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
17
+ > = InferData<TAuthClient["organization"]["hasPermission"]>
18
+
19
+ export type HasPermissionParams<
20
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
21
+ > = Parameters<TAuthClient["organization"]["hasPermission"]>[0]
22
+
23
+ export type HasPermissionOptions<
24
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
25
+ > = Omit<
26
+ ReturnType<typeof hasPermissionOptions<TAuthClient>>,
27
+ "queryKey" | "queryFn"
28
+ >
29
+
30
+ export function hasPermissionOptions<
31
+ TAuthClient extends OrganizationAuthClient
32
+ >(
33
+ authClient: TAuthClient,
34
+ userId: string | undefined,
35
+ params: HasPermissionParams<TAuthClient>
36
+ ) {
37
+ type TData = HasPermissionData<TAuthClient>
38
+ // `hasPermission` is the only org client method without a `query` field — its
39
+ // params are flat — so the "query" portion is everything except `fetchOptions`.
40
+ const { fetchOptions, ...query } = params
41
+ const queryKey = organizationQueryKeys.permissions.has(userId, query)
42
+
43
+ const options = queryOptions<TData, BetterFetchError, TData, typeof queryKey>(
44
+ {
45
+ queryKey,
46
+ queryFn: ({ signal }) =>
47
+ authClient.organization.hasPermission({
48
+ ...query,
49
+ fetchOptions: { ...fetchOptions, signal, throw: true }
50
+ }) as Promise<TData>
51
+ }
52
+ )
53
+
54
+ return options as typeof options & {
55
+ queryKey: DataTag<typeof queryKey, TData, BetterFetchError>
56
+ }
57
+ }
58
+
59
+ export const ensureHasPermission = <TAuthClient extends OrganizationAuthClient>(
60
+ queryClient: QueryClient,
61
+ authClient: TAuthClient,
62
+ userId: string | undefined,
63
+ params: HasPermissionParams<TAuthClient>
64
+ ) =>
65
+ queryClient.ensureQueryData(hasPermissionOptions(authClient, userId, params))
66
+
67
+ export const prefetchHasPermission = <
68
+ TAuthClient extends OrganizationAuthClient
69
+ >(
70
+ queryClient: QueryClient,
71
+ authClient: TAuthClient,
72
+ userId: string | undefined,
73
+ params: HasPermissionParams<TAuthClient>
74
+ ) => queryClient.prefetchQuery(hasPermissionOptions(authClient, userId, params))
75
+
76
+ export const fetchHasPermission = <TAuthClient extends OrganizationAuthClient>(
77
+ queryClient: QueryClient,
78
+ authClient: TAuthClient,
79
+ userId: string | undefined,
80
+ params: HasPermissionParams<TAuthClient>
81
+ ) => queryClient.fetchQuery(hasPermissionOptions(authClient, userId, params))
82
+
83
+ export type UseHasPermissionOptions<
84
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
85
+ > = HasPermissionOptions<TAuthClient> & HasPermissionParams<TAuthClient>
86
+
87
+ export function useHasPermission<TAuthClient extends OrganizationAuthClient>(
88
+ authClient: TAuthClient,
89
+ options: UseHasPermissionOptions<TAuthClient>,
90
+ queryClient?: QueryClient
91
+ ) {
92
+ const { data: session } = useSession(authClient, undefined, queryClient)
93
+ const userId = session?.user.id
94
+
95
+ const {
96
+ fetchOptions,
97
+ permissions,
98
+ organizationId: optionsOrganizationId,
99
+ ...queryOptions
100
+ } = options
101
+
102
+ const { data: activeOrganization } = useActiveOrganization(
103
+ authClient,
104
+ { enabled: !optionsOrganizationId },
105
+ queryClient
106
+ )
107
+
108
+ const organizationId = optionsOrganizationId ?? activeOrganization?.id
109
+
110
+ const baseOptions = hasPermissionOptions(authClient, userId, {
111
+ fetchOptions,
112
+ organizationId,
113
+ permissions
114
+ })
115
+
116
+ return useQuery(
117
+ {
118
+ ...queryOptions,
119
+ ...baseOptions,
120
+ queryFn: userId && organizationId ? baseOptions.queryFn : skipToken
121
+ },
122
+ queryClient
123
+ )
124
+ }
@@ -0,0 +1,7 @@
1
+ export * from "./active-organization-query"
2
+ export * from "./full-organization-query"
3
+ export * from "./has-permission-query"
4
+ export * from "./list-invitations-query"
5
+ export * from "./list-members-query"
6
+ export * from "./list-organizations-query"
7
+ export * from "./list-user-invitations-query"
@@ -0,0 +1,133 @@
1
+ import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
2
+ import {
3
+ type DataTag,
4
+ type QueryClient,
5
+ queryOptions,
6
+ skipToken,
7
+ useQuery
8
+ } from "@tanstack/react-query"
9
+ import type { BetterFetchError } from "better-auth/react"
10
+
11
+ import type { InferData, OrganizationAuthClient } from "../../lib/auth-client"
12
+ import { useSession } from "../auth/session-query"
13
+ import { useActiveOrganization } from "./active-organization-query"
14
+
15
+ export type ListOrganizationInvitationsData<
16
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
17
+ > = InferData<TAuthClient["organization"]["listInvitations"]>
18
+
19
+ export type ListOrganizationInvitationsParams<
20
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
21
+ > = Parameters<TAuthClient["organization"]["listInvitations"]>[0]
22
+
23
+ export type ListOrganizationInvitationsOptions<
24
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
25
+ > = Omit<
26
+ ReturnType<typeof listOrganizationInvitationsOptions<TAuthClient>>,
27
+ "queryKey" | "queryFn"
28
+ >
29
+
30
+ export function listOrganizationInvitationsOptions<
31
+ TAuthClient extends OrganizationAuthClient
32
+ >(
33
+ authClient: TAuthClient,
34
+ userId: string | undefined,
35
+ params?: ListOrganizationInvitationsParams<TAuthClient>
36
+ ) {
37
+ type TData = ListOrganizationInvitationsData<TAuthClient>
38
+ const queryKey = organizationQueryKeys.invitations.list(userId, params?.query)
39
+
40
+ const options = queryOptions<TData, BetterFetchError, TData, typeof queryKey>(
41
+ {
42
+ queryKey,
43
+ queryFn: ({ signal }) =>
44
+ authClient.organization.listInvitations({
45
+ ...params,
46
+ fetchOptions: { ...params?.fetchOptions, signal, throw: true }
47
+ }) as Promise<TData>
48
+ }
49
+ )
50
+
51
+ return options as typeof options & {
52
+ queryKey: DataTag<typeof queryKey, TData, BetterFetchError>
53
+ }
54
+ }
55
+
56
+ export const ensureListOrganizationInvitations = <
57
+ TAuthClient extends OrganizationAuthClient
58
+ >(
59
+ queryClient: QueryClient,
60
+ authClient: TAuthClient,
61
+ userId: string | undefined,
62
+ params?: ListOrganizationInvitationsParams<TAuthClient>
63
+ ) =>
64
+ queryClient.ensureQueryData(
65
+ listOrganizationInvitationsOptions(authClient, userId, params)
66
+ )
67
+
68
+ export const prefetchListOrganizationInvitations = <
69
+ TAuthClient extends OrganizationAuthClient
70
+ >(
71
+ queryClient: QueryClient,
72
+ authClient: TAuthClient,
73
+ userId: string | undefined,
74
+ params?: ListOrganizationInvitationsParams<TAuthClient>
75
+ ) =>
76
+ queryClient.prefetchQuery(
77
+ listOrganizationInvitationsOptions(authClient, userId, params)
78
+ )
79
+
80
+ export const fetchListOrganizationInvitations = <
81
+ TAuthClient extends OrganizationAuthClient
82
+ >(
83
+ queryClient: QueryClient,
84
+ authClient: TAuthClient,
85
+ userId: string | undefined,
86
+ params?: ListOrganizationInvitationsParams<TAuthClient>
87
+ ) =>
88
+ queryClient.fetchQuery(
89
+ listOrganizationInvitationsOptions(authClient, userId, params)
90
+ )
91
+
92
+ export type UseListOrganizationInvitationsOptions<
93
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
94
+ > = ListOrganizationInvitationsOptions<TAuthClient> &
95
+ ListOrganizationInvitationsParams<TAuthClient>
96
+
97
+ export function useListOrganizationInvitations<
98
+ TAuthClient extends OrganizationAuthClient
99
+ >(
100
+ authClient: TAuthClient,
101
+ options: UseListOrganizationInvitationsOptions<TAuthClient> = {},
102
+ queryClient?: QueryClient
103
+ ) {
104
+ const { data: session } = useSession(authClient, undefined, queryClient)
105
+ const userId = session?.user.id
106
+
107
+ const { query, fetchOptions, ...queryOptions } = options
108
+
109
+ const { data: activeOrganization } = useActiveOrganization(
110
+ authClient,
111
+ { enabled: !query?.organizationId },
112
+ queryClient
113
+ )
114
+
115
+ const organizationId = query?.organizationId ?? activeOrganization?.id
116
+
117
+ const baseOptions = listOrganizationInvitationsOptions(authClient, userId, {
118
+ query: {
119
+ ...query,
120
+ organizationId
121
+ },
122
+ fetchOptions
123
+ })
124
+
125
+ return useQuery(
126
+ {
127
+ ...queryOptions,
128
+ ...baseOptions,
129
+ queryFn: userId && organizationId ? baseOptions.queryFn : skipToken
130
+ },
131
+ queryClient
132
+ )
133
+ }
@@ -0,0 +1,133 @@
1
+ import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
2
+ import {
3
+ type DataTag,
4
+ type QueryClient,
5
+ queryOptions,
6
+ skipToken,
7
+ useQuery
8
+ } from "@tanstack/react-query"
9
+ import type { BetterFetchError } from "better-auth/react"
10
+
11
+ import type { InferData, OrganizationAuthClient } from "../../lib/auth-client"
12
+ import { useSession } from "../auth/session-query"
13
+ import { useActiveOrganization } from "./active-organization-query"
14
+
15
+ export type ListOrganizationMembersData<
16
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
17
+ > = InferData<TAuthClient["organization"]["listMembers"]>
18
+
19
+ export type ListOrganizationMembersParams<
20
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
21
+ > = Parameters<TAuthClient["organization"]["listMembers"]>[0]
22
+
23
+ export type ListOrganizationMembersOptions<
24
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
25
+ > = Omit<
26
+ ReturnType<typeof listOrganizationMembersOptions<TAuthClient>>,
27
+ "queryKey" | "queryFn"
28
+ >
29
+
30
+ export function listOrganizationMembersOptions<
31
+ TAuthClient extends OrganizationAuthClient
32
+ >(
33
+ authClient: TAuthClient,
34
+ userId: string | undefined,
35
+ params?: ListOrganizationMembersParams<TAuthClient>
36
+ ) {
37
+ type TData = ListOrganizationMembersData<TAuthClient>
38
+ const queryKey = organizationQueryKeys.members.list(userId, params?.query)
39
+
40
+ const options = queryOptions<TData, BetterFetchError, TData, typeof queryKey>(
41
+ {
42
+ queryKey,
43
+ queryFn: ({ signal }) =>
44
+ authClient.organization.listMembers({
45
+ ...params,
46
+ fetchOptions: { ...params?.fetchOptions, signal, throw: true }
47
+ }) as Promise<TData>
48
+ }
49
+ )
50
+
51
+ return options as typeof options & {
52
+ queryKey: DataTag<typeof queryKey, TData, BetterFetchError>
53
+ }
54
+ }
55
+
56
+ export const ensureListOrganizationMembers = <
57
+ TAuthClient extends OrganizationAuthClient
58
+ >(
59
+ queryClient: QueryClient,
60
+ authClient: TAuthClient,
61
+ userId: string | undefined,
62
+ params?: ListOrganizationMembersParams<TAuthClient>
63
+ ) =>
64
+ queryClient.ensureQueryData(
65
+ listOrganizationMembersOptions(authClient, userId, params)
66
+ )
67
+
68
+ export const prefetchListOrganizationMembers = <
69
+ TAuthClient extends OrganizationAuthClient
70
+ >(
71
+ queryClient: QueryClient,
72
+ authClient: TAuthClient,
73
+ userId: string | undefined,
74
+ params?: ListOrganizationMembersParams<TAuthClient>
75
+ ) =>
76
+ queryClient.prefetchQuery(
77
+ listOrganizationMembersOptions(authClient, userId, params)
78
+ )
79
+
80
+ export const fetchListOrganizationMembers = <
81
+ TAuthClient extends OrganizationAuthClient
82
+ >(
83
+ queryClient: QueryClient,
84
+ authClient: TAuthClient,
85
+ userId: string | undefined,
86
+ params?: ListOrganizationMembersParams<TAuthClient>
87
+ ) =>
88
+ queryClient.fetchQuery(
89
+ listOrganizationMembersOptions(authClient, userId, params)
90
+ )
91
+
92
+ export type UseListOrganizationMembersOptions<
93
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
94
+ > = ListOrganizationMembersOptions<TAuthClient> &
95
+ ListOrganizationMembersParams<TAuthClient>
96
+
97
+ export function useListOrganizationMembers<
98
+ TAuthClient extends OrganizationAuthClient
99
+ >(
100
+ authClient: TAuthClient,
101
+ options: UseListOrganizationMembersOptions<TAuthClient> = {},
102
+ queryClient?: QueryClient
103
+ ) {
104
+ const { data: session } = useSession(authClient, undefined, queryClient)
105
+ const userId = session?.user.id
106
+
107
+ const { query, fetchOptions, ...queryOptions } = options
108
+
109
+ const { data: activeOrganization } = useActiveOrganization(
110
+ authClient,
111
+ { enabled: !query?.organizationId },
112
+ queryClient
113
+ )
114
+
115
+ const organizationId = query?.organizationId ?? activeOrganization?.id
116
+
117
+ const baseOptions = listOrganizationMembersOptions(authClient, userId, {
118
+ query: {
119
+ ...query,
120
+ organizationId
121
+ },
122
+ fetchOptions
123
+ })
124
+
125
+ return useQuery(
126
+ {
127
+ ...queryOptions,
128
+ ...baseOptions,
129
+ queryFn: userId && organizationId ? baseOptions.queryFn : skipToken
130
+ },
131
+ queryClient
132
+ )
133
+ }
@@ -0,0 +1,122 @@
1
+ import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
2
+ import {
3
+ type DataTag,
4
+ type QueryClient,
5
+ queryOptions,
6
+ skipToken,
7
+ useQuery
8
+ } from "@tanstack/react-query"
9
+ import type { BetterFetchError } from "better-auth/react"
10
+
11
+ import type { InferData, OrganizationAuthClient } from "../../lib/auth-client"
12
+ import { useSession } from "../auth/session-query"
13
+
14
+ export type ListOrganizationsData<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = InferData<TAuthClient["organization"]["list"]>
17
+
18
+ export type ListOrganization<
19
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
20
+ > = NonNullable<ListOrganizationsData<TAuthClient>>[number]
21
+
22
+ export type ListOrganizationsParams<
23
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
24
+ > = Parameters<TAuthClient["organization"]["list"]>[0]
25
+
26
+ export type ListOrganizationsOptions<
27
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
28
+ > = Omit<
29
+ ReturnType<typeof listOrganizationsOptions<TAuthClient>>,
30
+ "queryKey" | "queryFn"
31
+ >
32
+
33
+ export function listOrganizationsOptions<
34
+ TAuthClient extends OrganizationAuthClient
35
+ >(
36
+ authClient: TAuthClient,
37
+ userId: string | undefined,
38
+ params?: ListOrganizationsParams<TAuthClient>
39
+ ) {
40
+ type TData = ListOrganizationsData<TAuthClient>
41
+ const queryKey = organizationQueryKeys.list(userId, params?.query)
42
+
43
+ const options = queryOptions<TData, BetterFetchError, TData, typeof queryKey>(
44
+ {
45
+ queryKey,
46
+ queryFn: ({ signal }) =>
47
+ authClient.organization.list({
48
+ ...params,
49
+ fetchOptions: { ...params?.fetchOptions, signal, throw: true }
50
+ }) as Promise<TData>
51
+ }
52
+ )
53
+
54
+ return options as typeof options & {
55
+ queryKey: DataTag<typeof queryKey, TData, BetterFetchError>
56
+ }
57
+ }
58
+
59
+ export const ensureListOrganizations = <
60
+ TAuthClient extends OrganizationAuthClient
61
+ >(
62
+ queryClient: QueryClient,
63
+ authClient: TAuthClient,
64
+ userId: string,
65
+ params?: ListOrganizationsParams<TAuthClient>
66
+ ) =>
67
+ queryClient.ensureQueryData(
68
+ listOrganizationsOptions(authClient, userId, params)
69
+ )
70
+
71
+ export const prefetchListOrganizations = <
72
+ TAuthClient extends OrganizationAuthClient
73
+ >(
74
+ queryClient: QueryClient,
75
+ authClient: TAuthClient,
76
+ userId: string,
77
+ params?: ListOrganizationsParams<TAuthClient>
78
+ ) =>
79
+ queryClient.prefetchQuery(
80
+ listOrganizationsOptions(authClient, userId, params)
81
+ )
82
+
83
+ export const fetchListOrganizations = <
84
+ TAuthClient extends OrganizationAuthClient
85
+ >(
86
+ queryClient: QueryClient,
87
+ authClient: TAuthClient,
88
+ userId: string,
89
+ params?: ListOrganizationsParams<TAuthClient>
90
+ ) =>
91
+ queryClient.fetchQuery(listOrganizationsOptions(authClient, userId, params))
92
+
93
+ export type UseListOrganizationsOptions<
94
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
95
+ > = ListOrganizationsOptions<TAuthClient> & ListOrganizationsParams<TAuthClient>
96
+
97
+ export function useListOrganizations<
98
+ TAuthClient extends OrganizationAuthClient
99
+ >(
100
+ authClient: TAuthClient,
101
+ options: UseListOrganizationsOptions<TAuthClient> = {},
102
+ queryClient?: QueryClient
103
+ ) {
104
+ const { data: session } = useSession(authClient, undefined, queryClient)
105
+ const userId = session?.user.id
106
+
107
+ const { query, fetchOptions, ...queryOptionsRest } = options
108
+
109
+ const baseOptions = listOrganizationsOptions(authClient, userId, {
110
+ query,
111
+ fetchOptions
112
+ })
113
+
114
+ return useQuery(
115
+ {
116
+ ...queryOptionsRest,
117
+ ...baseOptions,
118
+ queryFn: userId ? baseOptions.queryFn : skipToken
119
+ },
120
+ queryClient
121
+ )
122
+ }
@@ -0,0 +1,122 @@
1
+ import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
2
+ import {
3
+ type DataTag,
4
+ type QueryClient,
5
+ queryOptions,
6
+ skipToken,
7
+ useQuery
8
+ } from "@tanstack/react-query"
9
+ import type { BetterFetchError } from "better-auth/react"
10
+
11
+ import type { InferData, OrganizationAuthClient } from "../../lib/auth-client"
12
+ import { useSession } from "../auth/session-query"
13
+
14
+ export type ListUserInvitationsData<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = InferData<TAuthClient["organization"]["listUserInvitations"]>
17
+
18
+ export type ListUserInvitationsParams<
19
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
20
+ > = Parameters<TAuthClient["organization"]["listUserInvitations"]>[0]
21
+
22
+ export type ListUserInvitationsOptions<
23
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
24
+ > = Omit<
25
+ ReturnType<typeof listUserInvitationsOptions<TAuthClient>>,
26
+ "queryKey" | "queryFn"
27
+ >
28
+
29
+ export function listUserInvitationsOptions<
30
+ TAuthClient extends OrganizationAuthClient
31
+ >(
32
+ authClient: TAuthClient,
33
+ userId: string | undefined,
34
+ params?: ListUserInvitationsParams<TAuthClient>
35
+ ) {
36
+ type TData = ListUserInvitationsData<TAuthClient>
37
+ const queryKey = organizationQueryKeys.userInvitations.list(
38
+ userId,
39
+ params?.query
40
+ )
41
+
42
+ const options = queryOptions<TData, BetterFetchError, TData, typeof queryKey>(
43
+ {
44
+ queryKey,
45
+ queryFn: ({ signal }) =>
46
+ authClient.organization.listUserInvitations({
47
+ ...params,
48
+ fetchOptions: { ...params?.fetchOptions, signal, throw: true }
49
+ }) as Promise<TData>
50
+ }
51
+ )
52
+
53
+ return options as typeof options & {
54
+ queryKey: DataTag<typeof queryKey, TData, BetterFetchError>
55
+ }
56
+ }
57
+
58
+ export const ensureListUserInvitations = <
59
+ TAuthClient extends OrganizationAuthClient
60
+ >(
61
+ queryClient: QueryClient,
62
+ authClient: TAuthClient,
63
+ userId: string | undefined,
64
+ params?: ListUserInvitationsParams<TAuthClient>
65
+ ) =>
66
+ queryClient.ensureQueryData(
67
+ listUserInvitationsOptions(authClient, userId, params)
68
+ )
69
+
70
+ export const prefetchListUserInvitations = <
71
+ TAuthClient extends OrganizationAuthClient
72
+ >(
73
+ queryClient: QueryClient,
74
+ authClient: TAuthClient,
75
+ userId: string | undefined,
76
+ params?: ListUserInvitationsParams<TAuthClient>
77
+ ) =>
78
+ queryClient.prefetchQuery(
79
+ listUserInvitationsOptions(authClient, userId, params)
80
+ )
81
+
82
+ export const fetchListUserInvitations = <
83
+ TAuthClient extends OrganizationAuthClient
84
+ >(
85
+ queryClient: QueryClient,
86
+ authClient: TAuthClient,
87
+ userId: string | undefined,
88
+ params?: ListUserInvitationsParams<TAuthClient>
89
+ ) =>
90
+ queryClient.fetchQuery(listUserInvitationsOptions(authClient, userId, params))
91
+
92
+ export type UseListUserInvitationsOptions<
93
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
94
+ > = ListUserInvitationsOptions<TAuthClient> &
95
+ ListUserInvitationsParams<TAuthClient>
96
+
97
+ export function useListUserInvitations<
98
+ TAuthClient extends OrganizationAuthClient
99
+ >(
100
+ authClient: TAuthClient,
101
+ options: UseListUserInvitationsOptions<TAuthClient> = {},
102
+ queryClient?: QueryClient
103
+ ) {
104
+ const { data: session } = useSession(authClient, undefined, queryClient)
105
+ const userId = session?.user.id
106
+
107
+ const { query, fetchOptions, ...queryOptions } = options
108
+
109
+ const baseOptions = listUserInvitationsOptions(authClient, userId, {
110
+ query,
111
+ fetchOptions
112
+ })
113
+
114
+ return useQuery(
115
+ {
116
+ ...queryOptions,
117
+ ...baseOptions,
118
+ queryFn: userId ? baseOptions.queryFn : skipToken
119
+ },
120
+ queryClient
121
+ )
122
+ }
@@ -1,4 +1,4 @@
1
- import { authQueryKeys } from "@better-auth-ui/core"
1
+ import { passkeyQueryKeys } from "@better-auth-ui/core/plugins"
2
2
  import {
3
3
  type DataTag,
4
4
  type QueryClient,
@@ -40,7 +40,7 @@ export function listPasskeysOptions<TAuthClient extends PasskeyAuthClient>(
40
40
  params?: ListPasskeysParams<TAuthClient>
41
41
  ) {
42
42
  type TData = ListPasskeysData<TAuthClient>
43
- const queryKey = authQueryKeys.listPasskeys(userId, params?.query)
43
+ const queryKey = passkeyQueryKeys.list(userId, params?.query)
44
44
 
45
45
  const options = queryOptions<TData, BetterFetchError, TData, typeof queryKey>(
46
46
  {