From dc820a2a8bb163a81ebf3937bcdf98609b6741af Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 2 Nov 2026 10:56:53 +0000 Subject: [PATCH] fix(security): upgrade better-auth to 1.7.15 The Nov 2 security cron failed on three better-auth advisories (GHSA-965c-763c-88jm, GHSA-r4xp-prcw-77qf, GHSA-q84f-53jg-9ppm). The patch floor is 1.7.7; 1.6 has no backport. Migrate SSO from signIn.oauth2 / genericOAuthClient to signIn.social, drop the removed issuer fields, and rewrite the old oauth2 callback path so existing IdP redirect URIs keep working. Signed-off-by: Cursor Agent Co-authored-by: Santosh kumar --- .env.example | 2 +- .github/dependabot.yml | 5 +- apps/customer-app/next.config.ts | 12 + apps/customer-app/package.json | 2 +- .../src/app/(auth)/sign-in/sign-in-form.tsx | 4 +- apps/customer-app/src/lib/auth-client.ts | 8 +- apps/customer-app/src/lib/auth.ts | 9 +- apps/dashboard/next.config.ts | 14 +- apps/dashboard/package.json | 2 +- .../src/app/(auth)/login/login-form.tsx | 8 +- apps/dashboard/src/lib/auth-client.ts | 7 +- apps/dashboard/src/lib/auth.ts | 2 - docs/auth.md | 8 +- package.json | 2 +- pnpm-lock.yaml | 252 ++++++++---------- 15 files changed, 163 insertions(+), 174 deletions(-) diff --git a/.env.example b/.env.example index 00edc9c8..b5ded564 100644 --- a/.env.example +++ b/.env.example @@ -283,7 +283,7 @@ AF_STACK_S3_REGION=us-east-1 # Enterprise SSO/SAML (#26): BackAI accepts OIDC here. For SAML # customers, put Authentik in front as the self-hosted SAML-to-OIDC # bridge, or use WorkOS as the managed broker. Register: -# /api/auth/oauth2/callback/enterprise-sso +# /api/auth/callback/enterprise-sso # as the redirect URI in the broker. # AF_STACK_SSO_LABEL=Enterprise SSO # AF_STACK_SSO_ISSUER=https://auth.example.com/application/o/af-stack/ diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f8d3a293..1a71110c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -53,10 +53,9 @@ updates: ignore: - dependency-name: "*" update-types: ["version-update:semver-major"] - # 1.7 removed genericOAuthClient and signIn.oauth2. Stay on 1.6 - # until the dashboard/customer-app auth clients are migrated. + # 1.8+ is the next breaking train after the 1.7 client migration. - dependency-name: "better-auth" - versions: [">=1.7.0"] + versions: [">=1.8.0"] labels: - type:chore - area:dashboard diff --git a/apps/customer-app/next.config.ts b/apps/customer-app/next.config.ts index faf0d6f0..aceb5b2a 100644 --- a/apps/customer-app/next.config.ts +++ b/apps/customer-app/next.config.ts @@ -6,6 +6,18 @@ const nextConfig: NextConfig = { // /api/v1/* is proxied to the runtime via the dynamic Route Handler at // src/app/api/v1/[...path]/route.ts. RUNTIME_URL is resolved at request // time so docker-compose env vars take effect without a rebuild. + // + // better-auth 1.7 moved generic-OAuth callbacks from + // /api/auth/oauth2/callback/:id to /api/auth/callback/:id. Keep the old + // path working so already-registered IdP redirect URIs still land. + async rewrites() { + return [ + { + source: "/api/auth/oauth2/callback/:id", + destination: "/api/auth/callback/:id", + }, + ] + }, } export default nextConfig diff --git a/apps/customer-app/package.json b/apps/customer-app/package.json index f5defb32..8d4157bf 100644 --- a/apps/customer-app/package.json +++ b/apps/customer-app/package.json @@ -16,7 +16,7 @@ "@hookform/resolvers": "^5.9.2", "@types/pg": "^8.23.1", "bcryptjs": "^2.4.3", - "better-auth": "1.6.33", + "better-auth": "1.7.15", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^1.61.0", diff --git a/apps/customer-app/src/app/(auth)/sign-in/sign-in-form.tsx b/apps/customer-app/src/app/(auth)/sign-in/sign-in-form.tsx index c12c5c82..11e2fb2f 100644 --- a/apps/customer-app/src/app/(auth)/sign-in/sign-in-form.tsx +++ b/apps/customer-app/src/app/(auth)/sign-in/sign-in-form.tsx @@ -72,8 +72,8 @@ function SignInInner({ sso }: SignInFormProps) { const handleSSO = async () => { setSubmitting(true) try { - const result = await signIn.oauth2({ - providerId: SSO_PROVIDER_ID, + const result = await signIn.social({ + provider: SSO_PROVIDER_ID, callbackURL: next, }) if (result.error) { diff --git a/apps/customer-app/src/lib/auth-client.ts b/apps/customer-app/src/lib/auth-client.ts index de9c5344..509beae1 100644 --- a/apps/customer-app/src/lib/auth-client.ts +++ b/apps/customer-app/src/lib/auth-client.ts @@ -1,12 +1,12 @@ // SPDX-License-Identifier: Apache-2.0 // Client-side auth helpers — used in React Server / Client Components. +// +// better-auth 1.7 folded generic OAuth into the social-provider path, so +// the client no longer needs genericOAuthClient(). SSO uses signIn.social. import { createAuthClient } from "better-auth/react" -import { genericOAuthClient } from "better-auth/client/plugins" -export const authClient = createAuthClient({ - plugins: [genericOAuthClient()], -}) +export const authClient = createAuthClient() export const { signIn, signUp, signOut, useSession } = authClient diff --git a/apps/customer-app/src/lib/auth.ts b/apps/customer-app/src/lib/auth.ts index bfa88e46..98ac3b82 100644 --- a/apps/customer-app/src/lib/auth.ts +++ b/apps/customer-app/src/lib/auth.ts @@ -22,8 +22,7 @@ import { provisionTenant, lookupCustomerContext } from "@/lib/provisioning" import { getCustomerSSOConfig } from "@/lib/sso" function makeAuth() { - const databaseUrl = - process.env.DATABASE_URL ?? process.env.AF_STACK_DATABASE_URL + const databaseUrl = process.env.DATABASE_URL ?? process.env.AF_STACK_DATABASE_URL if (!databaseUrl) { return null } @@ -71,13 +70,11 @@ function makeAuth() { config: [ { providerId: sso.providerId, - issuer: sso.issuer, discoveryUrl: sso.discoveryUrl, clientId: process.env.AF_STACK_SSO_CLIENT_ID!, clientSecret: process.env.AF_STACK_SSO_CLIENT_SECRET!, scopes: sso.scopes, pkce: true, - requireIssuerValidation: true, overrideUserInfo: true, }, ], @@ -128,9 +125,7 @@ export const auth = {}, { get() { - throw new Error( - "DATABASE_URL or AF_STACK_DATABASE_URL must be set for better-auth.", - ) + throw new Error("DATABASE_URL or AF_STACK_DATABASE_URL must be set for better-auth.") }, }, ) as ReturnType) diff --git a/apps/dashboard/next.config.ts b/apps/dashboard/next.config.ts index de342f21..192f94d3 100644 --- a/apps/dashboard/next.config.ts +++ b/apps/dashboard/next.config.ts @@ -6,6 +6,18 @@ const nextConfig: NextConfig = { // /api/v1/* is proxied to the runtime via the dynamic Route Handler at // src/app/api/v1/[...path]/route.ts (so RUNTIME_URL is resolved at // request time, not baked at build time). + // + // better-auth 1.7 moved generic-OAuth callbacks from + // /api/auth/oauth2/callback/:id to /api/auth/callback/:id. Keep the old + // path working so already-registered IdP redirect URIs still land. + async rewrites() { + return [ + { + source: "/api/auth/oauth2/callback/:id", + destination: "/api/auth/callback/:id", + }, + ] + }, } -export default nextConfig \ No newline at end of file +export default nextConfig diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index 3ed2bcfb..ef5aa356 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -18,7 +18,7 @@ "@hookform/resolvers": "^5.9.2", "@tanstack/react-table": "^8.21.3", "@types/pg": "^8.23.1", - "better-auth": "1.6.33", + "better-auth": "1.7.15", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", diff --git a/apps/dashboard/src/app/(auth)/login/login-form.tsx b/apps/dashboard/src/app/(auth)/login/login-form.tsx index aa4ce5f5..7f70b72d 100644 --- a/apps/dashboard/src/app/(auth)/login/login-form.tsx +++ b/apps/dashboard/src/app/(auth)/login/login-form.tsx @@ -92,8 +92,8 @@ function LoginFormInner({ sso }: LoginFormProps) { const handleSSO = async () => { setSubmitting(true) try { - const result = await signIn.oauth2({ - providerId: SSO_PROVIDER_ID, + const result = await signIn.social({ + provider: SSO_PROVIDER_ID, callbackURL: next, }) if (result.error) { @@ -114,8 +114,8 @@ function LoginFormInner({ sso }: LoginFormProps) {

- This account is not an operator. Sign in with the first operator account - created during setup. + This account is not an operator. Sign in with the first operator account created + during setup.

) : null} diff --git a/apps/dashboard/src/lib/auth-client.ts b/apps/dashboard/src/lib/auth-client.ts index 03c628ee..e661e7bf 100644 --- a/apps/dashboard/src/lib/auth-client.ts +++ b/apps/dashboard/src/lib/auth-client.ts @@ -1,12 +1,15 @@ // SPDX-License-Identifier: Apache-2.0 // Client-side auth helpers. Use these in React Server / Client Components. +// +// better-auth 1.7 folded generic OAuth into the social-provider path, so +// the client no longer needs genericOAuthClient(). SSO uses signIn.social. import { createAuthClient } from "better-auth/react" -import { genericOAuthClient, magicLinkClient } from "better-auth/client/plugins" +import { magicLinkClient } from "better-auth/client/plugins" export const authClient = createAuthClient({ - plugins: [genericOAuthClient(), magicLinkClient()], + plugins: [magicLinkClient()], }) export const { signIn, signUp, signOut, useSession } = authClient diff --git a/apps/dashboard/src/lib/auth.ts b/apps/dashboard/src/lib/auth.ts index 3effad4f..3a864231 100644 --- a/apps/dashboard/src/lib/auth.ts +++ b/apps/dashboard/src/lib/auth.ts @@ -161,7 +161,6 @@ function makeAuth() { config: [ { providerId: sso.providerId, - issuer: sso.issuer, discoveryUrl: sso.discoveryUrl, clientId: process.env.AF_STACK_SSO_CLIENT_ID ?? process.env.DASHBOARD_SSO_CLIENT_ID!, @@ -170,7 +169,6 @@ function makeAuth() { process.env.DASHBOARD_SSO_CLIENT_SECRET!, scopes: sso.scopes, pkce: true, - requireIssuerValidation: true, overrideUserInfo: true, }, ], diff --git a/docs/auth.md b/docs/auth.md index e1449889..9733e79e 100644 --- a/docs/auth.md +++ b/docs/auth.md @@ -125,10 +125,14 @@ AF_STACK_SSO_SCOPES="openid email profile" Register these redirect URIs in Authentik, WorkOS, or your OIDC broker: ```text -https://admin.example.com/api/auth/oauth2/callback/enterprise-sso -https://app.example.com/api/auth/oauth2/callback/enterprise-sso +https://admin.example.com/api/auth/callback/enterprise-sso +https://app.example.com/api/auth/callback/enterprise-sso ``` +better-auth 1.7 moved these off `/api/auth/oauth2/callback/:id`. The apps +still rewrite the old path so already-registered IdP URIs keep working; +register the new URIs on new brokers. + The provider must return an email claim. New SSO users are mirrored into `suite_users` by the same better-auth hook as email/password users. They do not become dashboard operators unless they are the first bootstrap diff --git a/package.json b/package.json index 4ae76c02..f6691626 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "nanoid@<3.3.18": "3.3.18", "postcss@<=8.5.22": ">=8.5.26", "browserslist@<=4.28.6": ">=4.28.8", - "better-auth": "1.6.33" + "better-auth": "1.7.15" }, "auditConfig": { "ignoreGhsas": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ae8dc42f..d13b8696 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,7 +20,7 @@ overrides: nanoid@<3.3.18: 3.3.18 postcss@<=8.5.22: '>=8.5.26' browserslist@<=4.28.6: '>=4.28.8' - better-auth: 1.6.33 + better-auth: 1.7.15 importers: @@ -54,8 +54,8 @@ importers: specifier: ^2.4.3 version: 2.4.3 better-auth: - specifier: 1.6.33 - version: 1.6.33(next@16.4.3(@babel/core@7.29.7)(@types/node@20.19.43)(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(pg@8.23.1)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(vitest@4.1.12(@types/node@20.19.43)(msw@2.14.6(@types/node@20.19.43)(typescript@5.9.3))(vite@8.3.5(@types/node@20.19.43)(jiti@2.7.0))) + specifier: 1.7.15 + version: 1.7.15(next@16.4.3(@babel/core@7.29.7)(@types/node@20.19.43)(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(pg@8.23.1)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(vitest@4.1.12(@types/node@20.19.43)(msw@2.14.6(@types/node@20.19.43)(typescript@5.9.3))(vite@8.3.5(@types/node@20.19.43)(jiti@2.7.0))) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -151,8 +151,8 @@ importers: specifier: ^8.23.1 version: 8.23.1 better-auth: - specifier: 1.6.33 - version: 1.6.33(next@16.4.3(@types/node@20.19.43)(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(pg@8.23.1)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(vitest@4.1.12(@types/node@20.19.43)(msw@2.14.6(@types/node@20.19.43)(typescript@6.0.3))(vite@8.3.5(@types/node@20.19.43)(jiti@2.7.0))) + specifier: 1.7.15 + version: 1.7.15(next@16.4.3(@types/node@20.19.43)(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(pg@8.23.1)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(vitest@4.1.12(@types/node@20.19.43)(msw@2.14.6(@types/node@20.19.43)(typescript@6.0.3))(vite@8.3.5(@types/node@20.19.43)(jiti@2.7.0))) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -427,13 +427,13 @@ packages: '@types/react': optional: true - '@better-auth/core@1.6.33': - resolution: {integrity: sha512-DTadFTdcEad+IAmcJAEVGjD+6wtjt8BkLqmfBdRK+AeYOHaKy/gwtSlmxDuHKfsRaOmn1P8/gtEi/L5wVeEojQ==} + '@better-auth/core@1.7.15': + resolution: {integrity: sha512-BetlCGMINY5GiQocDF9X2wD+9yWrSrAecQbcZUCDqXd2pAolPr15ZrFqYyjEXX6YKUdPPWotUmo8naE4NSyEVQ==} peerDependencies: - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.1 + '@better-auth/utils': ^0.4.2 || ^0.5.0 + '@better-fetch/fetch': 1.3.3 '@opentelemetry/api': ^1.9.0 - better-call: 1.4.0 + better-call: 1.4.4 jose: ^6.1.0 kysely: ^0.28.5 || ^0.29.0 nanostores: ^1.0.1 @@ -441,47 +441,47 @@ packages: '@opentelemetry/api': optional: true - '@better-auth/drizzle-adapter@1.6.33': - resolution: {integrity: sha512-/BXRx0FoqoWKV3LZLWjnPJHHGvXEZro7goVzzV7K7ZPZG+PbBa+HYN+eJuXSMFb3JCwJEhW+JNLHWekzHQnTLA==} + '@better-auth/drizzle-adapter@1.7.15': + resolution: {integrity: sha512-HtFz2WovzJGfmIobhqaHNdTUA5EuXtCp8YdyMxS8at70usce/LMlh4CVc9hPAXl49XuJaDi8vp5Z9Cgk9dQCUA==} peerDependencies: - '@better-auth/core': ^1.6.33 - '@better-auth/utils': 0.4.2 - drizzle-orm: ^0.45.2 + '@better-auth/core': ^1.7.15 + '@better-auth/utils': ^0.4.2 || ^0.5.0 + drizzle-orm: ^0.45.2 || >=1.0.0-rc.1 <2.0.0 peerDependenciesMeta: drizzle-orm: optional: true - '@better-auth/kysely-adapter@1.6.33': - resolution: {integrity: sha512-CUYXGxJhx29iilmCr2jdzWBGg/Iq1XjghGlRO15N5SsR+hz8KOGob57UFMVtHEQAhN3tcdgJNllx/ZLmNCyO/A==} + '@better-auth/kysely-adapter@1.7.15': + resolution: {integrity: sha512-1anYpzH3A0i6W2J9EvqMAlCCVQ3NfLUKZGquJ4LfZzS8rC7iHSntpagqEvZeerZrAydtke2rMl91SSiNtKyVcQ==} peerDependencies: - '@better-auth/core': ^1.6.33 - '@better-auth/utils': 0.4.2 + '@better-auth/core': ^1.7.15 + '@better-auth/utils': ^0.4.2 || ^0.5.0 kysely: ^0.28.17 || ^0.29.0 peerDependenciesMeta: kysely: optional: true - '@better-auth/memory-adapter@1.6.33': - resolution: {integrity: sha512-vw8uuW+zWUd4TLNnmtlwIiUb4jcj/mAopKWohv7ojDR6Esha7ZkM6EsW8W1PVdRhAfLiHeGqh0RvNtFm5mNDjQ==} + '@better-auth/memory-adapter@1.7.15': + resolution: {integrity: sha512-lsSgxCCn94QanigQrhdXOcQ2thb3ix8zOBQZySet6Tp1dK3pb+GmQ1ZQtamYgj5itvq99fEmLr4Em24XE2BTcA==} peerDependencies: - '@better-auth/core': ^1.6.33 - '@better-auth/utils': 0.4.2 + '@better-auth/core': ^1.7.15 + '@better-auth/utils': ^0.4.2 || ^0.5.0 - '@better-auth/mongo-adapter@1.6.33': - resolution: {integrity: sha512-JxAENypnmQbYcNboePWafLaP2egLgKQYoKPnZ8dNvaV50/h/dSlBDn1KaUrEMkJWjRXQ2rwgJzUl2yvGxQUZow==} + '@better-auth/mongo-adapter@1.7.15': + resolution: {integrity: sha512-Pku7yZcIuvGqsGy2cLws+7en8dLPyGmP9v0BHHtxEqtsFyc+DtLvv1AzHzNKQz5v52KlbUQ5Uflx5+Le0A1ALA==} peerDependencies: - '@better-auth/core': ^1.6.33 - '@better-auth/utils': 0.4.2 + '@better-auth/core': ^1.7.15 + '@better-auth/utils': ^0.4.2 || ^0.5.0 mongodb: ^6.0.0 || ^7.0.0 peerDependenciesMeta: mongodb: optional: true - '@better-auth/prisma-adapter@1.6.33': - resolution: {integrity: sha512-wloYc35VpI7tjuWgOckB4GVX8y0Ow12ER5CfSqc55K88BefgRtR3brruZ9GhHSll+ZIxjf/0p5IGa+z8rKUR2Q==} + '@better-auth/prisma-adapter@1.7.15': + resolution: {integrity: sha512-YMMA2HnEPFcUNw/mJWxBxoAdRV2B1ZQ8rRsBJwwTQsC6sfZVYr9f/5zslizf6J7eRpOpgqpiwumSRhdeLf1EOg==} peerDependencies: - '@better-auth/core': ^1.6.33 - '@better-auth/utils': 0.4.2 + '@better-auth/core': ^1.7.15 + '@better-auth/utils': ^0.4.2 || ^0.5.0 '@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0 prisma: ^5.0.0 || ^6.0.0 || ^7.0.0 peerDependenciesMeta: @@ -490,21 +490,18 @@ packages: prisma: optional: true - '@better-auth/telemetry@1.6.33': - resolution: {integrity: sha512-k8BmE90sWIXlst84zyvCjWoXuftdujCmevlDDI86zXg81Pl+F2AZFPZFXzWkqaNmecnUjbm9bohNGCY6JonWQQ==} + '@better-auth/telemetry@1.7.15': + resolution: {integrity: sha512-qZq491FZNLRCFmBo97DK+wOKfKPcSMeP87BoqH1nWZc0FZi2fbS4vqmwgn9OdQU7LRjHs/757o64iao1vrvkKA==} peerDependencies: - '@better-auth/core': ^1.6.33 - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.1 + '@better-auth/core': ^1.7.15 + '@better-auth/utils': ^0.4.2 || ^0.5.0 + '@better-fetch/fetch': 1.3.3 - '@better-auth/utils@0.4.2': - resolution: {integrity: sha512-AUxrvu+HaaODsUyzDxFgwd/8RZ1yZaYo42LXKSrU2oGgR38pS1ij8nqQKNgtTWoYGpNevNXtCfgTy6loHveW9A==} + '@better-auth/utils@0.5.1': + resolution: {integrity: sha512-WETqw5vQ52uQ/xwWR4E8rTgT6fDEr/wnS+otDNkBCa/69281FCF32OKDdQUcahMCnjsvqXBNiEvAQHFB0EVRRg==} - '@better-auth/utils@0.5.0': - resolution: {integrity: sha512-BL8W4EfIZFwlu0r54m3v1ztjDhu6dDe/amLTm0xybmbZaNgYUqhD3SjpAsnq0q8YD6/ki4iwIgxJNLP/N3TxiA==} - - '@better-fetch/fetch@1.3.1': - resolution: {integrity: sha512-ABkD1WhyfPZprKRQI3bhATjeiFuNWC9PXhfGWqL+sg/gKrM977oFrYkdb4msM3hgUGonr7KlOsOFT5TU2rht9g==} + '@better-fetch/fetch@1.3.3': + resolution: {integrity: sha512-U6SlDt/GUWtK2JAxS/NhdoYTEim+EL1G5byz2TUj83KjLZBUpYzb5SmX0aXaCnbGkAjFKnV/o/0+cyXMbEcqqg==} '@date-fns/tz@1.5.0': resolution: {integrity: sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==} @@ -999,10 +996,6 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - '@opentelemetry/semantic-conventions@1.43.0': - resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} - engines: {node: '>=14'} - '@oxc-project/types@0.155.0': resolution: {integrity: sha512-SeE8JPwW1xs1tHeNycjUtUBdhorRa8o4jlvjwk49R7/Z291i+4DQa7JJIgOm/TaYQZx+QrPQbVJ/9c8dMIZN8Q==} @@ -1855,17 +1848,16 @@ packages: bcryptjs@2.4.3: resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} - better-auth@1.6.33: - resolution: {integrity: sha512-QkVKOmJw/LQ3HjIib2wx2Td0xB9EuPgw0ARYPKeFu3niN0VSBW32j4QwfewFZOQi5Hb/jOB6U+wdvtBhF7+URw==} + better-auth@1.7.15: + resolution: {integrity: sha512-x2HmrQZy9yTG3H9iJ9pvaVGmLbI++ynOcJ3SGqFZnhEDscQSpG+1P9Xv41ceje2vw7dVE5+BbImDGneyhtW2Vg==} peerDependencies: '@lynx-js/react': '*' '@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0 - '@sveltejs/kit': ^2.0.0 + '@sveltejs/kit': ^2.0.0 || ^3.0.0 '@tanstack/react-start': ^1.0.0 '@tanstack/solid-start': ^1.0.0 - better-sqlite3: ^12.0.0 - drizzle-kit: '>=0.31.4' - drizzle-orm: ^0.45.2 + drizzle-kit: '>=0.31.4 || >=1.0.0-beta.1' + drizzle-orm: ^0.45.2 || >=1.0.0-rc.1 <2.0.0 mongodb: ^6.0.0 || ^7.0.0 mysql2: ^3.0.0 next: 16.4.3 @@ -1875,7 +1867,7 @@ packages: react-dom: ^18.0.0 || ^19.0.0 solid-js: ^1.0.0 svelte: ^4.0.0 || ^5.0.0 - vitest: ^2.0.0 || ^3.0.0 || ^4.0.0 + vitest: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 vue: ^3.0.0 peerDependenciesMeta: '@lynx-js/react': @@ -1888,8 +1880,6 @@ packages: optional: true '@tanstack/solid-start': optional: true - better-sqlite3: - optional: true drizzle-kit: optional: true drizzle-orm: @@ -1917,8 +1907,8 @@ packages: vue: optional: true - better-call@1.4.0: - resolution: {integrity: sha512-bBKOT4vv1kZLDgxVePdilk/Jwkn+dtRRsmi3DzHcDP+WnswyVl6dR59l2HEeP/0cB+bDoopASAesWDPIdd/zZA==} + better-call@1.4.4: + resolution: {integrity: sha512-Gq4XdGFy4dmUxFEAX2nj0ycFcFbD9ZWh8YROouZoyXeF1M11TpYbplk0pDByTFF8Wz+MYa6W9052c9m7dD+mfw==} peerDependencies: zod: ^4.0.0 peerDependenciesMeta: @@ -3075,9 +3065,6 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true - jose@6.2.12: - resolution: {integrity: sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==} - jose@6.2.13: resolution: {integrity: sha512-7TIg10ZE1x82YediN+lcrPNvGMKge9yFHQD+Qho/b8y2adfugU3AsvvHfxV0fzyFllT6l9xCjf4RWY9g/Z9PJQ==} @@ -3138,10 +3125,6 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - kysely@0.29.6: - resolution: {integrity: sha512-hHaB8C/rfzDDtr/t8YZwxAuPJTT0zHyaPoVzcXwDYhYNAgH/4sIfVhi/XLLIY+bL/FqaIJnjATDbi8ObSELmxg==} - engines: {node: '>=22.0.0'} - kysely@0.29.7: resolution: {integrity: sha512-fmIq+7kv4WbFm2tcfznRzikqB4cuNpgZ40PSU2fAJ2/OO5XhojqnTPrmgrCjYSRJVwBln03XcRXJGnw9H099IQ==} engines: {node: '>=22.0.0'} @@ -4079,9 +4062,6 @@ packages: resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} engines: {node: '>= 18'} - set-cookie-parser@3.1.3: - resolution: {integrity: sha512-xletSdAI5efyVJjsatBbzDkXl3M/Zmad3xfnQe7ZXuBB0yNwW7C2WFsNGjdRNfZunmNHQuX79xs/ACMTLCdcew==} - set-cookie-parser@3.2.1: resolution: {integrity: sha512-Npd1Pt+4zb3BrSZDPd2qFwRpS6b1EUEasRrO8xS0zMJi0fApXXK5YuzP0minyJnxwnFHoVoJwA55q0A0cu63gQ==} @@ -4937,60 +4917,55 @@ snapshots: optionalDependencies: '@types/react': 19.3.0 - '@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5)': + '@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5)': dependencies: - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.1 - '@opentelemetry/semantic-conventions': 1.43.0 + '@better-auth/utils': 0.5.1 + '@better-fetch/fetch': 1.3.3 '@standard-schema/spec': 1.1.0 - better-call: 1.4.0(zod@4.6.7) - jose: 6.2.12 - kysely: 0.29.6 + better-call: 1.4.4(zod@4.6.7) + jose: 6.2.13 + kysely: 0.29.7 nanostores: 1.5.5 zod: 4.6.7 - '@better-auth/drizzle-adapter@1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)': + '@better-auth/drizzle-adapter@1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1)': dependencies: - '@better-auth/core': 1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 + '@better-auth/core': 1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5) + '@better-auth/utils': 0.5.1 - '@better-auth/kysely-adapter@1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)(kysely@0.29.6)': + '@better-auth/kysely-adapter@1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1)(kysely@0.29.7)': dependencies: - '@better-auth/core': 1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 + '@better-auth/core': 1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5) + '@better-auth/utils': 0.5.1 optionalDependencies: - kysely: 0.29.6 + kysely: 0.29.7 - '@better-auth/memory-adapter@1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)': + '@better-auth/memory-adapter@1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1)': dependencies: - '@better-auth/core': 1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 + '@better-auth/core': 1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5) + '@better-auth/utils': 0.5.1 - '@better-auth/mongo-adapter@1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)': + '@better-auth/mongo-adapter@1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1)': dependencies: - '@better-auth/core': 1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 + '@better-auth/core': 1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5) + '@better-auth/utils': 0.5.1 - '@better-auth/prisma-adapter@1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)': + '@better-auth/prisma-adapter@1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1)': dependencies: - '@better-auth/core': 1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 + '@better-auth/core': 1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5) + '@better-auth/utils': 0.5.1 - '@better-auth/telemetry@1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)': + '@better-auth/telemetry@1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)': dependencies: - '@better-auth/core': 1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.1 + '@better-auth/core': 1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5) + '@better-auth/utils': 0.5.1 + '@better-fetch/fetch': 1.3.3 - '@better-auth/utils@0.4.2': + '@better-auth/utils@0.5.1': dependencies: '@noble/hashes': 2.4.0 - '@better-auth/utils@0.5.0': - dependencies: - '@noble/hashes': 2.4.0 - - '@better-fetch/fetch@1.3.1': {} + '@better-fetch/fetch@1.3.3': {} '@date-fns/tz@1.5.0': {} @@ -5397,8 +5372,6 @@ snapshots: '@open-draft/until@2.1.0': optional: true - '@opentelemetry/semantic-conventions@1.43.0': {} - '@oxc-project/types@0.155.0': {} '@radix-ui/primitive@1.1.4': {} @@ -6275,23 +6248,23 @@ snapshots: bcryptjs@2.4.3: {} - better-auth@1.6.33(next@16.4.3(@babel/core@7.29.7)(@types/node@20.19.43)(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(pg@8.23.1)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(vitest@4.1.12(@types/node@20.19.43)(msw@2.14.6(@types/node@20.19.43)(typescript@5.9.3))(vite@8.3.5(@types/node@20.19.43)(jiti@2.7.0))): - dependencies: - '@better-auth/core': 1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/drizzle-adapter': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/kysely-adapter': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)(kysely@0.29.6) - '@better-auth/memory-adapter': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/mongo-adapter': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/prisma-adapter': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/telemetry': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1) - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.1 + better-auth@1.7.15(next@16.4.3(@babel/core@7.29.7)(@types/node@20.19.43)(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(pg@8.23.1)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(vitest@4.1.12(@types/node@20.19.43)(msw@2.14.6(@types/node@20.19.43)(typescript@5.9.3))(vite@8.3.5(@types/node@20.19.43)(jiti@2.7.0))): + dependencies: + '@better-auth/core': 1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5) + '@better-auth/drizzle-adapter': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1) + '@better-auth/kysely-adapter': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1)(kysely@0.29.7) + '@better-auth/memory-adapter': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1) + '@better-auth/mongo-adapter': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1) + '@better-auth/prisma-adapter': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1) + '@better-auth/telemetry': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3) + '@better-auth/utils': 0.5.1 + '@better-fetch/fetch': 1.3.3 '@noble/ciphers': 2.4.0 '@noble/hashes': 2.4.0 - better-call: 1.4.0(zod@4.6.7) + better-call: 1.4.4(zod@4.6.7) defu: 6.1.7 - jose: 6.2.12 - kysely: 0.29.6 + jose: 6.2.13 + kysely: 0.29.7 nanostores: 1.5.5 zod: 4.6.7 optionalDependencies: @@ -6303,23 +6276,23 @@ snapshots: transitivePeerDependencies: - '@opentelemetry/api' - better-auth@1.6.33(next@16.4.3(@types/node@20.19.43)(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(pg@8.23.1)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(vitest@4.1.12(@types/node@20.19.43)(msw@2.14.6(@types/node@20.19.43)(typescript@6.0.3))(vite@8.3.5(@types/node@20.19.43)(jiti@2.7.0))): - dependencies: - '@better-auth/core': 1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/drizzle-adapter': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/kysely-adapter': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)(kysely@0.29.6) - '@better-auth/memory-adapter': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/mongo-adapter': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/prisma-adapter': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/telemetry': 1.6.33(@better-auth/core@1.6.33(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1) - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.1 + better-auth@1.7.15(next@16.4.3(@types/node@20.19.43)(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(pg@8.23.1)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(vitest@4.1.12(@types/node@20.19.43)(msw@2.14.6(@types/node@20.19.43)(typescript@6.0.3))(vite@8.3.5(@types/node@20.19.43)(jiti@2.7.0))): + dependencies: + '@better-auth/core': 1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5) + '@better-auth/drizzle-adapter': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1) + '@better-auth/kysely-adapter': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1)(kysely@0.29.7) + '@better-auth/memory-adapter': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1) + '@better-auth/mongo-adapter': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1) + '@better-auth/prisma-adapter': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1) + '@better-auth/telemetry': 1.7.15(@better-auth/core@1.7.15(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3)(better-call@1.4.4(zod@4.6.7))(jose@6.2.13)(kysely@0.29.7)(nanostores@1.5.5))(@better-auth/utils@0.5.1)(@better-fetch/fetch@1.3.3) + '@better-auth/utils': 0.5.1 + '@better-fetch/fetch': 1.3.3 '@noble/ciphers': 2.4.0 '@noble/hashes': 2.4.0 - better-call: 1.4.0(zod@4.6.7) + better-call: 1.4.4(zod@4.6.7) defu: 6.1.7 - jose: 6.2.12 - kysely: 0.29.6 + jose: 6.2.13 + kysely: 0.29.7 nanostores: 1.5.5 zod: 4.6.7 optionalDependencies: @@ -6331,12 +6304,12 @@ snapshots: transitivePeerDependencies: - '@opentelemetry/api' - better-call@1.4.0(zod@4.6.7): + better-call@1.4.4(zod@4.6.7): dependencies: - '@better-auth/utils': 0.5.0 - '@better-fetch/fetch': 1.3.1 + '@better-auth/utils': 0.5.1 + '@better-fetch/fetch': 1.3.3 rou3: 0.9.2 - set-cookie-parser: 3.1.3 + set-cookie-parser: 3.2.1 optionalDependencies: zod: 4.6.7 @@ -7670,8 +7643,6 @@ snapshots: jiti@2.7.0: {} - jose@6.2.12: {} - jose@6.2.13: {} js-tokens@4.0.0: {} @@ -7721,8 +7692,6 @@ snapshots: kleur@4.1.5: {} - kysely@0.29.6: {} - kysely@0.29.7: {} language-subtag-registry@0.3.23: {} @@ -8852,10 +8821,7 @@ snapshots: transitivePeerDependencies: - supports-color - set-cookie-parser@3.1.3: {} - - set-cookie-parser@3.2.1: - optional: true + set-cookie-parser@3.2.1: {} set-function-length@1.2.2: dependencies: