diff --git a/packages/cli/package.json b/packages/cli/package.json index 1278e16b7..f746aafa1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -100,7 +100,7 @@ "esbuild": "0.28.2", "figures": "6.1.0", "minimatch": "10.2.6", - "msw": "2.15.0", + "msw": "3.0.2", "semver": "7.8.5", "shell-quote": "^1.12.0", "tinyexec": "^1.3.1", diff --git a/packages/cli/src/__tests__/commands/account-or-zone.test.ts b/packages/cli/src/__tests__/commands/account-or-zone.test.ts index fe2dda8f2..969c69560 100644 --- a/packages/cli/src/__tests__/commands/account-or-zone.test.ts +++ b/packages/cli/src/__tests__/commands/account-or-zone.test.ts @@ -1,6 +1,6 @@ import { readFileSync } from "node:fs"; import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, diff --git a/packages/cli/src/__tests__/commands/account-selection.test.ts b/packages/cli/src/__tests__/commands/account-selection.test.ts index 6da5934cf..fec234f61 100644 --- a/packages/cli/src/__tests__/commands/account-selection.test.ts +++ b/packages/cli/src/__tests__/commands/account-selection.test.ts @@ -1,7 +1,6 @@ import { format } from "node:util"; import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; -import { getGlobalDispatcher, MockAgent, setGlobalDispatcher } from "undici"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, @@ -49,27 +48,25 @@ describe("account selection", () => { runInTempDir(); setupMsw(); - const previousDispatcher = getGlobalDispatcher(); - let accountsApi: MockAgent; let terminal: string; beforeEach(() => { - // workers-auth lists accounts through undici, which MSW doesn't intercept. - accountsApi = new MockAgent(); - accountsApi.disableNetConnect(); - const api = accountsApi.get("https://api.test"); const page = { page: 1, total_pages: 1 }; - api - .intercept({ path: "/client/v4/accounts?page=1" }) - .reply(200, { success: true, result: accounts, result_info: page }); - api.intercept({ path: "/client/v4/memberships?page=1" }).reply(200, { - success: true, - result: accounts.map((account) => ({ account })), - result_info: page, - }); - setGlobalDispatcher(accountsApi); - server.use( + http.get(`${TEST_BASE_URL}/accounts`, () => + HttpResponse.json({ + success: true, + result: accounts, + result_info: page, + }) + ), + http.get(`${TEST_BASE_URL}/memberships`, () => + HttpResponse.json({ + success: true, + result: accounts.map((account) => ({ account })), + result_info: page, + }) + ), http.get(`${TEST_BASE_URL}/accounts/:accountId/pages/projects`, () => HttpResponse.json(createFetchResult([])) ) @@ -91,10 +88,8 @@ describe("account selection", () => { } }); - afterEach(async () => { + afterEach(() => { vi.restoreAllMocks(); - setGlobalDispatcher(previousDispatcher); - await accountsApi.close(); }); function run(...flags: string[]) { diff --git a/packages/cli/src/__tests__/commands/ai-run.test.ts b/packages/cli/src/__tests__/commands/ai-run.test.ts index f4e888bfc..63298382c 100644 --- a/packages/cli/src/__tests__/commands/ai-run.test.ts +++ b/packages/cli/src/__tests__/commands/ai-run.test.ts @@ -1,6 +1,6 @@ import { readFileSync, writeFileSync } from "node:fs"; import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, @@ -776,7 +776,7 @@ describe("cf ai run", () => { }); it("validates and previews without running under --dry-run", async () => { - // No run handler: `onUnhandledRequest: "error"` proves nothing was + // No run handler: `onUnhandledFrame: "error"` proves nothing was // sent to the inference endpoint. server.use(schemaHandler()); diff --git a/packages/cli/src/__tests__/commands/auth/profiles.test.ts b/packages/cli/src/__tests__/commands/auth/profiles.test.ts index 66d563943..0e7c8b97c 100644 --- a/packages/cli/src/__tests__/commands/auth/profiles.test.ts +++ b/packages/cli/src/__tests__/commands/auth/profiles.test.ts @@ -7,9 +7,8 @@ import { mockConsoleMethods, runInTempDir, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; -import { getGlobalDispatcher, MockAgent, setGlobalDispatcher } from "undici"; -import { afterAll, beforeAll, describe, expect, it, vi } from "vite-plus/test"; +import { http, HttpResponse } from "msw/http"; +import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { server, setupMsw, TEST_BASE_URL } from "../../helpers/msw.js"; import { runCf } from "../../helpers/run-cf.js"; @@ -28,8 +27,6 @@ describe("cf auth profiles", () => { runInTempDir(); setupMsw(); const std = mockConsoleMethods(); - const mockAgent = new MockAgent(); - const previousDispatcher = getGlobalDispatcher(); const store = createCfProfileStore({ logger: { debug: () => {}, @@ -40,19 +37,13 @@ describe("cf auth profiles", () => { }, }); - beforeAll(() => { - mockAgent.disableNetConnect(); - mockAgent - .get("https://dash.cloudflare.com") - .intercept({ path: "/oauth2/revoke", method: "POST" }) - .reply(200, "") - .persist(); - setGlobalDispatcher(mockAgent); - }); - - afterAll(async () => { - setGlobalDispatcher(previousDispatcher); - await mockAgent.close(); + beforeEach(() => { + server.use( + http.post( + "https://dash.cloudflare.com/oauth2/revoke", + () => new HttpResponse("") + ) + ); }); it("activates, lists, and deactivates a named profile", async () => { diff --git a/packages/cli/src/__tests__/commands/auth/whoami.test.ts b/packages/cli/src/__tests__/commands/auth/whoami.test.ts index ba1b62c9d..22ac731df 100644 --- a/packages/cli/src/__tests__/commands/auth/whoami.test.ts +++ b/packages/cli/src/__tests__/commands/auth/whoami.test.ts @@ -2,8 +2,7 @@ import { mockConsoleMethods, runInTempDir, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; -import { getGlobalDispatcher, MockAgent, setGlobalDispatcher } from "undici"; +import { http, HttpResponse } from "msw/http"; import { describe, expect, it } from "vite-plus/test"; import { server, setupMsw, TEST_BASE_URL } from "../../helpers/msw.js"; import { runCf } from "../../helpers/run-cf.js"; @@ -23,48 +22,34 @@ describe("cf auth whoami", () => { ) ); - const mockAgent = new MockAgent(); - mockAgent.disableNetConnect(); - const api = mockAgent.get("https://api.test"); - api - .intercept({ - path: "/client/v4/accounts?page=1", - method: "GET", - }) - .reply(200, { - success: true, - result: [ - { id: "account-1", name: "Account One", settings: {} }, - { id: "account-2", name: "Account Two", settings: {} }, - { id: "account-3", name: "Account Three", settings: {} }, - ], - result_info: { page: 1, total_pages: 1 }, - }); - api - .intercept({ - path: "/client/v4/memberships?page=1", - method: "GET", - }) - .reply(200, { - success: true, - result: [ - { account: { id: "account-1", name: "Account One" } }, - { account: { id: "account-3", name: "Account Three" } }, - ], - result_info: { page: 1, total_pages: 1 }, - }); - const previousDispatcher = getGlobalDispatcher(); - setGlobalDispatcher(mockAgent); + server.use( + http.get(`${TEST_BASE_URL}/accounts`, () => + HttpResponse.json({ + success: true, + result: [ + { id: "account-1", name: "Account One", settings: {} }, + { id: "account-2", name: "Account Two", settings: {} }, + { id: "account-3", name: "Account Three", settings: {} }, + ], + result_info: { page: 1, total_pages: 1 }, + }) + ), + http.get(`${TEST_BASE_URL}/memberships`, () => + HttpResponse.json({ + success: true, + result: [ + { account: { id: "account-1", name: "Account One" } }, + { account: { id: "account-3", name: "Account Three" } }, + ], + result_info: { page: 1, total_pages: 1 }, + }) + ) + ); - try { - await runCf(["auth", "whoami"], { - CLOUDFLARE_API_TOKEN: "test-token", - CLOUDFLARE_API_BASE_URL: TEST_BASE_URL, - }); - } finally { - setGlobalDispatcher(previousDispatcher); - await mockAgent.close(); - } + await runCf(["auth", "whoami"], { + CLOUDFLARE_API_TOKEN: "test-token", + CLOUDFLARE_API_BASE_URL: TEST_BASE_URL, + }); expect(JSON.parse(std.out)).toMatchObject({ authenticated: true, diff --git a/packages/cli/src/__tests__/commands/body-bypass-query-params.test.ts b/packages/cli/src/__tests__/commands/body-bypass-query-params.test.ts index f13b86c18..e5743f85b 100644 --- a/packages/cli/src/__tests__/commands/body-bypass-query-params.test.ts +++ b/packages/cli/src/__tests__/commands/body-bypass-query-params.test.ts @@ -1,5 +1,5 @@ import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, diff --git a/packages/cli/src/__tests__/commands/container-images.test.ts b/packages/cli/src/__tests__/commands/container-images.test.ts index 714abe3e7..55f9756ec 100644 --- a/packages/cli/src/__tests__/commands/container-images.test.ts +++ b/packages/cli/src/__tests__/commands/container-images.test.ts @@ -3,7 +3,7 @@ import { mockConsoleMethods, runInTempDir, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { USER_AGENT } from "../../version.js"; import { server, setupMsw, TEST_BASE_URL } from "../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/containers-ssh.test.ts b/packages/cli/src/__tests__/commands/containers-ssh.test.ts index 3e03de0d2..ed5990102 100644 --- a/packages/cli/src/__tests__/commands/containers-ssh.test.ts +++ b/packages/cli/src/__tests__/commands/containers-ssh.test.ts @@ -8,7 +8,7 @@ import { mockConsoleMethods, runInTempDir, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, diff --git a/packages/cli/src/__tests__/commands/d1.test.ts b/packages/cli/src/__tests__/commands/d1.test.ts index a2332ccff..6c31fcaca 100644 --- a/packages/cli/src/__tests__/commands/d1.test.ts +++ b/packages/cli/src/__tests__/commands/d1.test.ts @@ -1,5 +1,5 @@ import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, @@ -27,7 +27,7 @@ import { runCf } from "../helpers/run-cf.js"; * * `runInTempDir` isolates HOME/XDG so a developer's stored OAuth token * can't substitute for the fake env token under test. The MSW server - * uses `onUnhandledRequest: "error"`, so any request that escapes the + * uses `onUnhandledFrame: "error"`, so any request that escapes the * mocks fails the test loudly rather than reaching the real API. */ describe("cf d1 (network)", () => { @@ -171,7 +171,7 @@ describe("cf d1 (network)", () => { it("delete without --force — aborts before any request", async () => { // No DELETE handler registered: a request would trip the MSW - // onUnhandledRequest:"error" guard. + // onUnhandledFrame:"error" guard. const { exitCode } = await runCf(["d1", "delete", "db-1"], ENV); expect(exitCode).toBe(1); diff --git a/packages/cli/src/__tests__/commands/deploy/assets.test.ts b/packages/cli/src/__tests__/commands/deploy/assets.test.ts index 99d2cbb93..ee587d222 100644 --- a/packages/cli/src/__tests__/commands/deploy/assets.test.ts +++ b/packages/cli/src/__tests__/commands/deploy/assets.test.ts @@ -3,7 +3,7 @@ import { runInTempDir, seed, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { createMockDeployContext } from "../../helpers/mock-deploy-context.js"; import { createFetchResult, msw, setupMsw } from "../../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/deploy/errors.test.ts b/packages/cli/src/__tests__/commands/deploy/errors.test.ts index 0cc5e88a8..4ecb15a52 100644 --- a/packages/cli/src/__tests__/commands/deploy/errors.test.ts +++ b/packages/cli/src/__tests__/commands/deploy/errors.test.ts @@ -3,7 +3,7 @@ import { runInTempDir, seed, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { createMockDeployContext } from "../../helpers/mock-deploy-context.js"; import { createFetchResult, msw, setupMsw } from "../../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/deploy/helpers.ts b/packages/cli/src/__tests__/commands/deploy/helpers.ts index a7c220bc0..28e69914a 100644 --- a/packages/cli/src/__tests__/commands/deploy/helpers.ts +++ b/packages/cli/src/__tests__/commands/deploy/helpers.ts @@ -1,6 +1,6 @@ import { existsSync, readFileSync } from "node:fs"; import { resolve } from "node:path"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { onTestFinished } from "vite-plus/test"; import { makeExecutable, nodeScript } from "../../helpers/executable.js"; import { createFetchResult, msw } from "../../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/deploy/index.test.ts b/packages/cli/src/__tests__/commands/deploy/index.test.ts index 83179415c..ae4b3b481 100644 --- a/packages/cli/src/__tests__/commands/deploy/index.test.ts +++ b/packages/cli/src/__tests__/commands/deploy/index.test.ts @@ -4,7 +4,7 @@ import { runInTempDir, seed, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { createMockDeployContext } from "../../helpers/mock-deploy-context.js"; import { createFetchResult, msw, setupMsw } from "../../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/deploy/routes.test.ts b/packages/cli/src/__tests__/commands/deploy/routes.test.ts index 755a222f8..d29de8e89 100644 --- a/packages/cli/src/__tests__/commands/deploy/routes.test.ts +++ b/packages/cli/src/__tests__/commands/deploy/routes.test.ts @@ -3,7 +3,7 @@ import { runInTempDir, seed, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { createMockDeployContext } from "../../helpers/mock-deploy-context.js"; import { createFetchResult, msw, setupMsw } from "../../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/kv.test.ts b/packages/cli/src/__tests__/commands/kv.test.ts index 137e8b04b..70f5d7977 100644 --- a/packages/cli/src/__tests__/commands/kv.test.ts +++ b/packages/cli/src/__tests__/commands/kv.test.ts @@ -1,5 +1,5 @@ import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, @@ -27,7 +27,7 @@ import { runCf } from "../helpers/run-cf.js"; * rather than the JSON console.log path. * - **Delete confirmation.** `kv namespaces delete` runs through * `confirmDelete`; without `--force` in a non-TTY it aborts before - * any request (proven by the `onUnhandledRequest: "error"` guard). + * any request (proven by the `onUnhandledFrame: "error"` guard). * * `runInTempDir` isolates HOME/XDG so a developer's stored OAuth token * can't substitute for the fake env token under test. @@ -147,7 +147,7 @@ describe("cf kv (network)", () => { it("namespaces delete without --force — aborts before any request", async () => { // No DELETE handler registered: if a request fired, the MSW - // onUnhandledRequest:"error" guard would fail the test. + // onUnhandledFrame:"error" guard would fail the test. const { exitCode } = await runCf( ["kv", "namespaces", "delete", "ns-1"], ENV @@ -220,7 +220,7 @@ describe("cf kv (network)", () => { }); it("--dry-run prints the planned request without hitting the network", async () => { - // No handler: a real request would trip onUnhandledRequest:"error". + // No handler: a real request would trip onUnhandledFrame:"error". const { exitCode } = await runCf( ["kv", "namespaces", "create", "--title", "x", "--dry-run"], ENV diff --git a/packages/cli/src/__tests__/commands/migrations/apply.test.ts b/packages/cli/src/__tests__/commands/migrations/apply.test.ts index 2e134af3a..c9e5e5a9f 100644 --- a/packages/cli/src/__tests__/commands/migrations/apply.test.ts +++ b/packages/cli/src/__tests__/commands/migrations/apply.test.ts @@ -1,6 +1,6 @@ import fs from "node:fs"; import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, diff --git a/packages/cli/src/__tests__/commands/migrations/create.test.ts b/packages/cli/src/__tests__/commands/migrations/create.test.ts index 36d3cc74e..bb69b16f2 100644 --- a/packages/cli/src/__tests__/commands/migrations/create.test.ts +++ b/packages/cli/src/__tests__/commands/migrations/create.test.ts @@ -13,7 +13,7 @@ import { runCf } from "../../helpers/run-cf.js"; /** * `cf d1 migrations create`. Entirely local: MSW is armed with no handlers and - * `onUnhandledRequest: "error"`, so any outbound request would fail the + * `onUnhandledFrame: "error"`, so any outbound request would fail the * test — which is the assertion that this command needs no credentials. */ describe("cf d1 migrations create", () => { diff --git a/packages/cli/src/__tests__/commands/migrations/list.test.ts b/packages/cli/src/__tests__/commands/migrations/list.test.ts index d757c34af..1693b5a0c 100644 --- a/packages/cli/src/__tests__/commands/migrations/list.test.ts +++ b/packages/cli/src/__tests__/commands/migrations/list.test.ts @@ -1,6 +1,6 @@ import fs from "node:fs"; import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, diff --git a/packages/cli/src/__tests__/commands/previews-deploy-containers.test.ts b/packages/cli/src/__tests__/commands/previews-deploy-containers.test.ts index 8372666a1..1568a80e5 100644 --- a/packages/cli/src/__tests__/commands/previews-deploy-containers.test.ts +++ b/packages/cli/src/__tests__/commands/previews-deploy-containers.test.ts @@ -4,7 +4,7 @@ import { runInTempDir, seed, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { createMockDeployContext } from "../helpers/mock-deploy-context.js"; import { createFetchResult, msw, setupMsw } from "../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/r2.test.ts b/packages/cli/src/__tests__/commands/r2.test.ts index 80a55ce1b..c817522aa 100644 --- a/packages/cli/src/__tests__/commands/r2.test.ts +++ b/packages/cli/src/__tests__/commands/r2.test.ts @@ -1,5 +1,5 @@ import { runInTempDir, seed } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, @@ -26,7 +26,7 @@ import { runCf } from "../helpers/run-cf.js"; * * `runInTempDir` isolates HOME/XDG so a developer's stored OAuth token * can't substitute for the fake env token under test. The MSW server - * uses `onUnhandledRequest: "error"`, so any request that escapes the + * uses `onUnhandledFrame: "error"`, so any request that escapes the * mocks fails the test loudly rather than reaching the real API. */ describe("cf r2 buckets (network)", () => { @@ -261,7 +261,7 @@ describe("cf r2 buckets (network)", () => { it("delete without --force — aborts before any request", async () => { // No DELETE handler registered: a request would trip the MSW - // onUnhandledRequest:"error" guard. + // onUnhandledFrame:"error" guard. const { exitCode } = await runCf( ["r2", "buckets", "delete", "my-bucket"], ENV diff --git a/packages/cli/src/__tests__/commands/registrar-check.test.ts b/packages/cli/src/__tests__/commands/registrar-check.test.ts index 52aa6a56b..bc4bde0cc 100644 --- a/packages/cli/src/__tests__/commands/registrar-check.test.ts +++ b/packages/cli/src/__tests__/commands/registrar-check.test.ts @@ -1,5 +1,5 @@ import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, diff --git a/packages/cli/src/__tests__/commands/registrar-create.test.ts b/packages/cli/src/__tests__/commands/registrar-create.test.ts index 47ff19bd9..e9f0d89dd 100644 --- a/packages/cli/src/__tests__/commands/registrar-create.test.ts +++ b/packages/cli/src/__tests__/commands/registrar-create.test.ts @@ -1,6 +1,6 @@ import { readFileSync, writeFileSync } from "node:fs"; import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, diff --git a/packages/cli/src/__tests__/commands/triggers-deploy.test.ts b/packages/cli/src/__tests__/commands/triggers-deploy.test.ts index c6aa6fb42..c2fe2620a 100644 --- a/packages/cli/src/__tests__/commands/triggers-deploy.test.ts +++ b/packages/cli/src/__tests__/commands/triggers-deploy.test.ts @@ -4,7 +4,7 @@ import { runInTempDir, seed, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { createMockDeployContext } from "../helpers/mock-deploy-context.js"; import { createFetchResult, msw, setupMsw } from "../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/tunnels/run.test.ts b/packages/cli/src/__tests__/commands/tunnels/run.test.ts index 69b7f0384..cd6d6054b 100644 --- a/packages/cli/src/__tests__/commands/tunnels/run.test.ts +++ b/packages/cli/src/__tests__/commands/tunnels/run.test.ts @@ -1,6 +1,6 @@ import { writeFile } from "node:fs/promises"; import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { runCloudflared } from "../../../commands/cloudflared.js"; import { server, setupMsw, TEST_BASE_URL } from "../../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/tunnels/tail.test.ts b/packages/cli/src/__tests__/commands/tunnels/tail.test.ts index 55c9235d1..50ae05e7b 100644 --- a/packages/cli/src/__tests__/commands/tunnels/tail.test.ts +++ b/packages/cli/src/__tests__/commands/tunnels/tail.test.ts @@ -1,6 +1,6 @@ import { writeFile } from "node:fs/promises"; import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { runCloudflared } from "../../../commands/cloudflared.js"; import { server, setupMsw, TEST_BASE_URL } from "../../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/versions-upload.test.ts b/packages/cli/src/__tests__/commands/versions-upload.test.ts index e0d36e7e4..fbf45b11e 100644 --- a/packages/cli/src/__tests__/commands/versions-upload.test.ts +++ b/packages/cli/src/__tests__/commands/versions-upload.test.ts @@ -4,7 +4,7 @@ import { runInTempDir, seed, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { createMockDeployContext } from "../helpers/mock-deploy-context.js"; import { createFetchResult, msw, setupMsw } from "../helpers/msw.js"; diff --git a/packages/cli/src/__tests__/commands/zones-list.test.ts b/packages/cli/src/__tests__/commands/zones-list.test.ts index 36be64e1b..4a6d13282 100644 --- a/packages/cli/src/__tests__/commands/zones-list.test.ts +++ b/packages/cli/src/__tests__/commands/zones-list.test.ts @@ -1,6 +1,6 @@ import { writeFile } from "node:fs/promises"; import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, @@ -31,7 +31,7 @@ import { runCf } from "../helpers/run-cf.js"; * token under test. * * NOTE: these are unit tests — the MSW server is configured with - * `onUnhandledRequest: "error"`, so any request that escapes the mocks + * `onUnhandledFrame: "error"`, so any request that escapes the mocks * (i.e. a real call to api.cloudflare.com) fails the test loudly rather * than silently hitting the network. */ @@ -227,7 +227,7 @@ describe("cf zones list (network)", () => { it("--dry-run prints the planned request without hitting the network", async () => { // No handler registered: if --dry-run made a request, the - // onUnhandledRequest:"error" guard would fail the test. + // onUnhandledFrame:"error" guard would fail the test. const { exitCode } = await runCf( ["zones", "list", "--status", "active", "--dry-run"], ENV diff --git a/packages/cli/src/__tests__/helpers/msw.ts b/packages/cli/src/__tests__/helpers/msw.ts index 056f92b2d..8bada8b0a 100644 --- a/packages/cli/src/__tests__/helpers/msw.ts +++ b/packages/cli/src/__tests__/helpers/msw.ts @@ -7,15 +7,16 @@ import type { RequestHandler } from "msw"; * * cf's generated SDK issues every request via * `globalThis.fetch` (see its `client.js`: `this._fetch = options.fetch - * ?? globalThis.fetch`). MSW's Node server patches `globalThis.fetch`, - * so no undici shim is needed here — unlike `packages/wrangler-tests`, - * where wrangler imports `fetch` from undici and the setup has to - * re-export the globals. + * ?? globalThis.fetch`). MSW's Node server intercepts global fetch. + * The test-only Undici alias routes workers-auth's imported fetch through + * it too, so account lookups and OAuth calls use the same handlers. + * Replacing Undici's global dispatcher after `server.listen()` would + * disable MSW's fetch interception. * * Tests point the SDK at a stable test origin by setting * `CLOUDFLARE_API_BASE_URL` (honoured by `createCommandClient` in * `lib/auth.ts`) and register handlers for that origin. The default - * `onUnhandledRequest: "error"` turns any un-mocked outbound request + * `onUnhandledFrame: "error"` turns any un-mocked outbound request * into a loud failure rather than a silent real network call — a unit * suite must never reach the real Cloudflare API. */ @@ -45,7 +46,7 @@ export const msw = server; */ export function setupMsw(...handlers: RequestHandler[]): void { beforeAll(() => { - server.listen({ onUnhandledRequest: "error" }); + server.listen({ onUnhandledFrame: "error" }); if (handlers.length > 0) { server.use(...handlers); } diff --git a/packages/cli/src/__tests__/helpers/undici-mock.ts b/packages/cli/src/__tests__/helpers/undici-mock.ts new file mode 100644 index 000000000..781f9f593 --- /dev/null +++ b/packages/cli/src/__tests__/helpers/undici-mock.ts @@ -0,0 +1,9 @@ +// Keep Undici's API while routing fetch through the implementation MSW intercepts. +export * from "../../../node_modules/undici/index.js"; + +export const fetch: typeof globalThis.fetch = (...args) => + globalThis.fetch(...args); +export const FormData = globalThis.FormData; +export const Headers = globalThis.Headers; +export const Request = globalThis.Request; +export const Response = globalThis.Response; diff --git a/packages/cli/src/__tests__/lib/input-validation.test.ts b/packages/cli/src/__tests__/lib/input-validation.test.ts index 891c872c0..e5feefb08 100644 --- a/packages/cli/src/__tests__/lib/input-validation.test.ts +++ b/packages/cli/src/__tests__/lib/input-validation.test.ts @@ -1,5 +1,5 @@ import { runInTempDir, seed } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, diff --git a/packages/cli/src/__tests__/lib/resolve-network.test.ts b/packages/cli/src/__tests__/lib/resolve-network.test.ts index 47409e954..c6206c698 100644 --- a/packages/cli/src/__tests__/lib/resolve-network.test.ts +++ b/packages/cli/src/__tests__/lib/resolve-network.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, expect, it } from "vite-plus/test"; import { createCloudflareClientWithToken } from "../../lib/auth.js"; import { resolveZoneId } from "../../lib/resolve.js"; @@ -81,7 +81,7 @@ describe("resolveZoneId (network)", () => { }); it("returns an ID input verbatim without making a request", async () => { - // No handler: onUnhandledRequest:"error" fails the test if the + // No handler: onUnhandledFrame:"error" fails the test if the // SDK is consulted for an input that already looks like an ID. const id = "023e105f4ecef8ad9ca31a8372d0c353"; await expect(resolveZoneId(client(), "acct-net-2", id)).resolves.toBe(id); diff --git a/packages/cli/src/__tests__/query-params-runtime.test.ts b/packages/cli/src/__tests__/query-params-runtime.test.ts index fd4b7db3a..6e96437fc 100644 --- a/packages/cli/src/__tests__/query-params-runtime.test.ts +++ b/packages/cli/src/__tests__/query-params-runtime.test.ts @@ -1,5 +1,5 @@ import { runInTempDir } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { setupServer } from "msw/node"; import { afterAll, @@ -38,7 +38,7 @@ describe("query params on the wire", () => { const server = setupServer(); let lastUrl: URL | undefined; - beforeAll(() => server.listen({ onUnhandledRequest: "error" })); + beforeAll(() => server.listen({ onUnhandledFrame: "error" })); afterEach(() => { server.resetHandlers(); lastUrl = undefined; diff --git a/packages/cli/vite.config.ts b/packages/cli/vite.config.ts index 32bc5e6c5..8384cfaf8 100644 --- a/packages/cli/vite.config.ts +++ b/packages/cli/vite.config.ts @@ -1,5 +1,6 @@ import { cpSync, existsSync, mkdirSync } from "node:fs"; import { join } from "node:path"; +import { fileURLToPath } from "node:url"; import { defineConfig } from "vite-plus"; const testBundle = process.env.CF_TEST_BUNDLE === "1"; @@ -70,12 +71,23 @@ export default defineConfig({ unstubEnvs: true, server: { deps: { - inline: ["@cloudflare/workers-utils"], + // Native loading of workers-auth would bypass the Undici alias. + inline: ["@cloudflare/workers-utils", "@cloudflare/workers-auth"], }, }, }, resolve: { - alias: [{ find: /^vitest$/, replacement: "vite-plus/test" }], + alias: [ + { find: /^vitest$/, replacement: "vite-plus/test" }, + // MSW intercepts global fetch. Route workers-auth's imported Undici + // fetch through it so the same handlers guard every API request. + { + find: /^undici$/, + replacement: fileURLToPath( + new URL("./src/__tests__/helpers/undici-mock.ts", import.meta.url) + ), + }, + ], }, pack: { deps: { diff --git a/packages/wrangler-tests/package.json b/packages/wrangler-tests/package.json index e5b848579..6fe08fd14 100644 --- a/packages/wrangler-tests/package.json +++ b/packages/wrangler-tests/package.json @@ -19,7 +19,7 @@ "ci-info": "^4.4.0", "get-port": "^7.2.0", "miniflare": "5.20261006.1-alpha", - "msw": "2.15.0", + "msw": "3.0.2", "prompts": "^2.4.2", "shell-quote": "^1.12.0", "tinyexec": "^1.3.1", diff --git a/packages/wrangler-tests/src/__tests__/ai-search.test.ts b/packages/wrangler-tests/src/__tests__/ai-search.test.ts index 25467cd7d..65b879d82 100644 --- a/packages/wrangler-tests/src/__tests__/ai-search.test.ts +++ b/packages/wrangler-tests/src/__tests__/ai-search.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/ai.test.ts b/packages/wrangler-tests/src/__tests__/ai.test.ts index c57198d4f..77cbdc002 100644 --- a/packages/wrangler-tests/src/__tests__/ai.test.ts +++ b/packages/wrangler-tests/src/__tests__/ai.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/browser-run.test.ts b/packages/wrangler-tests/src/__tests__/browser-run.test.ts index 28ebe96c0..47e3e92e9 100644 --- a/packages/wrangler-tests/src/__tests__/browser-run.test.ts +++ b/packages/wrangler-tests/src/__tests__/browser-run.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/cert.test.ts b/packages/wrangler-tests/src/__tests__/cert.test.ts index dd69ecd2e..3373fc136 100644 --- a/packages/wrangler-tests/src/__tests__/cert.test.ts +++ b/packages/wrangler-tests/src/__tests__/cert.test.ts @@ -1,5 +1,5 @@ import { writeFileSync } from "node:fs"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, it, test } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/containers/delete.test.ts b/packages/wrangler-tests/src/__tests__/containers/delete.test.ts index aa5e78ea6..b1180439a 100644 --- a/packages/wrangler-tests/src/__tests__/containers/delete.test.ts +++ b/packages/wrangler-tests/src/__tests__/containers/delete.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { createFetchResult, msw } from "../helpers/msw"; diff --git a/packages/wrangler-tests/src/__tests__/containers/info.test.ts b/packages/wrangler-tests/src/__tests__/containers/info.test.ts index 1be2d2c2e..383398020 100644 --- a/packages/wrangler-tests/src/__tests__/containers/info.test.ts +++ b/packages/wrangler-tests/src/__tests__/containers/info.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/containers/instances.test.ts b/packages/wrangler-tests/src/__tests__/containers/instances.test.ts index 0dc83acbf..b53831247 100644 --- a/packages/wrangler-tests/src/__tests__/containers/instances.test.ts +++ b/packages/wrangler-tests/src/__tests__/containers/instances.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/containers/list.test.ts b/packages/wrangler-tests/src/__tests__/containers/list.test.ts index b8063295c..79fa2166e 100644 --- a/packages/wrangler-tests/src/__tests__/containers/list.test.ts +++ b/packages/wrangler-tests/src/__tests__/containers/list.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/containers/registries.test.ts b/packages/wrangler-tests/src/__tests__/containers/registries.test.ts index 4c7df3a8f..ee4135d66 100644 --- a/packages/wrangler-tests/src/__tests__/containers/registries.test.ts +++ b/packages/wrangler-tests/src/__tests__/containers/registries.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/containers/ssh.test.ts b/packages/wrangler-tests/src/__tests__/containers/ssh.test.ts index ca4fbd6b9..91f067970 100644 --- a/packages/wrangler-tests/src/__tests__/containers/ssh.test.ts +++ b/packages/wrangler-tests/src/__tests__/containers/ssh.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { createFetchResult, msw } from "../helpers/msw"; diff --git a/packages/wrangler-tests/src/__tests__/d1/create.test.ts b/packages/wrangler-tests/src/__tests__/d1/create.test.ts index 2684a1738..a2d1ec0f4 100644 --- a/packages/wrangler-tests/src/__tests__/d1/create.test.ts +++ b/packages/wrangler-tests/src/__tests__/d1/create.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/d1/delete.test.ts b/packages/wrangler-tests/src/__tests__/d1/delete.test.ts index 666d26e0f..60d878df2 100644 --- a/packages/wrangler-tests/src/__tests__/d1/delete.test.ts +++ b/packages/wrangler-tests/src/__tests__/d1/delete.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/d1/execute.test.ts b/packages/wrangler-tests/src/__tests__/d1/execute.test.ts index c782a1219..fd91f6e8e 100644 --- a/packages/wrangler-tests/src/__tests__/d1/execute.test.ts +++ b/packages/wrangler-tests/src/__tests__/d1/execute.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/d1/export.test.ts b/packages/wrangler-tests/src/__tests__/d1/export.test.ts index 5c3c360c4..e10c6690d 100644 --- a/packages/wrangler-tests/src/__tests__/d1/export.test.ts +++ b/packages/wrangler-tests/src/__tests__/d1/export.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/d1/info.test.ts b/packages/wrangler-tests/src/__tests__/d1/info.test.ts index 1a44008a6..bb749df4e 100644 --- a/packages/wrangler-tests/src/__tests__/d1/info.test.ts +++ b/packages/wrangler-tests/src/__tests__/d1/info.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/d1/list.test.ts b/packages/wrangler-tests/src/__tests__/d1/list.test.ts index 4d919457a..80c0cca00 100644 --- a/packages/wrangler-tests/src/__tests__/d1/list.test.ts +++ b/packages/wrangler-tests/src/__tests__/d1/list.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/d1/migrate.test.ts b/packages/wrangler-tests/src/__tests__/d1/migrate.test.ts index d8cc1021c..c56d42fcf 100644 --- a/packages/wrangler-tests/src/__tests__/d1/migrate.test.ts +++ b/packages/wrangler-tests/src/__tests__/d1/migrate.test.ts @@ -1,5 +1,5 @@ import fs from "node:fs"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it, vi } from "vite-plus/test"; import { mockConsoleMethods } from "../helpers/mock-console"; import { useMockIsTTY } from "../helpers/mock-istty"; diff --git a/packages/wrangler-tests/src/__tests__/d1/timeTravel.test.ts b/packages/wrangler-tests/src/__tests__/d1/timeTravel.test.ts index c0429edf0..7901dfb0a 100644 --- a/packages/wrangler-tests/src/__tests__/d1/timeTravel.test.ts +++ b/packages/wrangler-tests/src/__tests__/d1/timeTravel.test.ts @@ -1,5 +1,5 @@ import { writeWranglerConfig } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it, vi } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/delete.test.ts b/packages/wrangler-tests/src/__tests__/delete.test.ts index c1f2635c1..22b39ac69 100644 --- a/packages/wrangler-tests/src/__tests__/delete.test.ts +++ b/packages/wrangler-tests/src/__tests__/delete.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/email-routing.test.ts b/packages/wrangler-tests/src/__tests__/email-routing.test.ts index ddd9b52ae..b005a8f8f 100644 --- a/packages/wrangler-tests/src/__tests__/email-routing.test.ts +++ b/packages/wrangler-tests/src/__tests__/email-routing.test.ts @@ -1,5 +1,5 @@ import { writeFileSync } from "node:fs"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it, vi } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; @@ -119,10 +119,6 @@ describe("email routing commands", () => { const std = mockConsoleMethods(); beforeEach(() => { - // @ts-expect-error we're using a very simple setTimeout mock here - vi.spyOn(global, "setTimeout").mockImplementation((fn, _period) => { - setImmediate(fn); - }); setIsTTY(true); }); @@ -622,10 +618,6 @@ describe("email sending commands", () => { const std = mockConsoleMethods(); beforeEach(() => { - // @ts-expect-error we're using a very simple setTimeout mock here - vi.spyOn(global, "setTimeout").mockImplementation((fn, _period) => { - setImmediate(fn); - }); setIsTTY(true); }); diff --git a/packages/wrangler-tests/src/__tests__/flagship.test.ts b/packages/wrangler-tests/src/__tests__/flagship.test.ts index 9e42f0947..ef4fc2e9e 100644 --- a/packages/wrangler-tests/src/__tests__/flagship.test.ts +++ b/packages/wrangler-tests/src/__tests__/flagship.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/capture-requests-from.ts b/packages/wrangler-tests/src/__tests__/helpers/capture-requests-from.ts index a495f2503..5cf162d7a 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/capture-requests-from.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/capture-requests-from.ts @@ -1,6 +1,6 @@ -import { http } from "msw"; +import { http } from "msw/http"; import { msw } from "./msw"; -import type { HttpHandler } from "msw"; +import type { HttpHandler } from "msw/http"; /** * Sets up an msw http handler that captures each incoming request context. diff --git a/packages/wrangler-tests/src/__tests__/helpers/mock-get-pages-upload-token.ts b/packages/wrangler-tests/src/__tests__/helpers/mock-get-pages-upload-token.ts index ae6d8eca0..385b16eec 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/mock-get-pages-upload-token.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/mock-get-pages-upload-token.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { msw } from "./msw"; import type { ExpectStatic } from "vite-plus/test"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/mock-get-zone-from-host.ts b/packages/wrangler-tests/src/__tests__/helpers/mock-get-zone-from-host.ts index fa007873a..7b399de05 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/mock-get-zone-from-host.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/mock-get-zone-from-host.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { msw } from "./msw"; import type { RequestHandlerOptions } from "msw"; import type { ExpectStatic } from "vite-plus/test"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/mock-kv.ts b/packages/wrangler-tests/src/__tests__/helpers/mock-kv.ts index 32580f9ee..e36b55e61 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/mock-kv.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/mock-kv.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { createFetchResult, msw } from "./msw"; import type { KVNamespaceInfo, NamespaceKeyInfo } from "../../kv/helpers"; import type { ExpectStatic } from "vite-plus/test"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/mock-legacy-script.ts b/packages/wrangler-tests/src/__tests__/helpers/mock-legacy-script.ts index bfd1e6bb8..09244fccb 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/mock-legacy-script.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/mock-legacy-script.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { assert } from "vite-plus/test"; import { msw } from "./msw"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/mock-oauth-flow.ts b/packages/wrangler-tests/src/__tests__/helpers/mock-oauth-flow.ts index b48c6bd2d..408e4cdd2 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/mock-oauth-flow.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/mock-oauth-flow.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { Request } from "undici"; import openInBrowser from "../../open-in-browser"; import { mockHttpServer } from "./mock-http-server"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/mock-secrets-store.ts b/packages/wrangler-tests/src/__tests__/helpers/mock-secrets-store.ts index a3cf66f95..5884dd1b3 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/mock-secrets-store.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/mock-secrets-store.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { createFetchResult, msw } from "./msw"; import type { CreateSecret, diff --git a/packages/wrangler-tests/src/__tests__/helpers/mock-upload-worker.ts b/packages/wrangler-tests/src/__tests__/helpers/mock-upload-worker.ts index 6678c514b..abc0017f5 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/mock-upload-worker.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/mock-upload-worker.ts @@ -1,5 +1,5 @@ import { ParseError } from "@cloudflare/workers-utils"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; // eslint-disable-next-line no-restricted-imports import { expect } from "vite-plus/test"; import { @@ -21,7 +21,7 @@ import type { RawEnvironment, WorkerMetadata, } from "@cloudflare/workers-utils"; -import type { HttpResponseResolver } from "msw"; +import type { HttpResponseResolver } from "msw/http"; /** Create a mock handler for the request to upload a worker script. */ export function mockUploadWorkerRequest( diff --git a/packages/wrangler-tests/src/__tests__/helpers/mock-worker-settings.ts b/packages/wrangler-tests/src/__tests__/helpers/mock-worker-settings.ts index e73717005..a26524a45 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/mock-worker-settings.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/mock-worker-settings.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { assert } from "vite-plus/test"; import { msw } from "./msw"; import type { Settings } from "../../deployment-bundle/bindings"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/mock-workers-subdomain.ts b/packages/wrangler-tests/src/__tests__/helpers/mock-workers-subdomain.ts index 98848419c..ede8965d3 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/mock-workers-subdomain.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/mock-workers-subdomain.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { assert } from "vite-plus/test"; import { createFetchResult, msw } from "./msw"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/mock-zone-routes.ts b/packages/wrangler-tests/src/__tests__/helpers/mock-zone-routes.ts index 4e4454238..1faae66bd 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/mock-zone-routes.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/mock-zone-routes.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { msw } from "./msw"; import type { RequestHandlerOptions } from "msw"; import type { ExpectStatic } from "vite-plus/test"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/access.ts b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/access.ts index 83fbf0527..a20941aad 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/access.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/access.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; export default [ http.get("https://access-protected.com/", () => { diff --git a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/deployments.ts b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/deployments.ts index 1cc6afe10..c06266a2d 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/deployments.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/deployments.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { assert } from "vite-plus/test"; import { createFetchResult } from "../index"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/namespaces.ts b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/namespaces.ts index f430aa791..4071703c5 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/namespaces.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/namespaces.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { createFetchResult } from "../index"; export const mswSuccessNamespacesHandlers = [ diff --git a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/oauth.ts b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/oauth.ts index 97768d95a..6cb6ea4dd 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/oauth.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/oauth.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; export const mswSuccessOauthHandlers = [ http.all( diff --git a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/r2.ts b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/r2.ts index b0d264f1d..ccb5b9263 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/r2.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/r2.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { createFetchResult } from "../index"; type StorageClass = "Standard" | "InfrequentAccess"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/script.ts b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/script.ts index 6e07f8a2c..41860ec1d 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/script.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/script.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { createFetchResult } from "../index"; import type { WorkerMetadata } from "@cloudflare/workers-utils"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/user.ts b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/user.ts index b3f2b24f6..fa42138d5 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/user.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/user.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { createFetchResult } from "../index"; export const mswSuccessUserHandlers = [ diff --git a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/versions.ts b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/versions.ts index 11603e6e7..0fab1cc02 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/versions.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/versions.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { createFetchResult } from "../index"; import type { ApiDeployment, ApiVersion } from "../../../../versions/types"; diff --git a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/zones.ts b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/zones.ts index dc194be02..353221a70 100644 --- a/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/zones.ts +++ b/packages/wrangler-tests/src/__tests__/helpers/msw/handlers/zones.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { createFetchResult } from "../index"; export default [ diff --git a/packages/wrangler-tests/src/__tests__/hyperdrive.test.ts b/packages/wrangler-tests/src/__tests__/hyperdrive.test.ts index 67c24f5ec..aada4f9f5 100644 --- a/packages/wrangler-tests/src/__tests__/hyperdrive.test.ts +++ b/packages/wrangler-tests/src/__tests__/hyperdrive.test.ts @@ -1,5 +1,5 @@ -import { http, HttpResponse } from "msw"; -import { afterEach, beforeEach, describe, it, vi } from "vite-plus/test"; +import { http, HttpResponse } from "msw/http"; +import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; import { clearDialogs } from "./helpers/mock-dialogs"; @@ -71,10 +71,6 @@ describe("hyperdrive commands", () => { const std = mockConsoleMethods(); beforeEach(() => { - // @ts-expect-error we're using a very simple setTimeout mock here - vi.spyOn(global, "setTimeout").mockImplementation((fn, _period) => { - setImmediate(fn); - }); setIsTTY(true); }); diff --git a/packages/wrangler-tests/src/__tests__/kv/bulk.test.ts b/packages/wrangler-tests/src/__tests__/kv/bulk.test.ts index 68f5b59fe..8b425e1e8 100644 --- a/packages/wrangler-tests/src/__tests__/kv/bulk.test.ts +++ b/packages/wrangler-tests/src/__tests__/kv/bulk.test.ts @@ -1,5 +1,5 @@ import { writeFileSync } from "node:fs"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/kv/key.test.ts b/packages/wrangler-tests/src/__tests__/kv/key.test.ts index 020298b18..126a3263b 100644 --- a/packages/wrangler-tests/src/__tests__/kv/key.test.ts +++ b/packages/wrangler-tests/src/__tests__/kv/key.test.ts @@ -1,5 +1,5 @@ import { writeFileSync } from "node:fs"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it, vi } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/kv/namespace.test.ts b/packages/wrangler-tests/src/__tests__/kv/namespace.test.ts index 9483d992e..c73935456 100644 --- a/packages/wrangler-tests/src/__tests__/kv/namespace.test.ts +++ b/packages/wrangler-tests/src/__tests__/kv/namespace.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/logout.test.ts b/packages/wrangler-tests/src/__tests__/logout.test.ts index 0eba86d10..2772b5f8b 100644 --- a/packages/wrangler-tests/src/__tests__/logout.test.ts +++ b/packages/wrangler-tests/src/__tests__/logout.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, writeFileSync } from "node:fs"; import { dirname, join } from "node:path"; import { getGlobalConfigPath } from "@cloudflare/workers-utils"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockConsoleMethods } from "./helpers/mock-console"; import { msw } from "./helpers/msw"; diff --git a/packages/wrangler-tests/src/__tests__/mtls-certificates.test.ts b/packages/wrangler-tests/src/__tests__/mtls-certificates.test.ts index 4274267d6..700ad755b 100644 --- a/packages/wrangler-tests/src/__tests__/mtls-certificates.test.ts +++ b/packages/wrangler-tests/src/__tests__/mtls-certificates.test.ts @@ -1,5 +1,5 @@ import { writeFileSync } from "node:fs"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/pages/project-delete.test.ts b/packages/wrangler-tests/src/__tests__/pages/project-delete.test.ts index 9d4c7dc46..9815f0fdf 100644 --- a/packages/wrangler-tests/src/__tests__/pages/project-delete.test.ts +++ b/packages/wrangler-tests/src/__tests__/pages/project-delete.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { createFetchResult, msw } from "../helpers/msw"; diff --git a/packages/wrangler-tests/src/__tests__/pages/project-list.test.ts b/packages/wrangler-tests/src/__tests__/pages/project-list.test.ts index 2ff4912e1..239be3914 100644 --- a/packages/wrangler-tests/src/__tests__/pages/project-list.test.ts +++ b/packages/wrangler-tests/src/__tests__/pages/project-list.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/pipelines.test.ts b/packages/wrangler-tests/src/__tests__/pipelines.test.ts index ebbb282c7..0a67cc55e 100644 --- a/packages/wrangler-tests/src/__tests__/pipelines.test.ts +++ b/packages/wrangler-tests/src/__tests__/pipelines.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/profiles.test.ts b/packages/wrangler-tests/src/__tests__/profiles.test.ts index 818517a18..f5075b058 100644 --- a/packages/wrangler-tests/src/__tests__/profiles.test.ts +++ b/packages/wrangler-tests/src/__tests__/profiles.test.ts @@ -1,7 +1,7 @@ import { mkdirSync, writeFileSync } from "node:fs"; import os from "node:os"; import path from "node:path"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, it, vi } from "vite-plus/test"; import { getProfileStore } from "../../../cli/src/lib/oauth/index"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/queues/mock-utils.ts b/packages/wrangler-tests/src/__tests__/queues/mock-utils.ts index 2104fb8bc..41c9923cc 100644 --- a/packages/wrangler-tests/src/__tests__/queues/mock-utils.ts +++ b/packages/wrangler-tests/src/__tests__/queues/mock-utils.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; // eslint-disable-next-line no-restricted-imports import { expect } from "vite-plus/test"; import { msw } from "../helpers/msw"; diff --git a/packages/wrangler-tests/src/__tests__/queues/queues-subscription.test.ts b/packages/wrangler-tests/src/__tests__/queues/queues-subscription.test.ts index 7c755ce8d..6de35c605 100644 --- a/packages/wrangler-tests/src/__tests__/queues/queues-subscription.test.ts +++ b/packages/wrangler-tests/src/__tests__/queues/queues-subscription.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/queues/queues.test.ts b/packages/wrangler-tests/src/__tests__/queues/queues.test.ts index 48251f5bf..9ccac0407 100644 --- a/packages/wrangler-tests/src/__tests__/queues/queues.test.ts +++ b/packages/wrangler-tests/src/__tests__/queues/queues.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/r2/bucket.test.ts b/packages/wrangler-tests/src/__tests__/r2/bucket.test.ts index 112899ac9..db4a6cf58 100644 --- a/packages/wrangler-tests/src/__tests__/r2/bucket.test.ts +++ b/packages/wrangler-tests/src/__tests__/r2/bucket.test.ts @@ -1,5 +1,5 @@ import { writeFileSync } from "node:fs"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; // eslint-disable-next-line no-restricted-imports import { afterEach, beforeEach, describe, expect, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; diff --git a/packages/wrangler-tests/src/__tests__/r2/local-uploads.test.ts b/packages/wrangler-tests/src/__tests__/r2/local-uploads.test.ts index 2166f2a5b..7030ebc75 100644 --- a/packages/wrangler-tests/src/__tests__/r2/local-uploads.test.ts +++ b/packages/wrangler-tests/src/__tests__/r2/local-uploads.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, expect, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/rollback.test.ts b/packages/wrangler-tests/src/__tests__/rollback.test.ts index 5d86631bc..95ce0fb64 100644 --- a/packages/wrangler-tests/src/__tests__/rollback.test.ts +++ b/packages/wrangler-tests/src/__tests__/rollback.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, test } from "vite-plus/test"; import { collectCLIOutput } from "./helpers/collect-cli-output"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; diff --git a/packages/wrangler-tests/src/__tests__/secret.test.ts b/packages/wrangler-tests/src/__tests__/secret.test.ts index e87d52c49..78e9d9d14 100644 --- a/packages/wrangler-tests/src/__tests__/secret.test.ts +++ b/packages/wrangler-tests/src/__tests__/secret.test.ts @@ -1,6 +1,6 @@ import { writeFileSync } from "node:fs"; import { Readable } from "node:stream"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/secrets-store.test.ts b/packages/wrangler-tests/src/__tests__/secrets-store.test.ts index 48d004c50..c78c21927 100644 --- a/packages/wrangler-tests/src/__tests__/secrets-store.test.ts +++ b/packages/wrangler-tests/src/__tests__/secrets-store.test.ts @@ -2,8 +2,8 @@ import { mockCreateDate, mockModifiedDate, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; -import { afterEach, beforeEach, describe, it, vi } from "vite-plus/test"; +import { http, HttpResponse } from "msw/http"; +import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; import { clearDialogs, mockConfirm } from "./helpers/mock-dialogs"; @@ -27,10 +27,6 @@ describe("secrets-store stores commands", () => { const std = mockConsoleMethods(); beforeEach(() => { - // @ts-expect-error we're using a very simple setTimeout mock here - vi.spyOn(global, "setTimeout").mockImplementation((fn, _period) => { - setImmediate(fn); - }); setIsTTY(true); }); @@ -124,10 +120,6 @@ describe("secrets-store secrets commands", () => { const std = mockConsoleMethods(); beforeEach(() => { - // @ts-expect-error we're using a very simple setTimeout mock here - vi.spyOn(global, "setTimeout").mockImplementation((fn, _period) => { - setImmediate(fn); - }); setIsTTY(true); }); diff --git a/packages/wrangler-tests/src/__tests__/tail.test.ts b/packages/wrangler-tests/src/__tests__/tail.test.ts index 8ada6d63c..7c9944fc2 100644 --- a/packages/wrangler-tests/src/__tests__/tail.test.ts +++ b/packages/wrangler-tests/src/__tests__/tail.test.ts @@ -16,7 +16,7 @@ streaming lands; until then they are unreferenced. */ import { setTimeout } from "node:timers/promises"; import { writeWranglerConfig } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/tunnel/tunnel.test.ts b/packages/wrangler-tests/src/__tests__/tunnel/tunnel.test.ts index b10fb6160..9040c283e 100644 --- a/packages/wrangler-tests/src/__tests__/tunnel/tunnel.test.ts +++ b/packages/wrangler-tests/src/__tests__/tunnel/tunnel.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/turnstile.test.ts b/packages/wrangler-tests/src/__tests__/turnstile.test.ts index 1277a3e24..59c2cb836 100644 --- a/packages/wrangler-tests/src/__tests__/turnstile.test.ts +++ b/packages/wrangler-tests/src/__tests__/turnstile.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/vectorize/vectorize.test.ts b/packages/wrangler-tests/src/__tests__/vectorize/vectorize.test.ts index 242b57409..e8cecf8cc 100644 --- a/packages/wrangler-tests/src/__tests__/vectorize/vectorize.test.ts +++ b/packages/wrangler-tests/src/__tests__/vectorize/vectorize.test.ts @@ -1,5 +1,5 @@ -import { http, HttpResponse } from "msw"; -import { afterEach, beforeEach, describe, it, vi } from "vite-plus/test"; +import { http, HttpResponse } from "msw/http"; +import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; import { clearDialogs, mockConfirm } from "../helpers/mock-dialogs"; @@ -52,11 +52,6 @@ describe("vectorize commands", () => { const std = mockConsoleMethods(); beforeEach(() => { - // @ts-expect-error we're using a very simple setTimeout mock here - vi.spyOn(global, "setTimeout").mockImplementation((fn, _period) => { - // eslint-disable-next-line @typescript-eslint/no-implied-eval -- fn is always a function in this mock - setImmediate(fn); - }); setIsTTY(true); }); diff --git a/packages/wrangler-tests/src/__tests__/vectorize/vectorize.upsert.test.ts b/packages/wrangler-tests/src/__tests__/vectorize/vectorize.upsert.test.ts index 1fd5f80dc..7ca7c6570 100644 --- a/packages/wrangler-tests/src/__tests__/vectorize/vectorize.upsert.test.ts +++ b/packages/wrangler-tests/src/__tests__/vectorize/vectorize.upsert.test.ts @@ -1,6 +1,6 @@ import crypto from "node:crypto"; import { writeFileSync } from "node:fs"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/versions/secrets/bulk.test.ts b/packages/wrangler-tests/src/__tests__/versions/secrets/bulk.test.ts index 8f8e5b0fb..b4e10537d 100644 --- a/packages/wrangler-tests/src/__tests__/versions/secrets/bulk.test.ts +++ b/packages/wrangler-tests/src/__tests__/versions/secrets/bulk.test.ts @@ -1,5 +1,5 @@ import { writeFileSync } from "node:fs"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it, test } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../../helpers/mock-account-id"; import { mockConsoleMethods } from "../../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/versions/secrets/delete.test.ts b/packages/wrangler-tests/src/__tests__/versions/secrets/delete.test.ts index 0e6f16516..1822fed5f 100644 --- a/packages/wrangler-tests/src/__tests__/versions/secrets/delete.test.ts +++ b/packages/wrangler-tests/src/__tests__/versions/secrets/delete.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, describe, it, test } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../../helpers/mock-account-id"; import { mockConsoleMethods } from "../../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/versions/secrets/list.test.ts b/packages/wrangler-tests/src/__tests__/versions/secrets/list.test.ts index e08bf8467..0e1a3a8d1 100644 --- a/packages/wrangler-tests/src/__tests__/versions/secrets/list.test.ts +++ b/packages/wrangler-tests/src/__tests__/versions/secrets/list.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, test } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../../helpers/mock-account-id"; import { mockConsoleMethods } from "../../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/versions/secrets/put.test.ts b/packages/wrangler-tests/src/__tests__/versions/secrets/put.test.ts index a0d59f1d8..bc35ab820 100644 --- a/packages/wrangler-tests/src/__tests__/versions/secrets/put.test.ts +++ b/packages/wrangler-tests/src/__tests__/versions/secrets/put.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, describe, it, test } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../../helpers/mock-account-id"; import { mockConsoleMethods } from "../../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/versions/versions.deploy.test.ts b/packages/wrangler-tests/src/__tests__/versions/versions.deploy.test.ts index d2a3efd8e..063c2d1b4 100644 --- a/packages/wrangler-tests/src/__tests__/versions/versions.deploy.test.ts +++ b/packages/wrangler-tests/src/__tests__/versions/versions.deploy.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { describe, it, test } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { createFetchResult, msw } from "../helpers/msw"; diff --git a/packages/wrangler-tests/src/__tests__/versions/versions.list.test.ts b/packages/wrangler-tests/src/__tests__/versions/versions.list.test.ts index e3f0861d3..7c9239f22 100644 --- a/packages/wrangler-tests/src/__tests__/versions/versions.list.test.ts +++ b/packages/wrangler-tests/src/__tests__/versions/versions.list.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { beforeEach, describe, test } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "../helpers/mock-account-id"; import { mockConsoleMethods } from "../helpers/mock-console"; diff --git a/packages/wrangler-tests/src/__tests__/vitest.setup.ts b/packages/wrangler-tests/src/__tests__/vitest.setup.ts index 2fce92963..000d53a7b 100644 --- a/packages/wrangler-tests/src/__tests__/vitest.setup.ts +++ b/packages/wrangler-tests/src/__tests__/vitest.setup.ts @@ -8,7 +8,7 @@ process.env.CLI_VERSION = "x.x.x"; import { PassThrough } from "node:stream"; import chalk from "chalk"; -import { passthrough } from "msw"; +import { HttpNetworkFrame } from "msw/experimental"; import { afterAll, afterEach, beforeAll, beforeEach, vi } from "vite-plus/test"; import { msw } from "./helpers/msw"; @@ -103,11 +103,16 @@ vi.mock("../update-check"); beforeAll(() => { msw.listen({ - onUnhandledRequest: (request) => { + onUnhandledFrame: ({ frame, defaults }) => { + if (!(frame instanceof HttpNetworkFrame)) { + return defaults.error(); + } + + const { request } = frame.data; const { hostname, href } = new URL(request.url); const localHostnames = ["localhost", "127.0.0.1"]; // TODO: add other local hostnames if you need them if (localHostnames.includes(hostname)) { - return passthrough(); + return; } throw new Error( diff --git a/packages/wrangler-tests/src/__tests__/vpc.test.ts b/packages/wrangler-tests/src/__tests__/vpc.test.ts index ad1748551..14e72903d 100644 --- a/packages/wrangler-tests/src/__tests__/vpc.test.ts +++ b/packages/wrangler-tests/src/__tests__/vpc.test.ts @@ -1,5 +1,5 @@ -import { http, HttpResponse } from "msw"; -import { afterEach, beforeEach, describe, it, vi } from "vite-plus/test"; +import { http, HttpResponse } from "msw/http"; +import { afterEach, beforeEach, describe, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; import { clearDialogs } from "./helpers/mock-dialogs"; @@ -92,10 +92,6 @@ describe("vpc service commands", () => { const std = mockConsoleMethods(); beforeEach(() => { - // @ts-expect-error we're using a very simple setTimeout mock here - vi.spyOn(global, "setTimeout").mockImplementation((fn, _period) => { - setImmediate(fn); - }); setIsTTY(true); }); diff --git a/packages/wrangler-tests/src/__tests__/worker-namespace.test.ts b/packages/wrangler-tests/src/__tests__/worker-namespace.test.ts index ce8929687..6eed194de 100644 --- a/packages/wrangler-tests/src/__tests__/worker-namespace.test.ts +++ b/packages/wrangler-tests/src/__tests__/worker-namespace.test.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; // eslint-disable-next-line no-restricted-imports import { beforeEach, describe, expect, it } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; diff --git a/packages/wrangler-tests/src/__tests__/workflows.test.ts b/packages/wrangler-tests/src/__tests__/workflows.test.ts index f804b2a4c..77bd42532 100644 --- a/packages/wrangler-tests/src/__tests__/workflows.test.ts +++ b/packages/wrangler-tests/src/__tests__/workflows.test.ts @@ -5,7 +5,7 @@ import { mockQueuedDate, mockStartDate, } from "@cloudflare/workers-utils/test-helpers"; -import { http, HttpResponse } from "msw"; +import { http, HttpResponse } from "msw/http"; import { afterEach, beforeEach, describe, it, vi } from "vite-plus/test"; import { mockAccountId, mockApiToken } from "./helpers/mock-account-id"; import { mockConsoleMethods } from "./helpers/mock-console"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ef2de94c..a7bc56425 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -301,10 +301,10 @@ importers: version: file:vendor/cloudflare-forge-0.1.0.tgz '@cloudflare/forge-transformer-sdk-ts': specifier: file:../../vendor/cloudflare-forge-transformer-sdk-ts-0.1.0.tgz - version: file:vendor/cloudflare-forge-transformer-sdk-ts-0.1.0.tgz(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)) + version: file:vendor/cloudflare-forge-transformer-sdk-ts-0.1.0.tgz(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)) '@cloudflare/workers-auth': specifier: 0.13.1 - version: 0.13.1(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(vitest@5.0.3) + version: 0.13.1(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(vitest@5.0.3) '@cloudflare/workers-utils': specifier: 0.47.1 version: 0.47.1(vitest@5.0.3) @@ -336,8 +336,8 @@ importers: specifier: 10.2.6 version: 10.2.6 msw: - specifier: 2.15.0 - version: 2.15.0(@types/node@25.9.9)(typescript@6.0.3) + specifier: 3.0.2 + version: 3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) semver: specifier: 7.8.5 version: 7.8.5 @@ -355,7 +355,7 @@ importers: version: 7.30.0 vite-plus: specifier: 'catalog:' - version: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + version: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) yargs: specifier: 18.2.0 version: 18.2.0 @@ -393,8 +393,8 @@ importers: specifier: 5.20261006.1-alpha version: 5.20261006.1-alpha(@types/node@25.9.9) msw: - specifier: 2.15.0 - version: 2.15.0(@types/node@25.9.9)(typescript@6.0.3) + specifier: 3.0.2 + version: 3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -412,7 +412,7 @@ importers: version: 7.30.0 vite-plus: specifier: 'catalog:' - version: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + version: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) ws: specifier: 8.22.0 version: 8.22.0 @@ -1180,10 +1180,17 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@msw/url@0.1.2': + resolution: {integrity: sha512-DdeBLQxQ+ZrtmwEmaj7GQ7lbzPCgbbbyAqOz/I4ulo68hwBpfdNvQJ5bmihJUkAAKOeCmqCIG3OFZGosqFN4mA==} + '@mswjs/interceptors@0.41.9': resolution: {integrity: sha512-VVPPgHyQ6ShqnrmDWuxjmUIsO9gWyOZFmuOfLd9LfBGQJwZfy0gvv9pbHSJuoFNIYC7ZDX9aoFwowjcdSC4E8w==} engines: {node: '>=18'} + '@mswjs/interceptors@0.45.7': + resolution: {integrity: sha512-PPZQBiojRuy1jJQoUqbrJhoac47GC1GwRazDrYwwbE70zfqMkOY/5a+Du4hp3vlPUXLt/um4TMcmRabmooAkxw==} + engines: {node: '>=22'} + '@napi-rs/wasm-runtime@1.1.5': resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==} peerDependencies: @@ -1214,6 +1221,9 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@open-draft/until@3.0.1': + resolution: {integrity: sha512-s7/9ELP4aP9YZtW7RJaa0Xf3RISaRH9+EFN18FtykJYRHGNrl8f9ymvoNXzjhrjmftFvkQudtuDU9RYhk0xs3A==} + '@oxc-project/runtime@0.153.0': resolution: {integrity: sha512-rXJvtlsVG4xJNq64hiaUTIatE7jbBgpa6l4QgmEa2jLgT3ULH9scUBkpsC9N1DfmqixLEyT6DuK6OSXozziIlw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1882,12 +1892,18 @@ packages: '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} @@ -2405,10 +2421,23 @@ packages: resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} + cookie@2.0.1: + resolution: {integrity: sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w==} + engines: {node: '>=22'} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -2798,6 +2827,9 @@ packages: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + msw@2.15.0: resolution: {integrity: sha512-2wQAmKkQKxRuXvYJxVhPGG0wZNBQyD06oJvxqw90XqLvptdqxdlHrFUfEteKkpaNORX3Xzc+HtEl/q0nfmN2wQ==} engines: {node: '>=18'} @@ -2808,6 +2840,19 @@ packages: typescript: optional: true + msw@3.0.2: + resolution: {integrity: sha512-/74rddlgCmlHvrXUkuYKoUjDJTiP4Nrz2uyIpOTLtxJNCS+2yY+DlLfzzRUc61cvRjCo6Jvi2+vRNZyZQa1j4A==} + engines: {node: '>=22.12.0'} + hasBin: true + peerDependencies: + graphql: '>=16' + typescript: '>=5.9.x' + peerDependenciesMeta: + graphql: + optional: true + typescript: + optional: true + mute-stream@3.0.0: resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==} engines: {node: ^20.17.0 || >=22.9.0} @@ -3019,6 +3064,9 @@ packages: rettime@0.11.11: resolution: {integrity: sha512-ILJRqVWBCTlg9r42fFgwVZx1gnFAcQF8mRoMkbgQfIrjEDf9nbBFDFx00oloOa+Q869FUtaYDXZvEfnecQSCoQ==} + rettime@0.11.12: + resolution: {integrity: sha512-5ExtR1ppiDBQkVoPw5NAqdbfH4Iq2VOmQKHMtUoaFxA9bo2krzFYBtyq6K40xxbYp+2w/YOr6D+1ToF6tTN53A==} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -3192,6 +3240,10 @@ packages: resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} engines: {node: '>=16'} + tough-cookie@6.0.2: + resolution: {integrity: sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==} + engines: {node: '>=16'} + ts-dedent@2.3.0: resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==} engines: {node: '>=6.10'} @@ -3649,10 +3701,10 @@ snapshots: - utf-8-validate - vitest - '@cloudflare/forge-transformer-sdk-ts@file:vendor/cloudflare-forge-transformer-sdk-ts-0.1.0.tgz(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))': + '@cloudflare/forge-transformer-sdk-ts@file:vendor/cloudflare-forge-transformer-sdk-ts-0.1.0.tgz(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))': dependencies: - oxfmt: 0.57.0(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)) - oxlint: 1.72.0(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)) + oxfmt: 0.57.0(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)) + oxlint: 1.72.0(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)) tar: 7.5.20 typescript: 6.0.3 transitivePeerDependencies: @@ -3714,13 +3766,13 @@ snapshots: '@cloudflare/workerd-windows-64@1.20261006.1': optional: true - '@cloudflare/workers-auth@0.13.1(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(vitest@5.0.3)': + '@cloudflare/workers-auth@0.13.1(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(vitest@5.0.3)': dependencies: '@cloudflare/workers-utils': 0.47.1(vitest@5.0.3) undici: 7.29.1 optionalDependencies: - msw: 2.15.0(@types/node@25.9.9)(typescript@6.0.3) - vitest: 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/browser-preview@5.0.3)(@vitest/ui@5.0.3)(@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + msw: 3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + vitest: 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/browser-preview@5.0.3)(@vitest/ui@5.0.3)(@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) '@cloudflare/workers-types@5.20261009.1': {} @@ -3730,7 +3782,7 @@ snapshots: dotenv: 16.3.1 undici: 7.29.1 optionalDependencies: - vitest: 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/browser-preview@5.0.3)(@vitest/ui@5.0.3)(@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + vitest: 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/browser-preview@5.0.3)(@vitest/ui@5.0.3)(@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) '@cspotcode/source-map-support@0.8.1': dependencies: @@ -4087,6 +4139,8 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 + '@msw/url@0.1.2': {} + '@mswjs/interceptors@0.41.9': dependencies: '@open-draft/deferred-promise': 2.2.0 @@ -4095,6 +4149,18 @@ snapshots: is-node-process: 1.2.0 outvariant: 1.4.3 strict-event-emitter: 0.5.1 + optional: true + + '@mswjs/interceptors@0.45.7(supports-color@10.2.2)': + dependencies: + '@open-draft/until': 3.0.1 + '@types/debug': 4.1.13 + debug: 4.4.3(supports-color@10.2.2) + is-node-process: 1.2.0 + outvariant: 1.4.3 + rettime: 0.11.12 + transitivePeerDependencies: + - supports-color '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: @@ -4115,16 +4181,22 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@open-draft/deferred-promise@2.2.0': {} + '@open-draft/deferred-promise@2.2.0': + optional: true - '@open-draft/deferred-promise@3.0.0': {} + '@open-draft/deferred-promise@3.0.0': + optional: true '@open-draft/logger@0.3.0': dependencies: is-node-process: 1.2.0 outvariant: 1.4.3 + optional: true - '@open-draft/until@2.1.0': {} + '@open-draft/until@2.1.0': + optional: true + + '@open-draft/until@3.0.1': {} '@oxc-project/runtime@0.153.0': {} @@ -4478,10 +4550,16 @@ snapshots: '@types/deep-eql': 4.0.2 assertion-error: 2.0.1 + '@types/debug@4.1.13': + dependencies: + '@types/ms': 2.1.0 + '@types/deep-eql@4.0.2': {} '@types/estree@1.0.9': {} + '@types/ms@2.1.0': {} + '@types/node@12.20.55': {} '@types/node@25.9.9': @@ -4501,7 +4579,8 @@ snapshots: '@types/shell-quote@1.7.5': {} - '@types/statuses@2.0.6': {} + '@types/statuses@2.0.6': + optional: true '@types/yargs-parser@21.0.3': {} @@ -4572,6 +4651,38 @@ snapshots: - vue-tsc - yaml + '@vitest/browser-preview@5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(vitest@5.0.3)(yaml@2.9.0)': + dependencies: + '@testing-library/dom': 10.4.2 + '@testing-library/user-event': 14.6.7(@testing-library/dom@10.4.2) + '@vitest/browser': 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(vitest@5.0.3)(yaml@2.9.0) + vitest: 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/browser-preview@5.0.3)(@vitest/ui@5.0.3)(@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@types/node' + - '@typescript/native-preview' + - '@vitejs/devtools' + - '@volar/typescript' + - '@vue/language-core' + - bufferutil + - esbuild + - jiti + - less + - msw + - publint + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - typescript + - unplugin-unused + - unrun + - utf-8-validate + - vue-tsc + - yaml + '@vitest/browser@5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(vitest@5.0.3)(yaml@2.9.0)': dependencies: '@blazediff/core': 1.10.0 @@ -4610,6 +4721,44 @@ snapshots: - vue-tsc - yaml + '@vitest/browser@5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(vitest@5.0.3)(yaml@2.9.0)': + dependencies: + '@blazediff/core': 1.10.0 + '@vitest/mocker': 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + '@vitest/ui': 5.0.3(vitest@5.0.3) + '@vitest/utils': 5.0.3 + magic-string: 1.4.2 + pngjs: 7.0.0 + sirv: 3.0.2 + tinyrainbow: 3.2.0 + vitest: 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/browser-preview@5.0.3)(@vitest/ui@5.0.3)(@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + ws: 8.22.0 + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@types/node' + - '@typescript/native-preview' + - '@vitejs/devtools' + - '@volar/typescript' + - '@vue/language-core' + - bufferutil + - esbuild + - jiti + - less + - msw + - publint + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - typescript + - unplugin-unused + - unrun + - utf-8-validate + - vue-tsc + - yaml + '@vitest/mocker@5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)': dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -4642,6 +4791,38 @@ snapshots: - vue-tsc - yaml + '@vitest/mocker@5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@vitest/spy': 5.0.3 + estree-walker: 3.0.3 + magic-string: 1.4.2 + vite: '@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)' + optionalDependencies: + msw: 3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@types/node' + - '@typescript/native-preview' + - '@vitejs/devtools' + - '@volar/typescript' + - '@vue/language-core' + - esbuild + - jiti + - less + - publint + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - typescript + - unplugin-unused + - unrun + - vue-tsc + - yaml + '@vitest/pretty-format@5.0.3': dependencies: tinyrainbow: 3.2.0 @@ -4808,6 +4989,7 @@ snapshots: ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 + optional: true ansi-styles@5.2.0: {} @@ -4872,6 +5054,7 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + optional: true cliui@9.0.1: dependencies: @@ -4882,8 +5065,10 @@ snapshots: color-convert@2.0.1: dependencies: color-name: 1.1.4 + optional: true - color-name@1.1.4: {} + color-name@1.1.4: + optional: true command-exists@1.2.9: {} @@ -4891,12 +5076,20 @@ snapshots: cookie@1.1.1: {} + cookie@2.0.1: {} + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + debug@4.4.3(supports-color@10.2.2): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 10.2.2 + dequal@2.0.3: {} detect-indent@6.1.0: {} @@ -4917,7 +5110,8 @@ snapshots: emoji-regex@10.6.0: {} - emoji-regex@8.0.0: {} + emoji-regex@8.0.0: + optional: true emoji-regex@9.2.2: {} @@ -5095,7 +5289,8 @@ snapshots: graceful-fs@4.2.11: {} - graphql@16.14.2: {} + graphql@16.14.2: + optional: true headers-polyfill@5.0.1: dependencies: @@ -5112,7 +5307,8 @@ snapshots: is-extglob@2.1.1: {} - is-fullwidth-code-point@3.0.0: {} + is-fullwidth-code-point@3.0.0: + optional: true is-fullwidth-code-point@4.0.0: {} @@ -5264,6 +5460,8 @@ snapshots: mrmime@2.0.1: {} + ms@2.1.3: {} + msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3): dependencies: '@inquirer/confirm': 6.3.1(@types/node@25.9.9) @@ -5288,6 +5486,48 @@ snapshots: typescript: 6.0.3 transitivePeerDependencies: - '@types/node' + optional: true + + msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0): + dependencies: + '@inquirer/confirm': 6.3.1(@types/node@25.9.9) + '@msw/url': 0.1.2 + '@mswjs/interceptors': 0.45.7(supports-color@10.2.2) + cookie: 2.0.1 + headers-polyfill: 5.0.1 + is-node-process: 1.2.0 + outvariant: 1.4.3 + rettime: 0.11.12 + tough-cookie: 6.0.2 + type-fest: 5.7.0 + until-async: 3.0.2 + vite: '@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)' + yargs: 18.2.0 + optionalDependencies: + graphql: 16.14.2 + typescript: 6.0.3 + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@types/node' + - '@typescript/native-preview' + - '@vitejs/devtools' + - '@volar/typescript' + - '@vue/language-core' + - esbuild + - jiti + - less + - publint + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - unplugin-unused + - unrun + - vue-tsc + - yaml mute-stream@3.0.0: {} @@ -5315,7 +5555,7 @@ snapshots: outvariant@1.4.3: {} - oxfmt@0.57.0(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)): + oxfmt@0.57.0(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)): dependencies: tinypool: 2.1.0 optionalDependencies: @@ -5338,7 +5578,7 @@ snapshots: '@oxfmt/binding-win32-arm64-msvc': 0.57.0 '@oxfmt/binding-win32-ia32-msvc': 0.57.0 '@oxfmt/binding-win32-x64-msvc': 0.57.0 - vite-plus: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + vite-plus: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) oxfmt@0.72.0(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)): dependencies: @@ -5365,6 +5605,31 @@ snapshots: '@oxfmt/binding-win32-x64-msvc': 0.72.0 vite-plus: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + oxfmt@0.72.0(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)): + dependencies: + tinypool: 2.2.0 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.72.0 + '@oxfmt/binding-android-arm64': 0.72.0 + '@oxfmt/binding-darwin-arm64': 0.72.0 + '@oxfmt/binding-darwin-x64': 0.72.0 + '@oxfmt/binding-freebsd-x64': 0.72.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.72.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.72.0 + '@oxfmt/binding-linux-arm64-gnu': 0.72.0 + '@oxfmt/binding-linux-arm64-musl': 0.72.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.72.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.72.0 + '@oxfmt/binding-linux-riscv64-musl': 0.72.0 + '@oxfmt/binding-linux-s390x-gnu': 0.72.0 + '@oxfmt/binding-linux-x64-gnu': 0.72.0 + '@oxfmt/binding-linux-x64-musl': 0.72.0 + '@oxfmt/binding-openharmony-arm64': 0.72.0 + '@oxfmt/binding-win32-arm64-msvc': 0.72.0 + '@oxfmt/binding-win32-ia32-msvc': 0.72.0 + '@oxfmt/binding-win32-x64-msvc': 0.72.0 + vite-plus: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + oxlint-tsgolint@7.0.2003: optionalDependencies: '@oxlint-tsgolint/darwin-arm64': 7.0.2003 @@ -5374,7 +5639,7 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 7.0.2003 '@oxlint-tsgolint/win32-x64': 7.0.2003 - oxlint@1.72.0(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)): + oxlint@1.72.0(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.72.0 '@oxlint/binding-android-arm64': 1.72.0 @@ -5396,7 +5661,7 @@ snapshots: '@oxlint/binding-win32-ia32-msvc': 1.72.0 '@oxlint/binding-win32-x64-msvc': 1.72.0 oxlint-tsgolint: 7.0.2003 - vite-plus: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + vite-plus: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) oxlint@1.87.0(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)): optionalDependencies: @@ -5422,6 +5687,30 @@ snapshots: oxlint-tsgolint: 7.0.2003 vite-plus: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + oxlint@1.87.0(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)): + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.87.0 + '@oxlint/binding-android-arm64': 1.87.0 + '@oxlint/binding-darwin-arm64': 1.87.0 + '@oxlint/binding-darwin-x64': 1.87.0 + '@oxlint/binding-freebsd-x64': 1.87.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.87.0 + '@oxlint/binding-linux-arm-musleabihf': 1.87.0 + '@oxlint/binding-linux-arm64-gnu': 1.87.0 + '@oxlint/binding-linux-arm64-musl': 1.87.0 + '@oxlint/binding-linux-ppc64-gnu': 1.87.0 + '@oxlint/binding-linux-riscv64-gnu': 1.87.0 + '@oxlint/binding-linux-riscv64-musl': 1.87.0 + '@oxlint/binding-linux-s390x-gnu': 1.87.0 + '@oxlint/binding-linux-x64-gnu': 1.87.0 + '@oxlint/binding-linux-x64-musl': 1.87.0 + '@oxlint/binding-openharmony-arm64': 1.87.0 + '@oxlint/binding-win32-arm64-msvc': 1.87.0 + '@oxlint/binding-win32-ia32-msvc': 1.87.0 + '@oxlint/binding-win32-x64-msvc': 1.87.0 + oxlint-tsgolint: 7.0.2003 + vite-plus: 1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -5503,7 +5792,8 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - require-directory@2.1.1: {} + require-directory@2.1.1: + optional: true resolve-from@5.0.0: {} @@ -5514,7 +5804,10 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - rettime@0.11.11: {} + rettime@0.11.11: + optional: true + + rettime@0.11.12: {} reusify@1.1.0: {} @@ -5619,17 +5912,20 @@ snapshots: sprintf-js@1.0.3: {} - statuses@2.0.2: {} + statuses@2.0.2: + optional: true std-env@4.3.0: {} - strict-event-emitter@0.5.1: {} + strict-event-emitter@0.5.1: + optional: true string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + optional: true string-width@5.1.2: dependencies: @@ -5702,6 +5998,11 @@ snapshots: tough-cookie@6.0.1: dependencies: tldts: 7.4.3 + optional: true + + tough-cookie@6.0.2: + dependencies: + tldts: 7.4.3 ts-dedent@2.3.0: {} @@ -5801,6 +6102,65 @@ snapshots: - vue-tsc - yaml + vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0): + dependencies: + '@oxc-project/types': 0.153.0 + '@oxlint/plugins': 1.79.0 + '@vitest/browser': 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(vitest@5.0.3)(yaml@2.9.0) + '@vitest/browser-preview': 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(vitest@5.0.3)(yaml@2.9.0) + '@vitest/mocker': 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + '@vitest/pretty-format': 5.0.3 + '@vitest/snapshot': 5.0.3 + '@vitest/spy': 5.0.3 + '@vitest/utils': 5.0.3 + oxfmt: 0.72.0(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)) + oxlint: 1.87.0(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/ui@5.0.3)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)) + oxlint-tsgolint: 7.0.2003 + vite: '@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)' + vitest: 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/browser-preview@5.0.3)(@vitest/ui@5.0.3)(@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + optionalDependencies: + '@voidzero-dev/vite-plus-darwin-arm64': 1.1.0 + '@voidzero-dev/vite-plus-darwin-x64': 1.1.0 + '@voidzero-dev/vite-plus-linux-arm64-gnu': 1.1.0 + '@voidzero-dev/vite-plus-linux-arm64-musl': 1.1.0 + '@voidzero-dev/vite-plus-linux-x64-gnu': 1.1.0 + '@voidzero-dev/vite-plus-linux-x64-musl': 1.1.0 + '@voidzero-dev/vite-plus-win32-arm64-msvc': 1.1.0 + '@voidzero-dev/vite-plus-win32-x64-msvc': 1.1.0 + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@edge-runtime/vm' + - '@opentelemetry/api' + - '@types/node' + - '@typescript/native-preview' + - '@vitejs/devtools' + - '@vitest/coverage-istanbul' + - '@vitest/coverage-v8' + - '@vitest/ui' + - '@volar/typescript' + - '@vue/language-core' + - bufferutil + - esbuild + - happy-dom + - jiti + - jsdom + - less + - msw + - publint + - sass + - sass-embedded + - stylus + - sugarss + - svelte + - terser + - tsx + - typescript + - unplugin-unused + - unrun + - utf-8-validate + - vue-tsc + - yaml + vitest@5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/browser-preview@5.0.3)(@vitest/ui@5.0.3)(@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(esbuild@0.28.2)(msw@2.15.0(@types/node@25.9.9)(typescript@6.0.3))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0): dependencies: '@types/chai': 5.2.3 @@ -5844,6 +6204,49 @@ snapshots: - vue-tsc - yaml + vitest@5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitest/browser-preview@5.0.3)(@vitest/ui@5.0.3)(@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0): + dependencies: + '@types/chai': 5.2.3 + '@vitest/mocker': 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + chai: 6.2.2 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 + magic-string: 1.4.2 + obug: 2.2.1 + picomatch: 4.0.7 + std-env: 4.3.0 + tinybench: 6.1.4 + tinyexec: 1.3.1 + tinyglobby: 0.2.17 + vite: '@voidzero-dev/vite-plus-core@1.1.0(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)' + why-is-node-running: 3.2.1 + optionalDependencies: + '@types/node': 25.9.9 + '@vitest/browser-preview': 5.0.3(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(msw@3.0.2(@types/node@25.9.9)(@typescript/native-preview@7.0.0-dev.20260707.2)(esbuild@0.28.2)(graphql@16.14.2)(supports-color@10.2.2)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(vitest@5.0.3)(yaml@2.9.0) + '@vitest/ui': 5.0.3(vitest@5.0.3) + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@typescript/native-preview' + - '@vitejs/devtools' + - '@volar/typescript' + - '@vue/language-core' + - esbuild + - jiti + - less + - msw + - publint + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - typescript + - unplugin-unused + - unrun + - vue-tsc + - yaml + which@2.0.2: dependencies: isexe: 2.0.0 @@ -5881,6 +6284,7 @@ snapshots: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + optional: true wrap-ansi@8.1.0: dependencies: @@ -5904,7 +6308,8 @@ snapshots: yaml@2.9.0: {} - yargs-parser@21.1.1: {} + yargs-parser@21.1.1: + optional: true yargs-parser@22.0.0: {} @@ -5917,6 +6322,7 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + optional: true yargs@18.2.0: dependencies: