diff --git a/apps/web/package.json b/apps/web/package.json index f92d59182a..2f91a75180 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -23,7 +23,7 @@ "@ai-sdk/provider": "2.0.0", "@ai-sdk/react": "2.0.76", "@asteasolutions/zod-to-openapi": "8.1.0", - "@better-auth/sso": "1.3.7", + "@better-auth/sso": "1.3.28", "@date-fns/tz": "1.4.1", "@dub/analytics": "0.0.32", "@formkit/auto-animate": "0.9.0", @@ -91,7 +91,7 @@ "@vercel/analytics": "1.5.0", "@vercel/speed-insights": "1.2.0", "ai": "5.0.76", - "better-auth": "1.3.7", + "better-auth": "1.3.28", "braintrust": "0.4.6", "capital-case": "2.0.0", "cheerio": "1.0.0", diff --git a/apps/web/prisma/migrations/20251021213524_better_auth_refresh_token_expires_at/migration.sql b/apps/web/prisma/migrations/20251021213524_better_auth_refresh_token_expires_at/migration.sql new file mode 100644 index 0000000000..5005bf2bc1 --- /dev/null +++ b/apps/web/prisma/migrations/20251021213524_better_auth_refresh_token_expires_at/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Account" ADD COLUMN "refreshTokenExpiresAt" TIMESTAMP(3); diff --git a/apps/web/prisma/schema.prisma b/apps/web/prisma/schema.prisma index 99a5564c72..d933bf1c32 100644 --- a/apps/web/prisma/schema.prisma +++ b/apps/web/prisma/schema.prisma @@ -10,22 +10,23 @@ generator client { // Account, User, Session, and VerificationToken based on: https://authjs.dev/reference/adapter/prisma model Account { - id String @id @default(cuid()) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - userId String - provider String - type String @default("oidc") // next-auth deprecated field - providerAccountId String - refresh_token String? @db.Text - access_token String? @db.Text - expires_at DateTime? @default(now()) - token_type String? - scope String? - id_token String? @db.Text - session_state String? - user User @relation(fields: [userId], references: [id], onDelete: Cascade) - emailAccount EmailAccount? + id String @id @default(cuid()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + userId String + provider String + type String @default("oidc") // next-auth deprecated field + providerAccountId String + refresh_token String? @db.Text + refreshTokenExpiresAt DateTime? + access_token String? @db.Text + expires_at DateTime? @default(now()) + token_type String? + scope String? + id_token String? @db.Text + session_state String? + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + emailAccount EmailAccount? @@unique([provider, providerAccountId]) } @@ -402,7 +403,7 @@ model Rule { // category condition // only apply to (or do not apply to) senders in these categories categoryFilterType CategoryFilterType? // deprecated - categoryFilters Category[] // deprecated + categoryFilters Category[] // deprecated systemType SystemType? diff --git a/apps/web/utils/auth.ts b/apps/web/utils/auth.ts index 00032150e6..505a460843 100644 --- a/apps/web/utils/auth.ts +++ b/apps/web/utils/auth.ts @@ -81,6 +81,7 @@ export const betterAuthConfig = betterAuth({ accountId: "providerAccountId", providerId: "provider", refreshToken: "refresh_token", + refreshTokenExpiresAt: "refreshTokenExpiresAt", accessToken: "access_token", accessTokenExpiresAt: "expires_at", idToken: "id_token", diff --git a/package.json b/package.json index 8e27fa6b62..2c81de6aff 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@types/react-dom": "19.0.4" }, "patchedDependencies": { - "better-auth@1.3.7": "patches/better-auth@1.3.7.patch" + "better-auth@1.3.28": "patches/better-auth@1.3.28.patch" } } } diff --git a/patches/better-auth@1.3.28.patch b/patches/better-auth@1.3.28.patch new file mode 100644 index 0000000000..41068dd124 --- /dev/null +++ b/patches/better-auth@1.3.28.patch @@ -0,0 +1,12 @@ +diff --git a/dist/shared/better-auth.CjNhg7P4.mjs b/dist/shared/better-auth.CjNhg7P4.mjs +index 4a8d8eb763db277adc589fa389808926fc6dedcb..273bd0cd8103f0a44b5c65e9f8de74a14c92b7b5 100644 +--- a/dist/shared/better-auth.CjNhg7P4.mjs ++++ b/dist/shared/better-auth.CjNhg7P4.mjs +@@ -172,6 +172,7 @@ async function setCookieCache(ctx, session, dontRememberMe) { + }, + {} + ); ++ session.user.image = null; + const sessionData = { session: filteredSession, user: session.user }; + const options = { + ...ctx.context.authCookies.sessionData.options, diff --git a/patches/better-auth@1.3.7.patch b/patches/better-auth@1.3.7.patch deleted file mode 100644 index f6d8176d0d..0000000000 --- a/patches/better-auth@1.3.7.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/dist/cookies/index.mjs b/dist/cookies/index.mjs -index f4c53b8b90f61589ffe873e22d756bf081144f2f..993b62d63705fe3ffee1bfea69386d939b482c77 100644 ---- a/dist/cookies/index.mjs -+++ b/dist/cookies/index.mjs -@@ -259,6 +259,7 @@ async function setCookieCache(ctx, session) { - }, - {} - ); -+ session.user.image = null; - const sessionData = { session: filteredSession, user: session.user }; - const expiresAtDate = getDate( - ctx.context.authCookies.sessionData.options.maxAge || 60, \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f3f2745b7a..0ec3dfab79 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,9 +9,9 @@ overrides: '@types/react-dom': 19.0.4 patchedDependencies: - better-auth@1.3.7: - hash: 322076774c0bb94b44027fc7a21dae2ddaf3bf096b4d73c41b90dbae9c3b667b - path: patches/better-auth@1.3.7.patch + better-auth@1.3.28: + hash: 873d9e4b9fb6fef04a396ad1b43fe46ec1e6b6049b9a5efa040fd035de5e6582 + path: patches/better-auth@1.3.28.patch importers: @@ -121,8 +121,8 @@ importers: specifier: 8.1.0 version: 8.1.0(zod@3.25.46) '@better-auth/sso': - specifier: 1.3.7 - version: 1.3.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(zod@3.25.46) + specifier: 1.3.28 + version: 1.3.28(better-auth@1.3.28(patch_hash=873d9e4b9fb6fef04a396ad1b43fe46ec1e6b6049b9a5efa040fd035de5e6582)(better-sqlite3@12.4.1)(next@15.5.6(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(svelte@5.38.6)(vue@3.5.20(typescript@5.9.3))) '@date-fns/tz': specifier: 1.4.1 version: 1.4.1 @@ -322,8 +322,8 @@ importers: specifier: 5.0.76 version: 5.0.76(zod@3.25.46) better-auth: - specifier: 1.3.7 - version: 1.3.7(patch_hash=322076774c0bb94b44027fc7a21dae2ddaf3bf096b4d73c41b90dbae9c3b667b)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(zod@3.25.46) + specifier: 1.3.28 + version: 1.3.28(patch_hash=873d9e4b9fb6fef04a396ad1b43fe46ec1e6b6049b9a5efa040fd035de5e6582)(better-sqlite3@12.4.1)(next@15.5.6(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(svelte@5.38.6)(vue@3.5.20(typescript@5.9.3)) braintrust: specifier: 0.4.6 version: 0.4.6(@aws-sdk/credential-provider-web-identity@3.911.0)(zod@3.25.46) @@ -1645,13 +1645,24 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@better-auth/sso@1.3.7': - resolution: {integrity: sha512-MTwBiNash7HN0nLtQiL1tvYgWBn6GjYj6EYvtrQeb0/+UW0tjBDgsl39ojiFFSWGuT0gxPv+ij8tQNaFmQ1+2g==} + '@better-auth/core@1.3.28': + resolution: {integrity: sha512-iZOGKlXaNEIEj0Q3z7+REE94I89YUJ0sel/1pvm1qqdHkm59G+ToTysHtyTcLYby3+UtAeJRKyFAY0nwJH0H7A==} peerDependencies: - zod: ^3.25.0 || ^4.0.0 + '@better-auth/utils': 0.3.0 + '@better-fetch/fetch': 1.1.18 + better-call: 1.0.19 + better-sqlite3: ^12.4.1 + jose: ^6.1.0 + kysely: ^0.28.5 + nanostores: ^1.0.1 - '@better-auth/utils@0.2.6': - resolution: {integrity: sha512-3y/vaL5Ox33dBwgJ6ub3OPkVqr6B5xL2kgxNHG8eHZuryLyG/4JSPGqjbdRSgjuy9kALUZYDFl+ORIAxlWMSuA==} + '@better-auth/sso@1.3.28': + resolution: {integrity: sha512-BeuQFB/tWKR3Nx89fiD6e0Ei5VoKmman0VDBkoOIu+P3PGdSSzvbmBUTZi8aao+tAPoD6/Z5gje+oiQBDAnp4w==} + peerDependencies: + better-auth: 1.3.28 + + '@better-auth/telemetry@1.3.28': + resolution: {integrity: sha512-qZtV82IFuyQZc2c37VkiDgO/qfqPnJuWIyeC/iFK1AA5N8RSuC2+CVIH1sNDytPXUAthbYeOzcOCW2YEkgz1Ow==} '@better-auth/utils@0.3.0': resolution: {integrity: sha512-W+Adw6ZA6mgvnSnhOki270rwJ42t4XzSK6YWGF//BbVXL6SwCLWfyzBc1lN2m/4RM28KubdBKQ4X5VMoLRNPQw==} @@ -2926,12 +2937,13 @@ packages: next: ^13.0.0 || ^14.0.0 || ^15.0.0 react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - '@noble/ciphers@0.6.0': - resolution: {integrity: sha512-mIbq/R9QXk5/cTfESb1OKtyFnk7oc1Om/8onA1158K9/OZUQFDEVy55jVTato+xmp3XX6F6Qh0zz0Nc1AxAlRQ==} + '@noble/ciphers@2.0.1': + resolution: {integrity: sha512-xHK3XHPUW8DTAobU+G0XT+/w+JLM7/8k1UFdB5xg/zTFPnFCobhftzw8wl4Lw2aq/Rvir5pxfZV5fEazmeCJ2g==} + engines: {node: '>= 20.19.0'} - '@noble/hashes@1.8.0': - resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} - engines: {node: ^14.21.3 || >=16} + '@noble/hashes@2.0.1': + resolution: {integrity: sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==} + engines: {node: '>= 20.19.0'} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -6048,21 +6060,42 @@ packages: before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - better-auth@1.3.7: - resolution: {integrity: sha512-/1fEyx2SGgJQM5ujozDCh9eJksnVkNU/J7Fk/tG5Y390l8nKbrPvqiFlCjlMM+scR+UABJbQzA6An7HT50LHyQ==} + better-auth@1.3.28: + resolution: {integrity: sha512-fSaeRsTSkzCSSKREFsm7z7TsTMC8ghGrwCN+mumxCZiyc8Fh/UThUwURlTJmsR0YVB0DMR8ejQH+c38WhdQslQ==} peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - zod: ^3.25.0 || ^4.0.0 + '@lynx-js/react': '*' + '@sveltejs/kit': '*' + next: '*' + react: '*' + react-dom: '*' + solid-js: '*' + svelte: '*' + vue: '*' peerDependenciesMeta: + '@lynx-js/react': + optional: true + '@sveltejs/kit': + optional: true + next: + optional: true react: optional: true react-dom: optional: true + solid-js: + optional: true + svelte: + optional: true + vue: + optional: true better-call@1.0.19: resolution: {integrity: sha512-sI3GcA1SCVa3H+CDHl8W8qzhlrckwXOTKhqq3OOPXjgn5aTOMIqGY34zLY/pHA6tRRMjTUC3lz5Mi7EbDA24Kw==} + better-sqlite3@12.4.1: + resolution: {integrity: sha512-3yVdyZhklTiNrtg+4WqHpJpFDd+WHTg2oM7UcR80GqL05AOV0xEJzc6qNvFYoEtE+hRp1n9MpN6/+4yhlGkDXQ==} + engines: {node: 20.x || 22.x || 23.x || 24.x} + bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} @@ -6073,6 +6106,9 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -6867,6 +6903,10 @@ packages: decode-named-character-reference@1.2.0: resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + decompress-response@7.0.0: resolution: {integrity: sha512-6IvPrADQyyPGLpMnUh6kfKiqy7SrbXbjoUuZ90WMBJKErzv2pCiwlGEXjRX9/54OnTq+XFVnkOnOMzclLI5aEA==} engines: {node: '>=10'} @@ -7301,6 +7341,10 @@ packages: exif-component@1.0.1: resolution: {integrity: sha512-FXnmK9yJYTa3V3G7DE9BRjUJ0pwXMICAxfbsAuKPTuSlFzMZhQbcvvwx0I8ofNJHxz3tfjze+whxcGpfklAWOQ==} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + expect-type@1.2.2: resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} engines: {node: '>=12.0.0'} @@ -7645,6 +7689,9 @@ packages: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -8241,6 +8288,9 @@ packages: jose@5.10.0: resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} + jose@6.1.0: + resolution: {integrity: sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA==} + jotai@2.15.0: resolution: {integrity: sha512-nbp/6jN2Ftxgw0VwoVnOg0m5qYM1rVcfvij+MZx99Z5IK13eGve9FJoCwGv+17JvVthTjhSmNtT5e1coJnr6aw==} engines: {node: '>=12.20.0'} @@ -9058,9 +9108,12 @@ packages: engines: {node: ^18 || >=20} hasBin: true - nanostores@0.11.4: - resolution: {integrity: sha512-k1oiVNN4hDK8NcNERSZLQiMfRzEGtfnvZvdBvey3SQbgn8Dcrk0h1I6vpxApjb10PFUflZrgJ2WEZyJQ+5v7YQ==} - engines: {node: ^18.0.0 || >=20.0.0} + nanostores@1.0.1: + resolution: {integrity: sha512-kNZ9xnoJYKg/AfxjrVL4SS0fKX++4awQReGqWnwTRHxeHGZ1FJFVgTqr/eMrNQdp0Tz7M7tG/TDaX8QfHDwVCw==} + engines: {node: ^20.0.0 || >=22.0.0} + + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} @@ -9141,6 +9194,10 @@ packages: resolution: {integrity: sha512-WmS3EUGw+vXHlTgiUPi3NzbZNwH6+uGX0QLGgqG+aFSJ5rkX/Ee0nuwHBJfZTfQwwR8lGO819NEIwQ7CGhkdEQ==} deprecated: Use `change-case` + node-abi@3.78.0: + resolution: {integrity: sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ==} + engines: {node: '>=10'} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -9736,6 +9793,11 @@ packages: preact@10.27.1: resolution: {integrity: sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ==} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + hasBin: true + preferred-pm@4.1.1: resolution: {integrity: sha512-rU+ZAv1Ur9jAUZtGPebQVQPzdGhNzaEiQ7VL9+cjsAWPHFYOccNXPNiev1CCDSOg/2j7UujM7ojNhpkuILEVNQ==} engines: {node: '>=18.12'} @@ -10663,6 +10725,12 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-git@3.28.0: resolution: {integrity: sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==} @@ -13527,23 +13595,40 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@better-auth/sso@1.3.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(zod@3.25.46)': + '@better-auth/core@1.3.28(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.0.19)(better-sqlite3@12.4.1)(jose@6.1.0)(kysely@0.28.5)(nanostores@1.0.1)': dependencies: + '@better-auth/utils': 0.3.0 '@better-fetch/fetch': 1.1.18 - better-auth: 1.3.7(patch_hash=322076774c0bb94b44027fc7a21dae2ddaf3bf096b4d73c41b90dbae9c3b667b)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(zod@3.25.46) + better-call: 1.0.19 + better-sqlite3: 12.4.1 + jose: 6.1.0 + kysely: 0.28.5 + nanostores: 1.0.1 + zod: 4.1.12 + + '@better-auth/sso@1.3.28(better-auth@1.3.28(patch_hash=873d9e4b9fb6fef04a396ad1b43fe46ec1e6b6049b9a5efa040fd035de5e6582)(better-sqlite3@12.4.1)(next@15.5.6(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(svelte@5.38.6)(vue@3.5.20(typescript@5.9.3)))': + dependencies: + '@better-fetch/fetch': 1.1.18 + better-auth: 1.3.28(patch_hash=873d9e4b9fb6fef04a396ad1b43fe46ec1e6b6049b9a5efa040fd035de5e6582)(better-sqlite3@12.4.1)(next@15.5.6(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(svelte@5.38.6)(vue@3.5.20(typescript@5.9.3)) fast-xml-parser: 5.2.5 - jose: 5.10.0 + jose: 6.1.0 oauth2-mock-server: 7.2.1 samlify: 2.10.1 - zod: 3.25.46 + zod: 4.1.12 transitivePeerDependencies: - - react - - react-dom - supports-color - '@better-auth/utils@0.2.6': + '@better-auth/telemetry@1.3.28(better-call@1.0.19)(better-sqlite3@12.4.1)(jose@6.1.0)(kysely@0.28.5)(nanostores@1.0.1)': dependencies: - uncrypto: 0.1.3 + '@better-auth/core': 1.3.28(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.0.19)(better-sqlite3@12.4.1)(jose@6.1.0)(kysely@0.28.5)(nanostores@1.0.1) + '@better-auth/utils': 0.3.0 + '@better-fetch/fetch': 1.1.18 + transitivePeerDependencies: + - better-call + - better-sqlite3 + - jose + - kysely + - nanostores '@better-auth/utils@0.3.0': {} @@ -14632,9 +14717,9 @@ snapshots: react: 19.1.1 third-party-capital: 1.0.20 - '@noble/ciphers@0.6.0': {} + '@noble/ciphers@2.0.1': {} - '@noble/hashes@1.8.0': {} + '@noble/hashes@2.0.1': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -18457,23 +18542,30 @@ snapshots: before-after-hook@2.2.3: {} - better-auth@1.3.7(patch_hash=322076774c0bb94b44027fc7a21dae2ddaf3bf096b4d73c41b90dbae9c3b667b)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(zod@3.25.46): + better-auth@1.3.28(patch_hash=873d9e4b9fb6fef04a396ad1b43fe46ec1e6b6049b9a5efa040fd035de5e6582)(better-sqlite3@12.4.1)(next@15.5.6(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(svelte@5.38.6)(vue@3.5.20(typescript@5.9.3)): dependencies: - '@better-auth/utils': 0.2.6 + '@better-auth/core': 1.3.28(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.0.19)(better-sqlite3@12.4.1)(jose@6.1.0)(kysely@0.28.5)(nanostores@1.0.1) + '@better-auth/telemetry': 1.3.28(better-call@1.0.19)(better-sqlite3@12.4.1)(jose@6.1.0)(kysely@0.28.5)(nanostores@1.0.1) + '@better-auth/utils': 0.3.0 '@better-fetch/fetch': 1.1.18 - '@noble/ciphers': 0.6.0 - '@noble/hashes': 1.8.0 + '@noble/ciphers': 2.0.1 + '@noble/hashes': 2.0.1 '@simplewebauthn/browser': 13.1.2 '@simplewebauthn/server': 13.1.2 better-call: 1.0.19 defu: 6.1.4 - jose: 5.10.0 + jose: 6.1.0 kysely: 0.28.5 - nanostores: 0.11.4 - zod: 3.25.46 + nanostores: 1.0.1 + zod: 4.1.12 optionalDependencies: + next: 15.5.6(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) + svelte: 5.38.6 + vue: 3.5.20(typescript@5.9.3) + transitivePeerDependencies: + - better-sqlite3 better-call@1.0.19: dependencies: @@ -18483,6 +18575,11 @@ snapshots: set-cookie-parser: 2.7.1 uncrypto: 0.1.3 + better-sqlite3@12.4.1: + dependencies: + bindings: 1.5.0 + prebuild-install: 7.1.3 + bidi-js@1.0.3: dependencies: require-from-string: 2.0.2 @@ -18491,6 +18588,10 @@ snapshots: binary-extensions@2.3.0: {} + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -19349,6 +19450,10 @@ snapshots: dependencies: character-entities: 2.0.2 + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + decompress-response@7.0.0: dependencies: mimic-response: 3.1.0 @@ -19403,8 +19508,7 @@ snapshots: destroy@1.2.0: {} - detect-libc@2.0.4: - optional: true + detect-libc@2.0.4: {} detect-node-es@1.1.0: {} @@ -19858,6 +19962,8 @@ snapshots: exif-component@1.0.1: {} + expand-template@2.0.3: {} + expect-type@1.2.2: {} express-rate-limit@7.5.1(express@5.1.0): @@ -20291,6 +20397,8 @@ snapshots: transitivePeerDependencies: - supports-color + github-from-package@0.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -21029,6 +21137,8 @@ snapshots: jose@5.10.0: {} + jose@6.1.0: {} + jotai@2.15.0(@babel/core@7.28.4)(@babel/template@7.27.2)(@types/react@19.0.10)(react@19.1.1): optionalDependencies: '@babel/core': 7.28.4 @@ -22145,7 +22255,9 @@ snapshots: nanoid@5.1.6: {} - nanostores@0.11.4: {} + nanostores@1.0.1: {} + + napi-build-utils@2.0.0: {} negotiator@0.6.3: {} @@ -22239,6 +22351,10 @@ snapshots: no-case@4.0.0: {} + node-abi@3.78.0: + dependencies: + semver: 7.7.3 + node-domexception@1.0.0: {} node-fetch@2.7.0(encoding@0.1.13): @@ -22850,6 +22966,21 @@ snapshots: preact@10.27.1: {} + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.0.4 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.78.0 + pump: 3.0.3 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.3 + tunnel-agent: 0.6.0 + preferred-pm@4.1.1: dependencies: find-up-simple: 1.0.1 @@ -24197,6 +24328,14 @@ snapshots: signal-exit@4.1.0: {} + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + simple-git@3.28.0: dependencies: '@kwsites/file-exists': 1.1.1 diff --git a/version.txt b/version.txt index c69fd9fee2..4f3f1706c5 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v2.17.4 +v2.17.5