diff --git a/.changeset/fifty-buses-fix.md b/.changeset/fifty-buses-fix.md
new file mode 100644
index 00000000000..e1557ce1a01
--- /dev/null
+++ b/.changeset/fifty-buses-fix.md
@@ -0,0 +1,6 @@
+---
+'@clerk/tanstack-react-start': minor
+---
+
+- Fixes serialization errors during handshake
+- Bump `@tanstack/react-start` and `@tanstack/react-router` peer dependency to 1.127.0
diff --git a/integration/templates/tanstack-react-router/package.json b/integration/templates/tanstack-react-router/package.json
index 60369c1ed40..6ef9f0472de 100644
--- a/integration/templates/tanstack-react-router/package.json
+++ b/integration/templates/tanstack-react-router/package.json
@@ -9,9 +9,9 @@
"start": "vite"
},
"dependencies": {
- "@tanstack/react-router": "^1.121.27",
- "@tanstack/react-router-devtools": "^1.121.27",
- "@tanstack/router-plugin": "^1.121.27",
+ "@tanstack/react-router": "^1.128.0",
+ "@tanstack/react-router-devtools": "^1.128.0",
+ "@tanstack/router-plugin": "^1.128.0",
"react": "18.3.1",
"react-dom": "18.3.1"
},
diff --git a/integration/templates/tanstack-react-start/package.json b/integration/templates/tanstack-react-start/package.json
index 05959a61083..5089b32ce73 100644
--- a/integration/templates/tanstack-react-start/package.json
+++ b/integration/templates/tanstack-react-start/package.json
@@ -8,9 +8,9 @@
"start": "vite start --port=$PORT"
},
"dependencies": {
- "@tanstack/react-router": "^1.121.27",
- "@tanstack/react-router-devtools": "^1.121.27",
- "@tanstack/react-start": "^1.121.28",
+ "@tanstack/react-router": "^1.128.0",
+ "@tanstack/react-router-devtools": "^1.128.0",
+ "@tanstack/react-start": "^1.128.0",
"react": "18.3.1",
"react-dom": "18.3.1",
"tailwind-merge": "^2.5.4"
diff --git a/integration/templates/tanstack-react-start/src/routes/user.tsx b/integration/templates/tanstack-react-start/src/routes/user.tsx
new file mode 100644
index 00000000000..4fd5f6ccf2c
--- /dev/null
+++ b/integration/templates/tanstack-react-start/src/routes/user.tsx
@@ -0,0 +1,29 @@
+import { createFileRoute, redirect } from '@tanstack/react-router';
+import { createServerFn } from '@tanstack/react-start';
+import { getAuth } from '@clerk/tanstack-react-start/server';
+import { getWebRequest } from '@tanstack/react-start/server';
+
+const fetchClerkAuth = createServerFn({ method: 'GET' }).handler(async () => {
+ const request = getWebRequest();
+ if (!request) throw new Error('No request found');
+
+ const { userId } = await getAuth(request);
+
+ return {
+ userId,
+ };
+});
+
+export const Route = createFileRoute('/')({
+ component: Page,
+ beforeLoad: async () => await fetchClerkAuth(),
+ loader: async ({ context }) => {
+ return { userId: context.userId };
+ },
+});
+
+function Page() {
+ const state = Route.useLoaderData();
+
+ return state.userId ?
Welcome! Your ID is {state.userId}!
: You are not signed in
;
+}
diff --git a/integration/tests/tanstack-start/basic.test.ts b/integration/tests/tanstack-start/basic.test.ts
index 56c0b2f2d6b..4d9c706526c 100644
--- a/integration/tests/tanstack-start/basic.test.ts
+++ b/integration/tests/tanstack-start/basic.test.ts
@@ -1,3 +1,4 @@
+import type { User } from '@clerk/backend';
import { expect, test } from '@playwright/test';
import { appConfigs } from '../../presets';
@@ -16,6 +17,7 @@ testAgainstRunningApps({ withEnv: [appConfigs.envs.withEmailCodes] })(
test.describe.configure({ mode: 'parallel' });
let fakeUser: FakeUser;
+ let bapiUser: User;
test.beforeAll(async () => {
const u = createTestUtils({ app });
@@ -24,7 +26,7 @@ testAgainstRunningApps({ withEnv: [appConfigs.envs.withEmailCodes] })(
withPhoneNumber: true,
withUsername: true,
});
- await u.services.users.createBapiUser(fakeUser);
+ bapiUser = await u.services.users.createBapiUser(fakeUser);
});
test.afterAll(async () => {
@@ -72,6 +74,25 @@ testAgainstRunningApps({ withEnv: [appConfigs.envs.withEmailCodes] })(
expect(clerkInitialState !== undefined).toBeTruthy();
});
+ test('retrieve auth state in server functions', async ({ page, context }) => {
+ const u = createTestUtils({ app, page, context });
+
+ await u.page.goToRelative('/user');
+
+ await expect(u.page.getByText('You are not signed in')).toBeVisible();
+
+ await u.po.signIn.goTo();
+
+ await u.po.signIn.setIdentifier(fakeUser.email);
+ await u.po.signIn.setPassword(fakeUser.password);
+ await u.po.signIn.continue();
+ await u.po.expect.toBeSignedIn();
+
+ await u.page.goToRelative('/user');
+
+ await expect(u.page.getByText(`Welcome! Your ID is ${bapiUser.id}!`)).toBeVisible();
+ });
+
test('clerk handler sets headers', async ({ page, context }) => {
const u = createTestUtils({ app, page, context });
const r = await u.po.signIn.goTo();
diff --git a/packages/tanstack-react-start/package.json b/packages/tanstack-react-start/package.json
index 57b29d299e2..d2b8b4d30af 100644
--- a/packages/tanstack-react-start/package.json
+++ b/packages/tanstack-react-start/package.json
@@ -74,13 +74,13 @@
"tslib": "catalog:repo"
},
"devDependencies": {
- "@tanstack/react-router": "^1.121.41",
- "@tanstack/react-start": "^1.121.41",
+ "@tanstack/react-router": "^1.127.0",
+ "@tanstack/react-start": "^1.127.0",
"esbuild-plugin-file-path-extensions": "^2.1.4"
},
"peerDependencies": {
- "@tanstack/react-router": "^1.121.0",
- "@tanstack/react-start": "^1.121.0",
+ "@tanstack/react-router": "^1.127.0",
+ "@tanstack/react-start": "^1.127.0",
"react": "catalog:peer-react",
"react-dom": "catalog:peer-react"
},
diff --git a/packages/tanstack-react-start/src/server/authenticateRequest.ts b/packages/tanstack-react-start/src/server/authenticateRequest.ts
index 94dd774952b..c393a9cfae8 100644
--- a/packages/tanstack-react-start/src/server/authenticateRequest.ts
+++ b/packages/tanstack-react-start/src/server/authenticateRequest.ts
@@ -4,6 +4,7 @@ import { AuthStatus, constants } from '@clerk/backend/internal';
import { handleNetlifyCacheInDevInstance } from '@clerk/shared/netlifyCacheHandler';
import { errorThrower } from '../utils';
+import { ClerkHandshakeRedirect } from './errors';
import { patchRequest } from './utils';
export async function authenticateRequest(
@@ -41,9 +42,9 @@ export async function authenticateRequest(
requestStateHeaders: requestState.headers,
publishableKey: requestState.publishableKey,
});
+
// triggering a handshake redirect
- // eslint-disable-next-line @typescript-eslint/only-throw-error
- throw new Response(null, { status: 307, headers: requestState.headers });
+ throw new ClerkHandshakeRedirect(307, requestState.headers);
}
if (requestState.status === AuthStatus.Handshake) {
diff --git a/packages/tanstack-react-start/src/server/errors.ts b/packages/tanstack-react-start/src/server/errors.ts
new file mode 100644
index 00000000000..4843add9e8a
--- /dev/null
+++ b/packages/tanstack-react-start/src/server/errors.ts
@@ -0,0 +1,11 @@
+export class ClerkHandshakeRedirect extends Error {
+ constructor(
+ public status: number,
+ public headers: Headers,
+ ) {
+ super('Clerk handshake redirect required');
+ this.name = 'ClerkHandshakeRedirect';
+ this.status = status;
+ this.headers = headers;
+ }
+}
diff --git a/packages/tanstack-react-start/src/server/middlewareHandler.ts b/packages/tanstack-react-start/src/server/middlewareHandler.ts
index 4b313012dbe..34076fb912a 100644
--- a/packages/tanstack-react-start/src/server/middlewareHandler.ts
+++ b/packages/tanstack-react-start/src/server/middlewareHandler.ts
@@ -2,6 +2,7 @@ import type { AnyRouter } from '@tanstack/react-router';
import type { CustomizeStartHandler, HandlerCallback, RequestHandler } from '@tanstack/react-start/server';
import { authenticateRequest } from './authenticateRequest';
+import { ClerkHandshakeRedirect } from './errors';
import { loadOptions } from './loadOptions';
import type { LoaderOptions } from './types';
import { getResponseClerkState } from './utils';
@@ -33,9 +34,12 @@ export function createClerkHandler(
await router.load();
} catch (error) {
- if (error instanceof Response) {
+ if (error instanceof ClerkHandshakeRedirect) {
// returning the response
- return error;
+ return new Response(null, {
+ status: error.status,
+ headers: error.headers,
+ });
}
// rethrowing the error if it is not a Response
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6866779e40c..68f20ea4a20 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -982,11 +982,11 @@ importers:
version: 2.8.1
devDependencies:
'@tanstack/react-router':
- specifier: ^1.121.41
- version: 1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^1.127.0
+ version: 1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@tanstack/react-start':
- specifier: ^1.121.41
- version: 1.123.0(@tanstack/react-router@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))
+ specifier: ^1.127.0
+ version: 1.128.3(@tanstack/react-router@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))
esbuild-plugin-file-path-extensions:
specifier: ^2.1.4
version: 2.1.4
@@ -2897,7 +2897,7 @@ packages:
'@expo/bunyan@4.0.1':
resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==}
- engines: {'0': node >=0.10.0}
+ engines: {node: '>=0.10.0'}
'@expo/cli@0.22.26':
resolution: {integrity: sha512-I689wc8Fn/AX7aUGiwrh3HnssiORMJtR2fpksX+JIe8Cj/EDleblYMSwRPd0025wrwOV9UN1KM/RuEt/QjCS3Q==}
@@ -4714,8 +4714,8 @@ packages:
'@swc/types@0.1.23':
resolution: {integrity: sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==}
- '@tanstack/directive-functions-plugin@1.122.1':
- resolution: {integrity: sha512-njHEXcz0o2vPyPxoAwrT0Imvaup5GrRE2sfYTqtf4Vf8FFeTsKZ7TH/BKh6114UbjSrULCat3r/Gxhhl0eMV1A==}
+ '@tanstack/directive-functions-plugin@1.124.1':
+ resolution: {integrity: sha512-eZdsPCZz+7VIKiXAF5dNdLJBerAo4t79w/OQTWaKuqPLX1E9GQOKHsmTZChWeQbxPx+y+cOV3/0U/yKxtHsm0Q==}
engines: {node: '>=12'}
peerDependencies:
vite: '>=6.0.0'
@@ -4724,36 +4724,36 @@ packages:
resolution: {integrity: sha512-YL8dGi5ZU+xvtav2boRlw4zrRghkY6hvdcmHhA0RGSJ/CBgzv+cbADW9eYJLx74XMZvIQ1pp6VMbrpXnnM5gHA==}
engines: {node: '>=12'}
- '@tanstack/react-router@1.123.0':
- resolution: {integrity: sha512-cYCwqcKzoHG3uBtEO7ynOxwAcSUOpbrPm9aQCbqtI2fD9Q9qvsd6hmYJ2iQ+RPA2eSLRTAoGW5KckVSQYPfqxw==}
+ '@tanstack/react-router@1.128.3':
+ resolution: {integrity: sha512-vOb5KVlyi4KLho4ZVN1ju8YxdJe5IKKNoqwHHN1XCUYKKyQhWVrHU4IBnQDCrrAKRH8o1K/WGaRUvN/1eeQ5dQ==}
engines: {node: '>=12'}
peerDependencies:
react: '>=18.0.0 || >=19.0.0'
react-dom: '>=18.0.0 || >=19.0.0'
- '@tanstack/react-start-client@1.123.0':
- resolution: {integrity: sha512-KtaIIhm+LnbYDuD2QS13XNlhk2WeU/x4/qCdpnLvjJiBNamjJE3Ej0Cn7XfAFL3qbFhhfGpS9/wLZ68JFIaW4A==}
+ '@tanstack/react-start-client@1.128.3':
+ resolution: {integrity: sha512-xFVDm95SCQ9R6qjLJaHrnnZUuciakp96EQCpO9asSiomvmKcDAELyP0T7J40vY+96/sS+q8l1bw0F6MSXE2SVw==}
engines: {node: '>=12'}
peerDependencies:
react: '>=18.0.0 || >=19.0.0'
react-dom: '>=18.0.0 || >=19.0.0'
- '@tanstack/react-start-plugin@1.123.0':
- resolution: {integrity: sha512-rQimGxz5Ms/F0DyKLoeSkaxvr5Wly/3EwX8FJvCp4Cl0xsIUO/XshjFs5sBsACa4zki+BI7Rty1+6cMbCERrig==}
+ '@tanstack/react-start-plugin@1.128.3':
+ resolution: {integrity: sha512-IsRfANTXqgIlG1kWr6wRdDrTeIk2VDHKMmpM25WGrbPxPPeFfz7r+7HSQ/SRiXLckyOAlXwJBg06CN/fBXKd7Q==}
engines: {node: '>=12'}
peerDependencies:
'@vitejs/plugin-react': '>=4.3.4'
vite: '>=6.0.0'
- '@tanstack/react-start-server@1.123.0':
- resolution: {integrity: sha512-RcQvIat0hkKX/ynzXo7/uGjw+7FRWuUwf9Vmd4K5QDwzpdsTTYlaXDz7JIxPpkN7IyiJBHaJaeo4cVU3Nul6PQ==}
+ '@tanstack/react-start-server@1.128.3':
+ resolution: {integrity: sha512-2Hgy8UUxIP2YkR4ZuKvUlih1u9QSRomKgOA4Q+I0TjHOdtpedin3f2xCB0Xc7SBivFWEBPAO9Q4HcijTZ0T0/w==}
engines: {node: '>=12'}
peerDependencies:
react: '>=18.0.0 || >=19.0.0'
react-dom: '>=18.0.0 || >=19.0.0'
- '@tanstack/react-start@1.123.0':
- resolution: {integrity: sha512-zz112N6WQQg33P6D8JpcIsQ7J1CdSy9zQqO/ZkYOMDuEeL3YJMuxy/5Q/dQP55SLNYD+Ymceyr/nx8iQ9NtZvQ==}
+ '@tanstack/react-start@1.128.3':
+ resolution: {integrity: sha512-EwDvMH3vcCSN/mDSu+gA+wUONwfDcAbO2QXD2vb5Pm1/ezBS84c9VK/VD9OvEnPNxGfpEVZTqFAcavAev69GRQ==}
engines: {node: '>=12'}
peerDependencies:
'@vitejs/plugin-react': '>=4.3.4'
@@ -4767,20 +4767,20 @@ packages:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- '@tanstack/router-core@1.123.0':
- resolution: {integrity: sha512-trp4swyaNZaHf5SLutVLcsBJvAtfainr95QIV6OVJy7/3LZgiJLELOAF1eSg5hCkV3PnmSgFcsonYIkF7Dw7xg==}
+ '@tanstack/router-core@1.128.3':
+ resolution: {integrity: sha512-/CiGzGeBrR91+JgiKdAYskY9W1ZINVey1uqEZLvmJEKjemmOaNN4KI+9mGa43/yJ3ED/Q937hFjo39UAj4EBPQ==}
engines: {node: '>=12'}
- '@tanstack/router-generator@1.123.0':
- resolution: {integrity: sha512-F9Rl1qKoe7UmYkYTQQsYnlcYFtEHB2zG5jhk5rBdRk6Y8HalzdvhVTUHZmAQdJhKGi7deRlIYh3PQJLiTC0qYQ==}
+ '@tanstack/router-generator@1.128.3':
+ resolution: {integrity: sha512-vV5aVzA/fC23fOVoJlD7vKr52Nc+FK7TkKRUq7OeiY8B0kAmFM3c/PzhhObxIP5B+Fp6K01vkBTpvtQYBRoadQ==}
engines: {node: '>=12'}
- '@tanstack/router-plugin@1.123.0':
- resolution: {integrity: sha512-+H4jtDReTbAkxFec8TeJ8sljzUCkUNUt2tNGIa0qYvlv765cFH/n1oi+swEI7olgGjdKNTx7i5J1XvG+vCXVOw==}
+ '@tanstack/router-plugin@1.128.3':
+ resolution: {integrity: sha512-oFn3yDSe5SCuY2ZZ0yFYVzcLWNSB14gB35YAPFCZdWTmBWQOaB1ICPR8xGdR9sUHRx0rABG5JBR+1kjOOMf3YQ==}
engines: {node: '>=12'}
peerDependencies:
'@rsbuild/core': '>=1.0.2'
- '@tanstack/react-router': ^1.123.0
+ '@tanstack/react-router': ^1.128.3
vite: '>=5.0.0 || >=6.0.0'
vite-plugin-solid: ^2.11.2
webpack: '>=5.92.0'
@@ -4800,34 +4800,34 @@ packages:
resolution: {integrity: sha512-u7ubq1xPBtNiU7Fm+EOWlVWdgFLzuKOa1thhqdscVn8R4dNMUd1VoOjZ6AKmLw201VaUhFtlX+u0pjzI6szX7A==}
engines: {node: '>=12'}
- '@tanstack/server-functions-plugin@1.122.1':
- resolution: {integrity: sha512-S/oGwASZX6TQsPVcRKvxGhq7A4mrmt+Vx5FCBb7eBP00gwuE3wWIFqnsq+HMX1QuS5eCEXwBac80FCkUoMv7Lg==}
+ '@tanstack/server-functions-plugin@1.124.1':
+ resolution: {integrity: sha512-9GIu+PXu5itj+Q74FJQpd4WV3FikzkAAxvBl9hrnmiEwz+AGDZL0GOiGy++MdupHJXuHXXss9mHqKtNmw9wMdw==}
engines: {node: '>=12'}
- '@tanstack/start-client-core@1.123.0':
- resolution: {integrity: sha512-D5h/JXK4bHtKN3uM3MEpqTSQgbZSxL3hVrwSG08jw1ipPplMAIgqZDmy3rjaUm3mxTqdcFwqCkZYZgj0zX4Fjw==}
+ '@tanstack/start-client-core@1.128.3':
+ resolution: {integrity: sha512-hX5iPIyINId7g5wlii4x95lEzmFHRNkaAAWER/uF+WWRAtMTn/ASEpYxyqyZh7KSwNLwea+RTWHzfOmgmPfy5Q==}
engines: {node: '>=12'}
- '@tanstack/start-plugin-core@1.123.0':
- resolution: {integrity: sha512-Zb5egw/asaCVsrml64wh1ZmA+wGT07m5z53nNTRKRGnlRRqAE3IuJDJUp3h6slEaDP3KERM4h/ixKM7d/D/BrA==}
+ '@tanstack/start-plugin-core@1.128.3':
+ resolution: {integrity: sha512-k4XD2zvMb3epbxNsKL2ojd7YoweHRWrY03BIWPzbmUfYvgyAiq36vmqszMxdEXL9Yq2dG9hMmfGJ1G3hjJIzQw==}
engines: {node: '>=12'}
peerDependencies:
vite: '>=6.0.0'
- '@tanstack/start-server-core@1.123.0':
- resolution: {integrity: sha512-uIeFb8AJmYzc1qJcFBHHDBdX8RmYT3RE09xKZ7GXN5aJv3bVZwPDxw14JYp64PgbL4kJ5gHu7LuxeHZ31FQmCw==}
+ '@tanstack/start-server-core@1.128.3':
+ resolution: {integrity: sha512-IYjHm5hkB+TdwrAD20suuiLiPXJtl1K6KLubTkE8H2B4yltHz9cy3Wh28xScU2QSQOQFC046oXnhUJUfuNzpeg==}
engines: {node: '>=12'}
- '@tanstack/start-server-functions-client@1.123.0':
- resolution: {integrity: sha512-MDUvzgIdzhMfI838Ye6l29mcjXOVpycmCxnoUgBIGRCBf7JGD1zGfVKImR7iD07Iyvv5InpVwXH9TFfP/u2qKw==}
+ '@tanstack/start-server-functions-client@1.128.3':
+ resolution: {integrity: sha512-GLhPzJjn0ZdkI9kTaLyQm9O7zGBu3yeOydpqUHnnGBjkUSCVp99Z3pW0Oq2m6FyS9G98fzN0dTjha3gUC3ALcg==}
engines: {node: '>=12'}
- '@tanstack/start-server-functions-fetcher@1.123.0':
- resolution: {integrity: sha512-tDakWi67VpTxVDoCiMBKlvw5n87Nd0GKGbMK6I/5j0Bc+x3D9m0qUAX3oHeD7AunD/1BcoQ2Yp0bYWOn5kZy9Q==}
+ '@tanstack/start-server-functions-fetcher@1.128.3':
+ resolution: {integrity: sha512-18aFsMt7CVGx3/5Dn2s31b6Tn0A4wYWtWmAEkwMBHNU8hbwl0dbWYtitOxZkU7+0oBjBIgzi75qabEZbbc5gBw==}
engines: {node: '>=12'}
- '@tanstack/start-server-functions-server@1.122.1':
- resolution: {integrity: sha512-snQWbH7y5QMoMGcJc0w77GFlnKaStYSTBUqF3lf2r316tGUCbm31yCD1jcEyxJTyTtNvcXMcjgd+ag/ZjfISpA==}
+ '@tanstack/start-server-functions-server@1.127.4':
+ resolution: {integrity: sha512-e0KzPtot+Hedp243+Shly6tzgxRIBhVQG6u1IMYCsvLyLF5Z6mPzL/6BV9MUp6XiYUPpyMv3nYiM2BjLfAbagg==}
engines: {node: '>=12'}
'@tanstack/store@0.7.0':
@@ -12735,6 +12735,16 @@ packages:
serialize-javascript@6.0.2:
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+ seroval-plugins@1.3.2:
+ resolution: {integrity: sha512-0QvCV2lM3aj/U3YozDiVwx9zpH0q8A60CTWIv4Jszj/givcudPb48B+rkU5D51NJ0pTpweGMttHjboPa9/zoIQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ seroval: ^1.0
+
+ seroval@1.3.2:
+ resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==}
+ engines: {node: '>=10'}
+
serve-index@1.9.1:
resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
engines: {node: '>= 0.8.0'}
@@ -19468,7 +19478,7 @@ snapshots:
dependencies:
'@swc/counter': 0.1.3
- '@tanstack/directive-functions-plugin@1.122.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))':
+ '@tanstack/directive-functions-plugin@1.124.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))':
dependencies:
'@babel/code-frame': 7.27.1
'@babel/core': 7.27.7
@@ -19483,33 +19493,31 @@ snapshots:
'@tanstack/history@1.121.34': {}
- '@tanstack/react-router@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@tanstack/react-router@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@tanstack/history': 1.121.34
'@tanstack/react-store': 0.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@tanstack/router-core': 1.123.0
+ '@tanstack/router-core': 1.128.3
isbot: 5.1.23
- jsesc: 3.1.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
- '@tanstack/react-start-client@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@tanstack/react-start-client@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@tanstack/react-router': 1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@tanstack/router-core': 1.123.0
- '@tanstack/start-client-core': 1.123.0
+ '@tanstack/react-router': 1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@tanstack/router-core': 1.128.3
+ '@tanstack/start-client-core': 1.128.3
cookie-es: 1.2.2
- jsesc: 3.1.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
- '@tanstack/react-start-plugin@1.123.0(@tanstack/react-router@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))':
+ '@tanstack/react-start-plugin@1.128.3(@tanstack/react-router@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))':
dependencies:
- '@tanstack/start-plugin-core': 1.123.0(@tanstack/react-router@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))
+ '@tanstack/start-plugin-core': 1.128.3(@tanstack/react-router@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))
'@vitejs/plugin-react': 4.5.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)
zod: 3.24.2
@@ -19545,25 +19553,25 @@ snapshots:
- webpack
- xml2js
- '@tanstack/react-start-server@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@tanstack/react-start-server@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@tanstack/history': 1.121.34
- '@tanstack/react-router': 1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@tanstack/router-core': 1.123.0
- '@tanstack/start-client-core': 1.123.0
- '@tanstack/start-server-core': 1.123.0
+ '@tanstack/react-router': 1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@tanstack/router-core': 1.128.3
+ '@tanstack/start-client-core': 1.128.3
+ '@tanstack/start-server-core': 1.128.3
h3: 1.13.0
isbot: 5.1.23
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@tanstack/react-start@1.123.0(@tanstack/react-router@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))':
+ '@tanstack/react-start@1.128.3(@tanstack/react-router@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))':
dependencies:
- '@tanstack/react-start-client': 1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@tanstack/react-start-plugin': 1.123.0(@tanstack/react-router@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))
- '@tanstack/react-start-server': 1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@tanstack/start-server-functions-client': 1.123.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
- '@tanstack/start-server-functions-server': 1.122.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
+ '@tanstack/react-start-client': 1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@tanstack/react-start-plugin': 1.128.3(@tanstack/react-router@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))
+ '@tanstack/react-start-server': 1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@tanstack/start-server-functions-client': 1.128.3(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
+ '@tanstack/start-server-functions-server': 1.127.4(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
'@vitejs/plugin-react': 4.5.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -19607,18 +19615,19 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
use-sync-external-store: 1.4.0(react@18.3.1)
- '@tanstack/router-core@1.123.0':
+ '@tanstack/router-core@1.128.3':
dependencies:
'@tanstack/history': 1.121.34
'@tanstack/store': 0.7.0
cookie-es: 1.2.2
- jsesc: 3.1.0
+ seroval: 1.3.2
+ seroval-plugins: 1.3.2(seroval@1.3.2)
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
- '@tanstack/router-generator@1.123.0':
+ '@tanstack/router-generator@1.128.3':
dependencies:
- '@tanstack/router-core': 1.123.0
+ '@tanstack/router-core': 1.128.3
'@tanstack/router-utils': 1.121.21
'@tanstack/virtual-file-routes': 1.121.21
prettier: 3.5.3
@@ -19629,7 +19638,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@tanstack/router-plugin@1.123.0(@tanstack/react-router@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))':
+ '@tanstack/router-plugin@1.128.3(@tanstack/react-router@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))':
dependencies:
'@babel/core': 7.27.7
'@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7)
@@ -19637,8 +19646,8 @@ snapshots:
'@babel/template': 7.27.2
'@babel/traverse': 7.28.0
'@babel/types': 7.28.0
- '@tanstack/router-core': 1.123.0
- '@tanstack/router-generator': 1.123.0
+ '@tanstack/router-core': 1.128.3
+ '@tanstack/router-generator': 1.128.3
'@tanstack/router-utils': 1.121.21
'@tanstack/virtual-file-routes': 1.121.21
babel-dead-code-elimination: 1.0.10
@@ -19646,7 +19655,7 @@ snapshots:
unplugin: 2.3.5
zod: 3.24.2
optionalDependencies:
- '@tanstack/react-router': 1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@tanstack/react-router': 1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)
webpack: 5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0)
transitivePeerDependencies:
@@ -19663,7 +19672,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@tanstack/server-functions-plugin@1.122.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))':
+ '@tanstack/server-functions-plugin@1.124.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))':
dependencies:
'@babel/code-frame': 7.27.1
'@babel/core': 7.27.7
@@ -19672,31 +19681,31 @@ snapshots:
'@babel/template': 7.27.2
'@babel/traverse': 7.28.0
'@babel/types': 7.28.0
- '@tanstack/directive-functions-plugin': 1.122.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
+ '@tanstack/directive-functions-plugin': 1.124.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
babel-dead-code-elimination: 1.0.10
tiny-invariant: 1.3.3
transitivePeerDependencies:
- supports-color
- vite
- '@tanstack/start-client-core@1.123.0':
+ '@tanstack/start-client-core@1.128.3':
dependencies:
- '@tanstack/router-core': 1.123.0
+ '@tanstack/router-core': 1.128.3
cookie-es: 1.2.2
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
- '@tanstack/start-plugin-core@1.123.0(@tanstack/react-router@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))':
+ '@tanstack/start-plugin-core@1.128.3(@tanstack/react-router@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))':
dependencies:
'@babel/code-frame': 7.26.2
'@babel/core': 7.27.7
'@babel/types': 7.28.0
- '@tanstack/router-core': 1.123.0
- '@tanstack/router-generator': 1.123.0
- '@tanstack/router-plugin': 1.123.0(@tanstack/react-router@1.123.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))
+ '@tanstack/router-core': 1.128.3
+ '@tanstack/router-generator': 1.128.3
+ '@tanstack/router-plugin': 1.128.3(@tanstack/react-router@1.128.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(webpack@5.94.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.0))
'@tanstack/router-utils': 1.121.21
- '@tanstack/server-functions-plugin': 1.122.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
- '@tanstack/start-server-core': 1.123.0
+ '@tanstack/server-functions-plugin': 1.124.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
+ '@tanstack/start-server-core': 1.128.3
'@types/babel__code-frame': 7.0.6
'@types/babel__core': 7.20.5
babel-dead-code-elimination: 1.0.10
@@ -19740,34 +19749,33 @@ snapshots:
- webpack
- xml2js
- '@tanstack/start-server-core@1.123.0':
+ '@tanstack/start-server-core@1.128.3':
dependencies:
'@tanstack/history': 1.121.34
- '@tanstack/router-core': 1.123.0
- '@tanstack/start-client-core': 1.123.0
+ '@tanstack/router-core': 1.128.3
+ '@tanstack/start-client-core': 1.128.3
h3: 1.13.0
isbot: 5.1.23
- jsesc: 3.1.0
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
unctx: 2.4.1
- '@tanstack/start-server-functions-client@1.123.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))':
+ '@tanstack/start-server-functions-client@1.128.3(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))':
dependencies:
- '@tanstack/server-functions-plugin': 1.122.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
- '@tanstack/start-server-functions-fetcher': 1.123.0
+ '@tanstack/server-functions-plugin': 1.124.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
+ '@tanstack/start-server-functions-fetcher': 1.128.3
transitivePeerDependencies:
- supports-color
- vite
- '@tanstack/start-server-functions-fetcher@1.123.0':
+ '@tanstack/start-server-functions-fetcher@1.128.3':
dependencies:
- '@tanstack/router-core': 1.123.0
- '@tanstack/start-client-core': 1.123.0
+ '@tanstack/router-core': 1.128.3
+ '@tanstack/start-client-core': 1.128.3
- '@tanstack/start-server-functions-server@1.122.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))':
+ '@tanstack/start-server-functions-server@1.127.4(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))':
dependencies:
- '@tanstack/server-functions-plugin': 1.122.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
+ '@tanstack/server-functions-plugin': 1.124.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.27.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))
tiny-invariant: 1.3.3
transitivePeerDependencies:
- supports-color
@@ -29669,6 +29677,12 @@ snapshots:
dependencies:
randombytes: 2.1.0
+ seroval-plugins@1.3.2(seroval@1.3.2):
+ dependencies:
+ seroval: 1.3.2
+
+ seroval@1.3.2: {}
+
serve-index@1.9.1:
dependencies:
accepts: 1.3.8