@better-auth-ui/react 1.6.3 → 1.6.4
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-provider.d.ts +23 -8
- package/dist/components/auth/auth-provider.js +32 -17
- package/dist/components/{email → auth/email}/email-changed.js +2 -2
- package/dist/components/{email → auth/email}/email-localization.js +1 -1
- package/dist/components/{email → auth/email}/email-styles.js +1 -1
- package/dist/components/{email → auth/email}/email-verification.js +2 -2
- package/dist/components/{email → auth/email}/magic-link.js +2 -2
- package/dist/components/{email → auth/email}/new-device.js +2 -2
- package/dist/components/{email → auth/email}/otp-email.js +2 -2
- package/dist/components/{email → auth/email}/password-changed.js +2 -2
- package/dist/components/{email → auth/email}/reset-password.js +2 -2
- package/dist/email.d.ts +1 -0
- package/dist/email.js +11 -0
- package/dist/hooks/auth/use-authenticate.d.ts +5 -28
- package/dist/hooks/auth/use-authenticate.js +12 -12
- package/dist/hooks/auth/use-user.d.ts +19 -314
- package/dist/hooks/auth/use-user.js +5 -5
- package/dist/hooks/use-auth-mutation.d.ts +12 -7
- package/dist/hooks/use-auth-plugin.d.ts +31 -0
- package/dist/hooks/use-auth-plugin.js +10 -0
- package/dist/hooks/use-auth-query.d.ts +3 -3
- package/dist/index.d.ts +33 -32
- package/dist/index.js +74 -83
- package/dist/lib/auth-client.d.ts +23 -3687
- package/dist/lib/auth-plugin.d.ts +59 -0
- package/dist/lib/auth-server.d.ts +16 -0
- package/dist/mutations/auth/request-password-reset-mutation.d.ts +26 -0
- package/dist/mutations/auth/request-password-reset-mutation.js +24 -0
- package/dist/mutations/auth/reset-password-mutation.d.ts +25 -0
- package/dist/mutations/auth/reset-password-mutation.js +24 -0
- package/dist/mutations/auth/send-verification-email-mutation.d.ts +24 -0
- package/dist/mutations/auth/send-verification-email-mutation.js +24 -0
- package/dist/mutations/auth/sign-in-email-mutation.d.ts +71 -0
- package/dist/mutations/auth/sign-in-email-mutation.js +29 -0
- package/dist/mutations/auth/sign-in-social-mutation.d.ts +77 -0
- package/dist/mutations/auth/sign-in-social-mutation.js +24 -0
- package/dist/mutations/auth/sign-out-mutation.d.ts +25 -0
- package/dist/mutations/auth/sign-out-mutation.js +28 -0
- package/dist/mutations/auth/sign-up-email-mutation.d.ts +105 -0
- package/dist/mutations/auth/sign-up-email-mutation.js +29 -0
- package/dist/mutations/auth-mutation-options.d.ts +37 -20
- package/dist/mutations/auth-mutation-options.js +2 -2
- package/dist/mutations/magic-link/sign-in-magic-link-mutation.d.ts +24 -0
- package/dist/mutations/magic-link/sign-in-magic-link-mutation.js +24 -0
- package/dist/mutations/multi-session/revoke-multi-session-mutation.d.ts +25 -0
- package/dist/mutations/multi-session/revoke-multi-session-mutation.js +29 -0
- package/dist/mutations/multi-session/set-active-session-mutation.d.ts +62 -0
- package/dist/mutations/multi-session/set-active-session-mutation.js +31 -0
- package/dist/mutations/passkey/add-passkey-mutation.d.ts +71 -0
- package/dist/mutations/passkey/add-passkey-mutation.js +29 -0
- package/dist/mutations/passkey/delete-passkey-mutation.d.ts +25 -0
- package/dist/mutations/passkey/delete-passkey-mutation.js +29 -0
- package/dist/mutations/passkey/sign-in-passkey-mutation.d.ts +105 -0
- package/dist/mutations/passkey/sign-in-passkey-mutation.js +29 -0
- package/dist/mutations/settings/change-email-mutation.d.ts +25 -0
- package/dist/mutations/settings/change-email-mutation.js +29 -0
- package/dist/mutations/settings/change-password-mutation.d.ts +78 -0
- package/dist/mutations/settings/change-password-mutation.js +24 -0
- package/dist/mutations/settings/delete-user-mutation.d.ts +26 -0
- package/dist/mutations/settings/delete-user-mutation.js +24 -0
- package/dist/mutations/settings/link-social-mutation.d.ts +26 -0
- package/dist/mutations/settings/link-social-mutation.js +24 -0
- package/dist/mutations/settings/revoke-session-mutation.d.ts +25 -0
- package/dist/mutations/settings/revoke-session-mutation.js +29 -0
- package/dist/mutations/settings/unlink-account-mutation.d.ts +25 -0
- package/dist/mutations/settings/unlink-account-mutation.js +29 -0
- package/dist/mutations/settings/update-user-mutation.d.ts +25 -0
- package/dist/mutations/settings/update-user-mutation.js +35 -0
- package/dist/mutations/username/is-username-available-mutation.d.ts +27 -0
- package/dist/mutations/username/is-username-available-mutation.js +24 -0
- package/dist/mutations/username/sign-in-username-mutation.d.ts +75 -0
- package/dist/mutations/username/sign-in-username-mutation.js +29 -0
- package/dist/queries/auth/session-query.d.ts +71 -0
- package/dist/queries/auth/session-query.js +30 -0
- package/dist/queries/auth-query-options.d.ts +26 -15
- package/dist/queries/multi-session/list-device-sessions-query.d.ts +76 -0
- package/dist/queries/multi-session/list-device-sessions-query.js +31 -0
- package/dist/queries/passkey/list-passkeys-query.d.ts +74 -0
- package/dist/queries/passkey/list-passkeys-query.js +31 -0
- package/dist/queries/settings/account-info-query.d.ts +85 -0
- package/dist/queries/settings/account-info-query.js +31 -0
- package/dist/queries/settings/list-accounts-query.d.ts +76 -0
- package/dist/queries/settings/list-accounts-query.js +31 -0
- package/dist/queries/settings/list-sessions-query.d.ts +74 -0
- package/dist/queries/settings/list-sessions-query.js +31 -0
- package/dist/server/queries/auth/session-query.d.ts +57 -0
- package/dist/server/queries/auth/session-query.js +13 -0
- package/dist/server/queries/multi-session/list-device-sessions-query.d.ts +60 -0
- package/dist/server/queries/multi-session/list-device-sessions-query.js +12 -0
- package/dist/server/queries/passkey/list-passkeys-query.d.ts +60 -0
- package/dist/server/queries/passkey/list-passkeys-query.js +12 -0
- package/dist/server/queries/settings/account-info-query.d.ts +68 -0
- package/dist/server/queries/settings/account-info-query.js +12 -0
- package/dist/server/queries/settings/list-accounts-query.d.ts +60 -0
- package/dist/server/queries/settings/list-accounts-query.js +12 -0
- package/dist/server/queries/settings/list-sessions-query.d.ts +60 -0
- package/dist/server/queries/settings/list-sessions-query.js +12 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.js +7 -0
- package/package.json +24 -22
- package/src/components/auth/auth-provider.tsx +87 -24
- package/src/components/{email → auth/email}/email-changed.tsx +1 -1
- package/src/components/{email → auth/email}/email-verification.tsx +1 -1
- package/src/components/{email → auth/email}/magic-link.tsx +1 -1
- package/src/components/{email → auth/email}/new-device.tsx +1 -1
- package/src/components/{email → auth/email}/otp-email.tsx +1 -1
- package/src/components/{email → auth/email}/password-changed.tsx +1 -1
- package/src/components/{email → auth/email}/reset-password.tsx +1 -1
- package/src/email.ts +1 -0
- package/src/hooks/auth/use-authenticate.ts +12 -6
- package/src/hooks/auth/use-user.ts +14 -9
- package/src/hooks/use-auth-mutation.ts +30 -12
- package/src/hooks/use-auth-plugin.ts +50 -0
- package/src/hooks/use-auth-query.ts +11 -7
- package/src/index.ts +33 -32
- package/src/lib/auth-client.ts +33 -31
- package/src/lib/auth-plugin.ts +75 -0
- package/src/lib/auth-server.ts +30 -0
- package/src/mutations/auth/request-password-reset-mutation.ts +58 -0
- package/src/mutations/auth/reset-password-mutation.ts +60 -0
- package/src/mutations/auth/send-verification-email-mutation.ts +58 -0
- package/src/mutations/auth/sign-in-email-mutation.ts +78 -0
- package/src/mutations/auth/sign-in-social-mutation.ts +64 -0
- package/src/mutations/auth/sign-out-mutation.ts +71 -0
- package/src/mutations/auth/sign-up-email-mutation.ts +74 -0
- package/src/mutations/auth-mutation-options.ts +83 -38
- package/src/mutations/magic-link/sign-in-magic-link-mutation.ts +59 -0
- package/src/mutations/multi-session/revoke-multi-session-mutation.ts +70 -0
- package/src/mutations/multi-session/set-active-session-mutation.ts +98 -0
- package/src/mutations/passkey/add-passkey-mutation.ts +66 -0
- package/src/mutations/passkey/delete-passkey-mutation.ts +66 -0
- package/src/mutations/passkey/sign-in-passkey-mutation.ts +74 -0
- package/src/mutations/settings/change-email-mutation.ts +67 -0
- package/src/mutations/settings/change-password-mutation.ts +59 -0
- package/src/mutations/settings/delete-user-mutation.ts +59 -0
- package/src/mutations/settings/link-social-mutation.ts +59 -0
- package/src/mutations/settings/revoke-session-mutation.ts +69 -0
- package/src/mutations/settings/unlink-account-mutation.ts +67 -0
- package/src/mutations/settings/update-user-mutation.ts +82 -0
- package/src/mutations/username/is-username-available-mutation.ts +62 -0
- package/src/mutations/username/sign-in-username-mutation.ts +74 -0
- package/src/queries/auth/session-query.ts +135 -0
- package/src/queries/auth-query-options.ts +61 -12
- package/src/queries/multi-session/list-device-sessions-query.ts +177 -0
- package/src/queries/passkey/list-passkeys-query.ts +154 -0
- package/src/queries/settings/account-info-query.ts +158 -0
- package/src/queries/settings/list-accounts-query.ts +156 -0
- package/src/queries/settings/list-sessions-query.ts +154 -0
- package/src/server/queries/auth/session-query.ts +94 -0
- package/src/server/queries/multi-session/list-device-sessions-query.ts +102 -0
- package/src/server/queries/passkey/list-passkeys-query.ts +100 -0
- package/src/server/queries/settings/account-info-query.ts +101 -0
- package/src/server/queries/settings/list-accounts-query.ts +101 -0
- package/src/server/queries/settings/list-sessions-query.ts +101 -0
- package/src/server.ts +7 -0
- package/dist/core.d.ts +0 -1
- package/dist/core.js +0 -1
- package/dist/hooks/auth/use-is-username-available.d.ts +0 -20
- package/dist/hooks/auth/use-is-username-available.js +0 -13
- package/dist/hooks/auth/use-request-password-reset.d.ts +0 -21
- package/dist/hooks/auth/use-request-password-reset.js +0 -13
- package/dist/hooks/auth/use-reset-password.d.ts +0 -23
- package/dist/hooks/auth/use-reset-password.js +0 -13
- package/dist/hooks/auth/use-send-verification-email.d.ts +0 -19
- package/dist/hooks/auth/use-send-verification-email.js +0 -13
- package/dist/hooks/auth/use-session.d.ts +0 -35
- package/dist/hooks/auth/use-session.js +0 -16
- package/dist/hooks/auth/use-sign-in-email.d.ts +0 -26
- package/dist/hooks/auth/use-sign-in-email.js +0 -17
- package/dist/hooks/auth/use-sign-in-magic-link.d.ts +0 -27
- package/dist/hooks/auth/use-sign-in-magic-link.js +0 -13
- package/dist/hooks/auth/use-sign-in-passkey.d.ts +0 -21
- package/dist/hooks/auth/use-sign-in-passkey.js +0 -17
- package/dist/hooks/auth/use-sign-in-social.d.ts +0 -63
- package/dist/hooks/auth/use-sign-in-social.js +0 -13
- package/dist/hooks/auth/use-sign-in-username.d.ts +0 -25
- package/dist/hooks/auth/use-sign-in-username.js +0 -17
- package/dist/hooks/auth/use-sign-out.d.ts +0 -18
- package/dist/hooks/auth/use-sign-out.js +0 -16
- package/dist/hooks/auth/use-sign-up-email.d.ts +0 -1186
- package/dist/hooks/auth/use-sign-up-email.js +0 -17
- package/dist/hooks/settings/use-account-info.d.ts +0 -17
- package/dist/hooks/settings/use-account-info.js +0 -18
- package/dist/hooks/settings/use-add-passkey.d.ts +0 -21
- package/dist/hooks/settings/use-add-passkey.js +0 -17
- package/dist/hooks/settings/use-change-email.d.ts +0 -21
- package/dist/hooks/settings/use-change-email.js +0 -17
- package/dist/hooks/settings/use-change-password.d.ts +0 -21
- package/dist/hooks/settings/use-change-password.js +0 -13
- package/dist/hooks/settings/use-delete-passkey.d.ts +0 -19
- package/dist/hooks/settings/use-delete-passkey.js +0 -17
- package/dist/hooks/settings/use-delete-user.d.ts +0 -24
- package/dist/hooks/settings/use-delete-user.js +0 -13
- package/dist/hooks/settings/use-link-social.d.ts +0 -43
- package/dist/hooks/settings/use-link-social.js +0 -13
- package/dist/hooks/settings/use-list-accounts.d.ts +0 -22
- package/dist/hooks/settings/use-list-accounts.js +0 -15
- package/dist/hooks/settings/use-list-device-sessions.d.ts +0 -34
- package/dist/hooks/settings/use-list-device-sessions.js +0 -15
- package/dist/hooks/settings/use-list-sessions.d.ts +0 -23
- package/dist/hooks/settings/use-list-sessions.js +0 -15
- package/dist/hooks/settings/use-list-user-passkeys.d.ts +0 -14
- package/dist/hooks/settings/use-list-user-passkeys.js +0 -15
- package/dist/hooks/settings/use-revoke-multi-session.d.ts +0 -19
- package/dist/hooks/settings/use-revoke-multi-session.js +0 -17
- package/dist/hooks/settings/use-revoke-session.d.ts +0 -19
- package/dist/hooks/settings/use-revoke-session.js +0 -17
- package/dist/hooks/settings/use-set-active-session.d.ts +0 -20
- package/dist/hooks/settings/use-set-active-session.js +0 -20
- package/dist/hooks/settings/use-unlink-account.d.ts +0 -21
- package/dist/hooks/settings/use-unlink-account.js +0 -17
- package/dist/hooks/settings/use-update-user.d.ts +0 -1185
- package/dist/hooks/settings/use-update-user.js +0 -24
- package/dist/lib/auth-client.js +0 -11
- package/dist/lib/auth-config.d.ts +0 -43
- package/dist/lib/auth-context.d.ts +0 -2
- package/dist/lib/auth-context.js +0 -6
- package/dist/mutations/auth/is-username-available-options.d.ts +0 -19
- package/dist/mutations/auth/is-username-available-options.js +0 -7
- package/dist/mutations/auth/request-password-reset-options.d.ts +0 -15
- package/dist/mutations/auth/request-password-reset-options.js +0 -7
- package/dist/mutations/auth/reset-password-options.d.ts +0 -17
- package/dist/mutations/auth/reset-password-options.js +0 -7
- package/dist/mutations/auth/send-verification-email-options.d.ts +0 -15
- package/dist/mutations/auth/send-verification-email-options.js +0 -7
- package/dist/mutations/auth/sign-in-email-options.d.ts +0 -23
- package/dist/mutations/auth/sign-in-email-options.js +0 -11
- package/dist/mutations/auth/sign-in-magic-link-options.d.ts +0 -23
- package/dist/mutations/auth/sign-in-magic-link-options.js +0 -11
- package/dist/mutations/auth/sign-in-passkey-options.d.ts +0 -15
- package/dist/mutations/auth/sign-in-passkey-options.js +0 -11
- package/dist/mutations/auth/sign-in-social-options.d.ts +0 -61
- package/dist/mutations/auth/sign-in-social-options.js +0 -11
- package/dist/mutations/auth/sign-in-username-options.d.ts +0 -19
- package/dist/mutations/auth/sign-in-username-options.js +0 -11
- package/dist/mutations/auth/sign-out-options.d.ts +0 -12
- package/dist/mutations/auth/sign-out-options.js +0 -7
- package/dist/mutations/auth/sign-up-email-options.d.ts +0 -1180
- package/dist/mutations/auth/sign-up-email-options.js +0 -11
- package/dist/mutations/settings/add-passkey-options.d.ts +0 -15
- package/dist/mutations/settings/add-passkey-options.js +0 -11
- package/dist/mutations/settings/change-email-options.d.ts +0 -15
- package/dist/mutations/settings/change-email-options.js +0 -7
- package/dist/mutations/settings/change-password-options.d.ts +0 -17
- package/dist/mutations/settings/change-password-options.js +0 -7
- package/dist/mutations/settings/delete-passkey-options.d.ts +0 -13
- package/dist/mutations/settings/delete-passkey-options.js +0 -11
- package/dist/mutations/settings/delete-user-options.d.ts +0 -20
- package/dist/mutations/settings/delete-user-options.js +0 -7
- package/dist/mutations/settings/link-social-options.d.ts +0 -39
- package/dist/mutations/settings/link-social-options.js +0 -7
- package/dist/mutations/settings/revoke-multi-session-options.d.ts +0 -13
- package/dist/mutations/settings/revoke-multi-session-options.js +0 -11
- package/dist/mutations/settings/revoke-session-options.d.ts +0 -13
- package/dist/mutations/settings/revoke-session-options.js +0 -7
- package/dist/mutations/settings/set-active-session-options.d.ts +0 -13
- package/dist/mutations/settings/set-active-session-options.js +0 -11
- package/dist/mutations/settings/unlink-account-options.d.ts +0 -15
- package/dist/mutations/settings/unlink-account-options.js +0 -7
- package/dist/mutations/settings/update-user-options.d.ts +0 -1182
- package/dist/mutations/settings/update-user-options.js +0 -7
- package/dist/queries/auth/session-options.d.ts +0 -110
- package/dist/queries/auth/session-options.js +0 -7
- package/dist/queries/settings/account-info-options.d.ts +0 -32
- package/dist/queries/settings/account-info-options.js +0 -12
- package/dist/queries/settings/list-accounts-options.d.ts +0 -53
- package/dist/queries/settings/list-accounts-options.js +0 -12
- package/dist/queries/settings/list-device-sessions-options.d.ts +0 -99
- package/dist/queries/settings/list-device-sessions-options.js +0 -12
- package/dist/queries/settings/list-sessions-options.d.ts +0 -54
- package/dist/queries/settings/list-sessions-options.js +0 -12
- package/dist/queries/settings/list-user-passkeys-options.d.ts +0 -18
- package/dist/queries/settings/list-user-passkeys-options.js +0 -12
- package/src/core.ts +0 -1
- package/src/hooks/auth/use-is-username-available.ts +0 -31
- package/src/hooks/auth/use-request-password-reset.ts +0 -33
- package/src/hooks/auth/use-reset-password.ts +0 -31
- package/src/hooks/auth/use-send-verification-email.ts +0 -31
- package/src/hooks/auth/use-session.ts +0 -31
- package/src/hooks/auth/use-sign-in-email.ts +0 -41
- package/src/hooks/auth/use-sign-in-magic-link.ts +0 -29
- package/src/hooks/auth/use-sign-in-passkey.ts +0 -40
- package/src/hooks/auth/use-sign-in-social.ts +0 -31
- package/src/hooks/auth/use-sign-in-username.ts +0 -40
- package/src/hooks/auth/use-sign-out.ts +0 -34
- package/src/hooks/auth/use-sign-up-email.ts +0 -40
- package/src/hooks/settings/use-account-info.ts +0 -40
- package/src/hooks/settings/use-add-passkey.ts +0 -37
- package/src/hooks/settings/use-change-email.ts +0 -37
- package/src/hooks/settings/use-change-password.ts +0 -29
- package/src/hooks/settings/use-delete-passkey.ts +0 -37
- package/src/hooks/settings/use-delete-user.ts +0 -29
- package/src/hooks/settings/use-link-social.ts +0 -29
- package/src/hooks/settings/use-list-accounts.ts +0 -39
- package/src/hooks/settings/use-list-device-sessions.ts +0 -39
- package/src/hooks/settings/use-list-sessions.ts +0 -39
- package/src/hooks/settings/use-list-user-passkeys.ts +0 -39
- package/src/hooks/settings/use-revoke-multi-session.ts +0 -39
- package/src/hooks/settings/use-revoke-session.ts +0 -39
- package/src/hooks/settings/use-set-active-session.ts +0 -58
- package/src/hooks/settings/use-unlink-account.ts +0 -37
- package/src/hooks/settings/use-update-user.ts +0 -50
- package/src/lib/auth-config.ts +0 -48
- package/src/lib/auth-context.ts +0 -6
- package/src/mutations/auth/is-username-available-options.ts +0 -18
- package/src/mutations/auth/request-password-reset-options.ts +0 -14
- package/src/mutations/auth/reset-password-options.ts +0 -14
- package/src/mutations/auth/send-verification-email-options.ts +0 -14
- package/src/mutations/auth/sign-in-email-options.ts +0 -19
- package/src/mutations/auth/sign-in-magic-link-options.ts +0 -15
- package/src/mutations/auth/sign-in-passkey-options.ts +0 -15
- package/src/mutations/auth/sign-in-social-options.ts +0 -19
- package/src/mutations/auth/sign-in-username-options.ts +0 -15
- package/src/mutations/auth/sign-out-options.ts +0 -11
- package/src/mutations/auth/sign-up-email-options.ts +0 -15
- package/src/mutations/settings/add-passkey-options.ts +0 -15
- package/src/mutations/settings/change-email-options.ts +0 -11
- package/src/mutations/settings/change-password-options.ts +0 -14
- package/src/mutations/settings/delete-passkey-options.ts +0 -15
- package/src/mutations/settings/delete-user-options.ts +0 -11
- package/src/mutations/settings/link-social-options.ts +0 -11
- package/src/mutations/settings/revoke-multi-session-options.ts +0 -15
- package/src/mutations/settings/revoke-session-options.ts +0 -14
- package/src/mutations/settings/set-active-session-options.ts +0 -15
- package/src/mutations/settings/unlink-account-options.ts +0 -14
- package/src/mutations/settings/update-user-options.ts +0 -15
- package/src/queries/auth/session-options.ts +0 -18
- package/src/queries/settings/account-info-options.ts +0 -25
- package/src/queries/settings/list-accounts-options.ts +0 -26
- package/src/queries/settings/list-device-sessions-options.ts +0 -24
- package/src/queries/settings/list-sessions-options.ts +0 -23
- package/src/queries/settings/list-user-passkeys-options.ts +0 -23
- /package/dist/components/{email → auth/email}/email-changed.d.ts +0 -0
- /package/dist/components/{email → auth/email}/email-localization.d.ts +0 -0
- /package/dist/components/{email → auth/email}/email-styles.d.ts +0 -0
- /package/dist/components/{email → auth/email}/email-verification.d.ts +0 -0
- /package/dist/components/{email → auth/email}/index.d.ts +0 -0
- /package/dist/components/{email → auth/email}/index.js +0 -0
- /package/dist/components/{email → auth/email}/magic-link.d.ts +0 -0
- /package/dist/components/{email → auth/email}/new-device.d.ts +0 -0
- /package/dist/components/{email → auth/email}/otp-email.d.ts +0 -0
- /package/dist/components/{email → auth/email}/password-changed.d.ts +0 -0
- /package/dist/components/{email → auth/email}/reset-password.d.ts +0 -0
- /package/src/components/{email → auth/email}/email-localization.tsx +0 -0
- /package/src/components/{email → auth/email}/email-styles.tsx +0 -0
- /package/src/components/{email → auth/email}/index.ts +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { magicLinkMutationKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import { mutationOptions, useMutation } from "@tanstack/react-query"
|
|
3
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
4
|
+
|
|
5
|
+
import type { MagicLinkAuthClient } from "../../lib/auth-client"
|
|
6
|
+
|
|
7
|
+
export type SignInMagicLinkParams<TAuthClient extends MagicLinkAuthClient> =
|
|
8
|
+
Parameters<TAuthClient["signIn"]["magicLink"]>[0]
|
|
9
|
+
|
|
10
|
+
export type SignInMagicLinkOptions<TAuthClient extends MagicLinkAuthClient> =
|
|
11
|
+
Omit<
|
|
12
|
+
ReturnType<typeof signInMagicLinkOptions<TAuthClient>>,
|
|
13
|
+
"mutationKey" | "mutationFn"
|
|
14
|
+
>
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Mutation options factory for magic-link sign-in.
|
|
18
|
+
*
|
|
19
|
+
* @param authClient - The Better Auth client.
|
|
20
|
+
*/
|
|
21
|
+
export function signInMagicLinkOptions<TAuthClient extends MagicLinkAuthClient>(
|
|
22
|
+
authClient: TAuthClient
|
|
23
|
+
) {
|
|
24
|
+
const mutationKey = magicLinkMutationKeys.signIn
|
|
25
|
+
|
|
26
|
+
const mutationFn = (params: SignInMagicLinkParams<TAuthClient>) =>
|
|
27
|
+
authClient.signIn.magicLink({
|
|
28
|
+
...params,
|
|
29
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
return mutationOptions<
|
|
33
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
34
|
+
BetterFetchError,
|
|
35
|
+
Parameters<typeof mutationFn>[0]
|
|
36
|
+
>({
|
|
37
|
+
mutationKey,
|
|
38
|
+
mutationFn
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Create a mutation for requesting a magic-link sign-in email.
|
|
44
|
+
*
|
|
45
|
+
* Wraps `authClient.signIn.magicLink` and forwards React Query mutation
|
|
46
|
+
* options such as `onSuccess`, `onError`, and `retry`.
|
|
47
|
+
*
|
|
48
|
+
* @param authClient - The Better Auth client with the magic-link plugin.
|
|
49
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
50
|
+
*/
|
|
51
|
+
export function useSignInMagicLink<TAuthClient extends MagicLinkAuthClient>(
|
|
52
|
+
authClient: TAuthClient,
|
|
53
|
+
options?: SignInMagicLinkOptions<TAuthClient>
|
|
54
|
+
) {
|
|
55
|
+
return useMutation({
|
|
56
|
+
...signInMagicLinkOptions(authClient),
|
|
57
|
+
...options
|
|
58
|
+
})
|
|
59
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { authMutationKeys } from "@better-auth-ui/core"
|
|
2
|
+
import { mutationOptions, useMutation } from "@tanstack/react-query"
|
|
3
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
4
|
+
|
|
5
|
+
import type { MultiSessionAuthClient } from "../../lib/auth-client"
|
|
6
|
+
import { useListDeviceSessions } from "../../queries/multi-session/list-device-sessions-query"
|
|
7
|
+
|
|
8
|
+
export type RevokeMultiSessionParams<
|
|
9
|
+
TAuthClient extends MultiSessionAuthClient
|
|
10
|
+
> = Parameters<TAuthClient["multiSession"]["revoke"]>[0]
|
|
11
|
+
|
|
12
|
+
export type RevokeMultiSessionOptions<
|
|
13
|
+
TAuthClient extends MultiSessionAuthClient
|
|
14
|
+
> = Omit<
|
|
15
|
+
ReturnType<typeof revokeMultiSessionOptions<TAuthClient>>,
|
|
16
|
+
"mutationKey" | "mutationFn"
|
|
17
|
+
>
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Mutation options factory for revoking a device session in multi-session mode.
|
|
21
|
+
*
|
|
22
|
+
* @param authClient - The Better Auth client with the multi-session plugin.
|
|
23
|
+
*/
|
|
24
|
+
export function revokeMultiSessionOptions<
|
|
25
|
+
TAuthClient extends MultiSessionAuthClient
|
|
26
|
+
>(authClient: TAuthClient) {
|
|
27
|
+
const mutationKey = authMutationKeys.multiSession.revoke
|
|
28
|
+
|
|
29
|
+
const mutationFn = (params: RevokeMultiSessionParams<TAuthClient>) =>
|
|
30
|
+
authClient.multiSession.revoke({
|
|
31
|
+
...params,
|
|
32
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
return mutationOptions<
|
|
36
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
37
|
+
BetterFetchError,
|
|
38
|
+
Parameters<typeof mutationFn>[0]
|
|
39
|
+
>({
|
|
40
|
+
mutationKey,
|
|
41
|
+
mutationFn
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Create a mutation for revoking a device session in multi-session mode.
|
|
47
|
+
*
|
|
48
|
+
* Wraps `authClient.multiSession.revoke`, refetches the device sessions list
|
|
49
|
+
* on success, and forwards React Query mutation options such as `onSuccess`,
|
|
50
|
+
* `onError`, and `retry`.
|
|
51
|
+
*
|
|
52
|
+
* @param authClient - The Better Auth client with the multi-session plugin.
|
|
53
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
54
|
+
*/
|
|
55
|
+
export function useRevokeMultiSession<
|
|
56
|
+
TAuthClient extends MultiSessionAuthClient
|
|
57
|
+
>(authClient: TAuthClient, options?: RevokeMultiSessionOptions<TAuthClient>) {
|
|
58
|
+
const { refetch } = useListDeviceSessions(authClient, {
|
|
59
|
+
refetchOnMount: false
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
return useMutation({
|
|
63
|
+
...revokeMultiSessionOptions(authClient),
|
|
64
|
+
...options,
|
|
65
|
+
onSuccess: async (...args) => {
|
|
66
|
+
await refetch()
|
|
67
|
+
await options?.onSuccess?.(...args)
|
|
68
|
+
}
|
|
69
|
+
})
|
|
70
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { authMutationKeys } from "@better-auth-ui/core"
|
|
2
|
+
import {
|
|
3
|
+
mutationOptions,
|
|
4
|
+
useMutation,
|
|
5
|
+
useQueryClient
|
|
6
|
+
} from "@tanstack/react-query"
|
|
7
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
8
|
+
|
|
9
|
+
import type { MultiSessionAuthClient } from "../../lib/auth-client"
|
|
10
|
+
import {
|
|
11
|
+
type SessionData,
|
|
12
|
+
sessionOptions,
|
|
13
|
+
useSession
|
|
14
|
+
} from "../../queries/auth/session-query"
|
|
15
|
+
import { useListDeviceSessions } from "../../queries/multi-session/list-device-sessions-query"
|
|
16
|
+
|
|
17
|
+
export type SetActiveSessionParams<TAuthClient extends MultiSessionAuthClient> =
|
|
18
|
+
Parameters<TAuthClient["multiSession"]["setActive"]>[0]
|
|
19
|
+
|
|
20
|
+
export type SetActiveSessionOptions<
|
|
21
|
+
TAuthClient extends MultiSessionAuthClient
|
|
22
|
+
> = Omit<
|
|
23
|
+
ReturnType<typeof setActiveSessionOptions<TAuthClient>>,
|
|
24
|
+
"mutationKey" | "mutationFn"
|
|
25
|
+
>
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Mutation options factory for switching the active device session.
|
|
29
|
+
*
|
|
30
|
+
* @param authClient - The Better Auth client with the multi-session plugin.
|
|
31
|
+
*/
|
|
32
|
+
export function setActiveSessionOptions<
|
|
33
|
+
TAuthClient extends MultiSessionAuthClient
|
|
34
|
+
>(authClient: TAuthClient) {
|
|
35
|
+
const mutationKey = authMutationKeys.multiSession.setActive
|
|
36
|
+
|
|
37
|
+
const mutationFn = (params: SetActiveSessionParams<TAuthClient>) =>
|
|
38
|
+
authClient.multiSession.setActive({
|
|
39
|
+
...params,
|
|
40
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
return mutationOptions<
|
|
44
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
45
|
+
BetterFetchError,
|
|
46
|
+
Parameters<typeof mutationFn>[0]
|
|
47
|
+
>({
|
|
48
|
+
mutationKey,
|
|
49
|
+
mutationFn
|
|
50
|
+
})
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Create a mutation for switching the active device session.
|
|
55
|
+
*
|
|
56
|
+
* Wraps `authClient.multiSession.setActive`, optimistically swaps the cached
|
|
57
|
+
* session to the matching device session, refetches both the session and
|
|
58
|
+
* device-session queries, and forwards React Query mutation options such as
|
|
59
|
+
* `onSuccess`, `onError`, and `retry`.
|
|
60
|
+
*
|
|
61
|
+
* @param authClient - The Better Auth client with the multi-session plugin.
|
|
62
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
63
|
+
*/
|
|
64
|
+
export function useSetActiveSession<TAuthClient extends MultiSessionAuthClient>(
|
|
65
|
+
authClient: TAuthClient,
|
|
66
|
+
options?: SetActiveSessionOptions<TAuthClient>
|
|
67
|
+
) {
|
|
68
|
+
const queryClient = useQueryClient()
|
|
69
|
+
const { refetch: refetchSession } = useSession(authClient, {
|
|
70
|
+
refetchOnMount: false
|
|
71
|
+
})
|
|
72
|
+
const { data: deviceSessions, refetch: refetchDeviceSessions } =
|
|
73
|
+
useListDeviceSessions(authClient, {
|
|
74
|
+
refetchOnMount: false
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
return useMutation({
|
|
78
|
+
...setActiveSessionOptions(authClient),
|
|
79
|
+
...options,
|
|
80
|
+
onSuccess: async (data, variables, ...rest) => {
|
|
81
|
+
const sessionToken = variables?.sessionToken
|
|
82
|
+
const deviceSession = deviceSessions?.find(
|
|
83
|
+
({ session: { token } }) => token === sessionToken
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
if (deviceSession) {
|
|
87
|
+
queryClient.setQueryData(
|
|
88
|
+
sessionOptions(authClient).queryKey,
|
|
89
|
+
deviceSession as SessionData<TAuthClient>
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
await refetchSession()
|
|
94
|
+
await refetchDeviceSessions()
|
|
95
|
+
await options?.onSuccess?.(data, variables, ...rest)
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { passkeyMutationKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import { mutationOptions, useMutation } from "@tanstack/react-query"
|
|
3
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
4
|
+
import type { PasskeyAuthClient } from "../../lib/auth-client"
|
|
5
|
+
import { useListPasskeys } from "../../queries/passkey/list-passkeys-query"
|
|
6
|
+
|
|
7
|
+
export type AddPasskeyParams<TAuthClient extends PasskeyAuthClient> =
|
|
8
|
+
Parameters<TAuthClient["passkey"]["addPasskey"]>[0]
|
|
9
|
+
|
|
10
|
+
export type AddPasskeyOptions<TAuthClient extends PasskeyAuthClient> = Omit<
|
|
11
|
+
ReturnType<typeof addPasskeyOptions<TAuthClient>>,
|
|
12
|
+
"mutationKey" | "mutationFn"
|
|
13
|
+
>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Mutation options factory for registering a new passkey.
|
|
17
|
+
*
|
|
18
|
+
* @param authClient - The Better Auth client with the passkey plugin.
|
|
19
|
+
*/
|
|
20
|
+
export function addPasskeyOptions<TAuthClient extends PasskeyAuthClient>(
|
|
21
|
+
authClient: TAuthClient
|
|
22
|
+
) {
|
|
23
|
+
const mutationKey = passkeyMutationKeys.addPasskey
|
|
24
|
+
|
|
25
|
+
// biome-ignore lint/suspicious/noConfusingVoidType: void allows no-arg mutate
|
|
26
|
+
const mutationFn = (params?: AddPasskeyParams<TAuthClient> | void) =>
|
|
27
|
+
authClient.passkey.addPasskey({
|
|
28
|
+
...(params ?? {}),
|
|
29
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
return mutationOptions<
|
|
33
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
34
|
+
BetterFetchError,
|
|
35
|
+
Parameters<typeof mutationFn>[0]
|
|
36
|
+
>({
|
|
37
|
+
mutationKey,
|
|
38
|
+
mutationFn
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Create a mutation for registering a new passkey.
|
|
44
|
+
*
|
|
45
|
+
* Wraps `authClient.passkey.addPasskey`, refetches the user's passkey list
|
|
46
|
+
* on success, and forwards React Query mutation options such as
|
|
47
|
+
* `onSuccess`, `onError`, and `retry`.
|
|
48
|
+
*
|
|
49
|
+
* @param authClient - The Better Auth client with the passkey plugin.
|
|
50
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
51
|
+
*/
|
|
52
|
+
export function useAddPasskey<TAuthClient extends PasskeyAuthClient>(
|
|
53
|
+
authClient: TAuthClient,
|
|
54
|
+
options?: AddPasskeyOptions<TAuthClient>
|
|
55
|
+
) {
|
|
56
|
+
const { refetch } = useListPasskeys(authClient, { refetchOnMount: false })
|
|
57
|
+
|
|
58
|
+
return useMutation({
|
|
59
|
+
...addPasskeyOptions(authClient),
|
|
60
|
+
...options,
|
|
61
|
+
onSuccess: async (...args) => {
|
|
62
|
+
await refetch()
|
|
63
|
+
await options?.onSuccess?.(...args)
|
|
64
|
+
}
|
|
65
|
+
})
|
|
66
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { passkeyMutationKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import { mutationOptions, useMutation } from "@tanstack/react-query"
|
|
3
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
4
|
+
|
|
5
|
+
import type { PasskeyAuthClient } from "../../lib/auth-client"
|
|
6
|
+
import { useListPasskeys } from "../../queries/passkey/list-passkeys-query"
|
|
7
|
+
|
|
8
|
+
export type DeletePasskeyParams<TAuthClient extends PasskeyAuthClient> =
|
|
9
|
+
Parameters<TAuthClient["passkey"]["deletePasskey"]>[0]
|
|
10
|
+
|
|
11
|
+
export type DeletePasskeyOptions<TAuthClient extends PasskeyAuthClient> = Omit<
|
|
12
|
+
ReturnType<typeof deletePasskeyOptions<TAuthClient>>,
|
|
13
|
+
"mutationKey" | "mutationFn"
|
|
14
|
+
>
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Mutation options factory for deleting a passkey.
|
|
18
|
+
*
|
|
19
|
+
* @param authClient - The Better Auth client.
|
|
20
|
+
*/
|
|
21
|
+
export function deletePasskeyOptions<TAuthClient extends PasskeyAuthClient>(
|
|
22
|
+
authClient: TAuthClient
|
|
23
|
+
) {
|
|
24
|
+
const mutationKey = passkeyMutationKeys.deletePasskey
|
|
25
|
+
|
|
26
|
+
const mutationFn = (params: DeletePasskeyParams<TAuthClient>) =>
|
|
27
|
+
authClient.passkey.deletePasskey({
|
|
28
|
+
...params,
|
|
29
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
return mutationOptions<
|
|
33
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
34
|
+
BetterFetchError,
|
|
35
|
+
Parameters<typeof mutationFn>[0]
|
|
36
|
+
>({
|
|
37
|
+
mutationKey,
|
|
38
|
+
mutationFn
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Create a mutation for deleting a passkey.
|
|
44
|
+
*
|
|
45
|
+
* Wraps `authClient.passkey.deletePasskey`, refetches the user's passkey
|
|
46
|
+
* list on success, and forwards React Query mutation options such as
|
|
47
|
+
* `onSuccess`, `onError`, and `retry`.
|
|
48
|
+
*
|
|
49
|
+
* @param authClient - The Better Auth client with the passkey plugin.
|
|
50
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
51
|
+
*/
|
|
52
|
+
export function useDeletePasskey<TAuthClient extends PasskeyAuthClient>(
|
|
53
|
+
authClient: TAuthClient,
|
|
54
|
+
options?: DeletePasskeyOptions<TAuthClient>
|
|
55
|
+
) {
|
|
56
|
+
const { refetch } = useListPasskeys(authClient, { refetchOnMount: false })
|
|
57
|
+
|
|
58
|
+
return useMutation({
|
|
59
|
+
...deletePasskeyOptions(authClient),
|
|
60
|
+
...options,
|
|
61
|
+
onSuccess: async (...args) => {
|
|
62
|
+
await refetch()
|
|
63
|
+
await options?.onSuccess?.(...args)
|
|
64
|
+
}
|
|
65
|
+
})
|
|
66
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { passkeyMutationKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import {
|
|
3
|
+
mutationOptions,
|
|
4
|
+
useMutation,
|
|
5
|
+
useQueryClient
|
|
6
|
+
} from "@tanstack/react-query"
|
|
7
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
8
|
+
|
|
9
|
+
import type { PasskeyAuthClient } from "../../lib/auth-client"
|
|
10
|
+
import { sessionOptions } from "../../queries/auth/session-query"
|
|
11
|
+
|
|
12
|
+
export type SignInPasskeyParams<TAuthClient extends PasskeyAuthClient> =
|
|
13
|
+
Parameters<TAuthClient["signIn"]["passkey"]>[0]
|
|
14
|
+
|
|
15
|
+
export type SignInPasskeyOptions<TAuthClient extends PasskeyAuthClient> = Omit<
|
|
16
|
+
ReturnType<typeof signInPasskeyOptions<TAuthClient>>,
|
|
17
|
+
"mutationKey" | "mutationFn"
|
|
18
|
+
>
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Mutation options factory for passkey sign-in.
|
|
22
|
+
*
|
|
23
|
+
* @param authClient - The Better Auth client with the passkey plugin.
|
|
24
|
+
*/
|
|
25
|
+
export function signInPasskeyOptions<TAuthClient extends PasskeyAuthClient>(
|
|
26
|
+
authClient: TAuthClient
|
|
27
|
+
) {
|
|
28
|
+
const mutationKey = passkeyMutationKeys.signIn
|
|
29
|
+
|
|
30
|
+
// biome-ignore lint/suspicious/noConfusingVoidType: void allows no-arg mutate
|
|
31
|
+
const mutationFn = (params?: SignInPasskeyParams<TAuthClient> | void) =>
|
|
32
|
+
authClient.signIn.passkey({
|
|
33
|
+
...(params ?? {}),
|
|
34
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
return mutationOptions<
|
|
38
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
39
|
+
BetterFetchError,
|
|
40
|
+
Parameters<typeof mutationFn>[0]
|
|
41
|
+
>({
|
|
42
|
+
mutationKey,
|
|
43
|
+
mutationFn
|
|
44
|
+
})
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Create a mutation for passkey sign-in.
|
|
49
|
+
*
|
|
50
|
+
* Wraps `authClient.signIn.passkey`, resets the session query on success so
|
|
51
|
+
* the new session is refetched, and forwards React Query mutation options
|
|
52
|
+
* such as `onSuccess`, `onError`, and `retry`.
|
|
53
|
+
*
|
|
54
|
+
* @param authClient - The Better Auth client with the passkey plugin.
|
|
55
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
56
|
+
*/
|
|
57
|
+
export function useSignInPasskey<TAuthClient extends PasskeyAuthClient>(
|
|
58
|
+
authClient: TAuthClient,
|
|
59
|
+
options?: SignInPasskeyOptions<TAuthClient>
|
|
60
|
+
) {
|
|
61
|
+
const queryClient = useQueryClient()
|
|
62
|
+
|
|
63
|
+
return useMutation({
|
|
64
|
+
...signInPasskeyOptions(authClient),
|
|
65
|
+
...options,
|
|
66
|
+
onSuccess: async (...args) => {
|
|
67
|
+
queryClient.resetQueries({
|
|
68
|
+
queryKey: sessionOptions(authClient).queryKey
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
await options?.onSuccess?.(...args)
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { authMutationKeys } from "@better-auth-ui/core"
|
|
2
|
+
import { mutationOptions, useMutation } from "@tanstack/react-query"
|
|
3
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
4
|
+
|
|
5
|
+
import type { AuthClient } from "../../lib/auth-client"
|
|
6
|
+
import { useSession } from "../../queries/auth/session-query"
|
|
7
|
+
|
|
8
|
+
export type ChangeEmailParams<TAuthClient extends AuthClient> = Parameters<
|
|
9
|
+
TAuthClient["changeEmail"]
|
|
10
|
+
>[0]
|
|
11
|
+
|
|
12
|
+
export type ChangeEmailOptions<TAuthClient extends AuthClient> = Omit<
|
|
13
|
+
ReturnType<typeof changeEmailOptions<TAuthClient>>,
|
|
14
|
+
"mutationKey" | "mutationFn"
|
|
15
|
+
>
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Mutation options factory for changing the current user's email address.
|
|
19
|
+
*
|
|
20
|
+
* @param authClient - The Better Auth client.
|
|
21
|
+
*/
|
|
22
|
+
export function changeEmailOptions<TAuthClient extends AuthClient>(
|
|
23
|
+
authClient: TAuthClient
|
|
24
|
+
) {
|
|
25
|
+
const mutationKey = authMutationKeys.changeEmail
|
|
26
|
+
|
|
27
|
+
const mutationFn = (params: ChangeEmailParams<TAuthClient>) =>
|
|
28
|
+
authClient.changeEmail({
|
|
29
|
+
...params,
|
|
30
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
return mutationOptions<
|
|
34
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
35
|
+
BetterFetchError,
|
|
36
|
+
Parameters<typeof mutationFn>[0]
|
|
37
|
+
>({
|
|
38
|
+
mutationKey,
|
|
39
|
+
mutationFn
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Create a mutation for changing the current user's email address.
|
|
45
|
+
*
|
|
46
|
+
* Wraps `authClient.changeEmail`, refetches the session on success to
|
|
47
|
+
* surface the new email, and forwards React Query mutation options such
|
|
48
|
+
* as `onSuccess`, `onError`, and `retry`.
|
|
49
|
+
*
|
|
50
|
+
* @param authClient - The Better Auth client.
|
|
51
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
52
|
+
*/
|
|
53
|
+
export function useChangeEmail<TAuthClient extends AuthClient>(
|
|
54
|
+
authClient: TAuthClient,
|
|
55
|
+
options?: ChangeEmailOptions<TAuthClient>
|
|
56
|
+
) {
|
|
57
|
+
const { refetch } = useSession(authClient, { refetchOnMount: false })
|
|
58
|
+
|
|
59
|
+
return useMutation({
|
|
60
|
+
...changeEmailOptions(authClient),
|
|
61
|
+
...options,
|
|
62
|
+
onSuccess: async (...args) => {
|
|
63
|
+
await refetch()
|
|
64
|
+
await options?.onSuccess?.(...args)
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { authMutationKeys } from "@better-auth-ui/core"
|
|
2
|
+
import { mutationOptions, useMutation } from "@tanstack/react-query"
|
|
3
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
4
|
+
|
|
5
|
+
import type { AuthClient } from "../../lib/auth-client"
|
|
6
|
+
|
|
7
|
+
export type ChangePasswordParams<TAuthClient extends AuthClient> = Parameters<
|
|
8
|
+
TAuthClient["changePassword"]
|
|
9
|
+
>[0]
|
|
10
|
+
|
|
11
|
+
export type ChangePasswordOptions<TAuthClient extends AuthClient> = Omit<
|
|
12
|
+
ReturnType<typeof changePasswordOptions<TAuthClient>>,
|
|
13
|
+
"mutationKey" | "mutationFn"
|
|
14
|
+
>
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Mutation options factory for changing the authenticated user's password.
|
|
18
|
+
*
|
|
19
|
+
* @param authClient - The Better Auth client.
|
|
20
|
+
*/
|
|
21
|
+
export function changePasswordOptions<TAuthClient extends AuthClient>(
|
|
22
|
+
authClient: TAuthClient
|
|
23
|
+
) {
|
|
24
|
+
const mutationKey = authMutationKeys.changePassword
|
|
25
|
+
|
|
26
|
+
const mutationFn = (params: ChangePasswordParams<TAuthClient>) =>
|
|
27
|
+
authClient.changePassword({
|
|
28
|
+
...params,
|
|
29
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
return mutationOptions<
|
|
33
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
34
|
+
BetterFetchError,
|
|
35
|
+
Parameters<typeof mutationFn>[0]
|
|
36
|
+
>({
|
|
37
|
+
mutationKey,
|
|
38
|
+
mutationFn
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Create a mutation for changing the authenticated user's password.
|
|
44
|
+
*
|
|
45
|
+
* Wraps `authClient.changePassword` and forwards React Query mutation
|
|
46
|
+
* options such as `onSuccess`, `onError`, and `retry`.
|
|
47
|
+
*
|
|
48
|
+
* @param authClient - The Better Auth client.
|
|
49
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
50
|
+
*/
|
|
51
|
+
export function useChangePassword<TAuthClient extends AuthClient>(
|
|
52
|
+
authClient: TAuthClient,
|
|
53
|
+
options?: ChangePasswordOptions<TAuthClient>
|
|
54
|
+
) {
|
|
55
|
+
return useMutation({
|
|
56
|
+
...changePasswordOptions(authClient),
|
|
57
|
+
...options
|
|
58
|
+
})
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { authMutationKeys } from "@better-auth-ui/core"
|
|
2
|
+
import { mutationOptions, useMutation } from "@tanstack/react-query"
|
|
3
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
4
|
+
|
|
5
|
+
import type { AuthClient } from "../../lib/auth-client"
|
|
6
|
+
|
|
7
|
+
export type DeleteUserParams<TAuthClient extends AuthClient> = Parameters<
|
|
8
|
+
TAuthClient["deleteUser"]
|
|
9
|
+
>[0]
|
|
10
|
+
|
|
11
|
+
export type DeleteUserOptions<TAuthClient extends AuthClient> = Omit<
|
|
12
|
+
ReturnType<typeof deleteUserOptions<TAuthClient>>,
|
|
13
|
+
"mutationKey" | "mutationFn"
|
|
14
|
+
>
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Mutation options factory for deleting the authenticated user's account.
|
|
18
|
+
*
|
|
19
|
+
* @param authClient - The Better Auth client.
|
|
20
|
+
*/
|
|
21
|
+
export function deleteUserOptions<TAuthClient extends AuthClient>(
|
|
22
|
+
authClient: TAuthClient
|
|
23
|
+
) {
|
|
24
|
+
const mutationKey = authMutationKeys.deleteUser
|
|
25
|
+
|
|
26
|
+
const mutationFn = (params: DeleteUserParams<TAuthClient>) =>
|
|
27
|
+
authClient.deleteUser({
|
|
28
|
+
...params,
|
|
29
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
return mutationOptions<
|
|
33
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
34
|
+
BetterFetchError,
|
|
35
|
+
Parameters<typeof mutationFn>[0]
|
|
36
|
+
>({
|
|
37
|
+
mutationKey,
|
|
38
|
+
mutationFn
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Create a mutation for deleting the authenticated user's account.
|
|
44
|
+
*
|
|
45
|
+
* Wraps `authClient.deleteUser` and forwards React Query mutation options
|
|
46
|
+
* such as `onSuccess`, `onError`, and `retry`.
|
|
47
|
+
*
|
|
48
|
+
* @param authClient - The Better Auth client.
|
|
49
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
50
|
+
*/
|
|
51
|
+
export function useDeleteUser<TAuthClient extends AuthClient>(
|
|
52
|
+
authClient: TAuthClient,
|
|
53
|
+
options?: DeleteUserOptions<TAuthClient>
|
|
54
|
+
) {
|
|
55
|
+
return useMutation({
|
|
56
|
+
...deleteUserOptions(authClient),
|
|
57
|
+
...options
|
|
58
|
+
})
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { authMutationKeys } from "@better-auth-ui/core"
|
|
2
|
+
import { mutationOptions, useMutation } from "@tanstack/react-query"
|
|
3
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
4
|
+
|
|
5
|
+
import type { AuthClient } from "../../lib/auth-client"
|
|
6
|
+
|
|
7
|
+
export type LinkSocialParams<TAuthClient extends AuthClient> = Parameters<
|
|
8
|
+
TAuthClient["linkSocial"]
|
|
9
|
+
>[0]
|
|
10
|
+
|
|
11
|
+
export type LinkSocialOptions<TAuthClient extends AuthClient> = Omit<
|
|
12
|
+
ReturnType<typeof linkSocialOptions<TAuthClient>>,
|
|
13
|
+
"mutationKey" | "mutationFn"
|
|
14
|
+
>
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Mutation options factory for linking a social provider to the current user.
|
|
18
|
+
*
|
|
19
|
+
* @param authClient - The Better Auth client.
|
|
20
|
+
*/
|
|
21
|
+
export function linkSocialOptions<TAuthClient extends AuthClient>(
|
|
22
|
+
authClient: TAuthClient
|
|
23
|
+
) {
|
|
24
|
+
const mutationKey = authMutationKeys.linkSocial
|
|
25
|
+
|
|
26
|
+
const mutationFn = (params: LinkSocialParams<TAuthClient>) =>
|
|
27
|
+
authClient.linkSocial({
|
|
28
|
+
...params,
|
|
29
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
return mutationOptions<
|
|
33
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
34
|
+
BetterFetchError,
|
|
35
|
+
Parameters<typeof mutationFn>[0]
|
|
36
|
+
>({
|
|
37
|
+
mutationKey,
|
|
38
|
+
mutationFn
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Create a mutation for linking a social provider to the current user.
|
|
44
|
+
*
|
|
45
|
+
* Wraps `authClient.linkSocial` to initiate a provider redirect and forwards
|
|
46
|
+
* React Query mutation options such as `onSuccess`, `onError`, and `retry`.
|
|
47
|
+
*
|
|
48
|
+
* @param authClient - The Better Auth client.
|
|
49
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
50
|
+
*/
|
|
51
|
+
export function useLinkSocial<TAuthClient extends AuthClient>(
|
|
52
|
+
authClient: TAuthClient,
|
|
53
|
+
options?: LinkSocialOptions<TAuthClient>
|
|
54
|
+
) {
|
|
55
|
+
return useMutation({
|
|
56
|
+
...linkSocialOptions(authClient),
|
|
57
|
+
...options
|
|
58
|
+
})
|
|
59
|
+
}
|