diff --git a/e2e/react-start/basic-react-query/package.json b/e2e/react-start/basic-react-query/package.json
index 804d9e261b2..10af95fc4a0 100644
--- a/e2e/react-start/basic-react-query/package.json
+++ b/e2e/react-start/basic-react-query/package.json
@@ -32,7 +32,7 @@
"@vitejs/plugin-react": "^4.3.4",
"autoprefixer": "^10.4.20",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite-tsconfig-paths": "^5.1.4"
diff --git a/e2e/react-start/basic-tsr-config/package.json b/e2e/react-start/basic-tsr-config/package.json
index 8b44f2e8aa4..cbecfb27f8b 100644
--- a/e2e/react-start/basic-tsr-config/package.json
+++ b/e2e/react-start/basic-tsr-config/package.json
@@ -22,7 +22,7 @@
"@types/node": "^22.10.2",
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"typescript": "^5.7.2"
}
}
diff --git a/e2e/react-start/basic/package.json b/e2e/react-start/basic/package.json
index df7f459ed26..7af52776272 100644
--- a/e2e/react-start/basic/package.json
+++ b/e2e/react-start/basic/package.json
@@ -35,7 +35,7 @@
"autoprefixer": "^10.4.20",
"combinate": "^1.1.11",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite": "^7.1.7",
diff --git a/e2e/react-start/custom-basepath/package.json b/e2e/react-start/custom-basepath/package.json
index c360992d953..70e82bee050 100644
--- a/e2e/react-start/custom-basepath/package.json
+++ b/e2e/react-start/custom-basepath/package.json
@@ -29,7 +29,7 @@
"autoprefixer": "^10.4.20",
"cross-env": "^10.0.0",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"tsx": "^4.20.3",
"typescript": "^5.7.2",
diff --git a/e2e/react-start/scroll-restoration/package.json b/e2e/react-start/scroll-restoration/package.json
index d5e08af19f9..28c8be9661e 100644
--- a/e2e/react-start/scroll-restoration/package.json
+++ b/e2e/react-start/scroll-restoration/package.json
@@ -32,7 +32,7 @@
"autoprefixer": "^10.4.20",
"combinate": "^1.1.11",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite-tsconfig-paths": "^5.1.4"
diff --git a/e2e/react-start/selective-ssr/package.json b/e2e/react-start/selective-ssr/package.json
index dd908a12463..6b5b4f0840c 100644
--- a/e2e/react-start/selective-ssr/package.json
+++ b/e2e/react-start/selective-ssr/package.json
@@ -27,7 +27,7 @@
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2"
}
diff --git a/e2e/react-start/serialization-adapters/package.json b/e2e/react-start/serialization-adapters/package.json
index 897ca774b8d..a9ac7943074 100644
--- a/e2e/react-start/serialization-adapters/package.json
+++ b/e2e/react-start/serialization-adapters/package.json
@@ -27,7 +27,7 @@
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2"
}
diff --git a/e2e/react-start/server-functions/package.json b/e2e/react-start/server-functions/package.json
index e3453f32bf8..8bb866d7cd9 100644
--- a/e2e/react-start/server-functions/package.json
+++ b/e2e/react-start/server-functions/package.json
@@ -33,7 +33,7 @@
"autoprefixer": "^10.4.20",
"combinate": "^1.1.11",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite-tsconfig-paths": "^5.1.4"
diff --git a/e2e/react-start/server-functions/src/routes/abort-signal.tsx b/e2e/react-start/server-functions/src/routes/abort-signal.tsx
index 7de90f3143a..b46a8c0b7bf 100644
--- a/e2e/react-start/server-functions/src/routes/abort-signal.tsx
+++ b/e2e/react-start/server-functions/src/routes/abort-signal.tsx
@@ -1,33 +1,51 @@
import { createFileRoute } from '@tanstack/react-router'
-import { createServerFn } from '@tanstack/react-start'
+import { createServerFn, createServerOnlyFn } from '@tanstack/react-start'
+import { getRequest } from '@tanstack/react-start/server'
import React from 'react'
export const Route = createFileRoute('/abort-signal')({
- component: RouteComponent,
+ component: () => {
+ return (
+
+
+
+
+
+ )
+ },
})
-const abortableServerFn = createServerFn().handler(
- async ({ context, signal }) => {
- console.log('server function started', { context, signal })
- return new Promise((resolve, reject) => {
- if (signal.aborted) {
- return reject(new Error('Aborted before start'))
- }
- const timerId = setTimeout(() => {
- console.log('server function finished')
- resolve('server function result')
- }, 1000)
- const onAbort = () => {
- clearTimeout(timerId)
- console.log('server function aborted')
- reject(new Error('Aborted'))
- }
- signal.addEventListener('abort', onAbort, { once: true })
- })
- },
-)
+const fn = createServerOnlyFn(async () => {
+ const request = getRequest()
+ const signal = request.signal
+ console.log('server function started', { signal })
+ return new Promise((resolve, reject) => {
+ if (signal.aborted) {
+ return reject(new Error('Aborted before start'))
+ }
+ const timerId = setTimeout(() => {
+ console.log('server function finished')
+ resolve('server function result')
+ }, 1000)
+ const onAbort = () => {
+ clearTimeout(timerId)
+ console.log('server function aborted')
+ reject(new Error('Aborted'))
+ }
+ signal.addEventListener('abort', onAbort, { once: true })
+ })
+})
+
+const abortableServerFnPost = createServerFn({ method: 'POST' }).handler(fn)
-function RouteComponent() {
+const abortableServerFnGet = createServerFn({ method: 'GET' }).handler(fn)
+function Test({
+ method,
+ fn,
+}: {
+ method: string
+ fn: typeof abortableServerFnPost | typeof abortableServerFnGet
+}) {
const [errorMessage, setErrorMessage] = React.useState(
undefined,
)
@@ -39,12 +57,13 @@ function RouteComponent() {
}
return (
+
Test {method}
- result:
{result ?? '$undefined'}
+ result:
{result ?? '$undefined'}
message:{' '}
-
{errorMessage ?? '$undefined'}
+
+ {errorMessage ?? '$undefined'}
+
)
diff --git a/e2e/react-start/server-functions/tests/server-functions.spec.ts b/e2e/react-start/server-functions/tests/server-functions.spec.ts
index 08f48524cb8..ebb763427cb 100644
--- a/e2e/react-start/server-functions/tests/server-functions.spec.ts
+++ b/e2e/react-start/server-functions/tests/server-functions.spec.ts
@@ -270,46 +270,52 @@ test.describe('server function sets cookies', () => {
})
test.describe('aborting a server function call', () => {
- test('without aborting', async ({ page }) => {
- await page.goto('/abort-signal')
+ ;['get', 'post'].forEach((method) => {
+ test(`without aborting ${method}`, async ({ page }) => {
+ await page.goto('/abort-signal')
- await page.waitForLoadState('networkidle')
+ await page.waitForLoadState('networkidle')
- await page.getByTestId('run-without-abort-btn').click()
- await page.waitForLoadState('networkidle')
- await page.waitForSelector(
- '[data-testid="result"]:has-text("server function result")',
- )
- await page.waitForSelector(
- '[data-testid="errorMessage"]:has-text("$undefined")',
- )
+ await page.getByTestId(`run-without-abort-btn-${method}`).click()
+ await page.waitForLoadState('networkidle')
+ await page.waitForSelector(
+ `[data-testid="result-${method}"]:has-text("server function result")`,
+ )
+ await page.waitForSelector(
+ `[data-testid="errorMessage-${method}"]:has-text("$undefined")`,
+ )
- const result = (await page.getByTestId('result').textContent()) || ''
- expect(result).toBe('server function result')
+ const result =
+ (await page.getByTestId(`result-${method}`).textContent()) || ''
+ expect(result).toBe('server function result')
- const errorMessage =
- (await page.getByTestId('errorMessage').textContent()) || ''
- expect(errorMessage).toBe('$undefined')
- })
+ const errorMessage =
+ (await page.getByTestId(`errorMessage-${method}`).textContent()) || ''
+ expect(errorMessage).toBe('$undefined')
+ })
- test('aborting', async ({ page }) => {
- await page.goto('/abort-signal')
+ test(`aborting ${method}`, async ({ page }) => {
+ await page.goto('/abort-signal')
- await page.waitForLoadState('networkidle')
+ await page.waitForLoadState('networkidle')
- await page.getByTestId('run-with-abort-btn').click()
- await page.waitForLoadState('networkidle')
- await page.waitForSelector('[data-testid="result"]:has-text("$undefined")')
- await page.waitForSelector(
- '[data-testid="errorMessage"]:has-text("aborted")',
- )
+ await page.getByTestId(`run-with-abort-btn-${method}`).click()
+ await page.waitForLoadState('networkidle')
+ await page.waitForSelector(
+ `[data-testid="result-${method}"]:has-text("$undefined")`,
+ )
+ await page.waitForSelector(
+ `[data-testid="errorMessage-${method}"]:has-text("aborted")`,
+ )
- const result = (await page.getByTestId('result').textContent()) || ''
- expect(result).toBe('$undefined')
+ const result =
+ (await page.getByTestId(`result-${method}`).textContent()) || ''
+ expect(result).toBe('$undefined')
- const errorMessage =
- (await page.getByTestId('errorMessage').textContent()) || ''
- expect(errorMessage).toContain('abort')
+ const errorMessage =
+ (await page.getByTestId(`errorMessage-${method}`).textContent()) || ''
+ expect(errorMessage).toContain('abort')
+ })
})
})
diff --git a/e2e/react-start/server-routes/package.json b/e2e/react-start/server-routes/package.json
index f639e907a43..d169564e26e 100644
--- a/e2e/react-start/server-routes/package.json
+++ b/e2e/react-start/server-routes/package.json
@@ -33,7 +33,7 @@
"autoprefixer": "^10.4.20",
"combinate": "^1.1.11",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite-tsconfig-paths": "^5.1.4"
diff --git a/e2e/react-start/virtual-routes/package.json b/e2e/react-start/virtual-routes/package.json
index a9ef66b88c3..55a2cead917 100644
--- a/e2e/react-start/virtual-routes/package.json
+++ b/e2e/react-start/virtual-routes/package.json
@@ -32,7 +32,7 @@
"autoprefixer": "^10.4.20",
"combinate": "^1.1.11",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite-tsconfig-paths": "^5.1.4"
diff --git a/e2e/react-start/website/package.json b/e2e/react-start/website/package.json
index c431fbcb8f9..8c910ddcea7 100644
--- a/e2e/react-start/website/package.json
+++ b/e2e/react-start/website/package.json
@@ -29,7 +29,7 @@
"@vitejs/plugin-react": "^4.3.4",
"autoprefixer": "^10.4.20",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite": "^7.1.7",
diff --git a/e2e/solid-start/basic-tsr-config/package.json b/e2e/solid-start/basic-tsr-config/package.json
index 4edc7c69639..3441164ca78 100644
--- a/e2e/solid-start/basic-tsr-config/package.json
+++ b/e2e/solid-start/basic-tsr-config/package.json
@@ -20,7 +20,7 @@
"devDependencies": {
"@tanstack/router-e2e-utils": "workspace:^",
"@types/node": "^22.10.2",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"typescript": "^5.7.2",
"vite-plugin-solid": "^2.11.8",
"vite-tsconfig-paths": "^5.1.4"
diff --git a/e2e/solid-start/basic/package.json b/e2e/solid-start/basic/package.json
index 5d81c201165..4cde559f337 100644
--- a/e2e/solid-start/basic/package.json
+++ b/e2e/solid-start/basic/package.json
@@ -33,7 +33,7 @@
"autoprefixer": "^10.4.20",
"combinate": "^1.1.11",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite-plugin-solid": "^2.11.8",
diff --git a/e2e/solid-start/custom-basepath/package.json b/e2e/solid-start/custom-basepath/package.json
index 4b7eba3861e..4ab746d0b20 100644
--- a/e2e/solid-start/custom-basepath/package.json
+++ b/e2e/solid-start/custom-basepath/package.json
@@ -25,7 +25,7 @@
"autoprefixer": "^10.4.20",
"cross-env": "^10.0.0",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"tsx": "^4.20.3",
"typescript": "^5.7.2",
diff --git a/e2e/solid-start/scroll-restoration/package.json b/e2e/solid-start/scroll-restoration/package.json
index e52934718a9..2a9001be5f2 100644
--- a/e2e/solid-start/scroll-restoration/package.json
+++ b/e2e/solid-start/scroll-restoration/package.json
@@ -28,7 +28,7 @@
"autoprefixer": "^10.4.20",
"combinate": "^1.1.11",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite-plugin-solid": "^2.11.8",
diff --git a/e2e/solid-start/selective-ssr/package.json b/e2e/solid-start/selective-ssr/package.json
index b40fb309a75..93aa19bb8b8 100644
--- a/e2e/solid-start/selective-ssr/package.json
+++ b/e2e/solid-start/selective-ssr/package.json
@@ -19,7 +19,7 @@
"devDependencies": {
"@tanstack/router-e2e-utils": "workspace:^",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite": "^7.1.7",
diff --git a/e2e/solid-start/server-functions/package.json b/e2e/solid-start/server-functions/package.json
index e33f61a89cc..23bfbf70b3e 100644
--- a/e2e/solid-start/server-functions/package.json
+++ b/e2e/solid-start/server-functions/package.json
@@ -29,7 +29,7 @@
"autoprefixer": "^10.4.20",
"combinate": "^1.1.11",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite-plugin-solid": "^2.11.8",
diff --git a/e2e/solid-start/server-routes/package.json b/e2e/solid-start/server-routes/package.json
index eb551e7f70c..1e03b0dfcbd 100644
--- a/e2e/solid-start/server-routes/package.json
+++ b/e2e/solid-start/server-routes/package.json
@@ -29,7 +29,7 @@
"autoprefixer": "^10.4.20",
"combinate": "^1.1.11",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite-plugin-solid": "^2.11.8",
diff --git a/e2e/solid-start/website/package.json b/e2e/solid-start/website/package.json
index 3ef34721ff5..8b9420aa113 100644
--- a/e2e/solid-start/website/package.json
+++ b/e2e/solid-start/website/package.json
@@ -26,7 +26,7 @@
"@types/node": "^22.10.2",
"autoprefixer": "^10.4.20",
"postcss": "^8.5.1",
- "srvx": "^0.8.6",
+ "srvx": "^0.8.16",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2",
"vite-plugin-solid": "^2.11.8",
diff --git a/examples/react/start-basic/wrangler.jsonc b/examples/react/start-basic/wrangler.jsonc
new file mode 100644
index 00000000000..52946ad17df
--- /dev/null
+++ b/examples/react/start-basic/wrangler.jsonc
@@ -0,0 +1,44 @@
+/**
+ * For more details on how to configure Wrangler, refer to:
+ * https://developers.cloudflare.com/workers/wrangler/configuration/
+ */
+{
+ "$schema": "node_modules/wrangler/config-schema.json",
+ "name": "start-basic-cloudflare",
+ "compatibility_flags": ["nodejs_compat"],
+ "compatibility_date": "2025-04-04",
+ "main": "./workers/app.ts",
+ "observability": {
+ "enabled": true,
+ },
+ /**
+ * Smart Placement
+ * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement
+ */
+ // "placement": { "mode": "smart" }
+ /**
+ * Bindings
+ * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including
+ * databases, object storage, AI inference, real-time communication and more.
+ * https://developers.cloudflare.com/workers/runtime-apis/bindings/
+ */
+ /**
+ * Environment Variables
+ * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables
+ */
+ // "vars": { "MY_VARIABLE": "production_value" }
+ /**
+ * Note: Use secrets to store sensitive data.
+ * https://developers.cloudflare.com/workers/configuration/secrets/
+ */
+ /**
+ * Static Assets
+ * https://developers.cloudflare.com/workers/static-assets/binding/
+ */
+ // "assets": { "directory": "./public/", "binding": "ASSETS" }
+ /**
+ * Service Bindings (communicate between multiple Workers)
+ * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings
+ */
+ // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }]
+}
diff --git a/packages/start-client-core/src/createServerFn.ts b/packages/start-client-core/src/createServerFn.ts
index bc95a6b5b9a..db2e245ae53 100644
--- a/packages/start-client-core/src/createServerFn.ts
+++ b/packages/start-client-core/src/createServerFn.ts
@@ -129,7 +129,7 @@ export const createServerFn: CreateServerFn = (options, __opts) => {
...extractedFn,
// The extracted function on the server-side calls
// this function
- __executeServer: async (opts: any, signal: AbortSignal) => {
+ __executeServer: async (opts: any) => {
const startContext = getStartContextServerOnly()
const serverContextAfterGlobalMiddlewares =
startContext.contextAfterGlobalMiddlewares
@@ -140,7 +140,6 @@ export const createServerFn: CreateServerFn = (options, __opts) => {
...serverContextAfterGlobalMiddlewares,
...opts.context,
},
- signal,
request: startContext.request,
}
@@ -324,7 +323,6 @@ export interface ServerFnCtx<
method: TMethod
data: Expand>
context: Expand>
- signal: AbortSignal
}
export type CompiledFetcherFn = {
diff --git a/packages/start-client-core/src/tests/createServerFn.test-d.ts b/packages/start-client-core/src/tests/createServerFn.test-d.ts
index 15367e4dbe0..728e7751977 100644
--- a/packages/start-client-core/src/tests/createServerFn.test-d.ts
+++ b/packages/start-client-core/src/tests/createServerFn.test-d.ts
@@ -26,7 +26,6 @@ test('createServerFn without middleware', () => {
method: 'GET'
context: undefined
data: undefined
- signal: AbortSignal
}>()
})
})
@@ -49,7 +48,6 @@ test('createServerFn with validator', () => {
data: {
a: string
}
- signal: AbortSignal
}>()
})
@@ -112,7 +110,6 @@ test('createServerFn with middleware and context', () => {
readonly d: 'd'
}
data: undefined
- signal: AbortSignal
}>()
})
})
@@ -155,7 +152,6 @@ describe('createServerFn with middleware and validator', () => {
readonly outputB: 'outputB'
readonly outputC: 'outputC'
}
- signal: AbortSignal
}>()
return 'some-data' as const
@@ -252,7 +248,6 @@ test('createServerFn where validator is a primitive', () => {
method: 'GET'
context: undefined
data: 'c'
- signal: AbortSignal
}>()
})
})
@@ -265,7 +260,6 @@ test('createServerFn where validator is optional if object is optional', () => {
method: 'GET'
context: undefined
data: 'c' | undefined
- signal: AbortSignal
}>()
})
@@ -287,7 +281,6 @@ test('createServerFn where data is optional if there is no validator', () => {
method: 'GET'
context: undefined
data: undefined
- signal: AbortSignal
}>()
})
@@ -459,7 +452,6 @@ test('incrementally building createServerFn with multiple middleware calls', ()
readonly a: 'a'
}
data: undefined
- signal: AbortSignal
}>()
})
@@ -480,7 +472,6 @@ test('incrementally building createServerFn with multiple middleware calls', ()
readonly b: 'b'
}
data: undefined
- signal: AbortSignal
}>()
})
@@ -502,7 +493,6 @@ test('incrementally building createServerFn with multiple middleware calls', ()
readonly c: 'c'
}
data: undefined
- signal: AbortSignal
}>()
})
})
@@ -535,7 +525,6 @@ test('compose middlewares and server function factories', () => {
readonly b: 'b'
}
data: undefined
- signal: AbortSignal
}>()
})
})
diff --git a/packages/start-plugin-core/package.json b/packages/start-plugin-core/package.json
index fba35a10239..be533c53b56 100644
--- a/packages/start-plugin-core/package.json
+++ b/packages/start-plugin-core/package.json
@@ -26,7 +26,7 @@
],
"scripts": {
"clean": "rimraf ./dist && rimraf ./coverage",
- "clean:snapshots": "rimraf **/*snapshot* --glob",
+ "clean:snapshots": "rimraf **/*snapshots* --glob",
"test": "pnpm test:eslint && pnpm test:types && pnpm test:build && pnpm test:unit",
"test:unit": "vitest",
"test:eslint": "eslint ./src",
@@ -76,7 +76,7 @@
"cheerio": "^1.0.0",
"exsolve": "^1.0.7",
"pathe": "^2.0.3",
- "srvx": "^0.8.2",
+ "srvx": "^0.8.16",
"tinyglobby": "^0.2.15",
"ufo": "^1.5.4",
"vitefu": "^1.1.1",
diff --git a/packages/start-plugin-core/src/create-server-fn-plugin/handleCreateServerFn.ts b/packages/start-plugin-core/src/create-server-fn-plugin/handleCreateServerFn.ts
index 75ebfecdbff..b46bb8416c8 100644
--- a/packages/start-plugin-core/src/create-server-fn-plugin/handleCreateServerFn.ts
+++ b/packages/start-plugin-core/src/create-server-fn-plugin/handleCreateServerFn.ts
@@ -133,7 +133,7 @@ export function handleCreateServerFn(
handlerFnPath.replaceWith(
t.arrowFunctionExpression(
- [t.identifier('opts'), t.identifier('signal')],
+ [t.identifier('opts')],
t.blockStatement(
// Everything in here is server-only, since the client
// will strip out anything in the 'use server' directive.
@@ -141,7 +141,7 @@ export function handleCreateServerFn(
t.returnStatement(
t.callExpression(
t.identifier(`${existingVariableName}.__executeServer`),
- [t.identifier('opts'), t.identifier('signal')],
+ [t.identifier('opts')],
),
),
],
diff --git a/packages/start-plugin-core/tests/createServerFn/createServerFn.test.ts b/packages/start-plugin-core/tests/createServerFn/createServerFn.test.ts
index 325459b694f..2218babf201 100644
--- a/packages/start-plugin-core/tests/createServerFn/createServerFn.test.ts
+++ b/packages/start-plugin-core/tests/createServerFn/createServerFn.test.ts
@@ -75,10 +75,10 @@ describe('createServerFn compiles correctly', async () => {
expect(compiledResultClient!.code).toMatchInlineSnapshot(`
"import { createServerFn } from '@tanstack/react-start';
- const myServerFn = createServerFn().handler((opts, signal) => {
+ const myServerFn = createServerFn().handler(opts => {
"use server";
- return myServerFn.__executeServer(opts, signal);
+ return myServerFn.__executeServer(opts);
});"
`)
@@ -87,10 +87,10 @@ describe('createServerFn compiles correctly', async () => {
const myFunc = () => {
return 'hello from the server';
};
- const myServerFn = createServerFn().handler((opts, signal) => {
+ const myServerFn = createServerFn().handler(opts => {
"use server";
- return myServerFn.__executeServer(opts, signal);
+ return myServerFn.__executeServer(opts);
}, myFunc);"
`)
})
@@ -116,15 +116,15 @@ describe('createServerFn compiles correctly', async () => {
expect(compiledResult!.code).toMatchInlineSnapshot(`
"import { createServerFn } from '@tanstack/react-start';
- export const exportedFn = createServerFn().handler((opts, signal) => {
+ export const exportedFn = createServerFn().handler(opts => {
"use server";
- return exportedFn.__executeServer(opts, signal);
+ return exportedFn.__executeServer(opts);
});
- const nonExportedFn = createServerFn().handler((opts, signal) => {
+ const nonExportedFn = createServerFn().handler(opts => {
"use server";
- return nonExportedFn.__executeServer(opts, signal);
+ return nonExportedFn.__executeServer(opts);
});"
`)
@@ -138,18 +138,18 @@ describe('createServerFn compiles correctly', async () => {
expect(compiledResultServer!.code).toMatchInlineSnapshot(`
"import { createServerFn } from '@tanstack/react-start';
const exportedVar = 'exported';
- export const exportedFn = createServerFn().handler((opts, signal) => {
+ export const exportedFn = createServerFn().handler(opts => {
"use server";
- return exportedFn.__executeServer(opts, signal);
+ return exportedFn.__executeServer(opts);
}, async () => {
return exportedVar;
});
const nonExportedVar = 'non-exported';
- const nonExportedFn = createServerFn().handler((opts, signal) => {
+ const nonExportedFn = createServerFn().handler(opts => {
"use server";
- return nonExportedFn.__executeServer(opts, signal);
+ return nonExportedFn.__executeServer(opts);
}, async () => {
return nonExportedVar;
});"
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnDestructured.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnDestructured.tsx
index c308ef05127..f1f253384f9 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnDestructured.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnDestructured.tsx
@@ -1,50 +1,50 @@
import { createServerFn } from '@tanstack/react-start';
export const withUseServer = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withUseServer.__executeServer(opts, signal);
+ return withUseServer.__executeServer(opts);
});
export const withArrowFunction = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withArrowFunction.__executeServer(opts, signal);
+ return withArrowFunction.__executeServer(opts);
});
export const withArrowFunctionAndFunction = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withArrowFunctionAndFunction.__executeServer(opts, signal);
+ return withArrowFunctionAndFunction.__executeServer(opts);
});
export const withoutUseServer = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withoutUseServer.__executeServer(opts, signal);
+ return withoutUseServer.__executeServer(opts);
});
export const withVariable = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withVariable.__executeServer(opts, signal);
+ return withVariable.__executeServer(opts);
});
export const withZodValidator = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withZodValidator.__executeServer(opts, signal);
+ return withZodValidator.__executeServer(opts);
});
export const withValidatorFn = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withValidatorFn.__executeServer(opts, signal);
+ return withValidatorFn.__executeServer(opts);
});
\ No newline at end of file
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnDestructuredRename.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnDestructuredRename.tsx
index 2419360ce2a..c75c891df9b 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnDestructuredRename.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnDestructuredRename.tsx
@@ -1,29 +1,29 @@
import { createServerFn as serverFn } from '@tanstack/react-start';
export const withUseServer = serverFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withUseServer.__executeServer(opts, signal);
+ return withUseServer.__executeServer(opts);
});
export const withoutUseServer = serverFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withoutUseServer.__executeServer(opts, signal);
+ return withoutUseServer.__executeServer(opts);
});
export const withVariable = serverFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withVariable.__executeServer(opts, signal);
+ return withVariable.__executeServer(opts);
});
export const withZodValidator = serverFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withZodValidator.__executeServer(opts, signal);
+ return withZodValidator.__executeServer(opts);
});
\ No newline at end of file
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnStarImport.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnStarImport.tsx
index b308d505f25..b1dfc504618 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnStarImport.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnStarImport.tsx
@@ -1,29 +1,29 @@
import * as TanStackStart from '@tanstack/react-start';
export const withUseServer = TanStackStart.createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withUseServer.__executeServer(opts, signal);
+ return withUseServer.__executeServer(opts);
});
export const withoutUseServer = TanStackStart.createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withoutUseServer.__executeServer(opts, signal);
+ return withoutUseServer.__executeServer(opts);
});
export const withVariable = TanStackStart.createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withVariable.__executeServer(opts, signal);
+ return withVariable.__executeServer(opts);
});
export const withZodValidator = TanStackStart.createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withZodValidator.__executeServer(opts, signal);
+ return withZodValidator.__executeServer(opts);
});
\ No newline at end of file
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnValidator.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnValidator.tsx
index 5896ad8c1df..53a5152573d 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnValidator.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/client/createServerFnValidator.tsx
@@ -1,8 +1,8 @@
import { createServerFn } from '@tanstack/react-start';
export const withUseServer = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withUseServer.__executeServer(opts, signal);
+ return withUseServer.__executeServer(opts);
});
\ No newline at end of file
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/client/factory.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/client/factory.tsx
index fe95c7e47ee..9d15f341e03 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/client/factory.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/client/factory.tsx
@@ -23,15 +23,15 @@ const adminMiddleware = createMiddleware({
});
export const createAuthServerFn = createServerFn().middleware([authMiddleware]);
const createAdminServerFn = createAuthServerFn().middleware([adminMiddleware]);
-export const myAuthedFn = createAuthServerFn().handler((opts, signal) => {
+export const myAuthedFn = createAuthServerFn().handler(opts => {
"use server";
- return myAuthedFn.__executeServer(opts, signal);
+ return myAuthedFn.__executeServer(opts);
});
-export const deleteUserFn = createAdminServerFn().handler((opts, signal) => {
+export const deleteUserFn = createAdminServerFn().handler(opts => {
"use server";
- return deleteUserFn.__executeServer(opts, signal);
+ return deleteUserFn.__executeServer(opts);
});
function createFakeFn() {
return {
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/client/isomorphic-fns.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/client/isomorphic-fns.tsx
index 1de861275b8..30f005e74ba 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/client/isomorphic-fns.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/client/isomorphic-fns.tsx
@@ -2,16 +2,16 @@ import { createFileRoute } from '@tanstack/react-router';
import { createIsomorphicFn, createServerFn } from '@tanstack/react-start';
import { useState } from 'react';
const getEnv = createIsomorphicFn().server(() => 'server').client(() => 'client');
-const getServerEnv = createServerFn().handler((opts, signal) => {
+const getServerEnv = createServerFn().handler(opts => {
"use server";
- return getServerEnv.__executeServer(opts, signal);
+ return getServerEnv.__executeServer(opts);
});
const getEcho = createIsomorphicFn().server((input: string) => 'server received ' + input).client(input => 'client received ' + input);
-const getServerEcho = createServerFn().handler((opts, signal) => {
+const getServerEcho = createServerFn().handler(opts => {
"use server";
- return getServerEcho.__executeServer(opts, signal);
+ return getServerEcho.__executeServer(opts);
});
export const Route = createFileRoute('/isomorphic-fns')({
component: RouteComponent,
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnDestructured.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnDestructured.tsx
index 0f0c5f651dd..f9209aa7382 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnDestructured.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnDestructured.tsx
@@ -2,10 +2,10 @@ import { createServerFn } from '@tanstack/react-start';
import { z } from 'zod';
export const withUseServer = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withUseServer.__executeServer(opts, signal);
+ return withUseServer.__executeServer(opts);
}, async function () {
console.info('Fetching posts...');
await new Promise(r => setTimeout(r, 500));
@@ -13,24 +13,24 @@ export const withUseServer = createServerFn({
});
export const withArrowFunction = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withArrowFunction.__executeServer(opts, signal);
+ return withArrowFunction.__executeServer(opts);
}, async () => null);
export const withArrowFunctionAndFunction = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withArrowFunctionAndFunction.__executeServer(opts, signal);
+ return withArrowFunctionAndFunction.__executeServer(opts);
}, async () => test());
export const withoutUseServer = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withoutUseServer.__executeServer(opts, signal);
+ return withoutUseServer.__executeServer(opts);
}, async () => {
console.info('Fetching posts...');
await new Promise(r => setTimeout(r, 500));
@@ -38,10 +38,10 @@ export const withoutUseServer = createServerFn({
});
export const withVariable = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withVariable.__executeServer(opts, signal);
+ return withVariable.__executeServer(opts);
}, abstractedFunction);
async function abstractedFunction() {
console.info('Fetching posts...');
@@ -55,10 +55,10 @@ function zodValidator(schema: TSchema, fn:
}
export const withZodValidator = createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withZodValidator.__executeServer(opts, signal);
+ return withZodValidator.__executeServer(opts);
}, zodValidator(z.number(), input => {
return {
'you gave': input
@@ -66,10 +66,10 @@ export const withZodValidator = createServerFn({
}));
export const withValidatorFn = createServerFn({
method: 'GET'
-}).inputValidator(z.number()).handler((opts, signal) => {
+}).inputValidator(z.number()).handler(opts => {
"use server";
- return withValidatorFn.__executeServer(opts, signal);
+ return withValidatorFn.__executeServer(opts);
}, async ({
input
}) => {
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnDestructuredRename.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnDestructuredRename.tsx
index 358c28448d0..9f81860ecc6 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnDestructuredRename.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnDestructuredRename.tsx
@@ -2,10 +2,10 @@ import { createServerFn as serverFn } from '@tanstack/react-start';
import { z } from 'zod';
export const withUseServer = serverFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withUseServer.__executeServer(opts, signal);
+ return withUseServer.__executeServer(opts);
}, async function () {
console.info('Fetching posts...');
await new Promise(r => setTimeout(r, 500));
@@ -13,10 +13,10 @@ export const withUseServer = serverFn({
});
export const withoutUseServer = serverFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withoutUseServer.__executeServer(opts, signal);
+ return withoutUseServer.__executeServer(opts);
}, async () => {
console.info('Fetching posts...');
await new Promise(r => setTimeout(r, 500));
@@ -24,10 +24,10 @@ export const withoutUseServer = serverFn({
});
export const withVariable = serverFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withVariable.__executeServer(opts, signal);
+ return withVariable.__executeServer(opts);
}, abstractedFunction);
async function abstractedFunction() {
console.info('Fetching posts...');
@@ -41,10 +41,10 @@ function zodValidator(schema: TSchema, fn:
}
export const withZodValidator = serverFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withZodValidator.__executeServer(opts, signal);
+ return withZodValidator.__executeServer(opts);
}, zodValidator(z.number(), input => {
return {
'you gave': input
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnStarImport.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnStarImport.tsx
index 44f67330725..9032395518d 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnStarImport.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnStarImport.tsx
@@ -2,10 +2,10 @@ import * as TanStackStart from '@tanstack/react-start';
import { z } from 'zod';
export const withUseServer = TanStackStart.createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withUseServer.__executeServer(opts, signal);
+ return withUseServer.__executeServer(opts);
}, async function () {
'use server';
@@ -15,10 +15,10 @@ export const withUseServer = TanStackStart.createServerFn({
});
export const withoutUseServer = TanStackStart.createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withoutUseServer.__executeServer(opts, signal);
+ return withoutUseServer.__executeServer(opts);
}, async () => {
console.info('Fetching posts...');
await new Promise(r => setTimeout(r, 500));
@@ -26,10 +26,10 @@ export const withoutUseServer = TanStackStart.createServerFn({
});
export const withVariable = TanStackStart.createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withVariable.__executeServer(opts, signal);
+ return withVariable.__executeServer(opts);
}, abstractedFunction);
async function abstractedFunction() {
console.info('Fetching posts...');
@@ -43,10 +43,10 @@ function zodValidator(schema: TSchema, fn:
}
export const withZodValidator = TanStackStart.createServerFn({
method: 'GET'
-}).handler((opts, signal) => {
+}).handler(opts => {
"use server";
- return withZodValidator.__executeServer(opts, signal);
+ return withZodValidator.__executeServer(opts);
}, zodValidator(z.number(), input => {
return {
'you gave': input
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnValidator.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnValidator.tsx
index 1ca81b02603..e33554d9c78 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnValidator.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/server/createServerFnValidator.tsx
@@ -2,10 +2,10 @@ import { createServerFn } from '@tanstack/react-start';
import { z } from 'zod';
export const withUseServer = createServerFn({
method: 'GET'
-}).inputValidator(z.number()).handler((opts, signal) => {
+}).inputValidator(z.number()).handler(opts => {
"use server";
- return withUseServer.__executeServer(opts, signal);
+ return withUseServer.__executeServer(opts);
}, ({
input
}) => input + 1);
\ No newline at end of file
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/server/factory.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/server/factory.tsx
index 388e9761c3b..47e37e0c4e0 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/server/factory.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/server/factory.tsx
@@ -23,17 +23,17 @@ const adminMiddleware = createMiddleware({
});
export const createAuthServerFn = createServerFn().middleware([authMiddleware]);
const createAdminServerFn = createAuthServerFn().middleware([adminMiddleware]);
-export const myAuthedFn = createAuthServerFn().handler((opts, signal) => {
+export const myAuthedFn = createAuthServerFn().handler(opts => {
"use server";
- return myAuthedFn.__executeServer(opts, signal);
+ return myAuthedFn.__executeServer(opts);
}, () => {
return 'myAuthedFn';
});
-export const deleteUserFn = createAdminServerFn().handler((opts, signal) => {
+export const deleteUserFn = createAdminServerFn().handler(opts => {
"use server";
- return deleteUserFn.__executeServer(opts, signal);
+ return deleteUserFn.__executeServer(opts);
}, () => {
return 'deleteUserFn';
});
diff --git a/packages/start-plugin-core/tests/createServerFn/snapshots/server/isomorphic-fns.tsx b/packages/start-plugin-core/tests/createServerFn/snapshots/server/isomorphic-fns.tsx
index 08e55500c90..264ee4440b4 100644
--- a/packages/start-plugin-core/tests/createServerFn/snapshots/server/isomorphic-fns.tsx
+++ b/packages/start-plugin-core/tests/createServerFn/snapshots/server/isomorphic-fns.tsx
@@ -2,16 +2,16 @@ import { createFileRoute } from '@tanstack/react-router';
import { createIsomorphicFn, createServerFn } from '@tanstack/react-start';
import { useState } from 'react';
const getEnv = createIsomorphicFn().server(() => 'server').client(() => 'client');
-const getServerEnv = createServerFn().handler((opts, signal) => {
+const getServerEnv = createServerFn().handler(opts => {
"use server";
- return getServerEnv.__executeServer(opts, signal);
+ return getServerEnv.__executeServer(opts);
}, () => getEnv());
const getEcho = createIsomorphicFn().server((input: string) => 'server received ' + input).client(input => 'client received ' + input);
-const getServerEcho = createServerFn().inputValidator((input: string) => input).handler((opts, signal) => {
+const getServerEcho = createServerFn().inputValidator((input: string) => input).handler(opts => {
"use server";
- return getServerEcho.__executeServer(opts, signal);
+ return getServerEcho.__executeServer(opts);
}, ({
data
}) => getEcho(data));
diff --git a/packages/start-server-core/src/server-functions-handler.ts b/packages/start-server-core/src/server-functions-handler.ts
index fa0aa995b88..f0148238a68 100644
--- a/packages/start-server-core/src/server-functions-handler.ts
+++ b/packages/start-server-core/src/server-functions-handler.ts
@@ -19,11 +19,6 @@ export const handleServerAction = async ({
request: Request
context: any
}) => {
- const controller = new AbortController()
- const signal = controller.signal
- const abort = () => controller.abort()
- request.signal.addEventListener('abort', abort)
-
if (regex === undefined) {
regex = new RegExp(`${process.env.TSS_SERVER_FN_BASE}([^/?#]+)`)
}
@@ -94,7 +89,7 @@ export const handleServerAction = async ({
} catch {}
}
- return await action(params, signal)
+ return await action(params)
}
// Get requests use the query string
@@ -109,7 +104,7 @@ export const handleServerAction = async ({
payload = payload ? parsePayload(JSON.parse(payload)) : payload
payload.context = { ...context, ...payload.context }
// Send it through!
- return await action(payload, signal)
+ return await action(payload)
}
if (method.toLowerCase() !== 'post') {
@@ -127,7 +122,7 @@ export const handleServerAction = async ({
if (isCreateServerFn) {
const payload = parsePayload(jsonPayload)
payload.context = { ...payload.context, ...context }
- return await action(payload, signal)
+ return await action(payload)
}
// Otherwise, we'll spread the payload. Need to
@@ -306,8 +301,6 @@ export const handleServerAction = async ({
}
})()
- request.signal.removeEventListener('abort', abort)
-
return response
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ad8e1808efd..db905c619cb 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1037,8 +1037,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -1244,8 +1244,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -1287,8 +1287,8 @@ importers:
specifier: ^19.0.3
version: 19.0.3(@types/react@19.0.8)
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
typescript:
specifier: ^5.7.2
version: 5.8.2
@@ -1348,8 +1348,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -1497,8 +1497,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -1555,8 +1555,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -1610,8 +1610,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -1683,8 +1683,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -1759,8 +1759,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -1878,8 +1878,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -1942,8 +1942,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -2537,8 +2537,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -2577,8 +2577,8 @@ importers:
specifier: 22.10.2
version: 22.10.2
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
typescript:
specifier: ^5.7.2
version: 5.8.2
@@ -2632,8 +2632,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -2702,8 +2702,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -2739,8 +2739,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -2809,8 +2809,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -2876,8 +2876,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -2974,8 +2974,8 @@ importers:
specifier: ^8.5.1
version: 8.5.3
srvx:
- specifier: ^0.8.6
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
@@ -5346,7 +5346,7 @@ importers:
version: 7.1.7(@types/node@22.10.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0)
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/node@22.10.2)(@vitest/browser@3.0.6(@types/node@22.10.2)(playwright@1.52.0)(typescript@5.9.2)(vite@7.1.7(@types/node@22.10.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0))(vitest@3.2.4))(@vitest/ui@3.0.6(vitest@3.2.4))(jiti@2.6.0)(jsdom@27.0.0(postcss@8.5.6))(lightningcss@1.30.1)(msw@2.7.0(@types/node@22.10.2)(typescript@5.9.2))(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0)
+ version: 3.2.4(@types/node@22.10.2)(@vitest/browser@3.0.6)(@vitest/ui@3.0.6)(jiti@2.6.0)(jsdom@27.0.0(postcss@8.5.6))(lightningcss@1.30.1)(msw@2.7.0(@types/node@22.10.2)(typescript@5.9.2))(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0)
web-vitals:
specifier: ^5.1.0
version: 5.1.0
@@ -7505,8 +7505,8 @@ importers:
specifier: ^2.0.3
version: 2.0.3
srvx:
- specifier: ^0.8.2
- version: 0.8.7
+ specifier: ^0.8.16
+ version: 0.8.16
tinyglobby:
specifier: ^0.2.15
version: 0.2.15
@@ -16026,8 +16026,8 @@ packages:
peerDependencies:
kysely: '*'
- srvx@0.8.7:
- resolution: {integrity: sha512-g3+15LlwVOGL2QpoTPZlvRjg+9a5Tx/69CatXjFP6txvhIaW2FmGyzJfb8yft5wyfGddvJmP/Yx+e/uNDMRSLQ==}
+ srvx@0.8.16:
+ resolution: {integrity: sha512-hmcGW4CgroeSmzgF1Ihwgl+Ths0JqAJ7HwjP2X7e3JzY7u4IydLMcdnlqGQiQGUswz+PO9oh/KtCpOISIvs9QQ==}
engines: {node: '>=20.16.0'}
hasBin: true
@@ -24182,7 +24182,7 @@ snapshots:
cookie-es: 2.0.0
fetchdts: 0.1.7
rou3: 0.7.5
- srvx: 0.8.7
+ srvx: 0.8.16
handle-thing@2.0.1: {}
@@ -26519,9 +26519,7 @@ snapshots:
'@sqlite.org/sqlite-wasm': 3.48.0-build4
kysely: 0.27.6
- srvx@0.8.7:
- dependencies:
- cookie-es: 2.0.0
+ srvx@0.8.16: {}
stable-hash-x@0.2.0: {}
@@ -27349,7 +27347,7 @@ snapshots:
optionalDependencies:
vite: 7.1.7(@types/node@22.10.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0)
- vitest@3.2.4(@types/node@22.10.2)(@vitest/browser@3.0.6(@types/node@22.10.2)(playwright@1.52.0)(typescript@5.9.2)(vite@7.1.7(@types/node@22.10.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0))(vitest@3.2.4))(@vitest/ui@3.0.6(vitest@3.2.4))(jiti@2.6.0)(jsdom@27.0.0(postcss@8.5.6))(lightningcss@1.30.1)(msw@2.7.0(@types/node@22.10.2)(typescript@5.9.2))(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0):
+ vitest@3.2.4(@types/node@22.10.2)(@vitest/browser@3.0.6)(@vitest/ui@3.0.6)(jiti@2.6.0)(jsdom@25.0.1)(lightningcss@1.30.1)(msw@2.7.0(@types/node@22.10.2)(typescript@5.9.2))(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.4
@@ -27378,7 +27376,7 @@ snapshots:
'@types/node': 22.10.2
'@vitest/browser': 3.0.6(@types/node@22.10.2)(playwright@1.52.0)(typescript@5.9.2)(vite@7.1.7(@types/node@22.10.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0))(vitest@3.2.4)
'@vitest/ui': 3.0.6(vitest@3.2.4)
- jsdom: 27.0.0(postcss@8.5.6)
+ jsdom: 25.0.1
transitivePeerDependencies:
- jiti
- less
@@ -27393,7 +27391,7 @@ snapshots:
- tsx
- yaml
- vitest@3.2.4(@types/node@22.10.2)(@vitest/browser@3.0.6)(@vitest/ui@3.0.6)(jiti@2.6.0)(jsdom@25.0.1)(lightningcss@1.30.1)(msw@2.7.0(@types/node@22.10.2)(typescript@5.9.2))(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0):
+ vitest@3.2.4(@types/node@22.10.2)(@vitest/browser@3.0.6)(@vitest/ui@3.0.6)(jiti@2.6.0)(jsdom@27.0.0(postcss@8.5.6))(lightningcss@1.30.1)(msw@2.7.0(@types/node@22.10.2)(typescript@5.9.2))(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.4
@@ -27422,7 +27420,7 @@ snapshots:
'@types/node': 22.10.2
'@vitest/browser': 3.0.6(@types/node@22.10.2)(playwright@1.52.0)(typescript@5.9.2)(vite@7.1.7(@types/node@22.10.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0))(vitest@3.2.4)
'@vitest/ui': 3.0.6(vitest@3.2.4)
- jsdom: 25.0.1
+ jsdom: 27.0.0(postcss@8.5.6)
transitivePeerDependencies:
- jiti
- less