From c1c7628d01b1375d9afc44546f5aabc64eac0059 Mon Sep 17 00:00:00 2001 From: wan9chi Date: Sun, 7 Jun 2026 08:56:48 +0800 Subject: [PATCH 01/13] feat: integrate vite-task runner-aware tools (auto output + tracked envs) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vite reports its inputs/outputs/envs to the `vp` runner via `@voidzero-dev/vite-task-client`, so `vp build` no longer needs a hand-synthesized cache config. - Bump vite-task git deps to c44d7c33 (runner-aware IPC server/client + embedded napi addon); regenerate run-config.ts for the new task-config types. - Point the vite behind vp build/vp dev to latest vitejs/vite (c13a37b53), which carries the vite-task-client integration. vite lists vite-task-client in devDependencies, so it is bundled into vite's output (and thus into core) the same way as vite's other bundled deps (cac, esbuild, ...) — no extra dependency or build wiring needed. - Work around an upstream vite dts bug (vitejs/vite#21863): `node/index.ts` re-exports `KnownQueryTypeMap` but the type is declared without `export`, which breaks downstream type bundling (`vp build` MISSING_EXPORT). core's build adds the missing `export` when copying vite's type defs. - Remove vp build's synthetic cache config (env: [VITE_*], manual input excludes). All-None EnabledCacheConfig keeps caching enabled with auto input/output inference (output restoration); vp dev stays disabled. - Snap tests: vp-build-auto-output-restoration, vp-build-auto-tracked-env. Co-Authored-By: Claude Opus 4.8 --- Cargo.lock | 109 ++++++++++++++---- Cargo.toml | 12 +- packages/cli/binding/src/cli/resolver.rs | 10 +- .../cli/snap-tests/build-vite-env/snap.txt | 2 +- .../plain-terminal-ui-nested/snap.txt | 8 +- .../index.html | 8 ++ .../package.json | 4 + .../vp-build-auto-output-restoration/snap.txt | 13 +++ .../steps.json | 12 ++ .../vite.config.ts | 9 ++ .../vp-build-auto-tracked-env/index.html | 8 ++ .../vp-build-auto-tracked-env/package.json | 4 + .../vp-build-auto-tracked-env/snap.txt | 37 ++++++ .../vp-build-auto-tracked-env/steps.json | 7 ++ .../vp-build-auto-tracked-env/vite.config.ts | 9 ++ packages/cli/src/run-config.ts | 8 +- packages/core/build.ts | 13 ++- packages/core/package.json | 2 +- packages/tools/.upstream-versions.json | 2 +- pnpm-lock.yaml | 13 ++- 20 files changed, 245 insertions(+), 45 deletions(-) create mode 100644 packages/cli/snap-tests/vp-build-auto-output-restoration/index.html create mode 100644 packages/cli/snap-tests/vp-build-auto-output-restoration/package.json create mode 100644 packages/cli/snap-tests/vp-build-auto-output-restoration/snap.txt create mode 100644 packages/cli/snap-tests/vp-build-auto-output-restoration/steps.json create mode 100644 packages/cli/snap-tests/vp-build-auto-output-restoration/vite.config.ts create mode 100644 packages/cli/snap-tests/vp-build-auto-tracked-env/index.html create mode 100644 packages/cli/snap-tests/vp-build-auto-tracked-env/package.json create mode 100644 packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt create mode 100644 packages/cli/snap-tests/vp-build-auto-tracked-env/steps.json create mode 100644 packages/cli/snap-tests/vp-build-auto-tracked-env/vite.config.ts diff --git a/Cargo.lock b/Cargo.lock index ae6a2fb582..884b29eee4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2054,7 +2054,7 @@ dependencies = [ [[package]] name = "fspy" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "anyhow", "bstr", @@ -2089,7 +2089,7 @@ dependencies = [ [[package]] name = "fspy_detours_sys" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "cc", "winapi", @@ -2098,7 +2098,7 @@ dependencies = [ [[package]] name = "fspy_preload_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "anyhow", "bstr", @@ -2113,7 +2113,7 @@ dependencies = [ [[package]] name = "fspy_preload_windows" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "constcat", "fspy_detours_sys", @@ -2129,7 +2129,7 @@ dependencies = [ [[package]] name = "fspy_seccomp_unotify" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "futures-util", "libc", @@ -2146,7 +2146,7 @@ dependencies = [ [[package]] name = "fspy_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "bitflags 2.11.0", "bstr", @@ -2165,7 +2165,7 @@ dependencies = [ [[package]] name = "fspy_shared_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "anyhow", "base64 0.22.1", @@ -2658,7 +2658,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.3", + "socket2 0.5.10", "system-configuration", "tokio", "tower-service", @@ -3314,7 +3314,7 @@ dependencies = [ [[package]] name = "materialized_artifact" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "tempfile", ] @@ -3322,7 +3322,7 @@ dependencies = [ [[package]] name = "materialized_artifact_build" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "xxhash-rust", ] @@ -3536,7 +3536,7 @@ dependencies = [ [[package]] name = "native_str" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "bumpalo", "bytemuck", @@ -5030,7 +5030,7 @@ dependencies = [ [[package]] name = "pty_terminal_test_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" [[package]] name = "quote" @@ -7765,10 +7765,10 @@ dependencies = [ [[package]] name = "vite_glob" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ + "globset", "thiserror 2.0.18", - "vite_path", "wax 0.7.0", ] @@ -7812,7 +7812,7 @@ dependencies = [ [[package]] name = "vite_graph_ser" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "petgraph 0.8.3", "serde", @@ -7911,7 +7911,7 @@ dependencies = [ [[package]] name = "vite_path" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "diff-struct", "path-clean", @@ -7942,7 +7942,7 @@ dependencies = [ [[package]] name = "vite_powershell" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "vite_path", "which", @@ -7951,7 +7951,7 @@ dependencies = [ [[package]] name = "vite_select" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "anyhow", "crossterm", @@ -8003,7 +8003,7 @@ dependencies = [ [[package]] name = "vite_shell" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "brush-parser 0.4.0", "diff-struct", @@ -8030,7 +8030,7 @@ dependencies = [ [[package]] name = "vite_str" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "compact_str", "diff-struct", @@ -8041,7 +8041,7 @@ dependencies = [ [[package]] name = "vite_task" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "anstream", "anyhow", @@ -8051,6 +8051,8 @@ dependencies = [ "derive_more", "fspy", "futures-util", + "materialized_artifact", + "materialized_artifact_build", "nix 0.31.2", "once_cell", "owo-colors", @@ -8069,11 +8071,15 @@ dependencies = [ "tracing", "twox-hash", "uuid", + "vite_glob", "vite_path", "vite_select", "vite_str", + "vite_task_client_napi", "vite_task_graph", + "vite_task_ipc_shared", "vite_task_plan", + "vite_task_server", "vite_workspace", "wax 0.7.0", "winapi", @@ -8081,10 +8087,35 @@ dependencies = [ "zstd", ] +[[package]] +name = "vite_task_client" +version = "0.0.0" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +dependencies = [ + "native_str", + "rustc-hash", + "vite_path", + "vite_task_ipc_shared", + "winapi", + "wincode", +] + +[[package]] +name = "vite_task_client_napi" +version = "0.1.0" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +dependencies = [ + "napi", + "napi-build", + "napi-derive", + "vite_str", + "vite_task_client", +] + [[package]] name = "vite_task_graph" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "anyhow", "async-trait", @@ -8103,10 +8134,20 @@ dependencies = [ "wincode", ] +[[package]] +name = "vite_task_ipc_shared" +version = "0.0.0" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +dependencies = [ + "native_str", + "rustc-hash", + "wincode", +] + [[package]] name = "vite_task_plan" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "anyhow", "async-trait", @@ -8131,6 +8172,26 @@ dependencies = [ "wincode", ] +[[package]] +name = "vite_task_server" +version = "0.0.0" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +dependencies = [ + "futures", + "native_str", + "rustc-hash", + "tempfile", + "thiserror 2.0.18", + "tokio", + "tokio-util", + "tracing", + "uuid", + "vite_glob", + "vite_path", + "vite_task_ipc_shared", + "wincode", +] + [[package]] name = "vite_trampoline" version = "0.0.0" @@ -8138,7 +8199,7 @@ version = "0.0.0" [[package]] name = "vite_workspace" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=5833b374c6edb05c2f2f8e133ff8c796b378472a#5833b374c6edb05c2f2f8e133ff8c796b378472a" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" dependencies = [ "clap", "petgraph 0.8.3", diff --git a/Cargo.toml b/Cargo.toml index 7f1c4d6139..e8f9c3b3e9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -193,7 +193,7 @@ dunce = "1.0.5" fast-glob = "1.0.0" flate2 = { version = "=1.1.9", features = ["zlib-rs"] } form_urlencoded = "1.2.1" -fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "5833b374c6edb05c2f2f8e133ff8c796b378472a" } +fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } futures = "0.3.31" futures-util = "0.3.31" glob = "0.3.2" @@ -303,11 +303,11 @@ vite_pm_cli = { path = "crates/vite_pm_cli" } vite_setup = { path = "crates/vite_setup" } vite_shared = { path = "crates/vite_shared" } vite_static_config = { path = "crates/vite_static_config" } -vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "5833b374c6edb05c2f2f8e133ff8c796b378472a" } -vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "5833b374c6edb05c2f2f8e133ff8c796b378472a" } -vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "5833b374c6edb05c2f2f8e133ff8c796b378472a" } -vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "5833b374c6edb05c2f2f8e133ff8c796b378472a" } -vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "5833b374c6edb05c2f2f8e133ff8c796b378472a" } +vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } +vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } +vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } +vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } +vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } walkdir = "2.5.0" wax = "0.6.0" which = "8.0.0" diff --git a/packages/cli/binding/src/cli/resolver.rs b/packages/cli/binding/src/cli/resolver.rs index 0b6d05a4d9..5c8a591848 100644 --- a/packages/cli/binding/src/cli/resolver.rs +++ b/packages/cli/binding/src/cli/resolver.rs @@ -171,10 +171,16 @@ impl SubcommandResolver { .chain(iter::once(Str::from("build"))) .chain(args.into_iter().map(Str::from)) .collect(), + // No synthetic cache config: vite reports its inputs/outputs/ + // envs to the runner via `@voidzero-dev/vite-task-client`. + // All fields `None` keep caching enabled with auto input and + // auto output inference (the latter drives output restoration); + // vite's `ignoreInput`/`ignoreOutput`/`getEnv`/`getEnvs` refine + // the fingerprint at runtime. cache_config: UserCacheConfig::with_config(EnabledCacheConfig { - env: Some(Box::new([Str::from("VITE_*")])), + env: None, untracked_env: None, - input: Some(build_pack_cache_inputs()), + input: None, output: None, }), envs: merge_resolved_envs_with_version(envs, resolved.envs), diff --git a/packages/cli/snap-tests/build-vite-env/snap.txt b/packages/cli/snap-tests/build-vite-env/snap.txt index ff5a11ea04..e895a04df3 100644 --- a/packages/cli/snap-tests/build-vite-env/snap.txt +++ b/packages/cli/snap-tests/build-vite-env/snap.txt @@ -25,7 +25,7 @@ dist/assets/index-Dra_-aT4.js kB │ gzip: kB vp run: cache hit, ms saved. > VITE_MY_VAR=2 vp run build # env changed, should miss cache -$ vp build ○ cache miss: envs changed, executing +$ vp build ○ cache miss: tracked env glob 'VITE_*' changed, executing vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... diff --git a/packages/cli/snap-tests/plain-terminal-ui-nested/snap.txt b/packages/cli/snap-tests/plain-terminal-ui-nested/snap.txt index afafa585f9..ffa975a06b 100644 --- a/packages/cli/snap-tests/plain-terminal-ui-nested/snap.txt +++ b/packages/cli/snap-tests/plain-terminal-ui-nested/snap.txt @@ -8,17 +8,17 @@ Found 0 warnings and 0 errors. Finished in ms on 3 files with rules using threads. --- -vp run: 0/2 cache hit (0%). root-package#hello (and 1 more) not cached because they modified their inputs. (Run `vp run --last-details` for full details) +vp run: 0/2 cache hit (0%). (Run `vp run --last-details` for full details) > echo 'console.log(123)' > a.ts > vp run hello # report cache status from the inner runner -$ vp lint ./src +$ vp lint ./src ◉ cache hit, replaying Found 0 warnings and 0 errors. Finished in ms on 1 file with rules using threads. -$ vp lint +$ vp lint ○ cache miss: 'a.ts' modified, executing Found 0 warnings and 0 errors. Finished in ms on 3 files with rules using threads. --- -vp run: 0/2 cache hit (0%). root-package#hello (and 1 more) not cached because they modified their inputs. (Run `vp run --last-details` for full details) +vp run: 1/2 cache hit (50%), ms saved. (Run `vp run --last-details` for full details) diff --git a/packages/cli/snap-tests/vp-build-auto-output-restoration/index.html b/packages/cli/snap-tests/vp-build-auto-output-restoration/index.html new file mode 100644 index 0000000000..7febab8c7e --- /dev/null +++ b/packages/cli/snap-tests/vp-build-auto-output-restoration/index.html @@ -0,0 +1,8 @@ + + + + + + diff --git a/packages/cli/snap-tests/vp-build-auto-output-restoration/package.json b/packages/cli/snap-tests/vp-build-auto-output-restoration/package.json new file mode 100644 index 0000000000..c73c0c479a --- /dev/null +++ b/packages/cli/snap-tests/vp-build-auto-output-restoration/package.json @@ -0,0 +1,4 @@ +{ + "name": "vp-build-auto-output-restoration-test", + "private": true +} diff --git a/packages/cli/snap-tests/vp-build-auto-output-restoration/snap.txt b/packages/cli/snap-tests/vp-build-auto-output-restoration/snap.txt new file mode 100644 index 0000000000..d1137efcc4 --- /dev/null +++ b/packages/cli/snap-tests/vp-build-auto-output-restoration/snap.txt @@ -0,0 +1,13 @@ +> vp run build # first build populates the cache +> ls dist # build output exists +assets +index.html + +> rm -rf dist # remove the build output +> vp run build 2>&1 | grep 'cache hit' # rebuild hits cache +$ vp build ◉ cache hit, replaying +vp run: cache hit, ms saved. + +> ls dist # dist auto-restored on cache hit (no synthetic output config) +assets +index.html diff --git a/packages/cli/snap-tests/vp-build-auto-output-restoration/steps.json b/packages/cli/snap-tests/vp-build-auto-output-restoration/steps.json new file mode 100644 index 0000000000..78a6f469b5 --- /dev/null +++ b/packages/cli/snap-tests/vp-build-auto-output-restoration/steps.json @@ -0,0 +1,12 @@ +{ + "commands": [ + { + "command": "vp run build # first build populates the cache", + "ignoreOutput": true + }, + "ls dist # build output exists", + "rm -rf dist # remove the build output", + "vp run build 2>&1 | grep 'cache hit' # rebuild hits cache", + "ls dist # dist auto-restored on cache hit (no synthetic output config)" + ] +} diff --git a/packages/cli/snap-tests/vp-build-auto-output-restoration/vite.config.ts b/packages/cli/snap-tests/vp-build-auto-output-restoration/vite.config.ts new file mode 100644 index 0000000000..1f066d0132 --- /dev/null +++ b/packages/cli/snap-tests/vp-build-auto-output-restoration/vite.config.ts @@ -0,0 +1,9 @@ +export default { + run: { + tasks: { + build: { + command: 'vp build', + }, + }, + }, +}; diff --git a/packages/cli/snap-tests/vp-build-auto-tracked-env/index.html b/packages/cli/snap-tests/vp-build-auto-tracked-env/index.html new file mode 100644 index 0000000000..7febab8c7e --- /dev/null +++ b/packages/cli/snap-tests/vp-build-auto-tracked-env/index.html @@ -0,0 +1,8 @@ + + + + + + diff --git a/packages/cli/snap-tests/vp-build-auto-tracked-env/package.json b/packages/cli/snap-tests/vp-build-auto-tracked-env/package.json new file mode 100644 index 0000000000..aaab903777 --- /dev/null +++ b/packages/cli/snap-tests/vp-build-auto-tracked-env/package.json @@ -0,0 +1,4 @@ +{ + "name": "vp-build-auto-tracked-env-test", + "private": true +} diff --git a/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt b/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt new file mode 100644 index 0000000000..a97551e6e6 --- /dev/null +++ b/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt @@ -0,0 +1,37 @@ +> VITE_GREETING=hello vp run build # first build +$ vp build +vite v building client environment for production... +transforming...✓ modules transformed. +rendering chunks... +computing gzip size... +dist/index.html kB │ gzip: kB +dist/assets/index-Dra_-aT4.js kB │ gzip: kB + +✓ built in ms + + +> VITE_GREETING=hello vp run build # same env, cache hit +$ vp build ◉ cache hit, replaying +vite v building client environment for production... +transforming...✓ modules transformed. +rendering chunks... +computing gzip size... +dist/index.html kB │ gzip: kB +dist/assets/index-Dra_-aT4.js kB │ gzip: kB + +✓ built in ms + +--- +vp run: cache hit, ms saved. + +> VITE_GREETING=world vp run build # VITE_ env changed, cache miss (tracked via vite-task-client) +$ vp build ○ cache miss: tracked env glob 'VITE_*' changed, executing +vite v building client environment for production... +transforming...✓ modules transformed. +rendering chunks... +computing gzip size... +dist/index.html kB │ gzip: kB +dist/assets/index-Dra_-aT4.js kB │ gzip: kB + +✓ built in ms + diff --git a/packages/cli/snap-tests/vp-build-auto-tracked-env/steps.json b/packages/cli/snap-tests/vp-build-auto-tracked-env/steps.json new file mode 100644 index 0000000000..57c9586df6 --- /dev/null +++ b/packages/cli/snap-tests/vp-build-auto-tracked-env/steps.json @@ -0,0 +1,7 @@ +{ + "commands": [ + "VITE_GREETING=hello vp run build # first build", + "VITE_GREETING=hello vp run build # same env, cache hit", + "VITE_GREETING=world vp run build # VITE_ env changed, cache miss (tracked via vite-task-client)" + ] +} diff --git a/packages/cli/snap-tests/vp-build-auto-tracked-env/vite.config.ts b/packages/cli/snap-tests/vp-build-auto-tracked-env/vite.config.ts new file mode 100644 index 0000000000..1f066d0132 --- /dev/null +++ b/packages/cli/snap-tests/vp-build-auto-tracked-env/vite.config.ts @@ -0,0 +1,9 @@ +export default { + run: { + tasks: { + build: { + command: 'vp build', + }, + }, + }, +}; diff --git a/packages/cli/src/run-config.ts b/packages/cli/src/run-config.ts index 3a8477c6e8..35bc91b64d 100644 --- a/packages/cli/src/run-config.ts +++ b/packages/cli/src/run-config.ts @@ -57,14 +57,16 @@ untrackedEnv?: Array, */ input?: Array, /** - * Output files to archive after a successful run and restore on cache hit. + * Output files to archive and restore on cache hit. * - * - Omitted or `[]` (empty): no output archiving (default) + * - Omitted: automatically tracks which files the task writes + * - `[]` (empty): disables output restoration entirely * - Glob patterns (e.g. `"dist/**"`) select specific output files, relative to the package directory * - `{pattern: "...", base: "workspace" | "package"}` specifies a glob with an explicit base directory + * - `{auto: true}` enables automatic file tracking * - Negative patterns (e.g. `"!dist/cache/**"`) exclude matched files */ -output?: Array, } | { +output?: Array, } | { /** * Whether to cache the task */ diff --git a/packages/core/build.ts b/packages/core/build.ts index c44383c9c9..ee45093887 100644 --- a/packages/core/build.ts +++ b/packages/core/build.ts @@ -315,9 +315,20 @@ async function buildVite() { if (!existsSync(dir)) { await mkdir(dir, { recursive: true }); } - const rewrittenFile = rewriteModuleSpecifiers(file, srcDtsFile, { + let rewrittenFile = rewriteModuleSpecifiers(file, srcDtsFile, { rules: [...createViteRewriteRules(pkgJson.name), ...createRolldownRewriteRules(pkgJson.name)], }); + // Upstream bug (vitejs/vite#21863, commit cc39e5540): `node/index.ts` + // re-exports `KnownQueryTypeMap` from `#types/importGlob`, but the type is + // declared there without `export`. Bundling vite's types into a downstream + // project then fails with `[MISSING_EXPORT]`. Add the missing `export` here + // until it is fixed upstream (drop this once vite exports it). + if (relativePath === '/importGlob.d.ts') { + rewrittenFile = rewrittenFile.replace( + /^type KnownQueryTypeMap\b/m, + 'export type KnownQueryTypeMap', + ); + } await writeFile(dstFilePath, rewrittenFile); } diff --git a/packages/core/package.json b/packages/core/package.json index 2920ac5fbd..0dd8799c33 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -136,7 +136,7 @@ "@tsdown/css": "0.22.3", "@tsdown/exe": "0.22.3", "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.1.18", + "@vitejs/devtools": "^0.3.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", diff --git a/packages/tools/.upstream-versions.json b/packages/tools/.upstream-versions.json index f228e64687..1a9f0a082b 100644 --- a/packages/tools/.upstream-versions.json +++ b/packages/tools/.upstream-versions.json @@ -7,6 +7,6 @@ "vite": { "repo": "https://github.com/vitejs/vite.git", "branch": "main", - "hash": "f94df87ff03b40b65e29bacdc04cc18c7bccaa4a" + "hash": "c13a37b53ec673e5a9053355fce3b9c4528fd917" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9958a548b6..0e94d62e63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1207,6 +1207,9 @@ importers: '@vitest/utils': specifier: 4.1.7 version: 4.1.7 + '@voidzero-dev/vite-task-client': + specifier: ^0.1.1 + version: 0.1.1 artichokie: specifier: ^0.4.3 version: 0.4.3 @@ -1235,8 +1238,8 @@ importers: specifier: ^13.0.0 version: 13.0.0(patch_hash=49330a663821151418e003e822a82a6a61d2f0f8a6e3cab00c1c94815a112889) es-module-lexer: - specifier: ^1.7.0 - version: 1.7.0 + specifier: ^2.0.0 + version: 2.0.0 esbuild: specifier: ^0.28.0 version: 0.28.0 @@ -4907,6 +4910,10 @@ packages: '@vitest/utils@4.1.9': resolution: {integrity: sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==} + '@voidzero-dev/vite-task-client@0.1.1': + resolution: {integrity: sha512-9zGnSzvzUOKNoMf4zxaDeAyerkvnsXBRWfbTkwhwHsVJFug3j48Et8kr+ulHf3KRdcLr07Np+xDuCvHYVK1k7w==} + engines: {node: '>=18'} + '@vue-macros/common@3.1.2': resolution: {integrity: sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==} engines: {node: '>=20.19.0'} @@ -11992,6 +11999,8 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.0 + '@voidzero-dev/vite-task-client@0.1.1': {} + '@vue-macros/common@3.1.2(vue@3.5.35(typescript@6.0.2))': dependencies: '@vue/compiler-sfc': 3.5.35 From 86fba21aa8e7abaf72520d1081199e008c00a06b Mon Sep 17 00:00:00 2001 From: wan9chi Date: Sun, 7 Jun 2026 16:09:21 +0800 Subject: [PATCH 02/13] chore(deps): repin vite-task to auto-output-track tip (dbe9aca0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Repoints the vite-task git deps to the tip of the split stack (voidzero-dev/vite-task#431, the auto-output-track branch), whose crates tree is identical to the prior pin plus the runner env-change message refinement. Regenerates the two snapshots whose `VITE_*` cache-miss line now renders as "envs changed" (matching manual env config) instead of "tracked env glob 'VITE_*' changed". 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- Cargo.lock | 82 +++++++++---------- Cargo.toml | 12 +-- .../cli/snap-tests/build-vite-env/snap.txt | 2 +- .../vp-build-auto-tracked-env/snap.txt | 2 +- 4 files changed, 49 insertions(+), 49 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 884b29eee4..62896579d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -111,7 +111,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -122,7 +122,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -1567,7 +1567,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -1719,7 +1719,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2054,7 +2054,7 @@ dependencies = [ [[package]] name = "fspy" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "anyhow", "bstr", @@ -2089,7 +2089,7 @@ dependencies = [ [[package]] name = "fspy_detours_sys" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "cc", "winapi", @@ -2098,7 +2098,7 @@ dependencies = [ [[package]] name = "fspy_preload_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "anyhow", "bstr", @@ -2113,7 +2113,7 @@ dependencies = [ [[package]] name = "fspy_preload_windows" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "constcat", "fspy_detours_sys", @@ -2129,7 +2129,7 @@ dependencies = [ [[package]] name = "fspy_seccomp_unotify" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "futures-util", "libc", @@ -2146,7 +2146,7 @@ dependencies = [ [[package]] name = "fspy_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "bitflags 2.11.0", "bstr", @@ -2165,7 +2165,7 @@ dependencies = [ [[package]] name = "fspy_shared_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "anyhow", "base64 0.22.1", @@ -2937,7 +2937,7 @@ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -3107,7 +3107,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cfc352a66ba903c23239ef51e809508b6fc2b0f90e3476ac7a9ff47e863ae95" dependencies = [ "scopeguard", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -3314,7 +3314,7 @@ dependencies = [ [[package]] name = "materialized_artifact" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "tempfile", ] @@ -3322,7 +3322,7 @@ dependencies = [ [[package]] name = "materialized_artifact_build" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "xxhash-rust", ] @@ -3536,7 +3536,7 @@ dependencies = [ [[package]] name = "native_str" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "bumpalo", "bytemuck", @@ -3661,7 +3661,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -5030,7 +5030,7 @@ dependencies = [ [[package]] name = "pty_terminal_test_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" [[package]] name = "quote" @@ -6260,7 +6260,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -6316,7 +6316,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -6450,7 +6450,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b55fb86dfd3a2f5f76ea78310a88f96c4ea21a3031f8d212443d56123fd0521" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -6799,7 +6799,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -7004,7 +7004,7 @@ dependencies = [ "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -7034,7 +7034,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -7765,7 +7765,7 @@ dependencies = [ [[package]] name = "vite_glob" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "globset", "thiserror 2.0.18", @@ -7812,7 +7812,7 @@ dependencies = [ [[package]] name = "vite_graph_ser" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "petgraph 0.8.3", "serde", @@ -7911,7 +7911,7 @@ dependencies = [ [[package]] name = "vite_path" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "diff-struct", "path-clean", @@ -7942,7 +7942,7 @@ dependencies = [ [[package]] name = "vite_powershell" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "vite_path", "which", @@ -7951,7 +7951,7 @@ dependencies = [ [[package]] name = "vite_select" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "anyhow", "crossterm", @@ -8003,7 +8003,7 @@ dependencies = [ [[package]] name = "vite_shell" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "brush-parser 0.4.0", "diff-struct", @@ -8030,7 +8030,7 @@ dependencies = [ [[package]] name = "vite_str" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "compact_str", "diff-struct", @@ -8041,7 +8041,7 @@ dependencies = [ [[package]] name = "vite_task" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "anstream", "anyhow", @@ -8090,7 +8090,7 @@ dependencies = [ [[package]] name = "vite_task_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "native_str", "rustc-hash", @@ -8103,7 +8103,7 @@ dependencies = [ [[package]] name = "vite_task_client_napi" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "napi", "napi-build", @@ -8115,7 +8115,7 @@ dependencies = [ [[package]] name = "vite_task_graph" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "anyhow", "async-trait", @@ -8137,7 +8137,7 @@ dependencies = [ [[package]] name = "vite_task_ipc_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "native_str", "rustc-hash", @@ -8147,7 +8147,7 @@ dependencies = [ [[package]] name = "vite_task_plan" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "anyhow", "async-trait", @@ -8175,7 +8175,7 @@ dependencies = [ [[package]] name = "vite_task_server" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "futures", "native_str", @@ -8199,7 +8199,7 @@ version = "0.0.0" [[package]] name = "vite_workspace" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=c44d7c3377c621d384cbb1aa18a6b9160513f99d#c44d7c3377c621d384cbb1aa18a6b9160513f99d" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" dependencies = [ "clap", "petgraph 0.8.3", @@ -8477,7 +8477,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -8904,7 +8904,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d6f32a0ff4a9f6f01231eb2059cc85479330739333e0e58cadf03b6af2cca10" dependencies = [ "cfg-if", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e8f9c3b3e9..b4b99225f9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -193,7 +193,7 @@ dunce = "1.0.5" fast-glob = "1.0.0" flate2 = { version = "=1.1.9", features = ["zlib-rs"] } form_urlencoded = "1.2.1" -fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } +fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } futures = "0.3.31" futures-util = "0.3.31" glob = "0.3.2" @@ -303,11 +303,11 @@ vite_pm_cli = { path = "crates/vite_pm_cli" } vite_setup = { path = "crates/vite_setup" } vite_shared = { path = "crates/vite_shared" } vite_static_config = { path = "crates/vite_static_config" } -vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } -vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } -vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } -vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } -vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "c44d7c3377c621d384cbb1aa18a6b9160513f99d" } +vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } +vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } +vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } +vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } +vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } walkdir = "2.5.0" wax = "0.6.0" which = "8.0.0" diff --git a/packages/cli/snap-tests/build-vite-env/snap.txt b/packages/cli/snap-tests/build-vite-env/snap.txt index e895a04df3..ff5a11ea04 100644 --- a/packages/cli/snap-tests/build-vite-env/snap.txt +++ b/packages/cli/snap-tests/build-vite-env/snap.txt @@ -25,7 +25,7 @@ dist/assets/index-Dra_-aT4.js kB │ gzip: kB vp run: cache hit, ms saved. > VITE_MY_VAR=2 vp run build # env changed, should miss cache -$ vp build ○ cache miss: tracked env glob 'VITE_*' changed, executing +$ vp build ○ cache miss: envs changed, executing vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... diff --git a/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt b/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt index a97551e6e6..0fae8b1571 100644 --- a/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt +++ b/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt @@ -25,7 +25,7 @@ dist/assets/index-Dra_-aT4.js kB │ gzip: kB vp run: cache hit, ms saved. > VITE_GREETING=world vp run build # VITE_ env changed, cache miss (tracked via vite-task-client) -$ vp build ○ cache miss: tracked env glob 'VITE_*' changed, executing +$ vp build ○ cache miss: envs changed, executing vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... From 6c06d80d9c779d0486ecb8bfe76eb78cc24489ab Mon Sep 17 00:00:00 2001 From: wan9chi Date: Mon, 8 Jun 2026 09:53:45 +0800 Subject: [PATCH 03/13] chore(deps): repin vite-task to stack tip (68fb22e4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Picks up the cache-miss message refinement that now names the changed env var. Regenerates the two snapshots whose `VITE_*` cache-miss line reads `env 'VITE_MY_VAR' changed` / `env 'VITE_GREETING' changed` instead of the generic `envs changed`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- Cargo.lock | 82 +++++++++---------- Cargo.toml | 12 +-- .../cli/snap-tests/build-vite-env/snap.txt | 2 +- .../cli/snap-tests/plain-terminal-ui/snap.txt | 6 +- .../vp-build-auto-tracked-env/snap.txt | 2 +- 5 files changed, 52 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62896579d8..0e5c6a1512 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -111,7 +111,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -122,7 +122,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -1567,7 +1567,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -1719,7 +1719,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2054,7 +2054,7 @@ dependencies = [ [[package]] name = "fspy" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "anyhow", "bstr", @@ -2089,7 +2089,7 @@ dependencies = [ [[package]] name = "fspy_detours_sys" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "cc", "winapi", @@ -2098,7 +2098,7 @@ dependencies = [ [[package]] name = "fspy_preload_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "anyhow", "bstr", @@ -2113,7 +2113,7 @@ dependencies = [ [[package]] name = "fspy_preload_windows" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "constcat", "fspy_detours_sys", @@ -2129,7 +2129,7 @@ dependencies = [ [[package]] name = "fspy_seccomp_unotify" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "futures-util", "libc", @@ -2146,7 +2146,7 @@ dependencies = [ [[package]] name = "fspy_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "bitflags 2.11.0", "bstr", @@ -2165,7 +2165,7 @@ dependencies = [ [[package]] name = "fspy_shared_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "anyhow", "base64 0.22.1", @@ -2937,7 +2937,7 @@ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -3107,7 +3107,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cfc352a66ba903c23239ef51e809508b6fc2b0f90e3476ac7a9ff47e863ae95" dependencies = [ "scopeguard", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -3314,7 +3314,7 @@ dependencies = [ [[package]] name = "materialized_artifact" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "tempfile", ] @@ -3322,7 +3322,7 @@ dependencies = [ [[package]] name = "materialized_artifact_build" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "xxhash-rust", ] @@ -3536,7 +3536,7 @@ dependencies = [ [[package]] name = "native_str" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "bumpalo", "bytemuck", @@ -3661,7 +3661,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -5030,7 +5030,7 @@ dependencies = [ [[package]] name = "pty_terminal_test_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" [[package]] name = "quote" @@ -6260,7 +6260,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -6316,7 +6316,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -6450,7 +6450,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b55fb86dfd3a2f5f76ea78310a88f96c4ea21a3031f8d212443d56123fd0521" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -6799,7 +6799,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -7004,7 +7004,7 @@ dependencies = [ "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -7034,7 +7034,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -7765,7 +7765,7 @@ dependencies = [ [[package]] name = "vite_glob" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "globset", "thiserror 2.0.18", @@ -7812,7 +7812,7 @@ dependencies = [ [[package]] name = "vite_graph_ser" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "petgraph 0.8.3", "serde", @@ -7911,7 +7911,7 @@ dependencies = [ [[package]] name = "vite_path" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "diff-struct", "path-clean", @@ -7942,7 +7942,7 @@ dependencies = [ [[package]] name = "vite_powershell" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "vite_path", "which", @@ -7951,7 +7951,7 @@ dependencies = [ [[package]] name = "vite_select" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "anyhow", "crossterm", @@ -8003,7 +8003,7 @@ dependencies = [ [[package]] name = "vite_shell" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "brush-parser 0.4.0", "diff-struct", @@ -8030,7 +8030,7 @@ dependencies = [ [[package]] name = "vite_str" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "compact_str", "diff-struct", @@ -8041,7 +8041,7 @@ dependencies = [ [[package]] name = "vite_task" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "anstream", "anyhow", @@ -8090,7 +8090,7 @@ dependencies = [ [[package]] name = "vite_task_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "native_str", "rustc-hash", @@ -8103,7 +8103,7 @@ dependencies = [ [[package]] name = "vite_task_client_napi" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "napi", "napi-build", @@ -8115,7 +8115,7 @@ dependencies = [ [[package]] name = "vite_task_graph" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "anyhow", "async-trait", @@ -8137,7 +8137,7 @@ dependencies = [ [[package]] name = "vite_task_ipc_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "native_str", "rustc-hash", @@ -8147,7 +8147,7 @@ dependencies = [ [[package]] name = "vite_task_plan" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "anyhow", "async-trait", @@ -8175,7 +8175,7 @@ dependencies = [ [[package]] name = "vite_task_server" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "futures", "native_str", @@ -8199,7 +8199,7 @@ version = "0.0.0" [[package]] name = "vite_workspace" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb#dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" dependencies = [ "clap", "petgraph 0.8.3", @@ -8477,7 +8477,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -8904,7 +8904,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d6f32a0ff4a9f6f01231eb2059cc85479330739333e0e58cadf03b6af2cca10" dependencies = [ "cfg-if", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index b4b99225f9..b0f85176e1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -193,7 +193,7 @@ dunce = "1.0.5" fast-glob = "1.0.0" flate2 = { version = "=1.1.9", features = ["zlib-rs"] } form_urlencoded = "1.2.1" -fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } +fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } futures = "0.3.31" futures-util = "0.3.31" glob = "0.3.2" @@ -303,11 +303,11 @@ vite_pm_cli = { path = "crates/vite_pm_cli" } vite_setup = { path = "crates/vite_setup" } vite_shared = { path = "crates/vite_shared" } vite_static_config = { path = "crates/vite_static_config" } -vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } -vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } -vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } -vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } -vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "dbe9aca0eeb59b8653d2e1acf8f5b34e6a6702bb" } +vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } +vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } +vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } +vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } +vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } walkdir = "2.5.0" wax = "0.6.0" which = "8.0.0" diff --git a/packages/cli/snap-tests/build-vite-env/snap.txt b/packages/cli/snap-tests/build-vite-env/snap.txt index ff5a11ea04..54e5eb28ea 100644 --- a/packages/cli/snap-tests/build-vite-env/snap.txt +++ b/packages/cli/snap-tests/build-vite-env/snap.txt @@ -25,7 +25,7 @@ dist/assets/index-Dra_-aT4.js kB │ gzip: kB vp run: cache hit, ms saved. > VITE_MY_VAR=2 vp run build # env changed, should miss cache -$ vp build ○ cache miss: envs changed, executing +$ vp build ○ cache miss: env 'VITE_MY_VAR' changed, executing vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... diff --git a/packages/cli/snap-tests/plain-terminal-ui/snap.txt b/packages/cli/snap-tests/plain-terminal-ui/snap.txt index 931e6e0d1e..e183790eff 100644 --- a/packages/cli/snap-tests/plain-terminal-ui/snap.txt +++ b/packages/cli/snap-tests/plain-terminal-ui/snap.txt @@ -11,17 +11,17 @@ input_content 1 vp run: cache hit, ms saved. > FOO=2 vp run hello # env changed -$ node hello.mjs ○ cache miss: envs changed, executing +$ node hello.mjs ○ cache miss: env 'FOO' changed, executing input_content 2 > FOO=2 BAR=1 vp run hello # env added -$ node hello.mjs ○ cache miss: envs changed, executing +$ node hello.mjs ○ cache miss: env 'BAR' changed, executing input_content 2 > vp run hello # env removed -$ node hello.mjs ○ cache miss: envs changed, executing +$ node hello.mjs ○ cache miss: envs 'BAR', 'FOO' changed, executing input_content undefined diff --git a/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt b/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt index 0fae8b1571..6b69e65233 100644 --- a/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt +++ b/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt @@ -25,7 +25,7 @@ dist/assets/index-Dra_-aT4.js kB │ gzip: kB vp run: cache hit, ms saved. > VITE_GREETING=world vp run build # VITE_ env changed, cache miss (tracked via vite-task-client) -$ vp build ○ cache miss: envs changed, executing +$ vp build ○ cache miss: env 'VITE_GREETING' changed, executing vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... From 96277d2a486c819cdee168d9fb5a755af51e0434 Mon Sep 17 00:00:00 2001 From: wan9chi Date: Mon, 15 Jun 2026 10:00:41 +0800 Subject: [PATCH 04/13] chore(deps): repin vite-task to latest main (82ec12b2) --- Cargo.lock | 55 ++++++++++++------------ Cargo.toml | 12 +++--- docs/config/run.md | 30 +++++++++++-- docs/guide/cache.md | 6 +-- packages/cli/binding/src/cli/resolver.rs | 8 ++-- packages/cli/src/run-config.ts | 40 ++++++++--------- 6 files changed, 88 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0e5c6a1512..4a265f64e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2054,7 +2054,7 @@ dependencies = [ [[package]] name = "fspy" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "anyhow", "bstr", @@ -2089,7 +2089,7 @@ dependencies = [ [[package]] name = "fspy_detours_sys" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "cc", "winapi", @@ -2098,7 +2098,7 @@ dependencies = [ [[package]] name = "fspy_preload_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "anyhow", "bstr", @@ -2113,7 +2113,7 @@ dependencies = [ [[package]] name = "fspy_preload_windows" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "constcat", "fspy_detours_sys", @@ -2129,7 +2129,7 @@ dependencies = [ [[package]] name = "fspy_seccomp_unotify" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "futures-util", "libc", @@ -2146,18 +2146,18 @@ dependencies = [ [[package]] name = "fspy_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "bitflags 2.11.0", "bstr", "bumpalo", "bytemuck", "native_str", - "os_str_bytes", "shared_memory", "thiserror 2.0.18", "tracing", "uuid", + "vite_path", "winapi", "wincode", ] @@ -2165,7 +2165,7 @@ dependencies = [ [[package]] name = "fspy_shared_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "anyhow", "base64 0.22.1", @@ -3314,7 +3314,7 @@ dependencies = [ [[package]] name = "materialized_artifact" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "tempfile", ] @@ -3322,7 +3322,7 @@ dependencies = [ [[package]] name = "materialized_artifact_build" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "xxhash-rust", ] @@ -3536,7 +3536,7 @@ dependencies = [ [[package]] name = "native_str" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "bumpalo", "bytemuck", @@ -5030,7 +5030,7 @@ dependencies = [ [[package]] name = "pty_terminal_test_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" [[package]] name = "quote" @@ -7765,7 +7765,7 @@ dependencies = [ [[package]] name = "vite_glob" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "globset", "thiserror 2.0.18", @@ -7812,7 +7812,7 @@ dependencies = [ [[package]] name = "vite_graph_ser" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "petgraph 0.8.3", "serde", @@ -7911,9 +7911,10 @@ dependencies = [ [[package]] name = "vite_path" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "diff-struct", + "os_str_bytes", "path-clean", "ref-cast", "serde", @@ -7942,7 +7943,7 @@ dependencies = [ [[package]] name = "vite_powershell" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "vite_path", "which", @@ -7951,7 +7952,7 @@ dependencies = [ [[package]] name = "vite_select" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "anyhow", "crossterm", @@ -8003,7 +8004,7 @@ dependencies = [ [[package]] name = "vite_shell" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "brush-parser 0.4.0", "diff-struct", @@ -8030,7 +8031,7 @@ dependencies = [ [[package]] name = "vite_str" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "compact_str", "diff-struct", @@ -8041,7 +8042,7 @@ dependencies = [ [[package]] name = "vite_task" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "anstream", "anyhow", @@ -8090,7 +8091,7 @@ dependencies = [ [[package]] name = "vite_task_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "native_str", "rustc-hash", @@ -8103,7 +8104,7 @@ dependencies = [ [[package]] name = "vite_task_client_napi" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "napi", "napi-build", @@ -8115,7 +8116,7 @@ dependencies = [ [[package]] name = "vite_task_graph" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "anyhow", "async-trait", @@ -8137,7 +8138,7 @@ dependencies = [ [[package]] name = "vite_task_ipc_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "native_str", "rustc-hash", @@ -8147,7 +8148,7 @@ dependencies = [ [[package]] name = "vite_task_plan" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "anyhow", "async-trait", @@ -8175,7 +8176,7 @@ dependencies = [ [[package]] name = "vite_task_server" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "futures", "native_str", @@ -8199,7 +8200,7 @@ version = "0.0.0" [[package]] name = "vite_workspace" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=68fb22e49ad55ee308de24cef387995ddcedd5bd#68fb22e49ad55ee308de24cef387995ddcedd5bd" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" dependencies = [ "clap", "petgraph 0.8.3", diff --git a/Cargo.toml b/Cargo.toml index b0f85176e1..e77f6b438c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -193,7 +193,7 @@ dunce = "1.0.5" fast-glob = "1.0.0" flate2 = { version = "=1.1.9", features = ["zlib-rs"] } form_urlencoded = "1.2.1" -fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } +fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } futures = "0.3.31" futures-util = "0.3.31" glob = "0.3.2" @@ -303,11 +303,11 @@ vite_pm_cli = { path = "crates/vite_pm_cli" } vite_setup = { path = "crates/vite_setup" } vite_shared = { path = "crates/vite_shared" } vite_static_config = { path = "crates/vite_static_config" } -vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } -vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } -vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } -vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } -vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "68fb22e49ad55ee308de24cef387995ddcedd5bd" } +vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } +vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } +vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } +vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } +vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } walkdir = "2.5.0" wax = "0.6.0" which = "8.0.0" diff --git a/docs/config/run.md b/docs/config/run.md index f4d7b6417d..c7a1463c46 100644 --- a/docs/config/run.md +++ b/docs/config/run.md @@ -270,10 +270,23 @@ String glob patterns are resolved relative to the package directory by default. ### `output` -- **Type:** `Array` -- **Default:** `[]` (nothing is archived) +- **Type:** `Array` +- **Default:** `[{ auto: true }]` (auto-inferred) + +Files the task produces. By default, Vite Task automatically detects files written by the command, archives them after a successful run, and restores them on a cache hit so you don't have to rebuild them. -Files the task produces. They get archived after a successful run and restored on a cache hit, so you don't have to rebuild them. Leave it empty (or omit it) and nothing is archived. +**Exclude files** from automatic output tracking: + +```ts [vite.config.ts] +tasks: { + build: { + command: 'vp build', + output: [{ auto: true }, '!dist/cache/**'], + }, +} +``` + +**Specify explicit output files** only without automatic tracking: ```ts [vite.config.ts] tasks: { @@ -284,6 +297,17 @@ tasks: { } ``` +**Disable output restoration** entirely and cache only terminal output: + +```ts [vite.config.ts] +tasks: { + build: { + command: 'vp build', + output: [], + }, +} +``` + If a task writes outside its own package, use the object form with `base: "workspace"`: ```ts [vite.config.ts] diff --git a/docs/guide/cache.md b/docs/guide/cache.md index fd034e0249..dafb2e5124 100644 --- a/docs/guide/cache.md +++ b/docs/guide/cache.md @@ -10,17 +10,17 @@ When a task runs successfully (exit code 0), its terminal output (stdout/stderr) 2. **Environment variables:** did any [fingerprinted env vars](/config/run#env) change? 3. **Input files:** did any file that the command reads change? -If everything matches, the cached output is replayed instantly, and the command does not run. +If everything matches, the cached terminal output is replayed instantly, written files are restored, and the command does not run. ::: info -By default, only terminal output is cached and replayed. To cache files produced by a task, configure [`output`](/config/run#output) globs. Matching files are archived after a successful run and restored on a cache hit. +By default, Vite Task automatically tracks files produced by a task, archives them after a successful run, and restores them on a cache hit. Use [`output`](/config/run#output) to limit, exclude, or disable file restoration. ::: ```ts [vite.config.ts] tasks: { build: { command: 'vp build', - output: ['dist/**'], + output: [{ auto: true }, '!dist/cache/**'], }, } ``` diff --git a/packages/cli/binding/src/cli/resolver.rs b/packages/cli/binding/src/cli/resolver.rs index 5c8a591848..c98ebddb1c 100644 --- a/packages/cli/binding/src/cli/resolver.rs +++ b/packages/cli/binding/src/cli/resolver.rs @@ -4,7 +4,7 @@ use rustc_hash::FxHashMap; use vite_path::AbsolutePath; use vite_str::Str; use vite_task::config::user::{ - AutoInput, EnabledCacheConfig, GlobWithBase, InputBase, UserCacheConfig, UserInputEntry, + AutoTracking, EnabledCacheConfig, GlobWithBase, InputBase, UserCacheConfig, UserInputEntry, }; use super::{ @@ -207,7 +207,7 @@ impl SubcommandResolver { env: None, untracked_env: None, input: Some(vec![ - UserInputEntry::Auto(AutoInput { auto: true }), + UserInputEntry::Auto(AutoTracking { auto: true }), exclude_glob("!node_modules/.vite-temp/**", InputBase::Package), exclude_glob( "!node_modules/.vite/vitest/**/results.json", @@ -319,7 +319,7 @@ fn exclude_glob(pattern: &str, base: InputBase) -> UserInputEntry { /// by a runner-aware approach that automatically excludes task output directories. fn build_pack_cache_inputs() -> Vec { vec![ - UserInputEntry::Auto(AutoInput { auto: true }), + UserInputEntry::Auto(AutoTracking { auto: true }), exclude_glob("!node_modules/.vite-temp/**", InputBase::Workspace), exclude_glob("!node_modules/.vite-temp/**", InputBase::Package), exclude_glob("!dist/**", InputBase::Package), @@ -333,7 +333,7 @@ fn build_pack_cache_inputs() -> Vec { /// - `.vite/task-cache`: task runner state files that change after each run pub(super) fn check_cache_inputs() -> Vec { vec![ - UserInputEntry::Auto(AutoInput { auto: true }), + UserInputEntry::Auto(AutoTracking { auto: true }), exclude_glob("!node_modules/.vite-temp/**", InputBase::Workspace), exclude_glob("!node_modules/.vite-temp/**", InputBase::Package), exclude_glob("!node_modules/.vite/task-cache/**", InputBase::Workspace), diff --git a/packages/cli/src/run-config.ts b/packages/cli/src/run-config.ts index 35bc91b64d..280b9adc17 100644 --- a/packages/cli/src/run-config.ts +++ b/packages/cli/src/run-config.ts @@ -1,18 +1,18 @@ // This file is auto-generated by `cargo test`. Do not edit manually. -export type AutoInput = { +export type AutoTracking = { /** - * Automatically track which files the task reads + * Enable automatic file tracking for this input or output list. */ auto: boolean, }; export type Command = string | Array; -export type GlobWithBase = { +export type GlobWithBase = { /** * The glob pattern (positive or negative starting with `!`) */ -pattern: string, +pattern: string, /** * The base directory for resolving the pattern */ @@ -20,31 +20,31 @@ base: InputBase, }; export type InputBase = "package" | "workspace"; -export type Task = { +export type Task = { /** * Command to run, or an array of commands to run in order. */ -command: Command, +command: Command, /** * The working directory for the task, relative to the package root (not workspace root). */ -cwd?: string, +cwd?: string, /** * Dependencies of this task. Use `package-name#task-name` to refer to tasks in other packages. */ -dependsOn?: Array, } & ({ +dependsOn?: Array, } & ({ /** * Whether to cache the task */ -cache?: true, +cache?: true, /** * Environment variable names to be fingerprinted and passed to the task. */ -env?: Array, +env?: Array, /** * Environment variable names to be passed to the task without fingerprinting. */ -untrackedEnv?: Array, +untrackedEnv?: Array, /** * Files to include in the cache fingerprint. * @@ -55,7 +55,7 @@ untrackedEnv?: Array, * - `{auto: true}` enables automatic file tracking * - Negative patterns (e.g. `"!dist/**"`) exclude matched files */ -input?: Array, +input?: Array, /** * Output files to archive and restore on cache hit. * @@ -63,10 +63,10 @@ input?: Array, * - `[]` (empty): disables output restoration entirely * - Glob patterns (e.g. `"dist/**"`) select specific output files, relative to the package directory * - `{pattern: "...", base: "workspace" | "package"}` specifies a glob with an explicit base directory - * - `{auto: true}` enables automatic file tracking + * - `{auto: true}` enables automatic output tracking * - Negative patterns (e.g. `"!dist/cache/**"`) exclude matched files */ -output?: Array, } | { +output?: Array, } | { /** * Whether to cache the task */ @@ -74,7 +74,7 @@ cache: false, }); export type TaskDefinition = Task | Command; -export type UserGlobalCacheConfig = boolean | { +export type UserGlobalCacheConfig = boolean | { /** * Enable caching for package.json scripts not defined in the `tasks` map. * @@ -83,7 +83,7 @@ export type UserGlobalCacheConfig = boolean | { * * Default: `false` */ -scripts?: boolean, +scripts?: boolean, /** * Global cache kill switch for task entries. * @@ -95,18 +95,18 @@ scripts?: boolean, */ tasks?: boolean, }; -export type RunConfig = { +export type RunConfig = { /** * Root-level cache configuration. * * This option can only be set in the workspace root's config file. * Setting it in a package's config will result in an error. */ -cache?: UserGlobalCacheConfig, +cache?: UserGlobalCacheConfig, /** * Task definitions: full task objects, command strings, or command string arrays. */ -tasks?: { [key in string]: TaskDefinition }, +tasks?: { [key in string]: TaskDefinition }, /** * Whether to automatically run `preX`/`postX` package.json scripts as * lifecycle hooks when script `X` is executed. @@ -117,4 +117,4 @@ tasks?: { [key in string]: TaskDefinition }, * This option can only be set in the workspace root's config file. * Setting it in a package's config will result in an error. */ -enablePrePostScripts?: boolean, }; \ No newline at end of file +enablePrePostScripts?: boolean, }; From 72e8f7928014319ba897d6bf4dbd86b53d3c2128 Mon Sep 17 00:00:00 2001 From: wan9chi Date: Mon, 15 Jun 2026 10:47:37 +0800 Subject: [PATCH 05/13] docs: clarify zero-config vp build caching --- docs/config/run.md | 36 ++++++++++++++++++------------------ docs/guide/cache.md | 7 +++---- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/docs/config/run.md b/docs/config/run.md index c7a1463c46..b7075c8faf 100644 --- a/docs/config/run.md +++ b/docs/config/run.md @@ -167,8 +167,8 @@ Environment variables included in the cache fingerprint. When any listed variabl ```ts [vite.config.ts] tasks: { - build: { - command: 'vp build', + compile: { + command: 'webpack --mode production', env: ['NODE_ENV'], }, } @@ -190,8 +190,8 @@ Environment variables passed to the task process but **not** included in the cac ```ts [vite.config.ts] tasks: { - build: { - command: 'vp build', + deploy: { + command: 'node scripts/deploy-preview.mjs', untrackedEnv: ['CI', 'GITHUB_ACTIONS'], }, } @@ -215,8 +215,8 @@ Vite Task automatically detects which files are used by a command (see [Automati ```ts [vite.config.ts] tasks: { - build: { - command: 'vp build', + typecheck: { + command: 'tsc -p tsconfig.json', // Use `{ auto: true }` to use automatic fingerprinting (default). input: [{ auto: true }, '!**/*.tsbuildinfo', '!dist/**'], }, @@ -227,8 +227,8 @@ tasks: { ```ts [vite.config.ts] tasks: { - build: { - command: 'vp build', + typecheck: { + command: 'tsc -p tsconfig.json', input: ['src/**/*.ts', 'vite.config.ts'], }, } @@ -238,8 +238,8 @@ tasks: { ```ts [vite.config.ts] tasks: { - build: { - command: 'vp build', + docs: { + command: 'node scripts/build-docs.mjs', input: [ { auto: true }, { pattern: 'shared-config/**', base: 'workspace' }, @@ -279,8 +279,8 @@ Files the task produces. By default, Vite Task automatically detects files writt ```ts [vite.config.ts] tasks: { - build: { - command: 'vp build', + assets: { + command: 'node scripts/generate-assets.mjs', output: [{ auto: true }, '!dist/cache/**'], }, } @@ -290,8 +290,8 @@ tasks: { ```ts [vite.config.ts] tasks: { - build: { - command: 'vp build', + assets: { + command: 'node scripts/generate-assets.mjs', output: ['dist/**', '!dist/cache/**'], }, } @@ -301,8 +301,8 @@ tasks: { ```ts [vite.config.ts] tasks: { - build: { - command: 'vp build', + report: { + command: 'node scripts/generate-report.mjs', output: [], }, } @@ -312,8 +312,8 @@ If a task writes outside its own package, use the object form with `base: "works ```ts [vite.config.ts] tasks: { - build: { - command: 'vp build', + assets: { + command: 'node scripts/generate-assets.mjs', output: [ 'dist/**', { pattern: 'shared-artifacts/**', base: 'workspace' }, diff --git a/docs/guide/cache.md b/docs/guide/cache.md index dafb2e5124..1f5bf896eb 100644 --- a/docs/guide/cache.md +++ b/docs/guide/cache.md @@ -18,13 +18,12 @@ By default, Vite Task automatically tracks files produced by a task, archives th ```ts [vite.config.ts] tasks: { - build: { - command: 'vp build', - output: [{ auto: true }, '!dist/cache/**'], - }, + build: 'vp build', } ``` +`vp build` works with zero cache config: Vite Task infers both the files read by the build and the files written by the build. + When a cache miss occurs, Vite Task tells you exactly why: ``` From 9560102ea4baae860c4daa44b87a5c3b5424129b Mon Sep 17 00:00:00 2001 From: wan9chi Date: Mon, 15 Jun 2026 11:29:43 +0800 Subject: [PATCH 06/13] fix: guard vite type export workaround --- packages/core/build.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/core/build.ts b/packages/core/build.ts index ee45093887..c8a7df2e40 100644 --- a/packages/core/build.ts +++ b/packages/core/build.ts @@ -324,8 +324,15 @@ async function buildVite() { // project then fails with `[MISSING_EXPORT]`. Add the missing `export` here // until it is fixed upstream (drop this once vite exports it). if (relativePath === '/importGlob.d.ts') { + const knownQueryTypeMapPattern = /^type KnownQueryTypeMap\b/m; + if (!knownQueryTypeMapPattern.test(rewrittenFile)) { + throw new Error( + 'Expected vite types/importGlob.d.ts to declare non-exported KnownQueryTypeMap. ' + + 'Upstream may have fixed vitejs/vite#21863; remove the KnownQueryTypeMap export workaround from packages/core/build.ts.', + ); + } rewrittenFile = rewrittenFile.replace( - /^type KnownQueryTypeMap\b/m, + knownQueryTypeMapPattern, 'export type KnownQueryTypeMap', ); } From 2f594fbea2c15b3472a954b71eb52e997ad511df Mon Sep 17 00:00:00 2001 From: wan9chi Date: Sun, 21 Jun 2026 13:24:16 +0800 Subject: [PATCH 07/13] chore(deps): use vite 8.1.0-beta.0 --- packages/core/package.json | 2 +- packages/tools/.upstream-versions.json | 4 +- pnpm-lock.yaml | 974 +++++++++++++++++-------- 3 files changed, 688 insertions(+), 292 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 0dd8799c33..ff360d1334 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -218,7 +218,7 @@ "node": "^20.19.0 || ^22.18.0 || >=24.11.0" }, "bundledVersions": { - "vite": "8.0.16", + "vite": "8.1.0-beta.0", "rolldown": "1.1.1", "tsdown": "0.22.3" } diff --git a/packages/tools/.upstream-versions.json b/packages/tools/.upstream-versions.json index 1a9f0a082b..7b8f873c4d 100644 --- a/packages/tools/.upstream-versions.json +++ b/packages/tools/.upstream-versions.json @@ -6,7 +6,7 @@ }, "vite": { "repo": "https://github.com/vitejs/vite.git", - "branch": "main", - "hash": "c13a37b53ec673e5a9053355fce3b9c4528fd917" + "branch": "v8.1.0-beta.0", + "hash": "5deed202929159c20740897009c56d7ab5d32e28" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0e94d62e63..f1684f4ff5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -406,11 +406,11 @@ importers: version: 0.23.0 vitest: specifier: 'catalog:' - version: 4.1.9(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@24.12.4)(@vitest/browser-playwright@4.1.9)(@vitest/browser-preview@4.1.9)(@vitest/browser-webdriverio@4.1.9)(happy-dom@20.0.10)(jsdom@27.2.0)(vite@packages+core) + version: 4.1.9(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@24.13.2)(@vitest/browser-playwright@4.1.9)(@vitest/browser-preview@4.1.9)(@vitest/browser-webdriverio@4.1.9)(happy-dom@20.0.10)(jsdom@27.2.0)(vite@packages+core) devDependencies: '@napi-rs/cli': specifier: 'catalog:' - version: 3.7.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.12.4)(node-addon-api@7.1.1) + version: 3.7.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.13.2)(node-addon-api@7.1.1) '@nkzw/safe-word-list': specifier: 'catalog:' version: 3.1.0 @@ -482,7 +482,7 @@ importers: version: 7.8.4 tsdown: specifier: 'catalog:' - version: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.0) + version: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1) validate-npm-package-name: specifier: 'catalog:' version: 7.0.2 @@ -665,7 +665,7 @@ importers: version: 1.3.0 tsdown: specifier: 'catalog:' - version: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.0) + version: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1) packages/tools: dependencies: @@ -696,7 +696,7 @@ importers: version: 7.8.4 vitest: specifier: 'catalog:' - version: 4.1.9(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@24.12.4)(@vitest/browser-playwright@4.1.9)(@vitest/browser-preview@4.1.9)(@vitest/browser-webdriverio@4.1.9)(happy-dom@20.0.10)(jsdom@27.2.0)(vite@packages+core) + version: 4.1.9(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@24.13.2)(@vitest/browser-playwright@4.1.9)(@vitest/browser-preview@4.1.9)(@vitest/browser-webdriverio@4.1.9)(happy-dom@20.0.10)(jsdom@27.2.0)(vite@packages+core) yaml: specifier: 'catalog:' version: 2.9.0 @@ -824,7 +824,7 @@ importers: devDependencies: '@napi-rs/cli': specifier: 'catalog:' - version: 3.7.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.12.4)(node-addon-api@7.1.1) + version: 3.7.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.13.2)(node-addon-api@7.1.1) '@napi-rs/wasm-runtime': specifier: 'catalog:' version: 1.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) @@ -884,10 +884,10 @@ importers: dependencies: acorn-import-assertions: specifier: 'catalog:' - version: 1.9.0(acorn@8.16.0) + version: 1.9.0(acorn@8.17.0) acorn-import-phases: specifier: ^1.0.4 - version: 1.0.4(acorn@8.16.0) + version: 1.0.4(acorn@8.17.0) fixturify: specifier: 'catalog:' version: 3.0.0 @@ -984,8 +984,8 @@ importers: specifier: ^3.0.8 version: 3.0.8 '@types/node': - specifier: ^24.12.4 - version: 24.12.4 + specifier: ^24.13.2 + version: 24.13.2 '@types/picomatch': specifier: ^4.0.3 version: 4.0.3 @@ -1003,10 +1003,10 @@ importers: version: 9.39.4(jiti@2.7.0) eslint-plugin-import-x: specifier: ^4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2))(eslint@9.39.4(jiti@2.7.0)) + version: 4.16.2(@typescript-eslint/utils@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2))(eslint@9.39.4(jiti@2.7.0)) eslint-plugin-n: - specifier: ^18.0.1 - version: 18.0.1(eslint@9.39.4(jiti@2.7.0))(ts-declaration-location@1.0.7(typescript@6.0.2))(typescript@6.0.2) + specifier: ^18.1.0 + version: 18.1.0(eslint@9.39.4(jiti@2.7.0))(ts-declaration-location@1.0.7(typescript@6.0.2))(typescript@6.0.2) eslint-plugin-regexp: specifier: ^3.1.0 version: 3.1.0(eslint@9.39.4(jiti@2.7.0)) @@ -1020,8 +1020,8 @@ importers: specifier: ^17.0.7 version: 17.0.7 oxfmt: - specifier: ^0.52.0 - version: 0.52.0(vite-plus@packages+cli) + specifier: ^0.54.0 + version: 0.54.0(vite-plus@packages+cli) picocolors: specifier: ^1.1.1 version: 1.1.1 @@ -1044,20 +1044,20 @@ importers: specifier: ~6.0.2 version: 6.0.2 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) + specifier: ^8.61.0 + version: 8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) vite: specifier: workspace:@voidzero-dev/vite-plus-core@* version: link:../packages/core vitest: - specifier: ^4.1.7 - version: 4.1.9(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@24.12.4)(@vitest/browser-playwright@4.1.9)(@vitest/browser-preview@4.1.9)(@vitest/browser-webdriverio@4.1.9)(happy-dom@20.0.10)(jsdom@27.2.0)(vite@packages+core) + specifier: ^4.1.8 + version: 4.1.9(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@24.13.2)(@vitest/browser-playwright@4.1.9)(@vitest/browser-preview@4.1.9)(@vitest/browser-webdriverio@4.1.9)(happy-dom@20.0.10)(jsdom@27.2.0)(vite@packages+core) vite/packages/create-vite: devDependencies: '@clack/prompts': - specifier: ^1.5.0 - version: 1.5.0 + specifier: ^1.5.1 + version: 1.6.0 '@vercel/detect-agent': specifier: ^1.2.3 version: 1.2.3 @@ -1069,10 +1069,10 @@ importers: version: 1.2.0 tsdown: specifier: ^0.22.1 - version: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.0) + version: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1) unrun: - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.3.1 + version: 0.3.1 vite/packages/plugin-legacy: dependencies: @@ -1117,17 +1117,17 @@ importers: version: 5.48.0 devDependencies: acorn: - specifier: ^8.16.0 - version: 8.16.0 + specifier: ^8.17.0 + version: 8.17.0 picocolors: specifier: ^1.1.1 version: 1.1.1 tsdown: specifier: ^0.22.1 - version: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.0) + version: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1) unrun: - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.3.1 + version: 0.3.1 vite: specifier: workspace:@voidzero-dev/vite-plus-core@* version: link:../../../packages/core @@ -1202,11 +1202,11 @@ importers: specifier: ^1.2.3 version: 1.2.3 '@vitejs/devtools': - specifier: ^0.3.1 + specifier: ^0.3.3 version: 0.3.3(typescript@6.0.2)(vite@packages+core) '@vitest/utils': - specifier: 4.1.7 - version: 4.1.7 + specifier: 4.1.8 + version: 4.1.8 '@voidzero-dev/vite-task-client': specifier: ^0.1.1 version: 0.1.1 @@ -1214,8 +1214,8 @@ importers: specifier: ^0.4.3 version: 0.4.3 baseline-browser-mapping: - specifier: ^2.10.33 - version: 2.10.33 + specifier: ^2.10.37 + version: 2.10.38 cac: specifier: ^7.0.0 version: 7.0.0 @@ -1238,11 +1238,11 @@ importers: specifier: ^13.0.0 version: 13.0.0(patch_hash=49330a663821151418e003e822a82a6a61d2f0f8a6e3cab00c1c94815a112889) es-module-lexer: - specifier: ^2.0.0 - version: 2.0.0 + specifier: ^2.1.0 + version: 2.1.0 esbuild: - specifier: ^0.28.0 - version: 0.28.0 + specifier: ^0.28.1 + version: 0.28.1 escape-html: specifier: ^1.0.3 version: 1.0.3 @@ -1252,12 +1252,15 @@ importers: etag: specifier: ^1.8.1 version: 1.8.1 + fresh-import: + specifier: ^0.2.1 + version: 0.2.1 host-validation-middleware: specifier: ^0.1.4 version: 0.1.4 http-proxy-3: - specifier: ^1.23.2 - version: 1.23.2 + specifier: ^1.23.3 + version: 1.23.3 launch-editor-middleware: specifier: ^2.14.1 version: 2.14.1 @@ -1316,8 +1319,8 @@ importers: specifier: ^3.7.1 version: 3.7.1(picomatch@4.0.4)(rollup@4.60.4) sass: - specifier: ^1.100.0 - version: 1.100.0 + specifier: ^1.101.0 + version: 1.101.0 sass-embedded: specifier: ^1.100.0 version: 1.100.0(source-map-js@1.2.1) @@ -2002,11 +2005,15 @@ packages: resolution: {integrity: sha512-7Wctjq6f7c1CPz8sPpkwUnz8yRgVANkpNupb81q432FjcJg4l+Sw7XANdNSdWfAKq0IHI0JTcUeK5dxs/HrGPw==} engines: {node: '>= 20.12.0'} + '@clack/core@1.4.2': + resolution: {integrity: sha512-0Ty/1Gfm+Kb07sXcuESjyKfwEhSy4Ns1AgeEisHb/bDY5fWme0tTeTkU14T1Gmcs17YIjB/teiDe4uaCghbYqQ==} + engines: {node: '>= 20.12.0'} + '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@clack/prompts@1.5.0': - resolution: {integrity: sha512-wKh+wTjmrUoUdkZg8KpJO5X+p9PWV+KE9mePseq9UYWkukgTKsGS47RRL2HstwVcvDQH+PenrPJWII8+MfiiyA==} + '@clack/prompts@1.6.0': + resolution: {integrity: sha512-EYlRokl8szrP9Z25qT5aepMdBjzBvHF9ZEhzIiUBc9guz/T31EqRgvD0QSgZcpE93xiwrr+OkB4nz0BZyF6fSA==} engines: {node: '>= 20.12.0'} '@conventional-changelog/git-client@2.7.0': @@ -2105,156 +2112,312 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.28.1': + resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.28.0': resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.28.1': + resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.28.0': resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.28.1': + resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.28.0': resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.28.1': + resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.28.0': resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.28.1': + resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.28.0': resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.28.1': + resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.28.0': resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.28.1': + resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.28.0': resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.28.1': + resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.28.0': resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.28.1': + resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.28.0': resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.28.1': + resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.28.0': resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.28.1': + resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.28.0': resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.28.1': + resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.28.0': resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.28.1': + resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.28.0': resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.28.1': + resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.28.0': resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.28.1': + resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.28.0': resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.28.1': + resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.28.0': resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.28.1': + resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.28.0': resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.28.1': + resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.28.0': resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.28.1': + resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.28.0': resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.28.1': + resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.28.0': resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.28.1': + resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openharmony-arm64@0.28.0': resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] + '@esbuild/openharmony-arm64@0.28.1': + resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.28.0': resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.28.1': + resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.28.0': resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.28.1': + resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.28.0': resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.28.1': + resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.28.0': resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} engines: {node: '>=18'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.28.1': + resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3697,8 +3860,8 @@ packages: cpu: [x64] os: [win32] - '@oxfmt/binding-android-arm-eabi@0.52.0': - resolution: {integrity: sha512-17EMSJnQ9g+upVHrAUYDMfH5lvRKQ9Nvg8WtEoH72oDr1VpWz+7/o3tD97U1EToen2YAQ/68JmtDYkQUi20dfQ==} + '@oxfmt/binding-android-arm-eabi@0.54.0': + resolution: {integrity: sha512-NAtpl/SiaeU103e7/OmZw0MvUnsUUopW7hEm/ecegJg7YM0skQaA0IXEZoyTV6NUdiNPupdIUreRqUZTShbn/g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] @@ -3709,8 +3872,8 @@ packages: cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.52.0': - resolution: {integrity: sha512-A2G1IdwGEW2lLJkIxcvuirRH1CzSl/e0NX11zTlW1gvxJThfwbI/BEoaKrTNpm7M2FchvIf6guvIQU7d5iz+OQ==} + '@oxfmt/binding-android-arm64@0.54.0': + resolution: {integrity: sha512-B4VZfBUlKK1rmMChsssNZbkZjE8+FzG3avMjGgMDwbGxXRoXkoeXiAZ+78Oa+eyDPHvDCiUb4zH/vmCOUSafLQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] @@ -3721,8 +3884,8 @@ packages: cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.52.0': - resolution: {integrity: sha512-f9+bLvOYxy7NttCLFTvQ7afmqDOWY4wIP9xdvfj5trQ1qj6f2UFAGwZESlfsMjvJNTyRpXfIlOanCI9FOvoeQA==} + '@oxfmt/binding-darwin-arm64@0.54.0': + resolution: {integrity: sha512-i02vF75b+ePsQP3tHqSxVYI5S6b8X/xqdPu7/mDHXtpgXLTYXi3jJmfHU0j+dnZZDKaYTx/ioCK7QYJmtiJR2g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] @@ -3733,8 +3896,8 @@ packages: cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.52.0': - resolution: {integrity: sha512-YSTB9sJ5nnQd/Q0ddHkgof0ZCHPAnWZT1IW2SJ8omz7CP7KluJhO1fNHrpqdxCtpztJwSs4hY1uAee35wKxxaw==} + '@oxfmt/binding-darwin-x64@0.54.0': + resolution: {integrity: sha512-8VMFvGvooXj7mswkbrhdVZ2/sgiDaBzWpkkbtO+qGDLV4EfJd67nQadHkQC0ZNbaWA9ajXfqI6i7PZLIeDzxEQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] @@ -3745,8 +3908,8 @@ packages: cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.52.0': - resolution: {integrity: sha512-NIrRNTTPCs4UbmVs0bxLSCDlLCtIRMJIXklNKaXa5Oj2/K1UIMBvgE8+uPVo01Io3N9HF0+GAX+aAHjUgZS7vA==} + '@oxfmt/binding-freebsd-x64@0.54.0': + resolution: {integrity: sha512-0cRHnp43WN1Jrc5s0BdbdKgR1XirdvHy7TAFi3JEsoEVQVJxTXMbpVd76sxXlgRswNMDhVFSJw+y7Eb8mEavFQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] @@ -3757,8 +3920,8 @@ packages: cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.52.0': - resolution: {integrity: sha512-JXUCde8mn3GpgQouz2PXUokgy/uT1QrRJBL2s983VWcSQp62wTFYiNXgTKdeo1Jgbr0IgUnKKvzIk/YBlj/nVQ==} + '@oxfmt/binding-linux-arm-gnueabihf@0.54.0': + resolution: {integrity: sha512-JyQAk3hK/OEtup7Rw6kZwfdzbKqTVD5jXXb8Xpfay29suwZyfBDMVW/bj4RqEPySYWc6zCp198pOluf8n5uYzg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] @@ -3769,8 +3932,8 @@ packages: cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.52.0': - resolution: {integrity: sha512-psbUXaRZ+V8DaXz10Qf7LSHtdtdKAmC8fxXgeU608jjzrmWK4quamZMOpl6sf+dikoFHA85uE93Q0BqxrCdQrQ==} + '@oxfmt/binding-linux-arm-musleabihf@0.54.0': + resolution: {integrity: sha512-qnvLatTpM8vtvjOfcckBOzJjk+n6ce/wwpP8OFeUrD5aNLYcKyWAitwj+Rk3PK9jGanbZvKsJnv14JGQ6XqFdw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] @@ -3781,8 +3944,8 @@ packages: cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.52.0': - resolution: {integrity: sha512-Jw7MgWUU9lcLCcy82updISP3EthTlfvAwR6gWNxPzqly7+fLvOi2gHQE9xXQjpqaVLm/8P+gOzlv9ODuoVlaaw==} + '@oxfmt/binding-linux-arm64-gnu@0.54.0': + resolution: {integrity: sha512-SMkhnCzIYZYDk9vw3W/80eeYKmrMpGF0Giuxt4HruFlCH7jEtnPeb3SdQKMfgYi/dgtaf+hZAb5XWPYnxqCQ3w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -3795,8 +3958,8 @@ packages: os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.52.0': - resolution: {integrity: sha512-wZg6bLjDvh2KibyI3QFUYo8GTXneIFsd0JvehtvJiUmQ8WRPERgxd/VM4ctWb86U5FT1FkqgS8/wZKVB+AZScg==} + '@oxfmt/binding-linux-arm64-musl@0.54.0': + resolution: {integrity: sha512-QrwJlBFFKnxOd95TAaszpMbZBLzMoYMpGaQTZF8oibacnF5rv8l12IhILhQRPmksWiBqg0YSe2Mnl7ayeJAHSA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -3809,8 +3972,8 @@ packages: os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.52.0': - resolution: {integrity: sha512-IngE8uxhNvxcMrLjZNDo9xNLY7rEK33AKnaMd2B46he1e/mz2CfcW6If/U1wUjdRZddm1QzQaciqZkuMkdh1FA==} + '@oxfmt/binding-linux-ppc64-gnu@0.54.0': + resolution: {integrity: sha512-WILatiol/TUHTlhod7R09+7Az/XlhKwmY1MHfLZNmewltPWNN/EwxP2rQSHahibZ/cB8gmckEBjBOByD+5bYsQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] @@ -3823,8 +3986,8 @@ packages: os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.52.0': - resolution: {integrity: sha512-H3+DdFMv/efN3Efmhsv18jDrpiWWqKG7wsfAlQBqAt6z/E2Bx+TwEj2Nowe51CPOWB8/mFBC2dAMSgVFLvvowA==} + '@oxfmt/binding-linux-riscv64-gnu@0.54.0': + resolution: {integrity: sha512-f05YMG4BH4G8S4ME6UM6fi1MnJ9094mrnvO5Pa4SJlMfWlUM+1/ZWMEF4NnjM7shZAvbHsHRuVYpUo0PHC4P9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] @@ -3837,8 +4000,8 @@ packages: os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.52.0': - resolution: {integrity: sha512-zji+1kb7lJKohSDjzC1IsS+K/cKRs1hdVf0ZH0VbdbiakmtLvN9twBoXo/k8VdjFax7kfo+DyPxS7vv52br1aw==} + '@oxfmt/binding-linux-riscv64-musl@0.54.0': + resolution: {integrity: sha512-UfL+2hj1ClNqcCRT9s8vBU4axDpjxgVxX96G+9DYAYjoc5b0u15CJtn2jgsi9iM+EbGNc5CW1HVRgwVu76UsSA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] @@ -3851,8 +4014,8 @@ packages: os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.52.0': - resolution: {integrity: sha512-hcLBYedpCy7ToUvvBidWk7+11Yhg1oAZ4+6hKPic/mQI6NaqXJSXMps5nFlwUuX2ewhtLZZDPg63TI042qGKBg==} + '@oxfmt/binding-linux-s390x-gnu@0.54.0': + resolution: {integrity: sha512-3/XZe931Hka+J6NjnaqJzYpsWWxDTuRdUdwSQHnOuJEgbC+SehIMFJS8hsEjV7LBhVSL2OCnRLvbVW8O97XIyw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] @@ -3865,8 +4028,8 @@ packages: os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.52.0': - resolution: {integrity: sha512-IDO2loXK2OtTOhSPchU9MW25mWL2QCDGdJbjN8MXKZVS80qXe5gMTwQWu/gMJ3juoBHbkuUZNB2N1LHzNT7DoA==} + '@oxfmt/binding-linux-x64-gnu@0.54.0': + resolution: {integrity: sha512-Ik93RlObtu43GbxApafayFjwYE06L6Xr08cSwpBPYbDrLp2ReZx0Jm1DqwRyYRnukUJy+rK2WaEvUQOxdytU9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -3879,8 +4042,8 @@ packages: os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.52.0': - resolution: {integrity: sha512-mAV2Hjn0SatJ+KoAzKUC3eJhdJ8wv+3m1KyuS0dTsbF0c5weq+QrCt/DRZZM+uj/XiKzCDEUKYsBF30e2qkcyw==} + '@oxfmt/binding-linux-x64-musl@0.54.0': + resolution: {integrity: sha512-yZcakmPlD86CNymknd7KfW+FH+qfbqJH+i0h69CYfV1+KMoVeM9UED+8+TDVoU4haxI0NxY7RPCvRLy3Sqd2Qg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -3893,8 +4056,8 @@ packages: os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.52.0': - resolution: {integrity: sha512-vd4npaUIwChxp7XzkqmepBWTT9YMcSe/NBApVGPC30/lLyOVaV3dvma1SKo03t8O73BPRAG7EyJzGlN5cJM5hQ==} + '@oxfmt/binding-openharmony-arm64@0.54.0': + resolution: {integrity: sha512-GiVBZNnEZnKu00f1jTg49nomv187d0GQX+O+ocykoLeiaALuEO+swoTehHn9TehTfi7V8H0i0e/yvUjCqnwk1w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] @@ -3905,8 +4068,8 @@ packages: cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.52.0': - resolution: {integrity: sha512-k2sz6gWQdMfh5HPpIS+Bw/0UEV/kaK2xuqJRrWL233sEHx9WLlsmvlPFM4HUNThkYbSN0U0vPW7LVKZWDS8hPQ==} + '@oxfmt/binding-win32-arm64-msvc@0.54.0': + resolution: {integrity: sha512-J0SSB8Z1Fre2sxRolYcW6Rl1RQmKdQ2hnHyq4YJrfBRiXTObLw4DXnIVraM/UyqGqwOi7yTrQA4VT7DPxlHVKA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] @@ -3917,8 +4080,8 @@ packages: cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.52.0': - resolution: {integrity: sha512-rhke69GTcArodLHpjMTfNnvjTEBryDeZcUCKK/VjXDMtfTULl6QRh0ymX5/hbCUv2WjYm9h/QbW++q2vE15gWQ==} + '@oxfmt/binding-win32-ia32-msvc@0.54.0': + resolution: {integrity: sha512-O61UDVj8zz6yXJjkHPf05VaMLOXmEF8P5kf/N0W7AQMmd6bcQogl+KJc7rMutKTL524oE9iH32JXZClBFmEQIg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] @@ -3929,8 +4092,8 @@ packages: cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.52.0': - resolution: {integrity: sha512-q5xL7oeXkZdEtNZWBdvehJcmt+GRu9l2bK40yJs1jJXlqq+r0Hygb1rTjq+FM2o/2xyt4cufH6KRplHp3Jjsvw==} + '@oxfmt/binding-win32-x64-msvc@0.54.0': + resolution: {integrity: sha512-1MDpqJPiFqxWtIHas8vkb1VZ7f7eKyTffAwmO8isxQYMaG1OFKsH666BWLeXQLO+IWNfiMssLD55hbR1lIPTqg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -4569,6 +4732,9 @@ packages: '@types/node@24.12.4': resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} + '@types/node@24.13.2': + resolution: {integrity: sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4618,39 +4784,39 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.60.0': - resolution: {integrity: sha512-QYb/sa74/s7OKMbACMjrYnGspj9Hs5YI5aaffSL65UfeBUzVzBJfVo3oWSpbzPurvm7yaCCo2Lk7lVj610HqKw==} + '@typescript-eslint/eslint-plugin@8.61.1': + resolution: {integrity: sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.60.0 + '@typescript-eslint/parser': ^8.61.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.60.0': - resolution: {integrity: sha512-fcqpj/MyK4sxDPcbe7STNPbpQL4RLZOPWuaTmwZYuc+hJKzRf58yRxfhqGpc6PIq9ZyfSBpfHgmUHmHs0KwHwg==} + '@typescript-eslint/parser@8.61.1': + resolution: {integrity: sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.60.0': - resolution: {integrity: sha512-aZu74NNKJeUWqCjDddzdiKaS82dgYgV/vmf+Ui3ZdZejmgfXR/q+pRumgobnQ2cCJTgGTWp4ypiwsuofFubavg==} + '@typescript-eslint/project-service@8.61.1': + resolution: {integrity: sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.60.0': - resolution: {integrity: sha512-pFzqhllJMs+jghLQWzV00ds39xLzuyqPSev5pd8f4Ir0rtKR3ZLUB4/4dhjOFighWb9larvtfJvqL+4yKDI3Xw==} + '@typescript-eslint/scope-manager@8.61.1': + resolution: {integrity: sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.60.0': - resolution: {integrity: sha512-BZPR3RGYlAXnly6ymAxfkVn5rCbZzQNou0rxv3GfWZ8cTQp+hhVd73khbGLAd8k1TlAPLISH337M+tAgAnaJDQ==} + '@typescript-eslint/tsconfig-utils@8.61.1': + resolution: {integrity: sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.60.0': - resolution: {integrity: sha512-SX46wEUtitCpq7AN38HkUU/+zvUpdKf7ephtWAFgckH8O7PQIyL5gvrhQgBLuEYgLfuKWOVvWVskMbuFHAz5xg==} + '@typescript-eslint/type-utils@8.61.1': + resolution: {integrity: sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -4660,21 +4826,25 @@ packages: resolution: {integrity: sha512-AsE7x2XaAK+CVbeih0Fvbn+r1qHxtpLDJ3XUuFcIinT318T90yHMJC+Zgv+jUuDjQQd06HKwxnDu6sz1IcTilA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.60.0': - resolution: {integrity: sha512-3AcZNBGMClm6CXDyo8kYvVGT/sx29sS0oBsIb9oZI2gunA4Vm2M3YHzRLPvsUBBsl+yB5FPtltq7gGH0iTlp9g==} + '@typescript-eslint/types@8.61.1': + resolution: {integrity: sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.61.1': + resolution: {integrity: sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.60.0': - resolution: {integrity: sha512-HtXuPfrHTyBDkameWpl+vJb1Uevu2tznAyahM1Oc4AENidCLTPiZDWIo4GfcxNdC/RcfGcadzzkqbRG87dUrQA==} + '@typescript-eslint/utils@8.61.1': + resolution: {integrity: sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.60.0': - resolution: {integrity: sha512-9WI52t8ZGLVGrPMBet25yAftqY/n95+zmoUUtJBBQTKDSKUu7OsPTroT2op7U9JatkoRccL0YkWDNMFfC4Sjxg==} + '@typescript-eslint/visitor-keys@8.61.1': + resolution: {integrity: sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260605.1': @@ -4889,8 +5059,8 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.7': - resolution: {integrity: sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw==} + '@vitest/pretty-format@4.1.8': + resolution: {integrity: sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==} '@vitest/pretty-format@4.1.9': resolution: {integrity: sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A==} @@ -4904,8 +5074,8 @@ packages: '@vitest/spy@4.1.9': resolution: {integrity: sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA==} - '@vitest/utils@4.1.7': - resolution: {integrity: sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw==} + '@vitest/utils@4.1.8': + resolution: {integrity: sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==} '@vitest/utils@4.1.9': resolution: {integrity: sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==} @@ -5038,6 +5208,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} @@ -5220,6 +5395,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + baseline-browser-mapping@2.10.38: + resolution: {integrity: sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==} + engines: {node: '>=6.0.0'} + hasBin: true + basic-ftp@5.0.5: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} @@ -5814,8 +5994,8 @@ packages: es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-module-lexer@2.0.0: - resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} + es-module-lexer@2.1.0: + resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} es-toolkit@1.47.1: resolution: {integrity: sha512-5RAqEwf4P4E17p+W75KLOWw/nOvKZzSQpxM32IpI2KZLaVonjTrZ0Ai5ghMaVI9eKC2p8eoQgcBdkEDgzFk6+Q==} @@ -5825,6 +6005,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.28.1: + resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -5883,8 +6068,8 @@ packages: eslint-import-resolver-node: optional: true - eslint-plugin-n@18.0.1: - resolution: {integrity: sha512-q3ARhk+eZRc7myR0KHx+R3/GJeOHF+Ir6PK95Pu2tEX8Sl/4BIpmmVLva2kPrjC2gCmn6WHlHm+3yeo6Rxhycw==} + eslint-plugin-n@18.1.0: + resolution: {integrity: sha512-hkUm9EtnFV2h2fE16jNVUfCVUqvPzI7fGLsFdun5lFt/pbmf2kCgDx6ymi9rx+NCUSggBmurJCZOfG20JBs/kg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: eslint: '>=8.57.1' @@ -6098,8 +6283,8 @@ packages: flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -6120,6 +6305,10 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} + fresh-import@0.2.1: + resolution: {integrity: sha512-fwvkgwvZ60xFe0FQ5nynh9mgayR5HY0e0rzPs2cDiGhrOo7N8ARyMHP0Ew7bUFe7QAaZmouphLnCoJKAe6dTog==} + engines: {node: ^20.19.0 || >=22.12.0} + fresh@2.0.0: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} @@ -6313,8 +6502,8 @@ packages: resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} - http-proxy-3@1.23.2: - resolution: {integrity: sha512-vZks1dLliM0w7aQDT9eFYLO8PUuQ9Cm67y7kn+kgkLtvKP0HZ6Thb3+MCGFFNCnKMCkLXY6rvIH1d7jQITryxA==} + http-proxy-3@1.23.3: + resolution: {integrity: sha512-zm8JCrJUwB3Rn0HJypwwDraljDt7YbF+r7Gz0exDRlaT8Yimjs5VRfwug1GrhoasMna1DjwHeEs48+iKxCozyA==} engines: {node: '>=18'} http-proxy-agent@7.0.2: @@ -7037,8 +7226,8 @@ packages: resolution: {integrity: sha512-7mVjRVgUAFl2OKCQMFjWmfrdx5Hcr20VQBLHm/SS/a/JJalal8gRVH2AoPymp9h5efJjB3REukK662aWJk4MsA==} engines: {node: ^20.19.0 || >=22.12.0} - oxfmt@0.52.0: - resolution: {integrity: sha512-nJlYM35F64zTDMecCNhoHNkf+D/eHv7xcjj9XDSj+bFAVtN93m7v8DQMdHd6nDG6Akf/kEYYHmDUBs2Dz27Sug==} + oxfmt@0.54.0: + resolution: {integrity: sha512-DjnMwn7smSLF+Mc2+pRItnuPftm/dkUFpY/d4+33y9TfKrsHZo8GLhmUg9BrOIUEy94Rlom1Q11N6vuhE+e0oQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -7733,6 +7922,11 @@ packages: engines: {node: '>=20.19.0'} hasBin: true + sass@1.101.0: + resolution: {integrity: sha512-OL3GoQyoUdDt843DpVmDO6y2k1sc5IhUDSpu8XucEI+35neq5QivZ1iuegnpraEVTJXlQGK1gl27zKcTLEPbQw==} + engines: {node: '>=20.19.0'} + hasBin: true + sax@1.4.3: resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} @@ -8185,8 +8379,8 @@ packages: resolution: {integrity: sha512-xygQcmneDyzsEuKZrFbRMne5HDqMs++aFzefrJTgEIKjQ3rekM+RPfFCVq2Gp1VIDqddoYeppCj4Pcb+RZW0GQ==} engines: {node: '>=20'} - typescript-eslint@8.60.0: - resolution: {integrity: sha512-9f65qWLZdAW9m1JaxBDUHcqRUfL8bkxxXL7XxEfI+F09q56PkBvIfCjLF3yInsDM/BBmwkqmCQdCZe/RYlIWEw==} + typescript-eslint@8.61.1: + resolution: {integrity: sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -8234,6 +8428,9 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + undici@6.22.0: resolution: {integrity: sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw==} engines: {node: '>=18.17'} @@ -8321,6 +8518,16 @@ packages: synckit: optional: true + unrun@0.3.1: + resolution: {integrity: sha512-onIck/oNnCaytwths1ZVp1LK2Gq2hPoyFhiHebObuUXqR3S0uHuLLaBK8K6mRRgV7Ptip8AnNvaUsgzwWwBZuA==} + engines: {node: ^22.13.0 || >=24.0.0} + hasBin: true + peerDependencies: + synckit: ^0.11.11 + peerDependenciesMeta: + synckit: + optional: true + unstorage@1.17.5: resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} peerDependencies: @@ -9515,15 +9722,20 @@ snapshots: fast-wrap-ansi: 0.2.0 sisteransi: 1.0.5 + '@clack/core@1.4.2': + dependencies: + fast-wrap-ansi: 0.2.0 + sisteransi: 1.0.5 + '@clack/prompts@0.11.0': dependencies: '@clack/core': 0.5.0 picocolors: 1.1.1 sisteransi: 1.0.5 - '@clack/prompts@1.5.0': + '@clack/prompts@1.6.0': dependencies: - '@clack/core': 1.4.0 + '@clack/core': 1.4.2 fast-string-width: 3.0.2 fast-wrap-ansi: 0.2.0 sisteransi: 1.0.5 @@ -9639,81 +9851,159 @@ snapshots: '@esbuild/aix-ppc64@0.28.0': optional: true + '@esbuild/aix-ppc64@0.28.1': + optional: true + '@esbuild/android-arm64@0.28.0': optional: true + '@esbuild/android-arm64@0.28.1': + optional: true + '@esbuild/android-arm@0.28.0': optional: true + '@esbuild/android-arm@0.28.1': + optional: true + '@esbuild/android-x64@0.28.0': optional: true + '@esbuild/android-x64@0.28.1': + optional: true + '@esbuild/darwin-arm64@0.28.0': optional: true + '@esbuild/darwin-arm64@0.28.1': + optional: true + '@esbuild/darwin-x64@0.28.0': optional: true + '@esbuild/darwin-x64@0.28.1': + optional: true + '@esbuild/freebsd-arm64@0.28.0': optional: true + '@esbuild/freebsd-arm64@0.28.1': + optional: true + '@esbuild/freebsd-x64@0.28.0': optional: true + '@esbuild/freebsd-x64@0.28.1': + optional: true + '@esbuild/linux-arm64@0.28.0': optional: true + '@esbuild/linux-arm64@0.28.1': + optional: true + '@esbuild/linux-arm@0.28.0': optional: true + '@esbuild/linux-arm@0.28.1': + optional: true + '@esbuild/linux-ia32@0.28.0': optional: true + '@esbuild/linux-ia32@0.28.1': + optional: true + '@esbuild/linux-loong64@0.28.0': optional: true + '@esbuild/linux-loong64@0.28.1': + optional: true + '@esbuild/linux-mips64el@0.28.0': optional: true + '@esbuild/linux-mips64el@0.28.1': + optional: true + '@esbuild/linux-ppc64@0.28.0': optional: true + '@esbuild/linux-ppc64@0.28.1': + optional: true + '@esbuild/linux-riscv64@0.28.0': optional: true + '@esbuild/linux-riscv64@0.28.1': + optional: true + '@esbuild/linux-s390x@0.28.0': optional: true + '@esbuild/linux-s390x@0.28.1': + optional: true + '@esbuild/linux-x64@0.28.0': optional: true + '@esbuild/linux-x64@0.28.1': + optional: true + '@esbuild/netbsd-arm64@0.28.0': optional: true + '@esbuild/netbsd-arm64@0.28.1': + optional: true + '@esbuild/netbsd-x64@0.28.0': optional: true + '@esbuild/netbsd-x64@0.28.1': + optional: true + '@esbuild/openbsd-arm64@0.28.0': optional: true + '@esbuild/openbsd-arm64@0.28.1': + optional: true + '@esbuild/openbsd-x64@0.28.0': optional: true + '@esbuild/openbsd-x64@0.28.1': + optional: true + '@esbuild/openharmony-arm64@0.28.0': optional: true + '@esbuild/openharmony-arm64@0.28.1': + optional: true + '@esbuild/sunos-x64@0.28.0': optional: true + '@esbuild/sunos-x64@0.28.1': + optional: true + '@esbuild/win32-arm64@0.28.0': optional: true + '@esbuild/win32-arm64@0.28.1': + optional: true + '@esbuild/win32-ia32@0.28.0': optional: true + '@esbuild/win32-ia32@0.28.1': + optional: true + '@esbuild/win32-x64@0.28.0': optional: true + '@esbuild/win32-x64@0.28.1': + optional: true + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.7.0))': dependencies: eslint: 9.39.4(jiti@2.7.0) @@ -9793,14 +10083,14 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/checkbox@5.2.1(@types/node@24.12.4)': + '@inquirer/checkbox@5.2.1(@types/node@24.13.2)': dependencies: '@inquirer/ansi': 2.0.7 - '@inquirer/core': 11.2.1(@types/node@24.12.4) + '@inquirer/core': 11.2.1(@types/node@24.13.2) '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/type': 4.0.7(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/confirm@6.1.1(@types/node@24.10.3)': dependencies: @@ -9809,12 +10099,12 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/confirm@6.1.1(@types/node@24.12.4)': + '@inquirer/confirm@6.1.1(@types/node@24.13.2)': dependencies: - '@inquirer/core': 11.2.1(@types/node@24.12.4) - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/core': 11.2.1(@types/node@24.13.2) + '@inquirer/type': 4.0.7(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/core@11.2.1(@types/node@24.10.3)': dependencies: @@ -9828,17 +10118,17 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/core@11.2.1(@types/node@24.12.4)': + '@inquirer/core@11.2.1(@types/node@24.13.2)': dependencies: '@inquirer/ansi': 2.0.7 '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/type': 4.0.7(@types/node@24.13.2) cli-width: 4.1.0 fast-wrap-ansi: 0.2.0 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/editor@5.2.2(@types/node@24.10.3)': dependencies: @@ -9848,13 +10138,13 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/editor@5.2.2(@types/node@24.12.4)': + '@inquirer/editor@5.2.2(@types/node@24.13.2)': dependencies: - '@inquirer/core': 11.2.1(@types/node@24.12.4) - '@inquirer/external-editor': 3.0.3(@types/node@24.12.4) - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/core': 11.2.1(@types/node@24.13.2) + '@inquirer/external-editor': 3.0.3(@types/node@24.13.2) + '@inquirer/type': 4.0.7(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/expand@5.1.1(@types/node@24.10.3)': dependencies: @@ -9863,12 +10153,12 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/expand@5.1.1(@types/node@24.12.4)': + '@inquirer/expand@5.1.1(@types/node@24.13.2)': dependencies: - '@inquirer/core': 11.2.1(@types/node@24.12.4) - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/core': 11.2.1(@types/node@24.13.2) + '@inquirer/type': 4.0.7(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/external-editor@3.0.3(@types/node@24.10.3)': dependencies: @@ -9877,12 +10167,12 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/external-editor@3.0.3(@types/node@24.12.4)': + '@inquirer/external-editor@3.0.3(@types/node@24.13.2)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/figures@2.0.7': {} @@ -9893,12 +10183,12 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/input@5.1.2(@types/node@24.12.4)': + '@inquirer/input@5.1.2(@types/node@24.13.2)': dependencies: - '@inquirer/core': 11.2.1(@types/node@24.12.4) - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/core': 11.2.1(@types/node@24.13.2) + '@inquirer/type': 4.0.7(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/number@4.1.1(@types/node@24.10.3)': dependencies: @@ -9907,12 +10197,12 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/number@4.1.1(@types/node@24.12.4)': + '@inquirer/number@4.1.1(@types/node@24.13.2)': dependencies: - '@inquirer/core': 11.2.1(@types/node@24.12.4) - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/core': 11.2.1(@types/node@24.13.2) + '@inquirer/type': 4.0.7(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/password@5.1.1(@types/node@24.10.3)': dependencies: @@ -9922,13 +10212,13 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/password@5.1.1(@types/node@24.12.4)': + '@inquirer/password@5.1.1(@types/node@24.13.2)': dependencies: '@inquirer/ansi': 2.0.7 - '@inquirer/core': 11.2.1(@types/node@24.12.4) - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/core': 11.2.1(@types/node@24.13.2) + '@inquirer/type': 4.0.7(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/prompts@8.5.2(@types/node@24.10.3)': dependencies: @@ -9945,20 +10235,20 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/prompts@8.5.2(@types/node@24.12.4)': - dependencies: - '@inquirer/checkbox': 5.2.1(@types/node@24.12.4) - '@inquirer/confirm': 6.1.1(@types/node@24.12.4) - '@inquirer/editor': 5.2.2(@types/node@24.12.4) - '@inquirer/expand': 5.1.1(@types/node@24.12.4) - '@inquirer/input': 5.1.2(@types/node@24.12.4) - '@inquirer/number': 4.1.1(@types/node@24.12.4) - '@inquirer/password': 5.1.1(@types/node@24.12.4) - '@inquirer/rawlist': 5.3.1(@types/node@24.12.4) - '@inquirer/search': 4.2.1(@types/node@24.12.4) - '@inquirer/select': 5.2.1(@types/node@24.12.4) + '@inquirer/prompts@8.5.2(@types/node@24.13.2)': + dependencies: + '@inquirer/checkbox': 5.2.1(@types/node@24.13.2) + '@inquirer/confirm': 6.1.1(@types/node@24.13.2) + '@inquirer/editor': 5.2.2(@types/node@24.13.2) + '@inquirer/expand': 5.1.1(@types/node@24.13.2) + '@inquirer/input': 5.1.2(@types/node@24.13.2) + '@inquirer/number': 4.1.1(@types/node@24.13.2) + '@inquirer/password': 5.1.1(@types/node@24.13.2) + '@inquirer/rawlist': 5.3.1(@types/node@24.13.2) + '@inquirer/search': 4.2.1(@types/node@24.13.2) + '@inquirer/select': 5.2.1(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/rawlist@5.3.1(@types/node@24.10.3)': dependencies: @@ -9967,12 +10257,12 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/rawlist@5.3.1(@types/node@24.12.4)': + '@inquirer/rawlist@5.3.1(@types/node@24.13.2)': dependencies: - '@inquirer/core': 11.2.1(@types/node@24.12.4) - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/core': 11.2.1(@types/node@24.13.2) + '@inquirer/type': 4.0.7(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/search@4.2.1(@types/node@24.10.3)': dependencies: @@ -9982,13 +10272,13 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/search@4.2.1(@types/node@24.12.4)': + '@inquirer/search@4.2.1(@types/node@24.13.2)': dependencies: - '@inquirer/core': 11.2.1(@types/node@24.12.4) + '@inquirer/core': 11.2.1(@types/node@24.13.2) '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/type': 4.0.7(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/select@5.2.1(@types/node@24.10.3)': dependencies: @@ -9999,22 +10289,22 @@ snapshots: optionalDependencies: '@types/node': 24.10.3 - '@inquirer/select@5.2.1(@types/node@24.12.4)': + '@inquirer/select@5.2.1(@types/node@24.13.2)': dependencies: '@inquirer/ansi': 2.0.7 - '@inquirer/core': 11.2.1(@types/node@24.12.4) + '@inquirer/core': 11.2.1(@types/node@24.13.2) '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@24.12.4) + '@inquirer/type': 4.0.7(@types/node@24.13.2) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@inquirer/type@4.0.7(@types/node@24.10.3)': optionalDependencies: '@types/node': 24.10.3 - '@inquirer/type@4.0.7(@types/node@24.12.4)': + '@inquirer/type@4.0.7(@types/node@24.13.2)': optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@isaacs/cliui@8.0.2': dependencies: @@ -10085,9 +10375,9 @@ snapshots: - node-addon-api - supports-color - '@napi-rs/cli@3.7.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.12.4)(node-addon-api@7.1.1)': + '@napi-rs/cli@3.7.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.13.2)(node-addon-api@7.1.1)': dependencies: - '@inquirer/prompts': 8.5.2(@types/node@24.12.4) + '@inquirer/prompts': 8.5.2(@types/node@24.13.2) '@napi-rs/cross-toolchain': 1.0.3(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) '@napi-rs/wasm-tools': 1.0.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) '@octokit/rest': 22.0.1 @@ -10962,115 +11252,115 @@ snapshots: '@oxc-transform/binding-win32-x64-msvc@0.136.0': optional: true - '@oxfmt/binding-android-arm-eabi@0.52.0': + '@oxfmt/binding-android-arm-eabi@0.54.0': optional: true '@oxfmt/binding-android-arm-eabi@0.55.0': optional: true - '@oxfmt/binding-android-arm64@0.52.0': + '@oxfmt/binding-android-arm64@0.54.0': optional: true '@oxfmt/binding-android-arm64@0.55.0': optional: true - '@oxfmt/binding-darwin-arm64@0.52.0': + '@oxfmt/binding-darwin-arm64@0.54.0': optional: true '@oxfmt/binding-darwin-arm64@0.55.0': optional: true - '@oxfmt/binding-darwin-x64@0.52.0': + '@oxfmt/binding-darwin-x64@0.54.0': optional: true '@oxfmt/binding-darwin-x64@0.55.0': optional: true - '@oxfmt/binding-freebsd-x64@0.52.0': + '@oxfmt/binding-freebsd-x64@0.54.0': optional: true '@oxfmt/binding-freebsd-x64@0.55.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.52.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.54.0': optional: true '@oxfmt/binding-linux-arm-gnueabihf@0.55.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.52.0': + '@oxfmt/binding-linux-arm-musleabihf@0.54.0': optional: true '@oxfmt/binding-linux-arm-musleabihf@0.55.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.52.0': + '@oxfmt/binding-linux-arm64-gnu@0.54.0': optional: true '@oxfmt/binding-linux-arm64-gnu@0.55.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.52.0': + '@oxfmt/binding-linux-arm64-musl@0.54.0': optional: true '@oxfmt/binding-linux-arm64-musl@0.55.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.52.0': + '@oxfmt/binding-linux-ppc64-gnu@0.54.0': optional: true '@oxfmt/binding-linux-ppc64-gnu@0.55.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.52.0': + '@oxfmt/binding-linux-riscv64-gnu@0.54.0': optional: true '@oxfmt/binding-linux-riscv64-gnu@0.55.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.52.0': + '@oxfmt/binding-linux-riscv64-musl@0.54.0': optional: true '@oxfmt/binding-linux-riscv64-musl@0.55.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.52.0': + '@oxfmt/binding-linux-s390x-gnu@0.54.0': optional: true '@oxfmt/binding-linux-s390x-gnu@0.55.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.52.0': + '@oxfmt/binding-linux-x64-gnu@0.54.0': optional: true '@oxfmt/binding-linux-x64-gnu@0.55.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.52.0': + '@oxfmt/binding-linux-x64-musl@0.54.0': optional: true '@oxfmt/binding-linux-x64-musl@0.55.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.52.0': + '@oxfmt/binding-openharmony-arm64@0.54.0': optional: true '@oxfmt/binding-openharmony-arm64@0.55.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.52.0': + '@oxfmt/binding-win32-arm64-msvc@0.54.0': optional: true '@oxfmt/binding-win32-arm64-msvc@0.55.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.52.0': + '@oxfmt/binding-win32-ia32-msvc@0.54.0': optional: true '@oxfmt/binding-win32-ia32-msvc@0.55.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.52.0': + '@oxfmt/binding-win32-x64-msvc@0.54.0': optional: true '@oxfmt/binding-win32-x64-msvc@0.55.0': @@ -11427,12 +11717,30 @@ snapshots: - tsx - yaml + '@tsdown/css@0.22.3(jiti@2.7.0)(postcss-import@16.1.1(postcss@8.5.15))(postcss-modules@6.0.1(postcss@8.5.15))(postcss@8.5.15)(sass-embedded@1.100.0(source-map-js@1.2.1))(sass@1.101.0)(tsdown@0.22.3)(tsx@4.22.4)(yaml@2.9.0)': + dependencies: + lightningcss: 1.32.0 + postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(yaml@2.9.0) + rolldown: link:rolldown/packages/rolldown + tsdown: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1) + optionalDependencies: + postcss: 8.5.15 + postcss-import: 16.1.1(postcss@8.5.15) + postcss-modules: 6.0.1(postcss@8.5.15) + sass: 1.101.0 + sass-embedded: 1.100.0(source-map-js@1.2.1) + transitivePeerDependencies: + - jiti + - tsx + - yaml + optional: true + '@tsdown/exe@0.22.3(tsdown@0.22.3)': dependencies: obug: 2.1.3 semver: 7.8.4 tinyexec: 1.2.4 - tsdown: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.0) + tsdown: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1) '@tybys/wasm-util@0.10.2': dependencies: @@ -11490,11 +11798,11 @@ snapshots: '@types/etag@1.8.4': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@types/fs-extra@9.0.13': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@types/glob@9.0.0': dependencies: @@ -11534,6 +11842,10 @@ snapshots: dependencies: undici-types: 7.16.0 + '@types/node@24.13.2': + dependencies: + undici-types: 7.18.2 + '@types/normalize-package-data@2.4.4': {} '@types/parse-path@7.1.0': @@ -11549,7 +11861,7 @@ snapshots: '@types/rimraf@3.0.2': dependencies: '@types/glob': 9.0.0 - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@types/semver@7.7.1': {} @@ -11564,7 +11876,7 @@ snapshots: '@types/stylus@0.48.43': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@types/validate-npm-package-name@4.0.2': {} @@ -11579,17 +11891,17 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 optional: true - '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2))(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2)': + '@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2))(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/type-utils': 8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) - '@typescript-eslint/utils': 8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.60.0 + '@typescript-eslint/parser': 8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) + '@typescript-eslint/scope-manager': 8.61.1 + '@typescript-eslint/type-utils': 8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) + '@typescript-eslint/utils': 8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) + '@typescript-eslint/visitor-keys': 8.61.1 eslint: 9.39.4(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 @@ -11598,41 +11910,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2)': + '@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2)': dependencies: - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.60.0 + '@typescript-eslint/scope-manager': 8.61.1 + '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.2) + '@typescript-eslint/visitor-keys': 8.61.1 debug: 4.4.3(supports-color@8.1.1) eslint: 9.39.4(jiti@2.7.0) typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.60.0(typescript@6.0.2)': + '@typescript-eslint/project-service@8.61.1(typescript@6.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.2) - '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/tsconfig-utils': 8.61.1(typescript@6.0.2) + '@typescript-eslint/types': 8.61.1 debug: 4.4.3(supports-color@8.1.1) typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.60.0': + '@typescript-eslint/scope-manager@8.61.1': dependencies: - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 + '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/visitor-keys': 8.61.1 - '@typescript-eslint/tsconfig-utils@8.60.0(typescript@6.0.2)': + '@typescript-eslint/tsconfig-utils@8.61.1(typescript@6.0.2)': dependencies: typescript: 6.0.2 - '@typescript-eslint/type-utils@8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2)': + '@typescript-eslint/type-utils@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2)': dependencies: - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.2) - '@typescript-eslint/utils': 8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) + '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.2) + '@typescript-eslint/utils': 8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) debug: 4.4.3(supports-color@8.1.1) eslint: 9.39.4(jiti@2.7.0) ts-api-utils: 2.5.0(typescript@6.0.2) @@ -11642,12 +11954,14 @@ snapshots: '@typescript-eslint/types@8.60.0': {} - '@typescript-eslint/typescript-estree@8.60.0(typescript@6.0.2)': + '@typescript-eslint/types@8.61.1': {} + + '@typescript-eslint/typescript-estree@8.61.1(typescript@6.0.2)': dependencies: - '@typescript-eslint/project-service': 8.60.0(typescript@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.2) - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 + '@typescript-eslint/project-service': 8.61.1(typescript@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.61.1(typescript@6.0.2) + '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/visitor-keys': 8.61.1 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.4 semver: 7.8.4 @@ -11657,20 +11971,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2)': + '@typescript-eslint/utils@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.2) + '@typescript-eslint/scope-manager': 8.61.1 + '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.2) eslint: 9.39.4(jiti@2.7.0) typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.60.0': + '@typescript-eslint/visitor-keys@8.61.1': dependencies: - '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/types': 8.61.1 eslint-visitor-keys: 5.0.1 '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260605.1': @@ -11965,7 +12279,7 @@ snapshots: optionalDependencies: vite: link:packages/core - '@vitest/pretty-format@4.1.7': + '@vitest/pretty-format@4.1.8': dependencies: tinyrainbow: 3.1.0 @@ -11987,9 +12301,9 @@ snapshots: '@vitest/spy@4.1.9': {} - '@vitest/utils@4.1.7': + '@vitest/utils@4.1.8': dependencies: - '@vitest/pretty-format': 4.1.7 + '@vitest/pretty-format': 4.1.8 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -12169,26 +12483,28 @@ snapshots: dependencies: acorn: 6.4.2 - acorn-import-assertions@1.9.0(acorn@8.16.0): + acorn-import-assertions@1.9.0(acorn@8.17.0): dependencies: - acorn: 8.16.0 + acorn: 8.17.0 - acorn-import-phases@1.0.4(acorn@8.16.0): + acorn-import-phases@1.0.4(acorn@8.17.0): dependencies: - acorn: 8.16.0 + acorn: 8.17.0 acorn-jsx@5.3.2(acorn@6.4.2): dependencies: acorn: 6.4.2 - acorn-jsx@5.3.2(acorn@8.16.0): + acorn-jsx@5.3.2(acorn@8.17.0): dependencies: - acorn: 8.16.0 + acorn: 8.17.0 acorn@6.4.2: {} acorn@8.16.0: {} + acorn@8.17.0: {} + agent-base@7.1.4: {} ajv@6.14.0: @@ -12367,6 +12683,8 @@ snapshots: baseline-browser-mapping@2.10.33: {} + baseline-browser-mapping@2.10.38: {} + basic-ftp@5.0.5: {} before-after-hook@4.0.0: {} @@ -12941,7 +13259,7 @@ snapshots: es-module-lexer@1.7.0: {} - es-module-lexer@2.0.0: {} + es-module-lexer@2.1.0: {} es-toolkit@1.47.1: {} @@ -12974,6 +13292,35 @@ snapshots: '@esbuild/win32-ia32': 0.28.0 '@esbuild/win32-x64': 0.28.0 + esbuild@0.28.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.1 + '@esbuild/android-arm': 0.28.1 + '@esbuild/android-arm64': 0.28.1 + '@esbuild/android-x64': 0.28.1 + '@esbuild/darwin-arm64': 0.28.1 + '@esbuild/darwin-x64': 0.28.1 + '@esbuild/freebsd-arm64': 0.28.1 + '@esbuild/freebsd-x64': 0.28.1 + '@esbuild/linux-arm': 0.28.1 + '@esbuild/linux-arm64': 0.28.1 + '@esbuild/linux-ia32': 0.28.1 + '@esbuild/linux-loong64': 0.28.1 + '@esbuild/linux-mips64el': 0.28.1 + '@esbuild/linux-ppc64': 0.28.1 + '@esbuild/linux-riscv64': 0.28.1 + '@esbuild/linux-s390x': 0.28.1 + '@esbuild/linux-x64': 0.28.1 + '@esbuild/netbsd-arm64': 0.28.1 + '@esbuild/netbsd-x64': 0.28.1 + '@esbuild/openbsd-arm64': 0.28.1 + '@esbuild/openbsd-x64': 0.28.1 + '@esbuild/openharmony-arm64': 0.28.1 + '@esbuild/sunos-x64': 0.28.1 + '@esbuild/win32-arm64': 0.28.1 + '@esbuild/win32-ia32': 0.28.1 + '@esbuild/win32-x64': 0.28.1 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -13011,7 +13358,7 @@ snapshots: eslint: 9.39.4(jiti@2.7.0) eslint-compat-utils: 0.5.1(eslint@9.39.4(jiti@2.7.0)) - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2))(eslint@9.39.4(jiti@2.7.0)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2))(eslint@9.39.4(jiti@2.7.0)): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.60.0 @@ -13025,11 +13372,11 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) + '@typescript-eslint/utils': 8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) transitivePeerDependencies: - supports-color - eslint-plugin-n@18.0.1(eslint@9.39.4(jiti@2.7.0))(ts-declaration-location@1.0.7(typescript@6.0.2))(typescript@6.0.2): + eslint-plugin-n@18.1.0(eslint@9.39.4(jiti@2.7.0))(ts-declaration-location@1.0.7(typescript@6.0.2))(typescript@6.0.2): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) enhanced-resolve: 5.18.3 @@ -13109,8 +13456,8 @@ snapshots: espree@10.4.0: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -13288,7 +13635,7 @@ snapshots: flatted@3.4.2: {} - follow-redirects@1.15.11(debug@4.4.3): + follow-redirects@1.16.0(debug@4.4.3): optionalDependencies: debug: 4.4.3(supports-color@8.1.1) @@ -13305,6 +13652,8 @@ snapshots: dependencies: fetch-blob: 3.2.0 + fresh-import@0.2.1: {} + fresh@2.0.0: {} fs-extra@10.1.0: @@ -13514,10 +13863,10 @@ snapshots: statuses: 2.0.2 toidentifier: 1.0.1 - http-proxy-3@1.23.2: + http-proxy-3@1.23.3: dependencies: debug: 4.4.3(supports-color@8.1.1) - follow-redirects: 1.15.11(debug@4.4.3) + follow-redirects: 1.16.0(debug@4.4.3) transitivePeerDependencies: - supports-color @@ -14019,7 +14368,7 @@ snapshots: mlly@1.8.2: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.4 @@ -14329,29 +14678,29 @@ snapshots: '@oxc-transform/binding-win32-ia32-msvc': 0.136.0 '@oxc-transform/binding-win32-x64-msvc': 0.136.0 - oxfmt@0.52.0(vite-plus@packages+cli): + oxfmt@0.54.0(vite-plus@packages+cli): dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.52.0 - '@oxfmt/binding-android-arm64': 0.52.0 - '@oxfmt/binding-darwin-arm64': 0.52.0 - '@oxfmt/binding-darwin-x64': 0.52.0 - '@oxfmt/binding-freebsd-x64': 0.52.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.52.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.52.0 - '@oxfmt/binding-linux-arm64-gnu': 0.52.0 - '@oxfmt/binding-linux-arm64-musl': 0.52.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.52.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.52.0 - '@oxfmt/binding-linux-riscv64-musl': 0.52.0 - '@oxfmt/binding-linux-s390x-gnu': 0.52.0 - '@oxfmt/binding-linux-x64-gnu': 0.52.0 - '@oxfmt/binding-linux-x64-musl': 0.52.0 - '@oxfmt/binding-openharmony-arm64': 0.52.0 - '@oxfmt/binding-win32-arm64-msvc': 0.52.0 - '@oxfmt/binding-win32-ia32-msvc': 0.52.0 - '@oxfmt/binding-win32-x64-msvc': 0.52.0 + '@oxfmt/binding-android-arm-eabi': 0.54.0 + '@oxfmt/binding-android-arm64': 0.54.0 + '@oxfmt/binding-darwin-arm64': 0.54.0 + '@oxfmt/binding-darwin-x64': 0.54.0 + '@oxfmt/binding-freebsd-x64': 0.54.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.54.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.54.0 + '@oxfmt/binding-linux-arm64-gnu': 0.54.0 + '@oxfmt/binding-linux-arm64-musl': 0.54.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.54.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.54.0 + '@oxfmt/binding-linux-riscv64-musl': 0.54.0 + '@oxfmt/binding-linux-s390x-gnu': 0.54.0 + '@oxfmt/binding-linux-x64-gnu': 0.54.0 + '@oxfmt/binding-linux-x64-musl': 0.54.0 + '@oxfmt/binding-openharmony-arm64': 0.54.0 + '@oxfmt/binding-win32-arm64-msvc': 0.54.0 + '@oxfmt/binding-win32-ia32-msvc': 0.54.0 + '@oxfmt/binding-win32-x64-msvc': 0.54.0 vite-plus: link:packages/cli oxfmt@0.55.0(vite-plus@packages+cli): @@ -15051,6 +15400,14 @@ snapshots: optionalDependencies: '@parcel/watcher': 2.5.1 + sass@1.101.0: + dependencies: + chokidar: 5.0.0 + immutable: 5.1.5 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.1 + sax@1.4.3: {} saxes@6.0.0: @@ -15467,6 +15824,39 @@ snapshots: - oxc-resolver - vue-tsc + tsdown@0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1): + dependencies: + ansis: 4.3.1 + cac: 7.0.0 + defu: 6.1.7 + empathic: 2.0.1 + hookable: 6.1.1 + import-without-cache: 0.4.0 + obug: 2.1.3 + picomatch: 4.0.4 + rolldown: link:rolldown/packages/rolldown + rolldown-plugin-dts: 0.26.0(@typescript/native-preview@7.0.0-dev.20260605.1)(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(rolldown@rolldown+packages+rolldown)(typescript@6.0.2) + semver: 7.8.4 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 + tree-kill: 1.2.2 + unconfig-core: 7.5.0 + optionalDependencies: + '@arethetypeswrong/core': 0.18.2 + '@tsdown/css': 0.22.3(jiti@2.7.0)(postcss-import@16.1.1(postcss@8.5.15))(postcss-modules@6.0.1(postcss@8.5.15))(postcss@8.5.15)(sass-embedded@1.100.0(source-map-js@1.2.1))(sass@1.101.0)(tsdown@0.22.3)(tsx@4.22.4)(yaml@2.9.0) + '@tsdown/exe': 0.22.3(tsdown@0.22.3) + '@vitejs/devtools': 0.3.3(typescript@6.0.2)(vite@packages+core) + publint: 0.3.21 + tsx: 4.22.4 + typescript: 6.0.2 + unplugin-unused: 0.5.6 + unrun: 0.3.1 + transitivePeerDependencies: + - '@ts-macro/tsc' + - '@typescript/native-preview' + - oxc-resolver + - vue-tsc + tslib@2.8.1: {} tsx@4.22.4: @@ -15489,12 +15879,12 @@ snapshots: dependencies: tagged-tag: 1.0.0 - typescript-eslint@8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2): + typescript-eslint@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2))(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) - '@typescript-eslint/parser': 8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.2) - '@typescript-eslint/utils': 8.60.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) + '@typescript-eslint/eslint-plugin': 8.61.1(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2))(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) + '@typescript-eslint/parser': 8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.2) + '@typescript-eslint/utils': 8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2) eslint: 9.39.4(jiti@2.7.0) typescript: 6.0.2 transitivePeerDependencies: @@ -15532,6 +15922,8 @@ snapshots: undici-types@7.16.0: {} + undici-types@7.18.2: {} + undici@6.22.0: {} undici@7.16.0: {} @@ -15583,7 +15975,7 @@ snapshots: unplugin@2.3.11: dependencies: '@jridgewell/remapping': 2.3.5 - acorn: 8.16.0 + acorn: 8.17.0 picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 @@ -15621,6 +16013,10 @@ snapshots: dependencies: rolldown: link:rolldown/packages/rolldown + unrun@0.3.1: + dependencies: + rolldown: link:rolldown/packages/rolldown + unstorage@1.17.5: dependencies: anymatch: 3.1.3 @@ -15676,7 +16072,7 @@ snapshots: '@vitest/snapshot': 4.1.9 '@vitest/spy': 4.1.9 '@vitest/utils': 4.1.9 - es-module-lexer: 2.0.0 + es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.3 @@ -15701,7 +16097,7 @@ snapshots: transitivePeerDependencies: - msw - vitest@4.1.9(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@24.12.4)(@vitest/browser-playwright@4.1.9)(@vitest/browser-preview@4.1.9)(@vitest/browser-webdriverio@4.1.9)(happy-dom@20.0.10)(jsdom@27.2.0)(vite@packages+core): + vitest@4.1.9(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@24.13.2)(@vitest/browser-playwright@4.1.9)(@vitest/browser-preview@4.1.9)(@vitest/browser-webdriverio@4.1.9)(happy-dom@20.0.10)(jsdom@27.2.0)(vite@packages+core): dependencies: '@vitest/expect': 4.1.9 '@vitest/mocker': 4.1.9(vite@packages+core) @@ -15710,7 +16106,7 @@ snapshots: '@vitest/snapshot': 4.1.9 '@vitest/spy': 4.1.9 '@vitest/utils': 4.1.9 - es-module-lexer: 2.0.0 + es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.3 @@ -15726,7 +16122,7 @@ snapshots: optionalDependencies: '@edge-runtime/vm': 5.0.0 '@opentelemetry/api': 1.9.0 - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@vitest/browser-playwright': 4.1.9(playwright@1.57.0)(vite@packages+core)(vitest@4.1.9) '@vitest/browser-preview': 4.1.9(vite@packages+core)(vitest@4.1.9) '@vitest/browser-webdriverio': 4.1.9(vite@packages+core)(vitest@4.1.9)(webdriverio@9.20.1) From 0128992b6dd91383011963c9d41f16234b6bbf49 Mon Sep 17 00:00:00 2001 From: wan9chi Date: Sun, 21 Jun 2026 13:32:00 +0800 Subject: [PATCH 08/13] chore: dedupe pnpm lockfile --- pnpm-lock.yaml | 406 +++---------------------------------------------- 1 file changed, 19 insertions(+), 387 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f1684f4ff5..6e01a35da0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -158,7 +158,7 @@ catalogs: version: 4.0.1 esbuild: specifier: ^0.28.0 - version: 0.28.0 + version: 0.28.1 execa: specifier: ^9.2.0 version: 9.6.1 @@ -509,16 +509,16 @@ importers: version: 0.136.0 '@tsdown/css': specifier: 0.22.3 - version: 0.22.3(jiti@2.7.0)(postcss-import@16.1.1(postcss@8.5.15))(postcss-modules@6.0.1(postcss@8.5.15))(postcss@8.5.15)(sass-embedded@1.100.0(source-map-js@1.2.1))(sass@1.100.0)(tsdown@0.22.3)(tsx@4.22.4)(yaml@2.9.0) + version: 0.22.3(jiti@2.7.0)(postcss-import@16.1.1(postcss@8.5.15))(postcss-modules@6.0.1(postcss@8.5.15))(postcss@8.5.15)(sass-embedded@1.100.0(source-map-js@1.2.1))(sass@1.101.0)(tsdown@0.22.3)(tsx@4.22.4)(yaml@2.9.0) '@tsdown/exe': specifier: 0.22.3 version: 0.22.3(tsdown@0.22.3) '@types/node': specifier: ^20.19.0 || >=22.12.0 - version: 24.12.4 + version: 24.13.2 esbuild: specifier: ^0.27.0 || ^0.28.0 - version: 0.28.0 + version: 0.28.1 jiti: specifier: '>=1.21.0' version: 2.7.0 @@ -536,7 +536,7 @@ importers: version: 0.3.21 sass: specifier: ^1.70.0 - version: 1.100.0 + version: 1.101.0 sass-embedded: specifier: ^1.70.0 version: 1.100.0(source-map-js@1.2.1) @@ -560,7 +560,7 @@ importers: version: 0.5.6 unrun: specifier: '*' - version: 0.3.0 + version: 0.3.1 yaml: specifier: ^2.4.2 version: 2.9.0 @@ -633,7 +633,7 @@ importers: version: 1.2.2 tsdown: specifier: 'catalog:' - version: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.0) + version: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1) vite: specifier: workspace:@voidzero-dev/vite-plus-core@* version: 'link:' @@ -646,7 +646,7 @@ importers: dependencies: '@clack/core': specifier: ^1.0.0 - version: 1.4.0 + version: 1.4.2 picocolors: specifier: ^1.0.0 version: 1.1.1 @@ -781,7 +781,7 @@ importers: version: 5.6.2 esbuild: specifier: 'catalog:' - version: 0.28.0 + version: 0.28.1 lodash-es: specifier: 'catalog:' version: 4.17.23 @@ -1136,7 +1136,7 @@ importers: dependencies: '@types/node': specifier: ^20.19.0 || >=22.12.0 - version: 24.12.4 + version: 24.13.2 jiti: specifier: '>=1.21.0' version: 2.7.0 @@ -2001,10 +2001,6 @@ packages: '@clack/core@0.5.0': resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==} - '@clack/core@1.4.0': - resolution: {integrity: sha512-7Wctjq6f7c1CPz8sPpkwUnz8yRgVANkpNupb81q432FjcJg4l+Sw7XANdNSdWfAKq0IHI0JTcUeK5dxs/HrGPw==} - engines: {node: '>= 20.12.0'} - '@clack/core@1.4.2': resolution: {integrity: sha512-0Ty/1Gfm+Kb07sXcuESjyKfwEhSy4Ns1AgeEisHb/bDY5fWme0tTeTkU14T1Gmcs17YIjB/teiDe4uaCghbYqQ==} engines: {node: '>= 20.12.0'} @@ -2106,312 +2102,156 @@ packages: '@emnapi/wasi-threads@1.2.2': resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} - '@esbuild/aix-ppc64@0.28.0': - resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.28.1': resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.28.0': - resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.28.1': resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.28.0': - resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.28.1': resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.28.0': - resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.28.1': resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.28.0': - resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.28.1': resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.28.0': - resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.28.1': resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.28.0': - resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.28.1': resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.28.0': - resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.28.1': resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.28.0': - resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.28.1': resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.28.0': - resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.28.1': resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.28.0': - resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.28.1': resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.28.0': - resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.28.1': resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.28.0': - resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.28.1': resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.28.0': - resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.28.1': resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.28.0': - resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.28.1': resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.28.0': - resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.28.1': resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.28.0': - resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.28.1': resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.28.0': - resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.28.1': resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.28.0': - resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.28.1': resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.28.0': - resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.28.1': resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.28.0': - resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.28.1': resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.28.0': - resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.28.1': resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.28.0': - resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.28.1': resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.28.0': - resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.28.1': resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.28.0': - resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.28.1': resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.28.0': - resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.28.1': resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} engines: {node: '>=18'} @@ -4729,9 +4569,6 @@ packages: '@types/node@24.10.3': resolution: {integrity: sha512-gqkrWUsS8hcm0r44yn7/xZeV1ERva/nLgrLxFRUGb7aoNMIJfZJ3AC261zDQuOAKC7MiXai1WCpYc48jAHoShQ==} - '@types/node@24.12.4': - resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} - '@types/node@24.13.2': resolution: {integrity: sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==} @@ -4822,10 +4659,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.60.0': - resolution: {integrity: sha512-AsE7x2XaAK+CVbeih0Fvbn+r1qHxtpLDJ3XUuFcIinT318T90yHMJC+Zgv+jUuDjQQd06HKwxnDu6sz1IcTilA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.61.1': resolution: {integrity: sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5203,11 +5036,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.17.0: resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} engines: {node: '>=0.4.0'} @@ -5390,11 +5218,6 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.33: - resolution: {integrity: sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==} - engines: {node: '>=6.0.0'} - hasBin: true - baseline-browser-mapping@2.10.38: resolution: {integrity: sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==} engines: {node: '>=6.0.0'} @@ -6000,11 +5823,6 @@ packages: es-toolkit@1.47.1: resolution: {integrity: sha512-5RAqEwf4P4E17p+W75KLOWw/nOvKZzSQpxM32IpI2KZLaVonjTrZ0Ai5ghMaVI9eKC2p8eoQgcBdkEDgzFk6+Q==} - esbuild@0.28.0: - resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.28.1: resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} engines: {node: '>=18'} @@ -8508,16 +8326,6 @@ packages: unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - unrun@0.3.0: - resolution: {integrity: sha512-5xw2AIVS2WR9Lqhz76qDIQLxipKRidf7Nq+Iz5SZ8shk1OmRlxnc6FyI/1Q2m99WLj6cbqaKFdESfWE99KPzlA==} - engines: {node: ^22.13.0 || >=24.0.0} - hasBin: true - peerDependencies: - synckit: ^0.11.11 - peerDependenciesMeta: - synckit: - optional: true - unrun@0.3.1: resolution: {integrity: sha512-onIck/oNnCaytwths1ZVp1LK2Gq2hPoyFhiHebObuUXqR3S0uHuLLaBK8K6mRRgV7Ptip8AnNvaUsgzwWwBZuA==} engines: {node: ^22.13.0 || >=24.0.0} @@ -9717,11 +9525,6 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@clack/core@1.4.0': - dependencies: - fast-wrap-ansi: 0.2.0 - sisteransi: 1.0.5 - '@clack/core@1.4.2': dependencies: fast-wrap-ansi: 0.2.0 @@ -9848,159 +9651,81 @@ snapshots: dependencies: tslib: 2.8.1 - '@esbuild/aix-ppc64@0.28.0': - optional: true - '@esbuild/aix-ppc64@0.28.1': optional: true - '@esbuild/android-arm64@0.28.0': - optional: true - '@esbuild/android-arm64@0.28.1': optional: true - '@esbuild/android-arm@0.28.0': - optional: true - '@esbuild/android-arm@0.28.1': optional: true - '@esbuild/android-x64@0.28.0': - optional: true - '@esbuild/android-x64@0.28.1': optional: true - '@esbuild/darwin-arm64@0.28.0': - optional: true - '@esbuild/darwin-arm64@0.28.1': optional: true - '@esbuild/darwin-x64@0.28.0': - optional: true - '@esbuild/darwin-x64@0.28.1': optional: true - '@esbuild/freebsd-arm64@0.28.0': - optional: true - '@esbuild/freebsd-arm64@0.28.1': optional: true - '@esbuild/freebsd-x64@0.28.0': - optional: true - '@esbuild/freebsd-x64@0.28.1': optional: true - '@esbuild/linux-arm64@0.28.0': - optional: true - '@esbuild/linux-arm64@0.28.1': optional: true - '@esbuild/linux-arm@0.28.0': - optional: true - '@esbuild/linux-arm@0.28.1': optional: true - '@esbuild/linux-ia32@0.28.0': - optional: true - '@esbuild/linux-ia32@0.28.1': optional: true - '@esbuild/linux-loong64@0.28.0': - optional: true - '@esbuild/linux-loong64@0.28.1': optional: true - '@esbuild/linux-mips64el@0.28.0': - optional: true - '@esbuild/linux-mips64el@0.28.1': optional: true - '@esbuild/linux-ppc64@0.28.0': - optional: true - '@esbuild/linux-ppc64@0.28.1': optional: true - '@esbuild/linux-riscv64@0.28.0': - optional: true - '@esbuild/linux-riscv64@0.28.1': optional: true - '@esbuild/linux-s390x@0.28.0': - optional: true - '@esbuild/linux-s390x@0.28.1': optional: true - '@esbuild/linux-x64@0.28.0': - optional: true - '@esbuild/linux-x64@0.28.1': optional: true - '@esbuild/netbsd-arm64@0.28.0': - optional: true - '@esbuild/netbsd-arm64@0.28.1': optional: true - '@esbuild/netbsd-x64@0.28.0': - optional: true - '@esbuild/netbsd-x64@0.28.1': optional: true - '@esbuild/openbsd-arm64@0.28.0': - optional: true - '@esbuild/openbsd-arm64@0.28.1': optional: true - '@esbuild/openbsd-x64@0.28.0': - optional: true - '@esbuild/openbsd-x64@0.28.1': optional: true - '@esbuild/openharmony-arm64@0.28.0': - optional: true - '@esbuild/openharmony-arm64@0.28.1': optional: true - '@esbuild/sunos-x64@0.28.0': - optional: true - '@esbuild/sunos-x64@0.28.1': optional: true - '@esbuild/win32-arm64@0.28.0': - optional: true - '@esbuild/win32-arm64@0.28.1': optional: true - '@esbuild/win32-ia32@0.28.0': - optional: true - '@esbuild/win32-ia32@0.28.1': optional: true - '@esbuild/win32-x64@0.28.0': - optional: true - '@esbuild/win32-x64@0.28.1': optional: true @@ -11700,23 +11425,6 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@tsdown/css@0.22.3(jiti@2.7.0)(postcss-import@16.1.1(postcss@8.5.15))(postcss-modules@6.0.1(postcss@8.5.15))(postcss@8.5.15)(sass-embedded@1.100.0(source-map-js@1.2.1))(sass@1.100.0)(tsdown@0.22.3)(tsx@4.22.4)(yaml@2.9.0)': - dependencies: - lightningcss: 1.32.0 - postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(yaml@2.9.0) - rolldown: link:rolldown/packages/rolldown - tsdown: 0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.0) - optionalDependencies: - postcss: 8.5.15 - postcss-import: 16.1.1(postcss@8.5.15) - postcss-modules: 6.0.1(postcss@8.5.15) - sass: 1.100.0 - sass-embedded: 1.100.0(source-map-js@1.2.1) - transitivePeerDependencies: - - jiti - - tsx - - yaml - '@tsdown/css@0.22.3(jiti@2.7.0)(postcss-import@16.1.1(postcss@8.5.15))(postcss-modules@6.0.1(postcss@8.5.15))(postcss@8.5.15)(sass-embedded@1.100.0(source-map-js@1.2.1))(sass@1.101.0)(tsdown@0.22.3)(tsx@4.22.4)(yaml@2.9.0)': dependencies: lightningcss: 1.32.0 @@ -11733,7 +11441,6 @@ snapshots: - jiti - tsx - yaml - optional: true '@tsdown/exe@0.22.3(tsdown@0.22.3)': dependencies: @@ -11782,13 +11489,13 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@types/convert-source-map@2.0.3': {} '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@types/deep-eql@4.0.2': {} @@ -11838,10 +11545,6 @@ snapshots: dependencies: undici-types: 7.16.0 - '@types/node@24.12.4': - dependencies: - undici-types: 7.16.0 - '@types/node@24.13.2': dependencies: undici-types: 7.18.2 @@ -11868,7 +11571,7 @@ snapshots: '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@types/sinonjs__fake-timers@8.1.5': {} @@ -11887,7 +11590,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.2 '@types/yauzl@2.10.3': dependencies: @@ -11952,8 +11655,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.60.0': {} - '@typescript-eslint/types@8.61.1': {} '@typescript-eslint/typescript-estree@8.61.1(typescript@6.0.2)': @@ -12501,8 +12202,6 @@ snapshots: acorn@6.4.2: {} - acorn@8.16.0: {} - acorn@8.17.0: {} agent-base@7.1.4: {} @@ -12681,8 +12380,6 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.33: {} - baseline-browser-mapping@2.10.38: {} basic-ftp@5.0.5: {} @@ -12764,7 +12461,7 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.33 + baseline-browser-mapping: 2.10.38 caniuse-lite: 1.0.30001785 electron-to-chromium: 1.5.331 node-releases: 2.0.37 @@ -13263,35 +12960,6 @@ snapshots: es-toolkit@1.47.1: {} - esbuild@0.28.0: - optionalDependencies: - '@esbuild/aix-ppc64': 0.28.0 - '@esbuild/android-arm': 0.28.0 - '@esbuild/android-arm64': 0.28.0 - '@esbuild/android-x64': 0.28.0 - '@esbuild/darwin-arm64': 0.28.0 - '@esbuild/darwin-x64': 0.28.0 - '@esbuild/freebsd-arm64': 0.28.0 - '@esbuild/freebsd-x64': 0.28.0 - '@esbuild/linux-arm': 0.28.0 - '@esbuild/linux-arm64': 0.28.0 - '@esbuild/linux-ia32': 0.28.0 - '@esbuild/linux-loong64': 0.28.0 - '@esbuild/linux-mips64el': 0.28.0 - '@esbuild/linux-ppc64': 0.28.0 - '@esbuild/linux-riscv64': 0.28.0 - '@esbuild/linux-s390x': 0.28.0 - '@esbuild/linux-x64': 0.28.0 - '@esbuild/netbsd-arm64': 0.28.0 - '@esbuild/netbsd-x64': 0.28.0 - '@esbuild/openbsd-arm64': 0.28.0 - '@esbuild/openbsd-x64': 0.28.0 - '@esbuild/openharmony-arm64': 0.28.0 - '@esbuild/sunos-x64': 0.28.0 - '@esbuild/win32-arm64': 0.28.0 - '@esbuild/win32-ia32': 0.28.0 - '@esbuild/win32-x64': 0.28.0 - esbuild@0.28.1: optionalDependencies: '@esbuild/aix-ppc64': 0.28.1 @@ -13361,7 +13029,7 @@ snapshots: eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.2))(eslint@9.39.4(jiti@2.7.0)): dependencies: '@package-json/types': 0.0.12 - '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/types': 8.61.1 comment-parser: 1.4.1 debug: 4.4.3(supports-color@8.1.1) eslint: 9.39.4(jiti@2.7.0) @@ -15399,6 +15067,7 @@ snapshots: source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 + optional: true sass@1.101.0: dependencies: @@ -15726,7 +15395,7 @@ snapshots: terser@5.48.0: dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.16.0 + acorn: 8.17.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -15791,39 +15460,6 @@ snapshots: typescript: 6.0.2 optional: true - tsdown@0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.0): - dependencies: - ansis: 4.3.1 - cac: 7.0.0 - defu: 6.1.7 - empathic: 2.0.1 - hookable: 6.1.1 - import-without-cache: 0.4.0 - obug: 2.1.3 - picomatch: 4.0.4 - rolldown: link:rolldown/packages/rolldown - rolldown-plugin-dts: 0.26.0(@typescript/native-preview@7.0.0-dev.20260605.1)(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(rolldown@rolldown+packages+rolldown)(typescript@6.0.2) - semver: 7.8.4 - tinyexec: 1.2.4 - tinyglobby: 0.2.17 - tree-kill: 1.2.2 - unconfig-core: 7.5.0 - optionalDependencies: - '@arethetypeswrong/core': 0.18.2 - '@tsdown/css': 0.22.3(jiti@2.7.0)(postcss-import@16.1.1(postcss@8.5.15))(postcss-modules@6.0.1(postcss@8.5.15))(postcss@8.5.15)(sass-embedded@1.100.0(source-map-js@1.2.1))(sass@1.100.0)(tsdown@0.22.3)(tsx@4.22.4)(yaml@2.9.0) - '@tsdown/exe': 0.22.3(tsdown@0.22.3) - '@vitejs/devtools': 0.3.3(typescript@6.0.2)(vite@packages+core) - publint: 0.3.21 - tsx: 4.22.4 - typescript: 6.0.2 - unplugin-unused: 0.5.6 - unrun: 0.3.0 - transitivePeerDependencies: - - '@ts-macro/tsc' - - '@typescript/native-preview' - - oxc-resolver - - vue-tsc - tsdown@0.22.3(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.3)(@tsdown/exe@0.22.3)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.3.3(typescript@6.0.2)(vite@packages+core))(oxc-resolver@11.19.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1))(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1): dependencies: ansis: 4.3.1 @@ -15861,7 +15497,7 @@ snapshots: tsx@4.22.4: dependencies: - esbuild: 0.28.0 + esbuild: 0.28.1 optionalDependencies: fsevents: 2.3.3 @@ -16009,10 +15645,6 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unrun@0.3.0: - dependencies: - rolldown: link:rolldown/packages/rolldown - unrun@0.3.1: dependencies: rolldown: link:rolldown/packages/rolldown From 088b14f8b5d2d87d840c826b1a82f6e7d24b6579 Mon Sep 17 00:00:00 2001 From: wan9chi Date: Sun, 21 Jun 2026 13:37:52 +0800 Subject: [PATCH 09/13] test: update vite build banner snapshots --- packages/cli/snap-tests/build-vite-env/snap.txt | 3 --- .../cli/snap-tests/synthetic-build-cache-disabled/snap.txt | 1 - packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt | 3 --- 3 files changed, 7 deletions(-) diff --git a/packages/cli/snap-tests/build-vite-env/snap.txt b/packages/cli/snap-tests/build-vite-env/snap.txt index 54e5eb28ea..bf9909c808 100644 --- a/packages/cli/snap-tests/build-vite-env/snap.txt +++ b/packages/cli/snap-tests/build-vite-env/snap.txt @@ -1,6 +1,5 @@ > VITE_MY_VAR=1 vp run build $ vp build -vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... computing gzip size... @@ -12,7 +11,6 @@ dist/assets/index-Dra_-aT4.js kB │ gzip: kB > VITE_MY_VAR=1 vp run build # should hit cache $ vp build ◉ cache hit, replaying -vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... computing gzip size... @@ -26,7 +24,6 @@ vp run: cache hit, ms saved. > VITE_MY_VAR=2 vp run build # env changed, should miss cache $ vp build ○ cache miss: env 'VITE_MY_VAR' changed, executing -vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... computing gzip size... diff --git a/packages/cli/snap-tests/synthetic-build-cache-disabled/snap.txt b/packages/cli/snap-tests/synthetic-build-cache-disabled/snap.txt index 8567dda730..f03de627ce 100644 --- a/packages/cli/snap-tests/synthetic-build-cache-disabled/snap.txt +++ b/packages/cli/snap-tests/synthetic-build-cache-disabled/snap.txt @@ -1,6 +1,5 @@ > vp run build # synthetic build (vp build) should have cache disabled without cacheScripts $ vp build ⊘ cache disabled -vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... computing gzip size... diff --git a/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt b/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt index 6b69e65233..a1b0136c9f 100644 --- a/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt +++ b/packages/cli/snap-tests/vp-build-auto-tracked-env/snap.txt @@ -1,6 +1,5 @@ > VITE_GREETING=hello vp run build # first build $ vp build -vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... computing gzip size... @@ -12,7 +11,6 @@ dist/assets/index-Dra_-aT4.js kB │ gzip: kB > VITE_GREETING=hello vp run build # same env, cache hit $ vp build ◉ cache hit, replaying -vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... computing gzip size... @@ -26,7 +24,6 @@ vp run: cache hit, ms saved. > VITE_GREETING=world vp run build # VITE_ env changed, cache miss (tracked via vite-task-client) $ vp build ○ cache miss: env 'VITE_GREETING' changed, executing -vite v building client environment for production... transforming...✓ modules transformed. rendering chunks... computing gzip size... From b378feb4239e13f31b547f3996be2d87a5956258 Mon Sep 17 00:00:00 2001 From: wan9chi Date: Sun, 21 Jun 2026 14:20:06 +0800 Subject: [PATCH 10/13] fix: sanitize migrated oxlint rule options --- .../src/migration/__tests__/migrator.spec.ts | 63 +++++++++++++ packages/cli/src/migration/migrator.ts | 89 ++++++++++++++++--- 2 files changed, 141 insertions(+), 11 deletions(-) diff --git a/packages/cli/src/migration/__tests__/migrator.spec.ts b/packages/cli/src/migration/__tests__/migrator.spec.ts index d240d78559..e8c07a0345 100644 --- a/packages/cli/src/migration/__tests__/migrator.spec.ts +++ b/packages/cli/src/migration/__tests__/migrator.spec.ts @@ -35,6 +35,7 @@ const { injectCreateDefaultTemplate, injectFmtDefaults, injectLintTypeCheckDefaults, + mergeViteConfigFiles, rewriteEslintPackageJson, detectIncompatibleEslintIntegration, preflightGitHooksSetup, @@ -4782,6 +4783,68 @@ export default defineConfig(({ mode }) => { }); }); +describe('mergeViteConfigFiles - migrated Oxlint config sanitization', () => { + let tmpDir: string; + + beforeEach(() => { + tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'vp-migrator-oxlint-sanitize-')); + fs.writeFileSync(path.join(tmpDir, 'package.json'), JSON.stringify({ name: 'test' }, null, 2)); + }); + + afterEach(() => { + fs.rmSync(tmpDir, { recursive: true, force: true }); + }); + + it('strips JSX a11y rule options unsupported by bundled Oxlint', () => { + fs.writeFileSync( + path.join(tmpDir, '.oxlintrc.json'), + JSON.stringify( + { + plugins: ['jsx-a11y'], + rules: { + 'jsx-a11y/control-has-associated-label': [ + 'error', + { + includeRoles: ['button'], + ignoreRoles: ['menu'], + depth: 3, + }, + ], + 'jsx-a11y/no-noninteractive-element-to-interactive-role': [ + 'error', + { + ul: ['listbox'], + }, + ], + }, + }, + null, + 2, + ), + ); + + const report = createMigrationReport(); + mergeViteConfigFiles(tmpDir, true, report); + + const viteConfig = fs.readFileSync(path.join(tmpDir, 'vite.config.ts'), 'utf8'); + expect(viteConfig).toContain('"jsx-a11y/control-has-associated-label"'); + expect(viteConfig).toContain('"ignoreRoles"'); + expect(viteConfig).toContain('"depth": 3'); + expect(viteConfig).not.toContain('includeRoles'); + expect(viteConfig).not.toContain('"ul"'); + expect(viteConfig).toContain('"jsx-a11y/no-noninteractive-element-to-interactive-role"'); + expect(viteConfig).toMatch( + /"jsx-a11y\/no-noninteractive-element-to-interactive-role": \[\s*"error",\s*\{\s*\}\s*\]/, + ); + expect(report.warnings.join('\n')).toContain( + 'jsx-a11y/control-has-associated-label.includeRoles', + ); + expect(report.warnings.join('\n')).toContain( + 'jsx-a11y/no-noninteractive-element-to-interactive-role.ul', + ); + }); +}); + describe('rewriteStandaloneProject — lazy plugin wrapping', () => { let tmpDir: string; diff --git a/packages/cli/src/migration/migrator.ts b/packages/cli/src/migration/migrator.ts index 8e301781e9..735407a6f8 100644 --- a/packages/cli/src/migration/migrator.ts +++ b/packages/cli/src/migration/migrator.ts @@ -506,6 +506,16 @@ const OXLINT_NATIVE_PLUGINS = new Set([ 'vue', ]); +const OXLINT_NATIVE_RULE_OPTION_KEYS = new Map>([ + [ + 'jsx-a11y/control-has-associated-label', + new Set(['depth', 'labelAttributes', 'controlComponents', 'ignoreElements', 'ignoreRoles']), + ], + // The bundled Oxlint parser accepts this rule with an empty option object, but rejects + // eslint-plugin-jsx-a11y's element-to-role map entries such as `{ ul: [...] }`. + ['jsx-a11y/no-noninteractive-element-to-interactive-role', new Set()], +]); + // Legacy wrapper package names that may appear as the target of override // aliases left over from earlier vite-plus migrations. `@voidzero-dev/vite-plus-test` // was deleted; any catalog/override entry still pointing at it is stale. @@ -4351,18 +4361,59 @@ function ruleKeyMatchesNamespace(key: string, namespaces: Set): boolean return false; } -/** Filter a rules object to only entries whose namespace is recognized. */ -function filterRulesAgainstNamespaces( +function isRecord(value: unknown): value is Record { + return typeof value === 'object' && value !== null && !Array.isArray(value); +} + +function sanitizeNativeRuleOptions( + ruleKey: string, + value: unknown, + droppedRuleOptions: Set, +): unknown { + const allowedKeys = OXLINT_NATIVE_RULE_OPTION_KEYS.get(ruleKey); + if (!allowedKeys || !Array.isArray(value) || !isRecord(value[1])) { + return value; + } + + const sanitizedOptions: Record = {}; + let changed = false; + for (const [key, optionValue] of Object.entries(value[1])) { + if (allowedKeys.has(key)) { + sanitizedOptions[key] = optionValue; + } else { + droppedRuleOptions.add(`${ruleKey}.${key}`); + changed = true; + } + } + + if (!changed) { + return value; + } + + const sanitizedRule = [...value]; + sanitizedRule[1] = sanitizedOptions; + return sanitizedRule; +} + +function sanitizeRulesAgainstNamespaces( rules: Record, namespaces: Set, -): Record { + droppedRuleOptions: Set, +): { rules: Record; changed: boolean } { const out: Record = {}; + let changed = false; for (const [key, value] of Object.entries(rules)) { if (ruleKeyMatchesNamespace(key, namespaces)) { - out[key] = value; + const sanitized = sanitizeNativeRuleOptions(key, value, droppedRuleOptions); + out[key] = sanitized; + if (sanitized !== value) { + changed = true; + } + } else { + changed = true; } } - return out; + return { rules: out, changed }; } /** @@ -4444,6 +4495,7 @@ function sanitizeMigratedOxlintConfig( // Track everything we strip so we can warn the user. const allDroppedJsPlugins = new Set(); const allDroppedPlugins = new Set(); + const allDroppedRuleOptions = new Set(); // 1. Sanitize base-level jsPlugins. const baseSplit = partitionJsPlugins(config.jsPlugins ?? [], availablePackages); @@ -4480,9 +4532,13 @@ function sanitizeMigratedOxlintConfig( // `rules: undefined` property that would shift downstream key // emission in the merged vite.config.ts. if (config.rules) { - const filtered = filterRulesAgainstNamespaces(config.rules, baseNamespaces); - if (Object.keys(filtered).length !== Object.keys(config.rules).length) { - config.rules = filtered as typeof config.rules; + const sanitized = sanitizeRulesAgainstNamespaces( + config.rules, + baseNamespaces, + allDroppedRuleOptions, + ); + if (sanitized.changed) { + config.rules = sanitized.rules as typeof config.rules; } } @@ -4530,9 +4586,13 @@ function sanitizeMigratedOxlintConfig( // Override rules. if (override.rules) { - const filtered = filterRulesAgainstNamespaces(override.rules, overrideNamespaces); - if (Object.keys(filtered).length !== Object.keys(override.rules).length) { - override.rules = filtered as typeof override.rules; + const sanitized = sanitizeRulesAgainstNamespaces( + override.rules, + overrideNamespaces, + allDroppedRuleOptions, + ); + if (sanitized.changed) { + override.rules = sanitized.rules as typeof override.rules; } } } @@ -4563,6 +4623,13 @@ function sanitizeMigratedOxlintConfig( report, ); } + if (allDroppedRuleOptions.size > 0) { + warnMigration( + `Stripped unsupported rule option(s) from the generated lint config: ${[...allDroppedRuleOptions].join(', ')}. ` + + 'Oxlint does not accept these migrated ESLint options, so keeping them would make linting fail.', + report, + ); + } } /** From 0c072a0b9b7f86f554a8746a2d933bf284298d71 Mon Sep 17 00:00:00 2001 From: wan9chi Date: Sun, 21 Jun 2026 14:25:16 +0800 Subject: [PATCH 11/13] ci: verify cacheable monorepo task hits --- .github/workflows/test-vp-create.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-vp-create.yml b/.github/workflows/test-vp-create.yml index 1b04f32029..92c56aba65 100644 --- a/.github/workflows/test-vp-create.yml +++ b/.github/workflows/test-vp-create.yml @@ -426,10 +426,16 @@ jobs: fi output=$(vp run ready 2>&1) echo "$output" - if ! echo "$output" | grep -q 'cache hit (100%)'; then - echo "✗ Expected 100% cache hit" - echo "--- vp run --last-details (cache-miss diagnostics) ---" - vp run --last-details || true + details=$(vp run --last-details 2>&1) + echo "--- vp run --last-details ---" + echo "$details" + combined=$(printf '%s\n%s\n' "$output" "$details") + if echo "$combined" | grep -qi 'cache miss:'; then + echo "✗ Expected no cacheable task misses" exit 1 fi - echo "✓ 100% cache hit verified" + if ! echo "$details" | grep -q 'Cache hit - output replayed'; then + echo "✗ Expected at least one cacheable task hit" + exit 1 + fi + echo "✓ cacheable task hits verified" From 1eae988e2c06c56dd5ef00bc9910bc155cfbc5b2 Mon Sep 17 00:00:00 2001 From: wan9chi Date: Sun, 21 Jun 2026 15:04:43 +0800 Subject: [PATCH 12/13] chore: bump vite-task to 89613544 --- Cargo.lock | 55 ++++++++++++++++---------------- Cargo.toml | 12 +++---- docs/config/run.md | 58 ++++++++++------------------------ docs/guide/cache.md | 11 ++++--- packages/cli/src/run-config.ts | 27 ++++++++++++++-- 5 files changed, 82 insertions(+), 81 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4a265f64e9..b8a0949b02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2054,7 +2054,7 @@ dependencies = [ [[package]] name = "fspy" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "anyhow", "bstr", @@ -2089,7 +2089,7 @@ dependencies = [ [[package]] name = "fspy_detours_sys" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "cc", "winapi", @@ -2098,7 +2098,7 @@ dependencies = [ [[package]] name = "fspy_preload_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "anyhow", "bstr", @@ -2113,7 +2113,7 @@ dependencies = [ [[package]] name = "fspy_preload_windows" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "constcat", "fspy_detours_sys", @@ -2129,7 +2129,7 @@ dependencies = [ [[package]] name = "fspy_seccomp_unotify" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "futures-util", "libc", @@ -2146,7 +2146,7 @@ dependencies = [ [[package]] name = "fspy_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "bitflags 2.11.0", "bstr", @@ -2165,7 +2165,7 @@ dependencies = [ [[package]] name = "fspy_shared_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "anyhow", "base64 0.22.1", @@ -3314,7 +3314,7 @@ dependencies = [ [[package]] name = "materialized_artifact" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "tempfile", ] @@ -3322,7 +3322,7 @@ dependencies = [ [[package]] name = "materialized_artifact_build" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "xxhash-rust", ] @@ -3536,7 +3536,7 @@ dependencies = [ [[package]] name = "native_str" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "bumpalo", "bytemuck", @@ -5030,7 +5030,7 @@ dependencies = [ [[package]] name = "pty_terminal_test_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" [[package]] name = "quote" @@ -7650,6 +7650,7 @@ version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eab68b56840f69efb0fefbe3ab6661499217ffdc58e2eef7c3f6f69835386322" dependencies = [ + "serde", "smallvec 1.15.1", ] @@ -7765,7 +7766,7 @@ dependencies = [ [[package]] name = "vite_glob" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "globset", "thiserror 2.0.18", @@ -7812,7 +7813,7 @@ dependencies = [ [[package]] name = "vite_graph_ser" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "petgraph 0.8.3", "serde", @@ -7911,7 +7912,7 @@ dependencies = [ [[package]] name = "vite_path" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "diff-struct", "os_str_bytes", @@ -7943,7 +7944,7 @@ dependencies = [ [[package]] name = "vite_powershell" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "vite_path", "which", @@ -7952,7 +7953,7 @@ dependencies = [ [[package]] name = "vite_select" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "anyhow", "crossterm", @@ -8004,7 +8005,7 @@ dependencies = [ [[package]] name = "vite_shell" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "brush-parser 0.4.0", "diff-struct", @@ -8031,7 +8032,7 @@ dependencies = [ [[package]] name = "vite_str" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "compact_str", "diff-struct", @@ -8042,7 +8043,7 @@ dependencies = [ [[package]] name = "vite_task" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "anstream", "anyhow", @@ -8091,7 +8092,7 @@ dependencies = [ [[package]] name = "vite_task_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "native_str", "rustc-hash", @@ -8104,7 +8105,7 @@ dependencies = [ [[package]] name = "vite_task_client_napi" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "napi", "napi-build", @@ -8116,7 +8117,7 @@ dependencies = [ [[package]] name = "vite_task_graph" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "anyhow", "async-trait", @@ -8127,7 +8128,7 @@ dependencies = [ "serde_json", "thiserror 2.0.18", "tracing", - "vite_graph_ser", + "vec1", "vite_path", "vite_str", "vite_workspace", @@ -8138,7 +8139,7 @@ dependencies = [ [[package]] name = "vite_task_ipc_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "native_str", "rustc-hash", @@ -8148,7 +8149,7 @@ dependencies = [ [[package]] name = "vite_task_plan" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "anyhow", "async-trait", @@ -8176,7 +8177,7 @@ dependencies = [ [[package]] name = "vite_task_server" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "futures", "native_str", @@ -8200,7 +8201,7 @@ version = "0.0.0" [[package]] name = "vite_workspace" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=82ec12b2956c81f55e40749f65c062ab368a09e7#82ec12b2956c81f55e40749f65c062ab368a09e7" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" dependencies = [ "clap", "petgraph 0.8.3", diff --git a/Cargo.toml b/Cargo.toml index e77f6b438c..d106112739 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -193,7 +193,7 @@ dunce = "1.0.5" fast-glob = "1.0.0" flate2 = { version = "=1.1.9", features = ["zlib-rs"] } form_urlencoded = "1.2.1" -fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } +fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } futures = "0.3.31" futures-util = "0.3.31" glob = "0.3.2" @@ -303,11 +303,11 @@ vite_pm_cli = { path = "crates/vite_pm_cli" } vite_setup = { path = "crates/vite_setup" } vite_shared = { path = "crates/vite_shared" } vite_static_config = { path = "crates/vite_static_config" } -vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } -vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } -vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } -vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } -vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "82ec12b2956c81f55e40749f65c062ab368a09e7" } +vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } +vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } +vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } +vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } +vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } walkdir = "2.5.0" wax = "0.6.0" which = "8.0.0" diff --git a/docs/config/run.md b/docs/config/run.md index b7075c8faf..f4d7b6417d 100644 --- a/docs/config/run.md +++ b/docs/config/run.md @@ -167,8 +167,8 @@ Environment variables included in the cache fingerprint. When any listed variabl ```ts [vite.config.ts] tasks: { - compile: { - command: 'webpack --mode production', + build: { + command: 'vp build', env: ['NODE_ENV'], }, } @@ -190,8 +190,8 @@ Environment variables passed to the task process but **not** included in the cac ```ts [vite.config.ts] tasks: { - deploy: { - command: 'node scripts/deploy-preview.mjs', + build: { + command: 'vp build', untrackedEnv: ['CI', 'GITHUB_ACTIONS'], }, } @@ -215,8 +215,8 @@ Vite Task automatically detects which files are used by a command (see [Automati ```ts [vite.config.ts] tasks: { - typecheck: { - command: 'tsc -p tsconfig.json', + build: { + command: 'vp build', // Use `{ auto: true }` to use automatic fingerprinting (default). input: [{ auto: true }, '!**/*.tsbuildinfo', '!dist/**'], }, @@ -227,8 +227,8 @@ tasks: { ```ts [vite.config.ts] tasks: { - typecheck: { - command: 'tsc -p tsconfig.json', + build: { + command: 'vp build', input: ['src/**/*.ts', 'vite.config.ts'], }, } @@ -238,8 +238,8 @@ tasks: { ```ts [vite.config.ts] tasks: { - docs: { - command: 'node scripts/build-docs.mjs', + build: { + command: 'vp build', input: [ { auto: true }, { pattern: 'shared-config/**', base: 'workspace' }, @@ -270,50 +270,26 @@ String glob patterns are resolved relative to the package directory by default. ### `output` -- **Type:** `Array` -- **Default:** `[{ auto: true }]` (auto-inferred) - -Files the task produces. By default, Vite Task automatically detects files written by the command, archives them after a successful run, and restores them on a cache hit so you don't have to rebuild them. - -**Exclude files** from automatic output tracking: - -```ts [vite.config.ts] -tasks: { - assets: { - command: 'node scripts/generate-assets.mjs', - output: [{ auto: true }, '!dist/cache/**'], - }, -} -``` +- **Type:** `Array` +- **Default:** `[]` (nothing is archived) -**Specify explicit output files** only without automatic tracking: +Files the task produces. They get archived after a successful run and restored on a cache hit, so you don't have to rebuild them. Leave it empty (or omit it) and nothing is archived. ```ts [vite.config.ts] tasks: { - assets: { - command: 'node scripts/generate-assets.mjs', + build: { + command: 'vp build', output: ['dist/**', '!dist/cache/**'], }, } ``` -**Disable output restoration** entirely and cache only terminal output: - -```ts [vite.config.ts] -tasks: { - report: { - command: 'node scripts/generate-report.mjs', - output: [], - }, -} -``` - If a task writes outside its own package, use the object form with `base: "workspace"`: ```ts [vite.config.ts] tasks: { - assets: { - command: 'node scripts/generate-assets.mjs', + build: { + command: 'vp build', output: [ 'dist/**', { pattern: 'shared-artifacts/**', base: 'workspace' }, diff --git a/docs/guide/cache.md b/docs/guide/cache.md index 1f5bf896eb..fd034e0249 100644 --- a/docs/guide/cache.md +++ b/docs/guide/cache.md @@ -10,20 +10,21 @@ When a task runs successfully (exit code 0), its terminal output (stdout/stderr) 2. **Environment variables:** did any [fingerprinted env vars](/config/run#env) change? 3. **Input files:** did any file that the command reads change? -If everything matches, the cached terminal output is replayed instantly, written files are restored, and the command does not run. +If everything matches, the cached output is replayed instantly, and the command does not run. ::: info -By default, Vite Task automatically tracks files produced by a task, archives them after a successful run, and restores them on a cache hit. Use [`output`](/config/run#output) to limit, exclude, or disable file restoration. +By default, only terminal output is cached and replayed. To cache files produced by a task, configure [`output`](/config/run#output) globs. Matching files are archived after a successful run and restored on a cache hit. ::: ```ts [vite.config.ts] tasks: { - build: 'vp build', + build: { + command: 'vp build', + output: ['dist/**'], + }, } ``` -`vp build` works with zero cache config: Vite Task infers both the files read by the build and the files written by the build. - When a cache miss occurs, Vite Task tells you exactly why: ``` diff --git a/packages/cli/src/run-config.ts b/packages/cli/src/run-config.ts index 280b9adc17..cd780fce5b 100644 --- a/packages/cli/src/run-config.ts +++ b/packages/cli/src/run-config.ts @@ -8,6 +8,12 @@ auto: boolean, }; export type Command = string | Array; +export type DependencyType = "dependencies" | "devDependencies" | "peerDependencies"; + +export type DependsOnEntry = string | UserPackageDependency; + +export type DependsOnFrom = DependencyType | Array; + export type GlobWithBase = { /** * The glob pattern (positive or negative starting with `!`) @@ -30,9 +36,16 @@ command: Command, */ cwd?: string, /** - * Dependencies of this task. Use `package-name#task-name` to refer to tasks in other packages. + * Tasks that must run before this task. + * + * - A string runs one named task, such as `"build"` in the same package or + * `"package-name#build"` in another package. + * - An object runs a task in direct workspace dependency packages selected + * from package.json fields. For example, + * `{ "task": "build", "from": "dependencies" }` runs `build` in each + * direct workspace dependency that defines a `build` task. */ -dependsOn?: Array, } & ({ +dependsOn?: Array, } & ({ /** * Whether to cache the task */ @@ -95,6 +108,16 @@ scripts?: boolean, */ tasks?: boolean, }; +export type UserPackageDependency = { +/** + * Task name to run in dependency packages. + */ +task: string, +/** + * Package.json dependency field or fields to use when selecting direct dependency packages. + */ +from: DependsOnFrom, }; + export type RunConfig = { /** * Root-level cache configuration. From db35a29651654769d3a7ab74dc61ba79412782b1 Mon Sep 17 00:00:00 2001 From: wan9chi Date: Sun, 21 Jun 2026 21:18:42 +0800 Subject: [PATCH 13/13] chore: bump vite-task to 8daa9bb7 --- .github/workflows/test-vp-create.yml | 16 ++--- Cargo.lock | 52 +++++++-------- Cargo.toml | 12 ++-- .../src/migration/__tests__/migrator.spec.ts | 63 ------------------- 4 files changed, 37 insertions(+), 106 deletions(-) diff --git a/.github/workflows/test-vp-create.yml b/.github/workflows/test-vp-create.yml index 92c56aba65..1b04f32029 100644 --- a/.github/workflows/test-vp-create.yml +++ b/.github/workflows/test-vp-create.yml @@ -426,16 +426,10 @@ jobs: fi output=$(vp run ready 2>&1) echo "$output" - details=$(vp run --last-details 2>&1) - echo "--- vp run --last-details ---" - echo "$details" - combined=$(printf '%s\n%s\n' "$output" "$details") - if echo "$combined" | grep -qi 'cache miss:'; then - echo "✗ Expected no cacheable task misses" + if ! echo "$output" | grep -q 'cache hit (100%)'; then + echo "✗ Expected 100% cache hit" + echo "--- vp run --last-details (cache-miss diagnostics) ---" + vp run --last-details || true exit 1 fi - if ! echo "$details" | grep -q 'Cache hit - output replayed'; then - echo "✗ Expected at least one cacheable task hit" - exit 1 - fi - echo "✓ cacheable task hits verified" + echo "✓ 100% cache hit verified" diff --git a/Cargo.lock b/Cargo.lock index b8a0949b02..2b00474e46 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2054,7 +2054,7 @@ dependencies = [ [[package]] name = "fspy" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "anyhow", "bstr", @@ -2089,7 +2089,7 @@ dependencies = [ [[package]] name = "fspy_detours_sys" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "cc", "winapi", @@ -2098,7 +2098,7 @@ dependencies = [ [[package]] name = "fspy_preload_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "anyhow", "bstr", @@ -2113,7 +2113,7 @@ dependencies = [ [[package]] name = "fspy_preload_windows" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "constcat", "fspy_detours_sys", @@ -2129,7 +2129,7 @@ dependencies = [ [[package]] name = "fspy_seccomp_unotify" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "futures-util", "libc", @@ -2146,7 +2146,7 @@ dependencies = [ [[package]] name = "fspy_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "bitflags 2.11.0", "bstr", @@ -2165,7 +2165,7 @@ dependencies = [ [[package]] name = "fspy_shared_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "anyhow", "base64 0.22.1", @@ -3314,7 +3314,7 @@ dependencies = [ [[package]] name = "materialized_artifact" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "tempfile", ] @@ -3322,7 +3322,7 @@ dependencies = [ [[package]] name = "materialized_artifact_build" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "xxhash-rust", ] @@ -3536,7 +3536,7 @@ dependencies = [ [[package]] name = "native_str" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "bumpalo", "bytemuck", @@ -5030,7 +5030,7 @@ dependencies = [ [[package]] name = "pty_terminal_test_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" [[package]] name = "quote" @@ -7766,7 +7766,7 @@ dependencies = [ [[package]] name = "vite_glob" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "globset", "thiserror 2.0.18", @@ -7813,7 +7813,7 @@ dependencies = [ [[package]] name = "vite_graph_ser" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "petgraph 0.8.3", "serde", @@ -7912,7 +7912,7 @@ dependencies = [ [[package]] name = "vite_path" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "diff-struct", "os_str_bytes", @@ -7944,7 +7944,7 @@ dependencies = [ [[package]] name = "vite_powershell" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "vite_path", "which", @@ -7953,7 +7953,7 @@ dependencies = [ [[package]] name = "vite_select" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "anyhow", "crossterm", @@ -8005,7 +8005,7 @@ dependencies = [ [[package]] name = "vite_shell" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "brush-parser 0.4.0", "diff-struct", @@ -8032,7 +8032,7 @@ dependencies = [ [[package]] name = "vite_str" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "compact_str", "diff-struct", @@ -8043,7 +8043,7 @@ dependencies = [ [[package]] name = "vite_task" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "anstream", "anyhow", @@ -8092,7 +8092,7 @@ dependencies = [ [[package]] name = "vite_task_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "native_str", "rustc-hash", @@ -8105,7 +8105,7 @@ dependencies = [ [[package]] name = "vite_task_client_napi" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "napi", "napi-build", @@ -8117,7 +8117,7 @@ dependencies = [ [[package]] name = "vite_task_graph" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "anyhow", "async-trait", @@ -8139,7 +8139,7 @@ dependencies = [ [[package]] name = "vite_task_ipc_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "native_str", "rustc-hash", @@ -8149,7 +8149,7 @@ dependencies = [ [[package]] name = "vite_task_plan" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "anyhow", "async-trait", @@ -8177,7 +8177,7 @@ dependencies = [ [[package]] name = "vite_task_server" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "futures", "native_str", @@ -8201,7 +8201,7 @@ version = "0.0.0" [[package]] name = "vite_workspace" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=89613544afe3e001d0c935c75c78697ce42df45f#89613544afe3e001d0c935c75c78697ce42df45f" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8daa9bb72faa89b745cb58c087b416b15d3bddc5#8daa9bb72faa89b745cb58c087b416b15d3bddc5" dependencies = [ "clap", "petgraph 0.8.3", diff --git a/Cargo.toml b/Cargo.toml index d106112739..afb55d6264 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -193,7 +193,7 @@ dunce = "1.0.5" fast-glob = "1.0.0" flate2 = { version = "=1.1.9", features = ["zlib-rs"] } form_urlencoded = "1.2.1" -fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } +fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8daa9bb72faa89b745cb58c087b416b15d3bddc5" } futures = "0.3.31" futures-util = "0.3.31" glob = "0.3.2" @@ -303,11 +303,11 @@ vite_pm_cli = { path = "crates/vite_pm_cli" } vite_setup = { path = "crates/vite_setup" } vite_shared = { path = "crates/vite_shared" } vite_static_config = { path = "crates/vite_static_config" } -vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } -vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } -vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } -vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } -vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "89613544afe3e001d0c935c75c78697ce42df45f" } +vite_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8daa9bb72faa89b745cb58c087b416b15d3bddc5" } +vite_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8daa9bb72faa89b745cb58c087b416b15d3bddc5" } +vite_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8daa9bb72faa89b745cb58c087b416b15d3bddc5" } +vite_task = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8daa9bb72faa89b745cb58c087b416b15d3bddc5" } +vite_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8daa9bb72faa89b745cb58c087b416b15d3bddc5" } walkdir = "2.5.0" wax = "0.6.0" which = "8.0.0" diff --git a/packages/cli/src/migration/__tests__/migrator.spec.ts b/packages/cli/src/migration/__tests__/migrator.spec.ts index e8c07a0345..d240d78559 100644 --- a/packages/cli/src/migration/__tests__/migrator.spec.ts +++ b/packages/cli/src/migration/__tests__/migrator.spec.ts @@ -35,7 +35,6 @@ const { injectCreateDefaultTemplate, injectFmtDefaults, injectLintTypeCheckDefaults, - mergeViteConfigFiles, rewriteEslintPackageJson, detectIncompatibleEslintIntegration, preflightGitHooksSetup, @@ -4783,68 +4782,6 @@ export default defineConfig(({ mode }) => { }); }); -describe('mergeViteConfigFiles - migrated Oxlint config sanitization', () => { - let tmpDir: string; - - beforeEach(() => { - tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'vp-migrator-oxlint-sanitize-')); - fs.writeFileSync(path.join(tmpDir, 'package.json'), JSON.stringify({ name: 'test' }, null, 2)); - }); - - afterEach(() => { - fs.rmSync(tmpDir, { recursive: true, force: true }); - }); - - it('strips JSX a11y rule options unsupported by bundled Oxlint', () => { - fs.writeFileSync( - path.join(tmpDir, '.oxlintrc.json'), - JSON.stringify( - { - plugins: ['jsx-a11y'], - rules: { - 'jsx-a11y/control-has-associated-label': [ - 'error', - { - includeRoles: ['button'], - ignoreRoles: ['menu'], - depth: 3, - }, - ], - 'jsx-a11y/no-noninteractive-element-to-interactive-role': [ - 'error', - { - ul: ['listbox'], - }, - ], - }, - }, - null, - 2, - ), - ); - - const report = createMigrationReport(); - mergeViteConfigFiles(tmpDir, true, report); - - const viteConfig = fs.readFileSync(path.join(tmpDir, 'vite.config.ts'), 'utf8'); - expect(viteConfig).toContain('"jsx-a11y/control-has-associated-label"'); - expect(viteConfig).toContain('"ignoreRoles"'); - expect(viteConfig).toContain('"depth": 3'); - expect(viteConfig).not.toContain('includeRoles'); - expect(viteConfig).not.toContain('"ul"'); - expect(viteConfig).toContain('"jsx-a11y/no-noninteractive-element-to-interactive-role"'); - expect(viteConfig).toMatch( - /"jsx-a11y\/no-noninteractive-element-to-interactive-role": \[\s*"error",\s*\{\s*\}\s*\]/, - ); - expect(report.warnings.join('\n')).toContain( - 'jsx-a11y/control-has-associated-label.includeRoles', - ); - expect(report.warnings.join('\n')).toContain( - 'jsx-a11y/no-noninteractive-element-to-interactive-role.ul', - ); - }); -}); - describe('rewriteStandaloneProject — lazy plugin wrapping', () => { let tmpDir: string;