diff --git a/packages/mcp-cloudflare/package.json b/packages/mcp-cloudflare/package.json index 5f2024dfe..f46a10934 100644 --- a/packages/mcp-cloudflare/package.json +++ b/packages/mcp-cloudflare/package.json @@ -31,7 +31,7 @@ }, "devDependencies": { "@cloudflare/vite-plugin": "^1.13.15", - "@cloudflare/vitest-pool-workers": "catalog:", + "@cloudflare/vitest-plugin": "catalog:", "@cloudflare/workers-types": "catalog:", "@sentry/mcp-core": "workspace:*", "@sentry/mcp-server-mocks": "workspace:*", @@ -45,6 +45,7 @@ "@vitejs/plugin-react": "catalog:", "tailwindcss": "catalog:", "urlpattern-polyfill": "^10.1.0", + "undici": "^7.24.4", "vite": "catalog:", "vitest": "catalog:", "miniflare": "catalog:", diff --git a/packages/mcp-cloudflare/src/test-utils/configure-fetch-mock.ts b/packages/mcp-cloudflare/src/test-utils/configure-fetch-mock.ts index 8662adfdc..b0b3b986a 100644 --- a/packages/mcp-cloudflare/src/test-utils/configure-fetch-mock.ts +++ b/packages/mcp-cloudflare/src/test-utils/configure-fetch-mock.ts @@ -1,12 +1,16 @@ -import { createFetchMock } from "miniflare"; +import { Response, type V4FetchHandler } from "miniflare"; +import { fetch, MockAgent } from "undici"; import { registerFetchMockInterceptors, type FetchMockLike, } from "./fetch-mock-setup"; -export function createConfiguredFetchMock(): FetchMockLike { - const fetchMock = createFetchMock() as FetchMockLike; +export function createMockOutboundService(): V4FetchHandler { + const fetchMock = new MockAgent(); fetchMock.disableNetConnect(); - registerFetchMockInterceptors(fetchMock); - return fetchMock; + registerFetchMockInterceptors(fetchMock as FetchMockLike); + return async (request) => { + const response = await fetch(request, { dispatcher: fetchMock }); + return new Response(response.body, response); + }; } diff --git a/packages/mcp-cloudflare/src/test-utils/fetch-mock-setup.ts b/packages/mcp-cloudflare/src/test-utils/fetch-mock-setup.ts index 7081f0835..60d7b627f 100644 --- a/packages/mcp-cloudflare/src/test-utils/fetch-mock-setup.ts +++ b/packages/mcp-cloudflare/src/test-utils/fetch-mock-setup.ts @@ -1,7 +1,7 @@ /** * Shared outbound mock registrations for Cloudflare Workers tests. * - * The current vitest-pool-workers stack configures Miniflare's `fetchMock` + * The Cloudflare Vitest plugin configures Miniflare's `outboundService` * centrally from vitest.config.ts so test files do not need per-file setup. */ import { diff --git a/packages/mcp-cloudflare/tsconfig.test.json b/packages/mcp-cloudflare/tsconfig.test.json index bbfd52fc6..6f4aa00dc 100644 --- a/packages/mcp-cloudflare/tsconfig.test.json +++ b/packages/mcp-cloudflare/tsconfig.test.json @@ -3,7 +3,7 @@ "compilerOptions": { "types": [ "@cloudflare/workers-types", - "@cloudflare/vitest-pool-workers" + "@cloudflare/vitest-plugin" ] }, "include": [ diff --git a/packages/mcp-cloudflare/vitest.config.ts b/packages/mcp-cloudflare/vitest.config.ts index 4f7f9f85f..ba16c5ba4 100644 --- a/packages/mcp-cloudflare/vitest.config.ts +++ b/packages/mcp-cloudflare/vitest.config.ts @@ -1,14 +1,14 @@ import path from "node:path"; -import { cloudflareTest } from "@cloudflare/vitest-pool-workers"; +import { cloudflareTest } from "@cloudflare/vitest-plugin"; import { defineConfig } from "vitest/config"; -import { createConfiguredFetchMock } from "./src/test-utils/configure-fetch-mock"; +import { createMockOutboundService } from "./src/test-utils/configure-fetch-mock"; /** - * Unified vitest config using vitest-pool-workers. + * Unified vitest config using the Cloudflare Vitest plugin. * * All tests run in the Cloudflare Workers runtime (workerd) which enables: * - Testing with cloudflare:test bindings (KV, AI, etc.) - * - Using fetchMock from cloudflare:test for HTTP mocking + * - Using centrally registered outbound HTTP fixtures * * Bindings (KV, vars, compatibility flags) are defined in wrangler.test.jsonc * to keep test config aligned with production wrangler.jsonc. @@ -18,7 +18,7 @@ export default defineConfig({ cloudflareTest({ main: "./src/server/index.ts", miniflare: { - fetchMock: createConfiguredFetchMock(), + outboundService: createMockOutboundService(), }, wrangler: { configPath: "./wrangler.test.jsonc" }, }), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec75e1e97..bcdcdc84d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,9 +21,9 @@ catalogs: '@ast-grep/cli': specifier: ^0.43.0 version: 0.43.0 - '@cloudflare/vitest-pool-workers': - specifier: 0.14.1 - version: 0.14.1 + '@cloudflare/vitest-plugin': + specifier: 1.4.6 + version: 1.4.6 '@cloudflare/workers-oauth-provider': specifier: ^0.10.3 version: 0.10.3 @@ -112,8 +112,8 @@ catalogs: specifier: ^0.503.0 version: 0.503.0 miniflare: - specifier: 4.20260401.0 - version: 4.20260401.0 + specifier: 5.20261019.1-beta + version: 5.20261019.1-beta msw: specifier: ^2.10.2 version: 2.10.2 @@ -720,9 +720,9 @@ importers: '@cloudflare/vite-plugin': specifier: ^1.13.15 version: 1.13.15(@types/node@24.13.5)(vite@6.4.4(@types/node@24.13.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.23.13)(yaml@2.9.0))(workerd@1.20261019.1)(wrangler@4.151.3(@cloudflare/workers-types@4.20260405.1)(@types/node@24.13.5)) - '@cloudflare/vitest-pool-workers': + '@cloudflare/vitest-plugin': specifier: 'catalog:' - version: 0.14.1(@cloudflare/workers-types@4.20260405.1)(@types/node@24.13.5)(@vitest/runner@4.1.11)(@vitest/snapshot@4.1.11)(vitest@4.1.11) + version: 1.4.6(@cloudflare/workers-types@4.20260405.1)(@types/node@24.13.5)(vitest@4.1.11) '@cloudflare/workers-types': specifier: 'catalog:' version: 4.20260405.1 @@ -758,10 +758,13 @@ importers: version: 4.6.0(vite@6.4.4(@types/node@24.13.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.23.13)(yaml@2.9.0)) miniflare: specifier: 'catalog:' - version: 4.20260401.0(@types/node@24.13.5) + version: 5.20261019.1-beta(@types/node@24.13.5) tailwindcss: specifier: 'catalog:' version: 4.3.3 + undici: + specifier: ^7.24.4 + version: 7.24.4 urlpattern-polyfill: specifier: ^10.1.0 version: 10.1.0 @@ -1703,23 +1706,10 @@ packages: resolution: {integrity: sha512-dlT1m5e/0yUL0kRNcQn7yGLVThkgbB0Ga/1AmfDDC/8ik6AIiSf2QLQO2zPYvefsHP0aFgxO93cVLCCfDp7kzQ==} engines: {node: '>= 20.12.0'} - '@cloudflare/kv-asset-handler@0.4.2': - resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} - engines: {node: '>=18.0.0'} - '@cloudflare/kv-asset-handler@0.5.0': resolution: {integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==} engines: {node: '>=22.0.0'} - '@cloudflare/unenv-preset@2.16.0': - resolution: {integrity: sha512-8ovsRpwzPoEqPUzoErAYVv8l3FMZNeBVQfJTvtzP4AgLSRGZISRfuChFxHWUQd3n6cnrwkuTGxT+2cGo8EsyYg==} - peerDependencies: - unenv: 2.0.0-rc.24 - workerd: 1.20260301.1 || ~1.20260302.1 || ~1.20260303.1 || ~1.20260304.1 || >1.20260305.0 <2.0.0-0 - peerDependenciesMeta: - workerd: - optional: true - '@cloudflare/unenv-preset@2.16.2': resolution: {integrity: sha512-JBP1+Z7ZSNG/d4mRP+y8VC5dka3tZVMLEZRvS+rzQ4DGV1EoxRFQckcJTTkXbHSQiTj0DtNI01Zwb/V2fX0mvQ==} peerDependencies: @@ -1744,13 +1734,10 @@ packages: vite: ^6.1.0 || ^7.0.0 wrangler: ^4.45.0 - '@cloudflare/vitest-pool-workers@0.14.1': - resolution: {integrity: sha512-AuIvoGXi9bMjgD1636JtP84yGsjhdtsk23rYMVFLO9KB84rvwhVPkvwgBv74RbhbURXYDKWV5koPwPucFSFgUg==} - deprecated: '@cloudflare/vitest-pool-workers has been renamed to @cloudflare/vitest-plugin. This package will not receive future updates.' + '@cloudflare/vitest-plugin@1.4.6': + resolution: {integrity: sha512-7hng1qRt3hnZbRS/Z1uWhJyUYi/FlSEM9uYR7z1qCkv+Tmvu6qNlhuSZy2vjJH9mgTHIYJFnl1nBuITITqapxg==} peerDependencies: - '@vitest/runner': ^4.1.0 - '@vitest/snapshot': ^4.1.0 - vitest: ^4.1.0 + vitest: ^4.1.0 || ^5.0.0 '@cloudflare/workerd-darwin-64@1.20251011.0': resolution: {integrity: sha512-0DirVP+Z82RtZLlK2B+VhLOkk+ShBqDYO/jhcRw4oVlp0TOvk3cOVZChrt3+y3NV8Y/PYgTEywzLKFSziK4wCg==} @@ -1758,12 +1745,6 @@ packages: cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-64@1.20260401.1': - resolution: {integrity: sha512-ZSmceM70jH6k+/62VkEcmMNzrpr4kSctkX5Lsgqv38KktfhPY/hsh75y1lRoPWS3H3kgMa4p2pUSlidZR1u2hw==} - engines: {node: '>=16'} - cpu: [x64] - os: [darwin] - '@cloudflare/workerd-darwin-64@1.20261019.1': resolution: {integrity: sha512-5ZILbAta/fBQvhmAYeCE7dKMMYIr7N9wJEX50fEGLKSIwGtvT0HzSfHNIK/O7cBQ4gHQ2WfIiPClvwcye6E0fA==} engines: {node: '>=16'} @@ -1776,12 +1757,6 @@ packages: cpu: [arm64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260401.1': - resolution: {integrity: sha512-7UKWF+IUZ3NXMVPsDg8Cjg0r58b+uYlfvs5Yt8bvtU+geCtW4P2MxRHmRSEo8SryckXOJjb/b8tcncgCykFu8g==} - engines: {node: '>=16'} - cpu: [arm64] - os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20261019.1': resolution: {integrity: sha512-cww2Ab6lVMxpTiEEjKmPI58p5EMo0vYTZSH+3WkqXJdQgc3ES66GuL247+U2B2YWajhhu2tqj7jySrXneU749g==} engines: {node: '>=16'} @@ -1794,12 +1769,6 @@ packages: cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-64@1.20260401.1': - resolution: {integrity: sha512-MDWUH/0bvL/l9aauN8zEddyYOXId1OueqrUCXXENNJ95R/lSmF6OgGVuXaYhoIhxQkNiEJ/0NOlnVYj9mJq4dw==} - engines: {node: '>=16'} - cpu: [x64] - os: [linux] - '@cloudflare/workerd-linux-64@1.20261019.1': resolution: {integrity: sha512-4++VRi9vkQROYqrpZYOixIJuVDmujkwrT4kszsxNFlvcmsX6Mr2GumvxIN3gIixS3vJUh3Umdtkthqj5X0S3Xw==} engines: {node: '>=16'} @@ -1812,12 +1781,6 @@ packages: cpu: [arm64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260401.1': - resolution: {integrity: sha512-UgkzpMzVWM/bwbo3vjCTg2aoKfGcUhiEoQoDdo6RGWvbHRJyLVZ4VQCG9ZcISiztkiS2ICCoYOtPy6M/lV6Gcw==} - engines: {node: '>=16'} - cpu: [arm64] - os: [linux] - '@cloudflare/workerd-linux-arm64@1.20261019.1': resolution: {integrity: sha512-75PVtJOwfjScQ53sbLtQXI7D8yP1c21t+WEUPaYbqkzaz4ZqfR5wAd+zuWs8G5Q7kOj2SQIvEfY5Sn8Y+UVrnA==} engines: {node: '>=16'} @@ -1830,12 +1793,6 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workerd-windows-64@1.20260401.1': - resolution: {integrity: sha512-HBLzcQF5iF4Qv20tQ++pG7xs3OsCnaIbc+GAi6fmhUKZhvmzvml/jwrQzLJ+MPm0cQo41K5OO/U3T4S8tvJetQ==} - engines: {node: '>=16'} - cpu: [x64] - os: [win32] - '@cloudflare/workerd-windows-64@1.20261019.1': resolution: {integrity: sha512-z49fvKTETMCnG6wnMcQwxx9CpryFceiKz04FRjq26EkhCyzRNJ6c3UXhyZz3r5f1CXnnBZc5DcU8ZouPkUJCqw==} engines: {node: '>=16'} @@ -1957,12 +1914,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.28.1': resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} engines: {node: '>=18'} @@ -1987,12 +1938,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.28.1': resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} engines: {node: '>=18'} @@ -2017,12 +1962,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.28.1': resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} engines: {node: '>=18'} @@ -2047,12 +1986,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.28.1': resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} engines: {node: '>=18'} @@ -2077,12 +2010,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.28.1': resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} engines: {node: '>=18'} @@ -2107,12 +2034,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.28.1': resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} engines: {node: '>=18'} @@ -2137,12 +2058,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.28.1': resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} engines: {node: '>=18'} @@ -2167,12 +2082,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.28.1': resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} engines: {node: '>=18'} @@ -2197,12 +2106,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.28.1': resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} engines: {node: '>=18'} @@ -2227,12 +2130,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.28.1': resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} engines: {node: '>=18'} @@ -2257,12 +2154,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.28.1': resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} engines: {node: '>=18'} @@ -2287,12 +2178,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.28.1': resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} engines: {node: '>=18'} @@ -2317,12 +2202,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.28.1': resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} engines: {node: '>=18'} @@ -2347,12 +2226,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.28.1': resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} engines: {node: '>=18'} @@ -2377,12 +2250,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.28.1': resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} engines: {node: '>=18'} @@ -2407,12 +2274,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.28.1': resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} engines: {node: '>=18'} @@ -2437,12 +2298,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.28.1': resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} engines: {node: '>=18'} @@ -2467,12 +2322,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.28.1': resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} engines: {node: '>=18'} @@ -2497,12 +2346,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.28.1': resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} engines: {node: '>=18'} @@ -2527,12 +2370,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.28.1': resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} engines: {node: '>=18'} @@ -2557,12 +2394,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.28.1': resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} engines: {node: '>=18'} @@ -2581,12 +2412,6 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.28.1': resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} engines: {node: '>=18'} @@ -2611,12 +2436,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.28.1': resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} engines: {node: '>=18'} @@ -2641,12 +2460,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.28.1': resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} engines: {node: '>=18'} @@ -2671,12 +2484,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.28.1': resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} engines: {node: '>=18'} @@ -2701,12 +2508,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.28.1': resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} engines: {node: '>=18'} @@ -5939,11 +5740,8 @@ packages: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} - cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - - cjs-module-lexer@2.2.0: - resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==} + cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} cjs-module-lexer@2.2.1: resolution: {integrity: sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==} @@ -6423,11 +6221,6 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.28.1: resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} engines: {node: '>=18'} @@ -7801,11 +7594,6 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - miniflare@4.20260401.0: - resolution: {integrity: sha512-lngHPzZFN9sxYG/mhzvnWiBMNVAN5MsO/7g32ttJ07rymtiK/ZBalODTKb8Od+BQdlU5DOR4CjVt9NydjnUyYg==} - engines: {node: '>=18.0.0'} - hasBin: true - miniflare@5.20261019.1-beta: resolution: {integrity: sha512-1n7MN2UqZnPniyYAqNuV1YEAaja66ozKGVCc5ZTmYQhTubnoAwGLccwb+ZWYLOajuw3pOaJ70u//bZMuURlRew==} engines: {node: '>=22.0.0'} @@ -8344,10 +8132,6 @@ packages: resolution: {integrity: sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==} hasBin: true - qs@6.16.0: - resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} - engines: {node: '>=0.6'} - qs@6.16.1: resolution: {integrity: sha512-5Px6J7rfHBAGUhNQ3es4YzcOdBBw0SDcVtThJml4RdnKw4tKs2epA0kPZ+K8X+WiHktT93RHVcQ/3ym5aTCgtg==} engines: {node: '>=0.6'} @@ -9642,11 +9426,6 @@ packages: engines: {node: '>=16'} hasBin: true - workerd@1.20260401.1: - resolution: {integrity: sha512-mUYCd+ohaWJWF5nhDzxugWaAD/DM8Dw0ze3B7bu8JaA7S70+XQJXcvcvwE8C4qGcxSdCyqjsrFzqxKubECDwzg==} - engines: {node: '>=16'} - hasBin: true - workerd@1.20261019.1: resolution: {integrity: sha512-UUYRUq/7DmeCl11YriNbcVbjUZVLtt8uuCXFu+nz77hGFf8d4DEVXoCYtnA+MlBatE4+wxoj47DVqzK3xGBAiw==} engines: {node: '>=16'} @@ -9667,16 +9446,6 @@ packages: '@cloudflare/workers-types': optional: true - wrangler@4.80.0: - resolution: {integrity: sha512-2ZKF7uPeOZy65BGk3YfvqBCPo/xH1MrAlMmH9mVP+tCNBrTUMnwOHSj1HrZHgR8LttkAqhko0fGz+I4ax1rzyQ==} - engines: {node: '>=20.3.0'} - hasBin: true - peerDependencies: - '@cloudflare/workers-types': ^4.20260401.1 - peerDependenciesMeta: - '@cloudflare/workers-types': - optional: true - wrap-ansi@10.0.1: resolution: {integrity: sha512-M0N4xzyzosiIok3svYlEo1sdLZts/8FPgYH/GPC3wvlmPoRvnoManGMrE54waYj3tISA8w6lsdesfVv67qSr8Q==} engines: {node: '>=20'} @@ -9867,9 +9636,6 @@ packages: zod@3.22.3: resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zod@4.6.5: resolution: {integrity: sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==} @@ -10675,16 +10441,8 @@ snapshots: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 - '@cloudflare/kv-asset-handler@0.4.2': {} - '@cloudflare/kv-asset-handler@0.5.0': {} - '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260401.1)': - dependencies: - unenv: 2.0.0-rc.24 - optionalDependencies: - workerd: 1.20260401.1 - '@cloudflare/unenv-preset@2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261019.1)': dependencies: unenv: 2.0.0-rc.24 @@ -10715,16 +10473,14 @@ snapshots: - utf-8-validate - workerd - '@cloudflare/vitest-pool-workers@0.14.1(@cloudflare/workers-types@4.20260405.1)(@types/node@24.13.5)(@vitest/runner@4.1.11)(@vitest/snapshot@4.1.11)(vitest@4.1.11)': + '@cloudflare/vitest-plugin@1.4.6(@cloudflare/workers-types@4.20260405.1)(@types/node@24.13.5)(vitest@4.1.11)': dependencies: - '@vitest/runner': 4.1.11 - '@vitest/snapshot': 4.1.11 - cjs-module-lexer: 1.4.3 - esbuild: 0.27.3 - miniflare: 4.20260401.0(@types/node@24.13.5) + cjs-module-lexer: 1.2.3 + esbuild: 0.28.2 + miniflare: 5.20261019.1-beta(@types/node@24.13.5) vitest: 4.1.11(@opentelemetry/api@1.9.1)(@types/node@24.13.5)(@vitest/coverage-v8@4.1.11)(jsdom@28.1.0)(msw@2.10.2(@types/node@24.13.5)(typescript@5.9.3))(vite@6.4.4(@types/node@24.13.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.23.13)(yaml@2.9.0)) - wrangler: 4.80.0(@cloudflare/workers-types@4.20260405.1)(@types/node@24.13.5) - zod: 3.25.76 + wrangler: 4.151.3(@cloudflare/workers-types@4.20260405.1)(@types/node@24.13.5) + zod: 4.6.5 transitivePeerDependencies: - '@cloudflare/workers-types' - '@types/node' @@ -10734,45 +10490,30 @@ snapshots: '@cloudflare/workerd-darwin-64@1.20251011.0': optional: true - '@cloudflare/workerd-darwin-64@1.20260401.1': - optional: true - '@cloudflare/workerd-darwin-64@1.20261019.1': optional: true '@cloudflare/workerd-darwin-arm64@1.20251011.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260401.1': - optional: true - '@cloudflare/workerd-darwin-arm64@1.20261019.1': optional: true '@cloudflare/workerd-linux-64@1.20251011.0': optional: true - '@cloudflare/workerd-linux-64@1.20260401.1': - optional: true - '@cloudflare/workerd-linux-64@1.20261019.1': optional: true '@cloudflare/workerd-linux-arm64@1.20251011.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20260401.1': - optional: true - '@cloudflare/workerd-linux-arm64@1.20261019.1': optional: true '@cloudflare/workerd-windows-64@1.20251011.0': optional: true - '@cloudflare/workerd-windows-64@1.20260401.1': - optional: true - '@cloudflare/workerd-windows-64@1.20261019.1': optional: true @@ -10904,9 +10645,6 @@ snapshots: '@esbuild/aix-ppc64@0.25.5': optional: true - '@esbuild/aix-ppc64@0.27.3': - optional: true - '@esbuild/aix-ppc64@0.28.1': optional: true @@ -10919,9 +10657,6 @@ snapshots: '@esbuild/android-arm64@0.25.5': optional: true - '@esbuild/android-arm64@0.27.3': - optional: true - '@esbuild/android-arm64@0.28.1': optional: true @@ -10934,9 +10669,6 @@ snapshots: '@esbuild/android-arm@0.25.5': optional: true - '@esbuild/android-arm@0.27.3': - optional: true - '@esbuild/android-arm@0.28.1': optional: true @@ -10949,9 +10681,6 @@ snapshots: '@esbuild/android-x64@0.25.5': optional: true - '@esbuild/android-x64@0.27.3': - optional: true - '@esbuild/android-x64@0.28.1': optional: true @@ -10964,9 +10693,6 @@ snapshots: '@esbuild/darwin-arm64@0.25.5': optional: true - '@esbuild/darwin-arm64@0.27.3': - optional: true - '@esbuild/darwin-arm64@0.28.1': optional: true @@ -10979,9 +10705,6 @@ snapshots: '@esbuild/darwin-x64@0.25.5': optional: true - '@esbuild/darwin-x64@0.27.3': - optional: true - '@esbuild/darwin-x64@0.28.1': optional: true @@ -10994,9 +10717,6 @@ snapshots: '@esbuild/freebsd-arm64@0.25.5': optional: true - '@esbuild/freebsd-arm64@0.27.3': - optional: true - '@esbuild/freebsd-arm64@0.28.1': optional: true @@ -11009,9 +10729,6 @@ snapshots: '@esbuild/freebsd-x64@0.25.5': optional: true - '@esbuild/freebsd-x64@0.27.3': - optional: true - '@esbuild/freebsd-x64@0.28.1': optional: true @@ -11024,9 +10741,6 @@ snapshots: '@esbuild/linux-arm64@0.25.5': optional: true - '@esbuild/linux-arm64@0.27.3': - optional: true - '@esbuild/linux-arm64@0.28.1': optional: true @@ -11039,9 +10753,6 @@ snapshots: '@esbuild/linux-arm@0.25.5': optional: true - '@esbuild/linux-arm@0.27.3': - optional: true - '@esbuild/linux-arm@0.28.1': optional: true @@ -11054,9 +10765,6 @@ snapshots: '@esbuild/linux-ia32@0.25.5': optional: true - '@esbuild/linux-ia32@0.27.3': - optional: true - '@esbuild/linux-ia32@0.28.1': optional: true @@ -11069,9 +10777,6 @@ snapshots: '@esbuild/linux-loong64@0.25.5': optional: true - '@esbuild/linux-loong64@0.27.3': - optional: true - '@esbuild/linux-loong64@0.28.1': optional: true @@ -11084,9 +10789,6 @@ snapshots: '@esbuild/linux-mips64el@0.25.5': optional: true - '@esbuild/linux-mips64el@0.27.3': - optional: true - '@esbuild/linux-mips64el@0.28.1': optional: true @@ -11099,9 +10801,6 @@ snapshots: '@esbuild/linux-ppc64@0.25.5': optional: true - '@esbuild/linux-ppc64@0.27.3': - optional: true - '@esbuild/linux-ppc64@0.28.1': optional: true @@ -11114,9 +10813,6 @@ snapshots: '@esbuild/linux-riscv64@0.25.5': optional: true - '@esbuild/linux-riscv64@0.27.3': - optional: true - '@esbuild/linux-riscv64@0.28.1': optional: true @@ -11129,9 +10825,6 @@ snapshots: '@esbuild/linux-s390x@0.25.5': optional: true - '@esbuild/linux-s390x@0.27.3': - optional: true - '@esbuild/linux-s390x@0.28.1': optional: true @@ -11144,9 +10837,6 @@ snapshots: '@esbuild/linux-x64@0.25.5': optional: true - '@esbuild/linux-x64@0.27.3': - optional: true - '@esbuild/linux-x64@0.28.1': optional: true @@ -11159,9 +10849,6 @@ snapshots: '@esbuild/netbsd-arm64@0.25.5': optional: true - '@esbuild/netbsd-arm64@0.27.3': - optional: true - '@esbuild/netbsd-arm64@0.28.1': optional: true @@ -11174,9 +10861,6 @@ snapshots: '@esbuild/netbsd-x64@0.25.5': optional: true - '@esbuild/netbsd-x64@0.27.3': - optional: true - '@esbuild/netbsd-x64@0.28.1': optional: true @@ -11189,9 +10873,6 @@ snapshots: '@esbuild/openbsd-arm64@0.25.5': optional: true - '@esbuild/openbsd-arm64@0.27.3': - optional: true - '@esbuild/openbsd-arm64@0.28.1': optional: true @@ -11204,9 +10885,6 @@ snapshots: '@esbuild/openbsd-x64@0.25.5': optional: true - '@esbuild/openbsd-x64@0.27.3': - optional: true - '@esbuild/openbsd-x64@0.28.1': optional: true @@ -11216,9 +10894,6 @@ snapshots: '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.27.3': - optional: true - '@esbuild/openharmony-arm64@0.28.1': optional: true @@ -11231,9 +10906,6 @@ snapshots: '@esbuild/sunos-x64@0.25.5': optional: true - '@esbuild/sunos-x64@0.27.3': - optional: true - '@esbuild/sunos-x64@0.28.1': optional: true @@ -11246,9 +10918,6 @@ snapshots: '@esbuild/win32-arm64@0.25.5': optional: true - '@esbuild/win32-arm64@0.27.3': - optional: true - '@esbuild/win32-arm64@0.28.1': optional: true @@ -11261,9 +10930,6 @@ snapshots: '@esbuild/win32-ia32@0.25.5': optional: true - '@esbuild/win32-ia32@0.27.3': - optional: true - '@esbuild/win32-ia32@0.28.1': optional: true @@ -11276,9 +10942,6 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true - '@esbuild/win32-x64@0.27.3': - optional: true - '@esbuild/win32-x64@0.28.1': optional: true @@ -13825,7 +13488,7 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: 4.1.11(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(@vitest/coverage-v8@4.1.11)(jsdom@28.1.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@8.3.3(@types/node@22.16.0)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.20.3)(yaml@2.9.0)) + vitest: 4.1.11(@opentelemetry/api@1.9.1)(@types/node@24.13.5)(@vitest/coverage-v8@4.1.11)(jsdom@28.1.0)(msw@2.10.2(@types/node@24.13.5)(typescript@5.9.3))(vite@6.4.4(@types/node@24.13.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.23.13)(yaml@2.9.0)) '@vitest/expect@4.1.11': dependencies: @@ -14458,9 +14121,7 @@ snapshots: ci-info@4.4.0: {} - cjs-module-lexer@1.4.3: {} - - cjs-module-lexer@2.2.0: {} + cjs-module-lexer@1.2.3: {} cjs-module-lexer@2.2.1: {} @@ -14909,35 +14570,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.5 '@esbuild/win32-x64': 0.25.5 - esbuild@0.27.3: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.3 - '@esbuild/android-arm': 0.27.3 - '@esbuild/android-arm64': 0.27.3 - '@esbuild/android-x64': 0.27.3 - '@esbuild/darwin-arm64': 0.27.3 - '@esbuild/darwin-x64': 0.27.3 - '@esbuild/freebsd-arm64': 0.27.3 - '@esbuild/freebsd-x64': 0.27.3 - '@esbuild/linux-arm': 0.27.3 - '@esbuild/linux-arm64': 0.27.3 - '@esbuild/linux-ia32': 0.27.3 - '@esbuild/linux-loong64': 0.27.3 - '@esbuild/linux-mips64el': 0.27.3 - '@esbuild/linux-ppc64': 0.27.3 - '@esbuild/linux-riscv64': 0.27.3 - '@esbuild/linux-s390x': 0.27.3 - '@esbuild/linux-x64': 0.27.3 - '@esbuild/netbsd-arm64': 0.27.3 - '@esbuild/netbsd-x64': 0.27.3 - '@esbuild/openbsd-arm64': 0.27.3 - '@esbuild/openbsd-x64': 0.27.3 - '@esbuild/openharmony-arm64': 0.27.3 - '@esbuild/sunos-x64': 0.27.3 - '@esbuild/win32-arm64': 0.27.3 - '@esbuild/win32-ia32': 0.27.3 - '@esbuild/win32-x64': 0.27.3 - esbuild@0.28.1: optionalDependencies: '@esbuild/aix-ppc64': 0.28.1 @@ -15138,7 +14770,7 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.8 - qs: 6.16.0 + qs: 6.16.1 range-parser: 1.3.0 router: 2.2.0 send: 1.2.1 @@ -15722,7 +15354,7 @@ snapshots: import-in-the-middle@3.3.1: dependencies: - cjs-module-lexer: 2.2.0 + cjs-module-lexer: 2.2.1 es-module-lexer: 2.3.1 module-details-from-path: 1.0.4 @@ -16767,19 +16399,6 @@ snapshots: - bufferutil - utf-8-validate - miniflare@4.20260401.0(@types/node@24.13.5): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - sharp: 0.35.4(@types/node@24.13.5) - undici: 7.24.4 - workerd: 1.20260401.1 - ws: 8.18.0 - youch: 4.1.0-beta.10 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - utf-8-validate - miniflare@5.20261019.1-beta(@types/node@22.20.1): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -17457,11 +17076,6 @@ snapshots: qrcode-terminal@0.12.0: {} - qs@6.16.0: - dependencies: - es-define-property: 1.0.1 - side-channel: 1.1.1 - qs@6.16.1: dependencies: es-define-property: 1.0.1 @@ -19219,14 +18833,6 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20251011.0 '@cloudflare/workerd-windows-64': 1.20251011.0 - workerd@1.20260401.1: - optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260401.1 - '@cloudflare/workerd-darwin-arm64': 1.20260401.1 - '@cloudflare/workerd-linux-64': 1.20260401.1 - '@cloudflare/workerd-linux-arm64': 1.20260401.1 - '@cloudflare/workerd-windows-64': 1.20260401.1 - workerd@1.20261019.1: optionalDependencies: '@cloudflare/workerd-darwin-64': 1.20261019.1 @@ -19291,24 +18897,6 @@ snapshots: - bufferutil - utf-8-validate - wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1)(@types/node@24.13.5): - dependencies: - '@cloudflare/kv-asset-handler': 0.4.2 - '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260401.1) - blake3-wasm: 2.1.5 - esbuild: 0.27.3 - miniflare: 4.20260401.0(@types/node@24.13.5) - path-to-regexp: 6.3.0 - unenv: 2.0.0-rc.24 - workerd: 1.20260401.1 - optionalDependencies: - '@cloudflare/workers-types': 4.20260405.1 - fsevents: 2.3.3 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - utf-8-validate - wrap-ansi@10.0.1: dependencies: ansi-styles: 6.2.3 @@ -19450,8 +19038,6 @@ snapshots: zod@3.22.3: {} - zod@3.25.76: {} - zod@4.6.5: {} zod@4.6.7: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index e60f9e0cc..1925dc8fc 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -46,7 +46,7 @@ catalog: "@ai-sdk/openai": ^3.0.23 "@ai-sdk/react": ^3.0.232 "@cloudflare/vite-plugin": ^1.31.0 - "@cloudflare/vitest-pool-workers": 0.14.1 + "@cloudflare/vitest-plugin": 1.4.6 "@cloudflare/workers-oauth-provider": ^0.10.3 "@cloudflare/workers-types": ^4.20260405.1 "@modelcontextprotocol/sdk": 1.32.0 @@ -78,7 +78,8 @@ catalog: hono: ^4.13.11 lint-staged: ^15.5.2 lucide-react: ^0.503.0 - miniflare: 4.20260401.0 + # Keep Dynamic Worker tests on the same Miniflare/workerd runtime as Wrangler. + miniflare: 5.20261019.1-beta msw: ^2.10.2 open: ^10.1.2 oxfmt: 0.72.0