@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.
- package/dist/components/auth/auth-context.d.ts +3 -0
- package/dist/components/auth/auth-context.js +4 -0
- package/dist/components/auth/auth-provider.d.ts +4 -4
- package/dist/components/auth/auth-provider.js +65 -41
- package/dist/components/auth/email/email-changed.d.ts +2 -2
- package/dist/components/auth/email/email-changed.js +68 -154
- package/dist/components/auth/email/email-localization.d.ts +11 -3
- package/dist/components/auth/email/email-localization.js +25 -18
- package/dist/components/auth/email/email-styles.js +77 -52
- package/dist/components/auth/email/email-verification.d.ts +2 -2
- package/dist/components/auth/email/email-verification.js +73 -138
- package/dist/components/auth/email/index.d.ts +10 -9
- package/dist/components/auth/email/index.js +10 -9
- package/dist/components/auth/email/magic-link.d.ts +2 -2
- package/dist/components/auth/email/magic-link.js +70 -139
- package/dist/components/auth/email/new-device.d.ts +2 -2
- package/dist/components/auth/email/new-device.js +88 -221
- package/dist/components/auth/email/organization-invitation.d.ts +121 -0
- package/dist/components/auth/email/organization-invitation.js +110 -0
- package/dist/components/auth/email/otp-email.d.ts +2 -2
- package/dist/components/auth/email/otp-email.js +63 -127
- package/dist/components/auth/email/password-changed.d.ts +2 -2
- package/dist/components/auth/email/password-changed.js +74 -157
- package/dist/components/auth/email/reset-password.d.ts +2 -2
- package/dist/components/auth/email/reset-password.js +66 -138
- package/dist/components/auth/fetch-options-provider.d.ts +1 -1
- package/dist/components/auth/fetch-options-provider.js +28 -27
- package/dist/components/icons/apple.d.ts +1 -1
- package/dist/components/icons/apple.js +9 -16
- package/dist/components/icons/atlassian.d.ts +1 -1
- package/dist/components/icons/atlassian.js +13 -38
- package/dist/components/icons/cognito.d.ts +1 -1
- package/dist/components/icons/cognito.js +9 -19
- package/dist/components/icons/discord.d.ts +1 -1
- package/dist/components/icons/discord.js +9 -16
- package/dist/components/icons/dropbox.d.ts +1 -1
- package/dist/components/icons/dropbox.js +9 -16
- package/dist/components/icons/facebook.d.ts +1 -1
- package/dist/components/icons/facebook.js +11 -19
- package/dist/components/icons/figma.d.ts +1 -1
- package/dist/components/icons/figma.js +12 -34
- package/dist/components/icons/github.d.ts +1 -1
- package/dist/components/icons/github.js +11 -16
- package/dist/components/icons/gitlab.d.ts +1 -1
- package/dist/components/icons/gitlab.js +9 -30
- package/dist/components/icons/google.d.ts +1 -1
- package/dist/components/icons/google.js +9 -39
- package/dist/components/icons/huggingface.d.ts +1 -1
- package/dist/components/icons/huggingface.js +9 -38
- package/dist/components/icons/index.d.ts +35 -35
- package/dist/components/icons/index.js +35 -35
- package/dist/components/icons/kakao.d.ts +1 -1
- package/dist/components/icons/kakao.js +11 -16
- package/dist/components/icons/kick.d.ts +1 -1
- package/dist/components/icons/kick.js +11 -20
- package/dist/components/icons/line.d.ts +1 -1
- package/dist/components/icons/line.js +9 -16
- package/dist/components/icons/linear.d.ts +1 -1
- package/dist/components/icons/linear.js +9 -16
- package/dist/components/icons/linkedin.d.ts +1 -1
- package/dist/components/icons/linkedin.js +9 -33
- package/dist/components/icons/microsoft.d.ts +1 -1
- package/dist/components/icons/microsoft.js +9 -30
- package/dist/components/icons/naver.d.ts +1 -1
- package/dist/components/icons/naver.js +9 -16
- package/dist/components/icons/notion.d.ts +1 -1
- package/dist/components/icons/notion.js +9 -16
- package/dist/components/icons/paybin.d.ts +1 -1
- package/dist/components/icons/paybin.js +8 -32
- package/dist/components/icons/paypal.d.ts +1 -1
- package/dist/components/icons/paypal.js +9 -30
- package/dist/components/icons/polar.d.ts +1 -1
- package/dist/components/icons/polar.js +9 -24
- package/dist/components/icons/railway.d.ts +1 -1
- package/dist/components/icons/railway.js +9 -16
- package/dist/components/icons/reddit.d.ts +1 -1
- package/dist/components/icons/reddit.js +9 -21
- package/dist/components/icons/roblox.d.ts +1 -1
- package/dist/components/icons/roblox.js +12 -17
- package/dist/components/icons/salesforce.d.ts +1 -1
- package/dist/components/icons/salesforce.js +9 -16
- package/dist/components/icons/slack.d.ts +1 -1
- package/dist/components/icons/slack.js +9 -30
- package/dist/components/icons/spotify.d.ts +1 -1
- package/dist/components/icons/spotify.js +9 -16
- package/dist/components/icons/tiktok.d.ts +1 -1
- package/dist/components/icons/tiktok.js +10 -23
- package/dist/components/icons/twitch.d.ts +1 -1
- package/dist/components/icons/twitch.js +12 -43
- package/dist/components/icons/vercel.d.ts +1 -1
- package/dist/components/icons/vercel.js +9 -16
- package/dist/components/icons/vk.d.ts +1 -1
- package/dist/components/icons/vk.js +9 -16
- package/dist/components/icons/wechat.d.ts +1 -1
- package/dist/components/icons/wechat.js +9 -16
- package/dist/components/icons/x.d.ts +1 -1
- package/dist/components/icons/x.js +9 -16
- package/dist/components/icons/zoom.d.ts +1 -1
- package/dist/components/icons/zoom.js +11 -69
- package/dist/components/mutation-invalidator.d.ts +1 -0
- package/dist/components/mutation-invalidator.js +31 -0
- package/dist/components/settings/account/theme-preview.js +7 -286
- package/dist/email.d.ts +1 -1
- package/dist/email.js +1 -11
- package/dist/hooks/auth/use-authenticate.d.ts +3 -3
- package/dist/hooks/auth/use-authenticate.js +28 -22
- package/dist/hooks/auth/use-user.d.ts +34 -34
- package/dist/hooks/auth/use-user.js +14 -10
- package/dist/hooks/use-auth-mutation.d.ts +4 -4
- package/dist/hooks/use-auth-mutation.js +18 -10
- package/dist/hooks/use-auth-plugin.d.ts +1 -1
- package/dist/hooks/use-auth-plugin.js +26 -8
- package/dist/hooks/use-auth-query.d.ts +3 -3
- package/dist/hooks/use-auth-query.js +20 -14
- package/dist/index.d.ts +48 -45
- package/dist/index.js +47 -79
- package/dist/lib/auth-client.d.ts +7 -4
- package/dist/lib/auth-client.js +1 -0
- package/dist/lib/auth-plugin.d.ts +19 -3
- package/dist/lib/auth-plugin.js +1 -0
- package/dist/lib/auth-server.d.ts +10 -3
- package/dist/lib/auth-server.js +1 -0
- package/dist/lib/provider-icons.d.ts +2 -2
- package/dist/lib/provider-icons.js +47 -75
- package/dist/lib/settings-tab.d.ts +19 -0
- package/dist/lib/settings-tab.js +1 -0
- package/dist/lib/utils.d.ts +1 -1
- package/dist/lib/utils.js +4 -7
- package/dist/mutations/api-key/create-api-key-mutation.d.ts +9 -7
- package/dist/mutations/api-key/create-api-key-mutation.js +37 -27
- package/dist/mutations/api-key/delete-api-key-mutation.d.ts +10 -6
- package/dist/mutations/api-key/delete-api-key-mutation.js +37 -27
- package/dist/mutations/auth/request-password-reset-mutation.d.ts +4 -4
- package/dist/mutations/auth/request-password-reset-mutation.js +31 -22
- package/dist/mutations/auth/reset-password-mutation.d.ts +4 -4
- package/dist/mutations/auth/reset-password-mutation.js +32 -22
- package/dist/mutations/auth/send-verification-email-mutation.d.ts +4 -4
- package/dist/mutations/auth/send-verification-email-mutation.js +31 -22
- package/dist/mutations/auth/sign-in-email-mutation.d.ts +10 -10
- package/dist/mutations/auth/sign-in-email-mutation.js +38 -27
- package/dist/mutations/auth/sign-in-social-mutation.d.ts +6 -6
- package/dist/mutations/auth/sign-in-social-mutation.js +36 -22
- package/dist/mutations/auth/sign-out-mutation.d.ts +9 -7
- package/dist/mutations/auth/sign-out-mutation.js +39 -26
- package/dist/mutations/auth/sign-up-email-mutation.d.ts +12 -12
- package/dist/mutations/auth/sign-up-email-mutation.js +34 -27
- package/dist/mutations/auth-mutation-options.d.ts +2 -2
- package/dist/mutations/auth-mutation-options.js +22 -18
- package/dist/mutations/magic-link/sign-in-magic-link-mutation.d.ts +4 -4
- package/dist/mutations/magic-link/sign-in-magic-link-mutation.js +31 -22
- package/dist/mutations/multi-session/revoke-multi-session-mutation.d.ts +8 -8
- package/dist/mutations/multi-session/revoke-multi-session-mutation.js +37 -27
- package/dist/mutations/multi-session/set-active-session-mutation.d.ts +8 -9
- package/dist/mutations/multi-session/set-active-session-mutation.js +38 -29
- package/dist/mutations/organization/accept-invitation-mutation.d.ts +43 -0
- package/dist/mutations/organization/accept-invitation-mutation.js +32 -0
- package/dist/mutations/organization/cancel-invitation-mutation.d.ts +25 -0
- package/dist/mutations/organization/cancel-invitation-mutation.js +28 -0
- package/dist/mutations/organization/check-slug-mutation.d.ts +21 -0
- package/dist/mutations/organization/check-slug-mutation.js +30 -0
- package/dist/mutations/organization/create-organization-mutation.d.ts +39 -0
- package/dist/mutations/organization/create-organization-mutation.js +29 -0
- package/dist/mutations/organization/delete-organization-mutation.d.ts +21 -0
- package/dist/mutations/organization/delete-organization-mutation.js +29 -0
- package/dist/mutations/organization/index.d.ts +12 -0
- package/dist/mutations/organization/index.js +12 -0
- package/dist/mutations/organization/invite-member-mutation.d.ts +43 -0
- package/dist/mutations/organization/invite-member-mutation.js +35 -0
- package/dist/mutations/organization/leave-organization-mutation.d.ts +65 -0
- package/dist/mutations/organization/leave-organization-mutation.js +32 -0
- package/dist/mutations/organization/reject-invitation-mutation.d.ts +31 -0
- package/dist/mutations/organization/reject-invitation-mutation.js +25 -0
- package/dist/mutations/organization/remove-member-mutation.d.ts +35 -0
- package/dist/mutations/organization/remove-member-mutation.js +29 -0
- package/dist/mutations/organization/set-active-organization-mutation.d.ts +71 -0
- package/dist/mutations/organization/set-active-organization-mutation.js +72 -0
- package/dist/mutations/organization/update-member-role-mutation.d.ts +31 -0
- package/dist/mutations/organization/update-member-role-mutation.js +36 -0
- package/dist/mutations/organization/update-organization-mutation.d.ts +21 -0
- package/dist/mutations/organization/update-organization-mutation.js +36 -0
- package/dist/mutations/passkey/add-passkey-mutation.d.ts +16 -16
- package/dist/mutations/passkey/add-passkey-mutation.js +38 -27
- package/dist/mutations/passkey/delete-passkey-mutation.d.ts +8 -8
- package/dist/mutations/passkey/delete-passkey-mutation.js +37 -27
- package/dist/mutations/passkey/sign-in-passkey-mutation.d.ts +24 -24
- package/dist/mutations/passkey/sign-in-passkey-mutation.js +36 -27
- package/dist/mutations/settings/change-email-mutation.d.ts +9 -8
- package/dist/mutations/settings/change-email-mutation.js +35 -27
- package/dist/mutations/settings/change-password-mutation.d.ts +6 -6
- package/dist/mutations/settings/change-password-mutation.js +31 -22
- package/dist/mutations/settings/delete-user-mutation.d.ts +4 -4
- package/dist/mutations/settings/delete-user-mutation.js +31 -22
- package/dist/mutations/settings/link-social-mutation.d.ts +4 -4
- package/dist/mutations/settings/link-social-mutation.js +31 -22
- package/dist/mutations/settings/revoke-session-mutation.d.ts +8 -8
- package/dist/mutations/settings/revoke-session-mutation.js +37 -27
- package/dist/mutations/settings/unlink-account-mutation.d.ts +8 -8
- package/dist/mutations/settings/unlink-account-mutation.js +37 -27
- package/dist/mutations/settings/update-user-mutation.d.ts +8 -8
- package/dist/mutations/settings/update-user-mutation.js +34 -33
- package/dist/mutations/username/is-username-available-mutation.d.ts +4 -4
- package/dist/mutations/username/is-username-available-mutation.js +34 -22
- package/dist/mutations/username/sign-in-username-mutation.d.ts +10 -10
- package/dist/mutations/username/sign-in-username-mutation.js +35 -27
- package/dist/plugins/captcha-plugin.d.ts +3 -3
- package/dist/plugins/captcha-plugin.js +31 -26
- package/dist/plugins.d.ts +1 -1
- package/dist/plugins.js +1 -2
- package/dist/queries/api-key/list-api-keys-query.d.ts +20 -11
- package/dist/queries/api-key/list-api-keys-query.js +52 -29
- package/dist/queries/auth/session-query.d.ts +6 -6
- package/dist/queries/auth/session-query.js +70 -28
- package/dist/queries/auth-query-options.d.ts +2 -2
- package/dist/queries/auth-query-options.js +20 -16
- package/dist/queries/multi-session/list-device-sessions-query.d.ts +8 -8
- package/dist/queries/multi-session/list-device-sessions-query.js +83 -29
- package/dist/queries/organization/active-organization-query.d.ts +39 -0
- package/dist/queries/organization/active-organization-query.js +37 -0
- package/dist/queries/organization/full-organization-query.d.ts +37 -0
- package/dist/queries/organization/full-organization-query.js +31 -0
- package/dist/queries/organization/has-permission-query.d.ts +21 -0
- package/dist/queries/organization/has-permission-query.js +38 -0
- package/dist/queries/organization/index.d.ts +7 -0
- package/dist/queries/organization/index.js +7 -0
- package/dist/queries/organization/list-invitations-query.d.ts +29 -0
- package/dist/queries/organization/list-invitations-query.js +37 -0
- package/dist/queries/organization/list-members-query.d.ts +61 -0
- package/dist/queries/organization/list-members-query.js +37 -0
- package/dist/queries/organization/list-organizations-query.d.ts +22 -0
- package/dist/queries/organization/list-organizations-query.js +31 -0
- package/dist/queries/organization/list-user-invitations-query.d.ts +29 -0
- package/dist/queries/organization/list-user-invitations-query.js +31 -0
- package/dist/queries/passkey/list-passkeys-query.d.ts +8 -8
- package/dist/queries/passkey/list-passkeys-query.js +81 -29
- package/dist/queries/settings/account-info-query.d.ts +6 -6
- package/dist/queries/settings/account-info-query.js +85 -29
- package/dist/queries/settings/list-accounts-query.d.ts +6 -6
- package/dist/queries/settings/list-accounts-query.js +83 -29
- package/dist/queries/settings/list-sessions-query.d.ts +6 -6
- package/dist/queries/settings/list-sessions-query.js +81 -29
- package/dist/server/queries/api-key/list-api-keys-query.d.ts +83 -0
- package/dist/server/queries/api-key/list-api-keys-query.js +49 -0
- package/dist/server/queries/auth/session-query.d.ts +5 -5
- package/dist/server/queries/auth/session-query.js +50 -12
- package/dist/server/queries/multi-session/list-device-sessions-query.d.ts +7 -7
- package/dist/server/queries/multi-session/list-device-sessions-query.js +53 -11
- package/dist/server/queries/organization/active-organization-query.d.ts +61 -0
- package/dist/server/queries/organization/active-organization-query.js +25 -0
- package/dist/server/queries/organization/full-organization-query.d.ts +42 -0
- package/dist/server/queries/organization/full-organization-query.js +21 -0
- package/dist/server/queries/organization/has-permission-query.d.ts +66 -0
- package/dist/server/queries/organization/has-permission-query.js +23 -0
- package/dist/server/queries/organization/list-invitations-query.d.ts +34 -0
- package/dist/server/queries/organization/list-invitations-query.js +21 -0
- package/dist/server/queries/organization/list-members-query.d.ts +66 -0
- package/dist/server/queries/organization/list-members-query.js +21 -0
- package/dist/server/queries/organization/list-organizations-query.d.ts +27 -0
- package/dist/server/queries/organization/list-organizations-query.js +21 -0
- package/dist/server/queries/organization/list-user-invitations-query.d.ts +34 -0
- package/dist/server/queries/organization/list-user-invitations-query.js +21 -0
- package/dist/server/queries/passkey/list-passkeys-query.d.ts +7 -7
- package/dist/server/queries/passkey/list-passkeys-query.js +53 -11
- package/dist/server/queries/settings/account-info-query.d.ts +5 -5
- package/dist/server/queries/settings/account-info-query.js +53 -11
- package/dist/server/queries/settings/list-accounts-query.d.ts +5 -5
- package/dist/server/queries/settings/list-accounts-query.js +53 -11
- package/dist/server/queries/settings/list-sessions-query.d.ts +5 -5
- package/dist/server/queries/settings/list-sessions-query.js +53 -11
- package/dist/server.d.ts +15 -7
- package/dist/server.js +14 -7
- package/package.json +20 -17
- package/src/components/auth/auth-context.tsx +7 -0
- package/src/components/auth/auth-provider.tsx +19 -31
- package/src/components/auth/email/email-localization.tsx +5 -3
- package/src/components/auth/email/index.ts +1 -0
- package/src/components/auth/email/organization-invitation.tsx +454 -0
- package/src/components/mutation-invalidator.tsx +67 -0
- package/src/index.ts +3 -0
- package/src/lib/auth-client.ts +7 -0
- package/src/lib/auth-plugin.ts +17 -0
- package/src/lib/auth-server.ts +17 -1
- package/src/lib/settings-tab.ts +21 -0
- package/src/mutations/api-key/create-api-key-mutation.ts +34 -19
- package/src/mutations/api-key/delete-api-key-mutation.ts +36 -19
- package/src/mutations/auth/sign-in-email-mutation.ts +18 -22
- package/src/mutations/auth/sign-out-mutation.ts +19 -13
- package/src/mutations/auth/sign-up-email-mutation.ts +18 -22
- package/src/mutations/multi-session/revoke-multi-session-mutation.ts +31 -20
- package/src/mutations/multi-session/set-active-session-mutation.ts +25 -44
- package/src/mutations/organization/accept-invitation-mutation.ts +71 -0
- package/src/mutations/organization/cancel-invitation-mutation.ts +67 -0
- package/src/mutations/organization/check-slug-mutation.ts +55 -0
- package/src/mutations/organization/create-organization-mutation.ts +71 -0
- package/src/mutations/organization/delete-organization-mutation.ts +71 -0
- package/src/mutations/organization/index.ts +12 -0
- package/src/mutations/organization/invite-member-mutation.ts +81 -0
- package/src/mutations/organization/leave-organization-mutation.ts +74 -0
- package/src/mutations/organization/reject-invitation-mutation.ts +64 -0
- package/src/mutations/organization/remove-member-mutation.ts +67 -0
- package/src/mutations/organization/set-active-organization-mutation.ts +142 -0
- package/src/mutations/organization/update-member-role-mutation.ts +81 -0
- package/src/mutations/organization/update-organization-mutation.ts +84 -0
- package/src/mutations/passkey/add-passkey-mutation.ts +28 -17
- package/src/mutations/passkey/delete-passkey-mutation.ts +27 -17
- package/src/mutations/passkey/sign-in-passkey-mutation.ts +18 -21
- package/src/mutations/settings/change-email-mutation.ts +22 -18
- package/src/mutations/settings/delete-user-mutation.ts +2 -2
- package/src/mutations/settings/revoke-session-mutation.ts +24 -19
- package/src/mutations/settings/unlink-account-mutation.ts +24 -17
- package/src/mutations/settings/update-user-mutation.ts +18 -30
- package/src/mutations/username/is-username-available-mutation.ts +2 -2
- package/src/mutations/username/sign-in-username-mutation.ts +20 -23
- package/src/queries/api-key/list-api-keys-query.ts +20 -8
- package/src/queries/multi-session/list-device-sessions-query.ts +2 -2
- package/src/queries/organization/active-organization-query.ts +140 -0
- package/src/queries/organization/full-organization-query.ts +113 -0
- package/src/queries/organization/has-permission-query.ts +124 -0
- package/src/queries/organization/index.ts +7 -0
- package/src/queries/organization/list-invitations-query.ts +133 -0
- package/src/queries/organization/list-members-query.ts +133 -0
- package/src/queries/organization/list-organizations-query.ts +122 -0
- package/src/queries/organization/list-user-invitations-query.ts +122 -0
- package/src/queries/passkey/list-passkeys-query.ts +2 -2
- package/src/server/queries/api-key/list-api-keys-query.ts +94 -0
- package/src/server/queries/multi-session/list-device-sessions-query.ts +2 -2
- package/src/server/queries/organization/active-organization-query.ts +92 -0
- package/src/server/queries/organization/full-organization-query.ts +64 -0
- package/src/server/queries/organization/has-permission-query.ts +66 -0
- package/src/server/queries/organization/list-invitations-query.ts +81 -0
- package/src/server/queries/organization/list-members-query.ts +75 -0
- package/src/server/queries/organization/list-organizations-query.ts +67 -0
- package/src/server/queries/organization/list-user-invitations-query.ts +68 -0
- package/src/server/queries/passkey/list-passkeys-query.ts +2 -2
- package/src/server.ts +8 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { apiKeyQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import {
|
|
3
|
+
type DataTag,
|
|
4
|
+
type QueryClient,
|
|
5
|
+
queryOptions
|
|
6
|
+
} from "@tanstack/react-query"
|
|
7
|
+
import type { APIError } from "better-auth"
|
|
8
|
+
|
|
9
|
+
import type { ApiKeyAuthServer } from "../../../lib/auth-server"
|
|
10
|
+
|
|
11
|
+
export type ListApiKeysData<TAuth extends ApiKeyAuthServer = ApiKeyAuthServer> =
|
|
12
|
+
Awaited<ReturnType<TAuth["api"]["listApiKeys"]>>
|
|
13
|
+
|
|
14
|
+
export type ListedApiKey<TAuth extends ApiKeyAuthServer = ApiKeyAuthServer> =
|
|
15
|
+
NonNullable<ListApiKeysData<TAuth>>["apiKeys"][number]
|
|
16
|
+
|
|
17
|
+
export type ListApiKeysParams<
|
|
18
|
+
TAuth extends ApiKeyAuthServer = ApiKeyAuthServer
|
|
19
|
+
> = Parameters<TAuth["api"]["listApiKeys"]>[0]
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Query options factory for the current user's API keys on the server.
|
|
23
|
+
*
|
|
24
|
+
* Uses the same query key as the client-side `listApiKeysOptions` so that data
|
|
25
|
+
* fetched during SSR hydrates seamlessly into the client's React Query cache.
|
|
26
|
+
*
|
|
27
|
+
* @param auth - The Better Auth server instance with the API key plugin.
|
|
28
|
+
* @param userId - The signed-in user's ID. Used for cache partitioning.
|
|
29
|
+
* @param params - Parameters forwarded to `auth.api.listApiKeys`.
|
|
30
|
+
*/
|
|
31
|
+
export function listApiKeysOptions<TAuth extends ApiKeyAuthServer>(
|
|
32
|
+
auth: TAuth,
|
|
33
|
+
userId: string,
|
|
34
|
+
params: ListApiKeysParams<TAuth>
|
|
35
|
+
) {
|
|
36
|
+
type TData = ListApiKeysData<TAuth>
|
|
37
|
+
const queryKey = apiKeyQueryKeys.list(userId, params?.query)
|
|
38
|
+
|
|
39
|
+
const options = queryOptions<TData, APIError, TData, typeof queryKey>({
|
|
40
|
+
queryKey,
|
|
41
|
+
queryFn: () => auth.api.listApiKeys(params) as Promise<TData>
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
return options as typeof options & {
|
|
45
|
+
queryKey: DataTag<typeof queryKey, TData, APIError>
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Get the current user's API keys from the query cache, calling
|
|
51
|
+
* `fetchListApiKeys` under the hood if no cached entry exists.
|
|
52
|
+
*
|
|
53
|
+
* @param queryClient - The React Query client used for SSR hydration.
|
|
54
|
+
* @param auth - The Better Auth server instance with the API key plugin.
|
|
55
|
+
* @param userId - The signed-in user's ID, used for cache partitioning.
|
|
56
|
+
* @param params - Parameters forwarded to `auth.api.listApiKeys`.
|
|
57
|
+
*/
|
|
58
|
+
export const ensureListApiKeys = <TAuth extends ApiKeyAuthServer>(
|
|
59
|
+
queryClient: QueryClient,
|
|
60
|
+
auth: TAuth,
|
|
61
|
+
userId: string,
|
|
62
|
+
params: ListApiKeysParams<TAuth>
|
|
63
|
+
) => queryClient.ensureQueryData(listApiKeysOptions(auth, userId, params))
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Prefetch the current user's API keys into the query cache.
|
|
67
|
+
*
|
|
68
|
+
* @param queryClient - The React Query client used for SSR hydration.
|
|
69
|
+
* @param auth - The Better Auth server instance with the API key plugin.
|
|
70
|
+
* @param userId - The signed-in user's ID, used for cache partitioning.
|
|
71
|
+
* @param params - Parameters forwarded to `auth.api.listApiKeys`.
|
|
72
|
+
*/
|
|
73
|
+
export const prefetchListApiKeys = <TAuth extends ApiKeyAuthServer>(
|
|
74
|
+
queryClient: QueryClient,
|
|
75
|
+
auth: TAuth,
|
|
76
|
+
userId: string,
|
|
77
|
+
params: ListApiKeysParams<TAuth>
|
|
78
|
+
) => queryClient.prefetchQuery(listApiKeysOptions(auth, userId, params))
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Fetch and cache the current user's API keys, resolving with the data or
|
|
82
|
+
* throwing on error.
|
|
83
|
+
*
|
|
84
|
+
* @param queryClient - The React Query client used for SSR hydration.
|
|
85
|
+
* @param auth - The Better Auth server instance with the API key plugin.
|
|
86
|
+
* @param userId - The signed-in user's ID, used for cache partitioning.
|
|
87
|
+
* @param params - Parameters forwarded to `auth.api.listApiKeys`.
|
|
88
|
+
*/
|
|
89
|
+
export const fetchListApiKeys = <TAuth extends ApiKeyAuthServer>(
|
|
90
|
+
queryClient: QueryClient,
|
|
91
|
+
auth: TAuth,
|
|
92
|
+
userId: string,
|
|
93
|
+
params: ListApiKeysParams<TAuth>
|
|
94
|
+
) => queryClient.fetchQuery(listApiKeysOptions(auth, userId, params))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { multiSessionQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
2
|
import {
|
|
3
3
|
type DataTag,
|
|
4
4
|
type QueryClient,
|
|
@@ -32,7 +32,7 @@ export function listDeviceSessionsOptions<TAuth extends MultiSessionAuthServer>(
|
|
|
32
32
|
params: ListDeviceSessionsParams<TAuth>
|
|
33
33
|
) {
|
|
34
34
|
type TData = ListDeviceSessionsData<TAuth>
|
|
35
|
-
const queryKey =
|
|
35
|
+
const queryKey = multiSessionQueryKeys.list(userId, params?.query)
|
|
36
36
|
|
|
37
37
|
const options = queryOptions<TData, APIError, TData, typeof queryKey>({
|
|
38
38
|
queryKey,
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import {
|
|
3
|
+
type DataTag,
|
|
4
|
+
type QueryClient,
|
|
5
|
+
queryOptions
|
|
6
|
+
} from "@tanstack/react-query"
|
|
7
|
+
import type { APIError } from "better-auth"
|
|
8
|
+
|
|
9
|
+
import type { OrganizationAuthServer } from "../../../lib/auth-server"
|
|
10
|
+
import type {
|
|
11
|
+
FullOrganizationData,
|
|
12
|
+
FullOrganizationParams
|
|
13
|
+
} from "./full-organization-query"
|
|
14
|
+
import type { ListOrganization } from "./list-organizations-query"
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Cache shape for the active organization. Intentionally narrowed to
|
|
18
|
+
* {@link ListOrganization} (basic fields only) so the cache stays
|
|
19
|
+
* compatible with `setActive`'s optimistic update, which can only produce
|
|
20
|
+
* list-shaped data. Use {@link FullOrganizationData} (via
|
|
21
|
+
* `fullOrganizationOptions`) when you need members / invitations.
|
|
22
|
+
*/
|
|
23
|
+
export type ActiveOrganizationData<
|
|
24
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
25
|
+
> = ListOrganization<TAuth>
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Same shape as {@link FullOrganizationParams} so server-side prefetches
|
|
29
|
+
* can target a specific organization (e.g. by `query.organizationSlug` for
|
|
30
|
+
* slug-driven routes) and produce a cache key that matches the client's
|
|
31
|
+
* `useActiveOrganization({ query: { organizationSlug } })` on hydration.
|
|
32
|
+
*/
|
|
33
|
+
export type ActiveOrganizationParams<
|
|
34
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
35
|
+
> = FullOrganizationParams<TAuth>
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Query options factory for the active organization. Shares its cache key
|
|
39
|
+
* with the client-side `activeOrganizationOptions` (including any
|
|
40
|
+
* `params.query` partition such as `{ organizationSlug }`) so SSR-prefetched
|
|
41
|
+
* data hydrates without a refetch — even on slug-prefixed routes.
|
|
42
|
+
*
|
|
43
|
+
* @param auth - The Better Auth server instance.
|
|
44
|
+
* @param userId - The signed-in user's ID. Used for cache partitioning so
|
|
45
|
+
* the key matches the client-side `activeOrganizationOptions` for SSR hydration.
|
|
46
|
+
* @param params - Parameters forwarded to `auth.api.getFullOrganization`. Pass
|
|
47
|
+
* `{ query: { organizationSlug } }` for slug-driven prefetches.
|
|
48
|
+
*/
|
|
49
|
+
export function activeOrganizationOptions<TAuth extends OrganizationAuthServer>(
|
|
50
|
+
auth: TAuth,
|
|
51
|
+
userId: string,
|
|
52
|
+
params: ActiveOrganizationParams<TAuth>
|
|
53
|
+
) {
|
|
54
|
+
type TData = ActiveOrganizationData<TAuth>
|
|
55
|
+
const queryKey = organizationQueryKeys.activeOrganization(
|
|
56
|
+
userId,
|
|
57
|
+
params?.query
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
const options = queryOptions<TData, APIError, TData, typeof queryKey>({
|
|
61
|
+
queryKey,
|
|
62
|
+
queryFn: () => auth.api.getFullOrganization(params) as Promise<TData>
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
return options as typeof options & {
|
|
66
|
+
queryKey: DataTag<typeof queryKey, TData, APIError>
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export const ensureActiveOrganization = <TAuth extends OrganizationAuthServer>(
|
|
71
|
+
queryClient: QueryClient,
|
|
72
|
+
auth: TAuth,
|
|
73
|
+
userId: string,
|
|
74
|
+
params: ActiveOrganizationParams<TAuth>
|
|
75
|
+
) =>
|
|
76
|
+
queryClient.ensureQueryData(activeOrganizationOptions(auth, userId, params))
|
|
77
|
+
|
|
78
|
+
export const prefetchActiveOrganization = <
|
|
79
|
+
TAuth extends OrganizationAuthServer
|
|
80
|
+
>(
|
|
81
|
+
queryClient: QueryClient,
|
|
82
|
+
auth: TAuth,
|
|
83
|
+
userId: string,
|
|
84
|
+
params: ActiveOrganizationParams<TAuth>
|
|
85
|
+
) => queryClient.prefetchQuery(activeOrganizationOptions(auth, userId, params))
|
|
86
|
+
|
|
87
|
+
export const fetchActiveOrganization = <TAuth extends OrganizationAuthServer>(
|
|
88
|
+
queryClient: QueryClient,
|
|
89
|
+
auth: TAuth,
|
|
90
|
+
userId: string,
|
|
91
|
+
params: ActiveOrganizationParams<TAuth>
|
|
92
|
+
) => queryClient.fetchQuery(activeOrganizationOptions(auth, userId, params))
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import {
|
|
3
|
+
type DataTag,
|
|
4
|
+
type QueryClient,
|
|
5
|
+
queryOptions
|
|
6
|
+
} from "@tanstack/react-query"
|
|
7
|
+
import type { APIError } from "better-auth"
|
|
8
|
+
|
|
9
|
+
import type { OrganizationAuthServer } from "../../../lib/auth-server"
|
|
10
|
+
|
|
11
|
+
export type FullOrganizationData<
|
|
12
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
13
|
+
> = Awaited<ReturnType<TAuth["api"]["getFullOrganization"]>>
|
|
14
|
+
|
|
15
|
+
export type FullOrganizationParams<
|
|
16
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
17
|
+
> = Parameters<TAuth["api"]["getFullOrganization"]>[0]
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Query options factory for full organization details (members, invitations, etc.).
|
|
21
|
+
*
|
|
22
|
+
* @param auth - The Better Auth server instance.
|
|
23
|
+
* @param userId - The signed-in user's ID. Used for cache partitioning so
|
|
24
|
+
* the key matches the client-side `fullOrganizationOptions` for SSR hydration.
|
|
25
|
+
* @param params - Parameters forwarded to `auth.api.getFullOrganization`.
|
|
26
|
+
*/
|
|
27
|
+
export function fullOrganizationOptions<TAuth extends OrganizationAuthServer>(
|
|
28
|
+
auth: TAuth,
|
|
29
|
+
userId: string,
|
|
30
|
+
params: FullOrganizationParams<TAuth>
|
|
31
|
+
) {
|
|
32
|
+
type TData = FullOrganizationData<TAuth>
|
|
33
|
+
const queryKey = organizationQueryKeys.fullDetail(userId, params?.query)
|
|
34
|
+
|
|
35
|
+
const options = queryOptions<TData, APIError, TData, typeof queryKey>({
|
|
36
|
+
queryKey,
|
|
37
|
+
queryFn: () => auth.api.getFullOrganization(params) as Promise<TData>
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
return options as typeof options & {
|
|
41
|
+
queryKey: DataTag<typeof queryKey, TData, APIError>
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export const ensureFullOrganization = <TAuth extends OrganizationAuthServer>(
|
|
46
|
+
queryClient: QueryClient,
|
|
47
|
+
auth: TAuth,
|
|
48
|
+
userId: string,
|
|
49
|
+
params: FullOrganizationParams<TAuth>
|
|
50
|
+
) => queryClient.ensureQueryData(fullOrganizationOptions(auth, userId, params))
|
|
51
|
+
|
|
52
|
+
export const prefetchFullOrganization = <TAuth extends OrganizationAuthServer>(
|
|
53
|
+
queryClient: QueryClient,
|
|
54
|
+
auth: TAuth,
|
|
55
|
+
userId: string,
|
|
56
|
+
params: FullOrganizationParams<TAuth>
|
|
57
|
+
) => queryClient.prefetchQuery(fullOrganizationOptions(auth, userId, params))
|
|
58
|
+
|
|
59
|
+
export const fetchFullOrganization = <TAuth extends OrganizationAuthServer>(
|
|
60
|
+
queryClient: QueryClient,
|
|
61
|
+
auth: TAuth,
|
|
62
|
+
userId: string,
|
|
63
|
+
params: FullOrganizationParams<TAuth>
|
|
64
|
+
) => queryClient.fetchQuery(fullOrganizationOptions(auth, userId, params))
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import {
|
|
3
|
+
type DataTag,
|
|
4
|
+
type QueryClient,
|
|
5
|
+
queryOptions
|
|
6
|
+
} from "@tanstack/react-query"
|
|
7
|
+
import type { APIError } from "better-auth"
|
|
8
|
+
|
|
9
|
+
import type { OrganizationAuthServer } from "../../../lib/auth-server"
|
|
10
|
+
|
|
11
|
+
export type HasPermissionData<
|
|
12
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
13
|
+
> = Awaited<ReturnType<TAuth["api"]["hasPermission"]>>
|
|
14
|
+
|
|
15
|
+
export type HasPermissionParams<
|
|
16
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
17
|
+
> = Parameters<TAuth["api"]["hasPermission"]>[0]
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Query options factory for organization permission checks.
|
|
21
|
+
*
|
|
22
|
+
* @param auth - The Better Auth server instance.
|
|
23
|
+
* @param userId - The signed-in user's ID. Used for cache partitioning so
|
|
24
|
+
* the key matches the client-side `hasPermissionOptions` for SSR hydration.
|
|
25
|
+
* @param params - Parameters forwarded to `auth.api.hasPermission`.
|
|
26
|
+
*/
|
|
27
|
+
export function hasPermissionOptions<TAuth extends OrganizationAuthServer>(
|
|
28
|
+
auth: TAuth,
|
|
29
|
+
userId: string,
|
|
30
|
+
params: HasPermissionParams<TAuth>
|
|
31
|
+
) {
|
|
32
|
+
type TData = HasPermissionData<TAuth>
|
|
33
|
+
// Same logical payload as the client key (permissions ± organizationId): client
|
|
34
|
+
// strips `fetchOptions`; server keeps that shape under `body`.
|
|
35
|
+
const queryKey = organizationQueryKeys.permissions.has(userId, params?.body)
|
|
36
|
+
|
|
37
|
+
const options = queryOptions<TData, APIError, TData, typeof queryKey>({
|
|
38
|
+
queryKey,
|
|
39
|
+
queryFn: () => auth.api.hasPermission(params) as Promise<TData>
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
return options as typeof options & {
|
|
43
|
+
queryKey: DataTag<typeof queryKey, TData, APIError>
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export const ensureHasPermission = <TAuth extends OrganizationAuthServer>(
|
|
48
|
+
queryClient: QueryClient,
|
|
49
|
+
auth: TAuth,
|
|
50
|
+
userId: string,
|
|
51
|
+
params: HasPermissionParams<TAuth>
|
|
52
|
+
) => queryClient.ensureQueryData(hasPermissionOptions(auth, userId, params))
|
|
53
|
+
|
|
54
|
+
export const prefetchHasPermission = <TAuth extends OrganizationAuthServer>(
|
|
55
|
+
queryClient: QueryClient,
|
|
56
|
+
auth: TAuth,
|
|
57
|
+
userId: string,
|
|
58
|
+
params: HasPermissionParams<TAuth>
|
|
59
|
+
) => queryClient.prefetchQuery(hasPermissionOptions(auth, userId, params))
|
|
60
|
+
|
|
61
|
+
export const fetchHasPermission = <TAuth extends OrganizationAuthServer>(
|
|
62
|
+
queryClient: QueryClient,
|
|
63
|
+
auth: TAuth,
|
|
64
|
+
userId: string,
|
|
65
|
+
params: HasPermissionParams<TAuth>
|
|
66
|
+
) => queryClient.fetchQuery(hasPermissionOptions(auth, userId, params))
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import {
|
|
3
|
+
type DataTag,
|
|
4
|
+
type QueryClient,
|
|
5
|
+
queryOptions
|
|
6
|
+
} from "@tanstack/react-query"
|
|
7
|
+
import type { APIError } from "better-auth"
|
|
8
|
+
|
|
9
|
+
import type { OrganizationAuthServer } from "../../../lib/auth-server"
|
|
10
|
+
|
|
11
|
+
export type ListOrganizationInvitationsData<
|
|
12
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
13
|
+
> = Awaited<ReturnType<TAuth["api"]["listInvitations"]>>
|
|
14
|
+
|
|
15
|
+
export type ListOrganizationInvitationsParams<
|
|
16
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
17
|
+
> = Parameters<TAuth["api"]["listInvitations"]>[0]
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Query options factory for invitations of an organization.
|
|
21
|
+
*
|
|
22
|
+
* @param auth - The Better Auth server instance.
|
|
23
|
+
* @param userId - The signed-in user's ID. Used for cache partitioning so
|
|
24
|
+
* the key matches the client-side `listOrganizationInvitationsOptions` for SSR hydration.
|
|
25
|
+
* @param params - Parameters forwarded to `auth.api.listInvitations`.
|
|
26
|
+
*/
|
|
27
|
+
export function listOrganizationInvitationsOptions<
|
|
28
|
+
TAuth extends OrganizationAuthServer
|
|
29
|
+
>(
|
|
30
|
+
auth: TAuth,
|
|
31
|
+
userId: string,
|
|
32
|
+
params: ListOrganizationInvitationsParams<TAuth>
|
|
33
|
+
) {
|
|
34
|
+
type TData = ListOrganizationInvitationsData<TAuth>
|
|
35
|
+
const queryKey = organizationQueryKeys.invitations.list(userId, params?.query)
|
|
36
|
+
|
|
37
|
+
const options = queryOptions<TData, APIError, TData, typeof queryKey>({
|
|
38
|
+
queryKey,
|
|
39
|
+
queryFn: () => auth.api.listInvitations(params) as Promise<TData>
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
return options as typeof options & {
|
|
43
|
+
queryKey: DataTag<typeof queryKey, TData, APIError>
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export const ensureListOrganizationInvitations = <
|
|
48
|
+
TAuth extends OrganizationAuthServer
|
|
49
|
+
>(
|
|
50
|
+
queryClient: QueryClient,
|
|
51
|
+
auth: TAuth,
|
|
52
|
+
userId: string,
|
|
53
|
+
params: ListOrganizationInvitationsParams<TAuth>
|
|
54
|
+
) =>
|
|
55
|
+
queryClient.ensureQueryData(
|
|
56
|
+
listOrganizationInvitationsOptions(auth, userId, params)
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
export const prefetchListOrganizationInvitations = <
|
|
60
|
+
TAuth extends OrganizationAuthServer
|
|
61
|
+
>(
|
|
62
|
+
queryClient: QueryClient,
|
|
63
|
+
auth: TAuth,
|
|
64
|
+
userId: string,
|
|
65
|
+
params: ListOrganizationInvitationsParams<TAuth>
|
|
66
|
+
) =>
|
|
67
|
+
queryClient.prefetchQuery(
|
|
68
|
+
listOrganizationInvitationsOptions(auth, userId, params)
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
export const fetchListOrganizationInvitations = <
|
|
72
|
+
TAuth extends OrganizationAuthServer
|
|
73
|
+
>(
|
|
74
|
+
queryClient: QueryClient,
|
|
75
|
+
auth: TAuth,
|
|
76
|
+
userId: string,
|
|
77
|
+
params: ListOrganizationInvitationsParams<TAuth>
|
|
78
|
+
) =>
|
|
79
|
+
queryClient.fetchQuery(
|
|
80
|
+
listOrganizationInvitationsOptions(auth, userId, params)
|
|
81
|
+
)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import {
|
|
3
|
+
type DataTag,
|
|
4
|
+
type QueryClient,
|
|
5
|
+
queryOptions
|
|
6
|
+
} from "@tanstack/react-query"
|
|
7
|
+
import type { APIError } from "better-auth"
|
|
8
|
+
|
|
9
|
+
import type { OrganizationAuthServer } from "../../../lib/auth-server"
|
|
10
|
+
|
|
11
|
+
export type ListOrganizationMembersData<
|
|
12
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
13
|
+
> = Awaited<ReturnType<TAuth["api"]["listMembers"]>>
|
|
14
|
+
|
|
15
|
+
export type ListOrganizationMembersParams<
|
|
16
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
17
|
+
> = Parameters<TAuth["api"]["listMembers"]>[0]
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Query options factory for members of an organization.
|
|
21
|
+
*
|
|
22
|
+
* @param auth - The Better Auth server instance.
|
|
23
|
+
* @param userId - The signed-in user's ID. Used for cache partitioning so
|
|
24
|
+
* the key matches the client-side `listOrganizationMembersOptions` for SSR hydration.
|
|
25
|
+
* @param params - Parameters forwarded to `auth.api.listMembers`.
|
|
26
|
+
*/
|
|
27
|
+
export function listOrganizationMembersOptions<
|
|
28
|
+
TAuth extends OrganizationAuthServer
|
|
29
|
+
>(auth: TAuth, userId: string, params: ListOrganizationMembersParams<TAuth>) {
|
|
30
|
+
type TData = ListOrganizationMembersData<TAuth>
|
|
31
|
+
const queryKey = organizationQueryKeys.members.list(userId, params?.query)
|
|
32
|
+
|
|
33
|
+
const options = queryOptions<TData, APIError, TData, typeof queryKey>({
|
|
34
|
+
queryKey,
|
|
35
|
+
queryFn: () => auth.api.listMembers(params) as Promise<TData>
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
return options as typeof options & {
|
|
39
|
+
queryKey: DataTag<typeof queryKey, TData, APIError>
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const ensureListOrganizationMembers = <
|
|
44
|
+
TAuth extends OrganizationAuthServer
|
|
45
|
+
>(
|
|
46
|
+
queryClient: QueryClient,
|
|
47
|
+
auth: TAuth,
|
|
48
|
+
userId: string,
|
|
49
|
+
params: ListOrganizationMembersParams<TAuth>
|
|
50
|
+
) =>
|
|
51
|
+
queryClient.ensureQueryData(
|
|
52
|
+
listOrganizationMembersOptions(auth, userId, params)
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
export const prefetchListOrganizationMembers = <
|
|
56
|
+
TAuth extends OrganizationAuthServer
|
|
57
|
+
>(
|
|
58
|
+
queryClient: QueryClient,
|
|
59
|
+
auth: TAuth,
|
|
60
|
+
userId: string,
|
|
61
|
+
params: ListOrganizationMembersParams<TAuth>
|
|
62
|
+
) =>
|
|
63
|
+
queryClient.prefetchQuery(
|
|
64
|
+
listOrganizationMembersOptions(auth, userId, params)
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
export const fetchListOrganizationMembers = <
|
|
68
|
+
TAuth extends OrganizationAuthServer
|
|
69
|
+
>(
|
|
70
|
+
queryClient: QueryClient,
|
|
71
|
+
auth: TAuth,
|
|
72
|
+
userId: string,
|
|
73
|
+
params: ListOrganizationMembersParams<TAuth>
|
|
74
|
+
) =>
|
|
75
|
+
queryClient.fetchQuery(listOrganizationMembersOptions(auth, userId, params))
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import {
|
|
3
|
+
type DataTag,
|
|
4
|
+
type QueryClient,
|
|
5
|
+
queryOptions
|
|
6
|
+
} from "@tanstack/react-query"
|
|
7
|
+
import type { APIError } from "better-auth"
|
|
8
|
+
|
|
9
|
+
import type { OrganizationAuthServer } from "../../../lib/auth-server"
|
|
10
|
+
|
|
11
|
+
export type ListOrganizationsData<
|
|
12
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
13
|
+
> = Awaited<ReturnType<TAuth["api"]["listOrganizations"]>>
|
|
14
|
+
|
|
15
|
+
export type ListOrganization<
|
|
16
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
17
|
+
> = NonNullable<ListOrganizationsData<TAuth>>[number]
|
|
18
|
+
|
|
19
|
+
export type ListOrganizationsParams<TAuth extends OrganizationAuthServer> =
|
|
20
|
+
Parameters<TAuth["api"]["listOrganizations"]>[0]
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Query options factory for organizations the current user belongs to.
|
|
24
|
+
*
|
|
25
|
+
* @param auth - The Better Auth server instance.
|
|
26
|
+
* @param userId - The signed-in user's ID. Used for cache partitioning so
|
|
27
|
+
* the key matches the client-side `listOrganizationsOptions` for SSR hydration.
|
|
28
|
+
* @param params - Parameters forwarded to `auth.api.listOrganizations`.
|
|
29
|
+
*/
|
|
30
|
+
export function listOrganizationsOptions<TAuth extends OrganizationAuthServer>(
|
|
31
|
+
auth: TAuth,
|
|
32
|
+
userId: string,
|
|
33
|
+
params: ListOrganizationsParams<TAuth>
|
|
34
|
+
) {
|
|
35
|
+
type TData = ListOrganizationsData<TAuth>
|
|
36
|
+
const queryKey = organizationQueryKeys.list(userId, params?.query)
|
|
37
|
+
|
|
38
|
+
const options = queryOptions<TData, APIError, TData, typeof queryKey>({
|
|
39
|
+
queryKey,
|
|
40
|
+
queryFn: () => auth.api.listOrganizations(params) as Promise<TData>
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
return options as typeof options & {
|
|
44
|
+
queryKey: DataTag<typeof queryKey, TData, APIError>
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export const ensureListOrganizations = <TAuth extends OrganizationAuthServer>(
|
|
49
|
+
queryClient: QueryClient,
|
|
50
|
+
auth: TAuth,
|
|
51
|
+
userId: string,
|
|
52
|
+
params: ListOrganizationsParams<TAuth>
|
|
53
|
+
) => queryClient.ensureQueryData(listOrganizationsOptions(auth, userId, params))
|
|
54
|
+
|
|
55
|
+
export const prefetchListOrganizations = <TAuth extends OrganizationAuthServer>(
|
|
56
|
+
queryClient: QueryClient,
|
|
57
|
+
auth: TAuth,
|
|
58
|
+
userId: string,
|
|
59
|
+
params: ListOrganizationsParams<TAuth>
|
|
60
|
+
) => queryClient.prefetchQuery(listOrganizationsOptions(auth, userId, params))
|
|
61
|
+
|
|
62
|
+
export const fetchListOrganizations = <TAuth extends OrganizationAuthServer>(
|
|
63
|
+
queryClient: QueryClient,
|
|
64
|
+
auth: TAuth,
|
|
65
|
+
userId: string,
|
|
66
|
+
params: ListOrganizationsParams<TAuth>
|
|
67
|
+
) => queryClient.fetchQuery(listOrganizationsOptions(auth, userId, params))
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import {
|
|
3
|
+
type DataTag,
|
|
4
|
+
type QueryClient,
|
|
5
|
+
queryOptions
|
|
6
|
+
} from "@tanstack/react-query"
|
|
7
|
+
import type { APIError } from "better-auth"
|
|
8
|
+
|
|
9
|
+
import type { OrganizationAuthServer } from "../../../lib/auth-server"
|
|
10
|
+
|
|
11
|
+
export type ListUserInvitationsData<
|
|
12
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
13
|
+
> = Awaited<ReturnType<TAuth["api"]["listUserInvitations"]>>
|
|
14
|
+
|
|
15
|
+
export type ListUserInvitationsParams<
|
|
16
|
+
TAuth extends OrganizationAuthServer = OrganizationAuthServer
|
|
17
|
+
> = Parameters<TAuth["api"]["listUserInvitations"]>[0]
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Query options factory for invitations addressed to the current user.
|
|
21
|
+
*
|
|
22
|
+
* @param auth - The Better Auth server instance.
|
|
23
|
+
* @param userId - The signed-in user's ID. Used for cache partitioning so
|
|
24
|
+
* the key matches the client-side `listUserInvitationsOptions` for SSR hydration.
|
|
25
|
+
* @param params - Parameters forwarded to `auth.api.listUserInvitations`.
|
|
26
|
+
*/
|
|
27
|
+
export function listUserInvitationsOptions<
|
|
28
|
+
TAuth extends OrganizationAuthServer
|
|
29
|
+
>(auth: TAuth, userId: string, params: ListUserInvitationsParams<TAuth>) {
|
|
30
|
+
type TData = ListUserInvitationsData<TAuth>
|
|
31
|
+
const queryKey = organizationQueryKeys.userInvitations.list(
|
|
32
|
+
userId,
|
|
33
|
+
params?.query
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
const options = queryOptions<TData, APIError, TData, typeof queryKey>({
|
|
37
|
+
queryKey,
|
|
38
|
+
queryFn: () => auth.api.listUserInvitations(params) as Promise<TData>
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
return options as typeof options & {
|
|
42
|
+
queryKey: DataTag<typeof queryKey, TData, APIError>
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export const ensureListUserInvitations = <TAuth extends OrganizationAuthServer>(
|
|
47
|
+
queryClient: QueryClient,
|
|
48
|
+
auth: TAuth,
|
|
49
|
+
userId: string,
|
|
50
|
+
params: ListUserInvitationsParams<TAuth>
|
|
51
|
+
) =>
|
|
52
|
+
queryClient.ensureQueryData(listUserInvitationsOptions(auth, userId, params))
|
|
53
|
+
|
|
54
|
+
export const prefetchListUserInvitations = <
|
|
55
|
+
TAuth extends OrganizationAuthServer
|
|
56
|
+
>(
|
|
57
|
+
queryClient: QueryClient,
|
|
58
|
+
auth: TAuth,
|
|
59
|
+
userId: string,
|
|
60
|
+
params: ListUserInvitationsParams<TAuth>
|
|
61
|
+
) => queryClient.prefetchQuery(listUserInvitationsOptions(auth, userId, params))
|
|
62
|
+
|
|
63
|
+
export const fetchListUserInvitations = <TAuth extends OrganizationAuthServer>(
|
|
64
|
+
queryClient: QueryClient,
|
|
65
|
+
auth: TAuth,
|
|
66
|
+
userId: string,
|
|
67
|
+
params: ListUserInvitationsParams<TAuth>
|
|
68
|
+
) => queryClient.fetchQuery(listUserInvitationsOptions(auth, userId, params))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { passkeyQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
2
|
import {
|
|
3
3
|
type DataTag,
|
|
4
4
|
type QueryClient,
|
|
@@ -33,7 +33,7 @@ export function listPasskeysOptions<TAuth extends PasskeyAuthServer>(
|
|
|
33
33
|
params: ListPasskeysParams<TAuth>
|
|
34
34
|
) {
|
|
35
35
|
type TData = ListPasskeysData<TAuth>
|
|
36
|
-
const queryKey =
|
|
36
|
+
const queryKey = passkeyQueryKeys.list(userId, params?.query)
|
|
37
37
|
|
|
38
38
|
const options = queryOptions<TData, APIError, TData, typeof queryKey>({
|
|
39
39
|
queryKey,
|
package/src/server.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
export type * from "./lib/auth-server"
|
|
2
|
+
export * from "./server/queries/api-key/list-api-keys-query"
|
|
2
3
|
export * from "./server/queries/auth/session-query"
|
|
3
4
|
export * from "./server/queries/multi-session/list-device-sessions-query"
|
|
5
|
+
export * from "./server/queries/organization/active-organization-query"
|
|
6
|
+
export * from "./server/queries/organization/full-organization-query"
|
|
7
|
+
export * from "./server/queries/organization/has-permission-query"
|
|
8
|
+
export * from "./server/queries/organization/list-invitations-query"
|
|
9
|
+
export * from "./server/queries/organization/list-members-query"
|
|
10
|
+
export * from "./server/queries/organization/list-organizations-query"
|
|
11
|
+
export * from "./server/queries/organization/list-user-invitations-query"
|
|
4
12
|
export * from "./server/queries/passkey/list-passkeys-query"
|
|
5
13
|
export * from "./server/queries/settings/account-info-query"
|
|
6
14
|
export * from "./server/queries/settings/list-accounts-query"
|