From 0a181477d9ab170439e1d88ec79cdd1391d70596 Mon Sep 17 00:00:00 2001 From: "voidzero-guard[bot]" <278573678+voidzero-guard[bot]@users.noreply.github.com> Date: Fri, 30 Oct 2026 01:30:20 +0000 Subject: [PATCH 1/2] feat(deps): upgrade upstream dependencies - rolldown: 89d821c -> v1.2.16 (de6facf) - tsdown: 0.23.3 -> 0.23.4 - @tsdown/css: 0.23.3 -> 0.23.4 - @tsdown/exe: 0.23.3 -> 0.23.4 Code changes: - Cargo.toml: re-merge rolldown v1.2.16 workspace (add rolldown_devtools_metrics crate, oxc crates 0.155.0 -> 0.156.0, globstar 0.0.4 -> 0.0.6, jsonschema 0.58.0 -> 0.60.0, parking_lot 0.12.5 -> 0.13.0, saphyr 0.2.1 -> 0.3.0, add simd-utf16-len 0.3.0) - .github/renovate.json: add simd-utf16-len to the vendored-crate ignore list - packages/tools/src/patch-oxc-node.ts: follow oxc 0.156 `is_await` -> `is_await_using` rename in vendored oxc-node - packages/tools/src/brand-vite.ts: drop the orphan rolldown-runtime d.ts chunk rolldown >= 1.2.16 emits in emitDtsOnly builds - packages/cli/src/pack-bin.ts, packages/cli/src/help.ts: sync `--env-file` help text with tsdown 0.23.4 - crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/{command_helper,command_pack,command_tool_help}/snapshots/*.md: record the `--env-file` help text - pnpm-workspace.yaml: catalog updates (emnapi/@emnapi 2.0.0-beta.2, @napi-rs/wasm-runtime 1.2.6, cac ^7.1.0, remeda ^2.53.0) - packages/tools/src/__tests__/{patch-oxc-node,brand-vite}.spec.ts: cover the new patches --- .github/renovate.json | 1 + Cargo.lock | 294 +++++++++++------- Cargo.toml | 34 +- .../snapshots/command_helper.md | 2 +- .../command_pack/snapshots/command_pack.md | 2 +- .../snapshots/command_tool_help.md | 2 +- packages/cli/binding/index.d.cts | 14 + packages/cli/src/help.ts | 3 +- packages/cli/src/pack-bin.ts | 5 +- packages/core/package.json | 4 +- packages/tools/.upstream-versions.json | 2 +- .../tools/src/__tests__/brand-vite.spec.ts | 28 +- .../src/__tests__/patch-oxc-node.spec.ts | 27 +- packages/tools/src/brand-vite.ts | 62 ++++ packages/tools/src/patch-oxc-node.ts | 20 +- pnpm-lock.yaml | 231 +++++++------- pnpm-workspace.yaml | 18 +- 17 files changed, 480 insertions(+), 269 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index 0ded9486f7..0d42a99c01 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -213,6 +213,7 @@ "self_cell", "serde", "serde_json", + "simd-utf16-len", "simdutf8", "smallvec", "sugar_path", diff --git a/Cargo.lock b/Cargo.lock index 856c6cccd5..3d2897d653 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -692,7 +692,7 @@ dependencies = [ "cached_proc_macro_types", "hashbrown 0.16.1", "once_cell", - "parking_lot", + "parking_lot 0.12.5", "thiserror 2.0.21", "web-time", ] @@ -1236,7 +1236,7 @@ dependencies = [ "document-features", "futures-core", "mio", - "parking_lot", + "parking_lot 0.12.5", "rustix", "signal-hook", "signal-hook-mio", @@ -1476,9 +1476,9 @@ dependencies = [ "cfg-if", "crossbeam-utils", "hashbrown 0.14.5", - "lock_api", + "lock_api 0.4.14", "once_cell", - "parking_lot_core", + "parking_lot_core 0.9.12", ] [[package]] @@ -2493,9 +2493,9 @@ dependencies = [ [[package]] name = "globstar" -version = "0.0.4" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb403f8548b623d8a2e74c1a6003b2c251f9dfcc357ab6bedbd144d5f272595" +checksum = "c1d4989169eb40469469b2aecfc0d8d9ebcf56149fa23b57a515d261e67e3907" [[package]] name = "gloo-timers" @@ -3272,9 +3272,9 @@ dependencies = [ [[package]] name = "jsonschema" -version = "0.58.6" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f622c574a29fb3034a0a90645afee194dfedc75fc124228801b6e77041075bd1" +checksum = "a42a11b47492e6a2cc76e9c7bcc8077776cb31dac444e0795d7f61bcc6441c08" dependencies = [ "ahash", "bytecount", @@ -3300,23 +3300,24 @@ dependencies = [ [[package]] name = "jsonschema-regex" -version = "0.58.6" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a968fffd387b2ab005bf00c1851f5d26e90df05b6f7ad609ed0d620033cca5e7" +checksum = "107aeb6ff14b8deb5610096a8ce5c554ec89806b521147eaeb3cae05b07edb7a" dependencies = [ "regex-syntax", ] [[package]] name = "jsonschema-value" -version = "0.58.6" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39b7670345e5ce87371339d13705dbb9276b7e3e934bbe1efa2c6734a1f65a96" +checksum = "e281d6b177bb4834f2ffd6f92aa0443cffe29c996b251c8d94eb6f456186feba" dependencies = [ "ahash", "bytecount", "fraction", "getrandom 0.3.4", + "memchr", "num-cmp", "num-traits", "serde_json", @@ -3527,6 +3528,15 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "lock_api" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65d91b22da179613dcf4d6ec8349563f52a363f6849e03b00dd0a185ec4a59af" +dependencies = [ + "scopeguard", +] + [[package]] name = "log" version = "0.4.34" @@ -4162,9 +4172,9 @@ dependencies = [ [[package]] name = "oxc" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6e790cd34b555e135d0d656139676ae62a50ef9a6829f9aacf9602b7525c501" +checksum = "99bd5a2e64e8f688c96d7534d6bf53324b4bf6fcb78d678800d45a485a41d93d" dependencies = [ "oxc_allocator", "oxc_ast", @@ -4221,9 +4231,9 @@ dependencies = [ [[package]] name = "oxc_allocator" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c8f46c8923b4afb4dd588d4684d5dd32332f1341225c066cc6af31094e7e3d" +checksum = "11eaca3827c60c9da743111a49dff9a8e274e558e0e725e9a717f31ea173da0f" dependencies = [ "allocator-api2", "hashbrown 0.17.1", @@ -4235,9 +4245,9 @@ dependencies = [ [[package]] name = "oxc_ast" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35465751cfc99739fee42d8345b57d5b5087b462bea7bc5bb17d1f248e1efa22" +checksum = "5f68bed0e97be9c9450a85f7fe0b1d62f85bf23f0a2d4f5c665bf4b848be1632" dependencies = [ "bitflags 2.13.2", "oxc_allocator", @@ -4253,9 +4263,9 @@ dependencies = [ [[package]] name = "oxc_ast_macros" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78e5d50ecf9fbf6c00afb29dbd670784b2ac407fd676f625d1f3515a1a2d577" +checksum = "94f8bdc02323a201e5a3b29bb87bac855ea642ee26a630c5b05e5f463fa71b77" dependencies = [ "phf 0.14.0", "proc-macro2", @@ -4265,9 +4275,9 @@ dependencies = [ [[package]] name = "oxc_ast_visit" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6836d2fde033c44eae57ab1be3fcc7bd6a57465783bdfce654ca28064a334dbe" +checksum = "db583366340d5221fe2129e0240e0413cb58e6c6e926740a493d6e82f5c5e40f" dependencies = [ "oxc_allocator", "oxc_ast", @@ -4277,9 +4287,9 @@ dependencies = [ [[package]] name = "oxc_cfg" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390b0624eba0196ab8954fba0c4d136f6c1192fd74ae17953c1529939bf3c665" +checksum = "691a74647781d5a73dfda685c3939e4ac994da7649aa0b6d53f2453397f1634a" dependencies = [ "bitflags 2.13.2", "itertools 0.15.0", @@ -4291,9 +4301,9 @@ dependencies = [ [[package]] name = "oxc_codegen" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75db0d260bb5493e31be0ab17651d428da5cd8c49ec2cf78d857e605d66385dd" +checksum = "88c1b6d7d9f1f5386534d88294903dadf00e72536e9fea6198e43450a52c41a5" dependencies = [ "bitflags 2.13.2", "cow-utils", @@ -4313,9 +4323,9 @@ dependencies = [ [[package]] name = "oxc_compat" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90809c31d39f49d2023b090ffcfd13b5f2e07b156abde430f1b1454ceef51bb1" +checksum = "8d913fd9474d53400cc5584ca4b476fee577acf44606a251107f1d98cc2ff4ae" dependencies = [ "cow-utils", "oxc-browserslist", @@ -4326,18 +4336,18 @@ dependencies = [ [[package]] name = "oxc_data_structures" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a46b759a8cb13a1111649370f1d769322b082edabd625466254f238818bdc9e9" +checksum = "1d8e8e829b37d1654ed3fb4b4d554eac80da790a2dcea333b5f4ca3209bca795" dependencies = [ "ropey", ] [[package]] name = "oxc_diagnostics" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b80f4b05a80879518ebe85a8df9368758ebc1e176327b659e1e97389f8561c7" +checksum = "433f690c5235d132aebde47e385d3e21ef244b28b1f0d1ad3d479b9679bc7be2" dependencies = [ "bytecount", "cow-utils", @@ -4353,13 +4363,14 @@ dependencies = [ [[package]] name = "oxc_ecmascript" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c634665e0be5dde95549146734ab4939b8d1b5d2e7cc006d38b9f5d17a58a2" +checksum = "a3e6e129f51055adb903e0fd5d0d412e1adf2244c7f592596850fc1a3ae33c2b" dependencies = [ "cow-utils", "dragonbox_ecma", "itoa", + "memchr", "num-bigint 0.5.1", "num-traits", "oxc_allocator", @@ -4375,9 +4386,9 @@ dependencies = [ [[package]] name = "oxc_estree" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dcdd8235762cc9305d619842b73c1e89a0ebec8ccf2f27142ef597521443c1f" +checksum = "d20e8ab103436f676b4f2e67838de0f658fe06409804d8f5741ac6ec09b3d539" dependencies = [ "dragonbox_ecma", "itoa", @@ -4397,9 +4408,9 @@ dependencies = [ [[package]] name = "oxc_isolated_declarations" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6d9cef33b435f8a3cf25ac1b130654edf428aee5297602cc02f23d0aa57ffb1" +checksum = "11656ce8f42ac2fd4fee2c3dfed468921077c53674bbe2ba4daf46319b5ffbc5" dependencies = [ "bitflags 2.13.2", "oxc_allocator", @@ -4415,9 +4426,9 @@ dependencies = [ [[package]] name = "oxc_mangler" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357d27012ddc6ec3f519e4190b3c41efef505e0581cc1ae951a72db7728f0ea4" +checksum = "c87d740af4bee684d0e2638c448645c021f44fed7b0282e037e113d2893ef17a" dependencies = [ "itertools 0.15.0", "oxc_allocator", @@ -4434,9 +4445,9 @@ dependencies = [ [[package]] name = "oxc_minifier" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d2be59e492f818fb677c1d16a6677401ed9b35d7fe6c101646aba4e653a288f" +checksum = "c518969f00beccce27bbc2479c0977ee58b9c1a3eb73bea17796c365ce699b61" dependencies = [ "cow-utils", "itoa", @@ -4460,9 +4471,9 @@ dependencies = [ [[package]] name = "oxc_minify_napi" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "265691731f84c14ca3cde6fa49b4b1d311f2f0454f698fc6b4166d6135427531" +checksum = "ae34b4ed3b364f72d3a10ddb38c8b845de31c79fc85f3f1ff9eb9e9e780861c5" dependencies = [ "lazy-regex", "napi", @@ -4483,9 +4494,9 @@ dependencies = [ [[package]] name = "oxc_napi" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc87e0f0e314b3795fe42a9113d2e50d22c80ac80da5be7319ce655354a7be6" +checksum = "0cf048e1586e11ff31814a0ec8af54a4a70b4258b16e2f8d9069197c3b75b4dd" dependencies = [ "napi", "napi-build", @@ -4499,9 +4510,9 @@ dependencies = [ [[package]] name = "oxc_parser" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "635c4e1bb876a9d4ee0e338fa68547a1d75add58637e5c3921fb81ae10a60439" +checksum = "b33d6f23016689c207ecf7ccf62656bbb4b453808e3915dbe562b330f7bf53a0" dependencies = [ "bitflags 2.13.2", "cow-utils", @@ -4523,9 +4534,9 @@ dependencies = [ [[package]] name = "oxc_parser_napi" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7ef8e9199e6874b5a58fd80c721d5d93035ac79c2c098f9b6960459a3d5eb0" +checksum = "245ca8b956a423f592b70c5f71f9afc39c1ff746ba034e74694bc7cd0c46236e" dependencies = [ "napi", "napi-build", @@ -4540,9 +4551,9 @@ dependencies = [ [[package]] name = "oxc_regular_expression" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae3f2c42773d16336a75d5c61dae45a34aea399f0b5399a7a25c8509d79662f" +checksum = "d105b439894681c19d35b9b42e4daac6425f0753ce1a289232502f2d55347468" dependencies = [ "bitflags 2.13.2", "oxc_allocator", @@ -4598,9 +4609,9 @@ dependencies = [ [[package]] name = "oxc_semantic" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b24ee2095e2ddac60c2063b59693bbf2b80936c8a9e036463b153a203857831b" +checksum = "7a6aad2cce0be6fe0967e003927128eff196ba1baec0a8fdf9bafe8908543875" dependencies = [ "itertools 0.15.0", "memchr", @@ -4638,9 +4649,9 @@ dependencies = [ [[package]] name = "oxc_span" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb5bee6f7a9829ddc4d8c05102fe1aa7e2ca31c7ff0bcfbb7069ca977334840" +checksum = "982988d6278f598e8a38ea4ab03b4883b673ac2cb5d96f588a42d8e868eed002" dependencies = [ "compact_str 0.10.0", "oxc_allocator", @@ -4652,9 +4663,9 @@ dependencies = [ [[package]] name = "oxc_str" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c04d966af690d3b780ee4c47436174e558750eed6ca40b07d695fa4910ad8e33" +checksum = "3c0b6c6915f8fc8a395db7065b5b764067a9694c1e88320d095c9e88ce30d28f" dependencies = [ "compact_str 0.10.0", "hashbrown 0.17.1", @@ -4666,9 +4677,9 @@ dependencies = [ [[package]] name = "oxc_syntax" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684d5f6db25b6e3d026582b3926166c80eeda9aac8a879782292c6a33b7d13a0" +checksum = "f0e64bb2b43d48a43636ceaafaed251e98ee79daca32558bfe99664064ff1923" dependencies = [ "bitflags 2.13.2", "cow-utils", @@ -4687,9 +4698,9 @@ dependencies = [ [[package]] name = "oxc_transform_napi" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "850c0d12c170591247b26da38aa83b80488dc92309297685b1b5228e829a279b" +checksum = "6e67fcaafeceeef484edd8fddea405a29d1f4aaab95796c16dd12d15c66389e7" dependencies = [ "napi", "napi-build", @@ -4702,9 +4713,9 @@ dependencies = [ [[package]] name = "oxc_transformer" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec592c64f6455678cbdb76635144f76825fcaf85f9509d814bd6a9e2bfde160" +checksum = "e30a2ba7cc85c085aff8464456f9da27d9d0418018a5c9a09bfd4647801c624f" dependencies = [ "base64 0.23.1", "compact_str 0.10.0", @@ -4732,9 +4743,9 @@ dependencies = [ [[package]] name = "oxc_transformer_plugins" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2470e565dc13884f9a1e1c08d8eaad3c927e807d867a118c0f0287534971327f" +checksum = "89955277e83c2c416f7ce323843ed7d7cbeb2bf3a51ecc51c59967d5b2e485c9" dependencies = [ "cow-utils", "itoa", @@ -4755,9 +4766,9 @@ dependencies = [ [[package]] name = "oxc_traverse" -version = "0.155.0" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ba98ff0dc34cb2e45bcbe3cee395e792298fad77ca63c574766571f859cc56" +checksum = "91916516441681a16b0f66aa8e32e1cca5a945f305450c9ef064489b6f5997e9" dependencies = [ "itoa", "oxc_allocator", @@ -4832,8 +4843,18 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ - "lock_api", - "parking_lot_core", + "lock_api 0.4.14", + "parking_lot_core 0.9.12", +] + +[[package]] +name = "parking_lot" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf937ca4e1d0b7578784559063422fc39ae7c5a00f02471f2614d5486fd226" +dependencies = [ + "lock_api 0.5.0", + "parking_lot_core 0.10.0", ] [[package]] @@ -4844,7 +4865,19 @@ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.18", + "smallvec 1.16.3", + "windows-link", +] + +[[package]] +name = "parking_lot_core" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cfff060068cc18aa7815010fcaf80c68c7fb9e85fc7f5c0f9bf142c21d19826" +dependencies = [ + "libc", + "redox_syscall 0.9.5", "smallvec 1.16.3", "windows-link", ] @@ -5523,6 +5556,15 @@ dependencies = [ "bitflags 2.13.2", ] +[[package]] +name = "redox_syscall" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580c875845b41ecb1564ad1ae4703044cef774145e3d7a94dc2b3fa7c97868fd" +dependencies = [ + "bitflags 2.13.2", +] + [[package]] name = "redox_users" version = "0.5.3" @@ -5555,9 +5597,9 @@ dependencies = [ [[package]] name = "referencing" -version = "0.58.6" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558f3855529c0a7e78a48e409fa653456e55f1b167eab4109c16a255b7727e3f" +checksum = "f42818036d3b37cda6bd4c494543158a36e431cb717015ef7c93acc6ba214d3b" dependencies = [ "ahash", "fluent-uri", @@ -5565,7 +5607,7 @@ dependencies = [ "hashbrown 0.17.1", "itoa", "micromap", - "parking_lot", + "parking_lot 0.12.5", "percent-encoding", "serde_json", ] @@ -5699,7 +5741,7 @@ dependencies = [ [[package]] name = "rolldown" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "append-only-vec", @@ -5887,7 +5929,7 @@ dependencies = [ [[package]] name = "rolldown_common" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", @@ -5915,6 +5957,7 @@ dependencies = [ "schemars", "serde", "serde_json", + "simd-utf16-len", "simdutf8", "smallvec 1.16.3", "string_wizard", @@ -5924,7 +5967,7 @@ dependencies = [ [[package]] name = "rolldown_dev" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", @@ -5945,7 +5988,7 @@ dependencies = [ [[package]] name = "rolldown_dev_common" -version = "1.2.15" +version = "1.2.16" dependencies = [ "derive_more", "rolldown_common", @@ -5957,10 +6000,11 @@ dependencies = [ [[package]] name = "rolldown_devtools" -version = "1.2.15" +version = "1.2.16" dependencies = [ "blake3", "rolldown_devtools_action", + "rolldown_devtools_metrics", "rustc-hash", "serde", "serde_json", @@ -5970,15 +6014,26 @@ dependencies = [ [[package]] name = "rolldown_devtools_action" -version = "1.2.15" +version = "1.2.16" dependencies = [ "serde", "ts-rs", ] +[[package]] +name = "rolldown_devtools_metrics" +version = "1.2.16" +dependencies = [ + "insta", + "rolldown_std_utils", + "rustc-hash", + "serde", + "serde_json", +] + [[package]] name = "rolldown_ecmascript" -version = "1.2.15" +version = "1.2.16" dependencies = [ "arcstr", "oxc", @@ -5990,7 +6045,7 @@ dependencies = [ [[package]] name = "rolldown_ecmascript_utils" -version = "1.2.15" +version = "1.2.16" dependencies = [ "memchr", "oxc", @@ -6000,24 +6055,26 @@ dependencies = [ [[package]] name = "rolldown_error" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", "bitflags 2.13.2", "derive_more", "heck 0.5.0", + "memchr", "napi", "oxc", "oxc_resolver", "rolldown-ariadne", "rustc-hash", + "simd-utf16-len", "sugar_path", ] [[package]] name = "rolldown_fs" -version = "1.2.15" +version = "1.2.16" dependencies = [ "oxc_resolver", "vfs", @@ -6025,7 +6082,7 @@ dependencies = [ [[package]] name = "rolldown_fs_watcher" -version = "1.2.15" +version = "1.2.16" dependencies = [ "globstar", "rolldown-notify", @@ -6040,7 +6097,7 @@ dependencies = [ [[package]] name = "rolldown_plugin" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", @@ -6069,7 +6126,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_asset_module" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "rolldown_common", @@ -6081,7 +6138,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_bundle_analyzer" -version = "1.2.15" +version = "1.2.16" dependencies = [ "arcstr", "rolldown_common", @@ -6095,7 +6152,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_chunk_import_map" -version = "1.2.15" +version = "1.2.16" dependencies = [ "arcstr", "rolldown_common", @@ -6108,7 +6165,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_copy_module" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", @@ -6121,7 +6178,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_data_url" -version = "1.2.15" +version = "1.2.16" dependencies = [ "arcstr", "base64-simd", @@ -6134,7 +6191,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_esm_external_require" -version = "1.2.15" +version = "1.2.16" dependencies = [ "nodejs-built-in-modules", "rolldown_common", @@ -6145,7 +6202,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_hmr" -version = "1.2.15" +version = "1.2.16" dependencies = [ "rolldown_common", "rolldown_plugin", @@ -6153,7 +6210,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_isolated_declaration" -version = "1.2.15" +version = "1.2.16" dependencies = [ "arcstr", "oxc", @@ -6168,7 +6225,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_lazy_compilation" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", @@ -6181,7 +6238,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_oxc_runtime" -version = "1.2.15" +version = "1.2.16" dependencies = [ "arcstr", "phf 0.14.0", @@ -6192,7 +6249,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_replace" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "oxc", @@ -6208,7 +6265,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_utils" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", @@ -6367,7 +6424,7 @@ dependencies = [ [[package]] name = "rolldown_plugin_vite_resolve" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", @@ -6379,7 +6436,7 @@ dependencies = [ "nodejs-built-in-modules", "owo-colors", "oxc_resolver", - "parking_lot", + "parking_lot 0.13.0", "percent-encoding", "pnp", "rolldown_common", @@ -6421,7 +6478,7 @@ dependencies = [ [[package]] name = "rolldown_resolver" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", @@ -6436,7 +6493,7 @@ dependencies = [ [[package]] name = "rolldown_sourcemap" -version = "1.2.15" +version = "1.2.16" dependencies = [ "criterion2", "memchr", @@ -6446,7 +6503,7 @@ dependencies = [ [[package]] name = "rolldown_std_utils" -version = "1.2.15" +version = "1.2.16" dependencies = [ "regex", "sugar_path", @@ -6492,7 +6549,7 @@ dependencies = [ [[package]] name = "rolldown_tracing" -version = "1.2.15" +version = "1.2.16" dependencies = [ "tracing", "tracing-chrome", @@ -6508,7 +6565,7 @@ dependencies = [ [[package]] name = "rolldown_utils" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", @@ -6546,7 +6603,7 @@ dependencies = [ [[package]] name = "rolldown_watcher" -version = "1.2.15" +version = "1.2.16" dependencies = [ "anyhow", "arcstr", @@ -6565,7 +6622,7 @@ dependencies = [ [[package]] name = "rolldown_workspace" -version = "1.2.15" +version = "1.2.16" [[package]] name = "ropey" @@ -6746,9 +6803,9 @@ dependencies = [ [[package]] name = "saphyr" -version = "0.2.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0662b098655e5e779a80041b640702e341cf3ede4560ecc103cf0ef098c8e33e" +checksum = "3aa37a62b2a28868277e83b6f651dc9581751db73d1cb51132c73c0b4ec7f70a" dependencies = [ "hashlink 0.12.2", "ordered-float 5.5.0", @@ -6758,9 +6815,9 @@ dependencies = [ [[package]] name = "saphyr-parser" -version = "0.2.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c6220586c3dacac54bfddec87af86ddb31862d29666e7e35cf4baf70a25d387" +checksum = "48cf5a82d41247a625f040af08e91008fec945bce3b0bffba992c44af092caa2" dependencies = [ "arraydeque", "thiserror 2.0.21", @@ -7048,7 +7105,7 @@ dependencies = [ "futures-util", "log", "once_cell", - "parking_lot", + "parking_lot 0.12.5", "serial_test_derive", ] @@ -7224,6 +7281,12 @@ dependencies = [ "value-trait", ] +[[package]] +name = "simd-utf16-len" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5bd2186ecc8a43c3e9d0114a554beeb5708cc3b7969a8a5866b0d3ec56e5347" + [[package]] name = "simd_cesu8" version = "1.2.0" @@ -7395,7 +7458,7 @@ checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" [[package]] name = "string_wizard" -version = "1.2.15" +version = "1.2.16" dependencies = [ "insta", "memchr", @@ -7404,6 +7467,7 @@ dependencies = [ "regex", "rustc-hash", "serde", + "simd-utf16-len", ] [[package]] @@ -7572,7 +7636,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96374855068f47402c3121c6eed88d29cb1de8f3ab27090e273e420bdabcf050" dependencies = [ "futures", - "parking_lot", + "parking_lot 0.12.5", ] [[package]] @@ -7745,7 +7809,7 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot", + "parking_lot 0.12.5", "pin-project-lite", "signal-hook-registry", "socket2", diff --git a/Cargo.toml b/Cargo.toml index c73d0c7539..89cb824928 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -198,7 +198,7 @@ fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "40cb9cac4 futures = "0.3.32" futures-util = "0.3.31" glob = "0.3.3" -globstar = "0.0.4" +globstar = "0.0.6" heck = "0.5.0" hex = "0.4.3" html5gum = "0.8.1" @@ -215,7 +215,7 @@ itoa = "1.0.18" js-semver = "1.0.0" json-escape-simd = "3.1.1" json-strip-comments = "3" -jsonschema = { version = "0.58.0", default-features = false } +jsonschema = { version = "0.60.0", default-features = false } junction = "2.0.0" libtest-mimic = "0.8.2" memchr = "2.8.2" @@ -240,7 +240,7 @@ nom = "8.0.0" num-bigint = "0.5.1" num_cpus = "1.17" owo-colors = "4.4.0" -parking_lot = "0.12.5" +parking_lot = "0.13.0" pathdiff = "0.2.3" path-posix = "0.0.1" # default features pull in bzip2 (a C dependency) which breaks musl/Windows @@ -263,7 +263,7 @@ rolldown-notify-debouncer-full = "0.8.0" rustc-hash = "2.1.3" rustls = { version = "0.23.46", default-features = false, features = ["ring", "std", "tls12"] } same-file = "1.0.6" -saphyr = { version = "0.2.1", default-features = false } +saphyr = { version = "0.3.0", default-features = false } schemars = "1.2.1" self_cell = "1.2.2" semver = "1.0.26" @@ -273,6 +273,7 @@ serial_test = "4.0.0" sha1 = "0.11.0" sha2 = "0.11.0" shell-escape = "0.1.5" +simd-utf16-len = "0.3.0" simdutf8 = "0.1.5" smallvec = { version = "1.16.0", features = ["union"] } string_cache = "0.11.0" @@ -326,7 +327,7 @@ xxhash-rust = "0.8.16" zip = { version = "9.0", default-features = false, features = ["deflate-flate2-zlib-rs"] } # oxc crates with the same version -oxc = { version = "0.155.0", features = [ +oxc = { version = "0.156.0", features = [ "ast_visit", "transformer", "minifier", @@ -338,17 +339,17 @@ oxc = { version = "0.155.0", features = [ "regular_expression", "cfg", ] } -oxc_allocator = { version = "0.155.0", features = ["pool"] } -oxc_ast = "0.155.0" -oxc_ecmascript = "0.155.0" -oxc_parser = "0.155.0" -oxc_span = "0.155.0" -oxc_napi = "0.155.0" -oxc_str = "0.155.0" -oxc_minify_napi = "0.155.0" -oxc_parser_napi = "0.155.0" -oxc_transform_napi = "0.155.0" -oxc_traverse = "0.155.0" +oxc_allocator = { version = "0.156.0", features = ["pool"] } +oxc_ast = "0.156.0" +oxc_ecmascript = "0.156.0" +oxc_parser = "0.156.0" +oxc_span = "0.156.0" +oxc_napi = "0.156.0" +oxc_str = "0.156.0" +oxc_minify_napi = "0.156.0" +oxc_parser_napi = "0.156.0" +oxc_transform_napi = "0.156.0" +oxc_traverse = "0.156.0" # oxc crates in their own repos oxc_index = { version = "5", features = ["rayon", "serde"] } @@ -371,6 +372,7 @@ rolldown_dev = { path = "./rolldown/crates/rolldown_dev" } rolldown_dev_common = { path = "./rolldown/crates/rolldown_dev_common" } rolldown_devtools = { path = "./rolldown/crates/rolldown_devtools" } rolldown_devtools_action = { path = "./rolldown/crates/rolldown_devtools_action" } +rolldown_devtools_metrics = { path = "./rolldown/crates/rolldown_devtools_metrics" } rolldown_ecmascript = { path = "./rolldown/crates/rolldown_ecmascript" } rolldown_ecmascript_utils = { path = "./rolldown/crates/rolldown_ecmascript_utils" } rolldown_error = { path = "./rolldown/crates/rolldown_error" } diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_helper/snapshots/command_helper.md b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_helper/snapshots/command_helper.md index dabe9a3dd9..cad4d3f5e2 100644 --- a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_helper/snapshots/command_helper.md +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_helper/snapshots/command_helper.md @@ -77,7 +77,7 @@ Options: --from-vite [vitest] Reuse config from Vite or Vitest --report Size report (default: true) --env.* Define compile-time env variables - --env-file Load environment variables from a file, when used together with --env, variables in --env take precedence + --env-file Load environment variables from a file, can be repeated --env-prefix Prefix for env variables to inject into the bundle (default: VITE_PACK_, TSDOWN_) --on-success Command to run on success --copy Copy files to output dir diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack/snapshots/command_pack.md b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack/snapshots/command_pack.md index 1552e7578a..386e5cce82 100644 --- a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack/snapshots/command_pack.md +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack/snapshots/command_pack.md @@ -41,7 +41,7 @@ Options: --from-vite [vitest] Reuse config from Vite or Vitest --report Size report (default: true) --env.* Define compile-time env variables - --env-file Load environment variables from a file, when used together with --env, variables in --env take precedence + --env-file Load environment variables from a file, can be repeated --env-prefix Prefix for env variables to inject into the bundle (default: VITE_PACK_, TSDOWN_) --on-success Command to run on success --copy Copy files to output dir diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_tool_help/snapshots/command_tool_help.md b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_tool_help/snapshots/command_tool_help.md index f5cc6bf2d6..78b150fbbe 100644 --- a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_tool_help/snapshots/command_tool_help.md +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_tool_help/snapshots/command_tool_help.md @@ -259,7 +259,7 @@ Options: --from-vite [vitest] Reuse config from Vite or Vitest --report Size report (default: true) --env.* Define compile-time env variables - --env-file Load environment variables from a file, when used together with --env, variables in --env take precedence + --env-file Load environment variables from a file, can be repeated --env-prefix Prefix for env variables to inject into the bundle (default: VITE_PACK_, TSDOWN_) --on-success Command to run on success --copy Copy files to output dir diff --git a/packages/cli/binding/index.d.cts b/packages/cli/binding/index.d.cts index d6c7942c09..3f25e0aab7 100644 --- a/packages/cli/binding/index.d.cts +++ b/packages/cli/binding/index.d.cts @@ -2018,6 +2018,12 @@ export declare class BindingOutputChunk { getImports(): Array; getDynamicImports(): Array; getCode(): string; + /** + * Identity of the shared chunk data behind this object. Two `BindingOutputChunk` objects with the same + * identity share the same data, so a JavaScript string made from `getCode()` of one is valid for the other. + * The identity is the address of that data. It stays unique while a `BindingOutputChunk` keeps the data alive. + */ + getCodeIdentity(): number; getMap(): string | null; getSourcemapFileName(): string | null; getPreliminaryFileName(): string; @@ -2067,6 +2073,8 @@ export declare class BindingRenderedChunkMeta { export declare class BindingRenderedModule { get code(): string | null; + /** `code.length` without materializing `code`. */ + get renderedLength(): number; get renderedExports(): Array; } @@ -2323,6 +2331,12 @@ export interface BindingDevOptions { export interface BindingDevtoolsOptions { sessionId?: string; + /** + * `"full"` (default): write JSON-lines devtools logs. `"report"`: aggregate the same + * event stream in-memory and emit an agent-readable report (`metrics.json` + markdown) + * under `node_modules/.rolldown/report/` instead. + */ + mode?: 'full' | 'report'; } export interface BindingDevWatchOptions { diff --git a/packages/cli/src/help.ts b/packages/cli/src/help.ts index 78add4e79b..f22857b4ae 100644 --- a/packages/cli/src/help.ts +++ b/packages/cli/src/help.ts @@ -908,8 +908,7 @@ const commandHelpDocs = { }, { label: '--env-file ', - description: - 'Load environment variables from a file, when used together with --env, variables in --env take precedence', + description: 'Load environment variables from a file, can be repeated', }, { label: '--env-prefix ', diff --git a/packages/cli/src/pack-bin.ts b/packages/cli/src/pack-bin.ts index f788d44bf2..418a96e6a3 100644 --- a/packages/cli/src/pack-bin.ts +++ b/packages/cli/src/pack-bin.ts @@ -121,10 +121,7 @@ cli .option('--from-vite [vitest]', 'Reuse config from Vite or Vitest') .option('--report', 'Size report', { default: true }) .option('--env.* ', 'Define compile-time env variables') - .option( - '--env-file ', - 'Load environment variables from a file, when used together with --env, variables in --env take precedence', - ) + .option('--env-file ', 'Load environment variables from a file, can be repeated') .option('--env-prefix ', 'Prefix for env variables to inject into the bundle', { default: DEFAULT_ENV_PREFIXES, }) diff --git a/packages/core/package.json b/packages/core/package.json index ae8158c65d..e9bcbb83af 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -240,7 +240,7 @@ }, "bundledVersions": { "vite": "8.3.5", - "rolldown": "1.2.15", - "tsdown": "0.23.3" + "rolldown": "1.2.16", + "tsdown": "0.23.4" } } diff --git a/packages/tools/.upstream-versions.json b/packages/tools/.upstream-versions.json index 0f36e2b027..67708e57af 100644 --- a/packages/tools/.upstream-versions.json +++ b/packages/tools/.upstream-versions.json @@ -2,7 +2,7 @@ "rolldown": { "repo": "https://github.com/rolldown/rolldown.git", "branch": "main", - "hash": "89d821ca07cf9ccd84dd92bd3f48af0f579ab21a" + "hash": "de6facf2228279718e042b801dd6b60dd6503918" }, "vite": { "repo": "https://github.com/vitejs/vite.git", diff --git a/packages/tools/src/__tests__/brand-vite.spec.ts b/packages/tools/src/__tests__/brand-vite.spec.ts index d6833c7af0..18d8cd9d46 100644 --- a/packages/tools/src/__tests__/brand-vite.spec.ts +++ b/packages/tools/src/__tests__/brand-vite.spec.ts @@ -61,6 +61,22 @@ const upstreamSources = { ].join('\n'), }; +const dtsConfigSource = [ + ' plugins: [', + ' esmifyPostcssLoadConfigDts(),', + ' patchTypes(),', + ' addNodePrefix(),', + ' dts({', + ' emitDtsOnly: true,', + ' }),', + ' ],', + '}', + '', + 'function addNodePrefix(): Plugin {', + '}', + '', +].join('\n'); + function write(file: string, source: string) { mkdirSync(dirname(file), { recursive: true }); writeFileSync(file, source); @@ -69,6 +85,7 @@ function write(file: string, source: string) { function createUpstreamFixture(configSource = upstreamSources['config.ts']): { root: string; nodeDir: string; + dtsConfig: string; manifest: string; lockfile: string; unrelatedSource: string; @@ -80,9 +97,11 @@ function createUpstreamFixture(configSource = upstreamSources['config.ts']): { for (const [file, source] of Object.entries(upstreamSources)) { write(join(nodeDir, file), file === 'config.ts' ? configSource : source); } + const dtsConfig = join(viteDir, 'packages/vite/rolldown.dts.config.ts'); const manifest = join(viteDir, 'packages/vite/package.json'); const lockfile = join(viteDir, 'pnpm-lock.yaml'); const unrelatedSource = join(nodeDir, 'server.ts'); + write(dtsConfig, dtsConfigSource); write(manifest, '{"devDependencies":{"@vitest/utils":"4.1.10"}}\n'); write(lockfile, '# upstream lockfile\n'); write(unrelatedSource, '// upstream source\n'); @@ -102,11 +121,11 @@ function createUpstreamFixture(configSource = upstreamSources['config.ts']): { 'upstream fixture', ); - return { root, nodeDir, manifest, lockfile, unrelatedSource }; + return { root, nodeDir, dtsConfig, manifest, lockfile, unrelatedSource }; } test('branding preserves aligned dependencies and unrelated changes across repeated builds', () => { - const { root, nodeDir, manifest, lockfile, unrelatedSource } = createUpstreamFixture(); + const { root, nodeDir, dtsConfig, manifest, lockfile, unrelatedSource } = createUpstreamFixture(); try { alignVendoredVitestDependencies(root, '5.0.0'); const alignedManifest = readFileSync(manifest, 'utf8'); @@ -127,11 +146,16 @@ test('branding preserves aligned dependencies and unrelated changes across repea expect(() => assertViteConfigPatched(configSource)).not.toThrow(); expect(configSource).toContain('false &&\n createNativeConfigCompatPlugin'); expect(configSource).not.toContain('!process.env.VITE_CONFIG_NATIVE_IGNORE_WARNING'); + const patchedDtsConfig = readFileSync(dtsConfig, 'utf8'); + expect(patchedDtsConfig).toContain('removeOrphanRuntimeChunk(),'); + expect(patchedDtsConfig).toContain('function removeOrphanRuntimeChunk(): Plugin {'); + expect(patchedDtsConfig).not.toBe(dtsConfigSource); const sources = Object.entries(upstreamSources).map(([file, upstream]) => { const source = readFileSync(join(nodeDir, file), 'utf8'); expect(source).not.toBe(upstream); return source; }); + sources.push(patchedDtsConfig); if (brandedSources) { expect(sources).toEqual(brandedSources); } diff --git a/packages/tools/src/__tests__/patch-oxc-node.spec.ts b/packages/tools/src/__tests__/patch-oxc-node.spec.ts index 7b1b67df23..a91e52a99f 100644 --- a/packages/tools/src/__tests__/patch-oxc-node.spec.ts +++ b/packages/tools/src/__tests__/patch-oxc-node.spec.ts @@ -1,6 +1,10 @@ import { describe, expect, test } from 'vitest'; -import { exposeLoaderInitialization, setOxcVersion } from '../patch-oxc-node.ts'; +import { + exposeLoaderInitialization, + fixOxc156ApiRenames, + setOxcVersion, +} from '../patch-oxc-node.ts'; describe('setOxcVersion', () => { const cargoToml = `[dependencies] @@ -50,3 +54,24 @@ pub fn transform_async_js() {} ).toThrow(/freezeTsconfig registration/); }); }); + +describe('fixOxc156ApiRenames', () => { + const source = `fn visit_variable_declaration(&mut self, it: &VariableDeclaration<'a>) { + self.0 |= it.kind.is_await(); + walk::walk_variable_declaration(self, it); +} +`; + + test('follows the oxc 0.156 rename and stays idempotent', () => { + const patched = fixOxc156ApiRenames(source); + expect(patched).toContain('it.kind.is_await_using()'); + expect(patched).not.toContain('it.kind.is_await()'); + expect(fixOxc156ApiRenames(patched)).toBe(patched); + }); + + test('fails when upstream drops the renamed call', () => { + expect(() => fixOxc156ApiRenames(source.replace('is_await()', 'is_lexical()'))).toThrow( + /`is_await` call/, + ); + }); +}); diff --git a/packages/tools/src/brand-vite.ts b/packages/tools/src/brand-vite.ts index c06229c141..ef6e4cb723 100644 --- a/packages/tools/src/brand-vite.ts +++ b/packages/tools/src/brand-vite.ts @@ -12,6 +12,9 @@ * 4. logger.ts: Change default prefix from '[vite]' to '[vite+]' * 5. plugins/reporter.ts: Suppress redundant "vite v" native reporter line * 6. config.ts: Suppress the native-loader notice and support an explicit root base + * 7. rolldown.dts.config.ts: Drop the orphan `rolldown-runtime` d.ts chunk that + * rolldown >= 1.2.16 emits in `emitDtsOnly` builds (nothing imports it and + * its undeclared `__exportAll` re-export fails `tsconfig.check.json`) */ import { execFileSync } from 'node:child_process'; @@ -122,6 +125,9 @@ export function brandVite(rootDir: string = process.cwd()): void { ], { cwd: nodeDir }, ); + execFileSync('git', ['restore', '--source=HEAD', '--', 'rolldown.dts.config.ts'], { + cwd: join(rootDir, VITE_DIR, 'packages', 'vite'), + }); // 1. constants.ts: Add VITE_PLUS_VERSION constant after VERSION const constantsFile = join(nodeDir, 'constants.ts'); @@ -232,5 +238,61 @@ export function brandVite(rootDir: string = process.cwd()): void { patchedConfig === configSource ? 'already' : 'patched', ); + // 7. rolldown.dts.config.ts: rolldown >= 1.2.16 places the JS runtime + // helpers in a standalone `rolldown-runtime` chunk. In `emitDtsOnly` builds + // the helper bodies are treeshaken and no chunk imports the runtime, leaving + // an orphan d.ts whose `export { __exportAll as t }` has no declaration and + // fails `tsc --project tsconfig.check.json`. Drop the chunk from the bundle + // while it stays unreferenced. + const dtsConfigFile = join(rootDir, VITE_DIR, 'packages', 'vite', 'rolldown.dts.config.ts'); + const dtsConfigResults = [ + replaceInFile( + dtsConfigFile, + ' addNodePrefix(),\n dts({', + ' addNodePrefix(),\n removeOrphanRuntimeChunk(),\n dts({', + ), + replaceInFile( + dtsConfigFile, + 'function addNodePrefix(): Plugin {', + `// Vite+: drop the orphan rolldown-runtime d.ts chunk (see brand-vite.ts). +function removeOrphanRuntimeChunk(): Plugin { + return { + name: 'remove-orphan-runtime-chunk', + generateBundle: { + // Run after rolldown-plugin-dts drops the JS chunk twins so only + // surviving d.ts chunks count as references. The \`imports\` metadata + // still lists the runtime chunk from the JS chunk graph, so check the + // emitted code instead. + order: 'post', + handler(_options, bundle) { + const runtimeFile = Object.keys(bundle).find((fileName) => + fileName.endsWith('rolldown-runtime.d.ts'), + ) + if (!runtimeFile) { + return + } + const isReferenced = Object.values(bundle).some( + (item) => + item.type === 'chunk' && + item.fileName !== runtimeFile && + item.code.includes('rolldown-runtime'), + ) + if (!isReferenced) { + delete bundle[runtimeFile] + } + }, + }, + } +} + +function addNodePrefix(): Plugin {`, + ), + ]; + logPatch( + 'rolldown.dts.config.ts', + 'Dropped orphan rolldown-runtime d.ts chunk from the bundle', + dtsConfigResults.includes('patched') ? 'patched' : 'already', + ); + log('Done!'); } diff --git a/packages/tools/src/patch-oxc-node.ts b/packages/tools/src/patch-oxc-node.ts index 30ba0bb141..21f988e3af 100644 --- a/packages/tools/src/patch-oxc-node.ts +++ b/packages/tools/src/patch-oxc-node.ts @@ -56,6 +56,24 @@ export function exposeLoaderInitialization(source: string): string { return source; } +/** + * Follow oxc 0.156's rename of `VariableDeclarationKind::is_await` to + * `is_await_using`; both return `self == Self::AwaitUsing`. Upstream oxc-node + * still calls the 0.155 name. Drop this patch once the vendored source calls + * `is_await_using` on its own. + */ +export function fixOxc156ApiRenames(source: string): string { + const original = 'it.kind.is_await()'; + const replacement = 'it.kind.is_await_using()'; + if (source.includes(replacement)) { + return source; + } + if (!source.includes(original)) { + throw new Error('[patch-oxc-node] Could not find the `is_await` call in oxc-node/src/lib.rs'); + } + return source.replace(original, replacement); +} + export function patchOxcNode(rootDir: string = process.cwd()): void { const version = oxcVersion(readFileSync(join(rootDir, 'Cargo.toml'), 'utf-8'), 'Cargo.toml'); const cargoTomlPath = join(rootDir, OXC_NODE_DIR, 'Cargo.toml'); @@ -67,7 +85,7 @@ export function patchOxcNode(rootDir: string = process.cwd()): void { } const libPath = join(rootDir, OXC_NODE_DIR, 'src/lib.rs'); const source = readFileSync(libPath, 'utf-8'); - const patchedSource = exposeLoaderInitialization(source); + const patchedSource = fixOxc156ApiRenames(exposeLoaderInitialization(source)); if (patchedSource !== source) { writeFileSync(libPath, patchedSource, 'utf-8'); log('✓ lib.rs: loader initialization available to embedders'); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e836562d77..6fb4cbd29c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -171,17 +171,17 @@ catalogs: specifier: ^0.8.1 version: 0.8.1 '@emnapi/core': - specifier: 2.0.0-alpha.5 - version: 2.0.0-alpha.5 + specifier: 2.0.0-beta.2 + version: 2.0.0-beta.2 '@emnapi/runtime': - specifier: 2.0.0-alpha.5 - version: 2.0.0-alpha.5 + specifier: 2.0.0-beta.2 + version: 2.0.0-beta.2 '@napi-rs/cli': specifier: ^3.10.0 version: 3.10.3 '@napi-rs/wasm-runtime': - specifier: ~1.2.5 - version: 1.2.5 + specifier: 1.2.6 + version: 1.2.6 '@nkzw/safe-word-list': specifier: ^3.1.0 version: 3.1.0 @@ -204,11 +204,11 @@ catalogs: specifier: ^1.0.0 version: 1.0.1 '@tsdown/css': - specifier: ^0.23.3 - version: 0.23.3 + specifier: ^0.23.4 + version: 0.23.4 '@tsdown/exe': - specifier: ^0.23.3 - version: 0.23.3 + specifier: ^0.23.4 + version: 0.23.4 '@types/cross-spawn': specifier: ^6.0.6 version: 6.0.6 @@ -252,7 +252,7 @@ catalogs: specifier: ^0.13.2 version: 0.13.2 cac: - specifier: ^7.0.0 + specifier: ^7.1.0 version: 7.1.0 consola: specifier: ^3.4.2 @@ -267,8 +267,8 @@ catalogs: specifier: ^4.0.1 version: 4.0.1 emnapi: - specifier: 2.0.0-alpha.5 - version: 2.0.0-alpha.5 + specifier: 2.0.0-beta.2 + version: 2.0.0-beta.2 execa: specifier: ^9.2.0 version: 9.6.1 @@ -321,8 +321,8 @@ catalogs: specifier: ^1.57.0 version: 1.62.1 remeda: - specifier: ^2.50.0 - version: 2.50.0 + specifier: ^2.53.0 + version: 2.56.0 rolldown-plugin-dts: specifier: ^0.28.0 version: 0.28.8 @@ -342,8 +342,8 @@ catalogs: specifier: ^0.2.15 version: 0.2.17 tsdown: - specifier: ^0.23.3 - version: 0.23.3 + specifier: ^0.23.4 + version: 0.23.4 typescript: specifier: ~7.0.2 version: 7.0.2 @@ -390,13 +390,13 @@ importers: version: 0.8.1(eslint@9.39.5(jiti@2.7.0)(supports-color@8.1.1))(oxlint@1.90.0(oxlint-tsgolint@7.0.2005)(vite-plus@packages+cli)) '@emnapi/core': specifier: 'catalog:' - version: 2.0.0-alpha.5 + version: 2.0.0-beta.2 '@emnapi/runtime': specifier: 'catalog:' - version: 2.0.0-alpha.5 + version: 2.0.0-beta.2 '@napi-rs/cli': specifier: 'catalog:' - version: 3.10.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(@types/node@24.10.3)(emnapi@2.0.0-alpha.5(node-addon-api@7.1.1))(supports-color@8.1.1) + version: 3.10.3(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)(@types/node@24.10.3)(emnapi@2.0.0-beta.2(node-addon-api@7.1.1))(supports-color@8.1.1) '@oxc-node/cli': specifier: 'catalog:' version: 1.0.1 @@ -478,13 +478,13 @@ importers: devDependencies: '@emnapi/core': specifier: 'catalog:' - version: 2.0.0-alpha.5 + version: 2.0.0-beta.2 '@emnapi/runtime': specifier: 'catalog:' - version: 2.0.0-alpha.5 + version: 2.0.0-beta.2 '@napi-rs/cli': specifier: 'catalog:' - version: 3.10.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(@types/node@24.10.3)(emnapi@2.0.0-alpha.5(node-addon-api@7.1.1))(supports-color@8.1.1) + version: 3.10.3(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)(@types/node@24.10.3)(emnapi@2.0.0-beta.2(node-addon-api@7.1.1))(supports-color@8.1.1) '@nkzw/safe-word-list': specifier: 'catalog:' version: 3.1.0 @@ -544,7 +544,7 @@ importers: version: 0.2.17 tsdown: specifier: 'catalog:' - version: 0.23.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.3)(@tsdown/exe@0.23.3)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + version: 0.23.4(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.4)(@tsdown/exe@0.23.4)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) validate-npm-package-name: specifier: 'catalog:' version: 8.0.0 @@ -635,22 +635,22 @@ importers: version: 0.51.0 '@emnapi/core': specifier: 'catalog:' - version: 2.0.0-alpha.5 + version: 2.0.0-beta.2 '@emnapi/runtime': specifier: 'catalog:' - version: 2.0.0-alpha.5 + version: 2.0.0-beta.2 '@napi-rs/cli': specifier: 'catalog:' - version: 3.10.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(@types/node@24.19.2)(emnapi@2.0.0-alpha.5(node-addon-api@7.1.1))(supports-color@8.1.1) + version: 3.10.3(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)(@types/node@24.19.2)(emnapi@2.0.0-beta.2(node-addon-api@7.1.1))(supports-color@8.1.1) '@oxc-node/cli': specifier: 'catalog:' version: 1.0.1 '@tsdown/css': specifier: 'catalog:' - version: 0.23.3(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.3)(tsx@4.23.15)(yaml@2.9.1) + version: 0.23.4(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.4)(tsx@4.23.15)(yaml@2.9.1) '@tsdown/exe': specifier: 'catalog:' - version: 0.23.3(tsdown@0.23.3) + version: 0.23.4(tsdown@0.23.4) '@typescript/native-preview': specifier: 'catalog:' version: 7.0.0-dev.20260707.2 @@ -701,7 +701,7 @@ importers: version: 1.2.2 tsdown: specifier: 'catalog:' - version: 0.23.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.3)(@tsdown/exe@0.23.3)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + version: 0.23.4(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.4)(@tsdown/exe@0.23.4)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) typescript: specifier: 'catalog:' version: 7.0.2 @@ -742,7 +742,7 @@ importers: version: 2.1.0 tsdown: specifier: 'catalog:' - version: 0.23.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.3)(@tsdown/exe@0.23.3)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + version: 0.23.4(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.4)(@tsdown/exe@0.23.4)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) packages/tools: devDependencies: @@ -771,8 +771,8 @@ importers: specifier: 'catalog:' version: 24.10.3 cjs-module-lexer: - specifier: ^2.1.0 - version: 2.1.1 + specifier: ^2.3.0 + version: 2.3.0 knip: specifier: ^6.39.0 version: 6.39.0 @@ -783,8 +783,8 @@ importers: specifier: ^0.3.21 version: 0.3.24 remove-unused-vars: - specifier: ^0.0.15 - version: 0.0.15 + specifier: ^0.0.16 + version: 0.0.16 rolldown: specifier: workspace:rolldown@* version: link:packages/rolldown @@ -806,16 +806,16 @@ importers: devDependencies: '@emnapi/core': specifier: 'catalog:' - version: 2.0.0-alpha.5 + version: 2.0.0-beta.2 '@emnapi/runtime': specifier: 'catalog:' - version: 2.0.0-alpha.5 + version: 2.0.0-beta.2 '@napi-rs/cli': specifier: 'catalog:' - version: 3.10.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(@types/node@24.10.3)(emnapi@2.0.0-alpha.5(node-addon-api@7.1.1))(supports-color@8.1.1) + version: 3.10.3(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)(@types/node@24.10.3)(emnapi@2.0.0-beta.2(node-addon-api@7.1.1))(supports-color@8.1.1) '@napi-rs/wasm-runtime': specifier: 'catalog:' - version: 1.2.5(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5) + version: 1.2.6(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2) '@oxc-node/cli': specifier: 'catalog:' version: 1.0.1 @@ -827,7 +827,7 @@ importers: version: 3.4.2 emnapi: specifier: 'catalog:' - version: 2.0.0-alpha.5(node-addon-api@7.1.1) + version: 2.0.0-beta.2(node-addon-api@7.1.1) execa: specifier: 'catalog:' version: 9.6.1 @@ -845,7 +845,7 @@ importers: version: 2.0.3 remeda: specifier: 'catalog:' - version: 2.50.0 + version: 2.56.0 rolldown: specifier: workspace:rolldown@* version: 'link:' @@ -1474,8 +1474,8 @@ packages: '@emnapi/core@1.9.2': resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} - '@emnapi/core@2.0.0-alpha.5': - resolution: {integrity: sha512-DbeLFquQJyYGwM3LzPdjvb4IRmAAQuTzEmqUGtIAYxlAO4ArfUZ7WMytLWDSsCAYm6MZJNeojaawQQiFrFVehg==} + '@emnapi/core@2.0.0-beta.2': + resolution: {integrity: sha512-MzCVoWtcg4Pm2B3je5mMvYMvj3MmBKw+fU7vbsJc9/iT8ip6/eYIHo/Dsm/mr+wsHB6SEyJDuxB09Yy6r/8+4A==} '@emnapi/runtime@1.11.2': resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} @@ -1483,8 +1483,8 @@ packages: '@emnapi/runtime@1.9.2': resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} - '@emnapi/runtime@2.0.0-alpha.5': - resolution: {integrity: sha512-SS4jUXRklsrPKTEtW92WHdneh9QBrZGmRyeYEac2ktLN3ie1wd/BrkBbk4DqPWKhjSFfrR8NClXwMlfZ73m60A==} + '@emnapi/runtime@2.0.0-beta.2': + resolution: {integrity: sha512-JcrSPzPvZuNZvJqPTF9Fw25LbOJ8avzFVlaf2grmH4Cku0oGP47tRgqPZadcfj3YoZMHkFVnCYFbQM8I+i5QEw==} '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -1492,8 +1492,8 @@ packages: '@emnapi/wasi-threads@1.2.2': resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} - '@emnapi/wasi-threads@2.1.0': - resolution: {integrity: sha512-DM18NXgQ5coifswrwhFgrqeW/UiFRaLj0aLKU0cp0FoYjEfP/hj/yUeF+Hz754ViG+jQmG2HIeDCUeQsPnRwOA==} + '@emnapi/wasi-threads@2.2.0': + resolution: {integrity: sha512-JP7OYH38Q7+pyTAe14raZHLQIK7BDKbdwji+Xi3pcd/6QkJYQH3SX4wu6EplGrGJWRepoNzedfm0G3B9Z4e9Rw==} '@esbuild/aix-ppc64@0.28.2': resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==} @@ -2157,12 +2157,12 @@ packages: resolution: {integrity: sha512-7cmzIu+Vbupriudo7UudoMRH2OA3cTw67vva8MxeoAe5S7vPFI7z0vp0pMXiA25S8IUJefImQ90FeJjl8fjEaQ==} engines: {node: '>= 10'} - '@napi-rs/wasm-runtime@1.2.5': - resolution: {integrity: sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA==} + '@napi-rs/wasm-runtime@1.2.6': + resolution: {integrity: sha512-mRyDmEw9/fCDXCGfL1sbgIw/GUK0PVxRW4YwgPN61F3LQ+fSyoBFarJVzgGyhF6kRzEQZ0FejDqm4WLXSeqQmw==} engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} peerDependencies: - '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4 - '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4 + '@emnapi/core': ^1.7.1 || 2.0.0-beta.2 + '@emnapi/runtime': ^1.7.1 || 2.0.0-beta.2 '@napi-rs/wasm-tools-android-arm-eabi@1.1.0': resolution: {integrity: sha512-p6J8PB59I8d/XItXB/go5JH6nKW+xIbpzaL43EBTV0hi7mrS/Z4gs+MsB04ZrlqZN29BdZV8fChRyasuXLhRaA==} @@ -3541,8 +3541,8 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@tsdown/css@0.23.3': - resolution: {integrity: sha512-cQ1MIWt85eBZDxG/y0qYytK1wJTHml2BANuUH7ATmY5qUA3GlR2zt6ds3rW9IWkVDZDkfFj1ZNJLYiRMZKuoPw==} + '@tsdown/css@0.23.4': + resolution: {integrity: sha512-lkEj33E0r7KhmiTQC+UYkOUoe5W50eHsDXoloDkj52OMFxAUfRieF1k4QcOIqMFKd7s0BjFHD8PFElnThVLHGA==} engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} peerDependencies: postcss: ^8.4.0 @@ -3550,7 +3550,7 @@ packages: postcss-modules: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 sass: '*' sass-embedded: '*' - tsdown: 0.23.3 + tsdown: 0.23.4 peerDependenciesMeta: postcss: optional: true @@ -3563,11 +3563,11 @@ packages: sass-embedded: optional: true - '@tsdown/exe@0.23.3': - resolution: {integrity: sha512-6nBWnNK/hSoUh1u2ADYkoQRrPRpm7cjwTA3Sl/1lZQvYjHVV/GSDIFElCpMtui5ryI2umUf1EvMnThE2r0gjDw==} + '@tsdown/exe@0.23.4': + resolution: {integrity: sha512-rU76qeRlEmDAD3wj03BIfN83GKCpqabe4IOuG09XLopngbwHUsxw14fSJYZqMliep6b/r8zm+tH3hP5361GUNw==} engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} peerDependencies: - tsdown: 0.23.3 + tsdown: 0.23.4 '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} @@ -4316,8 +4316,8 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - cjs-module-lexer@2.1.1: - resolution: {integrity: sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==} + cjs-module-lexer@2.3.0: + resolution: {integrity: sha512-lmNyBzi6iYiqyrExTctfmjd8tInx+dHu9PBomTfH5RXS53c27JMFJgzNv5TyAnm3PgGf+MLy0+Ws41/HlVxdKQ==} cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} @@ -4617,8 +4617,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - emnapi@2.0.0-alpha.5: - resolution: {integrity: sha512-E8LRA0oYT1KKPLMLtwWF1BNrXSpNNnOBlu1PU4m5wmBh8cNvrhm28UreTvfwJ2gg60ruyfylk4uCaJUXVhvSSg==} + emnapi@2.0.0-beta.2: + resolution: {integrity: sha512-ZO2KS7bFQNo8zcDl5nWW55nvZBfC+msrGRezZn6OoJJQKXGOWVp6RYw25wdJkDIIADrAJjf4XEQAbtancmeH7w==} peerDependencies: node-addon-api: '>= 6.1.0' peerDependenciesMeta: @@ -6020,12 +6020,12 @@ packages: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - remeda@2.50.0: - resolution: {integrity: sha512-pzljnP7Gnl/lLz5WcOSkxEGCjcK4dteQihQjRrtKCGqn8J6jD0BHwfU6pRrXjvQV2EWe+HdgtfZW7rDdmKn8uQ==} + remeda@2.56.0: + resolution: {integrity: sha512-PVDXhxnOm2j9eZ73g6TUUmfnfa4IRMCy0d/9yYYCmpT+I8jtvZAfBEwfr/+A4OMQDP+0HbQQ9g0zpepOLSGWiA==} engines: {node: '>=18.0.0'} - remove-unused-vars@0.0.15: - resolution: {integrity: sha512-C2jpxjTW8uL0zDkupIjWUdMbArjDnR2NIWyUGa2+fF27AXzrzFAoOLpgn4oMd3jv0/b/MB52nSz0otN9nWYeOQ==} + remove-unused-vars@0.0.16: + resolution: {integrity: sha512-O6fcjBMeg6XfAc0AuRvMUT/Fi0D3W6pXjLVWil4HbLuAznGLLOpmsWZs+tBj0Auy7w2XJtGliv26E4PUNjtS9w==} hasBin: true require-directory@2.1.1: @@ -6519,6 +6519,9 @@ packages: resolution: {integrity: sha512-jBrmx4lYmaC9k/mgPbylxs7kBUxHtD8256up+HjLaDFfXScKJQyil+SWXSvhAtT7XHo+yTVlpB81PGmHP8oLSQ==} engines: {node: ^20.0.0 || >=22.0.0} + tinyps@0.5.1: + resolution: {integrity: sha512-B6Ykif5HflC3AdDkS4Zst/2muYVfeXoVMy+KorqH80s/1x4vunIORpNySH681X7fjj+dFM9MDKD6/Hsccjb87Q==} + tinyrainbow@3.2.0: resolution: {integrity: sha512-LgO3D9yZJjApUiuUfl9iFAwrtaX4+lok3wJIqttGoKCHlWUqHqbQpnxCf82L8FjgKsh4iGo78hqJwgL8F6To2A==} engines: {node: '>=14.0.0'} @@ -6559,14 +6562,14 @@ packages: peerDependencies: typescript: '>=4.0.0' - tsdown@0.23.3: - resolution: {integrity: sha512-yAju1F5b7GDEPCLl4ewM3g54lq0NyyYpFnK2lh/ax7/uznmsn4wBOS9/49pI3cGvxtj2LoOjBUtzaT17UEQkhQ==} + tsdown@0.23.4: + resolution: {integrity: sha512-AQQ/2Y7KBnf15GL4Ynjdltc94PkbKRI+arStyrp7inSQkRmTWNiXgfv50ESsjhBEsoVtiSloCAO2VyrqojWIOQ==} engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.23.3 - '@tsdown/exe': 0.23.3 + '@tsdown/css': 0.23.4 + '@tsdown/exe': 0.23.4 '@vitejs/devtools': '*' publint: ^0.3.8 tsx: '*' @@ -7259,9 +7262,9 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/core@2.0.0-alpha.5': + '@emnapi/core@2.0.0-beta.2': dependencies: - '@emnapi/wasi-threads': 2.1.0 + '@emnapi/wasi-threads': 2.2.0 tslib: 2.8.1 '@emnapi/runtime@1.11.2': @@ -7274,7 +7277,7 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@2.0.0-alpha.5': + '@emnapi/runtime@2.0.0-beta.2': dependencies: tslib: 2.8.1 @@ -7288,7 +7291,7 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@2.1.0': + '@emnapi/wasi-threads@2.2.0': dependencies: tslib: 2.8.1 @@ -7721,10 +7724,10 @@ snapshots: '@modelcontextprotocol/core': 2.3.1 zod: 4.6.5 - '@napi-rs/cli@3.10.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(@types/node@24.10.3)(emnapi@2.0.0-alpha.5(node-addon-api@7.1.1))(supports-color@8.1.1)': + '@napi-rs/cli@3.10.3(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)(@types/node@24.10.3)(emnapi@2.0.0-beta.2(node-addon-api@7.1.1))(supports-color@8.1.1)': dependencies: '@inquirer/prompts': 8.5.2(@types/node@24.10.3) - '@napi-rs/cross-toolchain': 1.0.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(supports-color@8.1.1) + '@napi-rs/cross-toolchain': 1.0.3(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)(supports-color@8.1.1) '@napi-rs/wasm-tools': 1.1.0 '@octokit/rest': 22.0.1 clipanion: 4.0.0-rc.4(typanion@3.14.0) @@ -7736,9 +7739,9 @@ snapshots: typanion: 3.14.0 typescript: 6.0.3 optionalDependencies: - '@emnapi/core': 2.0.0-alpha.5 - '@emnapi/runtime': 2.0.0-alpha.5 - emnapi: 2.0.0-alpha.5(node-addon-api@7.1.1) + '@emnapi/core': 2.0.0-beta.2 + '@emnapi/runtime': 2.0.0-beta.2 + emnapi: 2.0.0-beta.2(node-addon-api@7.1.1) transitivePeerDependencies: - '@napi-rs/cross-toolchain-arm64-target-aarch64' - '@napi-rs/cross-toolchain-arm64-target-armv7' @@ -7753,10 +7756,10 @@ snapshots: - '@types/node' - supports-color - '@napi-rs/cli@3.10.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(@types/node@24.19.2)(emnapi@2.0.0-alpha.5(node-addon-api@7.1.1))(supports-color@8.1.1)': + '@napi-rs/cli@3.10.3(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)(@types/node@24.19.2)(emnapi@2.0.0-beta.2(node-addon-api@7.1.1))(supports-color@8.1.1)': dependencies: '@inquirer/prompts': 8.5.2(@types/node@24.19.2) - '@napi-rs/cross-toolchain': 1.0.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(supports-color@8.1.1) + '@napi-rs/cross-toolchain': 1.0.3(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)(supports-color@8.1.1) '@napi-rs/wasm-tools': 1.1.0 '@octokit/rest': 22.0.1 clipanion: 4.0.0-rc.4(typanion@3.14.0) @@ -7768,9 +7771,9 @@ snapshots: typanion: 3.14.0 typescript: 6.0.3 optionalDependencies: - '@emnapi/core': 2.0.0-alpha.5 - '@emnapi/runtime': 2.0.0-alpha.5 - emnapi: 2.0.0-alpha.5(node-addon-api@7.1.1) + '@emnapi/core': 2.0.0-beta.2 + '@emnapi/runtime': 2.0.0-beta.2 + emnapi: 2.0.0-beta.2(node-addon-api@7.1.1) transitivePeerDependencies: - '@napi-rs/cross-toolchain-arm64-target-aarch64' - '@napi-rs/cross-toolchain-arm64-target-armv7' @@ -7785,10 +7788,10 @@ snapshots: - '@types/node' - supports-color - '@napi-rs/cross-toolchain@1.0.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(supports-color@8.1.1)': + '@napi-rs/cross-toolchain@1.0.3(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)(supports-color@8.1.1)': dependencies: - '@napi-rs/lzma': 1.4.5(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5) - '@napi-rs/tar': 1.1.0(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5) + '@napi-rs/lzma': 1.4.5(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2) + '@napi-rs/tar': 1.1.0(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2) debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - '@emnapi/core' @@ -7837,9 +7840,9 @@ snapshots: '@napi-rs/lzma-linux-x64-musl@1.4.5': optional: true - '@napi-rs/lzma-wasm32-wasi@1.4.5(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)': + '@napi-rs/lzma-wasm32-wasi@1.4.5(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)': dependencies: - '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5) + '@napi-rs/wasm-runtime': 1.2.6(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -7854,7 +7857,7 @@ snapshots: '@napi-rs/lzma-win32-x64-msvc@1.4.5': optional: true - '@napi-rs/lzma@1.4.5(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)': + '@napi-rs/lzma@1.4.5(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)': optionalDependencies: '@napi-rs/lzma-android-arm-eabi': 1.4.5 '@napi-rs/lzma-android-arm64': 1.4.5 @@ -7869,7 +7872,7 @@ snapshots: '@napi-rs/lzma-linux-s390x-gnu': 1.4.5 '@napi-rs/lzma-linux-x64-gnu': 1.4.5 '@napi-rs/lzma-linux-x64-musl': 1.4.5 - '@napi-rs/lzma-wasm32-wasi': 1.4.5(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5) + '@napi-rs/lzma-wasm32-wasi': 1.4.5(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2) '@napi-rs/lzma-win32-arm64-msvc': 1.4.5 '@napi-rs/lzma-win32-ia32-msvc': 1.4.5 '@napi-rs/lzma-win32-x64-msvc': 1.4.5 @@ -7913,9 +7916,9 @@ snapshots: '@napi-rs/tar-linux-x64-musl@1.1.0': optional: true - '@napi-rs/tar-wasm32-wasi@1.1.0(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)': + '@napi-rs/tar-wasm32-wasi@1.1.0(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)': dependencies: - '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5) + '@napi-rs/wasm-runtime': 1.2.6(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -7930,7 +7933,7 @@ snapshots: '@napi-rs/tar-win32-x64-msvc@1.1.0': optional: true - '@napi-rs/tar@1.1.0(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)': + '@napi-rs/tar@1.1.0(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)': optionalDependencies: '@napi-rs/tar-android-arm-eabi': 1.1.0 '@napi-rs/tar-android-arm64': 1.1.0 @@ -7944,7 +7947,7 @@ snapshots: '@napi-rs/tar-linux-s390x-gnu': 1.1.0 '@napi-rs/tar-linux-x64-gnu': 1.1.0 '@napi-rs/tar-linux-x64-musl': 1.1.0 - '@napi-rs/tar-wasm32-wasi': 1.1.0(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5) + '@napi-rs/tar-wasm32-wasi': 1.1.0(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2) '@napi-rs/tar-win32-arm64-msvc': 1.1.0 '@napi-rs/tar-win32-ia32-msvc': 1.1.0 '@napi-rs/tar-win32-x64-msvc': 1.1.0 @@ -7952,24 +7955,24 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - '@napi-rs/wasm-runtime@1.2.5(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + '@napi-rs/wasm-runtime@1.2.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': dependencies: '@emnapi/core': 1.11.2 '@emnapi/runtime': 1.11.2 '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.2.5(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@napi-rs/wasm-runtime@1.2.6(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: '@emnapi/core': 1.9.2 '@emnapi/runtime': 1.9.2 '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.2.5(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)': + '@napi-rs/wasm-runtime@1.2.6(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)': dependencies: - '@emnapi/core': 2.0.0-alpha.5 - '@emnapi/runtime': 2.0.0-alpha.5 + '@emnapi/core': 2.0.0-beta.2 + '@emnapi/runtime': 2.0.0-beta.2 '@tybys/wasm-util': 0.10.3 '@napi-rs/wasm-tools-android-arm-eabi@1.1.0': @@ -8003,7 +8006,7 @@ snapshots: dependencies: '@emnapi/core': 1.9.2 '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@napi-rs/wasm-runtime': 1.2.6(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) optional: true '@napi-rs/wasm-tools-win32-arm64-msvc@1.1.0': @@ -8439,7 +8442,7 @@ snapshots: dependencies: '@emnapi/core': 1.11.2 '@emnapi/runtime': 1.11.2 - '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + '@napi-rs/wasm-runtime': 1.2.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) optional: true '@oxc-resolver/binding-win32-arm64-msvc@11.24.2': @@ -8868,12 +8871,12 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@tsdown/css@0.23.3(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.3)(tsx@4.23.15)(yaml@2.9.1)': + '@tsdown/css@0.23.4(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.4)(tsx@4.23.15)(yaml@2.9.1)': dependencies: lightningcss: 1.33.0 postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.31)(tsx@4.23.15)(yaml@2.9.1) rolldown: link:rolldown/packages/rolldown - tsdown: 0.23.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.3)(@tsdown/exe@0.23.3)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + tsdown: 0.23.4(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.4)(@tsdown/exe@0.23.4)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) optionalDependencies: postcss: 8.5.31 postcss-import: 16.2.0(postcss@8.5.31) @@ -8885,11 +8888,11 @@ snapshots: - tsx - yaml - '@tsdown/exe@0.23.3(tsdown@0.23.3)': + '@tsdown/exe@0.23.4(tsdown@0.23.4)': dependencies: obug: 3.0.0 tinyexec: 1.3.1 - tsdown: 0.23.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.3)(@tsdown/exe@0.23.3)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + tsdown: 0.23.4(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.4)(@tsdown/exe@0.23.4)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) verkit: 0.5.0 '@tybys/wasm-util@0.10.3': @@ -9671,7 +9674,7 @@ snapshots: cjs-module-lexer@1.4.3: {} - cjs-module-lexer@2.1.1: {} + cjs-module-lexer@2.3.0: {} cli-width@4.1.0: {} @@ -9948,7 +9951,7 @@ snapshots: ee-first@1.1.1: {} - emnapi@2.0.0-alpha.5(node-addon-api@7.1.1): + emnapi@2.0.0-beta.2(node-addon-api@7.1.1): optionalDependencies: node-addon-api: 7.1.1 @@ -11459,9 +11462,9 @@ snapshots: '@eslint-community/regexpp': 4.12.2 refa: 0.12.1 - remeda@2.50.0: {} + remeda@2.56.0: {} - remove-unused-vars@0.0.15: + remove-unused-vars@0.0.16: dependencies: typescript: 6.0.3 @@ -11951,6 +11954,8 @@ snapshots: tinypool@2.2.0: {} + tinyps@0.5.1: {} + tinyrainbow@3.2.0: {} tldts-core@7.0.19: @@ -11987,7 +11992,7 @@ snapshots: typescript: 7.0.2 optional: true - tsdown@0.23.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.3)(@tsdown/exe@0.23.3)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)): + tsdown@0.23.4(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.4)(@tsdown/exe@0.23.4)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)): dependencies: cac: 7.1.0 defu: 6.1.7 @@ -12000,13 +12005,13 @@ snapshots: rolldown-plugin-dts: 0.28.8(@typescript/native-preview@7.0.0-dev.20260707.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@7.0.2)(vue-tsc@3.3.12(typescript@7.0.2)) tinyexec: 1.3.1 tinyglobby: 0.2.17 - tree-kill: 1.2.2 + tinyps: 0.5.1 unconfig-core: 7.5.0 verkit: 0.5.0 optionalDependencies: '@arethetypeswrong/core': 0.18.2 - '@tsdown/css': 0.23.3(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.3)(tsx@4.23.15)(yaml@2.9.1) - '@tsdown/exe': 0.23.3(tsdown@0.23.3) + '@tsdown/css': 0.23.4(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.4)(tsx@4.23.15)(yaml@2.9.1) + '@tsdown/exe': 0.23.4(tsdown@0.23.4) '@vitejs/devtools': 0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core) publint: 0.3.24 tsx: 4.23.15 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 15809dccbb..8d6f4053d1 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -7,10 +7,10 @@ packages: catalog: '@clack/core': ^1.5.1 '@e18e/eslint-plugin': ^0.8.1 - '@emnapi/core': 2.0.0-alpha.5 - '@emnapi/runtime': 2.0.0-alpha.5 + '@emnapi/core': 2.0.0-beta.2 + '@emnapi/runtime': 2.0.0-beta.2 '@napi-rs/cli': ^3.10.0 - '@napi-rs/wasm-runtime': ~1.2.5 + '@napi-rs/wasm-runtime': 1.2.6 '@nkzw/safe-word-list': ^3.1.0 '@oxc-node/cli': ^1.0.1 '@oxc-node/core': ^1.0.1 @@ -19,8 +19,8 @@ catalog: # Kept at the oxlint version by .github/scripts/upgrade-deps.ts '@oxlint/plugins': =1.90.0 '@rolldown/pluginutils': ^1.0.0 - '@tsdown/css': ^0.23.3 - '@tsdown/exe': ^0.23.3 + '@tsdown/css': ^0.23.4 + '@tsdown/exe': ^0.23.4 '@types/cross-spawn': ^6.0.6 '@types/node': 24.10.3 '@types/validate-npm-package-name': ^4.0.2 @@ -35,12 +35,12 @@ catalog: '@vitest/spy': 5.0.5 '@vitest/utils': 5.0.5 bingo: ^0.13.2 - cac: ^7.0.0 + cac: ^7.1.0 consola: ^3.4.2 cross-spawn: ^7.0.5 detect-indent: ^7.0.2 detect-newline: ^4.0.1 - emnapi: 2.0.0-alpha.5 + emnapi: 2.0.0-beta.2 execa: ^9.2.0 fresh-import: ^0.2.1 glob: ^13.0.0 @@ -59,14 +59,14 @@ catalog: picomatch: ^4.0.2 pirates: ^4.0.7 playwright: ^1.57.0 - remeda: ^2.50.0 + remeda: ^2.53.0 rolldown-plugin-dts: ^0.28.0 rollup: ^4.63.0 semver: ^7.8.0 signal-exit: 4.1.0 source-map: 0.8.0 tinyglobby: ^0.2.15 - tsdown: ^0.23.3 + tsdown: ^0.23.4 typescript: ~7.0.2 valibot: 1.5.0 validate-npm-package-name: ^8.0.0 From 4fa15af7b723bfc99b8f74cee2effe50b2b0e648 Mon Sep 17 00:00:00 2001 From: "MK (fengmk2)" Date: Fri, 30 Oct 2026 14:44:53 +0900 Subject: [PATCH 2/2] test(snapshots): link rolldown's runtime chunk in the WebContainer check Rolldown 1.2.16 moves `createRequire(import.meta.url)` from the binding loader into a shared `rolldown-runtime-.mjs` chunk. The VM linker in `rolldown_webcontainer_fallback` accepted only `node:module`, so the case failed on the new import. Load the runtime chunk from the same directory and give it the same `node:module` stub. Co-Authored-By: Claude Opus 5.5 --- .../rolldown_webcontainer_fallback/verify.mjs | 48 ++++++++++++------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/rolldown_webcontainer_fallback/verify.mjs b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/rolldown_webcontainer_fallback/verify.mjs index a4beaf509b..88939fb1fd 100644 --- a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/rolldown_webcontainer_fallback/verify.mjs +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/rolldown_webcontainer_fallback/verify.mjs @@ -115,25 +115,37 @@ const context = createContext({ arch: 'x64', }, }); -const loader = new SourceTextModule(source, { - context, - identifier: bindingUrl, - initializeImportMeta(meta) { - meta.url = bindingUrl; +const modules = new Map(); +function sharedModule(url, moduleSource = readFileSync(new URL(url), 'utf8')) { + let module = modules.get(url); + if (!module) { + module = new SourceTextModule(moduleSource, { + context, + identifier: url, + initializeImportMeta(meta) { + meta.url = url; + }, + }); + modules.set(url, module); + } + return module; +} +const nodeModule = new SyntheticModule( + ['createRequire'], + function () { + this.setExport('createRequire', (url) => { + // Rolldown's runtime chunk creates `__require` next to the loader. + assert.equal(new URL('.', url).href, new URL('.', bindingUrl).href); + return isolatedRequire; + }); }, -}); -await loader.link((specifier) => { - assert.equal(specifier, 'node:module'); - return new SyntheticModule( - ['createRequire'], - function () { - this.setExport('createRequire', (url) => { - assert.equal(url, bindingUrl); - return isolatedRequire; - }); - }, - { context }, - ); + { context }, +); +const loader = sharedModule(bindingUrl, source); +await loader.link((specifier, referencingModule) => { + if (specifier === 'node:module') return nodeModule; + assert.match(specifier, /^\.\/rolldown-runtime-[\w-]+\.mjs$/); + return sharedModule(new URL(specifier, referencingModule.identifier).href); }); await loader.evaluate();