import { apiKeyClient } from "@better-auth/api-key/client"; import { anonymousClient, deviceAuthorizationClient, emailOTPClient, genericOAuthClient, inferAdditionalFields, lastLoginMethodClient, magicLinkClient, organizationClient, } from "better-auth/client/plugins"; import { createAuthClient } from "better-auth/react"; import { ac, admin, member, owner } from "./permissions"; const getBaseURL = () => { const apiUrl = import.meta.env.VITE_API_URL || "http://localhost:1337"; try { const url = new URL(apiUrl); return `${url.protocol}//${url.host}`; } catch { return apiUrl.split("/").slice(0, 3).join("/"); } }; export const authClient = createAuthClient({ baseURL: getBaseURL(), basePath: "/api/auth", plugins: [ anonymousClient(), lastLoginMethodClient(), magicLinkClient(), emailOTPClient(), organizationClient({ ac, roles: { member, admin, owner, }, }), genericOAuthClient(), deviceAuthorizationClient(), apiKeyClient(), inferAdditionalFields({ user: { locale: { type: "string", required: false, input: true, }, }, }), ], });