chore(deps): update dependency @cloudflare/vitest-pool-workers to ^0.18.0#185
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency @cloudflare/vitest-pool-workers to ^0.18.0#185renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
|
bf23539 to
8a278fb
Compare
7e7471f to
1a795f0
Compare
24ef734 to
8f3d2dd
Compare
6087f0e to
f7dce3b
Compare
7fcd00c to
5782fb7
Compare
5782fb7 to
8d294b3
Compare
d84d827 to
2326a15
Compare
198914d to
940c2da
Compare
0f5652c to
c8ee09b
Compare
d1a9280 to
bb9f905
Compare
782cf06 to
0baa158
Compare
0cb0211 to
9ed149a
Compare
79ec3f7 to
401424e
Compare
401424e to
e8e5e60
Compare
e8e5e60 to
f2a8edb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^0.10.3→^0.18.0Release Notes
cloudflare/workers-sdk (@cloudflare/vitest-pool-workers)
v0.18.0Compare Source
Minor Changes
#14382
fd92d56Thanks @petebacondarwin! - Add support for declarative Durable Object exportswrangler deploynow accepts anexportsmap inwrangler.jsonas a declarative alternative to the legacymigrationsarray.Each entry in
exportsis keyed by Durable Object class name.typecarries the export kind (currently always"durable-object"); thestatefield carries the lifecycle and defaults to"created"(live) when omitted:{ "exports": { // Provision a new Durable Object class (`MyDO`) "MyDO": { "type": "durable-object", "storage": "sqlite" }, // Delete Durable Object class (`OldGone`) "OldGone": { "type": "durable-object", "state": "deleted" }, // Rename a Durable Object class (from `OldName` to `NewName`) "OldName": { "type": "durable-object", "state": "renamed", "renamed_to": "NewName" }, "NewName": { "type": "durable-object", "storage": "sqlite" }, // Transfer a Durable Object (`Outgoing`) to a new Worker (`target-worker`) "Outgoing": { "type": "durable-object", "state": "transferred", "transferred_to": "target-worker" }, // Prepare to receive the transfer of a Durable Object (`Incoming`) from another Worker (`source-worker`) "Incoming": { "type": "durable-object", "state": "expecting-transfer", "storage": "sqlite", "transfer_from": "source-worker" } } }When a Worker declares Durable Object class bindings but no lifecycle for them (neither a
migrationsarray nor anexportsmap), wrangler warns and now suggests a declarativeexportsentry for each class (previously it suggested a legacymigrationsblock).The deployment response now surfaces the server's reconciliation result — created namespaces, applied tombstones, structured per-scenario info entries, and a
removable_entrieshint for stale tombstones that are safe to delete from the config. Blocking errors return the structured per-class detail with scenario tags, suggested remediation, and any referencing-script context.wrangler versions uploadalso forwardsexports. Declarativeexportslifecycle changes are reconciled when the version is deployed (wrangler versions deployorwrangler deploy), so aversions uploadpayload can declare new classes inexportswithout immediately provisioning them. An actor binding (durable_objects.bindings) to a class declared only inexportson the sameversions uploadis rejected with a clear error (code 100406) — the binding cannot be resolved until the namespace is provisioned. Either stage the new class viactx.exports.X(no binding required) onversions uploadand add the binding at deploy time, or usewrangler deployto provision and bind in one step (the same constraint applies to themigrationsflow).Multi-version deploys (
wrangler versions deploy A@50% B@50%) where the selected versions disagree on declarativeexportsare rejected server-side with a clear message: deploy the version that changesexportsat 100% first, then run the percentage-split deploy. This prevents traffic on one branch routing to code that references unprovisioned or just-deleted DO namespaces. Single-version (100%) deploys are unaffected.Local development (
wrangler dev,vite devandunstable_startWorker) reads Durable Object SQLite storage settings from the newexportsfield, so applications using the declarative flow get correct local-dev storage without needing to also declare amigrationsblock.@cloudflare/vitest-pool-workersalso picks up Durable Object configuration fromexports, so tests against anexports-only Worker run with the correct local SQLite storage and can reach unbound Durable Object classes viactx.exports.X.wrangler typesis also aware ofexports. Live entries (includingexpecting-transfer, the receiving side of a two-phase transfer) are added toCloudflare.GlobalProps.durableNamespaces, which typesctx.exports.Xfor unbound Durable Objects declared only viaexports.Patch Changes
aa5d580,6b0ce98,fd92d56,bfe48db,be3f792,0277bfa,98793d8,e1532eb]:v0.17.0Compare Source
Minor Changes
#14490
75d8cb0Thanks @petebacondarwin! - Make Workflow introspectorget()asyncThe
introspectWorkflow(...).get()method now returns a promise, so callers must await it:This aligns Workflow introspection with the shared implementation used by
createTestHarness().Patch Changes
#14490
75d8cb0Thanks @petebacondarwin! - Supportrequire("./x.wasm?module")in CommonJS dependenciesPreviously, only literal
await import("./x.wasm?module")specifiers were rewritten through the static analysis path added in #11094. CommonJS dependencies that userequire("./x.wasm?module")reach the module-fallback service at runtime, where the?modulesuffix went unhandled. The fallback either failed withNo such module "<abs>/x.wasm?module"or, when aCompiledWasmrule was configured, attempted to evaluate the WebAssembly bytes as JavaScript.However, these
require()s work in deployed workers because esbuild's bundler statically rewrites theserequire()calls into ES dynamic imports. vitest-pool-workers' Vite-based pipeline doesn't do that rewrite and instead defers to the module-fallback at runtime.The module-fallback now strips
?modulefrom the resolved target and synthesizes a CommonJS wrapper that re-requires the underlying.wasmby absolute path, exposing it ondefaultto match what workerd produces forCompiledWasmmodules.Updated dependencies [
75d8cb0,75d8cb0,75d8cb0,75d8cb0,75d8cb0,f10d4ad,75d8cb0,75d8cb0,75d8cb0,75d8cb0,d292046,75d8cb0,75d8cb0,75d8cb0,75d8cb0,75d8cb0,75d8cb0,e0cc2cb,75d8cb0,75d8cb0,75d8cb0]:v0.16.20Compare Source
Patch Changes
#14398
c5014ccThanks @apeacock1991! - AddevictDurableObjectandevictAllDurableObjectstest helpers tocloudflare:testThese helpers let you exercise how a Durable Object behaves across evictions in your tests. Eviction is graceful: durable storage is preserved, in-memory state is reset by tearing down the instance, hibernatable WebSockets are hibernated rather than closed, and eviction waits for in-flight requests to drain.
#14394
8a5cf8cThanks @Partha-Shankar! - fix(d1): escapemigrationsTableNameand filenames in SQLite queriesD1 migration commands in both
wranglerand@cloudflare/vitest-pool-workersinterpolated themigrationsTableNameconfig value and migration filenames directly into SQL strings without any escaping. This meant:my"tablewould produce invalid SQL inCREATE TABLE,SELECT, andINSERTstatements, andwhat's-new.sql) would break theINSERT INTO ... VALUES ('...')statement appended after each migration inwrangler.Both identifiers are now properly escaped before interpolation:
migrationsTableNameis wrapped in double-quotes with internal double-quotes doubled (SQL-standard identifier quoting), and migration filenames used as string literals have their single-quotes doubled before insertion.Updated dependencies [
5f40dd5,34e0cef,3b743c1,daa5389,8a5cf8c]:v0.16.19Compare Source
Patch Changes
a085dec,9a0de8f,fab565f,3f02864,4ef872f,2a02858,e312dec]:v0.16.18Compare Source
Patch Changes
c6579d3,444b75e,b38823f,cfd6205,cfd6205]:v0.16.17Compare Source
Patch Changes
#14347
673b09eThanks @jamesopstad! - Update undici from 7.24.8 to 7.28.0#14314
5c3bb11Thanks @harryzcy! - Bump esbuild to 0.28.1This update includes several bug fixes from esbuild versions 0.27.3 through 0.28.1. See the esbuild changelog for details.
Updated dependencies [
673b09e,e930bd4,f6e49dd,5c3bb11,296ad65,594544d,a79b899,5dfb788,ca61558,36777db]:v0.16.16Compare Source
Patch Changes
0e055d3,27db82c,2a6a26b,9a424ed,ecfdd5a,604be26,1fb7ba5,208b3bb,41f391f,32f9307,8b2ce41,3578919,ee82c76,41f391f,21dbc12,7e63948,035917f]:v0.16.15Compare Source
Patch Changes
98c9afe,e305126,f3990b2,4597f08,25722ac,41f75c0,10b5538,818c105,2ae6099,2047a32,2047a32,e8561c2]:v0.16.14Compare Source
Patch Changes
23aecac,b932e47,d076bcc,24497d0,4bb572f,165adb2,776098c,0706fbf,7993711,48c4ff0,8cf8c61,8923f97,b205fb7,a61ac29]:v0.16.13Compare Source
Patch Changes
c6c61b5,c6c61b5,a3eea27,7a6b1a4,7539a9b,1fdd8de,3b8b80a,0bb2d55,8400fb9,b502d54,7949f81,d462013,c2280cd,3b8b80a,ea12b58,acf7817]:v0.16.12Compare Source
Patch Changes
#14152
3d7992eThanks @petebacondarwin! - Fix module resolution failing when project path contains spacesWhen a project lived under a directory with spaces (e.g.
/Users/me/Documents/Master CMS/project), the vitest pool would fail withNo such module "threads.js"before any test executed. The module fallback service now uses therawSpecifierfrom workerd's fallback request to correctly decodefile://URLs, avoiding the double-encoding of spaces (%20→%2520) that occurred when workerd resolved these URLs as relative paths.#14105
337e912Thanks @dario-piotrowicz! - Remove trailing periods from URLs in terminal outputURLs printed to the terminal with a sentence-ending period (e.g.
https://example.com/path.) would include the period when clicked in some terminal emulators, causing 404 errors. This removes trailing periods from all URLs displayed in CLI output across wrangler, miniflare, vitest-pool-workers, and workers-utils.#14112
3a746acThanks @penalosa! - Pin non-bundled runtime dependencies to exact versionsDependencies that are not bundled into a package's published output are installed directly into consumers' dependency trees, so they are now pinned to exact versions instead of semver ranges. This closes a supply-chain gap where an unpinned external dependency could resolve to a compromised upstream release on a fresh install. A new
pnpm check:pinned-depslint enforces this for all published packages (and for the shared pnpm catalog) going forward.#14061
da8e306Thanks @Vardiak! - Preserve Durable Object WebSocket handler invocation orderDurable Object WebSocket events could begin executing out of order in the Workers Vitest integration when several events arrived while the test wrapper was resolving user code.
Handler invocation now preserves arrival order while still allowing asynchronous handler completion to run concurrently.
Updated dependencies [
b210c5e,aec1bb8,e06cbb7,9a26191,5565823,4ef790b,890fca7,6fc9777,337e912,8e7b74f,e86489a,42288d4,65b5f9e,3a746ac,64ef9fd,94b29f7]:v0.16.11Compare Source
Patch Changes
#14087
e3c862aThanks @edmundhung! - Fix Durable Object RPC dispatch for constructors that return proxiesDurable Object RPC methods mediated by a returned
Proxyare now resolved through that proxy after validating prototype exposure. This allows wrappers that bind methods to the underlying instance to use private fields and methods in Vitest, while matching workerd's rejection of constructor-assigned RPC overrides.Updated dependencies [
e3c862a,cbb39bd,cbb39bd,408432a,1103c07,7bb5c7a,5b5cbd3,e3c862a,e3c862a,97d7d81,c647ccc,e3c862a,e3c862a,e3c862a,e3c862a,e3c862a,b64b7e4,e3c862a,e3c862a,e4c8fd9,2dffeeb,e3c862a,e3c862a,4c0da7b,972d13d,13cbadb,59e43e4]:v0.16.10Compare Source
Patch Changes
ca5b604,c1fd2fd,49c1a59,fee1ce4,b3962ff,d042705,420e457,8b1467e]:v0.16.9Compare Source
Patch Changes
#13933
90092c0Thanks @petebacondarwin! - Derive bundler externals frompackage.jsonand shrink the published bundleThe bundler's
externallist was previously hand-maintained and out of sync withpackage.json—undiciandsemverwere both listed as external despite being onlydevDependencies. The publisheddist/pool/index.mjsconsequently contained a top-levelimport { fetch } from "undici"that was only resolvable because pnpm happened to hoistundicifrom other packages' devDependencies during local development.The bundler now derives its
externallist fromdependencies+peerDependenciesinpackage.json, making it impossible for adevDependencyto silently end up externalized.Combined with the new
"sideEffects": falsedeclaration in@cloudflare/workers-utils, the unusedcloudflared/tunnelexports (and their transitiveundiciimport) are now tree-shaken out of the pool entirely.dist/pool/index.mjsno longer referencesundiciat all, and shrinks from ~489 KB to ~125 KB.Updated dependencies [
52e9082,0733688,fc1f7b9,30657e1,8c569c6,f598eac,3a1fbed]:v0.16.8Compare Source
Patch Changes
#13919
c7eab7fThanks @petebacondarwin! - Fix the outboundCF-Workerheader reflecting the route pattern hostname instead of the parent zone, and falling back to<worker-name>.example.comundervite dev,vitest-pool-workers, andgetPlatformProxyTwo related issues affected the
CF-Workerheader on outbound subrequests in local development:@cloudflare/vite-plugin,@cloudflare/vitest-pool-workers, andgetPlatformProxy, the header fell back to<worker-name>.example.comeven whenrouteswere configured, becauseunstable_getMiniflareWorkerOptionsand the equivalentgetPlatformProxyworker-options path did not propagate azonevalue to Miniflare. This broke local development against services that reject unknownCF-Workerhosts (for example, Apple WeatherKit returns403 Forbidden).wrangler dev --local, when a route used thezone_namefield (for example{ pattern: "foo.example.com/*", zone_name: "example.com" }), the header was set to the pattern's hostname (foo.example.com) rather than the zone name (example.com). Production setsCF-Workerto the zone name that owns the Worker, so this was inconsistent with deployed behaviour.Both bugs are fixed: the new
unstable_getMiniflareWorkerOptions/getPlatformProxypath now propagates azonederived from the first configured route, and all four local-dev paths now prefer a route's explicitzone_nameover the pattern hostname when computing that zone. Whenzone_nameisn't set, the existing best-effort behaviour is preserved — forwrangler devthis meansdev.hostis still honoured as a local override and the pattern hostname is used as a final fallback. Resolving the parent zone forzone_id-only,custom_domain, or plain-string routes would require an API lookup, so locally we still approximate it with the pattern hostname.Note:
dev.hostis intentionally not consulted by theunstable_getMiniflareWorkerOptions/getPlatformProxypaths — thedevconfig block is specific towrangler dev.Updated dependencies [
fa1f61f,2679e05,7e40d98,adc9221,735852d,d803737,c7eab7f,e04e180,59cd880,62abf97,e8c2031,e349fe0,da0fa8c,a5c9365]:v0.16.7Compare Source
Patch Changes
#13961
2cb658cThanks @threepointone! - Preserve same-stub RPC call order for wrapped Worker and Durable Object entrypointsPreviously, dynamically wrapped RPC methods could resolve and invoke out of order when many calls were fired without awaiting each individual call. This now queues method resolution per wrapper instance so calls begin in the order they were received.
Updated dependencies [
aac7ca0,b25dc0d,ae047ee,a4f22bc,f78d435,aac7ca0,c5c9e20,ebf4b24,b27eb18,895baf5,7bcdf45]:v0.16.6Compare Source
Patch Changes
#13833
0e4a830Thanks @thegeekasteroid! - Filter benigndisconnected: WebSocket peer disconnectedworkerd stderr noise during test runs.The
ignoreMessagesarray in the pool already filters several benign workerd disconnect messages (e.g.disconnected: WebSocket was aborted). On recent workerd versions, tests that exercise the WebSocket API also surfacedisconnected: WebSocket peer disconnectedwarnings during normal teardown. These are not user-actionable and obscure real test failures. Add the message to the existing filter alongside the otherdisconnected:entries.Updated dependencies [
19ed49a,3ff0a50,bf688f7,2e72c83,802eaf4,506aa02,8f5cdb1,be8a98c]:v0.16.5Compare Source
Patch Changes
d4794a8,58b4403,4352f87,a9e6741,da664d5,bdc398c,f781a2b,1420f10,c8be316]:v0.16.4Compare Source
Patch Changes
4e44ce6,b0cee1d,d878e13,971dfe3,971dfe3,5d936c5]:v0.16.3Compare Source
Patch Changes
8852b0c,248bc08,e414e56]:v0.16.2Compare Source
Patch Changes
#11094
9367435Thanks @bbridges! - Allow.wasmfiles to be imported as.wasm?module.Updated dependencies [
dd3baf3,5cf6f81]:v0.16.1Compare Source
Patch Changes
2284f20,332f527,039bada,18e833d,b6cea17,1a54ac5,53e846a,f3fed88,beff19c,af42fed,1a54ac5]:v0.16.0Compare Source
Minor Changes
#13810
2b8c0ccThanks @jamesopstad! - Stabilize thesecretsconfiguration propertyThe
secretsproperty in the Wrangler config file is no longer experimental and will no longer emit an experimental warning when used. Required secrets are validated during local development and deploy, and used as the source of truth for type generation.{ "secrets": { "required": ["API_KEY", "DB_PASSWORD"] } }Patch Changes
#12974
1127114Thanks @ask-bonk! - Rewrite self-referencing service bindings tokCurrentWorkerbefore renaming the runner workerWhen a wrangler config has a service binding to itself (e.g.
services: [{ binding: "SELF", service: "my-worker" }]where the worker is named"my-worker"), the binding's literal name pointed to a worker that no longer existed once vitest-pool-workers renamed the runner tovitest-pool-workers-runner-<project>. The self-reference is now rewritten to the miniflarekCurrentWorkersymbol, which resolves at request time relative to the referer worker and so survives the rename. Previously this rewrite lived in wrangler'sunstable_getMiniflareWorkerOptions, but it's only needed for vitest-pool-workers' rename — other consumers (getPlatformProxy,@cloudflare/vite-plugin) preserve the original worker name and so don't need it.Updated depend
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.