diff --git a/.changeset/c3-frameworks-update-15263.md b/.changeset/c3-frameworks-update-15263.md
new file mode 100644
index 00000000000..be15dc44081
--- /dev/null
+++ b/.changeset/c3-frameworks-update-15263.md
@@ -0,0 +1,11 @@
+---
+"create-cloudflare": patch
+---
+
+Update dependencies of "create-cloudflare"
+
+The following dependency versions have been updated:
+
+| Dependency | From | To |
+| ----------- | ------- | ------- |
+| create-vike | 0.0.675 | 0.0.677 |
diff --git a/.changeset/curly-codemods-juggle.md b/.changeset/curly-codemods-juggle.md
index 08b64994013..524a116060f 100644
--- a/.changeset/curly-codemods-juggle.md
+++ b/.changeset/curly-codemods-juggle.md
@@ -1,6 +1,6 @@
---
"@cloudflare/codemods": minor
-"@cloudflare/vitest-pool-workers": minor
+"@cloudflare/vitest-plugin": minor
---
Add a central CLI for Cloudflare codemods
diff --git a/.changeset/cyan-planets-ring.md b/.changeset/cyan-planets-ring.md
new file mode 100644
index 00000000000..9181b321929
--- /dev/null
+++ b/.changeset/cyan-planets-ring.md
@@ -0,0 +1,13 @@
+---
+"@cloudflare/deploy-helpers": minor
+"@cloudflare/workers-utils": minor
+"wrangler": minor
+---
+
+Add container support to worker previews
+
+Worker previews now support containers through a new `previews.containers` configuration block. Container configuration doesn't inherit, so declare containers explicitly in the `previews` block to enable them for previews. This mirrors how `previews.durable_objects` works today. Wrangler names each preview container application `{worker_name}_{preview_slug}_{class_name}`, normalising and shortening the result to what the API accepts. Either change appends a short digest of the composed name, so two names that would otherwise land on one stay distinct. An entry cannot set its own `name`, because application names are unique to an account and a fixed name would collide between two previews of the same Worker. A Durable Object class is backed by at most one container application, so the validator rejects two entries that share a `class_name`. Wrangler skips container applications bound to Durable Object classes that another Worker implements through `script_name`, because the implementing Worker owns its own container application. A binding is not required: a Durable Object declared through `migrations` or `exports` and reached only over `ctx.exports` can still back a container. Every entry must set `class_name`. A `previews.containers` entry whose `class_name` matches no Durable Object class at all is rejected before the preview deployment is created, so a typo fails loudly instead of producing a preview with no container.
+
+Wrangler creates the container applications on `wrangler preview`. Deleting a preview tears them down server side, so `wrangler preview delete` doesn't remove them.
+
+Container build and deploy progress prints to stdout. `wrangler preview --json` suppresses wrangler's own output so it doesn't interleave with the payload, and warnings and errors still go to stderr. Docker's build output and the progress spinner write to stdout directly and bypass that suppression, so parse `--json` from a non interactive shell, where the spinner is skipped, and prefer a prebuilt `image` over a Dockerfile.
diff --git a/.changeset/dependabot-update-15264.md b/.changeset/dependabot-update-15264.md
new file mode 100644
index 00000000000..9803d3c2f8c
--- /dev/null
+++ b/.changeset/dependabot-update-15264.md
@@ -0,0 +1,13 @@
+---
+"miniflare": patch
+"wrangler": patch
+---
+
+Update dependencies of "miniflare", "wrangler"
+
+The following dependency versions have been updated:
+
+| Dependency | From | To |
+| ------------------------- | ------------- | ------------- |
+| @cloudflare/workers-types | ^5.20260816.1 | ^5.20260819.1 |
+| workerd | 1.20260816.1 | 1.20260819.1 |
diff --git a/.changeset/rename-vitest-plugin.md b/.changeset/rename-vitest-plugin.md
new file mode 100644
index 00000000000..d83e1860204
--- /dev/null
+++ b/.changeset/rename-vitest-plugin.md
@@ -0,0 +1,23 @@
+---
+"@cloudflare/vitest-plugin": major
+---
+
+Rename `@cloudflare/vitest-pool-workers` to `@cloudflare/vitest-plugin` for the v1 release
+
+The package has been renamed from `@cloudflare/vitest-pool-workers` to `@cloudflare/vitest-plugin` to be clearer about it's usage.
+
+To migrate, run the codemod from the root of your project:
+
+```sh
+npx @cloudflare/codemods vitest:pool-workers-to-vitest-plugin
+```
+
+This handles the whole rename for you:
+
+- Replaces the dependency in your `package.json`, moving plain version ranges to `^1.0.0` while preserving `workspace:`/`catalog:`/`link:`/`file:` protocol references, along with any `overrides`, `resolutions` and `pnpm.overrides` entries.
+- Rewrites imports such as `import { cloudflareTest } from "@cloudflare/vitest-pool-workers"` to `import { cloudflareTest } from "@cloudflare/vitest-plugin"`, preserving any subpaths.
+- Updates the `types` entry in your test `tsconfig.json` from `@cloudflare/vitest-pool-workers/types` to `@cloudflare/vitest-plugin/types`.
+
+Pass `--dry-run` to preview the changes first, or `--files ` to restrict which files are considered.
+
+If you would rather migrate by hand, the only changes needed are the dependency name in `package.json`, the package specifier in any `import`/`require` of the plugin, and the `types` entry in your test `tsconfig.json`.
diff --git a/.changeset/tidy-ravens-test.md b/.changeset/tidy-ravens-test.md
new file mode 100644
index 00000000000..ea786aafe4f
--- /dev/null
+++ b/.changeset/tidy-ravens-test.md
@@ -0,0 +1,5 @@
+---
+"create-cloudflare": patch
+---
+
+Update Hello World templates to use `@cloudflare/vitest-pool-workers` 0.22
diff --git a/.github/skills/issue-review.md b/.github/skills/issue-review.md
index 5984969c8fa..150133d0f24 100644
--- a/.github/skills/issue-review.md
+++ b/.github/skills/issue-review.md
@@ -238,7 +238,7 @@ Map the issue to a package based on labels, title, and body content:
| `package:wrangler` label, wrangler CLI commands, `wrangler.toml`/`wrangler.json` | `packages/wrangler` |
| `package:miniflare` label, local dev simulation | `packages/miniflare` |
| `product:d1` label, D1 database, `d1 execute`, migrations | `packages/wrangler` (D1 code is in wrangler) |
-| `package:vitest` label, worker tests, `vitest-pool-workers` | `packages/vitest-pool-workers` |
+| `package:vitest` label, worker tests, `vitest-plugin` | `packages/vitest-plugin` |
| `package:vite-plugin` label, vite dev, `@cloudflare/vite-plugin` | `packages/vite-plugin-cloudflare` |
| `package:c3` label, `create-cloudflare`, project scaffolding | `packages/create-cloudflare` |
| `product:pages` label, Pages deployment, `_routes.json`, `_headers` | `packages/wrangler` (Pages code is in wrangler) |
diff --git a/.github/workflows/README.md b/.github/workflows/README.md
index c5089ce67f6..1a4a8cb9e94 100644
--- a/.github/workflows/README.md
+++ b/.github/workflows/README.md
@@ -125,7 +125,7 @@ Workflow changes should avoid unsuppressed `zizmor` findings. In particular:
- Tiered publishing
- Instead of `changeset publish`, the `publish` step runs `tools/deployments/publish-packages.ts`.
- Packages pin their workspace siblings at an exact version (`workspace:*` is rewritten to the sibling's version at pack time). If a dependent lands on npm before its dependency has propagated, `npm install` of the dependent fails for the window in between — the release is published but broken.
- - The orchestrator therefore groups packages into dependency tiers (currently three: `miniflare` and friends, then `wrangler`, then `@cloudflare/vite-plugin` / `@cloudflare/vitest-pool-workers`) and publishes tier by tier. Packages within a tier publish in parallel, bounded by `PUBLISH_CONCURRENCY`.
+ - The orchestrator therefore groups packages into dependency tiers (currently three: `miniflare` and friends, then `wrangler`, then `@cloudflare/vite-plugin` / `@cloudflare/vitest-plugin`) and publishes tier by tier. Packages within a tier publish in parallel, bounded by `PUBLISH_CONCURRENCY`.
- Between tiers it polls the registry until every version just published is resolvable _and_ its tarball is fetchable, then waits a further `PUBLISH_PROPAGATION_MIN_SECONDS` — a successful read only proves the release runner's own CDN edge is up to date. That settle time is unconditional rather than a floor on the total gate duration: other edges can only serve a version once it is retrievable from the origin, and the first successful read is the best available proxy for when that happened. If a version never appears within `PUBLISH_PROPAGATION_TIMEOUT_SECONDS`, the release fails instead of publishing a broken dependent.
- Only `dependencies`/`peerDependencies`/`optionalDependencies` create ordering. `devDependencies` are excluded: consumers never install them, and including them would create cycles because packages like `wrangler` dev-depend on their own dependents.
- Packages whose exact version is already on npm are skipped, so re-running a partially failed release picks up only what is still missing. That "is it already published?" check runs once per tier _during_ the release, so its reads are retried (`PUBLISH_READ_RETRY_ATTEMPTS`, with exponential backoff) — otherwise one transient 5xx while checking a later tier would abort a run that had already published earlier tiers. A 404 is not retried, since it legitimately means "not published yet".
diff --git a/.github/workflows/test-and-check.yml b/.github/workflows/test-and-check.yml
index 0069aeac309..d1b76857c74 100644
--- a/.github/workflows/test-and-check.yml
+++ b/.github/workflows/test-and-check.yml
@@ -175,12 +175,12 @@ jobs:
- name: Run tests (packages)
if: steps.changes.outputs.everything_but_markdown == 'true' && matrix.suite == 'packages-and-tools'
- # We skip @cloudflare/vitest-pool-workers tests in CI on Windows because they're very flaky. We still run the vitest-pool-workers-examples fixture, which is a comprehensive set of example tests and gives us a lot of confidence.
- # The @cloudflare/vitest-pool-workers tests skipped are things like watch mode, which constantly times out probably due to the github runners in use.
+ # We skip @cloudflare/vitest-plugin tests in CI on Windows because they're very flaky. We still run the vitest-plugin-examples fixture, which is a comprehensive set of example tests and gives us a lot of confidence.
+ # The @cloudflare/vitest-plugin tests skipped are things like watch mode, which constantly times out probably due to the github runners in use.
# Package tests are well-isolated (separate processes, temp dirs, random ports, MSW mocks) and can safely run in parallel.
# Concurrency is capped at 3 to avoid CPU starvation on 4-vCPU CI runners when heavyweight suites
- # (wrangler/forks, miniflare/workerd, vitest-pool-workers/Verdaccio) overlap.
- run: pnpm run test:ci --log-order=stream --concurrency=3 --filter="./packages/*" ${{ matrix.os == 'windows-latest' && '--filter="!./packages/vitest-pool-workers"' || '' }}
+ # (wrangler/forks, miniflare/workerd, vitest-plugin/Verdaccio) overlap.
+ run: pnpm run test:ci --log-order=stream --concurrency=3 --filter="./packages/*" ${{ matrix.os == 'windows-latest' && '--filter="!./packages/vitest-plugin"' || '' }}
env:
NODE_OPTIONS: "--max_old_space_size=8192"
WRANGLER_LOG_PATH: ${{ runner.temp }}/wrangler-debug-logs/
diff --git a/.opencode/agents/bonk.md b/.opencode/agents/bonk.md
index 45d5fe3f74f..71e42745317 100644
--- a/.opencode/agents/bonk.md
+++ b/.opencode/agents/bonk.md
@@ -148,7 +148,7 @@ Use triage mode when you are asked to investigate rather than change code.
- Add regression tests for bug fixes.
- Run `pnpm test:ci --filter ` for the touched area.
- Do not leave `.only()` in tests.
-- Use `vitest-pool-workers` when you need actual Workers runtime behavior.
+- Use `vitest-plugin` when you need actual Workers runtime behavior.
**Git:**
diff --git a/.oxfmtrc.jsonc b/.oxfmtrc.jsonc
index d73e444f476..00eafd04fb0 100644
--- a/.oxfmtrc.jsonc
+++ b/.oxfmtrc.jsonc
@@ -48,7 +48,7 @@
"!packages/create-cloudflare/templates*/hello-world/**/*.*",
"packages/create-cloudflare/templates*/hello-world/**/worker-configuration.d.ts",
- "packages/vitest-pool-workers/scripts/rtti/rtti.js",
+ "packages/vitest-plugin/scripts/rtti/rtti.js",
"packages/vite-plugin-cloudflare/playground/prisma/src/generated",
"dist-functions",
"vscode.d.ts",
diff --git a/AGENTS.md b/AGENTS.md
index 02f861c9641..0d5443b535c 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -42,7 +42,7 @@ This is the **Cloudflare Workers SDK** monorepo containing tools and libraries f
**Development & Testing:**
-- `packages/vitest-pool-workers/` - Vitest integration for testing Workers in actual runtime
+- `packages/vitest-plugin/` - Vitest integration for testing Workers in actual runtime
- `packages/chrome-devtools-patches/` - Modified Chrome DevTools for Workers debugging
**Shared Libraries:**
@@ -125,7 +125,7 @@ This is the **Cloudflare Workers SDK** monorepo containing tools and libraries f
- Unit tests with Vitest for all packages
- Fixture tests in `/fixtures` directory for filesystem/Worker scenarios
- E2E tests require real Cloudflare account credentials
-- Use `vitest-pool-workers` for testing actual Workers runtime behavior
+- Use `vitest-plugin` for testing actual Workers runtime behavior
- Shared vitest config (`vitest.shared.ts`): 50s timeouts, `retry: 1`, `restoreMocks: true`
- Vitest 4 pool config: use `maxWorkers: 1` instead of the removed `poolOptions.forks.singleFork: true` when tests must run sequentially
- **`expect` must come from test context** — never `import { expect } from "vitest"`:
@@ -135,7 +135,7 @@ This is the **Cloudflare Workers SDK** monorepo containing tools and libraries f
- When test context is unavailable (e.g. setup files), use `node:assert` instead
- E2E vitest configs do NOT set `globals: true` — this rule is critical there; forgetting `{ expect }` in the callback causes `ReferenceError` at runtime
- When changing user-facing strings or output messages, update corresponding test snapshots
-- New test fixtures in `vitest-pool-workers-examples/` must include a `tsconfig.json`
+- New test fixtures in `vitest-plugin-examples/` must include a `tsconfig.json`
- Test fixtures serve as user-facing recipes — use clean patterns, avoid type casting where possible
- Use the `runInTmpDir()` utility instead of mocking filesystem operations. Real filesystem operations are preferred over mocking. The utility creates isolated temporary directories, handles cleanup automatically in `afterEach` hooks, and allows tests to write actual files and assert against them
- Use the `mockConsoleMethods()` helper to capture stdout/stderr. Use the pattern `const std = mockConsoleMethods()` in test setup, then access captured output via `std.out`, `std.err`, `std.warn` properties. Assert against captured output using `expect(std.out).toMatchInlineSnapshot()`
@@ -180,7 +180,7 @@ This is the **Cloudflare Workers SDK** monorepo containing tools and libraries f
**Package-specific tests:** Most packages have their own test suites
**Integration tests:** Use fixtures to test real-world scenarios
**E2E tests:** Test against actual Cloudflare services (requires auth)
-**Workers runtime tests:** Use vitest-pool-workers for workerd-specific behavior
+**Workers runtime tests:** Use vitest-plugin for workerd-specific behavior
Run `pnpm check` before submitting changes to ensure all quality gates pass.
@@ -228,7 +228,7 @@ Packages with their own AGENTS.md for deeper context:
- `packages/miniflare/AGENTS.md` - Worker simulation, embedded workers, build system
- `packages/vite-plugin-cloudflare/AGENTS.md` - Plugin architecture, playground setup
- `packages/create-cloudflare/AGENTS.md` - Scaffolding, template system
-- `packages/vitest-pool-workers/AGENTS.md` - 3-context architecture, cloudflare:test module
+- `packages/vitest-plugin/AGENTS.md` - 3-context architecture, cloudflare:test module
- `packages/workers-utils/AGENTS.md` - Shared config validation, test helpers
When making architectural changes to a package (renaming files, adding entry points, changing build output), update the relevant AGENTS.md to reflect the new structure.
diff --git a/README.md b/README.md
index 051476e759c..feb90d4d6a2 100644
--- a/README.md
+++ b/README.md
@@ -122,10 +122,10 @@ npm i https://pkg.pr.new/@cloudflare/vite-plugin@main
-@cloudflare/vitest-pool-workers
+@cloudflare/vitest-plugin
```
-npm i https://pkg.pr.new/@cloudflare/vitest-pool-workers@main
+npm i https://pkg.pr.new/@cloudflare/vitest-plugin@main
```
diff --git a/fixtures/browser-run/package.json b/fixtures/browser-run/package.json
index 638083b6b5a..89049d986ee 100644
--- a/fixtures/browser-run/package.json
+++ b/fixtures/browser-run/package.json
@@ -12,7 +12,7 @@
"devDependencies": {
"@cloudflare/playwright": "^1.0.0",
"@cloudflare/puppeteer": "^1.0.4",
- "@cloudflare/vitest-pool-workers": "workspace:*",
+ "@cloudflare/vitest-plugin": "workspace:*",
"@types/node": "catalog:default",
"typescript": "catalog:default",
"vitest": "catalog:default",
diff --git a/fixtures/get-platform-proxy-remote-bindings/tests/index.test.ts b/fixtures/get-platform-proxy-remote-bindings/tests/index.test.ts
index 61dff8495a5..02ef4bf3be0 100644
--- a/fixtures/get-platform-proxy-remote-bindings/tests/index.test.ts
+++ b/fixtures/get-platform-proxy-remote-bindings/tests/index.test.ts
@@ -336,6 +336,6 @@ function getAuthenticatedEnv() {
};
}
console.warn(
- "Skipping vitest-pool-workers remote bindings tests because the environment is not authenticated with Cloudflare."
+ "Skipping vitest-plugin remote bindings tests because the environment is not authenticated with Cloudflare."
);
}
diff --git a/fixtures/vitest-pool-workers-examples/README.md b/fixtures/vitest-plugin-examples/README.md
similarity index 96%
rename from fixtures/vitest-pool-workers-examples/README.md
rename to fixtures/vitest-plugin-examples/README.md
index d883b88badf..502a11ee95f 100644
--- a/fixtures/vitest-pool-workers-examples/README.md
+++ b/fixtures/vitest-plugin-examples/README.md
@@ -1,6 +1,6 @@
-# `@cloudflare/vitest-pool-workers` Examples
+# `@cloudflare/vitest-plugin` Examples
-This directory contains example projects tested with `@cloudflare/vitest-pool-workers`. It aims to provide the building blocks for you to write tests for your own Workers.
+This directory contains example projects tested with `@cloudflare/vitest-plugin`. It aims to provide the building blocks for you to write tests for your own Workers.
| Directory | Overview |
| --------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
diff --git a/fixtures/vitest-pool-workers-examples/ai-vectorize/README.md b/fixtures/vitest-plugin-examples/ai-vectorize/README.md
similarity index 68%
rename from fixtures/vitest-pool-workers-examples/ai-vectorize/README.md
rename to fixtures/vitest-plugin-examples/ai-vectorize/README.md
index e8d3ae2eae7..23f016f6826 100644
--- a/fixtures/vitest-pool-workers-examples/ai-vectorize/README.md
+++ b/fixtures/vitest-plugin-examples/ai-vectorize/README.md
@@ -1,6 +1,6 @@
# 🤖 AI and Vectorize
-This Worker uses the AI and Vectorize bindings. @cloudflare/vitest-pool-workers@^0.8.1 is required to use AI and Vectorize bindings in the Vitest integration.
+This Worker uses the AI and Vectorize bindings. `@cloudflare/vitest-plugin` is required to use AI and Vectorize bindings in the Vitest integration.
[!WARNING]
diff --git a/fixtures/vitest-pool-workers-examples/ai-vectorize/global-setup.ts b/fixtures/vitest-plugin-examples/ai-vectorize/global-setup.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/ai-vectorize/global-setup.ts
rename to fixtures/vitest-plugin-examples/ai-vectorize/global-setup.ts
diff --git a/fixtures/vitest-pool-workers-examples/ai-vectorize/src/env.d.ts b/fixtures/vitest-plugin-examples/ai-vectorize/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/ai-vectorize/src/env.d.ts
rename to fixtures/vitest-plugin-examples/ai-vectorize/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/ai-vectorize/src/index.ts b/fixtures/vitest-plugin-examples/ai-vectorize/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/ai-vectorize/src/index.ts
rename to fixtures/vitest-plugin-examples/ai-vectorize/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/ai-vectorize/src/tsconfig.json b/fixtures/vitest-plugin-examples/ai-vectorize/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/ai-vectorize/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/ai-vectorize/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/ai-vectorize/test/index.spec.ts b/fixtures/vitest-plugin-examples/ai-vectorize/test/index.spec.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/ai-vectorize/test/index.spec.ts
rename to fixtures/vitest-plugin-examples/ai-vectorize/test/index.spec.ts
diff --git a/fixtures/vitest-pool-workers-examples/ai-vectorize/test/tsconfig.json b/fixtures/vitest-plugin-examples/ai-vectorize/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/ai-vectorize/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/ai-vectorize/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/ai-vectorize/tsconfig.json b/fixtures/vitest-plugin-examples/ai-vectorize/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/ai-vectorize/tsconfig.json
rename to fixtures/vitest-plugin-examples/ai-vectorize/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/ai-vectorize/vitest.config.ts b/fixtures/vitest-plugin-examples/ai-vectorize/vitest.config.ts
similarity index 84%
rename from fixtures/vitest-pool-workers-examples/ai-vectorize/vitest.config.ts
rename to fixtures/vitest-plugin-examples/ai-vectorize/vitest.config.ts
index 1215075acd5..44f0fc92f77 100644
--- a/fixtures/vitest-pool-workers-examples/ai-vectorize/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/ai-vectorize/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/ai-vectorize/wrangler.jsonc b/fixtures/vitest-plugin-examples/ai-vectorize/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/ai-vectorize/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/ai-vectorize/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/README.md b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/README.md
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/README.md
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/global-setup.ts b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/global-setup.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/global-setup.ts
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/global-setup.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/src/index.ts b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/src/index.ts
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/src/tsconfig.json b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/test/env.d.ts b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/test/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/test/env.d.ts
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/test/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/test/fetch-integration-auxiliary.test.ts b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/test/fetch-integration-auxiliary.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/test/fetch-integration-auxiliary.test.ts
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/test/fetch-integration-auxiliary.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/test/scheduled-integration-auxiliary.test.ts b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/test/scheduled-integration-auxiliary.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/test/scheduled-integration-auxiliary.test.ts
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/test/scheduled-integration-auxiliary.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/test/tsconfig.json b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/tsconfig.json b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/tsconfig.json
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/vitest.config.ts b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/vitest.config.ts
similarity index 95%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/vitest.config.ts
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/vitest.config.ts
index 3631a5b4a3e..f21f0375bb0 100644
--- a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/wrangler.jsonc b/fixtures/vitest-plugin-examples/basics-integration-auxiliary/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-integration-auxiliary/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/basics-integration-auxiliary/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/README.md b/fixtures/vitest-plugin-examples/basics-unit-integration-self/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/README.md
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/README.md
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/src/env.d.ts b/fixtures/vitest-plugin-examples/basics-unit-integration-self/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/src/env.d.ts
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/src/greet.ts b/fixtures/vitest-plugin-examples/basics-unit-integration-self/src/greet.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/src/greet.ts
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/src/greet.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/src/index.ts b/fixtures/vitest-plugin-examples/basics-unit-integration-self/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/src/index.ts
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/src/tsconfig.json b/fixtures/vitest-plugin-examples/basics-unit-integration-self/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/test/fetch-integration-self.test.ts b/fixtures/vitest-plugin-examples/basics-unit-integration-self/test/fetch-integration-self.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/test/fetch-integration-self.test.ts
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/test/fetch-integration-self.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/test/fetch-unit.test.ts b/fixtures/vitest-plugin-examples/basics-unit-integration-self/test/fetch-unit.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/test/fetch-unit.test.ts
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/test/fetch-unit.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/test/scheduled-integration-self.test.ts b/fixtures/vitest-plugin-examples/basics-unit-integration-self/test/scheduled-integration-self.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/test/scheduled-integration-self.test.ts
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/test/scheduled-integration-self.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/test/scheduled-unit.test.ts b/fixtures/vitest-plugin-examples/basics-unit-integration-self/test/scheduled-unit.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/test/scheduled-unit.test.ts
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/test/scheduled-unit.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/test/tsconfig.json b/fixtures/vitest-plugin-examples/basics-unit-integration-self/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/tsconfig.json b/fixtures/vitest-plugin-examples/basics-unit-integration-self/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/tsconfig.json
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/vitest.config.ts b/fixtures/vitest-plugin-examples/basics-unit-integration-self/vitest.config.ts
similarity index 88%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/vitest.config.ts
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/vitest.config.ts
index 3d82d8aa0ae..ee590f5d83a 100644
--- a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/basics-unit-integration-self/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/basics-unit-integration-self/wrangler.jsonc b/fixtures/vitest-plugin-examples/basics-unit-integration-self/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/basics-unit-integration-self/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/basics-unit-integration-self/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/container-app/Dockerfile b/fixtures/vitest-plugin-examples/container-app/Dockerfile
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/container-app/Dockerfile
rename to fixtures/vitest-plugin-examples/container-app/Dockerfile
diff --git a/fixtures/vitest-plugin-examples/container-app/README.md b/fixtures/vitest-plugin-examples/container-app/README.md
new file mode 100644
index 00000000000..66e9acaf061
--- /dev/null
+++ b/fixtures/vitest-plugin-examples/container-app/README.md
@@ -0,0 +1,3 @@
+# Apps with no-op containers
+
+Currently, `vitest-plugin` does not support testing containers yet. It should still let you test your application as long as you do not test with any code paths that interact with containers.
diff --git a/fixtures/vitest-pool-workers-examples/container-app/container/simple-node-app.js b/fixtures/vitest-plugin-examples/container-app/container/simple-node-app.js
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/container-app/container/simple-node-app.js
rename to fixtures/vitest-plugin-examples/container-app/container/simple-node-app.js
diff --git a/fixtures/vitest-pool-workers-examples/container-app/src/env.d.ts b/fixtures/vitest-plugin-examples/container-app/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/container-app/src/env.d.ts
rename to fixtures/vitest-plugin-examples/container-app/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/container-app/src/index.ts b/fixtures/vitest-plugin-examples/container-app/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/container-app/src/index.ts
rename to fixtures/vitest-plugin-examples/container-app/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/container-app/src/tsconfig.json b/fixtures/vitest-plugin-examples/container-app/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/container-app/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/container-app/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/container-app/test/container.test.ts b/fixtures/vitest-plugin-examples/container-app/test/container.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/container-app/test/container.test.ts
rename to fixtures/vitest-plugin-examples/container-app/test/container.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/container-app/test/container.unit.test.ts b/fixtures/vitest-plugin-examples/container-app/test/container.unit.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/container-app/test/container.unit.test.ts
rename to fixtures/vitest-plugin-examples/container-app/test/container.unit.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/container-app/test/tsconfig.json b/fixtures/vitest-plugin-examples/container-app/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/container-app/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/container-app/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/container-app/tsconfig.json b/fixtures/vitest-plugin-examples/container-app/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/container-app/tsconfig.json
rename to fixtures/vitest-plugin-examples/container-app/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vitest.config.ts b/fixtures/vitest-plugin-examples/container-app/vitest.config.ts
similarity index 80%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vitest.config.ts
rename to fixtures/vitest-plugin-examples/container-app/vitest.config.ts
index d9a889a9fdb..c2326d6f5cb 100644
--- a/fixtures/vitest-pool-workers-examples/module-resolution/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/container-app/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/container-app/wrangler.jsonc b/fixtures/vitest-plugin-examples/container-app/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/container-app/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/container-app/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/README.md b/fixtures/vitest-plugin-examples/context-exports/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/README.md
rename to fixtures/vitest-plugin-examples/context-exports/README.md
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/auxiliary-worker/index.ts b/fixtures/vitest-plugin-examples/context-exports/auxiliary-worker/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/auxiliary-worker/index.ts
rename to fixtures/vitest-plugin-examples/context-exports/auxiliary-worker/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/auxiliary-worker/tsconfig.json b/fixtures/vitest-plugin-examples/context-exports/auxiliary-worker/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/auxiliary-worker/tsconfig.json
rename to fixtures/vitest-plugin-examples/context-exports/auxiliary-worker/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/auxiliary-worker/worker-configuration.d.ts b/fixtures/vitest-plugin-examples/context-exports/auxiliary-worker/worker-configuration.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/auxiliary-worker/worker-configuration.d.ts
rename to fixtures/vitest-plugin-examples/context-exports/auxiliary-worker/worker-configuration.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/auxiliary-worker/wrangler.jsonc b/fixtures/vitest-plugin-examples/context-exports/auxiliary-worker/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/auxiliary-worker/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/context-exports/auxiliary-worker/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/global-setup.ts b/fixtures/vitest-plugin-examples/context-exports/global-setup.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/global-setup.ts
rename to fixtures/vitest-plugin-examples/context-exports/global-setup.ts
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/src/index.ts b/fixtures/vitest-plugin-examples/context-exports/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/src/index.ts
rename to fixtures/vitest-plugin-examples/context-exports/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/src/tsconfig.json b/fixtures/vitest-plugin-examples/context-exports/src/tsconfig.json
similarity index 76%
rename from fixtures/vitest-pool-workers-examples/context-exports/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/context-exports/src/tsconfig.json
index 38455c03867..b2a3b7f222f 100644
--- a/fixtures/vitest-pool-workers-examples/context-exports/src/tsconfig.json
+++ b/fixtures/vitest-plugin-examples/context-exports/src/tsconfig.json
@@ -4,7 +4,7 @@
"compilerOptions": {
"paths": {
// This path is used to simulate a virtual module that Vitest and TypeScript can understand,
- // but esbuild (used by the vitest-pool-workers to guess exports) cannot.
+ // but esbuild (used by the vitest-plugin to guess exports) cannot.
"@virtual-module": ["./virtual.ts"]
}
}
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/src/virtual.ts b/fixtures/vitest-plugin-examples/context-exports/src/virtual.ts
similarity index 93%
rename from fixtures/vitest-pool-workers-examples/context-exports/src/virtual.ts
rename to fixtures/vitest-plugin-examples/context-exports/src/virtual.ts
index 6766491c193..31c623862ca 100644
--- a/fixtures/vitest-pool-workers-examples/context-exports/src/virtual.ts
+++ b/fixtures/vitest-plugin-examples/context-exports/src/virtual.ts
@@ -21,7 +21,7 @@ export class ConfiguredVirtualDurableObject extends DurableObject {
}
}
-// Although this export cannot be inferred by esbuild, it is explicitly configured in vitest-pool-workers config via `additionalExports`.
+// Although this export cannot be inferred by esbuild, it is explicitly configured in vitest-plugin config via `additionalExports`.
export class ConfiguredVirtualEntryPoint extends WorkerEntrypoint {
greet() {
return `Hello ${this.env.NAME} from ConfiguredVirtualEntryPoint!`;
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/src/worker-configuration.d.ts b/fixtures/vitest-plugin-examples/context-exports/src/worker-configuration.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/src/worker-configuration.d.ts
rename to fixtures/vitest-plugin-examples/context-exports/src/worker-configuration.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/src/wrangler.jsonc b/fixtures/vitest-plugin-examples/context-exports/src/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/src/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/context-exports/src/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/test/auxiliary.test.ts b/fixtures/vitest-plugin-examples/context-exports/test/auxiliary.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/test/auxiliary.test.ts
rename to fixtures/vitest-plugin-examples/context-exports/test/auxiliary.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/test/durable-objects.test.ts b/fixtures/vitest-plugin-examples/context-exports/test/durable-objects.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/test/durable-objects.test.ts
rename to fixtures/vitest-plugin-examples/context-exports/test/durable-objects.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/test/integration-self.test.ts b/fixtures/vitest-plugin-examples/context-exports/test/integration-self.test.ts
similarity index 93%
rename from fixtures/vitest-pool-workers-examples/context-exports/test/integration-self.test.ts
rename to fixtures/vitest-plugin-examples/context-exports/test/integration-self.test.ts
index 15b32f6cb92..113ab759c80 100644
--- a/fixtures/vitest-pool-workers-examples/context-exports/test/integration-self.test.ts
+++ b/fixtures/vitest-plugin-examples/context-exports/test/integration-self.test.ts
@@ -30,7 +30,7 @@ it("will warn on missing context exports on the main worker", async ({
expect(warnSpy).toHaveBeenCalledWith(
"Attempted to access 'ctx.exports.InvalidExport', which was not defined for the main Worker.\n" +
"Check that 'InvalidExport' is exported as an entry-point from the Worker.\n" +
- "The '@cloudflare/vitest-pool-workers' integration tries to infer these exports by analyzing the source code of the main Worker.\n"
+ "The '@cloudflare/vitest-plugin' integration tries to infer these exports by analyzing the source code of the main Worker.\n"
);
});
@@ -49,7 +49,7 @@ it("will warn on implicit re-exports that will exist in production but cannot no
expect(warnSpy).toHaveBeenCalledWith(
"Attempted to access 'ctx.exports.ReexportedVirtualEntryPoint', which was not defined for the main Worker.\n" +
"Check that 'ReexportedVirtualEntryPoint' is exported as an entry-point from the Worker.\n" +
- "The '@cloudflare/vitest-pool-workers' integration tries to infer these exports by analyzing the source code of the main Worker.\n"
+ "The '@cloudflare/vitest-plugin' integration tries to infer these exports by analyzing the source code of the main Worker.\n"
);
});
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/test/tsconfig.json b/fixtures/vitest-plugin-examples/context-exports/test/tsconfig.json
similarity index 79%
rename from fixtures/vitest-pool-workers-examples/context-exports/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/context-exports/test/tsconfig.json
index a13714b540e..2adeca9015a 100644
--- a/fixtures/vitest-pool-workers-examples/context-exports/test/tsconfig.json
+++ b/fixtures/vitest-plugin-examples/context-exports/test/tsconfig.json
@@ -4,7 +4,7 @@
"compilerOptions": {
"paths": {
// This path is used to simulate a virtual module that Vitest and TypeScript can understand,
- // but esbuild (used by the vitest-pool-workers to guess exports) cannot.
+ // but esbuild (used by the vitest-plugin to guess exports) cannot.
"@virtual-module": ["../src/virtual.ts"]
}
}
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/test/unit.test.ts b/fixtures/vitest-plugin-examples/context-exports/test/unit.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/test/unit.test.ts
rename to fixtures/vitest-plugin-examples/context-exports/test/unit.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/tsconfig.json b/fixtures/vitest-plugin-examples/context-exports/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/context-exports/tsconfig.json
rename to fixtures/vitest-plugin-examples/context-exports/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/context-exports/vitest.config.ts b/fixtures/vitest-plugin-examples/context-exports/vitest.config.ts
similarity index 89%
rename from fixtures/vitest-pool-workers-examples/context-exports/vitest.config.ts
rename to fixtures/vitest-plugin-examples/context-exports/vitest.config.ts
index 6b8c11a8c74..9f0f8b80ad6 100644
--- a/fixtures/vitest-pool-workers-examples/context-exports/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/context-exports/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
@@ -36,7 +36,7 @@ export default mergeConfig(
globalSetup: ["./global-setup.ts"],
alias: {
// This alias is used to simulate a virtual module that Vitest and TypeScript can understand,
- // but esbuild (used by the vitest-pool-workers to guess exports) cannot.
+ // but esbuild (used by the vitest-plugin to guess exports) cannot.
"@virtual-module": "./virtual.ts",
},
},
diff --git a/fixtures/vitest-pool-workers-examples/d1/README.md b/fixtures/vitest-plugin-examples/d1/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/README.md
rename to fixtures/vitest-plugin-examples/d1/README.md
diff --git a/fixtures/vitest-pool-workers-examples/d1/migrations/0000_initial.sql b/fixtures/vitest-plugin-examples/d1/migrations/0000_initial.sql
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/migrations/0000_initial.sql
rename to fixtures/vitest-plugin-examples/d1/migrations/0000_initial.sql
diff --git a/fixtures/vitest-pool-workers-examples/d1/migrations/0001_admin.sql b/fixtures/vitest-plugin-examples/d1/migrations/0001_admin.sql
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/migrations/0001_admin.sql
rename to fixtures/vitest-plugin-examples/d1/migrations/0001_admin.sql
diff --git a/fixtures/vitest-pool-workers-examples/d1/src/env.d.ts b/fixtures/vitest-plugin-examples/d1/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/src/env.d.ts
rename to fixtures/vitest-plugin-examples/d1/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/d1/src/index.ts b/fixtures/vitest-plugin-examples/d1/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/src/index.ts
rename to fixtures/vitest-plugin-examples/d1/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/d1/src/tsconfig.json b/fixtures/vitest-plugin-examples/d1/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/d1/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/d1/src/utils.ts b/fixtures/vitest-plugin-examples/d1/src/utils.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/src/utils.ts
rename to fixtures/vitest-plugin-examples/d1/src/utils.ts
diff --git a/fixtures/vitest-pool-workers-examples/d1/test/apply-migrations.ts b/fixtures/vitest-plugin-examples/d1/test/apply-migrations.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/test/apply-migrations.ts
rename to fixtures/vitest-plugin-examples/d1/test/apply-migrations.ts
diff --git a/fixtures/vitest-pool-workers-examples/d1/test/env.d.ts b/fixtures/vitest-plugin-examples/d1/test/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/test/env.d.ts
rename to fixtures/vitest-plugin-examples/d1/test/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/d1/test/queries.test.ts b/fixtures/vitest-plugin-examples/d1/test/queries.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/test/queries.test.ts
rename to fixtures/vitest-plugin-examples/d1/test/queries.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/d1/test/routes.test.ts b/fixtures/vitest-plugin-examples/d1/test/routes.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/test/routes.test.ts
rename to fixtures/vitest-plugin-examples/d1/test/routes.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/d1/test/tsconfig.json b/fixtures/vitest-plugin-examples/d1/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/d1/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/d1/tsconfig.json b/fixtures/vitest-plugin-examples/d1/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/tsconfig.json
rename to fixtures/vitest-plugin-examples/d1/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/d1/vitest.config.ts b/fixtures/vitest-plugin-examples/d1/vitest.config.ts
similarity index 90%
rename from fixtures/vitest-pool-workers-examples/d1/vitest.config.ts
rename to fixtures/vitest-plugin-examples/d1/vitest.config.ts
index fb6e66b73e4..cd20c982116 100644
--- a/fixtures/vitest-pool-workers-examples/d1/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/d1/vitest.config.ts
@@ -1,8 +1,5 @@
import path from "node:path";
-import {
- cloudflareTest,
- readD1Migrations,
-} from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest, readD1Migrations } from "@cloudflare/vitest-plugin";
import { defineConfig, defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/d1/wrangler.jsonc b/fixtures/vitest-plugin-examples/d1/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/d1/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/d1/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects-exports/README.md b/fixtures/vitest-plugin-examples/durable-objects-exports/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects-exports/README.md
rename to fixtures/vitest-plugin-examples/durable-objects-exports/README.md
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects-exports/src/env.d.ts b/fixtures/vitest-plugin-examples/durable-objects-exports/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects-exports/src/env.d.ts
rename to fixtures/vitest-plugin-examples/durable-objects-exports/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects-exports/src/index.ts b/fixtures/vitest-plugin-examples/durable-objects-exports/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects-exports/src/index.ts
rename to fixtures/vitest-plugin-examples/durable-objects-exports/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects-exports/src/tsconfig.json b/fixtures/vitest-plugin-examples/durable-objects-exports/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects-exports/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/durable-objects-exports/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects-exports/test/exports.test.ts b/fixtures/vitest-plugin-examples/durable-objects-exports/test/exports.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects-exports/test/exports.test.ts
rename to fixtures/vitest-plugin-examples/durable-objects-exports/test/exports.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects-exports/test/tsconfig.json b/fixtures/vitest-plugin-examples/durable-objects-exports/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects-exports/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/durable-objects-exports/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects-exports/tsconfig.json b/fixtures/vitest-plugin-examples/durable-objects-exports/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects-exports/tsconfig.json
rename to fixtures/vitest-plugin-examples/durable-objects-exports/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects-exports/vitest.config.ts b/fixtures/vitest-plugin-examples/durable-objects-exports/vitest.config.ts
similarity index 83%
rename from fixtures/vitest-pool-workers-examples/durable-objects-exports/vitest.config.ts
rename to fixtures/vitest-plugin-examples/durable-objects-exports/vitest.config.ts
index dfaddb163f5..0c1526c94fc 100644
--- a/fixtures/vitest-pool-workers-examples/durable-objects-exports/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/durable-objects-exports/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects-exports/wrangler.jsonc b/fixtures/vitest-plugin-examples/durable-objects-exports/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects-exports/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/durable-objects-exports/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/README.md b/fixtures/vitest-plugin-examples/durable-objects/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/README.md
rename to fixtures/vitest-plugin-examples/durable-objects/README.md
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/src/env.d.ts b/fixtures/vitest-plugin-examples/durable-objects/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/src/env.d.ts
rename to fixtures/vitest-plugin-examples/durable-objects/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/src/index.ts b/fixtures/vitest-plugin-examples/durable-objects/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/src/index.ts
rename to fixtures/vitest-plugin-examples/durable-objects/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/src/tsconfig.json b/fixtures/vitest-plugin-examples/durable-objects/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/durable-objects/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/test/alarm.test.ts b/fixtures/vitest-plugin-examples/durable-objects/test/alarm.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/test/alarm.test.ts
rename to fixtures/vitest-plugin-examples/durable-objects/test/alarm.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/test/direct-access.test.ts b/fixtures/vitest-plugin-examples/durable-objects/test/direct-access.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/test/direct-access.test.ts
rename to fixtures/vitest-plugin-examples/durable-objects/test/direct-access.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/test/eviction.test.ts b/fixtures/vitest-plugin-examples/durable-objects/test/eviction.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/test/eviction.test.ts
rename to fixtures/vitest-plugin-examples/durable-objects/test/eviction.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/test/sqlite-in-do.test.ts b/fixtures/vitest-plugin-examples/durable-objects/test/sqlite-in-do.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/test/sqlite-in-do.test.ts
rename to fixtures/vitest-plugin-examples/durable-objects/test/sqlite-in-do.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/test/tsconfig.json b/fixtures/vitest-plugin-examples/durable-objects/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/durable-objects/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/test/websockets.test.ts b/fixtures/vitest-plugin-examples/durable-objects/test/websockets.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/test/websockets.test.ts
rename to fixtures/vitest-plugin-examples/durable-objects/test/websockets.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/tsconfig.json b/fixtures/vitest-plugin-examples/durable-objects/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/tsconfig.json
rename to fixtures/vitest-plugin-examples/durable-objects/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/vitest.config.ts b/fixtures/vitest-plugin-examples/durable-objects/vitest.config.ts
similarity index 83%
rename from fixtures/vitest-pool-workers-examples/durable-objects/vitest.config.ts
rename to fixtures/vitest-plugin-examples/durable-objects/vitest.config.ts
index ce613dc6b87..be9f15f0a5b 100644
--- a/fixtures/vitest-pool-workers-examples/durable-objects/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/durable-objects/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/durable-objects/wrangler.jsonc b/fixtures/vitest-plugin-examples/durable-objects/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/durable-objects/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/durable-objects/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/dynamic-import/src/greeting.ts b/fixtures/vitest-plugin-examples/dynamic-import/src/greeting.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/dynamic-import/src/greeting.ts
rename to fixtures/vitest-plugin-examples/dynamic-import/src/greeting.ts
diff --git a/fixtures/vitest-pool-workers-examples/dynamic-import/src/index.ts b/fixtures/vitest-plugin-examples/dynamic-import/src/index.ts
similarity index 91%
rename from fixtures/vitest-pool-workers-examples/dynamic-import/src/index.ts
rename to fixtures/vitest-plugin-examples/dynamic-import/src/index.ts
index f50ae2322fc..80cab2dc88e 100644
--- a/fixtures/vitest-pool-workers-examples/dynamic-import/src/index.ts
+++ b/fixtures/vitest-plugin-examples/dynamic-import/src/index.ts
@@ -16,7 +16,7 @@ export default {
_ctx: ExecutionContext
): Promise {
// Dynamic import inside a fetch handler — this is the pattern that
- // triggers the cross-DO I/O violation in vitest-pool-workers 0.13.x
+ // triggers the cross-DO I/O violation in vitest-plugin 0.13.x
// when called via `exports.default.fetch()` in tests.
// See: https://github.com/cloudflare/workers-sdk/issues/12924
const { greet } = await import("./greeting");
diff --git a/fixtures/vitest-pool-workers-examples/dynamic-import/src/tsconfig.json b/fixtures/vitest-plugin-examples/dynamic-import/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/dynamic-import/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/dynamic-import/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/dynamic-import/src/worker-configuration.d.ts b/fixtures/vitest-plugin-examples/dynamic-import/src/worker-configuration.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/dynamic-import/src/worker-configuration.d.ts
rename to fixtures/vitest-plugin-examples/dynamic-import/src/worker-configuration.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/dynamic-import/test/dynamic-import.test.ts b/fixtures/vitest-plugin-examples/dynamic-import/test/dynamic-import.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/dynamic-import/test/dynamic-import.test.ts
rename to fixtures/vitest-plugin-examples/dynamic-import/test/dynamic-import.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/dynamic-import/test/tsconfig.json b/fixtures/vitest-plugin-examples/dynamic-import/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/dynamic-import/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/dynamic-import/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/dynamic-import/tsconfig.json b/fixtures/vitest-plugin-examples/dynamic-import/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/dynamic-import/tsconfig.json
rename to fixtures/vitest-plugin-examples/dynamic-import/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/pipelines/vitest.config.ts b/fixtures/vitest-plugin-examples/dynamic-import/vitest.config.ts
similarity index 81%
rename from fixtures/vitest-pool-workers-examples/pipelines/vitest.config.ts
rename to fixtures/vitest-plugin-examples/dynamic-import/vitest.config.ts
index 42170624230..877bda7df9f 100644
--- a/fixtures/vitest-pool-workers-examples/pipelines/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/dynamic-import/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/dynamic-import/wrangler.jsonc b/fixtures/vitest-plugin-examples/dynamic-import/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/dynamic-import/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/dynamic-import/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/README.md b/fixtures/vitest-plugin-examples/hyperdrive/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/README.md
rename to fixtures/vitest-plugin-examples/hyperdrive/README.md
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/env.d.ts b/fixtures/vitest-plugin-examples/hyperdrive/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/env.d.ts
rename to fixtures/vitest-plugin-examples/hyperdrive/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/global-setup.ts b/fixtures/vitest-plugin-examples/hyperdrive/global-setup.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/global-setup.ts
rename to fixtures/vitest-plugin-examples/hyperdrive/global-setup.ts
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/src/env.d.ts b/fixtures/vitest-plugin-examples/hyperdrive/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/src/env.d.ts
rename to fixtures/vitest-plugin-examples/hyperdrive/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/src/index.ts b/fixtures/vitest-plugin-examples/hyperdrive/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/src/index.ts
rename to fixtures/vitest-plugin-examples/hyperdrive/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/src/tsconfig.json b/fixtures/vitest-plugin-examples/hyperdrive/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/hyperdrive/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/test/echo.test.ts b/fixtures/vitest-plugin-examples/hyperdrive/test/echo.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/test/echo.test.ts
rename to fixtures/vitest-plugin-examples/hyperdrive/test/echo.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/test/tsconfig.json b/fixtures/vitest-plugin-examples/hyperdrive/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/hyperdrive/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/tsconfig.json b/fixtures/vitest-plugin-examples/hyperdrive/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/tsconfig.json
rename to fixtures/vitest-plugin-examples/hyperdrive/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/vitest.config.ts b/fixtures/vitest-plugin-examples/hyperdrive/vitest.config.ts
similarity index 90%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/vitest.config.ts
rename to fixtures/vitest-plugin-examples/hyperdrive/vitest.config.ts
index c2be5c378ce..2216b12686e 100644
--- a/fixtures/vitest-pool-workers-examples/hyperdrive/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/hyperdrive/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/hyperdrive/wrangler.jsonc b/fixtures/vitest-plugin-examples/hyperdrive/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/hyperdrive/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/hyperdrive/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/images/README.md b/fixtures/vitest-plugin-examples/images/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/images/README.md
rename to fixtures/vitest-plugin-examples/images/README.md
diff --git a/fixtures/vitest-pool-workers-examples/images/src/env.d.ts b/fixtures/vitest-plugin-examples/images/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/images/src/env.d.ts
rename to fixtures/vitest-plugin-examples/images/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/images/src/index.ts b/fixtures/vitest-plugin-examples/images/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/images/src/index.ts
rename to fixtures/vitest-plugin-examples/images/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/images/src/tsconfig.json b/fixtures/vitest-plugin-examples/images/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/images/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/images/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/images/test/images.test.ts b/fixtures/vitest-plugin-examples/images/test/images.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/images/test/images.test.ts
rename to fixtures/vitest-plugin-examples/images/test/images.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/images/test/tsconfig.json b/fixtures/vitest-plugin-examples/images/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/images/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/images/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/images/tsconfig.json b/fixtures/vitest-plugin-examples/images/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/images/tsconfig.json
rename to fixtures/vitest-plugin-examples/images/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/images/vitest.config.ts b/fixtures/vitest-plugin-examples/images/vitest.config.ts
similarity index 81%
rename from fixtures/vitest-pool-workers-examples/images/vitest.config.ts
rename to fixtures/vitest-plugin-examples/images/vitest.config.ts
index 42170624230..877bda7df9f 100644
--- a/fixtures/vitest-pool-workers-examples/images/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/images/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/images/wrangler.jsonc b/fixtures/vitest-plugin-examples/images/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/images/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/images/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/README.md b/fixtures/vitest-plugin-examples/kv-r2-caches/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/README.md
rename to fixtures/vitest-plugin-examples/kv-r2-caches/README.md
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/src/env.d.ts b/fixtures/vitest-plugin-examples/kv-r2-caches/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/src/env.d.ts
rename to fixtures/vitest-plugin-examples/kv-r2-caches/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/src/helpers.ts b/fixtures/vitest-plugin-examples/kv-r2-caches/src/helpers.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/src/helpers.ts
rename to fixtures/vitest-plugin-examples/kv-r2-caches/src/helpers.ts
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/src/index.ts b/fixtures/vitest-plugin-examples/kv-r2-caches/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/src/index.ts
rename to fixtures/vitest-plugin-examples/kv-r2-caches/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/src/tsconfig.json b/fixtures/vitest-plugin-examples/kv-r2-caches/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/kv-r2-caches/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/test/kv.test.ts b/fixtures/vitest-plugin-examples/kv-r2-caches/test/kv.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/test/kv.test.ts
rename to fixtures/vitest-plugin-examples/kv-r2-caches/test/kv.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/test/r2.test.ts b/fixtures/vitest-plugin-examples/kv-r2-caches/test/r2.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/test/r2.test.ts
rename to fixtures/vitest-plugin-examples/kv-r2-caches/test/r2.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/test/tsconfig.json b/fixtures/vitest-plugin-examples/kv-r2-caches/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/kv-r2-caches/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/tsconfig.json b/fixtures/vitest-plugin-examples/kv-r2-caches/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/tsconfig.json
rename to fixtures/vitest-plugin-examples/kv-r2-caches/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/dynamic-import/vitest.config.ts b/fixtures/vitest-plugin-examples/kv-r2-caches/vitest.config.ts
similarity index 81%
rename from fixtures/vitest-pool-workers-examples/dynamic-import/vitest.config.ts
rename to fixtures/vitest-plugin-examples/kv-r2-caches/vitest.config.ts
index 42170624230..877bda7df9f 100644
--- a/fixtures/vitest-pool-workers-examples/dynamic-import/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/kv-r2-caches/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/wrangler.jsonc b/fixtures/vitest-plugin-examples/kv-r2-caches/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/kv-r2-caches/wrangler.jsonc
diff --git a/fixtures/vitest-plugin-examples/misc/README.md b/fixtures/vitest-plugin-examples/misc/README.md
new file mode 100644
index 00000000000..77afc3e206f
--- /dev/null
+++ b/fixtures/vitest-plugin-examples/misc/README.md
@@ -0,0 +1,3 @@
+# 🤷 misc
+
+We run all the tests in `vitest-plugin-examples` on every change to `workers-sdk`. This directory contains a bunch of tests to validate assorted Vitest features that aren't tested elsewhere.
diff --git a/fixtures/vitest-pool-workers-examples/misc/global-setup.ts b/fixtures/vitest-plugin-examples/misc/global-setup.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/global-setup.ts
rename to fixtures/vitest-plugin-examples/misc/global-setup.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/public/test.txt b/fixtures/vitest-plugin-examples/misc/public/test.txt
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/public/test.txt
rename to fixtures/vitest-plugin-examples/misc/public/test.txt
diff --git a/fixtures/vitest-pool-workers-examples/misc/src/other-worker.mjs b/fixtures/vitest-plugin-examples/misc/src/other-worker.mjs
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/src/other-worker.mjs
rename to fixtures/vitest-plugin-examples/misc/src/other-worker.mjs
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/bare-specifiers.test.ts b/fixtures/vitest-plugin-examples/misc/test/bare-specifiers.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/bare-specifiers.test.ts
rename to fixtures/vitest-plugin-examples/misc/test/bare-specifiers.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/defines.test.ts b/fixtures/vitest-plugin-examples/misc/test/defines.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/defines.test.ts
rename to fixtures/vitest-plugin-examples/misc/test/defines.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/durable-objects.test.ts b/fixtures/vitest-plugin-examples/misc/test/durable-objects.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/durable-objects.test.ts
rename to fixtures/vitest-plugin-examples/misc/test/durable-objects.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/env.d.ts b/fixtures/vitest-plugin-examples/misc/test/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/env.d.ts
rename to fixtures/vitest-plugin-examples/misc/test/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/fake-timers.test.ts b/fixtures/vitest-plugin-examples/misc/test/fake-timers.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/fake-timers.test.ts
rename to fixtures/vitest-plugin-examples/misc/test/fake-timers.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/global.d.ts b/fixtures/vitest-plugin-examples/misc/test/global.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/global.d.ts
rename to fixtures/vitest-plugin-examples/misc/test/global.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/large-provide.test.ts b/fixtures/vitest-plugin-examples/misc/test/large-provide.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/large-provide.test.ts
rename to fixtures/vitest-plugin-examples/misc/test/large-provide.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/module-mocking.test.ts b/fixtures/vitest-plugin-examples/misc/test/module-mocking.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/module-mocking.test.ts
rename to fixtures/vitest-plugin-examples/misc/test/module-mocking.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/msw.test.ts b/fixtures/vitest-plugin-examples/misc/test/msw.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/msw.test.ts
rename to fixtures/vitest-plugin-examples/misc/test/msw.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/nodejs-optout.test.ts b/fixtures/vitest-plugin-examples/misc/test/nodejs-optout.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/nodejs-optout.test.ts
rename to fixtures/vitest-plugin-examples/misc/test/nodejs-optout.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/nodejs.test.ts b/fixtures/vitest-plugin-examples/misc/test/nodejs.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/nodejs.test.ts
rename to fixtures/vitest-plugin-examples/misc/test/nodejs.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/pages-functions.test.ts b/fixtures/vitest-plugin-examples/misc/test/pages-functions.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/pages-functions.test.ts
rename to fixtures/vitest-plugin-examples/misc/test/pages-functions.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/server.ts b/fixtures/vitest-plugin-examples/misc/test/server.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/server.ts
rename to fixtures/vitest-plugin-examples/misc/test/server.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/setup.ts b/fixtures/vitest-plugin-examples/misc/test/setup.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/setup.ts
rename to fixtures/vitest-plugin-examples/misc/test/setup.ts
diff --git a/fixtures/vitest-pool-workers-examples/misc/test/tsconfig.json b/fixtures/vitest-plugin-examples/misc/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/misc/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/misc/tsconfig.json b/fixtures/vitest-plugin-examples/misc/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/tsconfig.json
rename to fixtures/vitest-plugin-examples/misc/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/misc/vitest.assets.config.ts b/fixtures/vitest-plugin-examples/misc/vitest.assets.config.ts
similarity index 87%
rename from fixtures/vitest-pool-workers-examples/misc/vitest.assets.config.ts
rename to fixtures/vitest-plugin-examples/misc/vitest.assets.config.ts
index 597a234240a..a4aca21adec 100644
--- a/fixtures/vitest-pool-workers-examples/misc/vitest.assets.config.ts
+++ b/fixtures/vitest-plugin-examples/misc/vitest.assets.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/misc/vitest.config.ts b/fixtures/vitest-plugin-examples/misc/vitest.config.ts
similarity index 94%
rename from fixtures/vitest-pool-workers-examples/misc/vitest.config.ts
rename to fixtures/vitest-plugin-examples/misc/vitest.config.ts
index b34070889b7..2f3706f8bc4 100644
--- a/fixtures/vitest-pool-workers-examples/misc/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/misc/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { Response } from "miniflare";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/misc/vitest.nodejs-optout.config.ts b/fixtures/vitest-plugin-examples/misc/vitest.nodejs-optout.config.ts
similarity index 85%
rename from fixtures/vitest-pool-workers-examples/misc/vitest.nodejs-optout.config.ts
rename to fixtures/vitest-plugin-examples/misc/vitest.nodejs-optout.config.ts
index f1b1b763ab4..0491894fdd9 100644
--- a/fixtures/vitest-pool-workers-examples/misc/vitest.nodejs-optout.config.ts
+++ b/fixtures/vitest-plugin-examples/misc/vitest.nodejs-optout.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/misc/vitest.nodejs.config.ts b/fixtures/vitest-plugin-examples/misc/vitest.nodejs.config.ts
similarity index 84%
rename from fixtures/vitest-pool-workers-examples/misc/vitest.nodejs.config.ts
rename to fixtures/vitest-plugin-examples/misc/vitest.nodejs.config.ts
index 4c33e225bf5..19e21aa35c9 100644
--- a/fixtures/vitest-pool-workers-examples/misc/vitest.nodejs.config.ts
+++ b/fixtures/vitest-plugin-examples/misc/vitest.nodejs.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/misc/wrangler.assets.jsonc b/fixtures/vitest-plugin-examples/misc/wrangler.assets.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/wrangler.assets.jsonc
rename to fixtures/vitest-plugin-examples/misc/wrangler.assets.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/misc/wrangler.jsonc b/fixtures/vitest-plugin-examples/misc/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/misc/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/misc/wrangler.nodejs-optout.jsonc b/fixtures/vitest-plugin-examples/misc/wrangler.nodejs-optout.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/wrangler.nodejs-optout.jsonc
rename to fixtures/vitest-plugin-examples/misc/wrangler.nodejs-optout.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/misc/wrangler.nodejs.jsonc b/fixtures/vitest-plugin-examples/misc/wrangler.nodejs.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/misc/wrangler.nodejs.jsonc
rename to fixtures/vitest-plugin-examples/misc/wrangler.nodejs.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/README.md b/fixtures/vitest-plugin-examples/module-resolution/README.md
similarity index 95%
rename from fixtures/vitest-pool-workers-examples/module-resolution/README.md
rename to fixtures/vitest-plugin-examples/module-resolution/README.md
index a2c86725e6a..a3302771f09 100644
--- a/fixtures/vitest-pool-workers-examples/module-resolution/README.md
+++ b/fixtures/vitest-plugin-examples/module-resolution/README.md
@@ -11,7 +11,7 @@ This fixture demonstrates that the Vitest integration correctly resolves modules
[Dependency Pre-Bundling](https://vite.dev/guide/dep-pre-bundling) is a Vite feature that converts dependencies shipped as CommonJS or UMD into ESM. If you encounter module resolution issues—such as: `Error: Cannot use require() to import an ES Module` or `Error: No such module`—you can pre-bundle these dependencies using the [deps.optimizer](https://vitest.dev/config/#deps-optimizer) option:
```ts
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineConfig } from "vitest/config";
export default defineConfig({
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/src/env.d.ts b/fixtures/vitest-plugin-examples/module-resolution/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/src/env.d.ts
rename to fixtures/vitest-plugin-examples/module-resolution/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/src/index.ts b/fixtures/vitest-plugin-examples/module-resolution/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/src/index.ts
rename to fixtures/vitest-plugin-examples/module-resolution/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/src/test.sql b/fixtures/vitest-plugin-examples/module-resolution/src/test.sql
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/src/test.sql
rename to fixtures/vitest-plugin-examples/module-resolution/src/test.sql
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/src/tsconfig.json b/fixtures/vitest-plugin-examples/module-resolution/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/module-resolution/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/test/index.d.ts b/fixtures/vitest-plugin-examples/module-resolution/test/index.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/test/index.d.ts
rename to fixtures/vitest-plugin-examples/module-resolution/test/index.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/test/index.spec.ts b/fixtures/vitest-plugin-examples/module-resolution/test/index.spec.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/test/index.spec.ts
rename to fixtures/vitest-plugin-examples/module-resolution/test/index.spec.ts
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/test/tsconfig.json b/fixtures/vitest-plugin-examples/module-resolution/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/module-resolution/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/tsconfig.json b/fixtures/vitest-plugin-examples/module-resolution/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/tsconfig.json
rename to fixtures/vitest-plugin-examples/module-resolution/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep/add.wasm b/fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep/add.wasm
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep/add.wasm
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep/add.wasm
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep/index.d.ts b/fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep/index.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep/index.d.ts
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep/index.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep/index.js b/fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep/index.js
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep/index.js
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep/index.js
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep/package.json b/fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep/package.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep/package.json
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep/package.json
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep/index.d.mts b/fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep/index.d.mts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep/index.d.mts
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep/index.d.mts
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep/index.mjs b/fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep/index.mjs
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep/index.mjs
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep/index.mjs
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep/package.json b/fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep/package.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep/package.json
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep/package.json
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep/value.mjs b/fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep/value.mjs
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep/value.mjs
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep/value.mjs
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/ext-dep/index.js b/fixtures/vitest-plugin-examples/module-resolution/vendor/ext-dep/index.js
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/ext-dep/index.js
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/ext-dep/index.js
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/ext-dep/package.json b/fixtures/vitest-plugin-examples/module-resolution/vendor/ext-dep/package.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/ext-dep/package.json
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/ext-dep/package.json
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/ext-dep/subfolder/index.js b/fixtures/vitest-plugin-examples/module-resolution/vendor/ext-dep/subfolder/index.js
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/ext-dep/subfolder/index.js
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/ext-dep/subfolder/index.js
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep/add.wasm b/fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep/add.wasm
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep/add.wasm
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep/add.wasm
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep/index.d.mts b/fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep/index.d.mts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep/index.d.mts
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep/index.d.mts
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep/index.mjs b/fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep/index.mjs
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep/index.mjs
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep/index.mjs
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep/package.json b/fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep/package.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep/package.json
rename to fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep/package.json
diff --git a/fixtures/vitest-pool-workers-examples/container-app/vitest.config.ts b/fixtures/vitest-plugin-examples/module-resolution/vitest.config.ts
similarity index 80%
rename from fixtures/vitest-pool-workers-examples/container-app/vitest.config.ts
rename to fixtures/vitest-plugin-examples/module-resolution/vitest.config.ts
index d9a889a9fdb..c2326d6f5cb 100644
--- a/fixtures/vitest-pool-workers-examples/container-app/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/module-resolution/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/module-resolution/wrangler.jsonc b/fixtures/vitest-plugin-examples/module-resolution/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/module-resolution/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/module-resolution/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/README.md b/fixtures/vitest-plugin-examples/multiple-workers/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/README.md
rename to fixtures/vitest-plugin-examples/multiple-workers/README.md
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/api-service/src/env.d.ts b/fixtures/vitest-plugin-examples/multiple-workers/api-service/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/api-service/src/env.d.ts
rename to fixtures/vitest-plugin-examples/multiple-workers/api-service/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/api-service/src/index.ts b/fixtures/vitest-plugin-examples/multiple-workers/api-service/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/api-service/src/index.ts
rename to fixtures/vitest-plugin-examples/multiple-workers/api-service/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/api-service/src/tsconfig.json b/fixtures/vitest-plugin-examples/multiple-workers/api-service/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/api-service/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/multiple-workers/api-service/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/api-service/wrangler.jsonc b/fixtures/vitest-plugin-examples/multiple-workers/api-service/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/api-service/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/multiple-workers/api-service/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/auth-service/src/env.d.ts b/fixtures/vitest-plugin-examples/multiple-workers/auth-service/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/auth-service/src/env.d.ts
rename to fixtures/vitest-plugin-examples/multiple-workers/auth-service/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/auth-service/src/index.ts b/fixtures/vitest-plugin-examples/multiple-workers/auth-service/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/auth-service/src/index.ts
rename to fixtures/vitest-plugin-examples/multiple-workers/auth-service/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/auth-service/src/tsconfig.json b/fixtures/vitest-plugin-examples/multiple-workers/auth-service/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/auth-service/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/multiple-workers/auth-service/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/auth-service/wrangler.jsonc b/fixtures/vitest-plugin-examples/multiple-workers/auth-service/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/auth-service/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/multiple-workers/auth-service/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/database-service/src/env.d.ts b/fixtures/vitest-plugin-examples/multiple-workers/database-service/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/database-service/src/env.d.ts
rename to fixtures/vitest-plugin-examples/multiple-workers/database-service/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/database-service/src/index.ts b/fixtures/vitest-plugin-examples/multiple-workers/database-service/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/database-service/src/index.ts
rename to fixtures/vitest-plugin-examples/multiple-workers/database-service/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/database-service/src/tsconfig.json b/fixtures/vitest-plugin-examples/multiple-workers/database-service/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/database-service/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/multiple-workers/database-service/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/database-service/wrangler.jsonc b/fixtures/vitest-plugin-examples/multiple-workers/database-service/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/database-service/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/multiple-workers/database-service/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/global-setup.ts b/fixtures/vitest-plugin-examples/multiple-workers/global-setup.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/global-setup.ts
rename to fixtures/vitest-plugin-examples/multiple-workers/global-setup.ts
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/test/env.d.ts b/fixtures/vitest-plugin-examples/multiple-workers/test/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/test/env.d.ts
rename to fixtures/vitest-plugin-examples/multiple-workers/test/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/test/integration.test.ts b/fixtures/vitest-plugin-examples/multiple-workers/test/integration.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/test/integration.test.ts
rename to fixtures/vitest-plugin-examples/multiple-workers/test/integration.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/test/tsconfig.json b/fixtures/vitest-plugin-examples/multiple-workers/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/multiple-workers/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/tsconfig.json b/fixtures/vitest-plugin-examples/multiple-workers/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/tsconfig.json
rename to fixtures/vitest-plugin-examples/multiple-workers/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/multiple-workers/vitest.config.ts b/fixtures/vitest-plugin-examples/multiple-workers/vitest.config.ts
similarity index 98%
rename from fixtures/vitest-pool-workers-examples/multiple-workers/vitest.config.ts
rename to fixtures/vitest-plugin-examples/multiple-workers/vitest.config.ts
index 40585520c51..0c5cbb2a99a 100644
--- a/fixtures/vitest-pool-workers-examples/multiple-workers/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/multiple-workers/vitest.config.ts
@@ -1,5 +1,5 @@
import crypto from "node:crypto";
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { importPKCS8, SignJWT } from "jose";
import { Request, Response } from "miniflare";
import { defineProject, mergeConfig } from "vitest/config";
diff --git a/fixtures/vitest-pool-workers-examples/package.json b/fixtures/vitest-plugin-examples/package.json
similarity index 97%
rename from fixtures/vitest-pool-workers-examples/package.json
rename to fixtures/vitest-plugin-examples/package.json
index cd31434f91a..1836fb9f1d3 100644
--- a/fixtures/vitest-pool-workers-examples/package.json
+++ b/fixtures/vitest-plugin-examples/package.json
@@ -1,5 +1,5 @@
{
- "name": "@fixture/vitest-pool-workers",
+ "name": "@fixture/vitest-plugin-examples",
"private": true,
"type": "module",
"scripts": {
@@ -35,7 +35,7 @@
"devDependencies": {
"@better-auth/stripe": "^1.4.6",
"@cloudflare/containers": "^0.2.2",
- "@cloudflare/vitest-pool-workers": "workspace:*",
+ "@cloudflare/vitest-plugin": "workspace:*",
"@cloudflare/workers-types": "catalog:default",
"@microlabs/otel-cf-workers": "1.0.0-rc.45",
"@msw/cloudflare": "0.0.1",
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/.gitignore b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/.gitignore
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/.gitignore
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/.gitignore
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/README.md b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/README.md
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/README.md
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/functions/api/_middleware.ts b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/functions/api/_middleware.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/functions/api/_middleware.ts
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/functions/api/_middleware.ts
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/functions/api/kv/[key].ts b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/functions/api/kv/[key].ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/functions/api/kv/[key].ts
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/functions/api/kv/[key].ts
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/functions/api/ping.ts b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/functions/api/ping.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/functions/api/ping.ts
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/functions/api/ping.ts
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/functions/env.d.ts b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/functions/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/functions/env.d.ts
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/functions/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/functions/tsconfig.json b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/functions/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/functions/tsconfig.json
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/functions/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/global-setup.ts b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/global-setup.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/global-setup.ts
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/global-setup.ts
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/public/404.html b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/public/404.html
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/public/404.html
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/public/404.html
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/public/_headers b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/public/_headers
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/public/_headers
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/public/_headers
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/public/_redirects b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/public/_redirects
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/public/_redirects
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/public/_redirects
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/public/index.html b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/public/index.html
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/public/index.html
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/public/index.html
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/public/secure.html b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/public/secure.html
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/public/secure.html
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/public/secure.html
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/test/env.d.ts b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/test/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/test/env.d.ts
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/test/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/test/integration-self.test.ts b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/test/integration-self.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/test/integration-self.test.ts
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/test/integration-self.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/test/tsconfig.json b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/test/unit.test.ts b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/test/unit.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/test/unit.test.ts
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/test/unit.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/tsconfig.json b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/tsconfig.json
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/vitest.config.ts b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/vitest.config.ts
similarity index 94%
rename from fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/vitest.config.ts
rename to fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/vitest.config.ts
index 854b278fec3..29f90251d64 100644
--- a/fixtures/vitest-pool-workers-examples/pages-functions-unit-integration-self/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/pages-functions-unit-integration-self/vitest.config.ts
@@ -2,7 +2,7 @@ import path from "node:path";
import {
buildPagesASSETSBinding,
cloudflareTest,
-} from "@cloudflare/vitest-pool-workers";
+} from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/pages-with-config/README.md b/fixtures/vitest-plugin-examples/pages-with-config/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-with-config/README.md
rename to fixtures/vitest-plugin-examples/pages-with-config/README.md
diff --git a/fixtures/vitest-pool-workers-examples/pages-with-config/pages-config.test.ts b/fixtures/vitest-plugin-examples/pages-with-config/pages-config.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-with-config/pages-config.test.ts
rename to fixtures/vitest-plugin-examples/pages-with-config/pages-config.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/pages-with-config/tsconfig.json b/fixtures/vitest-plugin-examples/pages-with-config/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-with-config/tsconfig.json
rename to fixtures/vitest-plugin-examples/pages-with-config/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/vitest.config.ts b/fixtures/vitest-plugin-examples/pages-with-config/vitest.config.ts
similarity index 80%
rename from fixtures/vitest-pool-workers-examples/workers-assets-no-dir/vitest.config.ts
rename to fixtures/vitest-plugin-examples/pages-with-config/vitest.config.ts
index d9a889a9fdb..c2326d6f5cb 100644
--- a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/pages-with-config/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/pages-with-config/wrangler.jsonc b/fixtures/vitest-plugin-examples/pages-with-config/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pages-with-config/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/pages-with-config/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/pipelines/README.md b/fixtures/vitest-plugin-examples/pipelines/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pipelines/README.md
rename to fixtures/vitest-plugin-examples/pipelines/README.md
diff --git a/fixtures/vitest-pool-workers-examples/pipelines/src/env.d.ts b/fixtures/vitest-plugin-examples/pipelines/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pipelines/src/env.d.ts
rename to fixtures/vitest-plugin-examples/pipelines/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/pipelines/src/index.ts b/fixtures/vitest-plugin-examples/pipelines/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pipelines/src/index.ts
rename to fixtures/vitest-plugin-examples/pipelines/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/pipelines/src/tsconfig.json b/fixtures/vitest-plugin-examples/pipelines/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pipelines/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/pipelines/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/pipelines/test/pipeline-send-integration-self.test.ts b/fixtures/vitest-plugin-examples/pipelines/test/pipeline-send-integration-self.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pipelines/test/pipeline-send-integration-self.test.ts
rename to fixtures/vitest-plugin-examples/pipelines/test/pipeline-send-integration-self.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/pipelines/test/pipeline-send-unit.test.ts b/fixtures/vitest-plugin-examples/pipelines/test/pipeline-send-unit.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pipelines/test/pipeline-send-unit.test.ts
rename to fixtures/vitest-plugin-examples/pipelines/test/pipeline-send-unit.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/pipelines/test/tsconfig.json b/fixtures/vitest-plugin-examples/pipelines/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pipelines/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/pipelines/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/pipelines/tsconfig.json b/fixtures/vitest-plugin-examples/pipelines/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pipelines/tsconfig.json
rename to fixtures/vitest-plugin-examples/pipelines/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/kv-r2-caches/vitest.config.ts b/fixtures/vitest-plugin-examples/pipelines/vitest.config.ts
similarity index 81%
rename from fixtures/vitest-pool-workers-examples/kv-r2-caches/vitest.config.ts
rename to fixtures/vitest-plugin-examples/pipelines/vitest.config.ts
index 42170624230..877bda7df9f 100644
--- a/fixtures/vitest-pool-workers-examples/kv-r2-caches/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/pipelines/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/pipelines/wrangler.jsonc b/fixtures/vitest-plugin-examples/pipelines/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/pipelines/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/pipelines/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/queues/README.md b/fixtures/vitest-plugin-examples/queues/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/README.md
rename to fixtures/vitest-plugin-examples/queues/README.md
diff --git a/fixtures/vitest-pool-workers-examples/queues/src/env.d.ts b/fixtures/vitest-plugin-examples/queues/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/src/env.d.ts
rename to fixtures/vitest-plugin-examples/queues/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/queues/src/index.ts b/fixtures/vitest-plugin-examples/queues/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/src/index.ts
rename to fixtures/vitest-plugin-examples/queues/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/queues/src/tsconfig.json b/fixtures/vitest-plugin-examples/queues/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/queues/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/queues/test/queue-consumer-integration-self.test.ts b/fixtures/vitest-plugin-examples/queues/test/queue-consumer-integration-self.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/test/queue-consumer-integration-self.test.ts
rename to fixtures/vitest-plugin-examples/queues/test/queue-consumer-integration-self.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/queues/test/queue-consumer-unit.test.ts b/fixtures/vitest-plugin-examples/queues/test/queue-consumer-unit.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/test/queue-consumer-unit.test.ts
rename to fixtures/vitest-plugin-examples/queues/test/queue-consumer-unit.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/queues/test/queue-producer-integration-self.test.ts b/fixtures/vitest-plugin-examples/queues/test/queue-producer-integration-self.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/test/queue-producer-integration-self.test.ts
rename to fixtures/vitest-plugin-examples/queues/test/queue-producer-integration-self.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/queues/test/queue-producer-unit.test.ts b/fixtures/vitest-plugin-examples/queues/test/queue-producer-unit.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/test/queue-producer-unit.test.ts
rename to fixtures/vitest-plugin-examples/queues/test/queue-producer-unit.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/queues/test/tsconfig.json b/fixtures/vitest-plugin-examples/queues/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/queues/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/queues/tsconfig.json b/fixtures/vitest-plugin-examples/queues/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/tsconfig.json
rename to fixtures/vitest-plugin-examples/queues/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/queues/vitest.config.ts b/fixtures/vitest-plugin-examples/queues/vitest.config.ts
similarity index 90%
rename from fixtures/vitest-pool-workers-examples/queues/vitest.config.ts
rename to fixtures/vitest-plugin-examples/queues/vitest.config.ts
index fe3a8af95f3..83fd138e38a 100644
--- a/fixtures/vitest-pool-workers-examples/queues/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/queues/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/queues/wrangler.jsonc b/fixtures/vitest-plugin-examples/queues/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/queues/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/queues/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/README.md b/fixtures/vitest-plugin-examples/request-mocking/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/README.md
rename to fixtures/vitest-plugin-examples/request-mocking/README.md
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/src/env.d.ts b/fixtures/vitest-plugin-examples/request-mocking/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/src/env.d.ts
rename to fixtures/vitest-plugin-examples/request-mocking/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/src/index.ts b/fixtures/vitest-plugin-examples/request-mocking/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/src/index.ts
rename to fixtures/vitest-plugin-examples/request-mocking/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/src/tsconfig.json b/fixtures/vitest-plugin-examples/request-mocking/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/request-mocking/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/test/direct.test.ts b/fixtures/vitest-plugin-examples/request-mocking/test/direct.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/test/direct.test.ts
rename to fixtures/vitest-plugin-examples/request-mocking/test/direct.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/test/exports.test.ts b/fixtures/vitest-plugin-examples/request-mocking/test/exports.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/test/exports.test.ts
rename to fixtures/vitest-plugin-examples/request-mocking/test/exports.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/test/server.ts b/fixtures/vitest-plugin-examples/request-mocking/test/server.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/test/server.ts
rename to fixtures/vitest-plugin-examples/request-mocking/test/server.ts
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/test/setup.ts b/fixtures/vitest-plugin-examples/request-mocking/test/setup.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/test/setup.ts
rename to fixtures/vitest-plugin-examples/request-mocking/test/setup.ts
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/test/tsconfig.json b/fixtures/vitest-plugin-examples/request-mocking/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/request-mocking/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/test/websocket.test.ts b/fixtures/vitest-plugin-examples/request-mocking/test/websocket.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/test/websocket.test.ts
rename to fixtures/vitest-plugin-examples/request-mocking/test/websocket.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/tsconfig.json b/fixtures/vitest-plugin-examples/request-mocking/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/tsconfig.json
rename to fixtures/vitest-plugin-examples/request-mocking/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/vitest.config.ts b/fixtures/vitest-plugin-examples/request-mocking/vitest.config.ts
similarity index 83%
rename from fixtures/vitest-pool-workers-examples/request-mocking/vitest.config.ts
rename to fixtures/vitest-plugin-examples/request-mocking/vitest.config.ts
index 20f7975d5b7..95c61d3070c 100644
--- a/fixtures/vitest-pool-workers-examples/request-mocking/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/request-mocking/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/request-mocking/wrangler.jsonc b/fixtures/vitest-plugin-examples/request-mocking/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/request-mocking/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/request-mocking/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/reset/src/env.d.ts b/fixtures/vitest-plugin-examples/reset/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/reset/src/env.d.ts
rename to fixtures/vitest-plugin-examples/reset/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/reset/src/index.ts b/fixtures/vitest-plugin-examples/reset/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/reset/src/index.ts
rename to fixtures/vitest-plugin-examples/reset/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/reset/src/tsconfig.json b/fixtures/vitest-plugin-examples/reset/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/reset/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/reset/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/reset/test/reset.test.ts b/fixtures/vitest-plugin-examples/reset/test/reset.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/reset/test/reset.test.ts
rename to fixtures/vitest-plugin-examples/reset/test/reset.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/reset/test/tsconfig.json b/fixtures/vitest-plugin-examples/reset/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/reset/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/reset/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/reset/tsconfig.json b/fixtures/vitest-plugin-examples/reset/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/reset/tsconfig.json
rename to fixtures/vitest-plugin-examples/reset/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/reset/vitest.config.ts b/fixtures/vitest-plugin-examples/reset/vitest.config.ts
similarity index 83%
rename from fixtures/vitest-pool-workers-examples/reset/vitest.config.ts
rename to fixtures/vitest-plugin-examples/reset/vitest.config.ts
index 2590f0b2759..7d100144fd6 100644
--- a/fixtures/vitest-pool-workers-examples/reset/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/reset/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/reset/wrangler.jsonc b/fixtures/vitest-plugin-examples/reset/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/reset/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/reset/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/rpc/README.md b/fixtures/vitest-plugin-examples/rpc/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/rpc/README.md
rename to fixtures/vitest-plugin-examples/rpc/README.md
diff --git a/fixtures/vitest-pool-workers-examples/rpc/src/counter.ts b/fixtures/vitest-plugin-examples/rpc/src/counter.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/rpc/src/counter.ts
rename to fixtures/vitest-plugin-examples/rpc/src/counter.ts
diff --git a/fixtures/vitest-pool-workers-examples/rpc/src/env.d.ts b/fixtures/vitest-plugin-examples/rpc/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/rpc/src/env.d.ts
rename to fixtures/vitest-plugin-examples/rpc/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/rpc/src/index.ts b/fixtures/vitest-plugin-examples/rpc/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/rpc/src/index.ts
rename to fixtures/vitest-plugin-examples/rpc/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/rpc/src/tsconfig.json b/fixtures/vitest-plugin-examples/rpc/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/rpc/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/rpc/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/rpc/test/integration-self.test.ts b/fixtures/vitest-plugin-examples/rpc/test/integration-self.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/rpc/test/integration-self.test.ts
rename to fixtures/vitest-plugin-examples/rpc/test/integration-self.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/rpc/test/tsconfig.json b/fixtures/vitest-plugin-examples/rpc/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/rpc/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/rpc/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/rpc/test/unit.test.ts b/fixtures/vitest-plugin-examples/rpc/test/unit.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/rpc/test/unit.test.ts
rename to fixtures/vitest-plugin-examples/rpc/test/unit.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/rpc/tsconfig.json b/fixtures/vitest-plugin-examples/rpc/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/rpc/tsconfig.json
rename to fixtures/vitest-plugin-examples/rpc/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/rpc/vitest.config.ts b/fixtures/vitest-plugin-examples/rpc/vitest.config.ts
similarity index 90%
rename from fixtures/vitest-pool-workers-examples/rpc/vitest.config.ts
rename to fixtures/vitest-plugin-examples/rpc/vitest.config.ts
index 23dbf70ad20..9413ee79129 100644
--- a/fixtures/vitest-pool-workers-examples/rpc/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/rpc/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/rpc/wrangler.jsonc b/fixtures/vitest-plugin-examples/rpc/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/rpc/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/rpc/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/tsc-all.mjs b/fixtures/vitest-plugin-examples/tsc-all.mjs
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/tsc-all.mjs
rename to fixtures/vitest-plugin-examples/tsc-all.mjs
diff --git a/fixtures/vitest-pool-workers-examples/tsconfig.node.json b/fixtures/vitest-plugin-examples/tsconfig.node.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/tsconfig.node.json
rename to fixtures/vitest-plugin-examples/tsconfig.node.json
diff --git a/fixtures/vitest-pool-workers-examples/tsconfig.workerd-test.json b/fixtures/vitest-plugin-examples/tsconfig.workerd-test.json
similarity index 85%
rename from fixtures/vitest-pool-workers-examples/tsconfig.workerd-test.json
rename to fixtures/vitest-plugin-examples/tsconfig.workerd-test.json
index 3aa2158e58a..13336455e0b 100644
--- a/fixtures/vitest-pool-workers-examples/tsconfig.workerd-test.json
+++ b/fixtures/vitest-plugin-examples/tsconfig.workerd-test.json
@@ -3,7 +3,7 @@
"compilerOptions": {
"types": [
"@cloudflare/workers-types/experimental",
- "@cloudflare/vitest-pool-workers/types",
+ "@cloudflare/vitest-plugin/types",
"@types/node", // For tests using Node.js compat APIs (process, Buffer, node:*)
"vite/client" // For `?raw`, `?url`, etc. import types
]
diff --git a/fixtures/vitest-pool-workers-examples/tsconfig.workerd.json b/fixtures/vitest-plugin-examples/tsconfig.workerd.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/tsconfig.workerd.json
rename to fixtures/vitest-plugin-examples/tsconfig.workerd.json
diff --git a/fixtures/vitest-pool-workers-examples/vitest.config.ts b/fixtures/vitest-plugin-examples/vitest.config.ts
similarity index 92%
rename from fixtures/vitest-pool-workers-examples/vitest.config.ts
rename to fixtures/vitest-plugin-examples/vitest.config.ts
index b292e263050..0093676f1d2 100644
--- a/fixtures/vitest-pool-workers-examples/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/vitest.config.ts
@@ -1,4 +1,4 @@
-// Root vitest config for the vitest-pool-workers-examples fixture.
+// Root vitest config for the vitest-plugin-examples fixture.
// Per the Vitest 4 docs, only `globalSetup`, `reporters`, `coverage`, and
// other "global" options are inherited from this root config; project test
// options (testTimeout, retry, etc.) are NOT inherited. Each project under
diff --git a/fixtures/vitest-pool-workers-examples/vitest.global.ts b/fixtures/vitest-plugin-examples/vitest.global.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/vitest.global.ts
rename to fixtures/vitest-plugin-examples/vitest.global.ts
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/README.md b/fixtures/vitest-plugin-examples/web-assembly/README.md
similarity index 71%
rename from fixtures/vitest-pool-workers-examples/web-assembly/README.md
rename to fixtures/vitest-plugin-examples/web-assembly/README.md
index c1018163bdb..98c043175ba 100644
--- a/fixtures/vitest-pool-workers-examples/web-assembly/README.md
+++ b/fixtures/vitest-plugin-examples/web-assembly/README.md
@@ -1,6 +1,6 @@
# ⚙️ web-assembly
-This Worker makes use of a WebAssembly module to add two numbers together. Wrangler's default module rules are enabled by `@cloudflare/vitest-pool-workers` if you have a `wrangler.configPath` configured. This means `.wasm` files can be imported as `WebAssembly.Module`s.
+This Worker makes use of a WebAssembly module to add two numbers together. Wrangler's default module rules are enabled by `@cloudflare/vitest-plugin` if you have a `wrangler.configPath` configured. This means `.wasm` files can be imported as `WebAssembly.Module`s.
| Test | Overview |
| ------------------------------- | -------------------------------- |
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/src/add.wasm b/fixtures/vitest-plugin-examples/web-assembly/src/add.wasm
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/web-assembly/src/add.wasm
rename to fixtures/vitest-plugin-examples/web-assembly/src/add.wasm
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/src/env.d.ts b/fixtures/vitest-plugin-examples/web-assembly/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/web-assembly/src/env.d.ts
rename to fixtures/vitest-plugin-examples/web-assembly/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/src/index.ts b/fixtures/vitest-plugin-examples/web-assembly/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/web-assembly/src/index.ts
rename to fixtures/vitest-plugin-examples/web-assembly/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/src/tsconfig.json b/fixtures/vitest-plugin-examples/web-assembly/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/web-assembly/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/web-assembly/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/src/wasm-shim.d.ts b/fixtures/vitest-plugin-examples/web-assembly/src/wasm-shim.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/web-assembly/src/wasm-shim.d.ts
rename to fixtures/vitest-plugin-examples/web-assembly/src/wasm-shim.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/test/add.test.ts b/fixtures/vitest-plugin-examples/web-assembly/test/add.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/web-assembly/test/add.test.ts
rename to fixtures/vitest-plugin-examples/web-assembly/test/add.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/test/not-actually.wasm.test.ts b/fixtures/vitest-plugin-examples/web-assembly/test/not-actually.wasm.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/web-assembly/test/not-actually.wasm.test.ts
rename to fixtures/vitest-plugin-examples/web-assembly/test/not-actually.wasm.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/test/tsconfig.json b/fixtures/vitest-plugin-examples/web-assembly/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/web-assembly/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/web-assembly/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/tsconfig.json b/fixtures/vitest-plugin-examples/web-assembly/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/web-assembly/tsconfig.json
rename to fixtures/vitest-plugin-examples/web-assembly/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/vitest.config.ts b/fixtures/vitest-plugin-examples/web-assembly/vitest.config.ts
similarity index 89%
rename from fixtures/vitest-pool-workers-examples/web-assembly/vitest.config.ts
rename to fixtures/vitest-plugin-examples/web-assembly/vitest.config.ts
index f8b2e2bd822..23079f3f348 100644
--- a/fixtures/vitest-pool-workers-examples/web-assembly/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/web-assembly/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/web-assembly/wrangler.jsonc b/fixtures/vitest-plugin-examples/web-assembly/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/web-assembly/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/web-assembly/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/src/env.d.ts b/fixtures/vitest-plugin-examples/workers-assets-no-dir/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets-no-dir/src/env.d.ts
rename to fixtures/vitest-plugin-examples/workers-assets-no-dir/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/src/index.ts b/fixtures/vitest-plugin-examples/workers-assets-no-dir/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets-no-dir/src/index.ts
rename to fixtures/vitest-plugin-examples/workers-assets-no-dir/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/src/tsconfig.json b/fixtures/vitest-plugin-examples/workers-assets-no-dir/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets-no-dir/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/workers-assets-no-dir/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/test/assets-no-dir.test.ts b/fixtures/vitest-plugin-examples/workers-assets-no-dir/test/assets-no-dir.test.ts
similarity index 91%
rename from fixtures/vitest-pool-workers-examples/workers-assets-no-dir/test/assets-no-dir.test.ts
rename to fixtures/vitest-plugin-examples/workers-assets-no-dir/test/assets-no-dir.test.ts
index 9e1ab2cfa7b..53f1ae2dd62 100644
--- a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/test/assets-no-dir.test.ts
+++ b/fixtures/vitest-plugin-examples/workers-assets-no-dir/test/assets-no-dir.test.ts
@@ -5,7 +5,7 @@ import { describe, it } from "vitest";
//
// When a wrangler config has `assets: { binding: "ASSETS" }` but no `directory`
// (as is common when using @cloudflare/vite-plugin, which handles asset serving
-// independently via its dev server), vitest-pool-workers must not throw:
+// independently via its dev server), vitest-plugin must not throw:
// "The `assets` property in your configuration is missing the required `directory` property."
describe("workers-assets-no-dir", () => {
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/test/tsconfig.json b/fixtures/vitest-plugin-examples/workers-assets-no-dir/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets-no-dir/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/workers-assets-no-dir/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/tsconfig.json b/fixtures/vitest-plugin-examples/workers-assets-no-dir/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets-no-dir/tsconfig.json
rename to fixtures/vitest-plugin-examples/workers-assets-no-dir/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/pages-with-config/vitest.config.ts b/fixtures/vitest-plugin-examples/workers-assets-no-dir/vitest.config.ts
similarity index 80%
rename from fixtures/vitest-pool-workers-examples/pages-with-config/vitest.config.ts
rename to fixtures/vitest-plugin-examples/workers-assets-no-dir/vitest.config.ts
index d9a889a9fdb..c2326d6f5cb 100644
--- a/fixtures/vitest-pool-workers-examples/pages-with-config/vitest.config.ts
+++ b/fixtures/vitest-plugin-examples/workers-assets-no-dir/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject, mergeConfig } from "vitest/config";
import configShared from "../../../vitest.shared";
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/wrangler.jsonc b/fixtures/vitest-plugin-examples/workers-assets-no-dir/wrangler.jsonc
similarity index 76%
rename from fixtures/vitest-pool-workers-examples/workers-assets-no-dir/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/workers-assets-no-dir/wrangler.jsonc
index 49d877d6b12..af024f71f90 100644
--- a/fixtures/vitest-pool-workers-examples/workers-assets-no-dir/wrangler.jsonc
+++ b/fixtures/vitest-plugin-examples/workers-assets-no-dir/wrangler.jsonc
@@ -3,7 +3,7 @@
"main": "src/index.ts",
// Simulate a project using @cloudflare/vite-plugin where assets are configured
// with a binding but no directory (vite-plugin serves them via its dev server).
- // vitest-pool-workers must not throw "missing required `directory` property" here.
+ // vitest-plugin must not throw "missing required `directory` property" here.
"assets": {
"binding": "ASSETS",
},
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/README.md b/fixtures/vitest-plugin-examples/workers-assets/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets/README.md
rename to fixtures/vitest-plugin-examples/workers-assets/README.md
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/public/binding.html b/fixtures/vitest-plugin-examples/workers-assets/public/binding.html
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets/public/binding.html
rename to fixtures/vitest-plugin-examples/workers-assets/public/binding.html
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/public/index.html b/fixtures/vitest-plugin-examples/workers-assets/public/index.html
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets/public/index.html
rename to fixtures/vitest-plugin-examples/workers-assets/public/index.html
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/src/env.d.ts b/fixtures/vitest-plugin-examples/workers-assets/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets/src/env.d.ts
rename to fixtures/vitest-plugin-examples/workers-assets/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/src/index.ts b/fixtures/vitest-plugin-examples/workers-assets/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets/src/index.ts
rename to fixtures/vitest-plugin-examples/workers-assets/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/src/tsconfig.json b/fixtures/vitest-plugin-examples/workers-assets/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/workers-assets/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/test/assets.test.ts b/fixtures/vitest-plugin-examples/workers-assets/test/assets.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets/test/assets.test.ts
rename to fixtures/vitest-plugin-examples/workers-assets/test/assets.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/test/tsconfig.json b/fixtures/vitest-plugin-examples/workers-assets/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/workers-assets/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/tsconfig.json b/fixtures/vitest-plugin-examples/workers-assets/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets/tsconfig.json
rename to fixtures/vitest-plugin-examples/workers-assets/tsconfig.json
diff --git a/fixtures/vitest-plugin-examples/workers-assets/vitest.config.ts b/fixtures/vitest-plugin-examples/workers-assets/vitest.config.ts
new file mode 100644
index 00000000000..c2326d6f5cb
--- /dev/null
+++ b/fixtures/vitest-plugin-examples/workers-assets/vitest.config.ts
@@ -0,0 +1,14 @@
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
+import { defineProject, mergeConfig } from "vitest/config";
+import configShared from "../../../vitest.shared";
+
+export default mergeConfig(
+ configShared,
+ defineProject({
+ plugins: [
+ cloudflareTest({
+ wrangler: { configPath: "./wrangler.jsonc" },
+ }),
+ ],
+ })
+);
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/wrangler.jsonc b/fixtures/vitest-plugin-examples/workers-assets/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workers-assets/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/workers-assets/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-examples/workflows/README.md b/fixtures/vitest-plugin-examples/workflows/README.md
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workflows/README.md
rename to fixtures/vitest-plugin-examples/workflows/README.md
diff --git a/fixtures/vitest-pool-workers-examples/workflows/src/env.d.ts b/fixtures/vitest-plugin-examples/workflows/src/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workflows/src/env.d.ts
rename to fixtures/vitest-plugin-examples/workflows/src/env.d.ts
diff --git a/fixtures/vitest-pool-workers-examples/workflows/src/index.ts b/fixtures/vitest-plugin-examples/workflows/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workflows/src/index.ts
rename to fixtures/vitest-plugin-examples/workflows/src/index.ts
diff --git a/fixtures/vitest-pool-workers-examples/workflows/src/tsconfig.json b/fixtures/vitest-plugin-examples/workflows/src/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workflows/src/tsconfig.json
rename to fixtures/vitest-plugin-examples/workflows/src/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/workflows/test/integration.test.ts b/fixtures/vitest-plugin-examples/workflows/test/integration.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workflows/test/integration.test.ts
rename to fixtures/vitest-plugin-examples/workflows/test/integration.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/workflows/test/tsconfig.json b/fixtures/vitest-plugin-examples/workflows/test/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workflows/test/tsconfig.json
rename to fixtures/vitest-plugin-examples/workflows/test/tsconfig.json
diff --git a/fixtures/vitest-pool-workers-examples/workflows/test/unit.test.ts b/fixtures/vitest-plugin-examples/workflows/test/unit.test.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workflows/test/unit.test.ts
rename to fixtures/vitest-plugin-examples/workflows/test/unit.test.ts
diff --git a/fixtures/vitest-pool-workers-examples/workflows/tsconfig.json b/fixtures/vitest-plugin-examples/workflows/tsconfig.json
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workflows/tsconfig.json
rename to fixtures/vitest-plugin-examples/workflows/tsconfig.json
diff --git a/fixtures/vitest-plugin-examples/workflows/vitest.config.ts b/fixtures/vitest-plugin-examples/workflows/vitest.config.ts
new file mode 100644
index 00000000000..877bda7df9f
--- /dev/null
+++ b/fixtures/vitest-plugin-examples/workflows/vitest.config.ts
@@ -0,0 +1,16 @@
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
+import { defineProject, mergeConfig } from "vitest/config";
+import configShared from "../../../vitest.shared";
+
+export default mergeConfig(
+ configShared,
+ defineProject({
+ plugins: [
+ cloudflareTest({
+ wrangler: {
+ configPath: "./wrangler.jsonc",
+ },
+ }),
+ ],
+ })
+);
diff --git a/fixtures/vitest-pool-workers-examples/workflows/wrangler.jsonc b/fixtures/vitest-plugin-examples/workflows/wrangler.jsonc
similarity index 100%
rename from fixtures/vitest-pool-workers-examples/workflows/wrangler.jsonc
rename to fixtures/vitest-plugin-examples/workflows/wrangler.jsonc
diff --git a/fixtures/vitest-pool-workers-remote-bindings/env.d.ts b/fixtures/vitest-plugin-remote-bindings/env.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-remote-bindings/env.d.ts
rename to fixtures/vitest-plugin-remote-bindings/env.d.ts
diff --git a/fixtures/vitest-pool-workers-remote-bindings/package.json b/fixtures/vitest-plugin-remote-bindings/package.json
similarity index 76%
rename from fixtures/vitest-pool-workers-remote-bindings/package.json
rename to fixtures/vitest-plugin-remote-bindings/package.json
index 72ac0b9cba3..605148b13b6 100644
--- a/fixtures/vitest-pool-workers-remote-bindings/package.json
+++ b/fixtures/vitest-plugin-remote-bindings/package.json
@@ -1,5 +1,5 @@
{
- "name": "@fixture/vitest-pool-workers-remote-bindings",
+ "name": "@fixture/vitest-plugin-remote-bindings",
"private": true,
"type": "module",
"scripts": {
@@ -9,7 +9,7 @@
"test:vitest": "vitest run"
},
"devDependencies": {
- "@cloudflare/vitest-pool-workers": "workspace:*",
+ "@cloudflare/vitest-plugin": "workspace:*",
"typescript": "catalog:default",
"vitest": "catalog:default",
"wrangler": "workspace:*"
diff --git a/fixtures/vitest-plugin-remote-bindings/remote-worker.js b/fixtures/vitest-plugin-remote-bindings/remote-worker.js
new file mode 100644
index 00000000000..12ebaed2128
--- /dev/null
+++ b/fixtures/vitest-plugin-remote-bindings/remote-worker.js
@@ -0,0 +1,7 @@
+export default {
+ fetch() {
+ return new Response(
+ "Hello from a remote Worker part of the vitest-plugin remote bindings fixture!"
+ );
+ },
+};
diff --git a/fixtures/vitest-pool-workers-remote-bindings/remote-worker.staging.js b/fixtures/vitest-plugin-remote-bindings/remote-worker.staging.js
similarity index 66%
rename from fixtures/vitest-pool-workers-remote-bindings/remote-worker.staging.js
rename to fixtures/vitest-plugin-remote-bindings/remote-worker.staging.js
index 2857097be87..7fe0d438ad6 100644
--- a/fixtures/vitest-pool-workers-remote-bindings/remote-worker.staging.js
+++ b/fixtures/vitest-plugin-remote-bindings/remote-worker.staging.js
@@ -1,7 +1,7 @@
export default {
fetch() {
return new Response(
- "Hello from a remote Worker, defined for the staging environment, part of the vitest-pool-workers remote bindings fixture!"
+ "Hello from a remote Worker, defined for the staging environment, part of the vitest-plugin remote bindings fixture!"
);
},
};
diff --git a/fixtures/vitest-pool-workers-remote-bindings/run-tests.mjs b/fixtures/vitest-plugin-remote-bindings/run-tests.mjs
similarity index 94%
rename from fixtures/vitest-pool-workers-remote-bindings/run-tests.mjs
rename to fixtures/vitest-plugin-remote-bindings/run-tests.mjs
index 72c90aae4ab..cbf1b5114c8 100644
--- a/fixtures/vitest-pool-workers-remote-bindings/run-tests.mjs
+++ b/fixtures/vitest-plugin-remote-bindings/run-tests.mjs
@@ -131,14 +131,12 @@ await Promise.all([
try {
try {
try {
- console.log("Running vitest-pool-workers remote bindings tests...");
+ console.log("Running vitest-plugin remote bindings tests...");
execSync("pnpm test:vitest --config ./.tmp/vitest.workers.config.ts", {
env,
stdio: "inherit",
});
- console.log(
- "Running vitest-pool-workers remote bindings staging tests..."
- );
+ console.log("Running vitest-plugin remote bindings staging tests...");
execSync(
"pnpm test:vitest --config ./.tmp/vitest.workers.config.staging.ts",
{
@@ -176,7 +174,7 @@ function getAuthenticatedEnv() {
};
}
console.warn(
- "Skipping vitest-pool-workers remote bindings tests because the environment is not authenticated with Cloudflare."
+ "Skipping vitest-plugin remote bindings tests because the environment is not authenticated with Cloudflare."
);
}
diff --git a/fixtures/vitest-pool-workers-remote-bindings/src/index.ts b/fixtures/vitest-plugin-remote-bindings/src/index.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-remote-bindings/src/index.ts
rename to fixtures/vitest-plugin-remote-bindings/src/index.ts
diff --git a/fixtures/vitest-pool-workers-remote-bindings/test-staging/index.spec.ts b/fixtures/vitest-plugin-remote-bindings/test-staging/index.spec.ts
similarity index 85%
rename from fixtures/vitest-pool-workers-remote-bindings/test-staging/index.spec.ts
rename to fixtures/vitest-plugin-remote-bindings/test-staging/index.spec.ts
index 5af2c128638..fab84eadf16 100644
--- a/fixtures/vitest-pool-workers-remote-bindings/test-staging/index.spec.ts
+++ b/fixtures/vitest-plugin-remote-bindings/test-staging/index.spec.ts
@@ -14,7 +14,7 @@ describe("Vitest pool workers remote bindings with a staging environment", () =>
const ctx = createExecutionContext();
await waitOnExecutionContext(ctx);
expect(await response.text()).toMatchInlineSnapshot(
- `"Hello from a remote Worker, defined for the staging environment, part of the vitest-pool-workers remote bindings fixture!"`
+ `"Hello from a remote Worker, defined for the staging environment, part of the vitest-plugin remote bindings fixture!"`
);
}
);
@@ -24,7 +24,7 @@ describe("Vitest pool workers remote bindings with a staging environment", () =>
}) => {
const response = await exports.default.fetch("https://example.com");
expect(await response.text()).toMatchInlineSnapshot(
- `"Response from remote worker: Hello from a remote Worker, defined for the staging environment, part of the vitest-pool-workers remote bindings fixture!"`
+ `"Response from remote worker: Hello from a remote Worker, defined for the staging environment, part of the vitest-plugin remote bindings fixture!"`
);
});
});
diff --git a/fixtures/vitest-pool-workers-remote-bindings/test/index.spec.ts b/fixtures/vitest-plugin-remote-bindings/test/index.spec.ts
similarity index 85%
rename from fixtures/vitest-pool-workers-remote-bindings/test/index.spec.ts
rename to fixtures/vitest-plugin-remote-bindings/test/index.spec.ts
index 7e3206d549b..d2780c0ada3 100644
--- a/fixtures/vitest-pool-workers-remote-bindings/test/index.spec.ts
+++ b/fixtures/vitest-plugin-remote-bindings/test/index.spec.ts
@@ -14,7 +14,7 @@ describe("Vitest pool workers remote bindings", () => {
const ctx = createExecutionContext();
await waitOnExecutionContext(ctx);
expect(await response.text()).toMatchInlineSnapshot(
- `"Hello from a remote Worker part of the vitest-pool-workers remote bindings fixture!"`
+ `"Hello from a remote Worker part of the vitest-plugin remote bindings fixture!"`
);
}
);
@@ -24,7 +24,7 @@ describe("Vitest pool workers remote bindings", () => {
}) => {
const response = await exports.default.fetch("https://example.com");
expect(await response.text()).toMatchInlineSnapshot(
- `"Response from remote worker: Hello from a remote Worker part of the vitest-pool-workers remote bindings fixture!"`
+ `"Response from remote worker: Hello from a remote Worker part of the vitest-plugin remote bindings fixture!"`
);
});
});
diff --git a/fixtures/vitest-pool-workers-remote-bindings/tsconfig.json b/fixtures/vitest-plugin-remote-bindings/tsconfig.json
similarity index 76%
rename from fixtures/vitest-pool-workers-remote-bindings/tsconfig.json
rename to fixtures/vitest-plugin-remote-bindings/tsconfig.json
index 67d85734ba9..2c4a6d8e881 100644
--- a/fixtures/vitest-pool-workers-remote-bindings/tsconfig.json
+++ b/fixtures/vitest-plugin-remote-bindings/tsconfig.json
@@ -4,10 +4,7 @@
"lib": ["esnext"],
"module": "esnext",
"moduleResolution": "bundler",
- "types": [
- "./worker-configuration.d.ts",
- "@cloudflare/vitest-pool-workers/types"
- ],
+ "types": ["./worker-configuration.d.ts", "@cloudflare/vitest-plugin/types"],
"noEmit": true,
"isolatedModules": true,
"forceConsistentCasingInFileNames": true,
diff --git a/fixtures/vitest-pool-workers-remote-bindings/turbo.json b/fixtures/vitest-plugin-remote-bindings/turbo.json
similarity index 100%
rename from fixtures/vitest-pool-workers-remote-bindings/turbo.json
rename to fixtures/vitest-plugin-remote-bindings/turbo.json
diff --git a/fixtures/vitest-pool-workers-remote-bindings/vitest.workers.config.staging.ts b/fixtures/vitest-plugin-remote-bindings/vitest.workers.config.staging.ts
similarity index 65%
rename from fixtures/vitest-pool-workers-remote-bindings/vitest.workers.config.staging.ts
rename to fixtures/vitest-plugin-remote-bindings/vitest.workers.config.staging.ts
index 8a8c9e6c410..7bb8bff9e2d 100644
--- a/fixtures/vitest-pool-workers-remote-bindings/vitest.workers.config.staging.ts
+++ b/fixtures/vitest-plugin-remote-bindings/vitest.workers.config.staging.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineConfig } from "vitest/config";
export default defineConfig({
@@ -12,10 +12,7 @@ export default defineConfig({
include: ["test-staging/**/*.spec.ts"],
server: {
deps: {
- external: [
- /packages\/vitest-pool-workers\/dist/,
- /packages\/wrangler\//,
- ],
+ external: [/packages\/vitest-plugin\/dist/, /packages\/wrangler\//],
},
},
},
diff --git a/fixtures/vitest-pool-workers-remote-bindings/vitest.workers.config.ts b/fixtures/vitest-plugin-remote-bindings/vitest.workers.config.ts
similarity index 63%
rename from fixtures/vitest-pool-workers-remote-bindings/vitest.workers.config.ts
rename to fixtures/vitest-plugin-remote-bindings/vitest.workers.config.ts
index 38e9fcdd697..a0fa7af27a4 100644
--- a/fixtures/vitest-pool-workers-remote-bindings/vitest.workers.config.ts
+++ b/fixtures/vitest-plugin-remote-bindings/vitest.workers.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineConfig } from "vitest/config";
export default defineConfig({
@@ -12,10 +12,7 @@ export default defineConfig({
include: ["test/**/*.spec.ts"],
server: {
deps: {
- external: [
- /packages\/vitest-pool-workers\/dist/,
- /packages\/wrangler\//,
- ],
+ external: [/packages\/vitest-plugin\/dist/, /packages\/wrangler\//],
},
},
},
diff --git a/fixtures/vitest-pool-workers-remote-bindings/worker-configuration.d.ts b/fixtures/vitest-plugin-remote-bindings/worker-configuration.d.ts
similarity index 100%
rename from fixtures/vitest-pool-workers-remote-bindings/worker-configuration.d.ts
rename to fixtures/vitest-plugin-remote-bindings/worker-configuration.d.ts
diff --git a/fixtures/vitest-pool-workers-remote-bindings/wrangler.json b/fixtures/vitest-plugin-remote-bindings/wrangler.json
similarity index 100%
rename from fixtures/vitest-pool-workers-remote-bindings/wrangler.json
rename to fixtures/vitest-plugin-remote-bindings/wrangler.json
diff --git a/fixtures/vitest-pool-workers-examples/container-app/README.md b/fixtures/vitest-pool-workers-examples/container-app/README.md
deleted file mode 100644
index f0ad4a9b69d..00000000000
--- a/fixtures/vitest-pool-workers-examples/container-app/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Apps with no-op containers
-
-Currently, `vitest-pool-workers` does not support testing containers yet. It should still let you test your application as long as you do not test with any code paths that interact with containers.
diff --git a/fixtures/vitest-pool-workers-examples/misc/README.md b/fixtures/vitest-pool-workers-examples/misc/README.md
deleted file mode 100644
index 24cbb33ada8..00000000000
--- a/fixtures/vitest-pool-workers-examples/misc/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# 🤷 misc
-
-We run all the tests in `vitest-pool-workers-examples` on every change to `workers-sdk`. This directory contains a bunch of tests to validate assorted Vitest features that aren't tested elsewhere.
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets/vitest.config.ts b/fixtures/vitest-pool-workers-examples/workers-assets/vitest.config.ts
deleted file mode 100644
index d9a889a9fdb..00000000000
--- a/fixtures/vitest-pool-workers-examples/workers-assets/vitest.config.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
-import { defineProject, mergeConfig } from "vitest/config";
-import configShared from "../../../vitest.shared";
-
-export default mergeConfig(
- configShared,
- defineProject({
- plugins: [
- cloudflareTest({
- wrangler: { configPath: "./wrangler.jsonc" },
- }),
- ],
- })
-);
diff --git a/fixtures/vitest-pool-workers-examples/workflows/vitest.config.ts b/fixtures/vitest-pool-workers-examples/workflows/vitest.config.ts
deleted file mode 100644
index 42170624230..00000000000
--- a/fixtures/vitest-pool-workers-examples/workflows/vitest.config.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
-import { defineProject, mergeConfig } from "vitest/config";
-import configShared from "../../../vitest.shared";
-
-export default mergeConfig(
- configShared,
- defineProject({
- plugins: [
- cloudflareTest({
- wrangler: {
- configPath: "./wrangler.jsonc",
- },
- }),
- ],
- })
-);
diff --git a/fixtures/vitest-pool-workers-remote-bindings/remote-worker.js b/fixtures/vitest-pool-workers-remote-bindings/remote-worker.js
deleted file mode 100644
index 3e6f023a8df..00000000000
--- a/fixtures/vitest-pool-workers-remote-bindings/remote-worker.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default {
- fetch() {
- return new Response(
- "Hello from a remote Worker part of the vitest-pool-workers remote bindings fixture!"
- );
- },
-};
diff --git a/fixtures/worker-with-unsafe-external-plugin/package.json b/fixtures/worker-with-unsafe-external-plugin/package.json
index beb7887b055..4cee3c20cf1 100644
--- a/fixtures/worker-with-unsafe-external-plugin/package.json
+++ b/fixtures/worker-with-unsafe-external-plugin/package.json
@@ -8,7 +8,7 @@
"test:watch": "vitest"
},
"devDependencies": {
- "@cloudflare/vitest-pool-workers": "workspace:*",
+ "@cloudflare/vitest-plugin": "workspace:*",
"@cloudflare/workers-tsconfig": "workspace:*",
"@fixture/unsafe-external-plugin": "workspace:*",
"turbo": "^2.2.3",
diff --git a/fixtures/worker-with-unsafe-external-plugin/tests/tsconfig.json b/fixtures/worker-with-unsafe-external-plugin/tests/tsconfig.json
index deb64120306..e0aba42c7d3 100644
--- a/fixtures/worker-with-unsafe-external-plugin/tests/tsconfig.json
+++ b/fixtures/worker-with-unsafe-external-plugin/tests/tsconfig.json
@@ -3,7 +3,7 @@
"compilerOptions": {
"types": [
"@cloudflare/workers-types/experimental",
- "@cloudflare/vitest-pool-workers/types"
+ "@cloudflare/vitest-plugin/types"
]
},
"include": ["./**/*.ts", "../src/env.d.ts"]
diff --git a/fixtures/worker-with-unsafe-external-plugin/vitest.config.ts b/fixtures/worker-with-unsafe-external-plugin/vitest.config.ts
index 4ece1a12b57..610e4db83d4 100644
--- a/fixtures/worker-with-unsafe-external-plugin/vitest.config.ts
+++ b/fixtures/worker-with-unsafe-external-plugin/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineConfig } from "vitest/config";
export default defineConfig({
diff --git a/fixtures/workers-shared-asset-config/package.json b/fixtures/workers-shared-asset-config/package.json
index 13e671a77d7..3deed5baba2 100644
--- a/fixtures/workers-shared-asset-config/package.json
+++ b/fixtures/workers-shared-asset-config/package.json
@@ -11,7 +11,7 @@
"type:tests": "tsc -p ./tsconfig.json"
},
"devDependencies": {
- "@cloudflare/vitest-pool-workers": "workspace:*",
+ "@cloudflare/vitest-plugin": "workspace:*",
"@cloudflare/workers-shared": "workspace:*",
"@cloudflare/workers-tsconfig": "workspace:*",
"@cloudflare/workers-types": "catalog:default",
diff --git a/fixtures/workers-shared-asset-config/tsconfig.json b/fixtures/workers-shared-asset-config/tsconfig.json
index b562c4033bf..9453f5bdc7e 100644
--- a/fixtures/workers-shared-asset-config/tsconfig.json
+++ b/fixtures/workers-shared-asset-config/tsconfig.json
@@ -3,7 +3,7 @@
"compilerOptions": {
"types": [
"@cloudflare/workers-types/experimental",
- "@cloudflare/vitest-pool-workers/types"
+ "@cloudflare/vitest-plugin/types"
],
"moduleResolution": "bundler"
},
diff --git a/fixtures/workers-shared-asset-config/vitest.config.ts b/fixtures/workers-shared-asset-config/vitest.config.ts
index d78558198c6..5d96cbcdfe3 100644
--- a/fixtures/workers-shared-asset-config/vitest.config.ts
+++ b/fixtures/workers-shared-asset-config/vitest.config.ts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineConfig } from "vitest/config";
export default defineConfig({
diff --git a/packages/create-cloudflare/src/frameworks/package.json b/packages/create-cloudflare/src/frameworks/package.json
index 8f13c76eec9..5bbdf526a7c 100644
--- a/packages/create-cloudflare/src/frameworks/package.json
+++ b/packages/create-cloudflare/src/frameworks/package.json
@@ -12,7 +12,7 @@
"create-react-router": "8.3.0",
"create-rwsdk": "3.1.3",
"create-solid": "0.11.0",
- "create-vike": "0.0.675",
+ "create-vike": "0.0.677",
"create-vinext-app": "1.0.0-beta.2",
"create-vite": "9.1.2",
"create-vue": "3.23.0",
diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json b/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json
index c2209d990dc..fead3b1b720 100644
--- a/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json
+++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json
@@ -9,7 +9,7 @@
"test": "vitest"
},
"devDependencies": {
- "@cloudflare/vitest-pool-workers": "^0.21.0",
+ "@cloudflare/vitest-pool-workers": "^0.22.0",
"wrangler": "^4",
"vitest": "~4.1.0"
}
diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json b/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json
index 4e7be80987e..32d2f2d37fa 100644
--- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json
+++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json
@@ -10,7 +10,7 @@
"cf-typegen": "wrangler types"
},
"devDependencies": {
- "@cloudflare/vitest-pool-workers": "^0.21.0",
+ "@cloudflare/vitest-pool-workers": "^0.22.0",
"typescript": "^5.5.2",
"vitest": "~4.1.0",
"wrangler": "^4"
diff --git a/packages/create-cloudflare/templates/hello-world/js/package.json b/packages/create-cloudflare/templates/hello-world/js/package.json
index 51f33b4e5fe..a0cc6729726 100644
--- a/packages/create-cloudflare/templates/hello-world/js/package.json
+++ b/packages/create-cloudflare/templates/hello-world/js/package.json
@@ -9,7 +9,7 @@
"test": "vitest"
},
"devDependencies": {
- "@cloudflare/vitest-pool-workers": "^0.21.0",
+ "@cloudflare/vitest-pool-workers": "^0.22.0",
"vitest": "~4.1.0",
"wrangler": "^4"
}
diff --git a/packages/create-cloudflare/templates/hello-world/ts/package.json b/packages/create-cloudflare/templates/hello-world/ts/package.json
index 4e7be80987e..32d2f2d37fa 100644
--- a/packages/create-cloudflare/templates/hello-world/ts/package.json
+++ b/packages/create-cloudflare/templates/hello-world/ts/package.json
@@ -10,7 +10,7 @@
"cf-typegen": "wrangler types"
},
"devDependencies": {
- "@cloudflare/vitest-pool-workers": "^0.21.0",
+ "@cloudflare/vitest-pool-workers": "^0.22.0",
"typescript": "^5.5.2",
"vitest": "~4.1.0",
"wrangler": "^4"
diff --git a/packages/deploy-helpers/src/deploy/helpers/preview-alias.ts b/packages/deploy-helpers/src/deploy/helpers/preview-alias.ts
index 88bb1863613..ff0b9e526d4 100644
--- a/packages/deploy-helpers/src/deploy/helpers/preview-alias.ts
+++ b/packages/deploy-helpers/src/deploy/helpers/preview-alias.ts
@@ -2,6 +2,7 @@ import { execSync } from "node:child_process";
import { createHash } from "node:crypto";
import { getWorkersCIBranchName } from "@cloudflare/workers-utils";
import { logger } from "../../shared/context";
+import { truncateWithSuffix } from "../../shared/names";
const MAX_DNS_LABEL_LENGTH = 63;
const HASH_LENGTH = 4;
@@ -47,21 +48,18 @@ export function createTruncatedAlias(
sanitizedAlias: string,
availableSpace: number
): string | undefined {
- const spaceForHash = HASH_LENGTH + 1; // +1 for hyphen separator
- const maxPrefixLength = availableSpace - spaceForHash;
-
- if (maxPrefixLength < 1) {
- // Not enough space even with truncation
- return undefined;
- }
-
const hash = createHash("sha256")
.update(branchName)
.digest("hex")
.slice(0, HASH_LENGTH);
+ const suffix = `-${hash}`;
+
+ if (availableSpace - suffix.length < 1) {
+ // Not enough space even with truncation
+ return undefined;
+ }
- const truncatedPrefix = sanitizedAlias.slice(0, maxPrefixLength);
- return `${truncatedPrefix}-${hash}`;
+ return truncateWithSuffix(sanitizedAlias, suffix, availableSpace);
}
/**
diff --git a/packages/deploy-helpers/src/preview/api.ts b/packages/deploy-helpers/src/preview/api.ts
index 43eda127a0e..d23125a9ba5 100644
--- a/packages/deploy-helpers/src/preview/api.ts
+++ b/packages/deploy-helpers/src/preview/api.ts
@@ -109,6 +109,7 @@ export type CreatePreviewDeploymentRequestParams = {
placement?: CfPlacement;
cache?: CacheOptions;
env?: EnvBindings;
+ containers?: Array<{ class_name: string }>;
};
export type CreatePreviewRequestParams = {
diff --git a/packages/deploy-helpers/src/preview/preview.ts b/packages/deploy-helpers/src/preview/preview.ts
index da383420437..ba528d3bf52 100644
--- a/packages/deploy-helpers/src/preview/preview.ts
+++ b/packages/deploy-helpers/src/preview/preview.ts
@@ -1,7 +1,9 @@
import path from "node:path";
+import { verifyDockerInstalled } from "@cloudflare/containers-shared";
import {
configFileName,
getBindingTypeFriendlyName,
+ getDockerPath,
UserError,
} from "@cloudflare/workers-utils";
import chalk from "chalk";
@@ -28,9 +30,12 @@ import {
getBranchName,
getHeadCommitMessage,
getHeadCommitRef,
+ getPreviewOwnedContainerClassNames,
+ previewContainerAppName,
resolveWorkerName,
shouldUseCIMetadataFallback,
} from "./shared";
+import type { DeployCallbacks } from "../deploy/deploy";
import type { WorkerBuildResult } from "../shared/types";
import type {
Binding,
@@ -38,7 +43,12 @@ import type {
DeploymentResource,
PreviewResource,
} from "./api";
-import type { Config, PreviewsConfig } from "@cloudflare/workers-utils";
+import type { ContainerNormalizedConfig } from "@cloudflare/containers-shared";
+import type {
+ Config,
+ ContainerApp,
+ PreviewsConfig,
+} from "@cloudflare/workers-utils";
type PreviewDeploymentModule = {
name: string;
@@ -81,6 +91,208 @@ export type PreviewResult = {
isNewPreview: boolean;
};
+// Building and applying a container to Cloudchamber requires wrangler-only
+// dependencies (Docker, the containers API client) that deploy-helpers has
+// no direct dependency on. As with `DeployCallbacks` (see ../deploy/deploy.ts),
+// the wrangler-specific implementation is injected by the caller.
+//
+// `getNormalizedContainerOptions` validates and normalises container config
+// without needing the preview deployment to exist yet, so `preview()` runs it
+// before creating the deployment. A bad config or a missing Docker install
+// then fails before the preview goes live, rather than leaving a preview
+// running that advertises containers nothing ever built. `deployPreviewContainers`
+// does need the deployment, since that's what resolves each container's DO
+// namespace_id, so it still runs after.
+export type PreviewCallbacks = Pick<
+ DeployCallbacks,
+ "getNormalizedContainerOptions"
+> & {
+ deployPreviewContainers:
+ | ((
+ scopedConfig: Config,
+ normalisedContainerConfig: ContainerNormalizedConfig[],
+ deployment: DeploymentResource,
+ accountId: string,
+ // Building and applying containers prints progress to stdout, the
+ // same stream that carries the `--json` payload. Set this when
+ // stdout has to stay machine readable.
+ options: { quiet: boolean }
+ ) => Promise)
+ | undefined;
+ // Confirms the API token carries the scope needed to apply containers.
+ verifyContainersScope?: (scopedConfig: Config) => Promise;
+};
+
+/**
+ * Construct a synthetic `Config` for the preview's containers, so we can reuse
+ * `getNormalizedContainerOptions` and `apply` from the standard `wrangler
+ * deploy` container path without forking either. Containers come from
+ * `previews.containers`, defaulting each unnamed entry to a generated
+ * application name, and DO bindings come from `previews.durable_objects`.
+ *
+ * `observability` is carried over because a container application has its own
+ * observability setting, which `getNormalizedContainerOptions` reads from the
+ * config it is given. The container path does not read `logpush`, `limits`, or
+ * `cache`, so overlaying those here would have no effect.
+ *
+ * Throws if a container names no Durable Object class, or if the class it names
+ * is not one this script implements. Returns `undefined` if every container
+ * resolves only to a cross-script binding, since those are owned by another
+ * Worker.
+ */
+function buildPreviewContainerConfig(
+ config: Config,
+ parentWorkerName: string,
+ previewSlug: string,
+ previewContainers: ContainerApp[]
+): Config | undefined {
+ const previews = config.previews as PreviewsConfig | undefined;
+ const previewDOBindings = previews?.durable_objects?.bindings ?? [];
+ const ownedDOClasses = getPreviewOwnedContainerClassNames(config, previews);
+
+ // A preview container has to name its Durable Object class itself. The other
+ // direction of the link, a Durable Object naming its container through
+ // `exports[Class].container`, resolves against the top level `containers`
+ // array, so it can only ever reach a container this preview does not own.
+ const linkedContainers = previewContainers.map((container) => {
+ const className = container.class_name;
+ if (className === undefined) {
+ throw new UserError(
+ `A container entry in "previews.containers" is missing "class_name". A preview container must name the Durable Object class it backs, even where a Durable Object declared in "exports" names its container instead.`,
+ {
+ telemetryMessage: "preview container missing class_name",
+ }
+ );
+ }
+ return { container, className };
+ });
+
+ // A container whose class matches no Durable Object at all is a
+ // misconfiguration, almost always a typo, and silently dropping it would
+ // hand back a preview with no container and no explanation, so reject it
+ // here, before the preview deployment is created.
+ //
+ // A class that does match a binding carrying `script_name` is excluded
+ // rather than rejected: that DO is implemented by another Worker, which owns
+ // its own container application.
+ for (const { className } of linkedContainers) {
+ if (
+ ownedDOClasses.has(className) ||
+ previewDOBindings.some((b) => b.class_name === className)
+ ) {
+ continue;
+ }
+ throw new UserError(
+ `The container class_name "${className}" in "previews.containers" does not match any Durable Object class in your ${configFileName(config.configPath)} file. Declare the class in "migrations" or "exports", or bind it under "previews.durable_objects".`,
+ {
+ telemetryMessage: "no preview DO class matches container class_name",
+ }
+ );
+ }
+
+ const filteredContainers = linkedContainers
+ .filter(({ className }) => ownedDOClasses.has(className))
+ .map(({ container, className }) => ({
+ ...container,
+ name: previewContainerAppName(parentWorkerName, previewSlug, className),
+ }));
+
+ if (filteredContainers.length === 0) {
+ return undefined;
+ }
+
+ // `getNormalizedContainerOptions` resolves a container's Durable Object with
+ // `find()` on `class_name`, and rejects the container outright if that first
+ // match carries `script_name`. A class bound both locally and cross-script
+ // would then fail as though another Worker owned it, purely because of
+ // binding order. Put the locally implemented bindings first so the lookup
+ // lands on the one this preview owns.
+ const localBindingsFirst = [
+ ...previewDOBindings.filter((b) => b.script_name === undefined),
+ ...previewDOBindings.filter((b) => b.script_name !== undefined),
+ ];
+
+ const observability = previews?.observability ?? config.observability;
+ return {
+ ...config,
+ containers: filteredContainers,
+ durable_objects: {
+ bindings: localBindingsFirst,
+ },
+ observability,
+ };
+}
+
+/**
+ * Validate and normalise container config, and confirm Docker is installed
+ * for any container built from a Dockerfile. Called before the preview
+ * deployment is created, so a bad config or a missing Docker install fails
+ * before the preview goes live, rather than leaving a preview running that
+ * advertises containers nothing ever built.
+ *
+ * Returns an empty `normalisedContainerConfig` when there's nothing to
+ * deploy, whether because `previews.containers` is empty or every entry
+ * resolves to a cross-script DO binding owned by another Worker. Throws if an
+ * entry's `class_name` matches no DO binding in `previews.durable_objects`.
+ */
+async function prepareContainersForPreview(
+ config: Config,
+ workerName: string,
+ previewSlug: string,
+ callbacks: PreviewCallbacks
+): Promise<{
+ scopedContainerConfig: Config | undefined;
+ normalisedContainerConfig: ContainerNormalizedConfig[];
+}> {
+ const previewContainers =
+ (config.previews as PreviewsConfig | undefined)?.containers ?? [];
+ if (
+ previewContainers.length === 0 ||
+ !callbacks.getNormalizedContainerOptions
+ ) {
+ return { scopedContainerConfig: undefined, normalisedContainerConfig: [] };
+ }
+
+ const scopedContainerConfig = buildPreviewContainerConfig(
+ config,
+ workerName,
+ previewSlug,
+ previewContainers
+ );
+ if (!scopedContainerConfig) {
+ return { scopedContainerConfig: undefined, normalisedContainerConfig: [] };
+ }
+
+ const normalisedContainerConfig =
+ await callbacks.getNormalizedContainerOptions(scopedContainerConfig, {
+ dryRun: false,
+ });
+
+ const containersNeedingDocker = normalisedContainerConfig.filter(
+ (container) => "dockerfile" in container
+ );
+ if (containersNeedingDocker.length > 0) {
+ await verifyDockerInstalled({
+ dockerPath: getDockerPath(),
+ operation: "creating a preview",
+ imageNoun:
+ containersNeedingDocker.length !== 1
+ ? "the configured images"
+ : "the configured image",
+ hint: 'If you cannot run Docker locally, set "image" to a prebuilt registry image instead of a Dockerfile path for the affected entries in "previews.containers".',
+ });
+ }
+
+ // Applying containers checks the token's scope as well, but only after the
+ // deployment exists. Checking it here stops a badly scoped token from
+ // leaving a live preview that advertises containers nothing ever built.
+ if (callbacks.verifyContainersScope) {
+ await callbacks.verifyContainersScope(scopedContainerConfig);
+ }
+
+ return { scopedContainerConfig, normalisedContainerConfig };
+}
+
function toBase64(content: string | Uint8Array): string {
return Buffer.from(content).toString("base64");
}
@@ -280,6 +492,37 @@ async function assemblePreviewDeploymentSettings(
request.placement = parseConfigPlacement(config);
}
+ // Declare which DO classes are container-backed so the runtime populates
+ // `ctx.container` on those DO instances, mirroring the metadata emitted by
+ // `wrangler deploy`.
+ //
+ // Container config is non-inheritable. Only `previews.containers` is read,
+ // not the top-level `containers` field. This matches the behavior of
+ // `previews.durable_objects` and forces users to explicitly opt-in to
+ // containers in previews.
+ //
+ // We only emit `class_name`s where the DO is implemented by THIS script,
+ // whether it is declared through `migrations`, through `exports`, or bound
+ // under `previews.durable_objects` without a `script_name`. A binding
+ // carrying `script_name` references a DO implemented by another worker,
+ // which owns its own container application.
+ //
+ // A container that names no class is rejected by
+ // `buildPreviewContainerConfig` before we get here, so it is dropped rather
+ // than reported again.
+ const previewContainers = previews?.containers ?? [];
+ if (previewContainers.length > 0) {
+ const ownedDOClasses = getPreviewOwnedContainerClassNames(config, previews);
+ const containers = previewContainers.flatMap(({ class_name }) =>
+ class_name !== undefined && ownedDOClasses.has(class_name)
+ ? [{ class_name }]
+ : []
+ );
+ if (containers.length > 0) {
+ request.containers = containers;
+ }
+ }
+
const env = extractConfigBindings(config);
if (Object.keys(env).length > 0) {
request.env = env;
@@ -408,7 +651,8 @@ export async function preview(
args: PreviewArgs,
config: Config,
buildResult: WorkerBuildResult,
- assetsOptions: PreviewAssetsOptions | undefined
+ assetsOptions: PreviewAssetsOptions | undefined,
+ callbacks: PreviewCallbacks
): Promise {
const workerName = resolveWorkerName(args, config);
@@ -479,6 +723,14 @@ export async function preview(
}
}
+ const { scopedContainerConfig, normalisedContainerConfig } =
+ await prepareContainersForPreview(
+ config,
+ workerName,
+ previewResource.slug,
+ callbacks
+ );
+
const deploymentRequest = await assemblePreviewDeploymentSettings(
config,
buildResult,
@@ -499,6 +751,30 @@ export async function preview(
deploymentRequest
);
+ if (
+ normalisedContainerConfig.length > 0 &&
+ scopedContainerConfig &&
+ callbacks.deployPreviewContainers
+ ) {
+ try {
+ await callbacks.deployPreviewContainers(
+ scopedContainerConfig,
+ normalisedContainerConfig,
+ deployment,
+ accountId,
+ { quiet: args.json === true }
+ );
+ } catch (error) {
+ // The deployment is live by this point, so say so before the build or
+ // apply error surfaces on its own. Written to stderr so it cannot
+ // corrupt a `--json` payload.
+ logger.warn(
+ `The preview "${previewResource.name}" was created, but its containers did not come up. Its Durable Objects have no container backing them until the containers are applied successfully.`
+ );
+ throw error;
+ }
+ }
+
if (args.json) {
logger.log(
JSON.stringify({ preview: previewResource, deployment }, null, 2)
diff --git a/packages/deploy-helpers/src/preview/shared.ts b/packages/deploy-helpers/src/preview/shared.ts
index 19fc69786a8..9225daaa19d 100644
--- a/packages/deploy-helpers/src/preview/shared.ts
+++ b/packages/deploy-helpers/src/preview/shared.ts
@@ -1,13 +1,17 @@
import { execSync } from "node:child_process";
import {
configFileName,
+ getDurableObjectExports,
getWorkersCIBranchName,
UserError,
} from "@cloudflare/workers-utils";
import { parseConfigPlacement } from "../deploy/helpers/placement";
+import { shortHash, truncateWithSuffix } from "../shared/names";
import type { Binding, EnvBindings, PreviewDefaults } from "./api";
import type { Config, PreviewsConfig } from "@cloudflare/workers-utils";
+const MAX_CONTAINER_APP_NAME_LENGTH = 253;
+
export function getBranchName(): string | undefined {
const workersCIBranch = getWorkersCIBranchName();
if (workersCIBranch) {
@@ -344,6 +348,114 @@ export function extractConfigBindings(config: Config): EnvBindings {
return env;
}
+/**
+ * Returns the DO `class_name`s this script declares, through `migrations` or
+ * through `exports`, resolving them in the same order as wrangler's own
+ * `getDurableObjectClassNameToUseSQLiteMap`. Only the resulting names are
+ * needed here; that helper stays the authority on whether the migration
+ * sequence is valid, and it runs on this config immediately afterwards.
+ */
+function getDeclaredDOClassNames(config: Config): Set {
+ const declared = new Set();
+
+ for (const migration of config.migrations ?? []) {
+ for (const className of migration.deleted_classes ?? []) {
+ declared.delete(className);
+ }
+ for (const { from, to } of migration.renamed_classes ?? []) {
+ declared.delete(from);
+ declared.add(to);
+ }
+ for (const className of migration.new_classes ?? []) {
+ declared.add(className);
+ }
+ for (const className of migration.new_sqlite_classes ?? []) {
+ declared.add(className);
+ }
+ }
+
+ // A `deleted`, `renamed`, or `transferred` export no longer names a class
+ // this script implements.
+ for (const [className, entry] of Object.entries(
+ getDurableObjectExports(config.exports)
+ )) {
+ if (
+ entry.state === undefined ||
+ entry.state === "created" ||
+ entry.state === "expecting-transfer"
+ ) {
+ declared.add(className);
+ }
+ }
+
+ return declared;
+}
+
+/**
+ * Returns the DO `class_name`s whose containers this preview owns: the classes
+ * the script declares through `migrations` or `exports`, plus the classes bound
+ * in the preview without a `script_name`.
+ *
+ * A binding is not required. A Durable Object reached only through
+ * `ctx.exports` is still implemented by this script, so its container belongs
+ * to this preview. A class reachable only through a `script_name` binding is
+ * implemented by another Worker, which owns its own container application.
+ */
+export function getPreviewOwnedContainerClassNames(
+ config: Config,
+ previews: PreviewsConfig | undefined
+): Set {
+ const owned = getDeclaredDOClassNames(config);
+ for (const binding of previews?.durable_objects?.bindings ?? []) {
+ if (binding.script_name === undefined) {
+ owned.add(binding.class_name);
+ }
+ }
+ return owned;
+}
+
+/**
+ * Compose the auto-generated container application name for a preview-scoped
+ * container, in the form `{parentWorkerName}_{previewSlug}_{className}`.
+ *
+ * A container application name is capped at 253 characters and may not start
+ * or end with a dash, contain consecutive dashes, or start with a digit. A
+ * worker name is allowed all four, and the preview slug is derived from a
+ * branch name, so the composed name is normalised here rather than passed
+ * through.
+ *
+ * Wrangler looks an application up by name to choose between create and
+ * modify, so a name must identify one preview container. Both normalising and
+ * truncating can map two inputs onto one output, so either one earns a digest
+ * of the composed name.
+ */
+export function previewContainerAppName(
+ parentWorkerName: string,
+ previewSlug: string,
+ className: string
+): string {
+ const composed = `${parentWorkerName}_${previewSlug}_${className}`;
+ const normalised = composed
+ .replace(/[^A-Za-z0-9_-]/g, "-")
+ .replace(/-+/g, "-")
+ .replace(/^-+|-+$/g, "")
+ // Prefix a letter rather than reject a name the Workers API accepted.
+ .replace(/^(?=[0-9])/, "w");
+
+ if (
+ normalised === composed &&
+ normalised.length <= MAX_CONTAINER_APP_NAME_LENGTH
+ ) {
+ return normalised;
+ }
+
+ return truncateWithSuffix(
+ normalised,
+ `_${shortHash(composed)}`,
+ MAX_CONTAINER_APP_NAME_LENGTH
+ );
+}
+
export function assemblePreviewScriptSettings(config: Config) {
const previews = config.previews;
const result: Record = {};
diff --git a/packages/deploy-helpers/src/shared/names.ts b/packages/deploy-helpers/src/shared/names.ts
new file mode 100644
index 00000000000..5c6cd121914
--- /dev/null
+++ b/packages/deploy-helpers/src/shared/names.ts
@@ -0,0 +1,32 @@
+import { createHash } from "node:crypto";
+
+const SHORT_HASH_LENGTH = 7;
+
+/**
+ * Fits `body` and `suffix` into `maxLength` by truncating the body, so a
+ * suffix that distinguishes one name from another always survives.
+ *
+ * A suffix longer than `maxLength` leaves no body at all, so callers that
+ * cannot guarantee room should check before calling.
+ */
+export function truncateWithSuffix(
+ body: string,
+ suffix: string,
+ maxLength: number
+): string {
+ const maxBodyLength = Math.max(0, maxLength - suffix.length);
+ return `${body.slice(0, maxBodyLength)}${suffix}`;
+}
+
+/**
+ * A short digest of `input`, 32 bits in base36, for telling apart strings that
+ * a lossy transform maps onto one output. Not a security boundary.
+ */
+export function shortHash(input: string): string {
+ return createHash("sha256")
+ .update(input)
+ .digest()
+ .readUInt32BE(0)
+ .toString(36)
+ .padStart(SHORT_HASH_LENGTH, "0");
+}
diff --git a/packages/edge-preview-authenticated-proxy/package.json b/packages/edge-preview-authenticated-proxy/package.json
index 5d6ca7c9e23..41c569ca1d6 100644
--- a/packages/edge-preview-authenticated-proxy/package.json
+++ b/packages/edge-preview-authenticated-proxy/package.json
@@ -10,7 +10,7 @@
"type:tests": "tsc -p ./tests/tsconfig.json"
},
"devDependencies": {
- "@cloudflare/vitest-pool-workers": "workspace:*",
+ "@cloudflare/vitest-plugin": "workspace:*",
"@cloudflare/workers-types": "catalog:default",
"@cloudflare/workers-utils": "workspace:*",
"@types/cookie": "^0.6.0",
diff --git a/packages/edge-preview-authenticated-proxy/tests/tsconfig.json b/packages/edge-preview-authenticated-proxy/tests/tsconfig.json
index 73752a87648..053d074e369 100644
--- a/packages/edge-preview-authenticated-proxy/tests/tsconfig.json
+++ b/packages/edge-preview-authenticated-proxy/tests/tsconfig.json
@@ -7,7 +7,7 @@
"types": [
"@types/node",
"@cloudflare/workers-types/experimental",
- "@cloudflare/vitest-pool-workers/types"
+ "@cloudflare/vitest-plugin/types"
],
"allowJs": true,
"checkJs": false,
diff --git a/packages/edge-preview-authenticated-proxy/vitest.config.mts b/packages/edge-preview-authenticated-proxy/vitest.config.mts
index e8bcc200641..a00c094e1fe 100644
--- a/packages/edge-preview-authenticated-proxy/vitest.config.mts
+++ b/packages/edge-preview-authenticated-proxy/vitest.config.mts
@@ -1,4 +1,4 @@
-import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineConfig } from "vitest/config";
export default defineConfig({
diff --git a/packages/miniflare/src/index.ts b/packages/miniflare/src/index.ts
index 4a1ea010c75..b4b24f59165 100644
--- a/packages/miniflare/src/index.ts
+++ b/packages/miniflare/src/index.ts
@@ -2272,12 +2272,14 @@ export class Miniflare {
* - if Vitest with assets, the fallback Worker should point to the Vitest
* runner Worker, while the SELF binding on the test runner will point to
* the (assets) RPC Proxy Worker
+ *
+ * The prefix below must stay in sync with `WORKER_NAME_PREFIX` in
+ * `@cloudflare/vitest-plugin` (`src/pool/helpers.ts`), which names runner
+ * Workers `${WORKER_NAME_PREFIX}runner-`.
*/
fallbackWorkerName:
this.#workerOpts[0].config.assets &&
- !this.#workerOpts[0].config.name.startsWith(
- "vitest-pool-workers-runner-"
- )
+ !this.#workerOpts[0].config.name.startsWith("vitest-plugin-runner-")
? `${RPC_PROXY_SERVICE_NAME}:${this.#workerOpts[0].config.name}`
: getUserServiceName(this.#workerOpts[0].config.name),
tmpPath: this.#tmpPath,
diff --git a/packages/miniflare/src/plugins/ratelimit/index.ts b/packages/miniflare/src/plugins/ratelimit/index.ts
index 9bf71fcf619..7df83f26b6f 100644
--- a/packages/miniflare/src/plugins/ratelimit/index.ts
+++ b/packages/miniflare/src/plugins/ratelimit/index.ts
@@ -129,7 +129,7 @@ export const RATELIMIT_PLUGIN: Plugin = {
// which is backed by a per-actor `ActorCache` and is just as lossy).
//
// The namespace deliberately stays evictable: `deleteAllDurableObjects()`
- // (what vitest-pool-workers' `reset()` calls) skips namespaces with
+ // (what vitest-plugin's `reset()` calls) skips namespaces with
// `preventEviction` set, and it is what resets these counters between
// tests, via `ActorNamespace::deleteAll()` -> `SqliteDatabase::reset()`.
durableObjectStorage: { localDisk: RATELIMIT_STORAGE_SERVICE_NAME },
diff --git a/packages/miniflare/src/workers/ratelimit/ratelimit-object.worker.ts b/packages/miniflare/src/workers/ratelimit/ratelimit-object.worker.ts
index c7322074289..1ed5ec82408 100644
--- a/packages/miniflare/src/workers/ratelimit/ratelimit-object.worker.ts
+++ b/packages/miniflare/src/workers/ratelimit/ratelimit-object.worker.ts
@@ -6,7 +6,7 @@
// limit part way through a window.
//
// Durable storage is still cleared by `deleteAllDurableObjects()`, so
-// vitest-pool-workers' `reset()` clears it for free — the same mechanism that
+// vitest-plugin's `reset()` clears it for free — the same mechanism that
// resets the KV, R2 and D1 simulators.
import { drain, get, MiniflareDurableObject, POST } from "miniflare:shared";
import type { RouteHandler, TypedSql } from "miniflare:shared";
diff --git a/packages/mock-npm-registry/README.md b/packages/mock-npm-registry/README.md
index f894824341c..57f476ac20a 100644
--- a/packages/mock-npm-registry/README.md
+++ b/packages/mock-npm-registry/README.md
@@ -4,11 +4,11 @@ This internal package can be used in tests by othe packages to set up a mock loc
## Usage
-A good example is the vitest-pool-workers e2e tests. See packages/vitest-pool-workers/test/global-setup.ts
+A good example is the vitest-plugin e2e tests. See packages/vitest-plugin/test/global-setup.ts
```ts
export default async function ({ provide }: GlobalSetupContext) {
- const stop = await startMockNpmRegistry("@cloudflare/vitest-pool-workers");
+ const stop = await startMockNpmRegistry("@cloudflare/vitest-plugin");
// Create temporary directory
const projectPath = await createTestProject();
@@ -18,10 +18,10 @@ export default async function ({ provide }: GlobalSetupContext) {
```
Here you can see that in Vitest global setup file, we are calling `startMockNpmRegistry()`.
-We pass in the `@cloudflare/vitest-pool-workers` package name, which will ensure that this package
+We pass in the `@cloudflare/vitest-plugin` package name, which will ensure that this package
(and all its local dependencies, such as Wrangler, Miniflare, etc) is built and published to the mock registry.
-We then create a temporary test project that has a dependency on `@cloudflare/vitest-pool-workers`
+We then create a temporary test project that has a dependency on `@cloudflare/vitest-plugin`
and then run `pnpm install`, which will install the locally published packages.
The path to this temporary test project is provided to tests.
diff --git a/packages/vitest-pool-workers/AGENTS.md b/packages/vitest-plugin/AGENTS.md
similarity index 86%
rename from packages/vitest-pool-workers/AGENTS.md
rename to packages/vitest-plugin/AGENTS.md
index e010bf37fb5..dce95024d5c 100644
--- a/packages/vitest-pool-workers/AGENTS.md
+++ b/packages/vitest-plugin/AGENTS.md
@@ -1,4 +1,4 @@
-# vitest-pool-workers — Agent Guide
+# vitest-plugin — Agent Guide
> Custom Vitest pool for running Worker tests inside the actual workerd runtime.
> Do NOT repeat root AGENTS.md content (pnpm, changesets, code style, etc.).
@@ -42,7 +42,7 @@ Tests inside workerd import from `cloudflare:test`:
import { env, fetchMock, SELF } from "cloudflare:test";
```
-Resolved by custom Vite plugin (`@cloudflare/vitest-pool-workers:config`) that re-exports from `cloudflare:test-internal` (runtime-provided).
+Resolved by custom Vite plugin (`@cloudflare/vitest-plugin:config`) that re-exports from `cloudflare:test-internal` (runtime-provided).
## CONVENTIONS
@@ -56,5 +56,5 @@ Resolved by custom Vite plugin (`@cloudflare/vitest-pool-workers:config`) that r
- Hook timeout: 60s, retry: 2
- Global setup starts mock npm registry, installs local package to temp dir
- Test helper: custom `test` fixture with `tmpPath`, `seed()`, `vitestRun()`, `vitestDev()`
-- Fixtures in `fixtures/vitest-pool-workers-examples/` (20+ sub-fixtures testing KV, R2, D1, DO, Queues, etc.)
+- Fixtures in `fixtures/vitest-plugin-examples/` (20+ sub-fixtures testing KV, R2, D1, DO, Queues, etc.)
- Skipped on Windows CI due to flakiness
diff --git a/packages/vitest-pool-workers/CHANGELOG.md b/packages/vitest-plugin/CHANGELOG.md
similarity index 100%
rename from packages/vitest-pool-workers/CHANGELOG.md
rename to packages/vitest-plugin/CHANGELOG.md
diff --git a/packages/vitest-pool-workers/CONTRIBUTING.md b/packages/vitest-plugin/CONTRIBUTING.md
similarity index 76%
rename from packages/vitest-pool-workers/CONTRIBUTING.md
rename to packages/vitest-plugin/CONTRIBUTING.md
index 344551b101a..a0ca9d29b31 100644
--- a/packages/vitest-pool-workers/CONTRIBUTING.md
+++ b/packages/vitest-plugin/CONTRIBUTING.md
@@ -4,4 +4,4 @@
Refer to the [announcement blog post](https://blog.cloudflare.com/workers-vitest-integration) for an overview of the implementation.
-
+
diff --git a/packages/vitest-pool-workers/README.md b/packages/vitest-plugin/README.md
similarity index 83%
rename from packages/vitest-pool-workers/README.md
rename to packages/vitest-plugin/README.md
index 5ecaf416219..30e4fb07ada 100644
--- a/packages/vitest-pool-workers/README.md
+++ b/packages/vitest-plugin/README.md
@@ -1,7 +1,7 @@
-# `@cloudflare/vitest-pool-workers`
+# `@cloudflare/vitest-plugin`
The Workers Vitest integration allows you to write Vitest tests that run inside the Workers runtime.
-Refer to the [documentation](https://developers.cloudflare.com/workers/testing/vitest-integration/) and [examples](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/) for more information.
+Refer to the [documentation](https://developers.cloudflare.com/workers/testing/vitest-integration/) and [examples](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-plugin-examples/) for more information.
- ✅ Supports both **unit tests** and **integration tests**
- 📚 Provides direct access to Workers runtime APIs and bindings
diff --git a/packages/vitest-pool-workers/package.json b/packages/vitest-plugin/package.json
similarity index 94%
rename from packages/vitest-pool-workers/package.json
rename to packages/vitest-plugin/package.json
index b9a640a4f94..781c7536ad4 100644
--- a/packages/vitest-pool-workers/package.json
+++ b/packages/vitest-plugin/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cloudflare/vitest-pool-workers",
+ "name": "@cloudflare/vitest-plugin",
"version": "0.22.0",
"description": "Workers Vitest integration for writing Vitest unit and integration tests that run inside the Workers runtime",
"keywords": [
@@ -15,7 +15,7 @@
"worker",
"workers"
],
- "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers#readme",
+ "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-plugin#readme",
"bugs": {
"url": "https://github.com/cloudflare/workers-sdk/issues"
},
@@ -23,7 +23,7 @@
"repository": {
"type": "git",
"url": "https://github.com/cloudflare/workers-sdk.git",
- "directory": "packages/vitest-pool-workers"
+ "directory": "packages/vitest-plugin"
},
"files": [
"dist",
diff --git a/packages/vitest-pool-workers/scripts/deps.ts b/packages/vitest-plugin/scripts/deps.ts
similarity index 96%
rename from packages/vitest-pool-workers/scripts/deps.ts
rename to packages/vitest-plugin/scripts/deps.ts
index 712bd38ce6e..ca95e741ab9 100644
--- a/packages/vitest-pool-workers/scripts/deps.ts
+++ b/packages/vitest-plugin/scripts/deps.ts
@@ -1,5 +1,5 @@
/**
- * Dependencies that _are not_ bundled along with @cloudflare/vitest-pool-workers.
+ * Dependencies that _are not_ bundled along with @cloudflare/vitest-plugin.
*
* These must be explicitly documented with a reason why they cannot be bundled.
* This list is validated by `tools/deployments/validate-package-dependencies.ts`.
diff --git a/packages/vitest-pool-workers/scripts/rtti/query.mjs b/packages/vitest-plugin/scripts/rtti/query.mjs
similarity index 100%
rename from packages/vitest-pool-workers/scripts/rtti/query.mjs
rename to packages/vitest-plugin/scripts/rtti/query.mjs
diff --git a/packages/vitest-pool-workers/scripts/rtti/rtti.capnp b/packages/vitest-plugin/scripts/rtti/rtti.capnp
similarity index 100%
rename from packages/vitest-pool-workers/scripts/rtti/rtti.capnp
rename to packages/vitest-plugin/scripts/rtti/rtti.capnp
diff --git a/packages/vitest-pool-workers/scripts/rtti/rtti.js b/packages/vitest-plugin/scripts/rtti/rtti.js
similarity index 100%
rename from packages/vitest-pool-workers/scripts/rtti/rtti.js
rename to packages/vitest-plugin/scripts/rtti/rtti.js
diff --git a/packages/vitest-pool-workers/src/pool/cloudflare-pool-worker.ts b/packages/vitest-plugin/src/pool/cloudflare-pool-worker.ts
similarity index 97%
rename from packages/vitest-pool-workers/src/pool/cloudflare-pool-worker.ts
rename to packages/vitest-plugin/src/pool/cloudflare-pool-worker.ts
index 2d101aee4ef..bca895ccaf3 100644
--- a/packages/vitest-pool-workers/src/pool/cloudflare-pool-worker.ts
+++ b/packages/vitest-plugin/src/pool/cloudflare-pool-worker.ts
@@ -36,7 +36,7 @@ import type {
export class CloudflarePoolWorker implements PoolWorker {
name = "cloudflare-pool";
- private readonly debug = util.debuglog("vitest-pool-workers");
+ private readonly debug = util.debuglog("vitest-plugin");
private mf: Miniflare | undefined;
private socket: WebSocket | undefined;
private parsedPoolOptions: WorkersPoolOptionsWithDefines | undefined;
@@ -85,12 +85,12 @@ export class CloudflarePoolWorker implements PoolWorker {
this.parsedPoolOptions
);
- // Find the vitest-pool-workers plugin and give it the path to the main file.
+ // Find the vitest-plugin plugin and give it the path to the main file.
// This allows that plugin to inject a virtual dependency on main so that vitest
// will automatically re-run tests when that gets updated, avoiding the user having
// to manually add such an import in their tests.
const configPlugin = this.options.project.vite.config.plugins.find(
- ({ name }) => name === "@cloudflare/vitest-pool-workers"
+ ({ name }) => name === "@cloudflare/vitest-plugin"
);
if (configPlugin !== undefined) {
const api = configPlugin.api as WorkersConfigPluginAPI;
@@ -237,7 +237,7 @@ export class CloudflarePoolWorker implements PoolWorker {
const specifier = d.a[0];
if (
- // `cloudflare:test` imports are handled by the `@cloudflare/vitest-pool-workers` plugin, and so should be ignored here
+ // `cloudflare:test` imports are handled by the `@cloudflare/vitest-plugin` plugin, and so should be ignored here
specifier !== "cloudflare:test" &&
(/^(cloudflare|workerd):/.test(specifier) ||
workerdBuiltinModules.has(specifier))
diff --git a/packages/vitest-pool-workers/src/pool/compatibility-flag-assertions.ts b/packages/vitest-plugin/src/pool/compatibility-flag-assertions.ts
similarity index 97%
rename from packages/vitest-pool-workers/src/pool/compatibility-flag-assertions.ts
rename to packages/vitest-plugin/src/pool/compatibility-flag-assertions.ts
index aaa9574393c..48756704c95 100644
--- a/packages/vitest-pool-workers/src/pool/compatibility-flag-assertions.ts
+++ b/packages/vitest-plugin/src/pool/compatibility-flag-assertions.ts
@@ -87,7 +87,7 @@ export class CompatibilityFlagAssertions {
if (this.#flagExists(disableFlag)) {
const errorMessage = `${this.#buildErrorMessageBase()}, ${this.#buildConfigPath(
"compatibility_flags"
- )} must not contain "${disableFlag}".\nThis flag is incompatible with \`@cloudflare/vitest-pool-workers\`.`;
+ )} must not contain "${disableFlag}".\nThis flag is incompatible with \`@cloudflare/vitest-plugin\`.`;
return { isValid: false, errorMessage };
}
@@ -108,7 +108,7 @@ export class CompatibilityFlagAssertions {
)} must be >= "${defaultOnDate}".`;
}
- errorMessage += `\nThis flag is required to use \`@cloudflare/vitest-pool-workers\`.`;
+ errorMessage += `\nThis flag is required to use \`@cloudflare/vitest-plugin\`.`;
return { isValid: false, errorMessage };
}
@@ -126,7 +126,7 @@ export class CompatibilityFlagAssertions {
const errorMessage = `${this.#buildErrorMessageBase()}, ${this.#buildConfigPath(
"compatibility_flags"
- )} must contain one of ${flags.map((flag) => `"${flag}"`).join("/")}.\nEither one of these flags is required to use \`@cloudflare/vitest-pool-workers\`.`;
+ )} must contain one of ${flags.map((flag) => `"${flag}"`).join("/")}.\nEither one of these flags is required to use \`@cloudflare/vitest-plugin\`.`;
return { isValid: false, errorMessage };
}
diff --git a/packages/vitest-pool-workers/src/pool/config.ts b/packages/vitest-plugin/src/pool/config.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/pool/config.ts
rename to packages/vitest-plugin/src/pool/config.ts
diff --git a/packages/vitest-pool-workers/src/pool/d1.ts b/packages/vitest-plugin/src/pool/d1.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/pool/d1.ts
rename to packages/vitest-plugin/src/pool/d1.ts
diff --git a/packages/vitest-pool-workers/src/pool/guess-exports.ts b/packages/vitest-plugin/src/pool/guess-exports.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/pool/guess-exports.ts
rename to packages/vitest-plugin/src/pool/guess-exports.ts
diff --git a/packages/vitest-pool-workers/src/pool/helpers.ts b/packages/vitest-plugin/src/pool/helpers.ts
similarity index 92%
rename from packages/vitest-pool-workers/src/pool/helpers.ts
rename to packages/vitest-plugin/src/pool/helpers.ts
index d6f67e03f66..c640c31641f 100644
--- a/packages/vitest-pool-workers/src/pool/helpers.ts
+++ b/packages/vitest-plugin/src/pool/helpers.ts
@@ -2,7 +2,7 @@ import path from "node:path";
import type { TestProject } from "vitest/node";
// User worker names must not start with this
-export const WORKER_NAME_PREFIX = "vitest-pool-workers-";
+export const WORKER_NAME_PREFIX = "vitest-plugin-";
export function isFileNotFoundError(e: unknown): boolean {
return (
diff --git a/packages/vitest-pool-workers/src/pool/index.ts b/packages/vitest-plugin/src/pool/index.ts
similarity index 97%
rename from packages/vitest-pool-workers/src/pool/index.ts
rename to packages/vitest-plugin/src/pool/index.ts
index 7d4f9d3a73f..5e7aae17c01 100644
--- a/packages/vitest-pool-workers/src/pool/index.ts
+++ b/packages/vitest-plugin/src/pool/index.ts
@@ -73,8 +73,8 @@ export function structuredSerializableParse(value: string): unknown {
// Log for pool info/warnings/errors (user-actionable messages only)
const log = new Log(LogLevel.INFO, { prefix: "vpw" });
-// Debug log gated behind NODE_DEBUG=vitest-pool-workers
-const debug = util.debuglog("vitest-pool-workers");
+// Debug log gated behind NODE_DEBUG=vitest-plugin
+const debug = util.debuglog("vitest-plugin");
// Log for Miniflare instances, used for user code warnings/errors
const mfLog = new Log(LogLevel.WARN);
@@ -351,7 +351,7 @@ async function buildProjectWorkerOptions(
// By default, workerd tracks which request context a promise was created in
// and rejects promises that resolve in a different request context. This is a
// safety feature for production Workers to prevent data leaking between
- // requests. However, vitest-pool-workers runs all test files within the same
+ // requests. However, vitest-plugin runs all test files within the same
// Durable Object, so promise resolution regularly crosses request boundaries
// (e.g. a setup promise created for one test file resolving during another).
// Without this flag, those promises get rejected and tests break.
@@ -831,7 +831,7 @@ export function assertCompatibleVitestVersion(ctx: Vitest) {
const vitestPkgJson = getPackageJson(ctx.distPath);
assert(
poolPkgJson !== undefined,
- "Expected to find `package.json` for `@cloudflare/vitest-pool-workers`"
+ "Expected to find `package.json` for `@cloudflare/vitest-plugin`"
);
assert(
vitestPkgJson !== undefined,
@@ -841,7 +841,7 @@ export function assertCompatibleVitestVersion(ctx: Vitest) {
const expectedVitestVersion = poolPkgJson.peerDependencies?.vitest;
assert(
expectedVitestVersion !== undefined,
- "Expected to find `@cloudflare/vitest-pool-workers`'s `vitest` version constraint"
+ "Expected to find `@cloudflare/vitest-plugin`'s `vitest` version constraint"
);
const actualVitestVersion =
@@ -855,14 +855,14 @@ export function assertCompatibleVitestVersion(ctx: Vitest) {
// Hard error on Vitest v3, which definitely won't work
if (semverSatisfies(actualVitestVersion, "3.x")) {
- const message = `You're running \`vitest@${actualVitestVersion}\`, but this version of \`@cloudflare/vitest-pool-workers\` only supports \`vitest ${expectedVitestVersion}\`.`;
+ const message = `You're running \`vitest@${actualVitestVersion}\`, but this version of \`@cloudflare/vitest-plugin\` only supports \`vitest ${expectedVitestVersion}\`.`;
throw new Error(message);
}
if (!semverSatisfies(actualVitestVersion, expectedVitestVersion)) {
const message = [
- `You're running \`vitest@${actualVitestVersion}\`, but this version of \`@cloudflare/vitest-pool-workers\` only officially supports \`vitest ${expectedVitestVersion}\`.`,
- "`@cloudflare/vitest-pool-workers` currently depends on internal Vitest APIs that are not protected by semantic-versioning guarantees.",
+ `You're running \`vitest@${actualVitestVersion}\`, but this version of \`@cloudflare/vitest-plugin\` only officially supports \`vitest ${expectedVitestVersion}\`.`,
+ "`@cloudflare/vitest-plugin` currently depends on internal Vitest APIs that are not protected by semantic-versioning guarantees.",
`Your tests may work without issue, but we can not guarantee compatibility outside of the above version range.`,
].join("\n");
log.warn(message);
diff --git a/packages/vitest-pool-workers/src/pool/loopback.ts b/packages/vitest-plugin/src/pool/loopback.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/pool/loopback.ts
rename to packages/vitest-plugin/src/pool/loopback.ts
diff --git a/packages/vitest-pool-workers/src/pool/module-fallback.ts b/packages/vitest-plugin/src/pool/module-fallback.ts
similarity index 98%
rename from packages/vitest-pool-workers/src/pool/module-fallback.ts
rename to packages/vitest-plugin/src/pool/module-fallback.ts
index 0b2841b16bf..0d2ac6cb502 100644
--- a/packages/vitest-pool-workers/src/pool/module-fallback.ts
+++ b/packages/vitest-plugin/src/pool/module-fallback.ts
@@ -14,7 +14,7 @@ import type { Request, Worker_Module } from "miniflare";
import type { Vite } from "vitest/node";
let debuglog: util.DebugLoggerFunction = util.debuglog(
- "vitest-pool-workers:module-fallback",
+ "vitest-plugin:module-fallback",
(log) => (debuglog = log)
);
@@ -307,7 +307,7 @@ async function viteResolve(
// - looks like a built-in node module but wasn't imported with a `node:` prefix
// - and isn't provided by workerd natively
// In that case, _try_ and load the identifier with a `node:` prefix.
- // This will potentially load one of the Node.js polyfills provided by `vitest-pool-workers`
+ // This will potentially load one of the Node.js polyfills provided by `vitest-plugin`
// Note: User imports should never get here! This is only meant to cater for Vitest internals
// (Specifically, the "tinyrainbow" module imports `node:tty` as `tty`)
return id;
@@ -731,13 +731,13 @@ export async function handleModuleFallbackRequest(
// Bundling can't help here — the module is built into `workerd` and
// simply isn't switched on for this Worker.
console.error(
- `[vitest-pool-workers] ${JSON.stringify(target)}, ${method === "import" ? "imported" : "required"} from ${JSON.stringify(referrer)}, is not available at this Worker's compatibility date and flags.`,
+ `[vitest-plugin] ${JSON.stringify(target)}, ${method === "import" ? "imported" : "required"} from ${JSON.stringify(referrer)}, is not available at this Worker's compatibility date and flags.`,
"To resolve this, enable the compatibility flag that provides it (`nodejs_compat` for `node:*` modules), or remove the import.",
"For more details, refer to https://developers.cloudflare.com/workers/configuration/compatibility-flags/"
);
} else {
console.error(
- `[vitest-pool-workers] Failed to ${method} ${JSON.stringify(target)} from ${JSON.stringify(referrer)}.`,
+ `[vitest-plugin] Failed to ${method} ${JSON.stringify(target)} from ${JSON.stringify(referrer)}.`,
"To resolve this, try bundling the relevant dependency with Vite.",
"For more details, refer to https://developers.cloudflare.com/workers/testing/vitest-integration/known-issues/#module-resolution"
);
diff --git a/packages/vitest-pool-workers/src/pool/pages.ts b/packages/vitest-plugin/src/pool/pages.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/pool/pages.ts
rename to packages/vitest-plugin/src/pool/pages.ts
diff --git a/packages/vitest-pool-workers/src/pool/plugin.ts b/packages/vitest-plugin/src/pool/plugin.ts
similarity index 98%
rename from packages/vitest-pool-workers/src/pool/plugin.ts
rename to packages/vitest-plugin/src/pool/plugin.ts
index eb97ba42e45..4cdd7cbdb18 100644
--- a/packages/vitest-pool-workers/src/pool/plugin.ts
+++ b/packages/vitest-plugin/src/pool/plugin.ts
@@ -73,7 +73,7 @@ export function cloudflareTest(
const uuid = crypto.randomUUID();
let main: string | undefined;
return {
- name: "@cloudflare/vitest-pool-workers",
+ name: "@cloudflare/vitest-plugin",
api: {
setMain(newMain: string) {
main = newMain;
@@ -106,7 +106,7 @@ export function cloudflareTest(
const provider = "provider" in coverage ? coverage.provider : undefined;
if (provider === "v8" || provider === undefined) {
const lines = [
- 'Coverage provider "v8" is not supported by `@cloudflare/vitest-pool-workers`.',
+ 'Coverage provider "v8" is not supported by `@cloudflare/vitest-plugin`.',
"V8 native coverage requires `node:inspector` which is not functional in the Workers runtime.",
"",
"Use Istanbul instead — it works by instrumenting source code and runs on any JavaScript runtime:",
diff --git a/packages/vitest-pool-workers/src/pool/pool.ts b/packages/vitest-plugin/src/pool/pool.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/pool/pool.ts
rename to packages/vitest-plugin/src/pool/pool.ts
diff --git a/packages/vitest-pool-workers/src/shared/builtin-modules.ts b/packages/vitest-plugin/src/shared/builtin-modules.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/shared/builtin-modules.ts
rename to packages/vitest-plugin/src/shared/builtin-modules.ts
diff --git a/packages/vitest-pool-workers/src/shared/d1.ts b/packages/vitest-plugin/src/shared/d1.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/shared/d1.ts
rename to packages/vitest-plugin/src/shared/d1.ts
diff --git a/packages/vitest-pool-workers/src/shared/module-path.ts b/packages/vitest-plugin/src/shared/module-path.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/shared/module-path.ts
rename to packages/vitest-plugin/src/shared/module-path.ts
diff --git a/packages/vitest-pool-workers/src/shared/types-global.d.ts b/packages/vitest-plugin/src/shared/types-global.d.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/shared/types-global.d.ts
rename to packages/vitest-plugin/src/shared/types-global.d.ts
diff --git a/packages/vitest-pool-workers/src/worker/d1.ts b/packages/vitest-plugin/src/worker/d1.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/d1.ts
rename to packages/vitest-plugin/src/worker/d1.ts
diff --git a/packages/vitest-pool-workers/src/worker/durable-objects.ts b/packages/vitest-plugin/src/worker/durable-objects.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/durable-objects.ts
rename to packages/vitest-plugin/src/worker/durable-objects.ts
diff --git a/packages/vitest-pool-workers/src/worker/entrypoints.ts b/packages/vitest-plugin/src/worker/entrypoints.ts
similarity index 99%
rename from packages/vitest-pool-workers/src/worker/entrypoints.ts
rename to packages/vitest-plugin/src/worker/entrypoints.ts
index 4824c44319a..29cf1f2144b 100644
--- a/packages/vitest-pool-workers/src/worker/entrypoints.ts
+++ b/packages/vitest-plugin/src/worker/entrypoints.ts
@@ -299,7 +299,7 @@ async function getWorkerEntrypointExport(
mainModule[entrypoint];
if (!entrypointValue) {
const message =
- `${mainPath} does not export a ${entrypoint} entrypoint. \`@cloudflare/vitest-pool-workers\` does not support service workers or named entrypoints for \`SELF\`.\n` +
+ `${mainPath} does not export a ${entrypoint} entrypoint. \`@cloudflare/vitest-plugin\` does not support service workers or named entrypoints for \`SELF\`.\n` +
"If you're using service workers, please migrate to the modules format: https://developers.cloudflare.com/workers/reference/migrate-to-module-workers/";
throw new TypeError(message);
}
diff --git a/packages/vitest-pool-workers/src/worker/env.ts b/packages/vitest-plugin/src/worker/env.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/env.ts
rename to packages/vitest-plugin/src/worker/env.ts
diff --git a/packages/vitest-pool-workers/src/worker/events.ts b/packages/vitest-plugin/src/worker/events.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/events.ts
rename to packages/vitest-plugin/src/worker/events.ts
diff --git a/packages/vitest-pool-workers/src/worker/index.ts b/packages/vitest-plugin/src/worker/index.ts
similarity index 98%
rename from packages/vitest-pool-workers/src/worker/index.ts
rename to packages/vitest-plugin/src/worker/index.ts
index 19c7b1fe1a3..9a9a4b28032 100644
--- a/packages/vitest-pool-workers/src/worker/index.ts
+++ b/packages/vitest-plugin/src/worker/index.ts
@@ -294,7 +294,7 @@ export class __VITEST_POOL_WORKERS_RUNNER_DURABLE_OBJECT__ extends DurableObject
runner.evaluator.createRequire = createRequire;
} else {
__console.warn(
- "[vitest-pool-workers] Could not patch module runner createRequire. " +
+ "[vitest-plugin] Could not patch module runner createRequire. " +
"Relative require() may fail when the project path contains encoded characters."
);
}
@@ -305,7 +305,7 @@ export class __VITEST_POOL_WORKERS_RUNNER_DURABLE_OBJECT__ extends DurableObject
};
} else {
__console.warn(
- "[vitest-pool-workers] Could not patch module runner transport. " +
+ "[vitest-plugin] Could not patch module runner transport. " +
"Dynamic import() inside entrypoint/DO handlers may fail."
);
}
diff --git a/packages/vitest-pool-workers/src/worker/lib/README.md b/packages/vitest-plugin/src/worker/lib/README.md
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/lib/README.md
rename to packages/vitest-plugin/src/worker/lib/README.md
diff --git a/packages/vitest-pool-workers/src/worker/lib/cloudflare/empty-internal.cts b/packages/vitest-plugin/src/worker/lib/cloudflare/empty-internal.cts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/lib/cloudflare/empty-internal.cts
rename to packages/vitest-plugin/src/worker/lib/cloudflare/empty-internal.cts
diff --git a/packages/vitest-pool-workers/src/worker/lib/cloudflare/snapshot.ts b/packages/vitest-plugin/src/worker/lib/cloudflare/snapshot.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/lib/cloudflare/snapshot.ts
rename to packages/vitest-plugin/src/worker/lib/cloudflare/snapshot.ts
diff --git a/packages/vitest-pool-workers/src/worker/lib/cloudflare/test-internal.ts b/packages/vitest-plugin/src/worker/lib/cloudflare/test-internal.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/lib/cloudflare/test-internal.ts
rename to packages/vitest-plugin/src/worker/lib/cloudflare/test-internal.ts
diff --git a/packages/vitest-pool-workers/src/worker/lib/cloudflare/test.ts b/packages/vitest-plugin/src/worker/lib/cloudflare/test.ts
similarity index 91%
rename from packages/vitest-pool-workers/src/worker/lib/cloudflare/test.ts
rename to packages/vitest-plugin/src/worker/lib/cloudflare/test.ts
index 84c269f639c..278a61ffd7b 100644
--- a/packages/vitest-pool-workers/src/worker/lib/cloudflare/test.ts
+++ b/packages/vitest-plugin/src/worker/lib/cloudflare/test.ts
@@ -1,6 +1,6 @@
// This module is special. Rather than being externalised and returned by the
// module fallback service, it gets resolved and loaded by the
-// `@cloudflare/vitest-pool-workers:config` Vite plugin. This allows us to
+// `@cloudflare/vitest-plugin:config` Vite plugin. This allows us to
// inject a side-effect-only `import` for the configured `main` entrypoint.
// This registers a dependency on `main`, ensuring integration tests using
// `SELF` re-run when `main` changes.
diff --git a/packages/vitest-pool-workers/src/worker/node/console.ts b/packages/vitest-plugin/src/worker/node/console.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/node/console.ts
rename to packages/vitest-plugin/src/worker/node/console.ts
diff --git a/packages/vitest-pool-workers/src/worker/node/vm.ts b/packages/vitest-plugin/src/worker/node/vm.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/node/vm.ts
rename to packages/vitest-plugin/src/worker/node/vm.ts
diff --git a/packages/vitest-pool-workers/src/worker/patch-ctx.ts b/packages/vitest-plugin/src/worker/patch-ctx.ts
similarity index 93%
rename from packages/vitest-pool-workers/src/worker/patch-ctx.ts
rename to packages/vitest-plugin/src/worker/patch-ctx.ts
index cbbe8628eaf..64460d67543 100644
--- a/packages/vitest-pool-workers/src/worker/patch-ctx.ts
+++ b/packages/vitest-plugin/src/worker/patch-ctx.ts
@@ -50,7 +50,7 @@ export function getCtxExportsProxy(
console.warn(
`Attempted to access 'ctx.exports.${p}', which was not defined for the main Worker.\n` +
`Check that '${p}' is exported as an entry-point from the Worker.\n` +
- `The '@cloudflare/vitest-pool-workers' integration tries to infer these exports by analyzing the source code of the main Worker.\n`
+ `The '@cloudflare/vitest-plugin' integration tries to infer these exports by analyzing the source code of the main Worker.\n`
);
return undefined;
},
diff --git a/packages/vitest-pool-workers/src/worker/reset.ts b/packages/vitest-plugin/src/worker/reset.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/reset.ts
rename to packages/vitest-plugin/src/worker/reset.ts
diff --git a/packages/vitest-pool-workers/src/worker/secrets-store.ts b/packages/vitest-plugin/src/worker/secrets-store.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/secrets-store.ts
rename to packages/vitest-plugin/src/worker/secrets-store.ts
diff --git a/packages/vitest-pool-workers/src/worker/tsconfig.json b/packages/vitest-plugin/src/worker/tsconfig.json
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/tsconfig.json
rename to packages/vitest-plugin/src/worker/tsconfig.json
diff --git a/packages/vitest-pool-workers/src/worker/types-ambient.d.ts b/packages/vitest-plugin/src/worker/types-ambient.d.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/types-ambient.d.ts
rename to packages/vitest-plugin/src/worker/types-ambient.d.ts
diff --git a/packages/vitest-pool-workers/src/worker/types-globals.d.ts b/packages/vitest-plugin/src/worker/types-globals.d.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/types-globals.d.ts
rename to packages/vitest-plugin/src/worker/types-globals.d.ts
diff --git a/packages/vitest-pool-workers/src/worker/wait-until.ts b/packages/vitest-plugin/src/worker/wait-until.ts
similarity index 97%
rename from packages/vitest-pool-workers/src/worker/wait-until.ts
rename to packages/vitest-plugin/src/worker/wait-until.ts
index a88f2c1f238..386319ca6e6 100644
--- a/packages/vitest-pool-workers/src/worker/wait-until.ts
+++ b/packages/vitest-plugin/src/worker/wait-until.ts
@@ -43,7 +43,7 @@ export async function waitForWaitUntil(
if (result === kTimedOut) {
__console.warn(
- `[vitest-pool-workers] ${batch.length} waitUntil promise(s) did not ` +
+ `[vitest-plugin] ${batch.length} waitUntil promise(s) did not ` +
`resolve within ${WAIT_UNTIL_TIMEOUT / 1000}s and will be abandoned. ` +
`This normally means your Worker's waitUntil handler has a bug ` +
`that prevents it from settling (e.g. a fetch that never completes ` +
diff --git a/packages/vitest-pool-workers/src/worker/workflows.ts b/packages/vitest-plugin/src/worker/workflows.ts
similarity index 100%
rename from packages/vitest-pool-workers/src/worker/workflows.ts
rename to packages/vitest-plugin/src/worker/workflows.ts
diff --git a/packages/vitest-plugin/test/README.md b/packages/vitest-plugin/test/README.md
new file mode 100644
index 00000000000..ab9430d9b0e
--- /dev/null
+++ b/packages/vitest-plugin/test/README.md
@@ -0,0 +1,11 @@
+# `@cloudflare/vitest-plugin` E2E Tests
+
+This directory implements E2E tests for the `@cloudflare/vitest-plugin` package.
+
+`@cloudflare/vitest-plugin` and its local dependencies are built and then published to a mock npm registry, then installed in a temporary directory to test against.
+
+If possible, tests should be written in the [`fixtures/vitest-plugin-examples`](../../../fixtures/vitest-plugin-examples) directory.
+These tests run against `@cloudflare/vitest-plugin` itself, and execute much faster.
+They're also a source of documentation for end users.
+
+Use the [`misc`](../../../fixtures/vitest-plugin-examples/misc) directory if your test doesn't really belong with an example.
diff --git a/packages/vitest-pool-workers/test/bindings.test.ts b/packages/vitest-plugin/test/bindings.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/bindings.test.ts
rename to packages/vitest-plugin/test/bindings.test.ts
diff --git a/packages/vitest-pool-workers/test/chunking.test.ts b/packages/vitest-plugin/test/chunking.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/chunking.test.ts
rename to packages/vitest-plugin/test/chunking.test.ts
diff --git a/packages/vitest-pool-workers/test/cjs-require.test.ts b/packages/vitest-plugin/test/cjs-require.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/cjs-require.test.ts
rename to packages/vitest-plugin/test/cjs-require.test.ts
diff --git a/packages/vitest-pool-workers/test/compatibility-flag-assertions.test.ts b/packages/vitest-plugin/test/compatibility-flag-assertions.test.ts
similarity index 96%
rename from packages/vitest-pool-workers/test/compatibility-flag-assertions.test.ts
rename to packages/vitest-plugin/test/compatibility-flag-assertions.test.ts
index bd7f71656ce..f744d9ee384 100644
--- a/packages/vitest-pool-workers/test/compatibility-flag-assertions.test.ts
+++ b/packages/vitest-plugin/test/compatibility-flag-assertions.test.ts
@@ -19,7 +19,7 @@ describe("FlagAssertions", () => {
});
expect(result.isValid).toBe(false);
expect(result.errorMessage).toBe(
- 'In project /path/to/project, `options.compatibilityFlags` must not contain "disable-flag".\nThis flag is incompatible with `@cloudflare/vitest-pool-workers`.'
+ 'In project /path/to/project, `options.compatibilityFlags` must not contain "disable-flag".\nThis flag is incompatible with `@cloudflare/vitest-plugin`.'
);
});
@@ -37,7 +37,7 @@ describe("FlagAssertions", () => {
});
expect(result.isValid).toBe(false);
expect(result.errorMessage).toBe(
- 'In project /path/to/project, `options.compatibilityFlags` must not contain "disable-flag".\nThis flag is incompatible with `@cloudflare/vitest-pool-workers`.'
+ 'In project /path/to/project, `options.compatibilityFlags` must not contain "disable-flag".\nThis flag is incompatible with `@cloudflare/vitest-plugin`.'
);
});
@@ -56,7 +56,7 @@ describe("FlagAssertions", () => {
});
expect(result.isValid).toBe(false);
expect(result.errorMessage).toBe(
- 'In project /path/to/project\'s configuration file wrangler.toml, `compatibility_flags` must not contain "disable-flag".\nThis flag is incompatible with `@cloudflare/vitest-pool-workers`.'
+ 'In project /path/to/project\'s configuration file wrangler.toml, `compatibility_flags` must not contain "disable-flag".\nThis flag is incompatible with `@cloudflare/vitest-plugin`.'
);
});
});
@@ -108,7 +108,7 @@ describe("FlagAssertions", () => {
});
expect(result.isValid).toBe(false);
expect(result.errorMessage).toBe(
- 'In project /path/to/project, `options.compatibilityFlags` must contain "enable-flag", or `options.compatibilityDate` must be >= "2023-01-01".\nThis flag is required to use `@cloudflare/vitest-pool-workers`.'
+ 'In project /path/to/project, `options.compatibilityFlags` must contain "enable-flag", or `options.compatibilityDate` must be >= "2023-01-01".\nThis flag is required to use `@cloudflare/vitest-plugin`.'
);
});
@@ -128,7 +128,7 @@ describe("FlagAssertions", () => {
});
expect(result.isValid).toBe(false);
expect(result.errorMessage).toBe(
- 'In project /path/to/project, `options.compatibilityFlags` must contain "enable-flag", or `options.compatibilityDate` must be >= "2023-01-01".\nThis flag is required to use `@cloudflare/vitest-pool-workers`.'
+ 'In project /path/to/project, `options.compatibilityFlags` must contain "enable-flag", or `options.compatibilityDate` must be >= "2023-01-01".\nThis flag is required to use `@cloudflare/vitest-plugin`.'
);
});
@@ -206,7 +206,7 @@ describe("FlagAssertions", () => {
]);
expect(result.isValid).toBe(false);
expect(result.errorMessage).toBe(
- 'In project /path/to/project, `options.compatibilityFlags` must contain one of "flag2"/"flag3".\nEither one of these flags is required to use `@cloudflare/vitest-pool-workers`.'
+ 'In project /path/to/project, `options.compatibilityFlags` must contain one of "flag2"/"flag3".\nEither one of these flags is required to use `@cloudflare/vitest-plugin`.'
);
});
@@ -226,7 +226,7 @@ describe("FlagAssertions", () => {
]);
expect(result.isValid).toBe(false);
expect(result.errorMessage).toBe(
- 'In project /path/to/project\'s configuration file wrangler.toml, `compatibility_flags` must contain one of "flag2"/"flag3".\nEither one of these flags is required to use `@cloudflare/vitest-pool-workers`.'
+ 'In project /path/to/project\'s configuration file wrangler.toml, `compatibility_flags` must contain one of "flag2"/"flag3".\nEither one of these flags is required to use `@cloudflare/vitest-plugin`.'
);
});
@@ -258,7 +258,7 @@ describe("FlagAssertions", () => {
]);
expect(result.isValid).toBe(false);
expect(result.errorMessage).toBe(
- 'In project /path/to/project, `options.compatibilityFlags` must contain one of "flag1"/"flag2".\nEither one of these flags is required to use `@cloudflare/vitest-pool-workers`.'
+ 'In project /path/to/project, `options.compatibilityFlags` must contain one of "flag1"/"flag2".\nEither one of these flags is required to use `@cloudflare/vitest-plugin`.'
);
});
diff --git a/packages/vitest-pool-workers/test/console.test.ts b/packages/vitest-plugin/test/console.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/console.test.ts
rename to packages/vitest-plugin/test/console.test.ts
diff --git a/packages/vitest-pool-workers/test/coverage.test.ts b/packages/vitest-plugin/test/coverage.test.ts
similarity index 98%
rename from packages/vitest-pool-workers/test/coverage.test.ts
rename to packages/vitest-plugin/test/coverage.test.ts
index 24a5d7ec9f7..b8da1fdcf9c 100644
--- a/packages/vitest-pool-workers/test/coverage.test.ts
+++ b/packages/vitest-plugin/test/coverage.test.ts
@@ -20,7 +20,7 @@ test(
main: "src/index.ts",
}),
"vitest.config.mts": dedent /* javascript */ `
- import { cloudflareTest } from "@cloudflare/vitest-pool-workers"
+ import { cloudflareTest } from "@cloudflare/vitest-plugin"
import { BaseSequencer } from "vitest/node";
class DeterministicSequencer extends BaseSequencer {
diff --git a/packages/vitest-pool-workers/test/do-exports.test.ts b/packages/vitest-plugin/test/do-exports.test.ts
similarity index 95%
rename from packages/vitest-pool-workers/test/do-exports.test.ts
rename to packages/vitest-plugin/test/do-exports.test.ts
index 7b1078b48bd..1b11510bf09 100644
--- a/packages/vitest-pool-workers/test/do-exports.test.ts
+++ b/packages/vitest-plugin/test/do-exports.test.ts
@@ -7,7 +7,7 @@ test(
async ({ expect, seed, vitestRun }) => {
await seed({
"vitest.config.mts": dedent /* javascript */ `
- import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+ import { cloudflareTest } from "@cloudflare/vitest-plugin";
export default {
plugins: [
diff --git a/packages/vitest-pool-workers/test/env.d.ts b/packages/vitest-plugin/test/env.d.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/env.d.ts
rename to packages/vitest-plugin/test/env.d.ts
diff --git a/packages/vitest-pool-workers/test/file-url-import.test.ts b/packages/vitest-plugin/test/file-url-import.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/file-url-import.test.ts
rename to packages/vitest-plugin/test/file-url-import.test.ts
diff --git a/packages/vitest-pool-workers/test/filtering.test.ts b/packages/vitest-plugin/test/filtering.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/filtering.test.ts
rename to packages/vitest-plugin/test/filtering.test.ts
diff --git a/packages/vitest-pool-workers/test/global-setup.ts b/packages/vitest-plugin/test/global-setup.ts
similarity index 85%
rename from packages/vitest-pool-workers/test/global-setup.ts
rename to packages/vitest-plugin/test/global-setup.ts
index 5532d2dace8..542e734383e 100644
--- a/packages/vitest-pool-workers/test/global-setup.ts
+++ b/packages/vitest-plugin/test/global-setup.ts
@@ -14,7 +14,7 @@ const packagesRoot = path.resolve(repoRoot, "packages");
// Using a global setup means we can modify tests without having to re-install
// packages into our temporary directory
export default async function ({ provide }: TestProject) {
- const stop = await startMockNpmRegistry("@cloudflare/vitest-pool-workers");
+ const stop = await startMockNpmRegistry("@cloudflare/vitest-plugin");
// Create temporary directory
const projectPath = await createTestProject();
@@ -33,23 +33,23 @@ export default async function ({ provide }: TestProject) {
}
/**
- * Create a temporary package that contains vitest-pool-workers and vitest.
+ * Create a temporary package that contains vitest-plugin and vitest.
*/
async function createTestProject() {
// Create temporary directory containing a space to avoid regressing on
// https://github.com/cloudflare/workers-sdk/issues/5268
const projectPath = await fs.realpath(
- await fs.mkdtemp(path.join(os.tmpdir(), "vitest-pool-workers temp-"))
+ await fs.mkdtemp(path.join(os.tmpdir(), "vitest-plugin temp-"))
);
const packageJsonPath = path.join(projectPath, "package.json");
const vitestPeerDep = await getVitestPeerDep();
const packageJson = {
- name: "vitest-pool-workers-e2e-tests",
+ name: "vitest-plugin-e2e-tests",
private: true,
type: "module",
devDependencies: {
- // Ensure we use the local version of vitest-pool-workers
- "@cloudflare/vitest-pool-workers": version,
+ // Ensure we use the local version of vitest-plugin
+ "@cloudflare/vitest-plugin": version,
"@vitest/coverage-istanbul": vitestPeerDep,
vitest: vitestPeerDep,
},
@@ -73,12 +73,12 @@ async function createTestProject() {
}
/**
- * Get the version of `vitest` that is needed as a peer of vitest-pool-workers.
+ * Get the version of `vitest` that is needed as a peer of vitest-plugin.
*/
async function getVitestPeerDep() {
const poolPackageJsonPath = path.join(
packagesRoot,
- "vitest-pool-workers/package.json"
+ "vitest-plugin/package.json"
);
const poolPackageJson = JSON.parse(
await fs.readFile(poolPackageJsonPath, "utf8")
diff --git a/packages/vitest-pool-workers/test/helpers.ts b/packages/vitest-plugin/test/helpers.ts
similarity index 98%
rename from packages/vitest-pool-workers/test/helpers.ts
rename to packages/vitest-plugin/test/helpers.ts
index 06fac20d90b..a09c04ebaee 100644
--- a/packages/vitest-pool-workers/test/helpers.ts
+++ b/packages/vitest-plugin/test/helpers.ts
@@ -10,7 +10,7 @@ import dedent from "ts-dedent";
import { test as baseTest, inject, vi } from "vitest";
import type { WorkerPoolOptionsContext } from "../src/pool/plugin";
-const debuglog = util.debuglog("vitest-pool-workers:test");
+const debuglog = util.debuglog("vitest-plugin:test");
function checkCloudflareTestInjectTypes(
poolInject: WorkerPoolOptionsContext["inject"]
@@ -30,7 +30,7 @@ export const vitestConfig = (
cfOptions: Record = {},
testOptions: Record = {}
) => dedent /* javascript */ `
- import { cloudflareTest } from "@cloudflare/vitest-pool-workers"
+ import { cloudflareTest } from "@cloudflare/vitest-plugin"
import { BaseSequencer } from "vitest/node";
diff --git a/packages/vitest-pool-workers/test/inspector.test.ts b/packages/vitest-plugin/test/inspector.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/inspector.test.ts
rename to packages/vitest-plugin/test/inspector.test.ts
diff --git a/packages/vitest-pool-workers/test/isolation.test.ts b/packages/vitest-plugin/test/isolation.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/isolation.test.ts
rename to packages/vitest-plugin/test/isolation.test.ts
diff --git a/packages/vitest-pool-workers/test/module-fallback.test.ts b/packages/vitest-plugin/test/module-fallback.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/module-fallback.test.ts
rename to packages/vitest-plugin/test/module-fallback.test.ts
diff --git a/packages/vitest-pool-workers/test/remote-proxy-cleanup.test.ts b/packages/vitest-plugin/test/remote-proxy-cleanup.test.ts
similarity index 96%
rename from packages/vitest-pool-workers/test/remote-proxy-cleanup.test.ts
rename to packages/vitest-plugin/test/remote-proxy-cleanup.test.ts
index 07ead7e58ed..1a6b42de756 100644
--- a/packages/vitest-pool-workers/test/remote-proxy-cleanup.test.ts
+++ b/packages/vitest-plugin/test/remote-proxy-cleanup.test.ts
@@ -11,7 +11,7 @@ test.skipIf(
async ({ expect, seed, vitestRun }) => {
await seed({
"vitest.config.mts": dedent`
- import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+ import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineConfig } from "vitest/config";
export default defineConfig(async () => {
diff --git a/packages/vitest-pool-workers/test/snapshots.test.ts b/packages/vitest-plugin/test/snapshots.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/snapshots.test.ts
rename to packages/vitest-plugin/test/snapshots.test.ts
diff --git a/packages/vitest-pool-workers/test/streaming-tails.test.ts b/packages/vitest-plugin/test/streaming-tails.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/streaming-tails.test.ts
rename to packages/vitest-plugin/test/streaming-tails.test.ts
diff --git a/packages/vitest-pool-workers/test/structured-logs.test.ts b/packages/vitest-plugin/test/structured-logs.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/structured-logs.test.ts
rename to packages/vitest-plugin/test/structured-logs.test.ts
diff --git a/packages/vitest-pool-workers/test/unavailable-builtin.test.ts b/packages/vitest-plugin/test/unavailable-builtin.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/unavailable-builtin.test.ts
rename to packages/vitest-plugin/test/unavailable-builtin.test.ts
diff --git a/packages/vitest-pool-workers/test/unhandled-rejection.test.ts b/packages/vitest-plugin/test/unhandled-rejection.test.ts
similarity index 93%
rename from packages/vitest-pool-workers/test/unhandled-rejection.test.ts
rename to packages/vitest-plugin/test/unhandled-rejection.test.ts
index 95244d926f5..349abdc5dd4 100644
--- a/packages/vitest-pool-workers/test/unhandled-rejection.test.ts
+++ b/packages/vitest-plugin/test/unhandled-rejection.test.ts
@@ -17,7 +17,7 @@ test(
async ({ expect, seed, vitestRun }) => {
await seed({
"vitest.config.mts": dedent`
- import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+ import { cloudflareTest } from "@cloudflare/vitest-plugin";
export default {
plugins: [cloudflareTest({ miniflare: { compatibilityDate: "2025-12-02", compatibilityFlags: ["nodejs_compat"] } })],
test: { testTimeout: 30_000 }
@@ -38,7 +38,7 @@ test(
async ({ expect, seed, vitestRun }) => {
await seed({
"vitest.config.mts": dedent`
- import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
+ import { cloudflareTest } from "@cloudflare/vitest-plugin";
export default {
plugins: [cloudflareTest({ miniflare: { compatibilityDate: "2025-12-02", compatibilityFlags: ["nodejs_compat"] } })],
test: {
diff --git a/packages/vitest-pool-workers/test/validation.test.ts b/packages/vitest-plugin/test/validation.test.ts
similarity index 98%
rename from packages/vitest-pool-workers/test/validation.test.ts
rename to packages/vitest-plugin/test/validation.test.ts
index 7d80d9aa806..b9db5ce1704 100644
--- a/packages/vitest-pool-workers/test/validation.test.ts
+++ b/packages/vitest-plugin/test/validation.test.ts
@@ -226,7 +226,7 @@ test(
result = await vitestRun();
expect(await result.exitCode).toBe(1);
expected = dedent`
- ${path.join(tmpPathName, "index.ts")} does not export a default entrypoint. \`@cloudflare/vitest-pool-workers\` does not support service workers or named entrypoints for \`SELF\`.
+ ${path.join(tmpPathName, "index.ts")} does not export a default entrypoint. \`@cloudflare/vitest-plugin\` does not support service workers or named entrypoints for \`SELF\`.
If you're using service workers, please migrate to the modules format: https://developers.cloudflare.com/workers/reference/migrate-to-module-workers/
`;
expect(result.stderr).toMatch(expected);
@@ -253,7 +253,7 @@ describe("coverage provider validation", () => {
const result = await vitestRun();
expect(await result.exitCode).toBe(1);
expect(result.stderr).toMatch(
- 'Coverage provider "v8" is not supported by `@cloudflare/vitest-pool-workers`'
+ 'Coverage provider "v8" is not supported by `@cloudflare/vitest-plugin`'
);
expect(result.stderr).toMatch("Use Istanbul instead");
}
@@ -276,7 +276,7 @@ describe("coverage provider validation", () => {
const result = await vitestRun();
expect(await result.exitCode).toBe(1);
expect(result.stderr).toMatch(
- 'Coverage provider "v8" is not supported by `@cloudflare/vitest-pool-workers`'
+ 'Coverage provider "v8" is not supported by `@cloudflare/vitest-plugin`'
);
}
);
diff --git a/packages/vitest-pool-workers/test/wait-until-timeout.test.ts b/packages/vitest-plugin/test/wait-until-timeout.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/wait-until-timeout.test.ts
rename to packages/vitest-plugin/test/wait-until-timeout.test.ts
diff --git a/packages/vitest-pool-workers/test/watch.test.ts b/packages/vitest-plugin/test/watch.test.ts
similarity index 100%
rename from packages/vitest-pool-workers/test/watch.test.ts
rename to packages/vitest-plugin/test/watch.test.ts
diff --git a/packages/vitest-pool-workers/tsconfig.json b/packages/vitest-plugin/tsconfig.json
similarity index 100%
rename from packages/vitest-pool-workers/tsconfig.json
rename to packages/vitest-plugin/tsconfig.json
diff --git a/packages/vitest-pool-workers/tsdown.config.ts b/packages/vitest-plugin/tsdown.config.ts
similarity index 100%
rename from packages/vitest-pool-workers/tsdown.config.ts
rename to packages/vitest-plugin/tsdown.config.ts
diff --git a/packages/vitest-pool-workers/turbo.json b/packages/vitest-plugin/turbo.json
similarity index 100%
rename from packages/vitest-pool-workers/turbo.json
rename to packages/vitest-plugin/turbo.json
diff --git a/packages/vitest-pool-workers/types/cloudflare-test.d.ts b/packages/vitest-plugin/types/cloudflare-test.d.ts
similarity index 99%
rename from packages/vitest-pool-workers/types/cloudflare-test.d.ts
rename to packages/vitest-plugin/types/cloudflare-test.d.ts
index d0570123ab3..18595f8e361 100644
--- a/packages/vitest-pool-workers/types/cloudflare-test.d.ts
+++ b/packages/vitest-plugin/types/cloudflare-test.d.ts
@@ -181,7 +181,7 @@ declare module "cloudflare:test" {
* Applies all un-applied `migrations` to database `db`, recording migrations
* state in the `migrationsTableName` table. `migrationsTableName` defaults to
* `d1_migrations`. Call the `readD1Migrations()` function from the
- * `@cloudflare/vitest-pool-workers/config` package inside Node.js to get the
+ * `@cloudflare/vitest-plugin/config` package inside Node.js to get the
* `migrations` array.
*/
export function applyD1Migrations(
diff --git a/packages/vitest-pool-workers/types/tsconfig.json b/packages/vitest-plugin/types/tsconfig.json
similarity index 100%
rename from packages/vitest-pool-workers/types/tsconfig.json
rename to packages/vitest-plugin/types/tsconfig.json
diff --git a/packages/vitest-pool-workers/vitest-pool-workers.svg b/packages/vitest-plugin/vitest-plugin.svg
similarity index 100%
rename from packages/vitest-pool-workers/vitest-pool-workers.svg
rename to packages/vitest-plugin/vitest-plugin.svg
diff --git a/packages/vitest-pool-workers/vitest.config.mts b/packages/vitest-plugin/vitest.config.mts
similarity index 100%
rename from packages/vitest-pool-workers/vitest.config.mts
rename to packages/vitest-plugin/vitest.config.mts
diff --git a/packages/vitest-pool-workers/test/README.md b/packages/vitest-pool-workers/test/README.md
deleted file mode 100644
index f098f75dc9b..00000000000
--- a/packages/vitest-pool-workers/test/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# `@cloudflare/vitest-pool-workers` E2E Tests
-
-This directory implements E2E tests for the `@cloudflare/vitest-pool-workers` package.
-
-`@cloudflare/vitest-pool-workers` and its local dependencies are built and then published to a mock npm registry, then installed in a temporary directory to test against.
-
-If possible, tests should be written in the [`fixtures/vitest-pool-workers-examples`](../../../fixtures/vitest-pool-workers-examples) directory.
-These tests run against `@cloudflare/vitest-pool-workers` itself, and execute much faster.
-They're also a source of documentation for end users.
-
-Use the [`misc`](../../../fixtures/vitest-pool-workers-examples/misc) directory if your test doesn't really belong with an example.
diff --git a/packages/workers-utils/src/config/validation.ts b/packages/workers-utils/src/config/validation.ts
index 640530578a9..46a2ce1b1e7 100644
--- a/packages/workers-utils/src/config/validation.ts
+++ b/packages/workers-utils/src/config/validation.ts
@@ -2195,7 +2195,7 @@ function normalizeAndValidateEnvironment(
topLevelEnv,
rawEnv,
"previews",
- validatePreviewsConfig(envName),
+ validatePreviewsConfig(envName, configPath),
undefined
),
};
@@ -3440,11 +3440,73 @@ function validateSshPublicKeys(
}
}
+/**
+ * Validate `previews.containers`. Mirrors `validateContainerApp`, but rejects
+ * the application name outright. Every preview container is named at deploy
+ * time from the resolved worker name, preview slug, and class name, so that
+ * two previews of the same Worker cannot claim one name.
+ *
+ * Default-name generation is therefore switched off here. The resolved worker
+ * name is not known until deploy time, so requiring a name during validation
+ * would reject a config that omits the top-level `name` and supplies it with
+ * `--worker-name` instead.
+ */
+function validatePreviewsContainers(
+ envName: string,
+ configPath: string | undefined
+): ValidatorFn {
+ const innerValidator = validateContainerApp(envName, undefined, configPath, {
+ generateDefaultName: false,
+ });
+ return (diagnostics, field, value, config) => {
+ if (Array.isArray(value)) {
+ const nameFields = [...value.entries()]
+ .filter(
+ ([, entry]) => entry && typeof entry === "object" && "name" in entry
+ )
+ .map(([index]) => `"${field}[${index}].name"`);
+ if (nameFields.length > 0) {
+ diagnostics.errors.push(
+ `${nameFields.join(", ")} cannot be set. A preview container's application name is generated from the worker name, preview slug, and Durable Object class name, so that separate previews of the same Worker do not collide. Remove it and identify the container with "class_name".`
+ );
+ return false;
+ }
+ // A Durable Object class is backed by at most one container
+ // application, so two entries for the same class are ambiguous.
+ const seenClasses = new Set();
+ const duplicateClasses = new Set();
+ for (const entry of value) {
+ if (!entry || typeof entry !== "object") {
+ continue;
+ }
+ if (typeof entry.class_name === "string") {
+ if (seenClasses.has(entry.class_name)) {
+ duplicateClasses.add(entry.class_name);
+ }
+ seenClasses.add(entry.class_name);
+ }
+ }
+ if (duplicateClasses.size > 0) {
+ const classList = [...duplicateClasses]
+ .map((className) => `"${className}"`)
+ .join(", ");
+ diagnostics.errors.push(
+ `"${field}" declares more than one container for the Durable Object class ${classList}; each Durable Object class may appear at most once.`
+ );
+ return false;
+ }
+ }
+ return innerValidator(diagnostics, field, value, config);
+ };
+}
+
function validateContainerApp(
envName: string,
topLevelName: string | undefined,
- configPath: string | undefined
+ configPath: string | undefined,
+ options: { generateDefaultName?: boolean } = {}
): ValidatorFn {
+ const { generateDefaultName = true } = options;
return (diagnostics, field, value, config) => {
if (!value) {
return true;
@@ -3473,7 +3535,7 @@ function validateContainerApp(
"string"
);
// try and add a default name
- if (!containerAppOptional.name) {
+ if (generateDefaultName && !containerAppOptional.name) {
// The default name is derived from the class name, so without one there
// is nothing to derive it from. Such a container must be linked to a
// Durable Object from the `exports` side, which references it by name.
@@ -5753,7 +5815,7 @@ function normalizeAndValidateLimits(
}
const validatePreviewsConfig =
- (envName: string): ValidatorFn =>
+ (envName: string, configPath: string | undefined): ValidatorFn =>
(diagnostics, field, value) => {
if (value === undefined) {
return true;
@@ -5805,6 +5867,7 @@ const validatePreviewsConfig =
"ratelimits",
"vpc_services",
"version_metadata",
+ "containers",
"logpush",
"observability",
"limits",
@@ -6084,6 +6147,16 @@ const validatePreviewsConfig =
) && isValid;
}
+ if (previews.containers !== undefined) {
+ isValid =
+ validatePreviewsContainers(envName, configPath)(
+ diagnostics,
+ `${field}.containers`,
+ previews.containers,
+ undefined
+ ) && isValid;
+ }
+
isValid =
isBoolean(diagnostics, `${field}.logpush`, previews.logpush, undefined) &&
isValid;
diff --git a/packages/workers-utils/src/default-compat-date.ts b/packages/workers-utils/src/default-compat-date.ts
index d8b2341863c..53e9577bc25 100644
--- a/packages/workers-utils/src/default-compat-date.ts
+++ b/packages/workers-utils/src/default-compat-date.ts
@@ -19,4 +19,4 @@ import type { CompatDate } from "./compatibility-date";
* @see https://github.com/cloudflare/workerd/blob/main/src/workerd/io/BUILD.bazel
* @see https://github.com/cloudflare/workerd/blob/main/src/workerd/io/compatibility-date.c%2B%2B
*/
-export const DEFAULT_COMPAT_DATE: CompatDate = "2026-08-16";
+export const DEFAULT_COMPAT_DATE: CompatDate = "2026-08-19";
diff --git a/packages/workers-utils/tests/config/validation/normalize-and-validate-config.test.ts b/packages/workers-utils/tests/config/validation/normalize-and-validate-config.test.ts
index f772092232f..2e447db7e25 100644
--- a/packages/workers-utils/tests/config/validation/normalize-and-validate-config.test.ts
+++ b/packages/workers-utils/tests/config/validation/normalize-and-validate-config.test.ts
@@ -12722,6 +12722,173 @@ describe("normalizeAndValidateConfig()", () => {
'The field "previews.browser" should be an object'
);
});
+
+ it("should accept previews.containers without a name", ({ expect }) => {
+ const rawConfig = {
+ name: "test-worker",
+ previews: {
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/test:latest",
+ },
+ ],
+ },
+ } as unknown as RawConfig;
+
+ const { diagnostics } = normalizeAndValidateConfig(
+ rawConfig,
+ undefined,
+ undefined,
+ { env: undefined }
+ );
+
+ expect(diagnostics.hasErrors()).toBe(false);
+ });
+
+ it("should accept previews.containers in a named environment that relies on the inherited top-level name", ({
+ expect,
+ }) => {
+ const rawConfig = {
+ name: "test-worker",
+ env: {
+ staging: {
+ previews: {
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/test:latest",
+ },
+ ],
+ },
+ },
+ },
+ } as unknown as RawConfig;
+
+ const { diagnostics } = normalizeAndValidateConfig(
+ rawConfig,
+ undefined,
+ undefined,
+ { env: "staging" }
+ );
+
+ expect(diagnostics.hasErrors()).toBe(false);
+ });
+
+ it("should accept previews.containers when the worker name is omitted", ({
+ expect,
+ }) => {
+ const rawConfig = {
+ previews: {
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/test:latest",
+ },
+ ],
+ },
+ } as unknown as RawConfig;
+
+ const { diagnostics } = normalizeAndValidateConfig(
+ rawConfig,
+ undefined,
+ undefined,
+ { env: undefined }
+ );
+
+ expect(diagnostics.renderErrors()).not.toContain(
+ 'Must have either a top level "name"'
+ );
+ expect(diagnostics.hasErrors()).toBe(false);
+ });
+
+ it("should reject a previews.containers entry that sets a name", ({
+ expect,
+ }) => {
+ const rawConfig = {
+ name: "test-worker",
+ previews: {
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/test:latest",
+ },
+ {
+ class_name: "OtherContainer",
+ image: "registry.cloudflare.com/other:latest",
+ name: "custom-name",
+ },
+ ],
+ },
+ } as unknown as RawConfig;
+
+ const { diagnostics } = normalizeAndValidateConfig(
+ rawConfig,
+ undefined,
+ undefined,
+ { env: undefined }
+ );
+
+ expect(diagnostics.hasErrors()).toBe(true);
+ expect(diagnostics.renderErrors()).toContain(
+ '"previews.containers[1].name" cannot be set'
+ );
+ });
+
+ it("should reject two previews.containers entries sharing a class_name", ({
+ expect,
+ }) => {
+ const rawConfig = {
+ name: "test-worker",
+ previews: {
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/test:latest",
+ },
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/other:latest",
+ },
+ ],
+ },
+ } as unknown as RawConfig;
+
+ const { diagnostics } = normalizeAndValidateConfig(
+ rawConfig,
+ undefined,
+ undefined,
+ { env: undefined }
+ );
+
+ expect(diagnostics.hasErrors()).toBe(true);
+ expect(diagnostics.renderErrors()).toContain(
+ '"previews.containers" declares more than one container for the Durable Object class "MyContainer"'
+ );
+ });
+
+ it("should reject previews.containers entries missing image", ({
+ expect,
+ }) => {
+ const rawConfig = {
+ name: "test-worker",
+ previews: {
+ containers: [{ class_name: "MyContainer" }],
+ },
+ } as unknown as RawConfig;
+
+ const { diagnostics } = normalizeAndValidateConfig(
+ rawConfig,
+ undefined,
+ undefined,
+ { env: undefined }
+ );
+
+ expect(diagnostics.hasErrors()).toBe(true);
+ expect(diagnostics.renderErrors()).toContain(
+ '"containers.image" field must be defined'
+ );
+ });
});
});
});
diff --git a/packages/workflows-shared/src/engine.ts b/packages/workflows-shared/src/engine.ts
index cbc7f8927ba..6fa6b231a1f 100644
--- a/packages/workflows-shared/src/engine.ts
+++ b/packages/workflows-shared/src/engine.ts
@@ -799,7 +799,7 @@ export class Engine extends DurableObject {
}
// Called by the dispose function when introspecting the instance in tests
- // TODO: Ideally this abort should be done by `abortAllDurableObjects` from worked called by vitest-pool-workers
+ // TODO: Ideally this abort should be done by `abortAllDurableObjects` from worked called by vitest-plugin
async unsafeAbort(reason?: string) {
await this.ctx.storage.sync();
await this.ctx.storage.deleteAll();
diff --git a/packages/wrangler/src/__tests__/preview.test.ts b/packages/wrangler/src/__tests__/preview.test.ts
index 8b2ab68b01a..bd758eaea35 100644
--- a/packages/wrangler/src/__tests__/preview.test.ts
+++ b/packages/wrangler/src/__tests__/preview.test.ts
@@ -1,15 +1,18 @@
import * as childProcess from "node:child_process";
import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
import { stripVTControlCharacters } from "node:util";
+import * as streams from "@cloudflare/cli-shared-helpers/streams";
import {
extractConfigBindings,
getBranchName,
+ previewContainerAppName,
} from "@cloudflare/deploy-helpers";
import { defaultWranglerConfig } from "@cloudflare/workers-utils";
import { runInTempDir } from "@cloudflare/workers-utils/test-helpers";
import { http, HttpResponse } from "msw";
import { afterAll, afterEach, beforeEach, describe, test, vi } from "vitest";
import { clearOutputFilePath } from "../output";
+import * as user from "../user";
import { mockAccountId, mockApiToken } from "./helpers/mock-account-id";
import { mockConsoleMethods } from "./helpers/mock-console";
import { mockConfirm } from "./helpers/mock-dialogs";
@@ -39,6 +42,105 @@ function configWithPreviews(previews: PreviewsConfig): Config {
};
}
+/**
+ * Write a Worker entrypoint and a `wrangler.json` whose `previews` block binds
+ * one Durable Object and attaches a registry-image container to it.
+ */
+function writeContainerPreviewConfig() {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ previews: {
+ durable_objects: {
+ bindings: [{ name: "MY_CONTAINER", class_name: "MyContainer" }],
+ },
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ },
+ })
+ );
+}
+
+/**
+ * Install msw handlers for the three requests a container preview makes: a
+ * lookup that misses, the preview creation, then the deployment creation.
+ *
+ * @param options - Preview id to report, bindings the deployment response
+ * carries back, and an optional hook fired when the deployment is created.
+ */
+function mockContainerPreview({
+ previewId,
+ deploymentEnv = {},
+ onCreateDeployment,
+}: {
+ previewId: string;
+ deploymentEnv?: Record;
+ onCreateDeployment?: () => void;
+}) {
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(`*/accounts/:accountId/workers/workers/:workerId/previews`, () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: previewId,
+ name: "test-preview",
+ slug: "test-preview",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ () => {
+ onCreateDeployment?.();
+ return HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: `deployment-${previewId}`,
+ preview_id: previewId,
+ preview_name: "test-preview",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ env: deploymentEnv,
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ );
+ }
+ )
+ );
+}
+
describe("wrangler preview", () => {
const std = mockConsoleMethods();
runInTempDir();
@@ -46,6 +148,11 @@ describe("wrangler preview", () => {
mockAccountId();
afterEach(() => {
clearOutputFilePath();
+ // Several container tests stub `getScopes` to grant `containers:write`.
+ // `vitest.setup.ts` only clears mock calls, so without an explicit
+ // restore that stub would outlive its test and silently grant the scope
+ // to every later test in the file.
+ vi.restoreAllMocks();
});
describe("getBranchName", () => {
@@ -86,6 +193,91 @@ describe("wrangler preview", () => {
});
});
+ describe("previewContainerAppName", () => {
+ const DIGEST_SUFFIX = /_[0-9a-z]{7}$/;
+
+ test("should join worker name, preview slug, and class name with underscores", ({
+ expect,
+ }) => {
+ expect(
+ previewContainerAppName("test-worker", "feature-branch", "MyContainer")
+ ).toBe("test-worker_feature-branch_MyContainer");
+ });
+
+ // Worker and class names can produce values the containers API rejects.
+ test.for([
+ {
+ reason: "a worker name that starts with a digit",
+ workerName: "9-my-worker",
+ className: "MyContainer",
+ body: "w9-my-worker_feature-branch_MyContainer",
+ },
+ {
+ reason: "consecutive dashes in a worker name",
+ workerName: "my--worker",
+ className: "MyContainer",
+ body: "my-worker_feature-branch_MyContainer",
+ },
+ {
+ reason: "a character that no application name may contain",
+ workerName: "test-worker",
+ className: "My$Class",
+ body: "test-worker_feature-branch_My-Class",
+ },
+ ])(
+ "should normalise $reason and mark it with a digest",
+ ({ workerName, className, body }, { expect }) => {
+ const name = previewContainerAppName(
+ workerName,
+ "feature-branch",
+ className
+ );
+
+ expect(name).toMatch(DIGEST_SUFFIX);
+ expect(name.replace(DIGEST_SUFFIX, "")).toBe(body);
+ }
+ );
+
+ test("should keep apart worker names that normalise onto one another", ({
+ expect,
+ }) => {
+ expect(
+ previewContainerAppName("my--worker", "feature-branch", "MyContainer")
+ ).not.toBe(
+ previewContainerAppName("my-worker", "feature-branch", "MyContainer")
+ );
+ });
+
+ test("should cap the name at the length the API allows", ({ expect }) => {
+ const name = previewContainerAppName(
+ "w".repeat(300),
+ "feature-branch",
+ "MyContainer"
+ );
+
+ expect(name).toHaveLength(253);
+ expect(name).toMatch(DIGEST_SUFFIX);
+ });
+
+ test("should keep apart worker names that differ only past that length", ({
+ expect,
+ }) => {
+ expect(
+ previewContainerAppName(
+ `${"w".repeat(300)}a`,
+ "feature-branch",
+ "MyContainer"
+ )
+ ).not.toBe(
+ previewContainerAppName(
+ `${"w".repeat(300)}b`,
+ "feature-branch",
+ "MyContainer"
+ )
+ );
+ });
+ });
+
describe("extractConfigBindings", () => {
test("should extract vars as plain_text bindings", ({ expect }) => {
const config = configWithPreviews({
@@ -2068,6 +2260,1638 @@ describe("wrangler preview", () => {
expect(deploymentRequestBody?.env).not.toHaveProperty("ASSETS");
});
+ test("should include containers in deployment metadata and create a preview-scoped container application", async ({
+ expect,
+ }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ previews: {
+ durable_objects: {
+ bindings: [{ name: "MY_CONTAINER", class_name: "MyContainer" }],
+ },
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ },
+ })
+ );
+ vi.spyOn(user, "getScopes").mockReturnValue(["containers:write"]);
+ let deploymentRequestBody: Record | undefined;
+ let createdApplication: Record | undefined;
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-containers",
+ name: "feature/my-branch",
+ slug: "feature-my-branch",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ async ({ request }) => {
+ deploymentRequestBody = (await request.json()) as Record<
+ string,
+ unknown
+ >;
+ return HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-containers",
+ preview_id: "preview-id-containers",
+ preview_name: "feature/my-branch",
+ urls: ["https://containers.test-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ env: {
+ MY_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "preview-do-ns-id",
+ },
+ },
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ );
+ }
+ ),
+ http.get("*/me", () =>
+ HttpResponse.json({
+ success: true,
+ result: {
+ external_account_id: "some-account-id",
+ limits: { disk_mb_per_deployment: 2000 },
+ },
+ })
+ ),
+ http.get("*/applications", () =>
+ HttpResponse.json({ success: true, result: [] })
+ ),
+ http.post("*/applications", async ({ request }) => {
+ createdApplication = (await request.json()) as Record<
+ string,
+ unknown
+ >;
+ return HttpResponse.json({
+ success: true,
+ result: { id: "app-id", ...createdApplication },
+ });
+ })
+ );
+ await runWrangler("preview --name feature/my-branch");
+ expect(deploymentRequestBody?.containers).toEqual([
+ { class_name: "MyContainer" },
+ ]);
+ expect(createdApplication).toMatchObject({
+ name: "test-worker_feature-my-branch_MyContainer",
+ durable_objects: { namespace_id: "preview-do-ns-id" },
+ });
+ });
+
+ test("should name applications from the resolved worker name", async ({
+ expect,
+ }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export class OtherContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ // No top-level `name`: the worker name arrives via --worker-name, and
+ // the generated application name must use it.
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ previews: {
+ durable_objects: {
+ bindings: [
+ { name: "MY_CONTAINER", class_name: "MyContainer" },
+ { name: "OTHER_CONTAINER", class_name: "OtherContainer" },
+ ],
+ },
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ {
+ class_name: "OtherContainer",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ },
+ })
+ );
+ vi.spyOn(user, "getScopes").mockReturnValue(["containers:write"]);
+ const createdApplications: Record[] = [];
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-containers",
+ name: "feature/my-branch",
+ slug: "feature-my-branch",
+ urls: ["https://test-preview.cli-worker.cloudflare.app"],
+ worker_name: "cli-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-containers",
+ preview_id: "preview-id-containers",
+ preview_name: "feature/my-branch",
+ urls: ["https://containers.cli-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ env: {
+ MY_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "preview-do-ns-id",
+ },
+ OTHER_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "OtherContainer",
+ namespace_id: "other-do-ns-id",
+ },
+ },
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.get("*/me", () =>
+ HttpResponse.json({
+ success: true,
+ result: {
+ external_account_id: "some-account-id",
+ limits: { disk_mb_per_deployment: 2000 },
+ },
+ })
+ ),
+ http.get("*/applications", () =>
+ HttpResponse.json({ success: true, result: [] })
+ ),
+ http.post("*/applications", async ({ request }) => {
+ const application = (await request.json()) as Record;
+ createdApplications.push(application);
+ return HttpResponse.json({
+ success: true,
+ result: { id: "app-id", ...application },
+ });
+ })
+ );
+ await runWrangler(
+ "preview --name feature/my-branch --worker-name cli-worker"
+ );
+ expect(createdApplications.map((a) => a.name)).toEqual([
+ "cli-worker_feature-my-branch_MyContainer",
+ "cli-worker_feature-my-branch_OtherContainer",
+ ]);
+ });
+
+ test.for([
+ {
+ label: "the top-level config when the preview sets none",
+ previewOverrides: {},
+ expected: { logs: { enabled: true } },
+ },
+ {
+ label: "the preview config, which wins over the top-level one",
+ previewOverrides: { observability: { enabled: false } },
+ expected: undefined,
+ },
+ ])(
+ "should take container observability from $label",
+ async ({ previewOverrides, expected }, { expect }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "cli-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ observability: { enabled: true },
+ previews: {
+ ...previewOverrides,
+ durable_objects: {
+ bindings: [{ name: "MY_CONTAINER", class_name: "MyContainer" }],
+ },
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ },
+ })
+ );
+ vi.spyOn(user, "getScopes").mockReturnValue(["containers:write"]);
+ const createdApplications: Record[] = [];
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-containers",
+ name: "feature/my-branch",
+ slug: "feature-my-branch",
+ urls: ["https://test-preview.cli-worker.cloudflare.app"],
+ worker_name: "cli-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-containers",
+ preview_id: "preview-id-containers",
+ preview_name: "feature/my-branch",
+ urls: ["https://containers.cli-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ env: {
+ MY_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "preview-do-ns-id",
+ },
+ },
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.get("*/me", () =>
+ HttpResponse.json({
+ success: true,
+ result: {
+ external_account_id: "some-account-id",
+ limits: { disk_mb_per_deployment: 2000 },
+ },
+ })
+ ),
+ http.get("*/applications", () =>
+ HttpResponse.json({ success: true, result: [] })
+ ),
+ http.post("*/applications", async ({ request }) => {
+ const application = (await request.json()) as Record<
+ string,
+ unknown
+ >;
+ createdApplications.push(application);
+ return HttpResponse.json({
+ success: true,
+ result: { id: "app-id", ...application },
+ });
+ })
+ );
+ await runWrangler("preview --name feature/my-branch");
+ expect(createdApplications).toHaveLength(1);
+ const configuration = createdApplications[0]?.configuration as
+ | { observability?: unknown }
+ | undefined;
+ expect(configuration?.observability).toEqual(expected);
+ }
+ );
+
+ // `migrations` and `exports` are mutually exclusive, so each declaration
+ // path needs its own config.
+ test.for([
+ {
+ label: "migrations",
+ declaration: {
+ migrations: [{ tag: "v1", new_sqlite_classes: ["MyContainer"] }],
+ },
+ },
+ {
+ label: "exports",
+ declaration: {
+ exports: {
+ MyContainer: { type: "durable-object", storage: "sqlite" },
+ },
+ },
+ },
+ ])(
+ "should deploy containers for a Durable Object declared by $label with no preview binding",
+ async ({ declaration }, { expect }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ // `MyContainer` is not bound under `previews.durable_objects`. It is
+ // still implemented by this script and reachable over `ctx.exports`,
+ // so it owns a container application.
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ ...declaration,
+ previews: {
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ },
+ })
+ );
+ vi.spyOn(user, "getScopes").mockReturnValue(["containers:write"]);
+ const createdApplications: Record[] = [];
+ let deploymentRequest: Record = {};
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-ctx-exports",
+ name: "test-preview",
+ slug: "test-preview",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ async ({ request }) => {
+ deploymentRequest = (await request.json()) as Record<
+ string,
+ unknown
+ >;
+ return HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-ctx-exports",
+ preview_id: "preview-id-ctx-exports",
+ preview_name: "test-preview",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ );
+ }
+ ),
+ http.get("*/me", () =>
+ HttpResponse.json({
+ success: true,
+ result: {
+ external_account_id: "some-account-id",
+ limits: { disk_mb_per_deployment: 2000 },
+ },
+ })
+ ),
+ http.get("*/applications", () =>
+ HttpResponse.json({ success: true, result: [] })
+ ),
+ http.post("*/applications", async ({ request }) => {
+ const application = (await request.json()) as Record<
+ string,
+ unknown
+ >;
+ createdApplications.push(application);
+ return HttpResponse.json({
+ success: true,
+ result: { id: "app-id", ...application },
+ });
+ }),
+ // The class is unbound, so its namespace is not in the deployment
+ // response and has to be resolved from the namespaces list. The
+ // parent Worker's own namespace shares both the class name and the
+ // `script`, so only the preview id tells them apart.
+ http.get(
+ "*/accounts/:accountId/workers/durable_objects/namespaces",
+ () =>
+ HttpResponse.json({
+ success: true,
+ result: [
+ {
+ id: "parent-do-ns-id",
+ class: "MyContainer",
+ name: "test-worker_MyContainer",
+ script: "test-worker",
+ useSqlite: true,
+ },
+ {
+ id: "preview-do-ns-id",
+ class: "MyContainer",
+ name: "test-worker_test-preview_MyContainer",
+ script: "test-worker",
+ useSqlite: true,
+ preview: {
+ id: "preview-id-ctx-exports",
+ slug: "test-preview",
+ name: "test-preview",
+ },
+ },
+ ],
+ })
+ )
+ );
+ await runWrangler("preview --name test-preview");
+ expect(createdApplications.map((a) => a.name)).toEqual([
+ "test-worker_test-preview_MyContainer",
+ ]);
+ // The deployment must also declare the class as container-backed, or
+ // the runtime will not populate `ctx.container` on it.
+ expect(deploymentRequest.containers).toEqual([
+ { class_name: "MyContainer" },
+ ]);
+ }
+ );
+
+ test("should keep --json output parseable while deploying containers", async ({
+ expect,
+ }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ previews: {
+ durable_objects: {
+ bindings: [{ name: "MY_CONTAINER", class_name: "MyContainer" }],
+ },
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ },
+ })
+ );
+ vi.spyOn(user, "getScopes").mockReturnValue(["containers:write"]);
+ let createdApplication: Record | undefined;
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-json-containers",
+ name: "feature/my-branch",
+ slug: "feature-my-branch",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-json-containers",
+ preview_id: "preview-id-json-containers",
+ preview_name: "feature/my-branch",
+ urls: ["https://containers.test-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ env: {
+ MY_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "preview-do-ns-id",
+ },
+ },
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.get("*/me", () =>
+ HttpResponse.json({
+ success: true,
+ result: {
+ external_account_id: "some-account-id",
+ limits: { disk_mb_per_deployment: 2000 },
+ },
+ })
+ ),
+ http.get("*/applications", () =>
+ HttpResponse.json({ success: true, result: [] })
+ ),
+ http.post("*/applications", async ({ request }) => {
+ createdApplication = (await request.json()) as Record<
+ string,
+ unknown
+ >;
+ return HttpResponse.json({
+ success: true,
+ result: { id: "app-id", ...createdApplication },
+ });
+ })
+ );
+ // The container progress output reaches stdout through logRaw rather
+ // than console.log, so it has to be captured from the stream.
+ const stdoutWrite = vi
+ .spyOn(streams.stdout, "write")
+ .mockImplementation(() => true);
+ await runWrangler("preview --name feature/my-branch --json");
+
+ // The container application is still created, so the quiet path
+ // suppresses output without skipping work.
+ expect(createdApplication).toMatchObject({
+ name: "test-worker_feature-my-branch_MyContainer",
+ });
+ expect(stdoutWrite).not.toHaveBeenCalled();
+ const parsed = JSON.parse(std.out) as {
+ preview: { id: string };
+ deployment: { id: string };
+ };
+ expect(parsed.preview.id).toBe("preview-id-json-containers");
+ expect(parsed.deployment.id).toBe("deployment-id-json-containers");
+ });
+
+ // A class may be bound both locally and cross-script. Container options are
+ // resolved by finding the first binding with a matching class name, so a
+ // cross-script binding listed first used to make the container fail as
+ // though another Worker owned it.
+ test("should resolve a container whose class is also bound cross-script earlier in the config", async ({
+ expect,
+ }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ previews: {
+ durable_objects: {
+ bindings: [
+ {
+ name: "FOREIGN_CONTAINER",
+ class_name: "MyContainer",
+ script_name: "owner-worker",
+ },
+ { name: "MY_CONTAINER", class_name: "MyContainer" },
+ ],
+ },
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ },
+ })
+ );
+ vi.spyOn(user, "getScopes").mockReturnValue(["containers:write"]);
+ let createdApplication: Record | undefined;
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-containers",
+ name: "feature/my-branch",
+ slug: "feature-my-branch",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-containers",
+ preview_id: "preview-id-containers",
+ preview_name: "feature/my-branch",
+ urls: ["https://containers.test-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ env: {
+ FOREIGN_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "other-worker-do-ns-id",
+ script_name: "owner-worker",
+ },
+ MY_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "preview-do-ns-id",
+ },
+ },
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.get("*/me", () =>
+ HttpResponse.json({
+ success: true,
+ result: {
+ external_account_id: "some-account-id",
+ limits: { disk_mb_per_deployment: 2000 },
+ },
+ })
+ ),
+ http.get("*/applications", () =>
+ HttpResponse.json({ success: true, result: [] })
+ ),
+ http.post("*/applications", async ({ request }) => {
+ createdApplication = (await request.json()) as Record<
+ string,
+ unknown
+ >;
+ return HttpResponse.json({
+ success: true,
+ result: { id: "app-id", ...createdApplication },
+ });
+ })
+ );
+
+ await runWrangler("preview --name feature/my-branch");
+
+ expect(createdApplication).toMatchObject({
+ name: "test-worker_feature-my-branch_MyContainer",
+ durable_objects: { namespace_id: "preview-do-ns-id" },
+ });
+ });
+
+ test("should not propagate top-level containers into the preview deployment", async ({
+ expect,
+ }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ durable_objects: {
+ bindings: [{ name: "MY_CONTAINER", class_name: "MyContainer" }],
+ },
+ migrations: [{ tag: "v1", new_sqlite_classes: ["MyContainer"] }],
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ previews: {
+ durable_objects: {
+ bindings: [{ name: "MY_CONTAINER", class_name: "MyContainer" }],
+ },
+ },
+ })
+ );
+ let deploymentRequestBody: Record | undefined;
+ let listApplicationsCalls = 0;
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-no-inherit",
+ name: "test-preview",
+ slug: "test-preview",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ async ({ request }) => {
+ deploymentRequestBody = (await request.json()) as Record<
+ string,
+ unknown
+ >;
+ return HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-no-inherit",
+ preview_id: "preview-id-no-inherit",
+ preview_name: "test-preview",
+ urls: ["https://noinherit.test-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ env: {
+ MY_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "preview-do-ns-id",
+ },
+ },
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ );
+ }
+ ),
+ http.get("*/applications", () => {
+ listApplicationsCalls++;
+ return HttpResponse.json({ success: true, result: [] });
+ })
+ );
+ await runWrangler("preview --name test-preview");
+ expect(deploymentRequestBody).not.toHaveProperty("containers");
+ expect(listApplicationsCalls).toBe(0);
+ });
+
+ test("should omit containers from deployment when none are configured", async ({
+ expect,
+ }) => {
+ let deploymentRequestBody: Record | undefined;
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-no-containers",
+ name: "test-preview",
+ slug: "test-preview",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ async ({ request }) => {
+ deploymentRequestBody = (await request.json()) as Record<
+ string,
+ unknown
+ >;
+ return HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-no-containers",
+ preview_id: "preview-id-no-containers",
+ preview_name: "test-preview",
+ urls: ["https://nocontainers.test-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ env: {},
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ );
+ }
+ )
+ );
+ await runWrangler("preview --name test-preview");
+ expect(deploymentRequestBody).toBeDefined();
+ expect(deploymentRequestBody).not.toHaveProperty("containers");
+ });
+
+ test("should exclude containers whose DO binding has script_name set", async ({
+ expect,
+ }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ previews: {
+ durable_objects: {
+ bindings: [
+ {
+ name: "EXTERNAL_CONTAINER",
+ class_name: "ExternalContainer",
+ script_name: "owner-worker",
+ },
+ ],
+ },
+ containers: [
+ {
+ class_name: "ExternalContainer",
+ image:
+ "registry.cloudflare.com/some-account-id/external:latest",
+ },
+ ],
+ },
+ })
+ );
+ let deploymentRequestBody: Record | undefined;
+ let createApplicationCalls = 0;
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-cross-script",
+ name: "test-preview",
+ slug: "test-preview",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ async ({ request }) => {
+ deploymentRequestBody = (await request.json()) as Record<
+ string,
+ unknown
+ >;
+ return HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-cross-script",
+ preview_id: "preview-id-cross-script",
+ preview_name: "test-preview",
+ urls: ["https://crossscript.test-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ env: {},
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ );
+ }
+ ),
+ http.post("*/applications", () => {
+ createApplicationCalls++;
+ return HttpResponse.json({
+ success: true,
+ result: { id: "app-id" },
+ });
+ })
+ );
+ await runWrangler("preview --name test-preview");
+ expect(deploymentRequestBody).not.toHaveProperty("containers");
+ expect(createApplicationCalls).toBe(0);
+ });
+
+ test("should fail before creating the preview deployment when a container's class_name matches no Durable Object class", async ({
+ expect,
+ }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ previews: {
+ durable_objects: {
+ bindings: [{ name: "MY_CONTAINER", class_name: "MyContainer" }],
+ },
+ // Typo: no migration, export, or preview binding declares
+ // "MyContainerTypo", so this entry resolves to nothing.
+ containers: [
+ {
+ class_name: "MyContainerTypo",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ },
+ })
+ );
+ let createDeploymentCalls = 0;
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-unmatched-class",
+ name: "test-preview",
+ slug: "test-preview",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ () => {
+ createDeploymentCalls++;
+ return HttpResponse.json(
+ { success: true, result: {} },
+ { status: 201 }
+ );
+ }
+ )
+ );
+
+ let errorMessage = "";
+ try {
+ await runWrangler("preview --name test-preview");
+ } catch (e) {
+ errorMessage = (e as Error).message;
+ }
+ expect(errorMessage).toContain(
+ 'The container class_name "MyContainerTypo" in "previews.containers" does not match any Durable Object class in your wrangler.json file.'
+ );
+ expect(errorMessage).toContain(
+ 'Declare the class in "migrations" or "exports", or bind it under "previews.durable_objects".'
+ );
+ expect(createDeploymentCalls).toBe(0);
+ });
+
+ test("should fail before creating the preview deployment when a container omits class_name", async ({
+ expect,
+ }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ // A Durable Object may name its container instead of the other way
+ // around, but that reference resolves against the top level
+ // `containers` array, so it cannot reach a preview container.
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ containers: [
+ {
+ name: "my-container",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ exports: {
+ MyContainer: {
+ type: "durable-object",
+ storage: "sqlite",
+ container: "my-container",
+ },
+ },
+ previews: {
+ containers: [
+ {
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ },
+ })
+ );
+ let createDeploymentCalls = 0;
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-missing-class-name",
+ name: "test-preview",
+ slug: "test-preview",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ () => {
+ createDeploymentCalls++;
+ return HttpResponse.json(
+ { success: true, result: {} },
+ { status: 201 }
+ );
+ }
+ )
+ );
+
+ let errorMessage = "";
+ try {
+ await runWrangler("preview --name test-preview");
+ } catch (e) {
+ errorMessage = (e as Error).message;
+ }
+ expect(errorMessage).toContain(
+ 'A container entry in "previews.containers" is missing "class_name".'
+ );
+ expect(createDeploymentCalls).toBe(0);
+ });
+
+ test("should throw a UserError when no Durable Object namespace can be found for a container's class", async ({
+ expect,
+ }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ previews: {
+ durable_objects: {
+ bindings: [{ name: "MY_CONTAINER", class_name: "MyContainer" }],
+ },
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ ],
+ },
+ })
+ );
+ vi.spyOn(user, "getScopes").mockReturnValue(["containers:write"]);
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-missing-ns",
+ name: "test-preview",
+ slug: "test-preview",
+ urls: ["https://test-preview.test-worker.cloudflare.app"],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-missing-ns",
+ preview_id: "preview-id-missing-ns",
+ preview_name: "test-preview",
+ urls: ["https://missingns.test-worker.cloudflare.app"],
+ compatibility_date: "2025-01-01",
+ env: {},
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.get("*/me", () =>
+ HttpResponse.json({
+ success: true,
+ result: {
+ external_account_id: "some-account-id",
+ limits: { disk_mb_per_deployment: 2000 },
+ },
+ })
+ ),
+ // The only namespace for this class belongs to a different preview,
+ // so the fallback must reject it rather than attach the container to
+ // another preview's storage.
+ http.get(
+ "*/accounts/:accountId/workers/durable_objects/namespaces",
+ () =>
+ HttpResponse.json({
+ success: true,
+ result: [
+ {
+ id: "other-preview-do-ns-id",
+ class: "MyContainer",
+ name: "test-worker_other-preview_MyContainer",
+ script: "test-worker",
+ useSqlite: true,
+ preview: {
+ id: "some-other-preview-id",
+ slug: "other-preview",
+ name: "other-preview",
+ },
+ },
+ ],
+ })
+ )
+ );
+ await expect(runWrangler("preview --name test-preview")).rejects.toThrow(
+ /no Durable Object namespace was found for class "MyContainer" in preview "test-preview"/
+ );
+ });
+
+ test("should fail before creating the preview deployment when a container's image belongs to a different account", async ({
+ expect,
+ }) => {
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ previews: {
+ durable_objects: {
+ bindings: [{ name: "MY_CONTAINER", class_name: "MyContainer" }],
+ },
+ containers: [
+ {
+ class_name: "MyContainer",
+ image:
+ "registry.cloudflare.com/ffffffffffffffffffffffffffffffff/test:latest",
+ },
+ ],
+ },
+ })
+ );
+ vi.spyOn(user, "getScopes").mockReturnValue(["containers:write"]);
+ let createDeploymentCalls = 0;
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-bad-account",
+ name: "test-preview",
+ slug: "test-preview",
+ urls: [],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ () => {
+ createDeploymentCalls++;
+ return HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-bad-account",
+ env: {},
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ );
+ }
+ )
+ );
+ await expect(runWrangler("preview --name test-preview")).rejects.toThrow(
+ /does not belong to your account/
+ );
+ // Creating the (empty) Preview resource itself is harmless. The
+ // deployment is what actually goes live and would advertise
+ // container-backed DO classes, so it must never be created for a
+ // config that fails container validation.
+ expect(createDeploymentCalls).toBe(0);
+ });
+
+ test("should fail before creating the preview deployment when Docker cannot be launched for a container built from a Dockerfile", async ({
+ expect,
+ }) => {
+ vi.stubEnv("WRANGLER_DOCKER_BIN", "/usr/bin/bad-docker-path");
+ writeFileSync(
+ "src/index.ts",
+ "export class MyContainer { fetch() { return new Response('ok'); } } export default { fetch() { return new Response('ok'); } };"
+ );
+ writeFileSync("Dockerfile", "FROM scratch");
+ writeFileSync(
+ "wrangler.json",
+ JSON.stringify({
+ name: "test-worker",
+ main: "src/index.ts",
+ compatibility_date: "2025-01-01",
+ previews: {
+ durable_objects: {
+ bindings: [{ name: "MY_CONTAINER", class_name: "MyContainer" }],
+ },
+ containers: [
+ {
+ class_name: "MyContainer",
+ image: "./Dockerfile",
+ },
+ ],
+ },
+ })
+ );
+ vi.spyOn(user, "getScopes").mockReturnValue(["containers:write"]);
+ let createDeploymentCalls = 0;
+ msw.use(
+ http.get(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId`,
+ () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 10025, message: "Preview not found" }],
+ },
+ { status: 404 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews`,
+ () =>
+ HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "preview-id-no-docker",
+ name: "test-preview",
+ slug: "test-preview",
+ urls: [],
+ worker_name: "test-worker",
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ )
+ ),
+ http.post(
+ `*/accounts/:accountId/workers/workers/:workerId/previews/:previewId/deployments`,
+ () => {
+ createDeploymentCalls++;
+ return HttpResponse.json(
+ {
+ success: true,
+ result: {
+ id: "deployment-id-no-docker",
+ env: {},
+ created_on: new Date().toISOString(),
+ },
+ },
+ { status: 201 }
+ );
+ }
+ )
+ );
+ let errorMessage = "";
+ try {
+ await runWrangler("preview --name test-preview");
+ } catch (e) {
+ errorMessage = (e as Error).message;
+ }
+ expect(errorMessage).not.toBe("");
+ expect(errorMessage).toContain(
+ "The Docker CLI is needed to build the configured image before creating a preview but could not be launched."
+ );
+ expect(errorMessage).toContain(
+ 'set "image" to a prebuilt registry image instead of a Dockerfile path'
+ );
+ expect(createDeploymentCalls).toBe(0);
+ });
+
+ test("should fail before creating the preview deployment when the API token lacks the containers scope", async ({
+ expect,
+ }) => {
+ writeContainerPreviewConfig();
+ // The other container tests grant `containers:write`. Withholding it is
+ // the point of this one: applying containers checks the scope too, but
+ // not until the deployment is already live.
+ vi.spyOn(user, "getScopes").mockReturnValue(["workers:write"]);
+ const onCreateDeployment = vi.fn();
+ mockContainerPreview({
+ previewId: "preview-id-no-scope",
+ onCreateDeployment,
+ });
+ await expect(runWrangler("preview --name test-preview")).rejects.toThrow(
+ /You need 'containers:write'/
+ );
+ expect(onCreateDeployment).not.toHaveBeenCalled();
+ });
+
+ test("should warn that the preview is live when its containers fail to deploy, and still surface the error", async ({
+ expect,
+ }) => {
+ writeContainerPreviewConfig();
+ vi.spyOn(user, "getScopes").mockReturnValue(["containers:write"]);
+ mockContainerPreview({
+ previewId: "preview-id-app-fails",
+ deploymentEnv: {
+ MY_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "preview-do-ns-id",
+ },
+ },
+ });
+ msw.use(
+ http.get("*/me", () =>
+ HttpResponse.json({
+ success: true,
+ result: {
+ external_account_id: "some-account-id",
+ limits: { disk_mb_per_deployment: 2000 },
+ },
+ })
+ ),
+ http.get("*/applications", () =>
+ HttpResponse.json({ success: true, result: [] })
+ ),
+ http.post("*/applications", () =>
+ HttpResponse.json(
+ {
+ success: false,
+ result: null,
+ errors: [{ code: 2000, message: "internal" }],
+ },
+ { status: 500 }
+ )
+ )
+ );
+ // The deployment is already live once the container apply fails, so the
+ // warning has to say so. The underlying error must still propagate, or
+ // the command would exit 0 on a half-built preview.
+ await expect(runWrangler("preview --name test-preview")).rejects.toThrow(
+ /Error creating application/
+ );
+ // `logger.warn` wraps at 100 columns, so compare on collapsed
+ // whitespace rather than the wrapped form.
+ expect(std.warn.replace(/\s+/g, " ")).toContain(
+ 'The preview "test-preview" was created, but its containers did not come up.'
+ );
+ });
+
test("should include source maps in deployment modules when upload_source_maps is enabled", async ({
expect,
}) => {
diff --git a/packages/wrangler/src/__tests__/preview/containers.test.ts b/packages/wrangler/src/__tests__/preview/containers.test.ts
new file mode 100644
index 00000000000..29d7b6bfc44
--- /dev/null
+++ b/packages/wrangler/src/__tests__/preview/containers.test.ts
@@ -0,0 +1,227 @@
+import { SchedulingPolicy } from "@cloudflare/containers-shared";
+import { defaultWranglerConfig } from "@cloudflare/workers-utils";
+import { beforeEach, describe, test, vi } from "vitest";
+import { logger } from "../../logger";
+import { deployPreviewContainers } from "../../preview/containers";
+import { mockConsoleMethods } from "../helpers/mock-console";
+import type {
+ ContainerNormalizedConfig,
+ SharedContainerConfig,
+} from "@cloudflare/containers-shared";
+import type { DeploymentResource } from "@cloudflare/deploy-helpers";
+import type { Config } from "@cloudflare/workers-utils";
+
+vi.mock("../../cloudchamber/common", async (importOriginal) => ({
+ ...(await importOriginal()),
+ fillOpenAPIConfiguration: vi.fn(),
+}));
+vi.mock("../../containers/build", () => ({ buildContainer: vi.fn() }));
+vi.mock("../../containers/deploy", () => ({
+ apply: vi.fn(),
+ listDurableObjects: vi.fn(),
+}));
+
+const { buildContainer } = await import("../../containers/build");
+const { apply, listDurableObjects } = await import("../../containers/deploy");
+
+const PREVIEW_APP_NAME = "test-worker_my-feature_MyContainer";
+const ACCOUNT_ID = "some-account-id";
+
+function containerConfig(
+ overrides: Partial = {}
+): ContainerNormalizedConfig {
+ return {
+ name: PREVIEW_APP_NAME,
+ class_name: "MyContainer",
+ max_instances: 0,
+ scheduling_policy: SchedulingPolicy.DEFAULT,
+ rollout_step_percentage: [90, 10],
+ rollout_kind: "full_auto",
+ rollout_active_grace_period: 0,
+ constraints: {},
+ instance_type: "dev",
+ dockerfile: "/abs/path/Dockerfile",
+ image_build_context: "/abs/path",
+ ...overrides,
+ } as ContainerNormalizedConfig;
+}
+
+const deployment = {
+ id: "deployment-id",
+ env: {
+ MY_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "preview-do-ns-id",
+ },
+ },
+} as unknown as DeploymentResource;
+
+describe("deployPreviewContainers", () => {
+ const std = mockConsoleMethods();
+
+ beforeEach(() => {
+ vi.mocked(buildContainer).mockReset();
+ vi.mocked(apply).mockReset();
+ vi.mocked(listDurableObjects).mockReset();
+ vi.mocked(listDurableObjects).mockResolvedValue([]);
+ vi.mocked(buildContainer).mockResolvedValue({ newTag: "built:tag" });
+ });
+
+ // Docker rejects uppercase characters in an image repository name, but the
+ // Cloudchamber application name must stay byte-identical to the name the
+ // control plane generates, which embeds the PascalCase DO class name.
+ test("should lowercase the image repository name while preserving the application name", async ({
+ expect,
+ }) => {
+ const container = containerConfig();
+ const config = {
+ ...defaultWranglerConfig,
+ containers: [container],
+ } as unknown as Config;
+
+ await deployPreviewContainers(config, [container], deployment, ACCOUNT_ID, {
+ quiet: false,
+ });
+
+ expect(vi.mocked(buildContainer).mock.calls[0]?.[0]).toMatchObject({
+ name: "test-worker_my-feature_mycontainer",
+ });
+ expect(vi.mocked(apply).mock.calls[0]?.[1]).toMatchObject({
+ name: PREVIEW_APP_NAME,
+ });
+ });
+
+ test("should lowercase an uppercase preview slug in the image repository name", async ({
+ expect,
+ }) => {
+ const container = containerConfig({
+ name: "test-worker_Feature-MyBranch_MyContainer",
+ });
+ const config = {
+ ...defaultWranglerConfig,
+ containers: [container],
+ } as unknown as Config;
+
+ await deployPreviewContainers(config, [container], deployment, ACCOUNT_ID, {
+ quiet: false,
+ });
+
+ expect(vi.mocked(buildContainer).mock.calls[0]?.[0]).toMatchObject({
+ name: "test-worker_feature-mybranch_mycontainer",
+ });
+ });
+
+ // The image push target is derived from the compliance region, so an account
+ // in a restricted region must not fall back to the public registry.
+ test("should forward the compliance region to the image build", async ({
+ expect,
+ }) => {
+ const container = containerConfig();
+ const config = {
+ ...defaultWranglerConfig,
+ compliance_region: "fedramp_high",
+ containers: [container],
+ } as unknown as Config;
+
+ await deployPreviewContainers(config, [container], deployment, ACCOUNT_ID, {
+ quiet: false,
+ });
+
+ expect(vi.mocked(buildContainer).mock.calls[0]?.[5]).toMatchObject({
+ compliance_region: "fedramp_high",
+ });
+ });
+
+ // A cross-script binding names a Durable Object owned by another Worker, so
+ // its namespace must never be selected for this preview's container. The
+ // class-name-keyed map would otherwise let it overwrite the local entry.
+ test("should ignore a cross-script Durable Object binding that shares a class name", async ({
+ expect,
+ }) => {
+ const container = containerConfig();
+ const config = {
+ ...defaultWranglerConfig,
+ containers: [container],
+ } as unknown as Config;
+ const deploymentWithCrossScriptBinding = {
+ id: "deployment-id",
+ env: {
+ MY_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "preview-do-ns-id",
+ },
+ // Same class name, implemented by another Worker. Declared last so
+ // an unfiltered map would end up holding this namespace_id.
+ FOREIGN_CONTAINER: {
+ type: "durable_object_namespace",
+ class_name: "MyContainer",
+ namespace_id: "other-worker-do-ns-id",
+ script_name: "owner-worker",
+ },
+ },
+ } as unknown as DeploymentResource;
+
+ await deployPreviewContainers(
+ config,
+ [container],
+ deploymentWithCrossScriptBinding,
+ ACCOUNT_ID,
+ { quiet: false }
+ );
+
+ expect(vi.mocked(apply).mock.calls[0]?.[0]).toMatchObject({
+ durable_object_namespace_id: "preview-do-ns-id",
+ });
+ });
+
+ test("should not build an image for a container configured with an image URI", async ({
+ expect,
+ }) => {
+ const container = {
+ ...containerConfig(),
+ dockerfile: undefined,
+ image_build_context: undefined,
+ image_uri: "registry.cloudflare.com/some-account-id/test:latest",
+ } as unknown as ContainerNormalizedConfig;
+ delete (container as Record).dockerfile;
+ const config = {
+ ...defaultWranglerConfig,
+ containers: [container],
+ } as unknown as Config;
+
+ await deployPreviewContainers(config, [container], deployment, ACCOUNT_ID, {
+ quiet: false,
+ });
+
+ expect(buildContainer).not.toHaveBeenCalled();
+ expect(vi.mocked(apply).mock.calls[0]?.[0]).toMatchObject({
+ imageRef: {
+ newTag: "registry.cloudflare.com/some-account-id/test:latest",
+ },
+ });
+ });
+
+ // `logger` drops a message above its level instead of redirecting it, so a
+ // level of `error` discards warnings rather than leaving them on stderr.
+ test("should keep warnings on stderr while suppressing stdout", async ({
+ expect,
+ }) => {
+ const container = containerConfig();
+ const config = {
+ ...defaultWranglerConfig,
+ containers: [container],
+ } as unknown as Config;
+ vi.mocked(apply).mockImplementation(async () => {
+ logger.warn("a container warning");
+ });
+
+ await deployPreviewContainers(config, [container], deployment, ACCOUNT_ID, {
+ quiet: true,
+ });
+
+ expect(std.warn).toContain("a container warning");
+ expect(std.out).toBe("");
+ });
+});
diff --git a/packages/wrangler/src/__tests__/unstable-get-miniflare-worker-options.test.ts b/packages/wrangler/src/__tests__/unstable-get-miniflare-worker-options.test.ts
index a12bcc71e0d..1a4dda10080 100644
--- a/packages/wrangler/src/__tests__/unstable-get-miniflare-worker-options.test.ts
+++ b/packages/wrangler/src/__tests__/unstable-get-miniflare-worker-options.test.ts
@@ -170,7 +170,7 @@ describe("unstable_getMiniflareWorkerOptions", () => {
const { workerOptions } =
unstable_getMiniflareWorkerOptions("./wrangler.json");
// Without this, `ctx.access` resolves to `undefined` under
- // @cloudflare/vitest-pool-workers even though `wrangler dev` honours it.
+ // @cloudflare/vitest-plugin even though `wrangler dev` honours it.
expect(workerOptions.access).toEqual({
aud: "my-app-aud-tag",
identity: {
diff --git a/packages/wrangler/src/api/integrations/platform/index.ts b/packages/wrangler/src/api/integrations/platform/index.ts
index 6830ae765e2..5ecaff0a90e 100644
--- a/packages/wrangler/src/api/integrations/platform/index.ts
+++ b/packages/wrangler/src/api/integrations/platform/index.ts
@@ -66,7 +66,7 @@ export function unstable_getDevCompatibilityDate() {
*
* `dev.host` is intentionally NOT consulted here: the `dev` config block is
* specific to `wrangler dev` and should not influence behaviour under
- * `@cloudflare/vite-plugin`, `@cloudflare/vitest-pool-workers`, or
+ * `@cloudflare/vite-plugin`, `@cloudflare/vitest-plugin`, or
* `getPlatformProxy`. Users who need a custom `CF-Worker` host in those
* environments should configure a `route` instead.
*/
diff --git a/packages/wrangler/src/containers/deploy.ts b/packages/wrangler/src/containers/deploy.ts
index 2eb8c484a38..edc7c890f6f 100644
--- a/packages/wrangler/src/containers/deploy.ts
+++ b/packages/wrangler/src/containers/deploy.ts
@@ -191,14 +191,20 @@ async function fetchUploadedVersion(
throw new Error("Unable to fetch uploaded Worker version");
}
-type DurableObjectNamespace = {
+export type DurableObjectNamespace = {
id: string;
class: string;
name: string;
script: string;
useSqlite: boolean;
+ /**
+ * Set when the namespace belongs to a Worker preview. For those, `script` is
+ * the parent Worker's name, so `preview.id` is what distinguishes a
+ * preview's namespace from the parent's and from other previews'.
+ */
+ preview?: { id: string; slug: string; name: string };
};
-async function listDurableObjects(
+export async function listDurableObjects(
complianceConfig: ComplianceConfig,
accountId: string
): Promise {
diff --git a/packages/wrangler/src/preview/containers.ts b/packages/wrangler/src/preview/containers.ts
new file mode 100644
index 00000000000..3ba1ed4f754
--- /dev/null
+++ b/packages/wrangler/src/preview/containers.ts
@@ -0,0 +1,170 @@
+import { getLogLevel, setLogLevel } from "@cloudflare/cli-shared-helpers";
+import { getDockerPath, UserError } from "@cloudflare/workers-utils";
+import { fillOpenAPIConfiguration } from "../cloudchamber/common";
+import { containersScope } from "../containers";
+import { buildContainer } from "../containers/build";
+import { apply, listDurableObjects } from "../containers/deploy";
+import { runWithLogLevel } from "../logger";
+import type { DurableObjectNamespace } from "../containers/deploy";
+import type { ContainerNormalizedConfig } from "@cloudflare/containers-shared";
+import type { DeploymentResource } from "@cloudflare/deploy-helpers";
+import type { Config } from "@cloudflare/workers-utils";
+
+/**
+ * Confirm the API token carries the `containers` scope. `applyPreviewContainers`
+ * checks this too, but not until the preview deployment exists, so `preview()`
+ * calls this before creating the deployment.
+ */
+export async function verifyContainersScope(
+ scopedConfig: Config
+): Promise {
+ await fillOpenAPIConfiguration(scopedConfig, containersScope);
+}
+
+/**
+ * Build and apply the container applications validated by
+ * `@cloudflare/deploy-helpers`'s `preview()` (via `getNormalizedContainerOptions`).
+ * For each normalised container, register or update a Cloudchamber
+ * application bound to the DO namespace_id resolved by the preview
+ * deployment API.
+ *
+ * The DO namespace for a preview is provisioned by the workers control plane.
+ * For a bound Durable Object it comes back in the create-deployment response,
+ * so we read it from `deployment.env` rather than re-fetching. A Durable Object
+ * reached only through `ctx.exports` has no binding to carry it, so those fall
+ * back to the namespaces list API.
+ */
+export async function deployPreviewContainers(
+ scopedConfig: Config,
+ normalisedContainerConfig: ContainerNormalizedConfig[],
+ deployment: DeploymentResource,
+ accountId: string,
+ options: { quiet: boolean }
+): Promise {
+ if (!options.quiet) {
+ return applyPreviewContainers(
+ scopedConfig,
+ normalisedContainerConfig,
+ deployment,
+ accountId
+ );
+ }
+
+ // Two independent log levels gate stdout here. `logger` reads an
+ // AsyncLocalStorage override and `@cloudflare/cli`'s `logRaw` reads module
+ // level state, so lowering one leaves the other printing. `logger` drops
+ // messages above its level instead of redirecting them, so it stays at
+ // `warn` to keep warnings and errors on stderr. `logRaw` only writes to
+ // stdout, so it can go lower.
+ const previousLogLevel = getLogLevel();
+ setLogLevel("error");
+ try {
+ return await runWithLogLevel("warn", () =>
+ applyPreviewContainers(
+ scopedConfig,
+ normalisedContainerConfig,
+ deployment,
+ accountId
+ )
+ );
+ } finally {
+ setLogLevel(previousLogLevel);
+ }
+}
+
+/**
+ * Resolve each normalised container's Durable Object namespace and build then
+ * apply its Cloudchamber application.
+ *
+ * @param scopedConfig - Synthetic config scoped to the preview's containers.
+ * @param normalisedContainerConfig - Containers to build and apply.
+ * @param deployment - The preview deployment the containers belong to.
+ * @param accountId - Account the preview belongs to.
+ * @returns A promise that resolves once every container has been applied.
+ */
+async function applyPreviewContainers(
+ scopedConfig: Config,
+ normalisedContainerConfig: ContainerNormalizedConfig[],
+ deployment: DeploymentResource,
+ accountId: string
+): Promise {
+ await fillOpenAPIConfiguration(scopedConfig, containersScope);
+ const dockerPath = getDockerPath();
+
+ // Skip bindings carrying `script_name`. Those name a Durable Object
+ // implemented by another Worker, which owns its own container application,
+ // so their namespace belongs to that Worker. A preview may bind the same
+ // class name both locally and cross-script, and since this map is keyed on
+ // class name alone, an unfiltered cross-script entry could overwrite the
+ // preview's own namespace_id and attach the container to the wrong storage.
+ // `wrangler deploy` applies the same restriction (see containers/deploy.ts).
+ const classNameToNamespaceId = new Map();
+ for (const binding of Object.values(deployment.env ?? {})) {
+ if (
+ binding.type === "durable_object_namespace" &&
+ binding.class_name &&
+ binding.namespace_id &&
+ binding.script_name === undefined
+ ) {
+ classNameToNamespaceId.set(binding.class_name, binding.namespace_id);
+ }
+ }
+
+ // Only bound Durable Objects appear in `deployment.env`. A class reached
+ // solely through `ctx.exports` still has a namespace provisioned for the
+ // preview, so fall back to the namespaces list and match on it, the same way
+ // `wrangler deploy` resolves an unbound Durable Object.
+ let allNamespaces: DurableObjectNamespace[] | undefined;
+
+ for (const container of normalisedContainerConfig) {
+ let namespaceId = classNameToNamespaceId.get(container.class_name);
+ if (!namespaceId) {
+ allNamespaces ??= await listDurableObjects(scopedConfig, accountId);
+ // `script` is the parent Worker's name for every one of its previews,
+ // so match on the preview id to avoid attaching this container to the
+ // parent's namespace or to another preview's.
+ namespaceId = allNamespaces.find(
+ (namespace) =>
+ namespace.class === container.class_name &&
+ namespace.preview?.id === deployment.preview_id
+ )?.id;
+ }
+ if (!namespaceId) {
+ throw new UserError(
+ `Could not deploy preview container application "${container.name}": no Durable Object namespace was found for class "${container.class_name}" in preview "${deployment.preview_name}". This is likely a bug in Wrangler. Please file an issue.`,
+ {
+ telemetryMessage: "preview containers deploy missing do namespace id",
+ }
+ );
+ }
+
+ let imageRef;
+ if ("dockerfile" in container) {
+ // Docker rejects uppercase characters in an image repository name, and
+ // a preview application name embeds the Durable Object class name
+ // verbatim, which is conventionally PascalCase. Lowercase the name for
+ // the local image tag only. `apply` below needs the exact application
+ // name, which the control plane matches on when reconciling previews.
+ imageRef = await buildContainer(
+ { ...container, name: container.name.toLowerCase() },
+ deployment.id,
+ false,
+ dockerPath,
+ // `preview()` already verified Docker before creating the
+ // deployment, so skip the redundant per-container check.
+ false,
+ // Selects the managed registry for the account's compliance
+ // region. Without it the push defaults to the public registry.
+ scopedConfig
+ );
+ } else {
+ imageRef = { newTag: container.image_uri };
+ }
+
+ await apply(
+ { imageRef, durable_object_namespace_id: namespaceId },
+ container,
+ scopedConfig
+ );
+ }
+}
diff --git a/packages/wrangler/src/preview/preview.ts b/packages/wrangler/src/preview/preview.ts
index 9b85b5aba06..b60194c7115 100644
--- a/packages/wrangler/src/preview/preview.ts
+++ b/packages/wrangler/src/preview/preview.ts
@@ -1,12 +1,14 @@
import { preview } from "@cloudflare/deploy-helpers";
import { getWranglerTmpDir } from "@cloudflare/workers-utils";
import { getAssetsOptions } from "../assets";
+import { getNormalizedContainerOptions } from "../containers/config";
import { createCommand } from "../core/create-command";
import { getEntry } from "../deployment-bundle/entry";
import { buildWorker } from "../deployment-bundle/maybe-build-worker";
import { cleanupDestination } from "../deployment-bundle/merge-config-args";
import { writeOutput } from "../output";
import { requireAuth } from "../user";
+import { deployPreviewContainers, verifyContainersScope } from "./containers";
export const previewCommand = createCommand({
metadata: {
@@ -98,7 +100,12 @@ export const previewCommand = createCommand({
args,
config,
buildResult,
- assetsOptions
+ assetsOptions,
+ {
+ getNormalizedContainerOptions,
+ deployPreviewContainers,
+ verifyContainersScope,
+ }
);
cleanupDestination(destination);
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index cfae6696741..221d52fa819 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,8 +10,8 @@ catalogs:
specifier: 0.13.3
version: 0.13.3
'@cloudflare/workers-types':
- specifier: ^5.20260816.1
- version: 5.20260817.1
+ specifier: ^5.20260819.1
+ version: 5.20260819.1
'@hey-api/openapi-ts':
specifier: 0.94.0
version: 0.94.0
@@ -85,8 +85,8 @@ catalogs:
specifier: 4.1.0
version: 4.1.0
workerd:
- specifier: 1.20260816.1
- version: 1.20260816.1
+ specifier: 1.20260819.1
+ version: 1.20260819.1
ws:
specifier: 8.21.0
version: 8.21.0
@@ -191,7 +191,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@fixture/shared':
specifier: workspace:*
version: link:../shared
@@ -216,9 +216,9 @@ importers:
'@cloudflare/puppeteer':
specifier: ^1.0.4
version: 1.0.4
- '@cloudflare/vitest-pool-workers':
+ '@cloudflare/vitest-plugin':
specifier: workspace:*
- version: link:../../packages/vitest-pool-workers
+ version: link:../../packages/vitest-plugin
'@types/node':
specifier: 22.15.17
version: 22.15.17
@@ -239,7 +239,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/node':
specifier: 22.15.17
version: 22.15.17
@@ -266,7 +266,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@playwright/test':
specifier: catalog:default
version: 1.60.0
@@ -296,7 +296,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -317,7 +317,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -341,7 +341,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -377,7 +377,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
vitest:
specifier: catalog:default
version: 4.1.0(@opentelemetry/api@1.9.1)(@types/node@22.15.17)(@vitest/ui@4.1.0)(msw@2.14.6(@types/node@22.15.17)(typescript@5.9.3))(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))
@@ -392,7 +392,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
undici:
specifier: catalog:default
version: 7.29.0
@@ -407,7 +407,7 @@ importers:
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/mimetext':
specifier: ^2.0.4
version: 2.0.4
@@ -446,7 +446,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@fixture/shared':
specifier: workspace:*
version: link:../shared
@@ -470,7 +470,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/jest-image-snapshot':
specifier: ^6.4.0
version: 6.4.0
@@ -497,7 +497,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
miniflare:
specifier: workspace:*
version: link:../../packages/miniflare
@@ -567,7 +567,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/is-even':
specifier: ^1.0.2
version: 1.0.2
@@ -585,11 +585,11 @@ importers:
dependencies:
'@sentry/cloudflare':
specifier: ^10
- version: 10.50.0(@cloudflare/workers-types@5.20260817.1)
+ version: 10.50.0(@cloudflare/workers-types@5.20260819.1)
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
vitest:
specifier: catalog:default
version: 4.1.0(@opentelemetry/api@1.9.1)(@types/node@22.15.17)(@vitest/ui@4.1.0)(msw@2.14.6(@types/node@22.15.17)(typescript@5.9.3))(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))
@@ -620,7 +620,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -648,7 +648,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/node':
specifier: 22.15.17
version: 22.15.17
@@ -678,7 +678,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
undici:
specifier: catalog:default
version: 7.29.0
@@ -696,7 +696,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/debug':
specifier: 4.1.12
version: 4.1.12
@@ -729,7 +729,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -754,7 +754,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@fixture/pages-plugin':
specifier: workspace:*
version: link:../pages-plugin-example
@@ -778,7 +778,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -817,7 +817,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -838,7 +838,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -859,7 +859,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -877,7 +877,7 @@ importers:
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
is-odd:
specifier: ^3.0.1
version: 3.0.1
@@ -896,7 +896,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@fixture/pages-plugin':
specifier: workspace:*
version: link:../pages-plugin-example
@@ -956,7 +956,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -977,7 +977,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -1133,19 +1133,19 @@ importers:
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
fixtures/rules-app:
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
fixtures/secrets-store:
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
wrangler:
specifier: workspace:*
version: link:../../packages/wrangler
@@ -1172,7 +1172,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/is-even':
specifier: ^1.0.2
version: 1.0.2
@@ -1196,7 +1196,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
vitest:
specifier: catalog:default
version: 4.1.0(@opentelemetry/api@1.9.1)(@types/node@22.15.17)(@vitest/ui@4.1.0)(msw@2.14.6(@types/node@22.15.17)(typescript@5.9.3))(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))
@@ -1211,7 +1211,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
esbuild:
specifier: catalog:default
version: 0.28.1
@@ -1225,20 +1225,20 @@ importers:
specifier: catalog:default
version: 4.4.3
- fixtures/vitest-pool-workers-examples:
+ fixtures/vitest-plugin-examples:
devDependencies:
'@better-auth/stripe':
specifier: ^1.4.6
- version: 1.5.4(986e3273ca28c1e9d677bddfbfb627ab)
+ version: 1.5.4(335b98876102d5bb664db8ad11bb8eac)
'@cloudflare/containers':
specifier: ^0.2.2
version: 0.2.2
- '@cloudflare/vitest-pool-workers':
+ '@cloudflare/vitest-plugin':
specifier: workspace:*
- version: link:../../packages/vitest-pool-workers
+ version: link:../../packages/vitest-plugin
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@microlabs/otel-cf-workers':
specifier: 1.0.0-rc.45
version: 1.0.0-rc.45(@opentelemetry/api@1.9.1)
@@ -1256,19 +1256,19 @@ importers:
version: 3.2.6
better-auth:
specifier: ^1.4.6
- version: 1.5.4(@cloudflare/workers-types@5.20260817.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260817.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)))(mongodb@7.1.0)(mysql2@3.15.3)(pg@8.16.3)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@4.1.0)
+ version: 1.5.4(@cloudflare/workers-types@5.20260819.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260819.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)))(mongodb@7.1.0)(mysql2@3.15.3)(pg@8.16.3)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@4.1.0)
cjs-wasm-module-dep:
specifier: file:./module-resolution/vendor/cjs-wasm-module-dep
- version: file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep
+ version: file:fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep
discord-api-types:
specifier: 0.37.98
version: 0.37.98
esm-dep:
specifier: file:./module-resolution/vendor/esm-dep
- version: file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep
+ version: file:fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep
ext-dep:
specifier: file:./module-resolution/vendor/ext-dep
- version: file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/ext-dep
+ version: file:fixtures/vitest-plugin-examples/module-resolution/vendor/ext-dep
jose:
specifier: ^5.9.3
version: 5.9.3
@@ -1301,16 +1301,16 @@ importers:
version: 4.1.0(@opentelemetry/api@1.9.1)(@types/node@22.15.17)(@vitest/ui@4.1.0)(msw@2.14.6(@types/node@22.15.17)(typescript@5.8.3))(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))
wasm-module-dep:
specifier: file:./module-resolution/vendor/wasm-module-dep
- version: file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep
+ version: file:fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep
wrangler:
specifier: workspace:*
version: link:../../packages/wrangler
- fixtures/vitest-pool-workers-remote-bindings:
+ fixtures/vitest-plugin-remote-bindings:
devDependencies:
- '@cloudflare/vitest-pool-workers':
+ '@cloudflare/vitest-plugin':
specifier: workspace:*
- version: link:../../packages/vitest-pool-workers
+ version: link:../../packages/vitest-plugin
typescript:
specifier: catalog:default
version: 5.8.3
@@ -1330,7 +1330,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@fixture/shared':
specifier: workspace:*
version: link:../shared
@@ -1385,7 +1385,7 @@ importers:
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
wrangler:
specifier: workspace:*
version: link:../../packages/wrangler
@@ -1397,7 +1397,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
miniflare:
specifier: workspace:*
version: link:../../packages/miniflare
@@ -1413,9 +1413,9 @@ importers:
fixtures/worker-with-unsafe-external-plugin:
devDependencies:
- '@cloudflare/vitest-pool-workers':
+ '@cloudflare/vitest-plugin':
specifier: workspace:*
- version: link:../../packages/vitest-pool-workers
+ version: link:../../packages/vitest-plugin
'@cloudflare/workers-tsconfig':
specifier: workspace:*
version: link:../../packages/workers-tsconfig
@@ -1434,9 +1434,9 @@ importers:
fixtures/workers-shared-asset-config:
devDependencies:
- '@cloudflare/vitest-pool-workers':
+ '@cloudflare/vitest-plugin':
specifier: workspace:*
- version: link:../../packages/vitest-pool-workers
+ version: link:../../packages/vitest-plugin
'@cloudflare/workers-shared':
specifier: workspace:*
version: link:../../packages/workers-shared
@@ -1445,7 +1445,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
run-script-os:
specifier: ^1.1.6
version: 1.1.6
@@ -1469,7 +1469,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -1490,7 +1490,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -1511,7 +1511,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -1532,7 +1532,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -1553,7 +1553,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/jest-image-snapshot':
specifier: ^6.4.0
version: 6.4.0
@@ -1586,7 +1586,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/node':
specifier: 22.15.17
version: 22.15.17
@@ -1613,7 +1613,7 @@ importers:
version: link:../../packages/workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -1631,7 +1631,7 @@ importers:
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -1655,10 +1655,10 @@ importers:
version: link:../vite-plugin-cloudflare
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@flue/cli':
specifier: ^2.0.3
- version: 2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(@types/node@22.15.17)(esbuild@0.28.1)(hono@4.12.32)(jiti@2.6.1)(react@19.2.4)(rolldown@1.2.3)(tsx@4.21.0)(typescript@5.9.3)(ws@8.21.0)(yaml@2.9.0)(zod@4.4.3)
+ version: 2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(@types/node@22.15.17)(esbuild@0.28.1)(hono@4.12.32)(jiti@2.6.1)(react@19.2.4)(rolldown@1.2.3)(tsx@4.21.0)(typescript@5.9.3)(ws@8.21.0)(yaml@2.9.0)(zod@4.4.3)
'@flue/github':
specifier: ^2.0.3
version: 2.0.3(@flue/runtime@2.0.3(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(typescript@5.9.3)(ws@8.21.0)(zod@4.4.3))
@@ -1667,13 +1667,13 @@ importers:
version: 2.0.3(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(typescript@5.9.3)(ws@8.21.0)(zod@4.4.3)
'@flue/vite':
specifier: ^2.0.3
- version: 2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(hono@4.12.32)(react@19.2.4)(rolldown@1.2.3)(typescript@5.9.3)(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(ws@8.21.0)(zod@4.4.3)
+ version: 2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(hono@4.12.32)(react@19.2.4)(rolldown@1.2.3)(typescript@5.9.3)(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(ws@8.21.0)(zod@4.4.3)
'@octokit/rest':
specifier: ^22.0.1
version: 22.0.1
agents:
specifier: ^0.20.1
- version: 0.20.1(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(react@19.2.4)(rolldown@1.2.3)(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(zod@4.4.3)
+ version: 0.20.1(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(react@19.2.4)(rolldown@1.2.3)(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(zod@4.4.3)
hono:
specifier: 4.12.32
version: 4.12.32
@@ -1750,7 +1750,7 @@ importers:
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../workers-utils
@@ -1836,7 +1836,7 @@ importers:
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../workers-utils
@@ -1899,7 +1899,7 @@ importers:
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../workers-utils
@@ -2107,7 +2107,7 @@ importers:
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@octokit/types':
specifier: ^13.8.0
version: 13.8.0
@@ -2123,12 +2123,12 @@ importers:
packages/edge-preview-authenticated-proxy:
devDependencies:
- '@cloudflare/vitest-pool-workers':
+ '@cloudflare/vitest-plugin':
specifier: workspace:*
- version: link:../vitest-pool-workers
+ version: link:../vitest-plugin
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../workers-utils
@@ -2152,7 +2152,7 @@ importers:
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../workers-utils
@@ -2179,10 +2179,10 @@ importers:
devDependencies:
'@cloudflare/vitest-pool-workers':
specifier: catalog:default
- version: 0.13.3(@cloudflare/workers-types@5.20260817.1)(@vitest/runner@4.1.0)(@vitest/snapshot@4.1.0)(vitest@4.1.0)
+ version: 0.13.3(@cloudflare/workers-types@5.20260819.1)(@vitest/runner@4.1.0)(@vitest/snapshot@4.1.0)(vitest@4.1.0)
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/mime':
specifier: ^3.0.4
version: 3.0.4
@@ -2333,7 +2333,7 @@ importers:
version: 7.29.0
workerd:
specifier: catalog:default
- version: 1.20260816.1
+ version: 1.20260819.1
ws:
specifier: catalog:default
version: 8.21.0
@@ -2370,7 +2370,7 @@ importers:
version: link:../workers-shared
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../workers-utils
@@ -2570,7 +2570,7 @@ importers:
devDependencies:
'@cloudflare/vitest-pool-workers':
specifier: catalog:default
- version: 0.13.3(@cloudflare/workers-types@5.20260817.1)(@vitest/runner@4.1.0)(@vitest/snapshot@4.1.0)(vitest@4.1.0)
+ version: 0.13.3(@cloudflare/workers-types@5.20260819.1)(@vitest/runner@4.1.0)(@vitest/snapshot@4.1.0)(vitest@4.1.0)
'@cloudflare/workers-shared':
specifier: workspace:*
version: link:../workers-shared
@@ -2579,7 +2579,7 @@ importers:
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
concurrently:
specifier: ^8.2.2
version: 8.2.2
@@ -2607,7 +2607,7 @@ importers:
devDependencies:
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../workers-utils
@@ -2641,7 +2641,7 @@ importers:
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/node':
specifier: 22.15.17
version: 22.15.17
@@ -2665,7 +2665,7 @@ importers:
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
esbuild:
specifier: catalog:default
version: 0.28.1
@@ -2705,7 +2705,7 @@ importers:
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/ws':
specifier: ^8.5.13
version: 8.5.13
@@ -2732,7 +2732,7 @@ importers:
version: link:../miniflare
workerd:
specifier: catalog:default
- version: 1.20260816.1
+ version: 1.20260819.1
devDependencies:
'@cloudflare/workers-tsconfig':
specifier: workspace:*
@@ -2839,7 +2839,7 @@ importers:
version: 2.0.0-rc.24
workerd:
specifier: catalog:default
- version: 1.20260816.1
+ version: 1.20260819.1
wrangler:
specifier: workspace:*
version: link:../wrangler
@@ -2873,7 +2873,7 @@ importers:
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../workers-utils
@@ -2981,7 +2981,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3002,7 +3002,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3023,7 +3023,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3044,7 +3044,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3065,7 +3065,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3086,7 +3086,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3107,7 +3107,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3128,7 +3128,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3149,7 +3149,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3170,7 +3170,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3191,7 +3191,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3212,7 +3212,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3233,7 +3233,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3254,7 +3254,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3275,7 +3275,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3296,7 +3296,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3317,7 +3317,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/mimetext':
specifier: ^2.0.4
version: 2.0.4
@@ -3350,7 +3350,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3371,7 +3371,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3392,7 +3392,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3413,7 +3413,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3434,7 +3434,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3455,7 +3455,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3476,7 +3476,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3497,7 +3497,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3518,7 +3518,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@playground/main-resolution-package':
specifier: file:./package
version: file:packages/vite-plugin-cloudflare/playground/main-resolution/package
@@ -3542,7 +3542,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/express':
specifier: ^5.0.1
version: 5.0.1
@@ -3569,7 +3569,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@playground/module-resolution-excludes':
specifier: file:./packages/excludes
version: file:packages/vite-plugin-cloudflare/playground/module-resolution/packages/excludes
@@ -3581,7 +3581,7 @@ importers:
version: file:packages/vite-plugin-cloudflare/playground/module-resolution/packages/requires
'@remix-run/cloudflare':
specifier: 2.12.0
- version: 2.12.0(@cloudflare/workers-types@5.20260817.1)(typescript@5.8.3)
+ version: 2.12.0(@cloudflare/workers-types@5.20260819.1)(typescript@5.8.3)
'@types/react':
specifier: ^18.3.11
version: 18.3.18
@@ -3614,7 +3614,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3635,7 +3635,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@fixture/shared':
specifier: workspace:*
version: link:../../../../fixtures/shared
@@ -3687,7 +3687,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/react':
specifier: 19.1.0
version: 19.1.0
@@ -3708,7 +3708,7 @@ importers:
dependencies:
partyserver:
specifier: ^0.3.3
- version: 0.3.3(@cloudflare/workers-types@5.20260817.1)
+ version: 0.3.3(@cloudflare/workers-types@5.20260819.1)
partysocket:
specifier: ^1.1.16
version: 1.1.16(react@19.2.1)
@@ -3727,7 +3727,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@tailwindcss/vite':
specifier: ^4.2.1
version: 4.2.2(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))
@@ -3763,7 +3763,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3784,7 +3784,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../../../workers-utils
@@ -3824,7 +3824,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/react':
specifier: 19.1.0
version: 19.1.0
@@ -3854,7 +3854,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3875,7 +3875,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3903,7 +3903,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/react':
specifier: 19.1.0
version: 19.1.0
@@ -3936,7 +3936,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3957,7 +3957,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3978,7 +3978,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -3999,7 +3999,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@vitejs/plugin-basic-ssl':
specifier: ^2.2.0
version: 2.2.0(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))
@@ -4023,7 +4023,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -4044,7 +4044,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -4065,7 +4065,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -4086,7 +4086,7 @@ importers:
version: link:../../../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
typescript:
specifier: catalog:default
version: 5.8.3
@@ -4097,7 +4097,7 @@ importers:
specifier: workspace:*
version: link:../../../wrangler
- packages/vitest-pool-workers:
+ packages/vitest-plugin:
dependencies:
cjs-module-lexer:
specifier: 1.2.3
@@ -4126,7 +4126,7 @@ importers:
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../workers-utils
@@ -4138,7 +4138,7 @@ importers:
version: 22.15.17
'@types/semver':
specifier: ^7.5.1
- version: 7.5.1
+ version: 7.7.1
'@vitest/runner':
specifier: catalog:default
version: 4.1.0
@@ -4159,7 +4159,7 @@ importers:
version: 7.1.0
semver:
specifier: ^7.7.1
- version: 7.7.1
+ version: 7.8.5
tree-kill:
specifier: catalog:default
version: 1.2.2
@@ -4378,13 +4378,13 @@ importers:
devDependencies:
'@cloudflare/vitest-pool-workers':
specifier: catalog:default
- version: 0.13.3(@cloudflare/workers-types@5.20260817.1)(@vitest/runner@4.1.0)(@vitest/snapshot@4.1.0)(vitest@4.1.0)
+ version: 0.13.3(@cloudflare/workers-types@5.20260819.1)(@vitest/runner@4.1.0)(@vitest/snapshot@4.1.0)(vitest@4.1.0)
'@cloudflare/workers-tsconfig':
specifier: workspace:*
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@sentry/cli':
specifier: ^2.37.0
version: 2.41.1(encoding@0.1.13)
@@ -4511,13 +4511,13 @@ importers:
devDependencies:
'@cloudflare/vitest-pool-workers':
specifier: catalog:default
- version: 0.13.3(@cloudflare/workers-types@5.20260817.1)(@vitest/runner@4.1.0)(@vitest/snapshot@4.1.0)(vitest@4.1.0)
+ version: 0.13.3(@cloudflare/workers-types@5.20260819.1)(@vitest/runner@4.1.0)(@vitest/snapshot@4.1.0)(vitest@4.1.0)
'@cloudflare/workers-tsconfig':
specifier: workspace:*
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@types/mime':
specifier: ^3.0.4
version: 3.0.4
@@ -4556,7 +4556,7 @@ importers:
version: 2.0.0-rc.24
workerd:
specifier: catalog:default
- version: 1.20260816.1
+ version: 1.20260819.1
devDependencies:
'@aws-sdk/client-s3':
specifier: ^3.721.0
@@ -4614,7 +4614,7 @@ importers:
version: link:../workers-tsconfig
'@cloudflare/workers-types':
specifier: catalog:default
- version: 5.20260817.1
+ version: 5.20260819.1
'@cloudflare/workers-utils':
specifier: workspace:*
version: link:../workers-utils
@@ -5753,10 +5753,10 @@ packages:
react: ^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0
'@cloudflare/containers@0.2.2':
- resolution: {integrity: sha512-cfTSd7M96Z9NeCiaN4i3FuMb+i2Nzi0HbMuxvMAnUmkXwtWIZCQ3XLqUWQkdCKWNJZ/3BLMInC6ntFvpbTWIpA==}
+ resolution: {integrity: sha512-cfTSd7M96Z9NeCiaN4i3FuMb+i2Nzi0HbMuxvMAnUmkXwtWIZCQ3XLqUWQkdCKWNJZ/3BLMInC6ntFvpbTWIpA==, tarball: https://registry.npmjs.org/@cloudflare/containers/-/containers-0.2.2.tgz}
'@cloudflare/containers@0.3.7':
- resolution: {integrity: sha512-DM9dm3FnIBSyiSJ1FLavKwl/lk3oAmTaynCzZQ9pZR0ncRPquSxkxd8Nu2MFILxmDDsPkxKsSNEh9mHHMty4Fw==}
+ resolution: {integrity: sha512-DM9dm3FnIBSyiSJ1FLavKwl/lk3oAmTaynCzZQ9pZR0ncRPquSxkxd8Nu2MFILxmDDsPkxKsSNEh9mHHMty4Fw==, tarball: https://registry.npmjs.org/@cloudflare/containers/-/containers-0.3.7.tgz}
'@cloudflare/elements@3.0.3':
resolution: {integrity: sha512-s6Sjh+IWJD0xn+4iy6hk/FYwY1gAFLWvpiWUmfDZWrQ09ZOTto8aRwpoEN7jUV6dZCPlCkUqMj4xKwRzDQ72FQ==}
@@ -5906,8 +5906,8 @@ packages:
cpu: [x64]
os: [darwin]
- '@cloudflare/workerd-darwin-64@1.20260816.1':
- resolution: {integrity: sha512-yi7HfTICQn2X5udgIN8hIKnvl37oJsyHkUV9Nkzf3uPZBQbF2E64CZS9eezdu3l0oBcm9awFJyNvfLGI01LpGg==}
+ '@cloudflare/workerd-darwin-64@1.20260819.1':
+ resolution: {integrity: sha512-ACJwnjGrQchXP4VPwA+T34zvkli+cutJ+tmrpIw/OoNLmCSoluWwdccJ54LfUCfvpyUoUz/knOoAFh/N9SWxvw==}
engines: {node: '>=16'}
cpu: [x64]
os: [darwin]
@@ -5924,8 +5924,8 @@ packages:
cpu: [arm64]
os: [darwin]
- '@cloudflare/workerd-darwin-arm64@1.20260816.1':
- resolution: {integrity: sha512-K4iTuQLKe1bKy9PbqAI26mkFJkQbdZjyUEkcsXZqvt0NJnWv89wrlWHZsp56sH9W3Z72qi7pNAWq8Ew3c5zCxg==}
+ '@cloudflare/workerd-darwin-arm64@1.20260819.1':
+ resolution: {integrity: sha512-awa5xoxH+hBM1HB3fkc6sr0LTylGfN6okrsG3wr1rnkh+MOOirNSpYiMxnCSO6CAxbeHcikP9BSFZwLn9SClow==}
engines: {node: '>=16'}
cpu: [arm64]
os: [darwin]
@@ -5942,8 +5942,8 @@ packages:
cpu: [x64]
os: [linux]
- '@cloudflare/workerd-linux-64@1.20260816.1':
- resolution: {integrity: sha512-0vfYLolUFnsqqGHGQrbN0jT1198Qn+P/NS7DCIJ2G5An/fFLDjY14N8MYUuU1Jhkym/0FCz5m1vihRyFqCuUEg==}
+ '@cloudflare/workerd-linux-64@1.20260819.1':
+ resolution: {integrity: sha512-sSKkPPZfycQMdYzjT6UXh92NOrxyi+BEQe4k+KSXCnLi/4nAYqTrZtZyCc/w4iMEX8+z8hAGLPfx5XpZnqsnUA==}
engines: {node: '>=16'}
cpu: [x64]
os: [linux]
@@ -5960,8 +5960,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@cloudflare/workerd-linux-arm64@1.20260816.1':
- resolution: {integrity: sha512-EaK6P7RkmC3NMMDE5lV0xyK+9xfIOjCnpZLqZDwhp6zdWzYJozZ3fDTIDfVmg7OhIZGRzpV4ehkHRAKOnfKGNQ==}
+ '@cloudflare/workerd-linux-arm64@1.20260819.1':
+ resolution: {integrity: sha512-ff9m/v6ncjYLCQUp7+XD9EOIcA989oA37tNRUPuxErlvskubkRlZQoFO1sINZ/rxgigK45/Nh8rFlUS9Smq29w==}
engines: {node: '>=16'}
cpu: [arm64]
os: [linux]
@@ -5978,8 +5978,8 @@ packages:
cpu: [x64]
os: [win32]
- '@cloudflare/workerd-windows-64@1.20260816.1':
- resolution: {integrity: sha512-tKY1dt/KqkJUT0Flyq7spPB4zhfoNw9Pjq/AzzIHiUl9H2lcYtKut4a0ZGb2k/4ID/2DWD4DHRPv1fcM4zfVGA==}
+ '@cloudflare/workerd-windows-64@1.20260819.1':
+ resolution: {integrity: sha512-DF1iN2EWUDvuTWf3Qs7EI6f3fka/V8g6uiC79hkABJNoe0GpJzfZ4E09FBfagqtQi8kGckZi/4hZTsJpcR4/8A==}
engines: {node: '>=16'}
cpu: [x64]
os: [win32]
@@ -5993,10 +5993,10 @@ packages:
react-dom: ^17.0.2 || ^18.2.21
'@cloudflare/workers-types@4.20260702.1':
- resolution: {integrity: sha512-mOhf5TUEB1m2vPrxtqoIGfz0fUC9xyxRDx5gWHy5s+OCo6dcV+g7wI1R7gYCMFohhqF/2y2xeKVwMwCJjfn/WA==}
+ resolution: {integrity: sha512-mOhf5TUEB1m2vPrxtqoIGfz0fUC9xyxRDx5gWHy5s+OCo6dcV+g7wI1R7gYCMFohhqF/2y2xeKVwMwCJjfn/WA==, tarball: https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20260702.1.tgz}
- '@cloudflare/workers-types@5.20260817.1':
- resolution: {integrity: sha512-5Dv+cyjusBTPLMRedUCiLJu3zqeeupgyn1QcHmpHJV9k/TjQAxx79AO8RVtpjVaO2CB+Oh3ywAp1UuNpbyDjGQ==}
+ '@cloudflare/workers-types@5.20260819.1':
+ resolution: {integrity: sha512-nUoWrl+16WfocHgXAARAvpQ7dLMF4tSmTvvgLLg5clYhP2j8CYerZ2KC8agnlWHqOAKp45B3F+LcsjNZrZyiRA==}
'@codemirror/autocomplete@6.20.0':
resolution: {integrity: sha512-bOwvTOIJcG5FVo5gUUupiwYh8MioPLQ4UcqbcRf7UQ98X90tCa9E1kZ3Z7tqwpZxYyOvh1YTYbmZE9RTfTp5hg==}
@@ -7825,10 +7825,6 @@ packages:
resolution: {integrity: sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==}
engines: {node: '>=14'}
- '@opentelemetry/api@1.7.0':
- resolution: {integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==}
- engines: {node: '>=8.0.0'}
-
'@opentelemetry/api@1.9.0':
resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
engines: {node: '>=8.0.0'}
@@ -8325,39 +8321,24 @@ packages:
'@protobufjs/base64@1.1.2':
resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
- '@protobufjs/codegen@2.0.4':
- resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
-
'@protobufjs/codegen@2.0.5':
resolution: {integrity: sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==}
- '@protobufjs/eventemitter@1.1.0':
- resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
-
'@protobufjs/eventemitter@1.1.1':
resolution: {integrity: sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==}
- '@protobufjs/fetch@1.1.0':
- resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
-
'@protobufjs/fetch@1.1.1':
resolution: {integrity: sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==}
'@protobufjs/float@1.0.2':
resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
- '@protobufjs/inquire@1.1.0':
- resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
-
'@protobufjs/path@1.1.2':
resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
'@protobufjs/pool@1.1.0':
resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
- '@protobufjs/utf8@1.1.0':
- resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
-
'@protobufjs/utf8@1.1.2':
resolution: {integrity: sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==}
@@ -10720,8 +10701,8 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- baseline-browser-mapping@2.11.14:
- resolution: {integrity: sha512-JyJ954WzuIR8/FFzX0o5krdSTrBAkcCSRfWSleRsIHSWV+cZe2FI1PKggVkFke1hBldRs+LRxUczzE9iPmgZww==}
+ baseline-browser-mapping@2.11.15:
+ resolution: {integrity: sha512-FwMjJJ7HnyZpWe+oWxegG0fezZyBZUagI5LZEoO3GCbtbKNwRfMH9Ue5d5v01PNePBy1QSfPSDTTeVL0Hb9EzA==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -11071,8 +11052,8 @@ packages:
cjs-module-lexer@1.2.3:
resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
- cjs-wasm-module-dep@file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep:
- resolution: {directory: fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep, type: directory}
+ cjs-wasm-module-dep@file:fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep:
+ resolution: {directory: fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep, type: directory}
cli-cursor@4.0.0:
resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
@@ -11812,8 +11793,8 @@ packages:
electron-to-chromium@1.5.286:
resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==}
- electron-to-chromium@1.5.407:
- resolution: {integrity: sha512-4R8XgQOdfxexCd/u63lRm6wCHjECwI45MV9wxAs2ggtfWe2hwlo1ql97jKsju2IcJ+jFSTwBssyYoiWhh7mauQ==}
+ electron-to-chromium@1.5.409:
+ resolution: {integrity: sha512-ChI4N44d0B4A6C8prnNjMOaGgE59fUyEVYcRYm2XEXIjMbbvF5i9UL1cblDbpGqiU0uS8FE8UcKxqZqTXdmzbQ==}
electron-to-chromium@1.5.45:
resolution: {integrity: sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==}
@@ -11996,8 +11977,8 @@ packages:
jiti:
optional: true
- esm-dep@file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep:
- resolution: {directory: fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep, type: directory}
+ esm-dep@file:fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep:
+ resolution: {directory: fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep, type: directory}
espree@10.4.0:
resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
@@ -12115,8 +12096,8 @@ packages:
exsolve@1.0.8:
resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==}
- ext-dep@file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/ext-dep:
- resolution: {directory: fixtures/vitest-pool-workers-examples/module-resolution/vendor/ext-dep, type: directory}
+ ext-dep@file:fixtures/vitest-plugin-examples/module-resolution/vendor/ext-dep:
+ resolution: {directory: fixtures/vitest-plugin-examples/module-resolution/vendor/ext-dep, type: directory}
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
@@ -13611,10 +13592,6 @@ packages:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
- mime-types@3.0.1:
- resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==}
- engines: {node: '>= 0.6'}
-
mime-types@3.0.2:
resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==}
engines: {node: '>=18'}
@@ -14784,10 +14761,6 @@ packages:
proto-list@1.2.4:
resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
- protobufjs@7.4.0:
- resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==}
- engines: {node: '>=12.0.0'}
-
protobufjs@7.6.5:
resolution: {integrity: sha512-/FPD0nUc9jH6rfFjji9IBqOz4pcSE3CsT1m7Ep6Mdb0LxSUMj8hgl6GomOvZzpNpAqqGaXA0P3VSrZLFzIhQrw==}
engines: {node: '>=12.0.0'}
@@ -15297,11 +15270,6 @@ packages:
engines: {node: '>=10'}
hasBin: true
- semver@7.8.2:
- resolution: {integrity: sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==}
- engines: {node: '>=10'}
- hasBin: true
-
semver@7.8.5:
resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
engines: {node: '>=10'}
@@ -16612,8 +16580,8 @@ packages:
warning@4.0.3:
resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
- wasm-module-dep@file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep:
- resolution: {directory: fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep, type: directory}
+ wasm-module-dep@file:fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep:
+ resolution: {directory: fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep, type: directory}
web-streams-polyfill@3.3.3:
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
@@ -16697,8 +16665,8 @@ packages:
engines: {node: '>=16'}
hasBin: true
- workerd@1.20260816.1:
- resolution: {integrity: sha512-aOk2X0r+bezM3jAv++9GtnqmwWMVzHcbsM6fwkFTgq/+GNfWjhjgdUX2ju9MdHV0t/xAP6m6EH4NPSHa8Gs+5Q==}
+ workerd@1.20260819.1:
+ resolution: {integrity: sha512-v8ND66hbbRouJOaeqExdRnhU/jCRQqvCkazs5qerCtnnZ4Slnbsq1214GzuLIXLww8h2U3u14/MoT8wouiuaTQ==}
engines: {node: '>=16'}
hasBin: true
@@ -17936,7 +17904,7 @@ snapshots:
optionalDependencies:
'@types/react': 19.2.13
- '@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)':
+ '@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)':
dependencies:
'@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
@@ -17947,9 +17915,9 @@ snapshots:
nanostores: 1.1.1
zod: 4.4.3
optionalDependencies:
- '@cloudflare/workers-types': 5.20260817.1
+ '@cloudflare/workers-types': 5.20260819.1
- '@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@6.2.1)(kysely@0.28.11)(nanostores@1.1.1)':
+ '@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@6.2.1)(kysely@0.28.11)(nanostores@1.1.1)':
dependencies:
'@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
@@ -17960,50 +17928,50 @@ snapshots:
nanostores: 1.1.1
zod: 4.4.3
optionalDependencies:
- '@cloudflare/workers-types': 5.20260817.1
+ '@cloudflare/workers-types': 5.20260819.1
- '@better-auth/drizzle-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260817.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)))':
+ '@better-auth/drizzle-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260819.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)))':
dependencies:
- '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
'@better-auth/utils': 0.3.1
- drizzle-orm: 0.45.1(@cloudflare/workers-types@5.20260817.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))
+ drizzle-orm: 0.45.1(@cloudflare/workers-types@5.20260819.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))
- '@better-auth/kysely-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(kysely@0.28.11)':
+ '@better-auth/kysely-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(kysely@0.28.11)':
dependencies:
- '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
'@better-auth/utils': 0.3.1
kysely: 0.28.11
- '@better-auth/memory-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)':
+ '@better-auth/memory-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)':
dependencies:
- '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
'@better-auth/utils': 0.3.1
- '@better-auth/mongo-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(mongodb@7.1.0)':
+ '@better-auth/mongo-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(mongodb@7.1.0)':
dependencies:
- '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
'@better-auth/utils': 0.3.1
mongodb: 7.1.0
- '@better-auth/prisma-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))':
+ '@better-auth/prisma-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))':
dependencies:
- '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
'@better-auth/utils': 0.3.1
'@prisma/client': 7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3)
prisma: 7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)
- '@better-auth/stripe@1.5.4(986e3273ca28c1e9d677bddfbfb627ab)':
+ '@better-auth/stripe@1.5.4(335b98876102d5bb664db8ad11bb8eac)':
dependencies:
- '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
- better-auth: 1.5.4(@cloudflare/workers-types@5.20260817.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260817.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)))(mongodb@7.1.0)(mysql2@3.15.3)(pg@8.16.3)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@4.1.0)
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
+ better-auth: 1.5.4(@cloudflare/workers-types@5.20260819.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260819.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)))(mongodb@7.1.0)(mysql2@3.15.3)(pg@8.16.3)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@4.1.0)
better-call: 1.3.2(zod@4.4.3)
defu: 6.1.4
stripe: 20.4.1(@types/node@22.15.17)
zod: 4.4.3
- '@better-auth/telemetry@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))':
+ '@better-auth/telemetry@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))':
dependencies:
- '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1)
'@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
@@ -18579,7 +18547,7 @@ snapshots:
lodash.memoize: 4.1.2
marked: 0.3.19
- '@cloudflare/vitest-pool-workers@0.13.3(@cloudflare/workers-types@5.20260817.1)(@vitest/runner@4.1.0)(@vitest/snapshot@4.1.0)(vitest@4.1.0)':
+ '@cloudflare/vitest-pool-workers@0.13.3(@cloudflare/workers-types@5.20260819.1)(@vitest/runner@4.1.0)(@vitest/snapshot@4.1.0)(vitest@4.1.0)':
dependencies:
'@vitest/runner': 4.1.0
'@vitest/snapshot': 4.1.0
@@ -18587,7 +18555,7 @@ snapshots:
esbuild: 0.27.3
miniflare: 4.20260317.1
vitest: 4.1.0(@opentelemetry/api@1.9.1)(@types/node@22.15.17)(@vitest/ui@4.1.0)(msw@2.14.6(@types/node@22.15.17)(typescript@5.9.3))(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))
- wrangler: 4.76.0(@cloudflare/workers-types@5.20260817.1)
+ wrangler: 4.76.0(@cloudflare/workers-types@5.20260819.1)
zod: 3.25.76
transitivePeerDependencies:
- '@cloudflare/workers-types'
@@ -18600,7 +18568,7 @@ snapshots:
'@cloudflare/workerd-darwin-64@1.20260423.1':
optional: true
- '@cloudflare/workerd-darwin-64@1.20260816.1':
+ '@cloudflare/workerd-darwin-64@1.20260819.1':
optional: true
'@cloudflare/workerd-darwin-arm64@1.20260317.1':
@@ -18609,7 +18577,7 @@ snapshots:
'@cloudflare/workerd-darwin-arm64@1.20260423.1':
optional: true
- '@cloudflare/workerd-darwin-arm64@1.20260816.1':
+ '@cloudflare/workerd-darwin-arm64@1.20260819.1':
optional: true
'@cloudflare/workerd-linux-64@1.20260317.1':
@@ -18618,7 +18586,7 @@ snapshots:
'@cloudflare/workerd-linux-64@1.20260423.1':
optional: true
- '@cloudflare/workerd-linux-64@1.20260816.1':
+ '@cloudflare/workerd-linux-64@1.20260819.1':
optional: true
'@cloudflare/workerd-linux-arm64@1.20260317.1':
@@ -18627,7 +18595,7 @@ snapshots:
'@cloudflare/workerd-linux-arm64@1.20260423.1':
optional: true
- '@cloudflare/workerd-linux-arm64@1.20260816.1':
+ '@cloudflare/workerd-linux-arm64@1.20260819.1':
optional: true
'@cloudflare/workerd-windows-64@1.20260317.1':
@@ -18636,7 +18604,7 @@ snapshots:
'@cloudflare/workerd-windows-64@1.20260423.1':
optional: true
- '@cloudflare/workerd-windows-64@1.20260816.1':
+ '@cloudflare/workerd-windows-64@1.20260819.1':
optional: true
'@cloudflare/workers-editor-shared@0.1.1(@cloudflare/style-const@6.1.3(react@19.2.4))(@cloudflare/style-container@7.12.2(@cloudflare/style-const@6.1.3(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
@@ -18649,7 +18617,7 @@ snapshots:
'@cloudflare/workers-types@4.20260702.1': {}
- '@cloudflare/workers-types@5.20260817.1': {}
+ '@cloudflare/workers-types@5.20260819.1': {}
'@codemirror/autocomplete@6.20.0':
dependencies:
@@ -19364,10 +19332,10 @@ snapshots:
'@floating-ui/utils@0.2.11': {}
- '@flue/cli@2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(@types/node@22.15.17)(esbuild@0.28.1)(hono@4.12.32)(jiti@2.6.1)(react@19.2.4)(rolldown@1.2.3)(tsx@4.21.0)(typescript@5.9.3)(ws@8.21.0)(yaml@2.9.0)(zod@4.4.3)':
+ '@flue/cli@2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(@types/node@22.15.17)(esbuild@0.28.1)(hono@4.12.32)(jiti@2.6.1)(react@19.2.4)(rolldown@1.2.3)(tsx@4.21.0)(typescript@5.9.3)(ws@8.21.0)(yaml@2.9.0)(zod@4.4.3)':
dependencies:
'@flue/runtime': 2.0.3(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(typescript@5.9.3)(ws@8.21.0)(zod@4.4.3)
- '@flue/vite': 2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(hono@4.12.32)(react@19.2.4)(rolldown@1.2.3)(typescript@5.9.3)(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(ws@8.21.0)(zod@4.4.3)
+ '@flue/vite': 2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(hono@4.12.32)(react@19.2.4)(rolldown@1.2.3)(typescript@5.9.3)(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(ws@8.21.0)(zod@4.4.3)
'@vercel/detect-agent': 1.2.4
cac: 7.0.0
minisearch: 7.2.0
@@ -19439,11 +19407,11 @@ snapshots:
- ws
- zod
- '@flue/vite@2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(hono@4.12.32)(react@19.2.4)(rolldown@1.2.3)(typescript@5.9.3)(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(ws@8.21.0)(zod@4.4.3)':
+ '@flue/vite@2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(hono@4.12.32)(react@19.2.4)(rolldown@1.2.3)(typescript@5.9.3)(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(ws@8.21.0)(zod@4.4.3)':
dependencies:
'@flue/runtime': 2.0.3(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(typescript@5.9.3)(ws@8.21.0)(zod@4.4.3)
'@hono/node-server': 2.1.0(hono@4.12.32)
- agents: 0.20.1(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(react@19.2.4)(rolldown@1.2.3)(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(zod@4.4.3)
+ agents: 0.20.1(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(react@19.2.4)(rolldown@1.2.3)(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(zod@4.4.3)
magic-string: 1.1.0
tinyglobby: 0.2.17
ulidx: 2.4.1
@@ -19474,11 +19442,11 @@ snapshots:
- ws
- zod
- '@flue/vite@2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(hono@4.12.32)(react@19.2.4)(rolldown@1.2.3)(typescript@5.9.3)(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(ws@8.21.0)(zod@4.4.3)':
+ '@flue/vite@2.0.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(hono@4.12.32)(react@19.2.4)(rolldown@1.2.3)(typescript@5.9.3)(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(ws@8.21.0)(zod@4.4.3)':
dependencies:
'@flue/runtime': 2.0.3(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(typescript@5.9.3)(ws@8.21.0)(zod@4.4.3)
'@hono/node-server': 2.1.0(hono@4.12.32)
- agents: 0.20.1(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(react@19.2.4)(rolldown@1.2.3)(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(zod@4.4.3)
+ agents: 0.20.1(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(react@19.2.4)(rolldown@1.2.3)(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(zod@4.4.3)
magic-string: 1.1.0
tinyglobby: 0.2.17
ulidx: 2.4.1
@@ -19955,7 +19923,7 @@ snapshots:
'@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.9.1)
'@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.1)
'@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.1)
- '@opentelemetry/semantic-conventions': 1.28.0
+ '@opentelemetry/semantic-conventions': 1.43.0
'@microsoft/api-extractor-model@7.29.4(@types/node@22.15.17)':
dependencies:
@@ -20273,9 +20241,7 @@ snapshots:
'@opentelemetry/api-logs@0.52.1':
dependencies:
- '@opentelemetry/api': 1.7.0
-
- '@opentelemetry/api@1.7.0': {}
+ '@opentelemetry/api': 1.9.1
'@opentelemetry/api@1.9.0': {}
@@ -20315,7 +20281,7 @@ snapshots:
'@opentelemetry/sdk-logs': 0.52.1(@opentelemetry/api@1.9.1)
'@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.9.1)
'@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.1)
- protobufjs: 7.4.0
+ protobufjs: 7.6.5
'@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.1)':
dependencies:
@@ -20643,33 +20609,20 @@ snapshots:
'@protobufjs/base64@1.1.2': {}
- '@protobufjs/codegen@2.0.4': {}
-
'@protobufjs/codegen@2.0.5': {}
- '@protobufjs/eventemitter@1.1.0': {}
-
'@protobufjs/eventemitter@1.1.1': {}
- '@protobufjs/fetch@1.1.0':
- dependencies:
- '@protobufjs/aspromise': 1.1.2
- '@protobufjs/inquire': 1.1.0
-
'@protobufjs/fetch@1.1.1':
dependencies:
'@protobufjs/aspromise': 1.1.2
'@protobufjs/float@1.0.2': {}
- '@protobufjs/inquire@1.1.0': {}
-
'@protobufjs/path@1.1.2': {}
'@protobufjs/pool@1.1.0': {}
- '@protobufjs/utf8@1.1.0': {}
-
'@protobufjs/utf8@1.1.2': {}
'@puppeteer/browsers@2.10.6':
@@ -20691,7 +20644,7 @@ snapshots:
extract-zip: 2.0.1
progress: 2.0.3
proxy-agent: 6.5.0
- semver: 7.7.3
+ semver: 7.8.5
tar-fs: 3.1.0
unbzip2-stream: 1.4.3
yargs: 17.7.2
@@ -20797,10 +20750,10 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.3
- '@remix-run/cloudflare@2.12.0(@cloudflare/workers-types@5.20260817.1)(typescript@5.8.3)':
+ '@remix-run/cloudflare@2.12.0(@cloudflare/workers-types@5.20260819.1)(typescript@5.8.3)':
dependencies:
'@cloudflare/kv-asset-handler': 0.1.3
- '@cloudflare/workers-types': 5.20260817.1
+ '@cloudflare/workers-types': 5.20260819.1
'@remix-run/server-runtime': 2.12.0(typescript@5.8.3)
optionalDependencies:
typescript: 5.8.3
@@ -21336,12 +21289,12 @@ snapshots:
- encoding
- supports-color
- '@sentry/cloudflare@10.50.0(@cloudflare/workers-types@5.20260817.1)':
+ '@sentry/cloudflare@10.50.0(@cloudflare/workers-types@5.20260819.1)':
dependencies:
'@opentelemetry/api': 1.9.1
'@sentry/core': 10.50.0
optionalDependencies:
- '@cloudflare/workers-types': 5.20260817.1
+ '@cloudflare/workers-types': 5.20260819.1
'@sentry/core@10.50.0': {}
@@ -22817,7 +22770,7 @@ snapshots:
accepts@2.0.0:
dependencies:
- mime-types: 3.0.1
+ mime-types: 3.0.2
negotiator: 1.0.0
acorn-import-phases@1.0.4(acorn@8.16.0):
@@ -22846,7 +22799,7 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- agents@0.20.1(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(react@19.2.4)(rolldown@1.2.3)(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(zod@4.4.3):
+ agents@0.20.1(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(react@19.2.4)(rolldown@1.2.3)(vite@8.1.5(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(zod@4.4.3):
dependencies:
'@babel/plugin-proposal-decorators': 8.0.2(@babel/core@8.0.1)
'@cfworker/json-schema': 4.1.1
@@ -22858,7 +22811,7 @@ snapshots:
esbuild: 0.28.1
mimetext: 3.0.28
nanoid: 5.1.16
- partyserver: 0.5.10(@cloudflare/workers-types@5.20260817.1)
+ partyserver: 0.5.10(@cloudflare/workers-types@5.20260819.1)
partysocket: 1.3.0(react@19.2.4)
react: 19.2.4
yaml: 2.9.0
@@ -22873,7 +22826,7 @@ snapshots:
- '@cloudflare/workers-types'
- rolldown
- agents@0.20.1(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260817.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(react@19.2.4)(rolldown@1.2.3)(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(zod@4.4.3):
+ agents@0.20.1(@babel/core@8.0.1)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260819.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0)(react@19.2.4)(rolldown@1.2.3)(vite@8.2.0(@types/node@22.15.17)(esbuild@0.28.1)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))(zod@4.4.3):
dependencies:
'@babel/plugin-proposal-decorators': 8.0.2(@babel/core@8.0.1)
'@cfworker/json-schema': 4.1.1
@@ -22885,7 +22838,7 @@ snapshots:
esbuild: 0.28.1
mimetext: 3.0.28
nanoid: 5.1.16
- partyserver: 0.5.10(@cloudflare/workers-types@5.20260817.1)
+ partyserver: 0.5.10(@cloudflare/workers-types@5.20260819.1)
partysocket: 1.3.0(react@19.2.4)
react: 19.2.4
yaml: 2.9.0
@@ -23113,7 +23066,7 @@ snapshots:
base64-js@1.5.1: {}
- baseline-browser-mapping@2.11.14: {}
+ baseline-browser-mapping@2.11.15: {}
baseline-browser-mapping@2.9.19: {}
@@ -23129,15 +23082,15 @@ snapshots:
before-after-hook@4.0.0: {}
- better-auth@1.5.4(@cloudflare/workers-types@5.20260817.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260817.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)))(mongodb@7.1.0)(mysql2@3.15.3)(pg@8.16.3)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@4.1.0):
+ better-auth@1.5.4(@cloudflare/workers-types@5.20260819.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260819.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)))(mongodb@7.1.0)(mysql2@3.15.3)(pg@8.16.3)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@4.1.0):
dependencies:
- '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@6.2.1)(kysely@0.28.11)(nanostores@1.1.1)
- '@better-auth/drizzle-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260817.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)))
- '@better-auth/kysely-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(kysely@0.28.11)
- '@better-auth/memory-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)
- '@better-auth/mongo-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(mongodb@7.1.0)
- '@better-auth/prisma-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))
- '@better-auth/telemetry': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260817.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@6.2.1)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/drizzle-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260819.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)))
+ '@better-auth/kysely-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(kysely@0.28.11)
+ '@better-auth/memory-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)
+ '@better-auth/mongo-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(mongodb@7.1.0)
+ '@better-auth/prisma-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))
+ '@better-auth/telemetry': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@5.20260819.1)(better-call@1.3.2(zod@4.4.3))(jose@5.9.3)(kysely@0.28.11)(nanostores@1.1.1))
'@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
'@noble/ciphers': 2.1.1
@@ -23150,7 +23103,7 @@ snapshots:
zod: 4.4.3
optionalDependencies:
'@prisma/client': 7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3)
- drizzle-orm: 0.45.1(@cloudflare/workers-types@5.20260817.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))
+ drizzle-orm: 0.45.1(@cloudflare/workers-types@5.20260819.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))
mongodb: 7.1.0
mysql2: 3.15.3
pg: 8.16.3
@@ -23278,9 +23231,9 @@ snapshots:
browserslist@4.28.8:
dependencies:
- baseline-browser-mapping: 2.11.14
+ baseline-browser-mapping: 2.11.15
caniuse-lite: 1.0.30001809
- electron-to-chromium: 1.5.407
+ electron-to-chromium: 1.5.409
node-releases: 2.0.53
update-browserslist-db: 1.3.1(browserslist@4.28.8)
@@ -23465,7 +23418,7 @@ snapshots:
cjs-module-lexer@1.2.3: {}
- cjs-wasm-module-dep@file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/cjs-wasm-module-dep: {}
+ cjs-wasm-module-dep@file:fixtures/vitest-plugin-examples/module-resolution/vendor/cjs-wasm-module-dep: {}
cli-cursor@4.0.0:
dependencies:
@@ -24012,9 +23965,9 @@ snapshots:
dependencies:
wordwrap: 1.0.0
- drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260817.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)):
+ drizzle-orm@0.45.1(@cloudflare/workers-types@5.20260819.1)(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.1)(@prisma/client@7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3))(@types/pg@8.15.4)(kysely@0.28.11)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)):
optionalDependencies:
- '@cloudflare/workers-types': 5.20260817.1
+ '@cloudflare/workers-types': 5.20260819.1
'@electric-sql/pglite': 0.3.2
'@opentelemetry/api': 1.9.1
'@prisma/client': 7.0.1(prisma@7.0.1(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3))(typescript@5.8.3)
@@ -24065,7 +24018,7 @@ snapshots:
electron-to-chromium@1.5.286: {}
- electron-to-chromium@1.5.407: {}
+ electron-to-chromium@1.5.409: {}
electron-to-chromium@1.5.45: {}
@@ -24449,7 +24402,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- esm-dep@file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/esm-dep: {}
+ esm-dep@file:fixtures/vitest-plugin-examples/module-resolution/vendor/esm-dep: {}
espree@10.4.0:
dependencies:
@@ -24610,7 +24563,7 @@ snapshots:
fresh: 2.0.0
http-errors: 2.0.0
merge-descriptors: 2.0.0
- mime-types: 3.0.1
+ mime-types: 3.0.2
on-finished: 2.4.1
once: 1.4.0
parseurl: 1.3.3
@@ -24661,7 +24614,7 @@ snapshots:
exsolve@1.0.8: {}
- ext-dep@file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/ext-dep: {}
+ ext-dep@file:fixtures/vitest-plugin-examples/module-resolution/vendor/ext-dep: {}
extend@3.0.2: {}
@@ -26110,10 +26063,6 @@ snapshots:
dependencies:
mime-db: 1.52.0
- mime-types@3.0.1:
- dependencies:
- mime-db: 1.54.0
-
mime-types@3.0.2:
dependencies:
mime-db: 1.54.0
@@ -26213,7 +26162,7 @@ snapshots:
pkg-types: 1.3.1
postcss: 8.5.23
postcss-nested: 7.0.2(postcss@8.5.23)
- semver: 7.8.2
+ semver: 7.8.5
tinyglobby: 0.2.17
optionalDependencies:
typescript: 5.8.3
@@ -26679,7 +26628,7 @@ snapshots:
ky: 1.7.5
registry-auth-token: 5.0.2
registry-url: 6.0.1
- semver: 7.7.3
+ semver: 7.8.5
package-manager-detector@0.2.9: {}
@@ -26710,14 +26659,14 @@ snapshots:
partial-json@0.1.7: {}
- partyserver@0.3.3(@cloudflare/workers-types@5.20260817.1):
+ partyserver@0.3.3(@cloudflare/workers-types@5.20260819.1):
dependencies:
- '@cloudflare/workers-types': 5.20260817.1
+ '@cloudflare/workers-types': 5.20260819.1
nanoid: 5.1.7
- partyserver@0.5.10(@cloudflare/workers-types@5.20260817.1):
+ partyserver@0.5.10(@cloudflare/workers-types@5.20260819.1):
dependencies:
- '@cloudflare/workers-types': 5.20260817.1
+ '@cloudflare/workers-types': 5.20260819.1
nanoid: 5.1.16
partysocket@1.1.16(react@19.2.1):
@@ -27242,21 +27191,6 @@ snapshots:
proto-list@1.2.4: {}
- protobufjs@7.4.0:
- dependencies:
- '@protobufjs/aspromise': 1.1.2
- '@protobufjs/base64': 1.1.2
- '@protobufjs/codegen': 2.0.4
- '@protobufjs/eventemitter': 1.1.0
- '@protobufjs/fetch': 1.1.0
- '@protobufjs/float': 1.0.2
- '@protobufjs/inquire': 1.1.0
- '@protobufjs/path': 1.1.2
- '@protobufjs/pool': 1.1.0
- '@protobufjs/utf8': 1.1.0
- '@types/node': 22.15.17
- long: 5.2.4
-
protobufjs@7.6.5:
dependencies:
'@protobufjs/aspromise': 1.1.2
@@ -27939,7 +27873,7 @@ snapshots:
sembear@0.7.0:
dependencies:
- semver: 7.7.3
+ semver: 7.8.5
semiver@1.1.0: {}
@@ -27955,8 +27889,6 @@ snapshots:
semver@7.7.3: {}
- semver@7.8.2: {}
-
semver@7.8.5: {}
send@0.19.0:
@@ -27985,7 +27917,7 @@ snapshots:
etag: 1.8.1
fresh: 2.0.0
http-errors: 2.0.0
- mime-types: 3.0.1
+ mime-types: 3.0.2
ms: 2.1.3
on-finished: 2.4.1
range-parser: 1.2.1
@@ -28805,7 +28737,7 @@ snapshots:
ansis: 4.3.1
cac: 6.7.14
chokidar: 4.0.3
- diff: 8.0.3
+ diff: 8.0.4
empathic: 2.0.1
hookable: 5.5.3
obug: 0.1.3(ms@2.1.3)
@@ -29049,7 +28981,7 @@ snapshots:
dependencies:
content-type: 1.0.5
media-typer: 1.1.0
- mime-types: 3.0.1
+ mime-types: 3.0.2
type-is@2.1.0:
dependencies:
@@ -29726,7 +29658,7 @@ snapshots:
dependencies:
loose-envify: 1.4.0
- wasm-module-dep@file:fixtures/vitest-pool-workers-examples/module-resolution/vendor/wasm-module-dep: {}
+ wasm-module-dep@file:fixtures/vitest-plugin-examples/module-resolution/vendor/wasm-module-dep: {}
web-streams-polyfill@3.3.3: {}
@@ -29844,15 +29776,15 @@ snapshots:
'@cloudflare/workerd-linux-arm64': 1.20260423.1
'@cloudflare/workerd-windows-64': 1.20260423.1
- workerd@1.20260816.1:
+ workerd@1.20260819.1:
optionalDependencies:
- '@cloudflare/workerd-darwin-64': 1.20260816.1
- '@cloudflare/workerd-darwin-arm64': 1.20260816.1
- '@cloudflare/workerd-linux-64': 1.20260816.1
- '@cloudflare/workerd-linux-arm64': 1.20260816.1
- '@cloudflare/workerd-windows-64': 1.20260816.1
+ '@cloudflare/workerd-darwin-64': 1.20260819.1
+ '@cloudflare/workerd-darwin-arm64': 1.20260819.1
+ '@cloudflare/workerd-linux-64': 1.20260819.1
+ '@cloudflare/workerd-linux-arm64': 1.20260819.1
+ '@cloudflare/workerd-windows-64': 1.20260819.1
- wrangler@4.76.0(@cloudflare/workers-types@5.20260817.1):
+ wrangler@4.76.0(@cloudflare/workers-types@5.20260819.1):
dependencies:
'@cloudflare/kv-asset-handler': 0.4.2
'@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260317.1)
@@ -29863,7 +29795,7 @@ snapshots:
unenv: 2.0.0-rc.24
workerd: 1.20260317.1
optionalDependencies:
- '@cloudflare/workers-types': 5.20260817.1
+ '@cloudflare/workers-types': 5.20260819.1
fsevents: 2.3.3
transitivePeerDependencies:
- bufferutil
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index f95c60a95f5..d3e22e43032 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -39,7 +39,7 @@ minimumReleaseAge: 1440
# First-party Cloudflare packages are exempt from the cooldown so they can be
# adopted same-day.
minimumReleaseAgeExclude:
- # TEMPORARY: vite-plugin-cloudflare + vitest-pool-workers are pinned to the
+ # TEMPORARY: vite-plugin-cloudflare + vitest-plugin are pinned to the
# published miniflare while the workspace miniflare is mid-migration. Revert
# with the repoint.
- "miniflare"
@@ -62,9 +62,9 @@ allowBuilds:
esbuild: true
workerd: true
# miniflare's direct `sharp` (0.35+) has no install script, but the
- # catalog-pinned published @cloudflare/vitest-pool-workers still pulls in
- # sharp@0.34.x transitively (via published miniflare), which does. Remove
- # once that pin uses a published miniflare built on sharp 0.35+.
+ # catalog-pinned published @cloudflare/vitest-pool-workers (the pre-rename name)
+ # still pulls in sharp@0.34.x transitively (via published miniflare), which does.
+ # Remove once that pin uses a published miniflare built on sharp 0.35+.
sharp: true
playwright-chromium: true
prisma: true
@@ -128,8 +128,8 @@ catalog:
esbuild: "0.28.1"
"@playwright/test": "1.60.0"
playwright-chromium: "1.60.0"
- "@cloudflare/workers-types": "^5.20260816.1"
- workerd: "1.20260816.1"
+ "@cloudflare/workers-types": "^5.20260819.1"
+ workerd: "1.20260819.1"
jsonc-parser: "3.2.0"
smol-toml: "1.5.2"
msw: "2.14.6"
@@ -141,7 +141,11 @@ catalog:
"ci-info": "4.4.0"
"open": "11.0.0"
"signal-exit": "4.1.0"
- # CAUTION: Most usage of @cloudflare/vitest-pool-workers in this monorepo should use workspace:* instead of this catalog version
- # However, some packages (pages-shared, workers-shared, etc...) need to be tested using vitest-pool-workers but are themselves
- # ultimately included in vitest-pool-workers (through Wrangler), causing a circular dependency.
+ # CAUTION: This is the PRE-RENAME published package name. The workspace package is now
+ # @cloudflare/vitest-plugin, and most usage in this monorepo should use workspace:* against
+ # that instead of this catalog version.
+ # However, some packages (pages-shared, workers-shared, etc...) need to be tested using the
+ # plugin but are themselves ultimately included in it (through Wrangler), causing a circular
+ # dependency. They therefore depend on this older published 0.x release under the old name.
+ # TODO: Repoint these to "@cloudflare/vitest-plugin" once v1.0.0 is published to npm.
"@cloudflare/vitest-pool-workers": "0.13.3"
diff --git a/tools/deployments/__tests__/deprecate.test.ts b/tools/deployments/__tests__/deprecate.test.ts
index 84b47509001..c12654cc719 100644
--- a/tools/deployments/__tests__/deprecate.test.ts
+++ b/tools/deployments/__tests__/deprecate.test.ts
@@ -26,15 +26,15 @@ describe("buildDependantsGraph()", () => {
expect(graph).toHaveProperty("miniflare");
expect(graph).toHaveProperty("wrangler");
expect(graph).toHaveProperty("@cloudflare/vite-plugin");
- expect(graph).toHaveProperty("@cloudflare/vitest-pool-workers");
+ expect(graph).toHaveProperty("@cloudflare/vitest-plugin");
expect(graph).toHaveProperty("create-cloudflare");
expect(graph["miniflare"]).toContain("wrangler");
- expect(graph["miniflare"]).toContain("@cloudflare/vitest-pool-workers");
+ expect(graph["miniflare"]).toContain("@cloudflare/vitest-plugin");
expect(graph["miniflare"]).toContain("@cloudflare/vite-plugin");
expect(graph["wrangler"]).toContain("@cloudflare/vite-plugin");
- expect(graph["wrangler"]).toContain("@cloudflare/vitest-pool-workers");
+ expect(graph["wrangler"]).toContain("@cloudflare/vitest-plugin");
expect(graph["wrangler"]).not.toContain("miniflare");
// Private packages should not be in the graph
diff --git a/tools/deployments/__tests__/publish-packages.test.ts b/tools/deployments/__tests__/publish-packages.test.ts
index 4c3a70f7654..f3dc1b99784 100644
--- a/tools/deployments/__tests__/publish-packages.test.ts
+++ b/tools/deployments/__tests__/publish-packages.test.ts
@@ -288,7 +288,7 @@ describe("the real workspace", () => {
"@cloudflare/autoconfig",
"@cloudflare/deploy-helpers",
"@cloudflare/vite-plugin",
- "@cloudflare/vitest-pool-workers",
+ "@cloudflare/vitest-plugin",
],
]
`);
@@ -306,7 +306,7 @@ describe("the real workspace", () => {
expect(tierOf("@cloudflare/vite-plugin")).toBeGreaterThan(
tierOf("wrangler")
);
- expect(tierOf("@cloudflare/vitest-pool-workers")).toBeGreaterThan(
+ expect(tierOf("@cloudflare/vitest-plugin")).toBeGreaterThan(
tierOf("wrangler")
);
});
diff --git a/tools/deployments/__tests__/validate-changesets.test.ts b/tools/deployments/__tests__/validate-changesets.test.ts
index eb1696fb6d3..ff411fc7878 100644
--- a/tools/deployments/__tests__/validate-changesets.test.ts
+++ b/tools/deployments/__tests__/validate-changesets.test.ts
@@ -44,7 +44,7 @@ describe("findPackageNames()", () => {
"@cloudflare/turbo-r2-archive",
"@cloudflare/unenv-preset",
"@cloudflare/vite-plugin",
- "@cloudflare/vitest-pool-workers",
+ "@cloudflare/vitest-plugin",
"@cloudflare/workers-auth",
"@cloudflare/workers-editor-shared",
"@cloudflare/workers-playground",
@@ -197,11 +197,10 @@ describe("validateChangesets()", () => {
expect(errors).toMatchInlineSnapshot(`[]`);
});
- it("should report errors for major bumps except Miniflare prereleases", ({
- expect,
- }) => {
+ it("should report errors for disallowed major bumps", ({ expect }) => {
const errors = validateChangesets(
new Map([
+ ["@cloudflare/vitest-plugin", { name: "@cloudflare/vitest-plugin" }],
[
"miniflare",
{
@@ -213,6 +212,15 @@ describe("validateChangesets()", () => {
["package-c", { name: "package-c" }],
]),
[
+ {
+ file: "major-vitest-plugin.md",
+ contents: dedent`
+ ---
+ "@cloudflare/vitest-plugin": major
+ ---
+
+ Release v1`,
+ },
{
file: "major-one.md",
contents: dedent`
diff --git a/tools/deployments/deprecate.ts b/tools/deployments/deprecate.ts
index 348cb126abb..5b5042d115b 100644
--- a/tools/deployments/deprecate.ts
+++ b/tools/deployments/deprecate.ts
@@ -363,17 +363,17 @@ Examples:
pnpm deprecate-packages --reason "Deploy regression" \\
wrangler@latest \\
@cloudflare/vite-plugin@latest \\
- @cloudflare/vitest-pool-workers@latest
+ @cloudflare/vitest-plugin@latest
pnpm deprecate-packages --reason "Broken scheduled handlers" \\
miniflare@4.20260706.0 \\
wrangler@4.108.0>4.106.0 \\
@cloudflare/vite-plugin@1.43.2 \\
- @cloudflare/vitest-pool-workers@0.18.2
+ @cloudflare/vitest-plugin@0.18.2
Dependency rules are derived from local package.json files and enforced automatically.
For example, deprecating wrangler also requires deprecating @cloudflare/vite-plugin
-and @cloudflare/vitest-pool-workers because they depend on it.
+and @cloudflare/vitest-plugin because they depend on it.
`.trim();
export async function main(argv: string[] = process.argv.slice(2)) {
diff --git a/tools/deployments/validate-changesets.ts b/tools/deployments/validate-changesets.ts
index e06cabf9eef..9837672d9f0 100644
--- a/tools/deployments/validate-changesets.ts
+++ b/tools/deployments/validate-changesets.ts
@@ -34,6 +34,9 @@ export function validateChangesets(
if (
release.type === "major" &&
targetPackage?.private !== true &&
+ // `@cloudflare/vitest-plugin` v1 is the rename of
+ // `@cloudflare/vitest-pool-workers`, which needs a one-off major bump.
+ release.name !== "@cloudflare/vitest-plugin" &&
(release.name !== "miniflare" ||
targetPackage?.["workers-sdk"]?.npmPrereleaseIdentifier ===
undefined)