diff --git a/.clippy.toml b/.clippy.toml index cb12107d..2ad445b4 100644 --- a/.clippy.toml +++ b/.clippy.toml @@ -20,6 +20,4 @@ disallowed-types = [ { path = "std::string::String", reason = "Use `vite_str::Str` for small strings. For large strings, prefer `Box/Rc/Arc` if mutation is not needed." }, ] -disallowed-macros = [ - { path = "std::format", reason = "Use `vite_str::format` for small strings." }, -] +disallowed-macros = [{ path = "std::format", reason = "Use `vite_str::format` for small strings." }] diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 44cf1e9a..bc402cf2 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -16,11 +16,7 @@ }, "customizations": { "vscode": { - "extensions": [ - "rust-lang.rust-analyzer", - "tamasfe.even-better-toml", - "fill-labs.dependi" - ], + "extensions": ["rust-lang.rust-analyzer", "tamasfe.even-better-toml", "fill-labs.dependi"], "settings": { "terminal.integrated.defaultProfile.linux": "fish", "terminal.integrated.profiles.linux": { diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 88096344..b0f6aaca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -129,10 +129,11 @@ jobs: with: save-cache: ${{ github.ref_name == 'main' }} cache-key: fmt - tools: dprint,cargo-shear + tools: cargo-shear components: clippy rust-docs rustfmt - - run: dprint check + - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 + - run: pnpm oxfmt --check - run: cargo shear - run: cargo fmt --check - run: RUSTDOCFLAGS='-D warnings' cargo doc --no-deps --document-private-items @@ -141,8 +142,6 @@ jobs: with: files: . - - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 - - name: Deduplicate dependencies run: pnpm dedupe --check diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 00000000..a1dcab96 --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,5 @@ +{ + "printWidth": 120, + "singleQuote": true, + "ignorePatterns": ["crates/fspy_detours_sys/detours", "crates/vite_task_graph/run-config.ts"] +} diff --git a/.rustfmt.toml b/.rustfmt.toml index c6830c71..6dc2e6c6 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -18,6 +18,4 @@ group_imports = "StdExternalCrate" imports_granularity = "Crate" # Skip generated files -ignore = [ - "crates/fspy_detours_sys/src/generated_bindings.rs", -] +ignore = ["crates/fspy_detours_sys/src/generated_bindings.rs"] diff --git a/CLAUDE.md b/CLAUDE.md index ab2c26be..d446d4fe 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -27,7 +27,7 @@ A monorepo task runner (like Nx/Turbo) with intelligent caching and dependency r ```bash just init # Install build tools and dependencies just ready # Full quality check (fmt, check, test, lint, doc) -just fmt # Format code (cargo fmt, cargo shear, dprint) +just fmt # Format code (cargo fmt, cargo shear, oxfmt) just check # Check compilation with all features just test # Run all tests just lint # Clippy linting diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e4b1d087..b847cb9d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ just init ``` -This installs all required Rust tools (`cargo-insta`, `typos-cli`, `cargo-shear`, `dprint`, `taplo-cli`) and bootstraps the Node.js tooling. +This installs all required Rust tools (`cargo-insta`, `typos-cli`, `cargo-shear`, `taplo-cli`) and bootstraps the Node.js tooling. ## Development Workflow @@ -29,7 +29,7 @@ Officially, Vite Task is distributed as part of Vite+ and invoked via `vp run`. ```bash just ready # Full quality check: typos, fmt, check, test, lint, doc -just fmt # Format code (cargo fmt + cargo shear + dprint) +just fmt # Format code (cargo fmt + cargo shear + oxfmt) just check # Check compilation with all features just test # Run all tests just lint # Clippy linting diff --git a/crates/vite_task/docs/task-cache.md b/crates/vite_task/docs/task-cache.md index 2453e812..159fed6c 100644 --- a/crates/vite_task/docs/task-cache.md +++ b/crates/vite_task/docs/task-cache.md @@ -22,8 +22,8 @@ For tasks defined as below: { "scripts": { "build": "echo $foo", - "test": "echo $foo && echo $bar" - } + "test": "echo $foo && echo $bar", + }, } ``` diff --git a/crates/vite_task/docs/task-query.md b/crates/vite_task/docs/task-query.md index 9fc7f867..0399638a 100644 --- a/crates/vite_task/docs/task-query.md +++ b/crates/vite_task/docs/task-query.md @@ -21,9 +21,9 @@ The task graph contains a node for every task in every package, and edges only f "tasks": { "build": { "command": "vite build", - "dependsOn": ["@shared/lib#build"] // ← this becomes an edge - } - } + "dependsOn": ["@shared/lib#build"], // ← this becomes an edge + }, + }, } ``` @@ -178,9 +178,9 @@ After mapping the package subgraph to tasks, we follow explicit `dependsOn` edge { "tasks": { "build": { - "dependsOn": ["codegen#generate"] - } - } + "dependsOn": ["codegen#generate"], + }, + }, } ``` @@ -198,9 +198,9 @@ A task script can contain `vp run` calls: { "tasks": { "ci": { - "command": "vp run -r build && vp run -r test" - } - } + "command": "vp run -r build && vp run -r test", + }, + }, } ``` diff --git a/crates/vite_task/docs/terminologies.md b/crates/vite_task/docs/terminologies.md index dd634e0b..6118fc52 100644 --- a/crates/vite_task/docs/terminologies.md +++ b/crates/vite_task/docs/terminologies.md @@ -7,8 +7,8 @@ { "name": "app", "scripts": { - "build": "echo build1 && echo build2" - } + "build": "echo build1 && echo build2", + }, } ``` diff --git a/crates/vite_task/docs/wildcard-env-patterns.md b/crates/vite_task/docs/wildcard-env-patterns.md index 0bdeca2a..32c39e8b 100644 --- a/crates/vite_task/docs/wildcard-env-patterns.md +++ b/crates/vite_task/docs/wildcard-env-patterns.md @@ -116,7 +116,7 @@ impl TaskEnvs { /// Create a secure fingerprint for environment variables pub fn create_fingerprint(&self) -> HashMap { let mut fingerprint = HashMap::new(); - + for (name, value) in &self.envs_without_pass_through { let fingerprint_value = if is_sensitive_env_name(name) { // Hash sensitive values - never store them in plaintext @@ -128,10 +128,10 @@ impl TaskEnvs { // Or stored as-is if needed for debugging value.clone() }; - + fingerprint.insert(name.clone(), fingerprint_value); } - + fingerprint } } @@ -164,14 +164,7 @@ pub struct CommandFingerprint { "tasks": { "build": { "command": "vite build", - "env": [ - "NODE_ENV", - "NODE_OPTIONS", - "VITE_API_URL", - "VITE_APP_TITLE", - "VITE_PUBLIC_PATH", - "VITE_BASE_URL" - ] + "env": ["NODE_ENV", "NODE_OPTIONS", "VITE_API_URL", "VITE_APP_TITLE", "VITE_PUBLIC_PATH", "VITE_BASE_URL"] } } } @@ -251,7 +244,7 @@ fn is_sensitive_env_name(name: &str) -> bool { "REDIS_URL", "*_CERT*", ]; - + // Exact matches for known sensitive names const SENSITIVE_EXACT: &[&str] = &[ "PASSWORD", @@ -260,17 +253,17 @@ fn is_sensitive_env_name(name: &str) -> bool { "PRIVATE_KEY", "PUBLIC_KEY", ]; - + if SENSITIVE_EXACT.contains(&name) { return true; } - + for pattern in SENSITIVE_PATTERNS { if Glob::new(pattern).is_match(name) { return true; } } - + false } @@ -288,6 +281,7 @@ fn display_env_value(name: &str, value: &str) -> String { **Principles for Secure Cache Storage:** 1. **Never Store Sensitive Values in Cache**: + ```rust // BAD - Never do this cache_entry.envs = task.envs_without_pass_through.clone(); diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-different-cwd/snapshots/builtin different cwd.snap b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-different-cwd/snapshots/builtin different cwd.snap index 89b1c514..aa33c46f 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-different-cwd/snapshots/builtin different cwd.snap +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-different-cwd/snapshots/builtin different cwd.snap @@ -20,7 +20,7 @@ $ vt lint help: Delete this file or add some code to it. Found 2 warnings and 0 errors. -Finished in on 2 files with 90 rules using threads. +Finished in on 2 files with 93 rules using threads. > cd folder2 && vt run lint # cache miss in folder2 $ vt lint ✓ cache hit, replaying @@ -39,7 +39,7 @@ $ vt lint ✓ cache hit, replaying help: Delete this file or add some code to it. Found 2 warnings and 0 errors. -Finished in on 2 files with 90 rules using threads. +Finished in on 2 files with 93 rules using threads. --- vt run: cache hit, saved. @@ -56,7 +56,7 @@ $ vt lint ✗ cache miss: 'folder2/a.js' modified, executing help: Delete this file or add some code to it. Found 1 warning and 0 errors. -Finished in on 2 files with 90 rules using threads. +Finished in on 2 files with 93 rules using threads. > cd folder2 && vt run lint # cache miss $ vt lint ✓ cache hit, replaying @@ -68,7 +68,7 @@ $ vt lint ✓ cache hit, replaying help: Delete this file or add some code to it. Found 1 warning and 0 errors. -Finished in on 2 files with 90 rules using threads. +Finished in on 2 files with 93 rules using threads. --- vt run: cache hit, saved. diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-non-zero-exit/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-non-zero-exit/snapshots.toml index feac86b6..691f16ee 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-non-zero-exit/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-non-zero-exit/snapshots.toml @@ -1,6 +1,3 @@ [[e2e]] name = "builtin command with non-zero exit does not show cache not updated" -steps = [ - "vt run lint -- -D no-debugger", - "vt run lint -- -D no-debugger", -] +steps = ["vt run lint -- -D no-debugger", "vt run lint -- -D no-debugger"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-non-zero-exit/snapshots/builtin command with non-zero exit does not show cache not updated.snap b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-non-zero-exit/snapshots/builtin command with non-zero exit does not show cache not updated.snap index 71a5760e..81774f05 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-non-zero-exit/snapshots/builtin command with non-zero exit does not show cache not updated.snap +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/builtin-non-zero-exit/snapshots/builtin command with non-zero exit does not show cache not updated.snap @@ -13,7 +13,7 @@ $ vt lint -D no-debugger help: Remove the debugger statement Found 0 warnings and 1 error. -Finished in on 1 file with 90 rules using threads. +Finished in on 1 file with 93 rules using threads. [1]> vt run lint -- -D no-debugger $ vt lint -D no-debugger @@ -25,4 +25,4 @@ $ vt lint -D no-debugger help: Remove the debugger statement Found 0 warnings and 1 error. -Finished in on 1 file with 90 rules using threads. +Finished in on 1 file with 93 rules using threads. diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/cache-disabled/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/cache-disabled/snapshots.toml index c610122f..ca04c0d3 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/cache-disabled/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/cache-disabled/snapshots.toml @@ -2,14 +2,8 @@ [[e2e]] name = "task with cache disabled" -steps = [ - "vt run no-cache-task # cache miss", - "vt run no-cache-task # cache disabled, runs again", -] +steps = ["vt run no-cache-task # cache miss", "vt run no-cache-task # cache disabled, runs again"] [[e2e]] name = "task with cache enabled" -steps = [ - "vt run cached-task # cache miss", - "vt run cached-task # cache hit", -] +steps = ["vt run cached-task # cache miss", "vt run cached-task # cache hit"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/cache-miss-reasons/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/cache-miss-reasons/snapshots.toml index 95aa7e8b..4662e0e1 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/cache-miss-reasons/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/cache-miss-reasons/snapshots.toml @@ -9,17 +9,11 @@ steps = [ [[e2e]] name = "env added" -steps = [ - "vt run test # cache miss", - "cross-env MY_ENV=1 vt run test # cache miss: env added", -] +steps = ["vt run test # cache miss", "cross-env MY_ENV=1 vt run test # cache miss: env added"] [[e2e]] name = "env removed" -steps = [ - "cross-env MY_ENV=1 vt run test # cache miss", - "vt run test # cache miss: env removed", -] +steps = ["cross-env MY_ENV=1 vt run test # cache miss", "vt run test # cache miss: env removed"] [[e2e]] name = "untracked env added" diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/colon-in-name/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/colon-in-name/snapshots.toml index 6893b271..0688456b 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/colon-in-name/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/colon-in-name/snapshots.toml @@ -2,7 +2,4 @@ [[e2e]] name = "read file with colon in name" -steps = [ - "vt run read_colon_in_name # cache miss", - "vt run read_colon_in_name # cache hit", -] +steps = ["vt run read_colon_in_name # cache miss", "vt run read_colon_in_name # cache hit"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-env-test/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-env-test/snapshots.toml index ce10d749..0976a836 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-env-test/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-env-test/snapshots.toml @@ -2,13 +2,8 @@ [[e2e]] name = "env-test prints value from additional_envs" -steps = [ - "vt run env-test -- SYNTHETIC_ENV_VAR test_value_from_synthesizer # prints env value", -] +steps = ["vt run env-test -- SYNTHETIC_ENV_VAR test_value_from_synthesizer # prints env value"] [[e2e]] name = "env-test with different values" -steps = [ - "vt run env-test -- FOO bar # sets FOO=bar", - "vt run env-test -- BAZ qux # sets BAZ=qux", -] +steps = ["vt run env-test -- FOO bar # sets FOO=bar", "vt run env-test -- BAZ qux # sets BAZ=qux"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-lint-cache/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-lint-cache/snapshots.toml index adf57ba2..7151737c 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-lint-cache/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-lint-cache/snapshots.toml @@ -2,8 +2,4 @@ [[e2e]] name = "direct lint" -steps = [ - "vt run lint # cache miss", - "echo debugger > main.js # add lint error", - "vt run lint # cache miss, lint fails", -] +steps = ["vt run lint # cache miss", "echo debugger > main.js # add lint error", "vt run lint # cache miss, lint fails"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-lint-cache/snapshots/direct lint.snap b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-lint-cache/snapshots/direct lint.snap index 90890b0f..840e69f6 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-lint-cache/snapshots/direct lint.snap +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/e2e-lint-cache/snapshots/direct lint.snap @@ -5,7 +5,7 @@ expression: e2e_outputs > vt run lint # cache miss $ vt lint Found 0 warnings and 0 errors. -Finished in on 0 files with 90 rules using threads. +Finished in on 0 files with 93 rules using threads. > echo debugger > main.js # add lint error > vt run lint # cache miss, lint fails @@ -19,4 +19,4 @@ $ vt lint ✗ cache miss: 'main.js' added in workspace root, executing help: Remove the debugger statement Found 1 warning and 0 errors. -Finished in on 1 file with 90 rules using threads. +Finished in on 1 file with 93 rules using threads. diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/error_cycle_dependency/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/error_cycle_dependency/snapshots.toml index e3718dc8..7f94968b 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/error_cycle_dependency/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/error_cycle_dependency/snapshots.toml @@ -2,6 +2,4 @@ [[e2e]] name = "cycle dependency error" -steps = [ - "vt run task-a # task-a -> task-b -> task-a cycle", -] +steps = ["vt run task-a # task-a -> task-b -> task-a cycle"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exec-api/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exec-api/snapshots.toml index 204b12be..c22a5d45 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exec-api/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exec-api/snapshots.toml @@ -1,8 +1,6 @@ [[e2e]] name = "exec not triggered from script" -steps = [ - "FOO=bar vt run lint-task # no print-env FOO output", -] +steps = ["FOO=bar vt run lint-task # no print-env FOO output"] [[e2e]] name = "exec caching" diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exec-api/snapshots/exec not triggered from script.snap b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exec-api/snapshots/exec not triggered from script.snap index 7aa251f3..6d8aaf64 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exec-api/snapshots/exec not triggered from script.snap +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exec-api/snapshots/exec not triggered from script.snap @@ -5,4 +5,4 @@ expression: e2e_outputs > FOO=bar vt run lint-task # no print-env FOO output $ vt lint Found 0 warnings and 0 errors. -Finished in on 0 files with 90 rules using threads. +Finished in on 0 files with 93 rules using threads. diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exit-codes/packages/pkg-b/package.json b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exit-codes/packages/pkg-b/package.json index 9ed15aca..61d5ea09 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exit-codes/packages/pkg-b/package.json +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exit-codes/packages/pkg-b/package.json @@ -1,10 +1,10 @@ { "name": "pkg-b", - "dependencies": { - "pkg-a": "workspace:*" - }, "scripts": { "fail": "node -e \"process.exit(7)\"", "check": "echo 'pkg-b check passed'" + }, + "dependencies": { + "pkg-a": "workspace:*" } } diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exit-codes/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exit-codes/snapshots.toml index 6a489c15..934e4df2 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exit-codes/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/exit-codes/snapshots.toml @@ -2,25 +2,17 @@ [[e2e]] name = "single task failure returns task exit code" -steps = [ - "vt run pkg-a#fail # exits with code 42", -] +steps = ["vt run pkg-a#fail # exits with code 42"] [[e2e]] name = "task failure fast-fails remaining tasks" -steps = [ - "vt run -r fail # pkg-a fails, pkg-b is skipped", -] +steps = ["vt run -r fail # pkg-a fails, pkg-b is skipped"] [[e2e]] name = "dependency failure fast-fails dependents" cwd = "packages/pkg-b" -steps = [ - "vt run -t check # pkg-a fails, pkg-b is skipped", -] +steps = ["vt run -t check # pkg-a fails, pkg-b is skipped"] [[e2e]] name = "chained command with && stops at first failure" -steps = [ - "vt run pkg-a#chained # first fails with exit code 3, second should not run", -] +steps = ["vt run pkg-a#chained # first fails with exit code 3, second should not run"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/filter-unmatched/packages/app/package.json b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/filter-unmatched/packages/app/package.json index 674c580d..eba70d8e 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/filter-unmatched/packages/app/package.json +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/filter-unmatched/packages/app/package.json @@ -1,9 +1,9 @@ { "name": "@test/app", - "dependencies": { - "@test/lib": "workspace:*" - }, "scripts": { "build": "print built-app" + }, + "dependencies": { + "@test/lib": "workspace:*" } } diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/filter-unmatched/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/filter-unmatched/snapshots.toml index ff62e9d2..adb566d1 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/filter-unmatched/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/filter-unmatched/snapshots.toml @@ -3,41 +3,29 @@ # One filter matches, one doesn't → warning for the unmatched one, task still runs [[e2e]] name = "partial match warns for unmatched filter" -steps = [ - "vt run --filter @test/app --filter nonexistent build", -] +steps = ["vt run --filter @test/app --filter nonexistent build"] # Multiple unmatched alongside a match → one warning per unmatched filter [[e2e]] name = "multiple unmatched filters warn individually" -steps = [ - "vt run --filter @test/app --filter nope1 --filter nope2 build", -] +steps = ["vt run --filter @test/app --filter nope1 --filter nope2 build"] # Whitespace-split filter with one unmatched token [[e2e]] name = "whitespace split filter warns for unmatched token" -steps = [ - "vt run --filter '@test/app nope' build", -] +steps = ["vt run --filter '@test/app nope' build"] # Exclusion filter that matches nothing does NOT warn (only inclusions warn) [[e2e]] name = "unmatched exclusion filter does not warn" -steps = [ - "vt run --filter @test/app --filter '!nonexistent' build", -] +steps = ["vt run --filter @test/app --filter '!nonexistent' build"] # Glob filter that matches nothing alongside a match [[e2e]] name = "unmatched glob filter warns" -steps = [ - "vt run --filter @test/app --filter @nope/* build", -] +steps = ["vt run --filter @test/app --filter @nope/* build"] # Directory filter that matches nothing [[e2e]] name = "unmatched directory filter warns" -steps = [ - "vt run --filter @test/app --filter ./packages/nope build", -] +steps = ["vt run --filter @test/app --filter ./packages/nope build"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/lint-dot-git/snapshots/lint dot git.snap b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/lint-dot-git/snapshots/lint dot git.snap index e146345b..0b9fbff8 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/lint-dot-git/snapshots/lint dot git.snap +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/lint-dot-git/snapshots/lint dot git.snap @@ -15,7 +15,7 @@ $ vt lint help: Delete this file or add some code to it. Found 1 warning and 0 errors. -Finished in on 1 file with 90 rules using threads. +Finished in on 1 file with 93 rules using threads. > echo hello > .git/foo.txt # add file inside .git > vt run lint # cache hit, .git is ignored @@ -29,7 +29,7 @@ $ vt lint ✓ cache hit, replaying help: Delete this file or add some code to it. Found 1 warning and 0 errors. -Finished in on 1 file with 90 rules using threads. +Finished in on 1 file with 93 rules using threads. --- vt run: cache hit, saved. diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/replay-logs-chronological-order/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/replay-logs-chronological-order/snapshots.toml index 193632c4..6a0c573a 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/replay-logs-chronological-order/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/replay-logs-chronological-order/snapshots.toml @@ -2,8 +2,4 @@ [[e2e]] name = "replay logs chronological order" -steps = [ - "vt run build # cache miss", - "vt run build # cache hit", - "vt run build # cache hit", -] +steps = ["vt run build # cache miss", "vt run build # cache hit", "vt run build # cache hit"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/signal-exit/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/signal-exit/snapshots.toml index bbe33630..bb233b18 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/signal-exit/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/signal-exit/snapshots.toml @@ -4,6 +4,4 @@ [[e2e]] name = "signal terminated task returns non-zero exit code" platform = "unix" -steps = [ - "vt run abort # SIGABRT -> exit code 134", -] +steps = ["vt run abort # SIGABRT -> exit code 134"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdin-inheritance/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdin-inheritance/snapshots.toml index d5ade7ac..c4d7b6f8 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdin-inheritance/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdin-inheritance/snapshots.toml @@ -11,22 +11,16 @@ name = "single task no cache inherits stdin" # Single spawn leaf + cache disabled → stdin is inherited # The piped "from-stdin" should appear in the task's output -steps = [ - "echo from-stdin | vt run read-stdin", -] +steps = ["echo from-stdin | vt run read-stdin"] [[e2e]] name = "single task with cache gets null stdin" # Single spawn leaf + cache enabled → stdin is null (protects cache determinism) # The piped "from-stdin" should NOT appear in the task's output -steps = [ - "echo from-stdin | vt run read-stdin-cached", -] +steps = ["echo from-stdin | vt run read-stdin-cached"] [[e2e]] name = "multiple tasks get null stdin" # Multiple spawn leaves → stdin is null regardless of cache setting # The piped "from-stdin" should NOT appear in any task's output -steps = [ - "echo from-stdin | vt run -r read-stdin", -] +steps = ["echo from-stdin | vt run -r read-stdin"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdio-detection/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdio-detection/snapshots.toml index d8fabfb1..4c67e887 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdio-detection/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdio-detection/snapshots.toml @@ -13,45 +13,31 @@ [[e2e]] name = "single task, cache disabled" # Expect: all stdio inherited from terminal (tty) -steps = [ - "vt run check-tty", -] +steps = ["vt run check-tty"] [[e2e]] name = "single task, cache miss" # Expect: stdio piped for cache capture (not-tty) -steps = [ - "vt run check-tty-cached", -] +steps = ["vt run check-tty-cached"] [[e2e]] name = "single task, cache hit" # Expect: first run is a miss (not-tty), second run replays cached output -steps = [ - "vt run check-tty-cached", - "vt run check-tty-cached", -] +steps = ["vt run check-tty-cached", "vt run check-tty-cached"] # ─── Multiple tasks (-r) ──────────────────────────────────────── [[e2e]] name = "multiple tasks, cache disabled" # Expect: stdio piped for labeled output (not-tty) -steps = [ - "vt run -r check-tty", -] +steps = ["vt run -r check-tty"] [[e2e]] name = "multiple tasks, cache miss" # Expect: stdio piped (not-tty) -steps = [ - "vt run -r check-tty-cached", -] +steps = ["vt run -r check-tty-cached"] [[e2e]] name = "multiple tasks, cache hit" # Expect: first run is a miss (not-tty), second run replays cached output -steps = [ - "vt run -r check-tty-cached", - "vt run -r check-tty-cached", -] +steps = ["vt run -r check-tty-cached", "vt run -r check-tty-cached"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdio-graph-criteria/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdio-graph-criteria/snapshots.toml index 54375790..876e113a 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdio-graph-criteria/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/stdio-graph-criteria/snapshots.toml @@ -8,12 +8,8 @@ [[e2e]] name = "single-node chains inherit even with multi-node sibling graph" -steps = [ - "vt run foo", -] +steps = ["vt run foo"] [[e2e]] name = "multi-node ancestor forces piped for nested single-node graph" -steps = [ - "vt run -r foo-nested", -] +steps = ["vt run -r foo-nested"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/summary-output/packages/b/package.json b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/summary-output/packages/b/package.json index 08f6e258..f291c066 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/summary-output/packages/b/package.json +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/summary-output/packages/b/package.json @@ -1,9 +1,9 @@ { "name": "@summary/b", - "dependencies": { - "@summary/a": "workspace:*" - }, "scripts": { "build": "print built-b" + }, + "dependencies": { + "@summary/a": "workspace:*" } } diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/summary-output/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/summary-output/snapshots.toml index 662f0e22..7299f903 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/summary-output/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/summary-output/snapshots.toml @@ -4,77 +4,52 @@ [[e2e]] name = "single task cache miss shows no summary" cwd = "packages/a" -steps = [ - "vt run build", -] +steps = ["vt run build"] # Single task, cache hit → compact one-liner [[e2e]] name = "single task cache hit shows compact summary" cwd = "packages/a" -steps = [ - "vt run build # first run, cache miss", - "vt run build # second run, cache hit → compact summary", -] +steps = ["vt run build # first run, cache miss", "vt run build # second run, cache hit → compact summary"] # Multi-task (recursive), all cache miss → compact summary with 0 hits [[e2e]] name = "multi task all cache miss shows compact summary" -steps = [ - "vt run -r build", -] +steps = ["vt run -r build"] # Multi-task (recursive), some cache hits → compact summary with hit count [[e2e]] name = "multi task with cache hits shows compact summary" -steps = [ - "vt run -r build # first run, all miss", - "vt run -r build # second run, all hit", -] +steps = ["vt run -r build # first run, all miss", "vt run -r build # second run, all hit"] # Single task with --verbose → full detailed summary [[e2e]] name = "single task verbose shows full summary" cwd = "packages/a" -steps = [ - "vt run -v build", -] +steps = ["vt run -v build"] # Multi-task with --verbose → full detailed summary [[e2e]] name = "multi task verbose shows full summary" -steps = [ - "vt run -r -v build", -] +steps = ["vt run -r -v build"] # Multi-task with --verbose after cache hits [[e2e]] name = "multi task verbose with cache hits shows full summary" -steps = [ - "vt run -r build # first run, populate cache", - "vt run -r -v build # second run, verbose with cache hits", -] +steps = ["vt run -r build # first run, populate cache", "vt run -r -v build # second run, verbose with cache hits"] # --last-details with no previous run [[e2e]] name = "last details with no previous run shows error" -steps = [ - "vt run --last-details", -] +steps = ["vt run --last-details"] # --last-details after a run shows saved summary [[e2e]] name = "last details after run shows saved summary" cwd = "packages/a" -steps = [ - "vt run build # populate summary file", - "vt run --last-details # display saved summary", -] +steps = ["vt run build # populate summary file", "vt run --last-details # display saved summary"] # --last-details after a multi-task run [[e2e]] name = "last details after multi task run shows saved summary" -steps = [ - "vt run -r build # populate summary file", - "vt run --last-details # display saved summary", -] +steps = ["vt run -r build # populate summary file", "vt run --last-details # display saved summary"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-list/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-list/snapshots.toml index 2ba3cd57..d8aeff3a 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-list/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-list/snapshots.toml @@ -1,18 +1,17 @@ [[e2e]] name = "list tasks from package dir" cwd = "packages/app" -steps = [ - "echo '' | vt run", -] +steps = ["echo '' | vt run"] [[e2e]] name = "list tasks from workspace root" -steps = [ - "echo '' | vt run", -] +steps = ["echo '' | vt run"] [[e2e]] name = "vt run in script" steps = [ - { command = "vt run list-tasks", interactions = [{ "expect-milestone" = "task-select::0" }, { "write-key" = "enter" }] }, + { command = "vt run list-tasks", interactions = [ + { "expect-milestone" = "task-select::0" }, + { "write-key" = "enter" }, + ] }, ] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-no-trailing-newline/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-no-trailing-newline/snapshots.toml index 703c982e..b85139ae 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-no-trailing-newline/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-no-trailing-newline/snapshots.toml @@ -2,6 +2,4 @@ [[e2e]] name = "no trailing newline" -steps = [ - "vt run hello # runs echo -n hello", -] +steps = ["vt run hello # runs echo -n hello"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-select-truncate/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-select-truncate/snapshots.toml index d773bfe3..c7dc1647 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-select-truncate/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-select-truncate/snapshots.toml @@ -3,5 +3,16 @@ name = "interactive long command truncated" cwd = "packages/app" steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write-key" = "down" }, { "expect-milestone" = "task-select::1" }, { "write-key" = "down" }, { "expect-milestone" = "task-select::2" }, { "write-key" = "down" }, { "expect-milestone" = "task-select::3" }, { "write-key" = "up" }, { "expect-milestone" = "task-select::2" }, { "write-key" = "enter" }] }, + { command = "vt run", interactions = [ + { "expect-milestone" = "task-select::0" }, + { "write-key" = "down" }, + { "expect-milestone" = "task-select::1" }, + { "write-key" = "down" }, + { "expect-milestone" = "task-select::2" }, + { "write-key" = "down" }, + { "expect-milestone" = "task-select::3" }, + { "write-key" = "up" }, + { "expect-milestone" = "task-select::2" }, + { "write-key" = "enter" }, + ] }, ] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-select/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-select/snapshots.toml index 4aee9ab0..370f92fc 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-select/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/task-select/snapshots.toml @@ -1,37 +1,34 @@ # Non-interactive: list all tasks (piped stdin forces non-interactive mode) [[e2e]] name = "non-interactive list tasks" -steps = [ - "echo '' | vt run", -] +steps = ["echo '' | vt run"] # Non-interactive: typo triggers "did you mean" [[e2e]] name = "non-interactive did you mean" -steps = [ - "echo '' | vt run buid", -] +steps = ["echo '' | vt run buid"] # Non-interactive: typo with no fuzzy matches hides "did you mean" [[e2e]] name = "non-interactive no suggestions" -steps = [ - "echo '' | vt run zzzzz", -] +steps = ["echo '' | vt run zzzzz"] # Non-interactive: typo with -r flag errors (not cwd_only) [[e2e]] name = "non-interactive recursive typo errors" -steps = [ - "echo '' | vt run -r buid", -] +steps = ["echo '' | vt run -r buid"] # Interactive: navigate down and select second task [[e2e]] name = "interactive select task" cwd = "packages/app" steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write-key" = "down" }, { "expect-milestone" = "task-select::1" }, { "write-key" = "enter" }] }, + { command = "vt run", interactions = [ + { "expect-milestone" = "task-select::0" }, + { "write-key" = "down" }, + { "expect-milestone" = "task-select::1" }, + { "write-key" = "enter" }, + ] }, ] # Interactive: typo pre-filled in search @@ -39,7 +36,10 @@ steps = [ name = "interactive select with typo" cwd = "packages/app" steps = [ - { command = "vt run buid", interactions = [{ "expect-milestone" = "task-select:buid:0" }, { "write-key" = "enter" }] }, + { command = "vt run buid", interactions = [ + { "expect-milestone" = "task-select:buid:0" }, + { "write-key" = "enter" }, + ] }, ] # Interactive: type to search then select @@ -47,7 +47,12 @@ steps = [ name = "interactive search then select" cwd = "packages/app" steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write" = "lin" }, { "expect-milestone" = "task-select:lin:0" }, { "write-key" = "enter" }] }, + { command = "vt run", interactions = [ + { "expect-milestone" = "task-select::0" }, + { "write" = "lin" }, + { "expect-milestone" = "task-select:lin:0" }, + { "write-key" = "enter" }, + ] }, ] # Interactive: escape clears query and resets filter @@ -55,57 +60,80 @@ steps = [ name = "interactive escape clears query" cwd = "packages/app" steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write" = "lin" }, { "expect-milestone" = "task-select:lin:0" }, { "write-key" = "escape" }, { "expect-milestone" = "task-select::0" }, { "write-key" = "enter" }] }, + { command = "vt run", interactions = [ + { "expect-milestone" = "task-select::0" }, + { "write" = "lin" }, + { "expect-milestone" = "task-select:lin:0" }, + { "write-key" = "escape" }, + { "expect-milestone" = "task-select::0" }, + { "write-key" = "enter" }, + ] }, ] # -r flag without task errors (not bare) [[e2e]] name = "recursive without task errors" cwd = "packages/app" -steps = [ - "vt run -r", -] +steps = ["vt run -r"] # -t flag + typo errors (not cwd_only) [[e2e]] name = "transitive typo errors" cwd = "packages/app" -steps = [ - "vt run -t buid", -] +steps = ["vt run -t buid"] # Interactive: scroll down past visible page, then select a task beyond the initial viewport [[e2e]] name = "interactive scroll long list" cwd = "packages/app" steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, # Navigate down to index 8 (past page_size=8, triggering scroll) - { "write-key" = "down" },{ "write-key" = "down" },{ "write-key" = "down" },{ "write-key" = "down" },{ "write-key" = "down" },{ "write-key" = "down" },{ "write-key" = "down" },{ "write-key" = "down" },{ "expect-milestone" = "task-select::8" }, # Scroll back up to the top - { "write-key" = "up" },{ "write-key" = "up" },{ "write-key" = "up" },{ "write-key" = "up" },{ "write-key" = "up" },{ "write-key" = "up" },{ "write-key" = "up" },{ "write-key" = "up" },{ "expect-milestone" = "task-select::0" },{ "write-key" = "enter" },] }, + { command = "vt run", interactions = [ + { "expect-milestone" = "task-select::0" }, # Navigate down to index 8 (past page_size=8, triggering scroll) + { "write-key" = "down" }, + { "write-key" = "down" }, + { "write-key" = "down" }, + { "write-key" = "down" }, + { "write-key" = "down" }, + { "write-key" = "down" }, + { "write-key" = "down" }, + { "write-key" = "down" }, + { "expect-milestone" = "task-select::8" }, # Scroll back up to the top + { "write-key" = "up" }, + { "write-key" = "up" }, + { "write-key" = "up" }, + { "write-key" = "up" }, + { "write-key" = "up" }, + { "write-key" = "up" }, + { "write-key" = "up" }, + { "write-key" = "up" }, + { "expect-milestone" = "task-select::0" }, + { "write-key" = "enter" }, + ] }, ] # Non-interactive: list tasks from lib package (lib tasks first, unqualified) [[e2e]] name = "non-interactive list tasks from lib" cwd = "packages/lib" -steps = [ - "echo '' | vt run", -] +steps = ["echo '' | vt run"] # Interactive: select from lib package (first item is lib's task) [[e2e]] name = "interactive select task from lib" cwd = "packages/lib" -steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write-key" = "enter" }] }, -] +steps = [{ command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write-key" = "enter" }] }] # Interactive: search for a task that only exists in another package [[e2e]] name = "interactive search other package task" cwd = "packages/app" steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write" = "typec" }, { "expect-milestone" = "task-select:typec:0" }, { "write-key" = "enter" }] }, + { command = "vt run", interactions = [ + { "expect-milestone" = "task-select::0" }, + { "write" = "typec" }, + { "expect-milestone" = "task-select:typec:0" }, + { "write-key" = "enter" }, + ] }, ] # Interactive: '#' in query skips current-package reordering @@ -113,7 +141,12 @@ steps = [ name = "interactive search with hash skips reorder" cwd = "packages/app" steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write" = "lib#" }, { "expect-milestone" = "task-select:lib#:0" }, { "write-key" = "enter" }] }, + { command = "vt run", interactions = [ + { "expect-milestone" = "task-select::0" }, + { "write" = "lib#" }, + { "expect-milestone" = "task-select:lib#:0" }, + { "write-key" = "enter" }, + ] }, ] # Interactive: multiple current-package matches preserve fuzzy rating order @@ -121,7 +154,12 @@ steps = [ name = "interactive search preserves rating within package" cwd = "packages/lib" steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write" = "t" }, { "expect-milestone" = "task-select:t:0" }, { "write-key" = "enter" }] }, + { command = "vt run", interactions = [ + { "expect-milestone" = "task-select::0" }, + { "write" = "t" }, + { "expect-milestone" = "task-select:t:0" }, + { "write-key" = "enter" }, + ] }, ] # Interactive: Enter with no matching results does nothing @@ -129,7 +167,15 @@ steps = [ name = "interactive enter with no results does nothing" cwd = "packages/app" steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write" = "zzzzz" }, { "expect-milestone" = "task-select:zzzzz:0" }, { "write-key" = "enter" }, { "write-key" = "escape" }, { "expect-milestone" = "task-select::0" }, { "write-key" = "enter" }] }, + { command = "vt run", interactions = [ + { "expect-milestone" = "task-select::0" }, + { "write" = "zzzzz" }, + { "expect-milestone" = "task-select:zzzzz:0" }, + { "write-key" = "enter" }, + { "write-key" = "escape" }, + { "expect-milestone" = "task-select::0" }, + { "write-key" = "enter" }, + ] }, ] # Interactive: navigate into a package group, select a non-current-package task @@ -137,28 +183,34 @@ steps = [ name = "interactive select from other package" cwd = "packages/app" steps = [ - { command = "vt run", interactions = [{ "expect-milestone" = "task-select::0" }, { "write-key" = "down" }, { "write-key" = "down" }, { "write-key" = "down" }, { "expect-milestone" = "task-select::3" }, { "write-key" = "enter" }] }, + { command = "vt run", interactions = [ + { "expect-milestone" = "task-select::0" }, + { "write-key" = "down" }, + { "write-key" = "down" }, + { "write-key" = "down" }, + { "expect-milestone" = "task-select::3" }, + { "write-key" = "enter" }, + ] }, ] # Typo inside a task script should fail with an error, NOT show a list [[e2e]] name = "typo in task script fails without list" -steps = [ - "vt run run-typo-task", -] +steps = ["vt run run-typo-task"] # --verbose without task: not bare, errors with "no task specifier provided" [[e2e]] name = "verbose without task errors" cwd = "packages/app" -steps = [ - "vt run --verbose", -] +steps = ["vt run --verbose"] # --verbose with typo: is_cwd_only is true, shows interactive selector [[e2e]] name = "verbose with typo enters selector" cwd = "packages/app" steps = [ - { command = "vt run buid --verbose", interactions = [{ "expect-milestone" = "task-select:buid:0" }, { "write-key" = "enter" }] }, + { command = "vt run buid --verbose", interactions = [ + { "expect-milestone" = "task-select:buid:0" }, + { "write-key" = "enter" }, + ] }, ] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/packages/app/package.json b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/packages/app/package.json index 22001dac..6398dfd8 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/packages/app/package.json +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/packages/app/package.json @@ -1,9 +1,9 @@ { "name": "@topo/app", - "dependencies": { - "@topo/lib": "workspace:*" - }, "scripts": { "build": "echo 'Building app'" + }, + "dependencies": { + "@topo/lib": "workspace:*" } } diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/packages/lib/package.json b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/packages/lib/package.json index 181806cc..5b4e0680 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/packages/lib/package.json +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/packages/lib/package.json @@ -1,9 +1,9 @@ { "name": "@topo/lib", - "dependencies": { - "@topo/core": "workspace:*" - }, "scripts": { "build": "echo 'Building lib'" + }, + "dependencies": { + "@topo/core": "workspace:*" } } diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/snapshots.toml index 15555b16..db0d6bbb 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/topological-execution-order/snapshots.toml @@ -3,20 +3,14 @@ [[e2e]] name = "recursive build runs dependencies before dependents" -steps = [ - "vt run -r build # core -> lib -> app", -] +steps = ["vt run -r build # core -> lib -> app"] [[e2e]] name = "transitive build from app runs all dependencies" cwd = "packages/app" -steps = [ - "vt run -t build # core -> lib -> app", -] +steps = ["vt run -t build # core -> lib -> app"] [[e2e]] name = "transitive build from lib runs only its dependencies" cwd = "packages/lib" -steps = [ - "vt run -t build # core -> lib", -] +steps = ["vt run -t build # core -> lib"] diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/workspace-root-self-reference/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/workspace-root-self-reference/snapshots.toml index ce8b9e7e..4ec9bb9d 100644 --- a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/workspace-root-self-reference/snapshots.toml +++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/workspace-root-self-reference/snapshots.toml @@ -12,12 +12,8 @@ [[e2e]] name = "recursive build skips root self-reference" -steps = [ - "vt run -r build # only a and b run, root is skipped", -] +steps = ["vt run -r build # only a and b run, root is skipped"] [[e2e]] name = "build from root prunes root from nested expansion" -steps = [ - "vt run build # only a and b run under root, root is pruned", -] +steps = ["vt run build # only a and b run under root, root is pruned"] diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/cache-keys/snapshots.toml b/crates/vite_task_plan/tests/plan_snapshots/fixtures/cache-keys/snapshots.toml index 2cb0929b..6a6dd015 100644 --- a/crates/vite_task_plan/tests/plan_snapshots/fixtures/cache-keys/snapshots.toml +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/cache-keys/snapshots.toml @@ -27,8 +27,4 @@ args = ["run", "echo-and-lint", "--fix"] [[e2e]] name = "direct lint" -steps = [ - "vt run lint # cache miss", - "echo debugger > main.js # add lint error", - "vt run lint # cache miss, lint fails", -] +steps = ["vt run lint # cache miss", "echo debugger > main.js # add lint error", "vt run lint # cache miss, lint fails"] diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/comprehensive-task-graph/packages/api/package.json b/crates/vite_task_plan/tests/plan_snapshots/fixtures/comprehensive-task-graph/packages/api/package.json index 8010137b..ae3e1fa6 100644 --- a/crates/vite_task_plan/tests/plan_snapshots/fixtures/comprehensive-task-graph/packages/api/package.json +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/comprehensive-task-graph/packages/api/package.json @@ -8,7 +8,7 @@ "dev": "echo Watch mode && echo Start dev server" }, "dependencies": { - "@test/shared": "workspace:*", - "@test/config": "workspace:*" + "@test/config": "workspace:*", + "@test/shared": "workspace:*" } } diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/comprehensive-task-graph/packages/app/package.json b/crates/vite_task_plan/tests/plan_snapshots/fixtures/comprehensive-task-graph/packages/app/package.json index e92feff7..1e7e62bb 100644 --- a/crates/vite_task_plan/tests/plan_snapshots/fixtures/comprehensive-task-graph/packages/app/package.json +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/comprehensive-task-graph/packages/app/package.json @@ -9,9 +9,9 @@ "deploy": "echo Validate && echo Upload && echo Verify" }, "dependencies": { - "@test/ui": "workspace:*", "@test/api": "workspace:*", + "@test/pkg#special": "workspace:*", "@test/shared": "workspace:*", - "@test/pkg#special": "workspace:*" + "@test/ui": "workspace:*" } } diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/dependency-both-topo-and-explicit/package.json b/crates/vite_task_plan/tests/plan_snapshots/fixtures/dependency-both-topo-and-explicit/package.json index 2c63c085..0967ef42 100644 --- a/crates/vite_task_plan/tests/plan_snapshots/fixtures/dependency-both-topo-and-explicit/package.json +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/dependency-both-topo-and-explicit/package.json @@ -1,2 +1 @@ -{ -} +{} diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/explicit-deps-workspace/packages/app/package.json b/crates/vite_task_plan/tests/plan_snapshots/fixtures/explicit-deps-workspace/packages/app/package.json index dc12b324..65f6ee97 100644 --- a/crates/vite_task_plan/tests/plan_snapshots/fixtures/explicit-deps-workspace/packages/app/package.json +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/explicit-deps-workspace/packages/app/package.json @@ -1,12 +1,12 @@ { "name": "@test/app", "version": "1.0.0", - "dependencies": { - "@test/utils": "workspace:*" - }, "scripts": { "build": "echo 'Building @test/app'", "test": "echo 'Testing @test/app'", "start": "echo 'Starting @test/app'" + }, + "dependencies": { + "@test/utils": "workspace:*" } } diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/explicit-deps-workspace/packages/utils/package.json b/crates/vite_task_plan/tests/plan_snapshots/fixtures/explicit-deps-workspace/packages/utils/package.json index b981ce64..2e879bc0 100644 --- a/crates/vite_task_plan/tests/plan_snapshots/fixtures/explicit-deps-workspace/packages/utils/package.json +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/explicit-deps-workspace/packages/utils/package.json @@ -1,11 +1,11 @@ { "name": "@test/utils", "version": "1.0.0", - "dependencies": { - "@test/core": "workspace:*" - }, "scripts": { "build": "echo 'Building @test/utils'", "test": "echo 'Testing @test/utils'" + }, + "dependencies": { + "@test/core": "workspace:*" } } diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/nested-cache-override/vite-task.json b/crates/vite_task_plan/tests/plan_snapshots/fixtures/nested-cache-override/vite-task.json index 2c63c085..0967ef42 100644 --- a/crates/vite_task_plan/tests/plan_snapshots/fixtures/nested-cache-override/vite-task.json +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/nested-cache-override/vite-task.json @@ -1,2 +1 @@ -{ -} +{} diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/package-self-dependency/packages/self-dep/package.json b/crates/vite_task_plan/tests/plan_snapshots/fixtures/package-self-dependency/packages/self-dep/package.json index 4642c145..42f65dcf 100644 --- a/crates/vite_task_plan/tests/plan_snapshots/fixtures/package-self-dependency/packages/self-dep/package.json +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/package-self-dependency/packages/self-dep/package.json @@ -1,10 +1,10 @@ { "name": "self-dep", "version": "1.0.0", - "dependencies": { - "self-dep": "workspace:*" - }, "scripts": { "build": "echo building" + }, + "dependencies": { + "self-dep": "workspace:*" } } diff --git a/deny.toml b/deny.toml index 4644e0a6..1dcf8d5a 100644 --- a/deny.toml +++ b/deny.toml @@ -48,16 +48,7 @@ ignore = [ # List of explicitly allowed licenses # See https://spdx.org/licenses/ for list of possible licenses # [possible values: any SPDX 3.11 short identifier (+ optional exception)]. -allow = [ - "Apache-2.0", - "BSD-3-Clause", - "ISC", - "MIT", - "MPL-2.0", - "OpenSSL", - "Unicode-DFS-2016", - "Unicode-3.0", -] +allow = ["Apache-2.0", "BSD-3-Clause", "ISC", "MIT", "MPL-2.0", "OpenSSL", "Unicode-DFS-2016", "Unicode-3.0"] # The confidence threshold for detecting a license from license text. # The higher the value, the more closely the license text must be to the # canonical license text of a valid SPDX license file. diff --git a/dprint.json b/dprint.json deleted file mode 100644 index 5dc44276..00000000 --- a/dprint.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "lineWidth": 120, - "typescript": { - "quoteStyle": "preferSingle", - "binaryExpression.operatorPosition": "sameLine" - }, - "json": { - "indentWidth": 2 - }, - "toml": { - }, - "yaml": { - "quotes": "preferSingle" - }, - "excludes": [ - "crates/fspy_detours_sys/detours", - "pnpm-lock.yaml", - "crates/vite_task_graph/run-config.ts" - ], - "plugins": [ - "https://plugins.dprint.dev/typescript-0.94.0.wasm", - "https://plugins.dprint.dev/json-0.20.0.wasm", - "https://plugins.dprint.dev/markdown-0.18.0.wasm", - "https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.0.wasm", - "https://plugins.dprint.dev/toml-0.7.0.wasm" - ] -} diff --git a/justfile b/justfile index c465969b..b742d34d 100644 --- a/justfile +++ b/justfile @@ -9,7 +9,7 @@ _default: alias r := ready init: - cargo binstall watchexec-cli cargo-insta typos-cli cargo-shear dprint taplo-cli -y + cargo binstall watchexec-cli cargo-insta typos-cli cargo-shear taplo-cli -y pnpm run bootstrap-cli ready: @@ -27,7 +27,7 @@ watch *args='': fmt: cargo shear --fix cargo fmt --all - dprint fmt + pnpm oxfmt check: cargo check --workspace --all-features --all-targets --locked diff --git a/package.json b/package.json index 07146397..fea38b02 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,7 @@ { "name": "vite-task-monorepo", - "license": "MIT", "private": true, - "packageManager": "pnpm@10.17.1", - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, + "license": "MIT", "type": "module", "scripts": { "prepare": "husky" @@ -14,18 +10,17 @@ "@types/node": "catalog:", "husky": "catalog:", "lint-staged": "catalog:", + "oxfmt": "catalog:", "oxlint": "catalog:", "oxlint-tsgolint": "catalog:" }, "lint-staged": { - "*.@(js|ts|tsx|yml|yaml|md|json|html|toml)": [ - "dprint fmt --staged" - ], - "*.@(js|ts|tsx)": [ - "oxlint -- --fix" - ], - "*.rs": [ - "cargo fmt --" - ] - } + "*": "oxfmt --no-error-on-unmatched-pattern", + "*.@(js|ts|tsx)": "oxlint -- --fix", + "*.rs": "cargo fmt --" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "packageManager": "pnpm@10.17.1" } diff --git a/packages/tools/package.json b/packages/tools/package.json index 769b10ef..87ef92d5 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -1,16 +1,16 @@ { "name": "vite-task-tools", - "type": "module", "private": true, "bin": { + "check-tty": "./src/check-tty.js", + "json-edit": "./src/json-edit.ts", "print": "./src/print.ts", - "print-file": "./src/print-file.ts", "print-env": "./src/print-env.js", - "json-edit": "./src/json-edit.ts", - "check-tty": "./src/check-tty.js", + "print-file": "./src/print-file.ts", "read-stdin": "./src/read-stdin.js", "replace-file-content": "./src/replace-file-content.ts" }, + "type": "module", "dependencies": { "cross-env": "^10.1.0", "oxfmt": "0.26.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ca50755..c1a1444e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,14 +13,17 @@ catalogs: specifier: ^9.1.7 version: 9.1.7 lint-staged: - specifier: ^16.2.6 - version: 16.2.7 + specifier: ^16.3.3 + version: 16.3.3 + oxfmt: + specifier: 0.40.0 + version: 0.40.0 oxlint: - specifier: ^1.34.0 - version: 1.38.0 + specifier: ^1.55.0 + version: 1.55.0 oxlint-tsgolint: - specifier: ^0.10.0 - version: 0.10.1 + specifier: ^0.16.0 + version: 0.16.0 importers: @@ -34,13 +37,16 @@ importers: version: 9.1.7 lint-staged: specifier: 'catalog:' - version: 16.2.7 + version: 16.3.3 + oxfmt: + specifier: 'catalog:' + version: 0.40.0 oxlint: specifier: 'catalog:' - version: 1.38.0(oxlint-tsgolint@0.10.1) + version: 1.55.0(oxlint-tsgolint@0.16.0) oxlint-tsgolint: specifier: 'catalog:' - version: 0.10.1 + version: 0.16.0 packages/tools: dependencies: @@ -52,10 +58,10 @@ importers: version: 0.26.0 oxlint: specifier: 'catalog:' - version: 1.38.0(oxlint-tsgolint@0.10.1) + version: 1.55.0(oxlint-tsgolint@0.16.0) oxlint-tsgolint: specifier: 'catalog:' - version: 0.10.1 + version: 0.16.0 vite-task-tools: specifier: 'link:' version: 'link:' @@ -65,6 +71,120 @@ packages: '@epic-web/invariant@1.0.0': resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} + '@oxfmt/binding-android-arm-eabi@0.40.0': + resolution: {integrity: sha512-S6zd5r1w/HmqR8t0CTnGjFTBLDq2QKORPwriCHxo4xFNuhmOTABGjPaNvCJJVnrKBLsohOeiDX3YqQfJPF+FXw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxfmt/binding-android-arm64@0.40.0': + resolution: {integrity: sha512-/mbS9UUP/5Vbl2D6osIdcYiP0oie63LKMoTyGj5hyMCK/SFkl3EhtyRAfdjPvuvHC0SXdW6ePaTKkBSq1SNcIw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxfmt/binding-darwin-arm64@0.40.0': + resolution: {integrity: sha512-wRt8fRdfLiEhnRMBonlIbKrJWixoEmn6KCjKE9PElnrSDSXETGZfPb8ee+nQNTobXkCVvVLytp2o0obAsxl78Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxfmt/binding-darwin-x64@0.40.0': + resolution: {integrity: sha512-fzowhqbOE/NRy+AE5ob0+Y4X243WbWzDb00W+pKwD7d9tOqsAFbtWUwIyqqCoCLxj791m2xXIEeLH/3uz7zCCg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxfmt/binding-freebsd-x64@0.40.0': + resolution: {integrity: sha512-agZ9ITaqdBjcerRRFEHB8s0OyVcQW8F9ZxsszjxzeSthQ4fcN2MuOtQFWec1ed8/lDa50jSLHVE2/xPmTgtCfQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxfmt/binding-linux-arm-gnueabihf@0.40.0': + resolution: {integrity: sha512-ZM2oQ47p28TP1DVIp7HL1QoMUgqlBFHey0ksHct7tMXoU5BqjNvPWw7888azzMt25lnyPODVuye1wvNbvVUFOA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm-musleabihf@0.40.0': + resolution: {integrity: sha512-RBFPAxRAIsMisKM47Oe6Lwdv6agZYLz02CUhVCD1sOv5ajAcRMrnwCFBPWwGXpazToW2mjnZxFos8TuFjTU15A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm64-gnu@0.40.0': + resolution: {integrity: sha512-Nb2XbQ+wV3W2jSIihXdPj7k83eOxeSgYP3N/SRXvQ6ZYPIk6Q86qEh5Gl/7OitX3bQoQrESqm1yMLvZV8/J7dA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxfmt/binding-linux-arm64-musl@0.40.0': + resolution: {integrity: sha512-tGmWhLD/0YMotCdfezlT6tC/MJG/wKpo4vnQ3Cq+4eBk/BwNv7EmkD0VkD5F/dYkT3b8FNU01X2e8vvJuWoM1w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxfmt/binding-linux-ppc64-gnu@0.40.0': + resolution: {integrity: sha512-rVbFyM3e7YhkVnp0IVYjaSHfrBWcTRWb60LEcdNAJcE2mbhTpbqKufx0FrhWfoxOrW/+7UJonAOShoFFLigDqQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxfmt/binding-linux-riscv64-gnu@0.40.0': + resolution: {integrity: sha512-3ZqBw14JtWeEoLiioJcXSJz8RQyPE+3jLARnYM1HdPzZG4vk+Ua8CUupt2+d+vSAvMyaQBTN2dZK+kbBS/j5mA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxfmt/binding-linux-riscv64-musl@0.40.0': + resolution: {integrity: sha512-JJ4PPSdcbGBjPvb+O7xYm2FmAsKCyuEMYhqatBAHMp/6TA6rVlf9Z/sYPa4/3Bommb+8nndm15SPFRHEPU5qFA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxfmt/binding-linux-s390x-gnu@0.40.0': + resolution: {integrity: sha512-Kp0zNJoX9Ik77wUya2tpBY3W9f40VUoMQLWVaob5SgCrblH/t2xr/9B2bWHfs0WCefuGmqXcB+t0Lq77sbBmZw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@oxfmt/binding-linux-x64-gnu@0.40.0': + resolution: {integrity: sha512-7YTCNzleWTaQTqNGUNQ66qVjpoV6DjbCOea+RnpMBly2bpzrI/uu7Rr+2zcgRfNxyjXaFTVQKaRKjqVdeUfeVA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxfmt/binding-linux-x64-musl@0.40.0': + resolution: {integrity: sha512-hWnSzJ0oegeOwfOEeejYXfBqmnRGHusgtHfCPzmvJvHTwy1s3Neo59UKc1CmpE3zxvrCzJoVHos0rr97GHMNPw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxfmt/binding-openharmony-arm64@0.40.0': + resolution: {integrity: sha512-28sJC1lR4qtBJGzSRRbPnSW3GxU2+4YyQFE6rCmsUYqZ5XYH8jg0/w+CvEzQ8TuAQz5zLkcA25nFQGwoU0PT3Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxfmt/binding-win32-arm64-msvc@0.40.0': + resolution: {integrity: sha512-cDkRnyT0dqwF5oIX1Cv59HKCeZQFbWWdUpXa3uvnHFT2iwYSSZspkhgjXjU6iDp5pFPaAEAe9FIbMoTgkTmKPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxfmt/binding-win32-ia32-msvc@0.40.0': + resolution: {integrity: sha512-7rPemBJjqm5Gkv6ZRCPvK8lE6AqQ/2z31DRdWazyx2ZvaSgL7QGofHXHNouRpPvNsT9yxRNQJgigsWkc+0qg4w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxfmt/binding-win32-x64-msvc@0.40.0': + resolution: {integrity: sha512-/Zmj0yTYSvmha6TG1QnoLqVT7ZMRDqXvFXXBQpIjteEwx9qvUYMBH2xbiOFhDeMUJkGwC3D6fdKsFtaqUvkwNA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@oxfmt/darwin-arm64@0.26.0': resolution: {integrity: sha512-AAGc+8CffkiWeVgtWf4dPfQwHEE5c/j/8NWH7VGVxxJRCZFdmWcqCXprvL2H6qZFewvDLrFbuSPRCqYCpYGaTQ==} cpu: [arm64] @@ -79,25 +199,21 @@ packages: resolution: {integrity: sha512-GubkQeQT5d3B/Jx/IiR7NMkSmXrCZcVI0BPh1i7mpFi8HgD1hQ/LbhiBKAMsMqs5bbugdQOgBEl8bOhe8JhW1g==} cpu: [arm64] os: [linux] - libc: [glibc] '@oxfmt/linux-arm64-musl@0.26.0': resolution: {integrity: sha512-OEypUwK69bFPj+aa3/LYCnlIUPgoOLu//WNcriwpnWNmt47808Ht7RJSg+MNK8a7pSZHpXJ5/E6CRK/OTwFdaQ==} cpu: [arm64] os: [linux] - libc: [musl] '@oxfmt/linux-x64-gnu@0.26.0': resolution: {integrity: sha512-xO6iEW2bC6ZHyOTPmPWrg/nM6xgzyRPaS84rATy6F8d79wz69LdRdJ3l/PXlkqhi7XoxhvX4ExysA0Nf10ZZEQ==} cpu: [x64] os: [linux] - libc: [glibc] '@oxfmt/linux-x64-musl@0.26.0': resolution: {integrity: sha512-Z3KuZFC+MIuAyFCXBHY71kCsdRq1ulbsbzTe71v+hrEv7zVBn6yzql+/AZcgfIaKzWO9OXNuz5WWLWDmVALwow==} cpu: [x64] os: [linux] - libc: [musl] '@oxfmt/win32-arm64@0.26.0': resolution: {integrity: sha512-3zRbqwVWK1mDhRhTknlQFpRFL9GhEB5GfU6U7wawnuEwpvi39q91kJ+SRJvJnhyPCARkjZBd1V8XnweN5IFd1g==} @@ -109,85 +225,155 @@ packages: cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.10.1': - resolution: {integrity: sha512-KGC4++BeEqrIcmDHiJt/e6/860PWJmUJjjp0mE+smpBmRXMjmOFFjrPmN+ZyCyVgf1WdmhPkQXsRSPeTR+2omw==} + '@oxlint-tsgolint/darwin-arm64@0.16.0': + resolution: {integrity: sha512-WQt5lGwRPJBw7q2KNR0mSPDAaMmZmVvDlEEti96xLO7ONhyomQc6fBZxxwZ4qTFedjJnrHX94sFelZ4OKzS7UQ==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.10.1': - resolution: {integrity: sha512-tvmrDgj3Q0tdc+zMWfCVLVq8EQDEUqasm1zaWgSMYIszpID6qdgqbT+OpWWXV9fLZgtvrkoXGwxkHAUJzdVZXQ==} + '@oxlint-tsgolint/darwin-x64@0.16.0': + resolution: {integrity: sha512-VJo29XOzdkalvCTiE2v6FU3qZlgHaM8x8hUEVJGPU2i5W+FlocPpmn00+Ld2n7Q0pqIjyD5EyvZ5UmoIEJMfqg==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.10.1': - resolution: {integrity: sha512-7kD28z6/ykGx8WetKTPRZt30pd+ziassxg/8cM24lhjUI+hNXyRHVtHes73dh9D6glJKno+1ut+3amUdZBZcpQ==} + '@oxlint-tsgolint/linux-arm64@0.16.0': + resolution: {integrity: sha512-MPfqRt1+XRHv9oHomcBMQ3KpTE+CSkZz14wUxDQoqTNdUlV0HWdzwIE9q65I3D9YyxEnqpM7j4qtDQ3apqVvbQ==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.10.1': - resolution: {integrity: sha512-NmJmiqdzYUTHIxteSTyX6IFFgnIsOAjRWXfrS6Jbo5xlB3g39WHniSF3asB/khLJNtwSg4InUS34NprYM7zrEw==} + '@oxlint-tsgolint/linux-x64@0.16.0': + resolution: {integrity: sha512-XQSwVUsnwLokMhe1TD6IjgvW5WMTPzOGGkdFDtXWQmlN2YeTw94s/NN0KgDrn2agM1WIgAenEkvnm0u7NgwEyw==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.10.1': - resolution: {integrity: sha512-3KrT80vl3nXUkjuJI/z8dF6xWsKx0t9Tz4ZQHgQw3fYw+CoihBRWGklrdlmCz+EGfMyVaQLqBV9PZckhSqLe2A==} + '@oxlint-tsgolint/win32-arm64@0.16.0': + resolution: {integrity: sha512-EWdlspQiiFGsP2AiCYdhg5dTYyAlj6y1nRyNI2dQWq4Q/LITFHiSRVPe+7m7K7lcsZCEz2icN/bCeSkZaORqIg==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.10.1': - resolution: {integrity: sha512-hW1fSJZVxG51sLdGq1sQjOzb1tsQ23z/BquJfUwL7CqBobxr7TJvGmoINL+9KryOJt0jCoaiMfWe4yoYw5XfIA==} + '@oxlint-tsgolint/win32-x64@0.16.0': + resolution: {integrity: sha512-1ufk8cgktXJuJZHKF63zCHAkaLMwZrEXnZ89H2y6NO85PtOXqu4zbdNl0VBpPP3fCUuUBu9RvNqMFiv0VsbXWA==} cpu: [x64] os: [win32] - '@oxlint/darwin-arm64@1.38.0': - resolution: {integrity: sha512-9rN3047QTyA4i73FKikDUBdczRcLtOsIwZ5TsEx5Q7jr5nBjolhYQOFQf9QdhBLdInxw1iX4+lgdMCf1g74zjg==} + '@oxlint/binding-android-arm-eabi@1.55.0': + resolution: {integrity: sha512-NhvgAhncTSOhRahQSCnkK/4YIGPjTmhPurQQ2dwt2IvwCMTvZRW5vF2K10UBOxFve4GZDMw6LtXZdC2qeuYIVQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxlint/binding-android-arm64@1.55.0': + resolution: {integrity: sha512-P9iWRh+Ugqhg+D7rkc7boHX8o3H2h7YPcZHQIgvVBgnua5tk4LR2L+IBlreZs58/95cd2x3/004p5VsQM9z4SA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxlint/binding-darwin-arm64@1.55.0': + resolution: {integrity: sha512-esakkJIt7WFAhT30P/Qzn96ehFpzdZ1mNuzpOb8SCW7lI4oB8VsyQnkSHREM671jfpuBb/o2ppzBCx5l0jpgMA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/darwin-x64@1.38.0': - resolution: {integrity: sha512-Y1UHW4KOlg5NvyrSn/bVBQP8/LRuid7Pnu+BWGbAVVsFcK0b565YgMSO3Eu9nU3w8ke91dr7NFpUmS+bVkdkbw==} + '@oxlint/binding-darwin-x64@1.55.0': + resolution: {integrity: sha512-xDMFRCCAEK9fOH6As2z8ELsC+VDGSFRHwIKVSilw+xhgLwTDFu37rtmRbmUlx8rRGS6cWKQPTc47AVxAZEVVPQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/linux-arm64-gnu@1.38.0': - resolution: {integrity: sha512-ZiVxPZizlXSnAMdkEFWX/mAj7U3bNiku8p6I9UgLrXzgGSSAhFobx8CaFGwVoKyWOd+gQgZ/ogCrunvx2k0CFg==} + '@oxlint/binding-freebsd-x64@1.55.0': + resolution: {integrity: sha512-mYZqnwUD7ALCRxGenyLd1uuG+rHCL+OTT6S8FcAbVm/ZT2AZMGjvibp3F6k1SKOb2aeqFATmwRykrE41Q0GWVw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.55.0': + resolution: {integrity: sha512-LcX6RYcF9vL9ESGwJW3yyIZ/d/ouzdOKXxCdey1q0XJOW1asrHsIg5MmyKdEBR4plQx+shvYeQne7AzW5f3T1w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.55.0': + resolution: {integrity: sha512-C+8GS1rPtK+dI7mJFkqoRBkDuqbrNihnyYQsJPS9ez+8zF9JzfvU19lawqt4l/Y23o5uQswE/DORa8aiXUih3w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.55.0': + resolution: {integrity: sha512-ErLE4XbmcCopA4/CIDiH6J1IAaDOMnf/KSx/aFObs4/OjAAM3sFKWGZ57pNOMxhhyBdcmcXwYymph9GwcpcqgQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - libc: [glibc] - '@oxlint/linux-arm64-musl@1.38.0': - resolution: {integrity: sha512-ELtlCIGZ72A65ATZZHFxHMFrkRtY+DYDCKiNKg6v7u5PdeOFey+OlqRXgXtXlxWjCL+g7nivwI2FPVsWqf05Qw==} + '@oxlint/binding-linux-arm64-musl@1.55.0': + resolution: {integrity: sha512-/kp65avi6zZfqEng56TTuhiy3P/3pgklKIdf38yvYeJ9/PgEeRA2A2AqKAKbZBNAqUzrzHhz9jF6j/PZvhJzTQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - libc: [musl] - '@oxlint/linux-x64-gnu@1.38.0': - resolution: {integrity: sha512-E1OcDh30qyng1m0EIlsOuapYkqk5QB6o6IMBjvDKqIoo6IrjlVAasoJfS/CmSH998gXRL3BcAJa6Qg9IxPFZnQ==} + '@oxlint/binding-linux-ppc64-gnu@1.55.0': + resolution: {integrity: sha512-A6pTdXwcEEwL/nmz0eUJ6WxmxcoIS+97GbH96gikAyre3s5deC7sts38ZVVowjS2QQFuSWkpA4ZmQC0jZSNvJQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxlint/binding-linux-riscv64-gnu@1.55.0': + resolution: {integrity: sha512-clj0lnIN+V52G9tdtZl0LbdTSurnZ1NZj92Je5X4lC7gP5jiCSW+Y/oiDiSauBAD4wrHt2S7nN3pA0zfKYK/6Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxlint/binding-linux-riscv64-musl@1.55.0': + resolution: {integrity: sha512-NNu08pllN5x/O94/sgR3DA8lbrGBnTHsINZZR0hcav1sj79ksTiKKm1mRzvZvacwQ0hUnGinFo+JO75ok2PxYg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxlint/binding-linux-s390x-gnu@1.55.0': + resolution: {integrity: sha512-BvfQz3PRlWZRoEZ17dZCqgQsMRdpzGZomJkVATwCIGhHVVeHJMQdmdXPSjcT1DCNUrOjXnVyj1RGDj5+/Je2+Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@oxlint/binding-linux-x64-gnu@1.55.0': + resolution: {integrity: sha512-ngSOoFCSBMKVQd24H8zkbcBNc7EHhjnF1sv3mC9NNXQ/4rRjI/4Dj9+9XoDZeFEkF1SX1COSBXF1b2Pr9rqdEw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - libc: [glibc] - '@oxlint/linux-x64-musl@1.38.0': - resolution: {integrity: sha512-4AfpbM/4sQnr6S1dMijEPfsq4stQbN5vJ2jsahSy/QTcvIVbFkgY+RIhrA5UWlC6eb0rD5CdaPQoKGMJGeXpYw==} + '@oxlint/binding-linux-x64-musl@1.55.0': + resolution: {integrity: sha512-BDpP7W8GlaG7BR6QjGZAleYzxoyKc/D24spZIF2mB3XsfALQJJT/OBmP8YpeTb1rveFSBHzl8T7l0aqwkWNdGA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - libc: [musl] - '@oxlint/win32-arm64@1.38.0': - resolution: {integrity: sha512-OvUVYdI68OwXh3d1RjH9N/okCxb6PrOGtEtzXyqGA7Gk+IxyZcX0/QCTBwV8FNbSSzDePSSEHOKpoIB+VXdtvg==} + '@oxlint/binding-openharmony-arm64@1.55.0': + resolution: {integrity: sha512-PS6GFvmde/pc3fCA2Srt51glr8Lcxhpf6WIBFfLphndjRrD34NEcses4TSxQrEcxYo6qVywGfylM0ZhSCF2gGA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.55.0': + resolution: {integrity: sha512-P6JcLJGs/q1UOvDLzN8otd9JsH4tsuuPDv+p7aHqHM3PrKmYdmUvkNj4K327PTd35AYcznOCN+l4ZOaq76QzSw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/win32-x64@1.38.0': - resolution: {integrity: sha512-7IuZMYiZiOcgg5zHvpJY6jRlEwh8EB/uq7GsoQJO9hANq96TIjyntGByhIjFSsL4asyZmhTEki+MO/u5Fb/WQA==} + '@oxlint/binding-win32-ia32-msvc@1.55.0': + resolution: {integrity: sha512-gzkk4zE2zsE+WmRxFOiAZHpCpUNDFytEakqNXoNHW+PnYEOTPKDdW6nrzgSeTbGKVPXNAKQnRnMgrh7+n3Xueg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.55.0': + resolution: {integrity: sha512-ZFALNow2/og75gvYzNP7qe+rREQ5xunktwA+lgykoozHZ6hw9bqg4fn5j2UvG4gIn1FXqrZHkOAXuPf5+GOYTQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] '@types/node@25.0.3': resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==} - ansi-escapes@7.2.0: - resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==} + ansi-escapes@7.3.0: + resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} engines: {node: '>=18'} ansi-regex@6.2.2: @@ -206,15 +392,15 @@ packages: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} - cli-truncate@5.1.1: - resolution: {integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==} + cli-truncate@5.2.0: + resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} engines: {node: '>=20'} colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - commander@14.0.2: - resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + commander@14.0.3: + resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} cross-env@10.1.0: @@ -233,15 +419,15 @@ packages: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - get-east-asian-width@1.4.0: - resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + get-east-asian-width@1.5.0: + resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} engines: {node: '>=18'} husky@9.1.7: @@ -260,8 +446,8 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - lint-staged@16.2.7: - resolution: {integrity: sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==} + lint-staged@16.3.3: + resolution: {integrity: sha512-RLq2koZ5fGWrx7tcqx2tSTMQj4lRkfNJaebO/li/uunhCJbtZqwTuwPHpgIimAHHi/2nZIiGrkCHDCOeR1onxA==} engines: {node: '>=20.17'} hasBin: true @@ -281,10 +467,6 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - nano-spawn@2.0.0: - resolution: {integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==} - engines: {node: '>=20.17'} - onetime@7.0.0: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} @@ -294,16 +476,21 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint-tsgolint@0.10.1: - resolution: {integrity: sha512-EEHNdo5cW2w1xwYdBQ7d3IXDqWAtMkfVFrh+9gQ4kYbYJwygY4QXSh1eH80/xVipZdVKujAwBgg/nNNHk56kxQ==} + oxfmt@0.40.0: + resolution: {integrity: sha512-g0C3I7xUj4b4DcagevM9kgH6+pUHytikxUcn3/VUkvzTNaaXBeyZqb7IBsHwojeXm4mTBEC/aBjBTMVUkZwWUQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + oxlint-tsgolint@0.16.0: + resolution: {integrity: sha512-4RuJK2jP08XwqtUu+5yhCbxEauCm6tv2MFHKEMsjbosK2+vy5us82oI3VLuHwbNyZG7ekZA26U2LLHnGR4frIA==} hasBin: true - oxlint@1.38.0: - resolution: {integrity: sha512-XT7tBinQS+hVLxtfJOnokJ9qVBiQvZqng40tDgR6qEJMRMnpVq/JwYfbYyGntSq8MO+Y+N9M1NG4bAMFUtCJiw==} + oxlint@1.55.0: + resolution: {integrity: sha512-T+FjepiyWpaZMhekqRpH8Z3I4vNM610p6w+Vjfqgj5TZUxHXl7N8N5IPvmOU8U4XdTRxqtNNTh9Y4hLtr7yvFg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - oxlint-tsgolint: '>=0.10.0' + oxlint-tsgolint: '>=0.15.0' peerDependenciesMeta: oxlint-tsgolint: optional: true @@ -316,11 +503,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - restore-cursor@5.1.0: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} @@ -344,6 +526,10 @@ packages: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} + slice-ansi@8.0.0: + resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} + engines: {node: '>=20'} + string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -352,18 +538,26 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string-width@8.1.0: - resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} + string-width@8.2.0: + resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==} engines: {node: '>=20'} - strip-ansi@7.1.2: - resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} engines: {node: '>=12'} + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + tinypool@2.0.0: resolution: {integrity: sha512-/RX9RzeH2xU5ADE7n2Ykvmi9ED3FBGPAjw9u3zucrNNaEBIO0HPSYgL0NT7+3p147ojeSdaVu08F6hjpv31HJg==} engines: {node: ^20.0.0 || >=22.0.0} + tinypool@2.1.0: + resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} + engines: {node: ^20.0.0 || >=22.0.0} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -389,6 +583,63 @@ snapshots: '@epic-web/invariant@1.0.0': {} + '@oxfmt/binding-android-arm-eabi@0.40.0': + optional: true + + '@oxfmt/binding-android-arm64@0.40.0': + optional: true + + '@oxfmt/binding-darwin-arm64@0.40.0': + optional: true + + '@oxfmt/binding-darwin-x64@0.40.0': + optional: true + + '@oxfmt/binding-freebsd-x64@0.40.0': + optional: true + + '@oxfmt/binding-linux-arm-gnueabihf@0.40.0': + optional: true + + '@oxfmt/binding-linux-arm-musleabihf@0.40.0': + optional: true + + '@oxfmt/binding-linux-arm64-gnu@0.40.0': + optional: true + + '@oxfmt/binding-linux-arm64-musl@0.40.0': + optional: true + + '@oxfmt/binding-linux-ppc64-gnu@0.40.0': + optional: true + + '@oxfmt/binding-linux-riscv64-gnu@0.40.0': + optional: true + + '@oxfmt/binding-linux-riscv64-musl@0.40.0': + optional: true + + '@oxfmt/binding-linux-s390x-gnu@0.40.0': + optional: true + + '@oxfmt/binding-linux-x64-gnu@0.40.0': + optional: true + + '@oxfmt/binding-linux-x64-musl@0.40.0': + optional: true + + '@oxfmt/binding-openharmony-arm64@0.40.0': + optional: true + + '@oxfmt/binding-win32-arm64-msvc@0.40.0': + optional: true + + '@oxfmt/binding-win32-ia32-msvc@0.40.0': + optional: true + + '@oxfmt/binding-win32-x64-msvc@0.40.0': + optional: true + '@oxfmt/darwin-arm64@0.26.0': optional: true @@ -413,53 +664,86 @@ snapshots: '@oxfmt/win32-x64@0.26.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.10.1': + '@oxlint-tsgolint/darwin-arm64@0.16.0': + optional: true + + '@oxlint-tsgolint/darwin-x64@0.16.0': + optional: true + + '@oxlint-tsgolint/linux-arm64@0.16.0': + optional: true + + '@oxlint-tsgolint/linux-x64@0.16.0': + optional: true + + '@oxlint-tsgolint/win32-arm64@0.16.0': + optional: true + + '@oxlint-tsgolint/win32-x64@0.16.0': optional: true - '@oxlint-tsgolint/darwin-x64@0.10.1': + '@oxlint/binding-android-arm-eabi@1.55.0': optional: true - '@oxlint-tsgolint/linux-arm64@0.10.1': + '@oxlint/binding-android-arm64@1.55.0': optional: true - '@oxlint-tsgolint/linux-x64@0.10.1': + '@oxlint/binding-darwin-arm64@1.55.0': optional: true - '@oxlint-tsgolint/win32-arm64@0.10.1': + '@oxlint/binding-darwin-x64@1.55.0': optional: true - '@oxlint-tsgolint/win32-x64@0.10.1': + '@oxlint/binding-freebsd-x64@1.55.0': optional: true - '@oxlint/darwin-arm64@1.38.0': + '@oxlint/binding-linux-arm-gnueabihf@1.55.0': optional: true - '@oxlint/darwin-x64@1.38.0': + '@oxlint/binding-linux-arm-musleabihf@1.55.0': optional: true - '@oxlint/linux-arm64-gnu@1.38.0': + '@oxlint/binding-linux-arm64-gnu@1.55.0': optional: true - '@oxlint/linux-arm64-musl@1.38.0': + '@oxlint/binding-linux-arm64-musl@1.55.0': optional: true - '@oxlint/linux-x64-gnu@1.38.0': + '@oxlint/binding-linux-ppc64-gnu@1.55.0': optional: true - '@oxlint/linux-x64-musl@1.38.0': + '@oxlint/binding-linux-riscv64-gnu@1.55.0': optional: true - '@oxlint/win32-arm64@1.38.0': + '@oxlint/binding-linux-riscv64-musl@1.55.0': optional: true - '@oxlint/win32-x64@1.38.0': + '@oxlint/binding-linux-s390x-gnu@1.55.0': + optional: true + + '@oxlint/binding-linux-x64-gnu@1.55.0': + optional: true + + '@oxlint/binding-linux-x64-musl@1.55.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.55.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.55.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.55.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.55.0': optional: true '@types/node@25.0.3': dependencies: undici-types: 7.16.0 - ansi-escapes@7.2.0: + ansi-escapes@7.3.0: dependencies: environment: 1.1.0 @@ -475,14 +759,14 @@ snapshots: dependencies: restore-cursor: 5.1.0 - cli-truncate@5.1.1: + cli-truncate@5.2.0: dependencies: - slice-ansi: 7.1.2 - string-width: 8.1.0 + slice-ansi: 8.0.0 + string-width: 8.2.0 colorette@2.0.20: {} - commander@14.0.2: {} + commander@14.0.3: {} cross-env@10.1.0: dependencies: @@ -499,49 +783,48 @@ snapshots: environment@1.1.0: {} - eventemitter3@5.0.1: {} + eventemitter3@5.0.4: {} fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - get-east-asian-width@1.4.0: {} + get-east-asian-width@1.5.0: {} husky@9.1.7: {} is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.4.0 + get-east-asian-width: 1.5.0 is-number@7.0.0: {} isexe@2.0.0: {} - lint-staged@16.2.7: + lint-staged@16.3.3: dependencies: - commander: 14.0.2 + commander: 14.0.3 listr2: 9.0.5 micromatch: 4.0.8 - nano-spawn: 2.0.0 - pidtree: 0.6.0 string-argv: 0.3.2 + tinyexec: 1.0.2 yaml: 2.8.2 listr2@9.0.5: dependencies: - cli-truncate: 5.1.1 + cli-truncate: 5.2.0 colorette: 2.0.20 - eventemitter3: 5.0.1 + eventemitter3: 5.0.4 log-update: 6.1.0 rfdc: 1.4.1 wrap-ansi: 9.0.2 log-update@6.1.0: dependencies: - ansi-escapes: 7.2.0 + ansi-escapes: 7.3.0 cli-cursor: 5.0.0 slice-ansi: 7.1.2 - strip-ansi: 7.1.2 + strip-ansi: 7.2.0 wrap-ansi: 9.0.2 micromatch@4.0.8: @@ -551,8 +834,6 @@ snapshots: mimic-function@5.0.1: {} - nano-spawn@2.0.0: {} - onetime@7.0.0: dependencies: mimic-function: 5.0.1 @@ -570,33 +851,66 @@ snapshots: '@oxfmt/win32-arm64': 0.26.0 '@oxfmt/win32-x64': 0.26.0 - oxlint-tsgolint@0.10.1: + oxfmt@0.40.0: + dependencies: + tinypool: 2.1.0 optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.10.1 - '@oxlint-tsgolint/darwin-x64': 0.10.1 - '@oxlint-tsgolint/linux-arm64': 0.10.1 - '@oxlint-tsgolint/linux-x64': 0.10.1 - '@oxlint-tsgolint/win32-arm64': 0.10.1 - '@oxlint-tsgolint/win32-x64': 0.10.1 - - oxlint@1.38.0(oxlint-tsgolint@0.10.1): + '@oxfmt/binding-android-arm-eabi': 0.40.0 + '@oxfmt/binding-android-arm64': 0.40.0 + '@oxfmt/binding-darwin-arm64': 0.40.0 + '@oxfmt/binding-darwin-x64': 0.40.0 + '@oxfmt/binding-freebsd-x64': 0.40.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.40.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.40.0 + '@oxfmt/binding-linux-arm64-gnu': 0.40.0 + '@oxfmt/binding-linux-arm64-musl': 0.40.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.40.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.40.0 + '@oxfmt/binding-linux-riscv64-musl': 0.40.0 + '@oxfmt/binding-linux-s390x-gnu': 0.40.0 + '@oxfmt/binding-linux-x64-gnu': 0.40.0 + '@oxfmt/binding-linux-x64-musl': 0.40.0 + '@oxfmt/binding-openharmony-arm64': 0.40.0 + '@oxfmt/binding-win32-arm64-msvc': 0.40.0 + '@oxfmt/binding-win32-ia32-msvc': 0.40.0 + '@oxfmt/binding-win32-x64-msvc': 0.40.0 + + oxlint-tsgolint@0.16.0: optionalDependencies: - '@oxlint/darwin-arm64': 1.38.0 - '@oxlint/darwin-x64': 1.38.0 - '@oxlint/linux-arm64-gnu': 1.38.0 - '@oxlint/linux-arm64-musl': 1.38.0 - '@oxlint/linux-x64-gnu': 1.38.0 - '@oxlint/linux-x64-musl': 1.38.0 - '@oxlint/win32-arm64': 1.38.0 - '@oxlint/win32-x64': 1.38.0 - oxlint-tsgolint: 0.10.1 + '@oxlint-tsgolint/darwin-arm64': 0.16.0 + '@oxlint-tsgolint/darwin-x64': 0.16.0 + '@oxlint-tsgolint/linux-arm64': 0.16.0 + '@oxlint-tsgolint/linux-x64': 0.16.0 + '@oxlint-tsgolint/win32-arm64': 0.16.0 + '@oxlint-tsgolint/win32-x64': 0.16.0 + + oxlint@1.55.0(oxlint-tsgolint@0.16.0): + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.55.0 + '@oxlint/binding-android-arm64': 1.55.0 + '@oxlint/binding-darwin-arm64': 1.55.0 + '@oxlint/binding-darwin-x64': 1.55.0 + '@oxlint/binding-freebsd-x64': 1.55.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.55.0 + '@oxlint/binding-linux-arm-musleabihf': 1.55.0 + '@oxlint/binding-linux-arm64-gnu': 1.55.0 + '@oxlint/binding-linux-arm64-musl': 1.55.0 + '@oxlint/binding-linux-ppc64-gnu': 1.55.0 + '@oxlint/binding-linux-riscv64-gnu': 1.55.0 + '@oxlint/binding-linux-riscv64-musl': 1.55.0 + '@oxlint/binding-linux-s390x-gnu': 1.55.0 + '@oxlint/binding-linux-x64-gnu': 1.55.0 + '@oxlint/binding-linux-x64-musl': 1.55.0 + '@oxlint/binding-openharmony-arm64': 1.55.0 + '@oxlint/binding-win32-arm64-msvc': 1.55.0 + '@oxlint/binding-win32-ia32-msvc': 1.55.0 + '@oxlint/binding-win32-x64-msvc': 1.55.0 + oxlint-tsgolint: 0.16.0 path-key@3.1.1: {} picomatch@2.3.1: {} - pidtree@0.6.0: {} - restore-cursor@5.1.0: dependencies: onetime: 7.0.0 @@ -617,25 +931,34 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 + slice-ansi@8.0.0: + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 5.1.0 + string-argv@0.3.2: {} string-width@7.2.0: dependencies: emoji-regex: 10.6.0 - get-east-asian-width: 1.4.0 - strip-ansi: 7.1.2 + get-east-asian-width: 1.5.0 + strip-ansi: 7.2.0 - string-width@8.1.0: + string-width@8.2.0: dependencies: - get-east-asian-width: 1.4.0 - strip-ansi: 7.1.2 + get-east-asian-width: 1.5.0 + strip-ansi: 7.2.0 - strip-ansi@7.1.2: + strip-ansi@7.2.0: dependencies: ansi-regex: 6.2.2 + tinyexec@1.0.2: {} + tinypool@2.0.0: {} + tinypool@2.1.0: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -650,6 +973,6 @@ snapshots: dependencies: ansi-styles: 6.2.3 string-width: 7.2.0 - strip-ansi: 7.1.2 + strip-ansi: 7.2.0 yaml@2.8.2: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1ff92ca3..01d6bec2 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -5,12 +5,9 @@ packages: catalog: '@types/node': 25.0.3 husky: ^9.1.7 - lint-staged: ^16.2.6 - oxlint: ^1.34.0 - oxlint-tsgolint: ^0.10.0 + lint-staged: ^16.3.3 + oxfmt: 0.40.0 + oxlint: ^1.55.0 + oxlint-tsgolint: ^0.16.0 catalogMode: prefer - -minimumReleaseAge: 1440 - -minimumReleaseAgeExclude: null