@better-auth-ui/solid 1.6.19

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 (270) hide show
  1. package/dist/components/auth/email/email-changed.d.ts +59 -0
  2. package/dist/components/auth/email/email-changed.js +264 -0
  3. package/dist/components/auth/email/email-styles.d.ts +48 -0
  4. package/dist/components/auth/email/email-styles.js +107 -0
  5. package/dist/components/auth/email/email-verification.d.ts +51 -0
  6. package/dist/components/auth/email/email-verification.js +212 -0
  7. package/dist/components/auth/email/index.d.ts +9 -0
  8. package/dist/components/auth/email/magic-link.d.ts +53 -0
  9. package/dist/components/auth/email/magic-link.js +213 -0
  10. package/dist/components/auth/email/new-device.d.ts +77 -0
  11. package/dist/components/auth/email/new-device.js +326 -0
  12. package/dist/components/auth/email/organization-invitation.d.ts +70 -0
  13. package/dist/components/auth/email/organization-invitation.js +260 -0
  14. package/dist/components/auth/email/otp-email.d.ts +49 -0
  15. package/dist/components/auth/email/otp-email.js +191 -0
  16. package/dist/components/auth/email/password-changed.d.ts +56 -0
  17. package/dist/components/auth/email/password-changed.js +236 -0
  18. package/dist/components/auth/email/reset-password.d.ts +51 -0
  19. package/dist/components/auth/email/reset-password.js +212 -0
  20. package/dist/email.d.ts +18 -0
  21. package/dist/email.js +10 -0
  22. package/dist/hooks/auth/use-authenticate.d.ts +3 -0
  23. package/dist/hooks/auth/use-authenticate.js +18 -0
  24. package/dist/hooks/auth/use-sign-out.d.ts +2 -0
  25. package/dist/hooks/auth/use-sign-out.js +17 -0
  26. package/dist/hooks/auth/use-user.d.ts +213 -0
  27. package/dist/hooks/auth/use-user.js +13 -0
  28. package/dist/hooks/use-auth-mutation.d.ts +6 -0
  29. package/dist/hooks/use-auth-mutation.js +11 -0
  30. package/dist/hooks/use-auth-query.d.ts +5 -0
  31. package/dist/hooks/use-auth-query.js +17 -0
  32. package/dist/index.d.ts +48 -0
  33. package/dist/index.js +68 -0
  34. package/dist/lib/auth-client.d.ts +26 -0
  35. package/dist/lib/auth-config.d.ts +12 -0
  36. package/dist/lib/auth-config.js +21 -0
  37. package/dist/lib/auth-plugin.d.ts +16 -0
  38. package/dist/lib/auth-provider.d.ts +12 -0
  39. package/dist/lib/auth-provider.js +36 -0
  40. package/dist/lib/auth-server.d.ts +16 -0
  41. package/dist/lib/auth-utils.d.ts +3 -0
  42. package/dist/lib/auth-utils.js +12 -0
  43. package/dist/lib/fetch-options-provider.d.ts +23 -0
  44. package/dist/lib/fetch-options-provider.js +29 -0
  45. package/dist/lib/mutation-invalidator.d.ts +11 -0
  46. package/dist/lib/mutation-invalidator.js +20 -0
  47. package/dist/lib/provider-icons.d.ts +8 -0
  48. package/dist/lib/provider-icons.js +5 -0
  49. package/dist/mutations/api-key/create-api-key-mutation.d.ts +71 -0
  50. package/dist/mutations/api-key/create-api-key-mutation.js +12 -0
  51. package/dist/mutations/api-key/delete-api-key-mutation.d.ts +23 -0
  52. package/dist/mutations/api-key/delete-api-key-mutation.js +12 -0
  53. package/dist/mutations/auth/request-password-reset-mutation.d.ts +11 -0
  54. package/dist/mutations/auth/request-password-reset-mutation.js +8 -0
  55. package/dist/mutations/auth/reset-password-mutation.d.ts +13 -0
  56. package/dist/mutations/auth/reset-password-mutation.js +8 -0
  57. package/dist/mutations/auth/send-verification-email-mutation.d.ts +11 -0
  58. package/dist/mutations/auth/send-verification-email-mutation.js +8 -0
  59. package/dist/mutations/auth/sign-in-email-mutation.d.ts +15 -0
  60. package/dist/mutations/auth/sign-in-email-mutation.js +8 -0
  61. package/dist/mutations/auth/sign-in-social-mutation.d.ts +53 -0
  62. package/dist/mutations/auth/sign-in-social-mutation.js +8 -0
  63. package/dist/mutations/auth/sign-out-mutation.d.ts +6 -0
  64. package/dist/mutations/auth/sign-out-mutation.js +8 -0
  65. package/dist/mutations/auth/sign-up-email-mutation.d.ts +17 -0
  66. package/dist/mutations/auth/sign-up-email-mutation.js +8 -0
  67. package/dist/mutations/auth-mutation-options.d.ts +10 -0
  68. package/dist/mutations/auth-mutation-options.js +19 -0
  69. package/dist/mutations/create-auth-mutation.d.ts +10 -0
  70. package/dist/mutations/create-auth-mutation.js +20 -0
  71. package/dist/mutations/magic-link/sign-in-magic-link-mutation.d.ts +19 -0
  72. package/dist/mutations/magic-link/sign-in-magic-link-mutation.js +8 -0
  73. package/dist/mutations/multi-session/revoke-multi-session-mutation.d.ts +19 -0
  74. package/dist/mutations/multi-session/revoke-multi-session-mutation.js +12 -0
  75. package/dist/mutations/multi-session/set-active-session-mutation.d.ts +19 -0
  76. package/dist/mutations/multi-session/set-active-session-mutation.js +13 -0
  77. package/dist/mutations/organization/accept-invitation-mutation.d.ts +18 -0
  78. package/dist/mutations/organization/accept-invitation-mutation.js +12 -0
  79. package/dist/mutations/organization/cancel-invitation-mutation.d.ts +18 -0
  80. package/dist/mutations/organization/cancel-invitation-mutation.js +12 -0
  81. package/dist/mutations/organization/check-slug-mutation.d.ts +18 -0
  82. package/dist/mutations/organization/check-slug-mutation.js +15 -0
  83. package/dist/mutations/organization/create-organization-mutation.d.ts +38 -0
  84. package/dist/mutations/organization/create-organization-mutation.js +12 -0
  85. package/dist/mutations/organization/delete-organization-mutation.d.ts +18 -0
  86. package/dist/mutations/organization/delete-organization-mutation.js +12 -0
  87. package/dist/mutations/organization/index.d.ts +13 -0
  88. package/dist/mutations/organization/index.js +13 -0
  89. package/dist/mutations/organization/invite-member-mutation.d.ts +30 -0
  90. package/dist/mutations/organization/invite-member-mutation.js +12 -0
  91. package/dist/mutations/organization/leave-organization-mutation.d.ts +18 -0
  92. package/dist/mutations/organization/leave-organization-mutation.js +12 -0
  93. package/dist/mutations/organization/metadata.d.ts +13 -0
  94. package/dist/mutations/organization/metadata.js +27 -0
  95. package/dist/mutations/organization/reject-invitation-mutation.d.ts +18 -0
  96. package/dist/mutations/organization/reject-invitation-mutation.js +12 -0
  97. package/dist/mutations/organization/remove-member-mutation.d.ts +22 -0
  98. package/dist/mutations/organization/remove-member-mutation.js +12 -0
  99. package/dist/mutations/organization/set-active-organization-mutation.d.ts +24 -0
  100. package/dist/mutations/organization/set-active-organization-mutation.js +35 -0
  101. package/dist/mutations/organization/update-member-role-mutation.d.ts +26 -0
  102. package/dist/mutations/organization/update-member-role-mutation.js +12 -0
  103. package/dist/mutations/organization/update-organization-mutation.d.ts +42 -0
  104. package/dist/mutations/organization/update-organization-mutation.js +12 -0
  105. package/dist/mutations/organization/utils.d.ts +8 -0
  106. package/dist/mutations/organization/utils.js +17 -0
  107. package/dist/mutations/passkey/add-passkey-mutation.d.ts +73 -0
  108. package/dist/mutations/passkey/add-passkey-mutation.js +12 -0
  109. package/dist/mutations/passkey/delete-passkey-mutation.d.ts +19 -0
  110. package/dist/mutations/passkey/delete-passkey-mutation.js +12 -0
  111. package/dist/mutations/passkey/sign-in-passkey-mutation.d.ts +50 -0
  112. package/dist/mutations/passkey/sign-in-passkey-mutation.js +9 -0
  113. package/dist/mutations/settings/change-email-mutation.d.ts +11 -0
  114. package/dist/mutations/settings/change-email-mutation.js +8 -0
  115. package/dist/mutations/settings/change-password-mutation.d.ts +13 -0
  116. package/dist/mutations/settings/change-password-mutation.js +8 -0
  117. package/dist/mutations/settings/delete-user-mutation.d.ts +13 -0
  118. package/dist/mutations/settings/delete-user-mutation.js +8 -0
  119. package/dist/mutations/settings/link-social-mutation.d.ts +35 -0
  120. package/dist/mutations/settings/link-social-mutation.js +8 -0
  121. package/dist/mutations/settings/revoke-session-mutation.d.ts +19 -0
  122. package/dist/mutations/settings/revoke-session-mutation.js +12 -0
  123. package/dist/mutations/settings/unlink-account-mutation.d.ts +23 -0
  124. package/dist/mutations/settings/unlink-account-mutation.js +12 -0
  125. package/dist/mutations/settings/update-user-mutation.d.ts +6 -0
  126. package/dist/mutations/settings/update-user-mutation.js +8 -0
  127. package/dist/mutations/use-session-scoped-mutation.d.ts +17 -0
  128. package/dist/mutations/use-session-scoped-mutation.js +17 -0
  129. package/dist/mutations/username/is-username-available-mutation.d.ts +9 -0
  130. package/dist/mutations/username/is-username-available-mutation.js +8 -0
  131. package/dist/mutations/username/sign-in-username-mutation.d.ts +15 -0
  132. package/dist/mutations/username/sign-in-username-mutation.js +9 -0
  133. package/dist/plugins/captcha-plugin.d.ts +29 -0
  134. package/dist/plugins/captcha-plugin.js +26 -0
  135. package/dist/plugins.d.ts +2 -0
  136. package/dist/plugins.js +2 -0
  137. package/dist/queries/api-key/list-api-keys-query.d.ts +44 -0
  138. package/dist/queries/api-key/list-api-keys-query.js +17 -0
  139. package/dist/queries/auth/session-query.d.ts +22 -0
  140. package/dist/queries/auth/session-query.js +32 -0
  141. package/dist/queries/auth-query-options.d.ts +14 -0
  142. package/dist/queries/auth-query-options.js +17 -0
  143. package/dist/queries/create-user-scoped-query.d.ts +25 -0
  144. package/dist/queries/create-user-scoped-query.js +29 -0
  145. package/dist/queries/multi-session/list-device-sessions-query.d.ts +23 -0
  146. package/dist/queries/multi-session/list-device-sessions-query.js +17 -0
  147. package/dist/queries/organization/active-organization-query.d.ts +37 -0
  148. package/dist/queries/organization/active-organization-query.js +26 -0
  149. package/dist/queries/organization/full-organization-query.d.ts +35 -0
  150. package/dist/queries/organization/full-organization-query.js +25 -0
  151. package/dist/queries/organization/has-permission-query.d.ts +23 -0
  152. package/dist/queries/organization/has-permission-query.js +31 -0
  153. package/dist/queries/organization/index.d.ts +7 -0
  154. package/dist/queries/organization/index.js +7 -0
  155. package/dist/queries/organization/list-invitations-query.d.ts +29 -0
  156. package/dist/queries/organization/list-invitations-query.js +29 -0
  157. package/dist/queries/organization/list-members-query.d.ts +53 -0
  158. package/dist/queries/organization/list-members-query.js +29 -0
  159. package/dist/queries/organization/list-organizations-query.d.ts +23 -0
  160. package/dist/queries/organization/list-organizations-query.js +25 -0
  161. package/dist/queries/organization/list-user-invitations-query.d.ts +29 -0
  162. package/dist/queries/organization/list-user-invitations-query.js +25 -0
  163. package/dist/queries/organization/plugin.d.ts +1 -0
  164. package/dist/queries/organization/plugin.js +8 -0
  165. package/dist/queries/organization/utils.d.ts +16 -0
  166. package/dist/queries/organization/utils.js +18 -0
  167. package/dist/queries/passkey/list-passkeys-query.d.ts +23 -0
  168. package/dist/queries/passkey/list-passkeys-query.js +17 -0
  169. package/dist/queries/settings/account-info-query.d.ts +35 -0
  170. package/dist/queries/settings/account-info-query.js +17 -0
  171. package/dist/queries/settings/list-accounts-query.d.ts +23 -0
  172. package/dist/queries/settings/list-accounts-query.js +17 -0
  173. package/dist/queries/settings/list-sessions-query.d.ts +24 -0
  174. package/dist/queries/settings/list-sessions-query.js +17 -0
  175. package/dist/server/queries/auth/session-query.d.ts +19 -0
  176. package/dist/server/queries/auth/session-query.js +13 -0
  177. package/dist/server.d.ts +7 -0
  178. package/dist/server.js +7 -0
  179. package/package.json +63 -0
  180. package/src/components/auth/email/email-changed.tsx +305 -0
  181. package/src/components/auth/email/email-styles.tsx +139 -0
  182. package/src/components/auth/email/email-verification.tsx +249 -0
  183. package/src/components/auth/email/index.ts +9 -0
  184. package/src/components/auth/email/magic-link.tsx +254 -0
  185. package/src/components/auth/email/new-device.tsx +347 -0
  186. package/src/components/auth/email/organization-invitation.tsx +322 -0
  187. package/src/components/auth/email/otp-email.tsx +239 -0
  188. package/src/components/auth/email/password-changed.tsx +279 -0
  189. package/src/components/auth/email/reset-password.tsx +250 -0
  190. package/src/email.ts +49 -0
  191. package/src/hooks/auth/use-authenticate.ts +30 -0
  192. package/src/hooks/auth/use-sign-out.ts +23 -0
  193. package/src/hooks/auth/use-user.ts +19 -0
  194. package/src/hooks/use-auth-mutation.ts +35 -0
  195. package/src/hooks/use-auth-query.ts +33 -0
  196. package/src/index.ts +48 -0
  197. package/src/lib/auth-client.ts +43 -0
  198. package/src/lib/auth-config.ts +46 -0
  199. package/src/lib/auth-plugin.ts +20 -0
  200. package/src/lib/auth-provider.tsx +60 -0
  201. package/src/lib/auth-server.ts +25 -0
  202. package/src/lib/auth-utils.ts +25 -0
  203. package/src/lib/fetch-options-provider.tsx +77 -0
  204. package/src/lib/mutation-invalidator.tsx +82 -0
  205. package/src/lib/provider-icons.ts +10 -0
  206. package/src/mutations/api-key/create-api-key-mutation.ts +40 -0
  207. package/src/mutations/api-key/delete-api-key-mutation.ts +40 -0
  208. package/src/mutations/auth/request-password-reset-mutation.ts +15 -0
  209. package/src/mutations/auth/reset-password-mutation.ts +16 -0
  210. package/src/mutations/auth/send-verification-email-mutation.ts +15 -0
  211. package/src/mutations/auth/sign-in-email-mutation.ts +17 -0
  212. package/src/mutations/auth/sign-in-social-mutation.ts +16 -0
  213. package/src/mutations/auth/sign-out-mutation.ts +13 -0
  214. package/src/mutations/auth/sign-up-email-mutation.ts +17 -0
  215. package/src/mutations/auth-mutation-options.ts +62 -0
  216. package/src/mutations/create-auth-mutation.ts +44 -0
  217. package/src/mutations/magic-link/sign-in-magic-link-mutation.ts +15 -0
  218. package/src/mutations/multi-session/revoke-multi-session-mutation.ts +40 -0
  219. package/src/mutations/multi-session/set-active-session-mutation.ts +43 -0
  220. package/src/mutations/organization/accept-invitation-mutation.ts +38 -0
  221. package/src/mutations/organization/cancel-invitation-mutation.ts +38 -0
  222. package/src/mutations/organization/check-slug-mutation.ts +36 -0
  223. package/src/mutations/organization/create-organization-mutation.ts +37 -0
  224. package/src/mutations/organization/delete-organization-mutation.ts +37 -0
  225. package/src/mutations/organization/index.ts +13 -0
  226. package/src/mutations/organization/invite-member-mutation.ts +38 -0
  227. package/src/mutations/organization/leave-organization-mutation.ts +37 -0
  228. package/src/mutations/organization/metadata.ts +103 -0
  229. package/src/mutations/organization/reject-invitation-mutation.ts +38 -0
  230. package/src/mutations/organization/remove-member-mutation.ts +38 -0
  231. package/src/mutations/organization/set-active-organization-mutation.ts +110 -0
  232. package/src/mutations/organization/update-member-role-mutation.ts +38 -0
  233. package/src/mutations/organization/update-organization-mutation.ts +37 -0
  234. package/src/mutations/organization/utils.ts +51 -0
  235. package/src/mutations/passkey/add-passkey-mutation.ts +40 -0
  236. package/src/mutations/passkey/delete-passkey-mutation.ts +40 -0
  237. package/src/mutations/passkey/sign-in-passkey-mutation.ts +17 -0
  238. package/src/mutations/settings/change-email-mutation.ts +17 -0
  239. package/src/mutations/settings/change-password-mutation.ts +16 -0
  240. package/src/mutations/settings/delete-user-mutation.ts +16 -0
  241. package/src/mutations/settings/link-social-mutation.ts +16 -0
  242. package/src/mutations/settings/revoke-session-mutation.ts +38 -0
  243. package/src/mutations/settings/unlink-account-mutation.ts +38 -0
  244. package/src/mutations/settings/update-user-mutation.ts +17 -0
  245. package/src/mutations/use-session-scoped-mutation.ts +64 -0
  246. package/src/mutations/username/is-username-available-mutation.ts +15 -0
  247. package/src/mutations/username/sign-in-username-mutation.ts +17 -0
  248. package/src/plugins/captcha-plugin.tsx +64 -0
  249. package/src/plugins.ts +2 -0
  250. package/src/queries/api-key/list-api-keys-query.ts +93 -0
  251. package/src/queries/auth/session-query.ts +81 -0
  252. package/src/queries/auth-query-options.ts +57 -0
  253. package/src/queries/create-user-scoped-query.ts +107 -0
  254. package/src/queries/multi-session/list-device-sessions-query.ts +107 -0
  255. package/src/queries/organization/active-organization-query.ts +127 -0
  256. package/src/queries/organization/full-organization-query.ts +111 -0
  257. package/src/queries/organization/has-permission-query.ts +121 -0
  258. package/src/queries/organization/index.ts +7 -0
  259. package/src/queries/organization/list-invitations-query.ts +124 -0
  260. package/src/queries/organization/list-members-query.ts +124 -0
  261. package/src/queries/organization/list-organizations-query.ts +113 -0
  262. package/src/queries/organization/list-user-invitations-query.ts +114 -0
  263. package/src/queries/organization/plugin.ts +11 -0
  264. package/src/queries/organization/utils.ts +88 -0
  265. package/src/queries/passkey/list-passkeys-query.ts +93 -0
  266. package/src/queries/settings/account-info-query.ts +94 -0
  267. package/src/queries/settings/list-accounts-query.ts +94 -0
  268. package/src/queries/settings/list-sessions-query.ts +96 -0
  269. package/src/server/queries/auth/session-query.ts +56 -0
  270. package/src/server.ts +7 -0
@@ -0,0 +1,38 @@
1
+ import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
2
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
3
+ import { cancelInvitationMeta } from "./metadata"
4
+ import {
5
+ createOrganizationMutationOptions,
6
+ type OrganizationMutationOptions,
7
+ useOrganizationMutation
8
+ } from "./utils"
9
+
10
+ export type CancelInvitationParams<
11
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
12
+ > = Parameters<TAuthClient["organization"]["cancelInvitation"]>[0]
13
+
14
+ export type CancelInvitationOptions<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = OrganizationMutationOptions<TAuthClient["organization"]["cancelInvitation"]>
17
+
18
+ export function cancelInvitationOptions<
19
+ TAuthClient extends OrganizationAuthClient
20
+ >(authClient: TAuthClient) {
21
+ return createOrganizationMutationOptions(
22
+ authClient.organization.cancelInvitation,
23
+ organizationMutationKeys.cancelInvitation
24
+ )
25
+ }
26
+
27
+ export function useCancelInvitation<TAuthClient extends OrganizationAuthClient>(
28
+ authClient: TAuthClient,
29
+ options?: CancelInvitationOptions<TAuthClient>
30
+ ) {
31
+ return useOrganizationMutation(
32
+ authClient,
33
+ authClient.organization.cancelInvitation,
34
+ organizationMutationKeys.cancelInvitation,
35
+ cancelInvitationMeta,
36
+ options
37
+ )
38
+ }
@@ -0,0 +1,36 @@
1
+ import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
2
+ import { createMutation } from "@tanstack/solid-query"
3
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
4
+ import {
5
+ createOrganizationMutationOptions,
6
+ type OrganizationMutationOptions
7
+ } from "./utils"
8
+
9
+ export type CheckOrganizationSlugParams<
10
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
11
+ > = Parameters<TAuthClient["organization"]["checkSlug"]>[0]
12
+
13
+ export type CheckOrganizationSlugOptions<
14
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
15
+ > = OrganizationMutationOptions<TAuthClient["organization"]["checkSlug"]>
16
+
17
+ export function checkOrganizationSlugOptions<
18
+ TAuthClient extends OrganizationAuthClient
19
+ >(authClient: TAuthClient) {
20
+ return createOrganizationMutationOptions(
21
+ authClient.organization.checkSlug,
22
+ organizationMutationKeys.checkSlug
23
+ )
24
+ }
25
+
26
+ export function useCheckOrganizationSlug<
27
+ TAuthClient extends OrganizationAuthClient
28
+ >(
29
+ authClient: TAuthClient,
30
+ options?: CheckOrganizationSlugOptions<TAuthClient>
31
+ ) {
32
+ return createMutation(() => ({
33
+ ...checkOrganizationSlugOptions(authClient),
34
+ ...options
35
+ }))
36
+ }
@@ -0,0 +1,37 @@
1
+ import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
2
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
3
+ import { createOrganizationMeta } from "./metadata"
4
+ import {
5
+ createOrganizationMutationOptions,
6
+ type OrganizationMutationOptions,
7
+ useOrganizationMutation
8
+ } from "./utils"
9
+
10
+ export type CreateOrganizationParams<
11
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
12
+ > = Parameters<TAuthClient["organization"]["create"]>[0]
13
+
14
+ export type CreateOrganizationOptions<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = OrganizationMutationOptions<TAuthClient["organization"]["create"]>
17
+
18
+ export function createOrganizationOptions<
19
+ TAuthClient extends OrganizationAuthClient
20
+ >(authClient: TAuthClient) {
21
+ return createOrganizationMutationOptions(
22
+ authClient.organization.create,
23
+ organizationMutationKeys.create
24
+ )
25
+ }
26
+
27
+ export function useCreateOrganization<
28
+ TAuthClient extends OrganizationAuthClient
29
+ >(authClient: TAuthClient, options?: CreateOrganizationOptions<TAuthClient>) {
30
+ return useOrganizationMutation(
31
+ authClient,
32
+ authClient.organization.create,
33
+ organizationMutationKeys.create,
34
+ createOrganizationMeta,
35
+ options
36
+ )
37
+ }
@@ -0,0 +1,37 @@
1
+ import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
2
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
3
+ import { deleteOrganizationMeta } from "./metadata"
4
+ import {
5
+ createOrganizationMutationOptions,
6
+ type OrganizationMutationOptions,
7
+ useOrganizationMutation
8
+ } from "./utils"
9
+
10
+ export type DeleteOrganizationParams<
11
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
12
+ > = Parameters<TAuthClient["organization"]["delete"]>[0]
13
+
14
+ export type DeleteOrganizationOptions<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = OrganizationMutationOptions<TAuthClient["organization"]["delete"]>
17
+
18
+ export function deleteOrganizationOptions<
19
+ TAuthClient extends OrganizationAuthClient
20
+ >(authClient: TAuthClient) {
21
+ return createOrganizationMutationOptions(
22
+ authClient.organization.delete,
23
+ organizationMutationKeys.delete
24
+ )
25
+ }
26
+
27
+ export function useDeleteOrganization<
28
+ TAuthClient extends OrganizationAuthClient
29
+ >(authClient: TAuthClient, options?: DeleteOrganizationOptions<TAuthClient>) {
30
+ return useOrganizationMutation(
31
+ authClient,
32
+ authClient.organization.delete,
33
+ organizationMutationKeys.delete,
34
+ deleteOrganizationMeta,
35
+ options
36
+ )
37
+ }
@@ -0,0 +1,13 @@
1
+ export * from "./accept-invitation-mutation"
2
+ export * from "./cancel-invitation-mutation"
3
+ export * from "./check-slug-mutation"
4
+ export * from "./create-organization-mutation"
5
+ export * from "./delete-organization-mutation"
6
+ export * from "./invite-member-mutation"
7
+ export * from "./leave-organization-mutation"
8
+ export * from "./metadata"
9
+ export * from "./reject-invitation-mutation"
10
+ export * from "./remove-member-mutation"
11
+ export * from "./set-active-organization-mutation"
12
+ export * from "./update-member-role-mutation"
13
+ export * from "./update-organization-mutation"
@@ -0,0 +1,38 @@
1
+ import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
2
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
3
+ import { inviteMemberMeta } from "./metadata"
4
+ import {
5
+ createOrganizationMutationOptions,
6
+ type OrganizationMutationOptions,
7
+ useOrganizationMutation
8
+ } from "./utils"
9
+
10
+ export type InviteMemberParams<
11
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
12
+ > = Parameters<TAuthClient["organization"]["inviteMember"]>[0]
13
+
14
+ export type InviteMemberOptions<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = OrganizationMutationOptions<TAuthClient["organization"]["inviteMember"]>
17
+
18
+ export function inviteMemberOptions<TAuthClient extends OrganizationAuthClient>(
19
+ authClient: TAuthClient
20
+ ) {
21
+ return createOrganizationMutationOptions(
22
+ authClient.organization.inviteMember,
23
+ organizationMutationKeys.inviteMember
24
+ )
25
+ }
26
+
27
+ export function useInviteMember<TAuthClient extends OrganizationAuthClient>(
28
+ authClient: TAuthClient,
29
+ options?: InviteMemberOptions<TAuthClient>
30
+ ) {
31
+ return useOrganizationMutation(
32
+ authClient,
33
+ authClient.organization.inviteMember,
34
+ organizationMutationKeys.inviteMember,
35
+ inviteMemberMeta,
36
+ options
37
+ )
38
+ }
@@ -0,0 +1,37 @@
1
+ import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
2
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
3
+ import { leaveOrganizationMeta } from "./metadata"
4
+ import {
5
+ createOrganizationMutationOptions,
6
+ type OrganizationMutationOptions,
7
+ useOrganizationMutation
8
+ } from "./utils"
9
+
10
+ export type LeaveOrganizationParams<
11
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
12
+ > = Parameters<TAuthClient["organization"]["leave"]>[0]
13
+
14
+ export type LeaveOrganizationOptions<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = OrganizationMutationOptions<TAuthClient["organization"]["leave"]>
17
+
18
+ export function leaveOrganizationOptions<
19
+ TAuthClient extends OrganizationAuthClient
20
+ >(authClient: TAuthClient) {
21
+ return createOrganizationMutationOptions(
22
+ authClient.organization.leave,
23
+ organizationMutationKeys.leave
24
+ )
25
+ }
26
+
27
+ export function useLeaveOrganization<
28
+ TAuthClient extends OrganizationAuthClient
29
+ >(authClient: TAuthClient, options?: LeaveOrganizationOptions<TAuthClient>) {
30
+ return useOrganizationMutation(
31
+ authClient,
32
+ authClient.organization.leave,
33
+ organizationMutationKeys.leave,
34
+ leaveOrganizationMeta,
35
+ options
36
+ )
37
+ }
@@ -0,0 +1,103 @@
1
+ import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
2
+ import type { AuthMutationMeta } from "../create-auth-mutation"
3
+
4
+ export type { AuthMutationMeta }
5
+
6
+ export const createOrganizationMeta = (
7
+ userId: string | undefined
8
+ ): AuthMutationMeta => ({
9
+ awaits: [organizationQueryKeys.lists(userId)],
10
+ invalidates: [
11
+ organizationQueryKeys.fullDetails(userId),
12
+ organizationQueryKeys.activeOrganizations(userId)
13
+ ]
14
+ })
15
+
16
+ export const updateOrganizationMeta = (
17
+ userId: string | undefined
18
+ ): AuthMutationMeta => ({
19
+ awaits: [
20
+ organizationQueryKeys.lists(userId),
21
+ organizationQueryKeys.fullDetails(userId),
22
+ organizationQueryKeys.activeOrganizations(userId)
23
+ ]
24
+ })
25
+
26
+ export const deleteOrganizationMeta = createOrganizationMeta
27
+
28
+ export const setActiveOrganizationMeta = (
29
+ userId: string | undefined
30
+ ): AuthMutationMeta => ({
31
+ awaits: [organizationQueryKeys.activeOrganizations(userId)],
32
+ invalidates: [organizationQueryKeys.lists(userId)]
33
+ })
34
+
35
+ export const inviteMemberMeta = (
36
+ userId: string | undefined
37
+ ): AuthMutationMeta => ({
38
+ awaits: [
39
+ organizationQueryKeys.invitations.all(userId),
40
+ organizationQueryKeys.fullDetails(userId)
41
+ ]
42
+ })
43
+
44
+ export const memberRoleMeta = (
45
+ userId: string | undefined
46
+ ): AuthMutationMeta => ({
47
+ awaits: [
48
+ organizationQueryKeys.members.all(userId),
49
+ organizationQueryKeys.fullDetails(userId)
50
+ ],
51
+ invalidates: [organizationQueryKeys.permissions.all(userId)]
52
+ })
53
+
54
+ export const removeMemberMeta = (
55
+ userId: string | undefined
56
+ ): AuthMutationMeta => ({
57
+ awaits: [
58
+ organizationQueryKeys.members.all(userId),
59
+ organizationQueryKeys.fullDetails(userId)
60
+ ],
61
+ invalidates: [organizationQueryKeys.lists(userId)]
62
+ })
63
+
64
+ export const leaveOrganizationMeta = (
65
+ userId: string | undefined
66
+ ): AuthMutationMeta => ({
67
+ awaits: [
68
+ organizationQueryKeys.members.all(userId),
69
+ organizationQueryKeys.fullDetails(userId)
70
+ ],
71
+ invalidates: [
72
+ organizationQueryKeys.lists(userId),
73
+ organizationQueryKeys.activeOrganizations(userId)
74
+ ]
75
+ })
76
+
77
+ export const acceptInvitationMeta = (
78
+ userId: string | undefined
79
+ ): AuthMutationMeta => ({
80
+ awaits: [
81
+ organizationQueryKeys.userInvitations.all(userId),
82
+ organizationQueryKeys.lists(userId)
83
+ ],
84
+ invalidates: [
85
+ organizationQueryKeys.fullDetails(userId),
86
+ organizationQueryKeys.activeOrganizations(userId)
87
+ ]
88
+ })
89
+
90
+ export const cancelInvitationMeta = (
91
+ userId: string | undefined
92
+ ): AuthMutationMeta => ({
93
+ awaits: [
94
+ organizationQueryKeys.invitations.all(userId),
95
+ organizationQueryKeys.fullDetails(userId)
96
+ ]
97
+ })
98
+
99
+ export const rejectInvitationMeta = (
100
+ userId: string | undefined
101
+ ): AuthMutationMeta => ({
102
+ awaits: [organizationQueryKeys.userInvitations.all(userId)]
103
+ })
@@ -0,0 +1,38 @@
1
+ import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
2
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
3
+ import { rejectInvitationMeta } from "./metadata"
4
+ import {
5
+ createOrganizationMutationOptions,
6
+ type OrganizationMutationOptions,
7
+ useOrganizationMutation
8
+ } from "./utils"
9
+
10
+ export type RejectInvitationParams<
11
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
12
+ > = Parameters<TAuthClient["organization"]["rejectInvitation"]>[0]
13
+
14
+ export type RejectInvitationOptions<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = OrganizationMutationOptions<TAuthClient["organization"]["rejectInvitation"]>
17
+
18
+ export function rejectInvitationOptions<
19
+ TAuthClient extends OrganizationAuthClient
20
+ >(authClient: TAuthClient) {
21
+ return createOrganizationMutationOptions(
22
+ authClient.organization.rejectInvitation,
23
+ organizationMutationKeys.rejectInvitation
24
+ )
25
+ }
26
+
27
+ export function useRejectInvitation<TAuthClient extends OrganizationAuthClient>(
28
+ authClient: TAuthClient,
29
+ options?: RejectInvitationOptions<TAuthClient>
30
+ ) {
31
+ return useOrganizationMutation(
32
+ authClient,
33
+ authClient.organization.rejectInvitation,
34
+ organizationMutationKeys.rejectInvitation,
35
+ rejectInvitationMeta,
36
+ options
37
+ )
38
+ }
@@ -0,0 +1,38 @@
1
+ import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
2
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
3
+ import { removeMemberMeta } from "./metadata"
4
+ import {
5
+ createOrganizationMutationOptions,
6
+ type OrganizationMutationOptions,
7
+ useOrganizationMutation
8
+ } from "./utils"
9
+
10
+ export type RemoveMemberParams<
11
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
12
+ > = Parameters<TAuthClient["organization"]["removeMember"]>[0]
13
+
14
+ export type RemoveMemberOptions<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = OrganizationMutationOptions<TAuthClient["organization"]["removeMember"]>
17
+
18
+ export function removeMemberOptions<TAuthClient extends OrganizationAuthClient>(
19
+ authClient: TAuthClient
20
+ ) {
21
+ return createOrganizationMutationOptions(
22
+ authClient.organization.removeMember,
23
+ organizationMutationKeys.removeMember
24
+ )
25
+ }
26
+
27
+ export function useRemoveMember<TAuthClient extends OrganizationAuthClient>(
28
+ authClient: TAuthClient,
29
+ options?: RemoveMemberOptions<TAuthClient>
30
+ ) {
31
+ return useOrganizationMutation(
32
+ authClient,
33
+ authClient.organization.removeMember,
34
+ organizationMutationKeys.removeMember,
35
+ removeMemberMeta,
36
+ options
37
+ )
38
+ }
@@ -0,0 +1,110 @@
1
+ import {
2
+ organizationMutationKeys,
3
+ organizationQueryKeys
4
+ } from "@better-auth-ui/core/plugins"
5
+ import { createMutation, useQueryClient } from "@tanstack/solid-query"
6
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
7
+ import { useSession } from "../../queries/auth/session-query"
8
+ import { useListOrganizations } from "../../queries/organization"
9
+ import { setActiveOrganizationMeta } from "./metadata"
10
+ import {
11
+ createOrganizationMutationOptions,
12
+ type OrganizationMutationOptions
13
+ } from "./utils"
14
+
15
+ export type SetActiveOrganizationParams<
16
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
17
+ > = Parameters<TAuthClient["organization"]["setActive"]>[0]
18
+
19
+ export type SetActiveOrganizationOptions<
20
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
21
+ > = OrganizationMutationOptions<TAuthClient["organization"]["setActive"]>
22
+
23
+ export function setActiveOrganizationOptions<
24
+ TAuthClient extends OrganizationAuthClient
25
+ >(authClient: TAuthClient) {
26
+ return createOrganizationMutationOptions(
27
+ authClient.organization.setActive,
28
+ organizationMutationKeys.setActive
29
+ )
30
+ }
31
+
32
+ export function useSetActiveOrganization<
33
+ TAuthClient extends OrganizationAuthClient
34
+ >(
35
+ authClient: TAuthClient,
36
+ options?: SetActiveOrganizationOptions<TAuthClient>
37
+ ) {
38
+ const session = useSession(authClient)
39
+ const queryClient = useQueryClient()
40
+ const userId = () =>
41
+ (session.data as { user?: { id?: string } } | undefined)?.user?.id
42
+ const organizationsQuery = useListOrganizations(authClient)
43
+
44
+ return createMutation(() => ({
45
+ ...createOrganizationMutationOptions(
46
+ authClient.organization.setActive,
47
+ organizationMutationKeys.setActive
48
+ ),
49
+ ...options,
50
+ meta: setActiveOrganizationMeta(userId()),
51
+ onMutate: async (variables) => {
52
+ // Cancel any outgoing refetches across every slug-partitioned
53
+ // active-organization cache entry so they don't overwrite our
54
+ // optimistic update.
55
+ await queryClient.cancelQueries({
56
+ queryKey: organizationQueryKeys.activeOrganizations(userId())
57
+ })
58
+
59
+ // Snapshot every slug-partitioned variant so the rollback hits
60
+ // whichever cache entry the UI is actually subscribed to.
61
+ const previousOrganizations = queryClient.getQueriesData({
62
+ queryKey: organizationQueryKeys.activeOrganizations(userId())
63
+ })
64
+
65
+ // Optimistically update to the new value
66
+ if (variables?.organizationId === null) {
67
+ queryClient.setQueriesData(
68
+ { queryKey: organizationQueryKeys.activeOrganizations(userId()) },
69
+ null
70
+ )
71
+
72
+ return { previousOrganizations }
73
+ }
74
+
75
+ const newOrganization = organizationsQuery.data?.find(
76
+ (org: { id?: string; slug?: string }) =>
77
+ (variables?.organizationId !== undefined &&
78
+ org.id === variables.organizationId) ||
79
+ (variables?.organizationSlug !== undefined &&
80
+ org.slug === variables.organizationSlug)
81
+ )
82
+
83
+ if (newOrganization) {
84
+ queryClient.setQueriesData(
85
+ { queryKey: organizationQueryKeys.activeOrganizations(userId()) },
86
+ newOrganization
87
+ )
88
+ }
89
+
90
+ return { previousOrganizations }
91
+ },
92
+ // If the mutation fails, use the result returned from onMutate to roll back
93
+ onError: (_error, _variables, onMutateResult) => {
94
+ const previousOrganizations = onMutateResult?.previousOrganizations
95
+
96
+ if (previousOrganizations?.length) {
97
+ for (const [queryKey, data] of previousOrganizations) {
98
+ queryClient.setQueryData(queryKey, data)
99
+ }
100
+ }
101
+ },
102
+ // Always refetch after error or success — invalidate every
103
+ // slug-partitioned variant via the broader prefix.
104
+ onSettled: async () => {
105
+ await queryClient.invalidateQueries({
106
+ queryKey: organizationQueryKeys.activeOrganizations(userId())
107
+ })
108
+ }
109
+ }))
110
+ }
@@ -0,0 +1,38 @@
1
+ import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
2
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
3
+ import { memberRoleMeta } from "./metadata"
4
+ import {
5
+ createOrganizationMutationOptions,
6
+ type OrganizationMutationOptions,
7
+ useOrganizationMutation
8
+ } from "./utils"
9
+
10
+ export type UpdateMemberRoleParams<
11
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
12
+ > = Parameters<TAuthClient["organization"]["updateMemberRole"]>[0]
13
+
14
+ export type UpdateMemberRoleOptions<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = OrganizationMutationOptions<TAuthClient["organization"]["updateMemberRole"]>
17
+
18
+ export function updateMemberRoleOptions<
19
+ TAuthClient extends OrganizationAuthClient
20
+ >(authClient: TAuthClient) {
21
+ return createOrganizationMutationOptions(
22
+ authClient.organization.updateMemberRole,
23
+ organizationMutationKeys.updateMemberRole
24
+ )
25
+ }
26
+
27
+ export function useUpdateMemberRole<TAuthClient extends OrganizationAuthClient>(
28
+ authClient: TAuthClient,
29
+ options?: UpdateMemberRoleOptions<TAuthClient>
30
+ ) {
31
+ return useOrganizationMutation(
32
+ authClient,
33
+ authClient.organization.updateMemberRole,
34
+ organizationMutationKeys.updateMemberRole,
35
+ memberRoleMeta,
36
+ options
37
+ )
38
+ }
@@ -0,0 +1,37 @@
1
+ import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
2
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
3
+ import { updateOrganizationMeta } from "./metadata"
4
+ import {
5
+ createOrganizationMutationOptions,
6
+ type OrganizationMutationOptions,
7
+ useOrganizationMutation
8
+ } from "./utils"
9
+
10
+ export type UpdateOrganizationParams<
11
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
12
+ > = Parameters<TAuthClient["organization"]["update"]>[0]
13
+
14
+ export type UpdateOrganizationOptions<
15
+ TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
16
+ > = OrganizationMutationOptions<TAuthClient["organization"]["update"]>
17
+
18
+ export function updateOrganizationOptions<
19
+ TAuthClient extends OrganizationAuthClient
20
+ >(authClient: TAuthClient) {
21
+ return createOrganizationMutationOptions(
22
+ authClient.organization.update,
23
+ organizationMutationKeys.update
24
+ )
25
+ }
26
+
27
+ export function useUpdateOrganization<
28
+ TAuthClient extends OrganizationAuthClient
29
+ >(authClient: TAuthClient, options?: UpdateOrganizationOptions<TAuthClient>) {
30
+ return useOrganizationMutation(
31
+ authClient,
32
+ authClient.organization.update,
33
+ organizationMutationKeys.update,
34
+ updateOrganizationMeta,
35
+ options
36
+ )
37
+ }
@@ -0,0 +1,51 @@
1
+ import {
2
+ type CreateMutationOptions,
3
+ createMutation,
4
+ type MutationKey
5
+ } from "@tanstack/solid-query"
6
+ import type { BetterFetchError } from "better-auth/client"
7
+ import type { OrganizationAuthClient } from "../../lib/auth-client"
8
+ import { useSession } from "../../queries/auth/session-query"
9
+ import {
10
+ createAuthMutationOptions,
11
+ type MutationMethod
12
+ } from "../create-auth-mutation"
13
+ import type { AuthMutationMeta } from "./metadata"
14
+
15
+ export type OrganizationMutationOptions<TMethod extends MutationMethod> = Omit<
16
+ CreateMutationOptions<
17
+ Awaited<ReturnType<TMethod>>,
18
+ BetterFetchError,
19
+ Parameters<TMethod>[0]
20
+ >,
21
+ "mutationKey" | "mutationFn" | "meta"
22
+ >
23
+
24
+ export function createOrganizationMutationOptions<
25
+ TMethod extends MutationMethod,
26
+ const TMutationKey extends MutationKey
27
+ >(authFn: TMethod, mutationKey: TMutationKey) {
28
+ return createAuthMutationOptions(authFn, mutationKey)
29
+ }
30
+
31
+ export function useOrganizationMutation<
32
+ TAuthClient extends OrganizationAuthClient,
33
+ TMethod extends MutationMethod,
34
+ const TMutationKey extends MutationKey
35
+ >(
36
+ authClient: TAuthClient,
37
+ authFn: TMethod,
38
+ mutationKey: TMutationKey,
39
+ meta: (userId: string | undefined) => AuthMutationMeta,
40
+ options?: OrganizationMutationOptions<TMethod>
41
+ ) {
42
+ const session = useSession(authClient)
43
+
44
+ return createMutation(() => ({
45
+ ...createOrganizationMutationOptions(authFn, mutationKey),
46
+ ...options,
47
+ meta: meta(
48
+ (session.data as { user?: { id?: string } } | undefined)?.user?.id
49
+ )
50
+ }))
51
+ }