diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/index.html b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/index.html
new file mode 100644
index 000000000..20fc85a43
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/index.html
@@ -0,0 +1,9 @@
+
+
+
+ vp-run-vite-cache
+
+
+
+
+
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/package.json b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/package.json
new file mode 100644
index 000000000..e4e3497f2
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "vite-build-cache-fixture",
+ "private": true,
+ "type": "module"
+}
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots.toml
new file mode 100644
index 000000000..e6aecfb07
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots.toml
@@ -0,0 +1,144 @@
+[[e2e]]
+name = "vite_build_caches_and_restores_outputs"
+comment = """
+`vt run --cache build` must produce a cache hit on the second run without any manual input/output configuration. Vite reports `ignoreInput(outDir)` + `ignoreInput/Output(cacheDir)` via `@voidzero-dev/vite-task-client`, so fspy-detected reads of `dist/` and writes to `node_modules/.vite/` don't poison the cache.
+"""
+ignore = true
+steps = [
+ { argv = [
+ "vt",
+ "run",
+ "--cache",
+ "build",
+ ], comment = "first run: cache miss, emits dist/" },
+ { argv = [
+ "vtt",
+ "stat-file",
+ "dist/assets/main.js",
+ ], comment = "existence check — content would drift across Vite versions" },
+ { argv = [
+ "vtt",
+ "rm",
+ "dist/assets/main.js",
+ ], comment = "remove the artefact so the cache-hit restore is observable" },
+ { argv = [
+ "vt",
+ "run",
+ "--cache",
+ "build",
+ ], comment = "cache hit: outputs restored without manual config" },
+ { argv = [
+ "vtt",
+ "stat-file",
+ "dist/assets/main.js",
+ ], comment = "restored from the cache archive" },
+]
+
+[[e2e]]
+name = "vite_prefix_env_change_invalidates_cache"
+comment = """
+`VITE_MODE` is picked up by Vite's patched `loadEnv`, which asks the runner for every `VITE_*` env via `getEnvs(pattern, { tracked: true })`. Flipping its value between runs must invalidate the cache AND change the build output — Vite's `define` plugin substitutes `import.meta.env.VITE_MODE` at build time, so dead-code elimination leaves only the branch matching the value.
+"""
+ignore = true
+steps = [
+ { argv = [
+ "vt",
+ "run",
+ "--cache",
+ "build",
+ ], envs = [
+ [
+ "VITE_MODE",
+ "production",
+ ],
+ ], comment = "first run: production build" },
+ { argv = [
+ "vtt",
+ "grep-file",
+ "dist/assets/main.js",
+ "BUILD_MODE_PROD",
+ ], comment = "production build: PROD marker survived DCE" },
+ { argv = [
+ "vtt",
+ "grep-file",
+ "dist/assets/main.js",
+ "BUILD_MODE_DEV",
+ ], comment = "dev branch is gone" },
+ { argv = [
+ "vt",
+ "run",
+ "--cache",
+ "build",
+ ], envs = [
+ [
+ "VITE_MODE",
+ "production",
+ ],
+ ], comment = "cache hit: VITE_MODE unchanged" },
+ { argv = [
+ "vt",
+ "run",
+ "--cache",
+ "build",
+ ], envs = [
+ [
+ "VITE_MODE",
+ "development",
+ ],
+ ], comment = "cache miss: tracked env glob `VITE_*` — VITE_MODE value changed" },
+ { argv = [
+ "vtt",
+ "grep-file",
+ "dist/assets/main.js",
+ "BUILD_MODE_PROD",
+ ], comment = "PROD marker gone after the dev rebuild" },
+ { argv = [
+ "vtt",
+ "grep-file",
+ "dist/assets/main.js",
+ "BUILD_MODE_DEV",
+ ], comment = "DEV marker now in the bundle" },
+]
+
+[[e2e]]
+name = "vite_node_env_change_invalidates_cache"
+comment = """
+`NODE_ENV` enters the build's cache fingerprint via Vite's `getEnv('NODE_ENV')` call in `resolveConfig`. Same value → cache hit; different value → cache miss with `tracked env 'NODE_ENV' changed`.
+"""
+ignore = true
+steps = [
+ { argv = [
+ "vt",
+ "run",
+ "--cache",
+ "build",
+ ], envs = [
+ [
+ "NODE_ENV",
+ "production",
+ ],
+ ], comment = "first run: NODE_ENV=production" },
+ { argv = [
+ "vt",
+ "run",
+ "--cache",
+ "build",
+ ], envs = [
+ [
+ "NODE_ENV",
+ "production",
+ ],
+ ], comment = "cache hit: NODE_ENV unchanged" },
+ { argv = [
+ "vt",
+ "run",
+ "--cache",
+ "build",
+ ], envs = [
+ [
+ "NODE_ENV",
+ "development",
+ ],
+ ], comment = "cache miss: tracked env 'NODE_ENV' changed" },
+]
+
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots/vite_build_caches_and_restores_outputs.md b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots/vite_build_caches_and_restores_outputs.md
new file mode 100644
index 000000000..f18c47adb
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots/vite_build_caches_and_restores_outputs.md
@@ -0,0 +1,45 @@
+# vite_build_caches_and_restores_outputs
+
+`vt run --cache build` must produce a cache hit on the second run without any manual input/output configuration. Vite reports `ignoreInput(outDir)` + `ignoreInput/Output(cacheDir)` via `@voidzero-dev/vite-task-client`, so fspy-detected reads of `dist/` and writes to `node_modules/.vite/` don't poison the cache.
+
+## `vt run --cache build`
+
+first run: cache miss, emits dist/
+
+```
+$ vite build
+```
+
+## `vtt stat-file dist/assets/main.js`
+
+existence check — content would drift across Vite versions
+
+```
+dist/assets/main.js: exists
+```
+
+## `vtt rm dist/assets/main.js`
+
+remove the artefact so the cache-hit restore is observable
+
+```
+```
+
+## `vt run --cache build`
+
+cache hit: outputs restored without manual config
+
+```
+$ vite build ◉ cache hit, replaying
+
+---
+vt run: cache hit.
+```
+
+## `vtt stat-file dist/assets/main.js`
+
+restored from the cache archive
+
+```
+dist/assets/main.js: exists
+```
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots/vite_node_env_change_invalidates_cache.md b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots/vite_node_env_change_invalidates_cache.md
new file mode 100644
index 000000000..b22f26b5d
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots/vite_node_env_change_invalidates_cache.md
@@ -0,0 +1,30 @@
+# vite_node_env_change_invalidates_cache
+
+`NODE_ENV` enters the build's cache fingerprint via Vite's `getEnv('NODE_ENV')` call in `resolveConfig`. Same value → cache hit; different value → cache miss with `tracked env 'NODE_ENV' changed`.
+
+## `NODE_ENV=production vt run --cache build`
+
+first run: NODE_ENV=production
+
+```
+$ vite build
+```
+
+## `NODE_ENV=production vt run --cache build`
+
+cache hit: NODE_ENV unchanged
+
+```
+$ vite build ◉ cache hit, replaying
+
+---
+vt run: cache hit.
+```
+
+## `NODE_ENV=development vt run --cache build`
+
+cache miss: tracked env 'NODE_ENV' changed
+
+```
+$ vite build ○ cache miss: tracked env 'NODE_ENV' changed, executing
+```
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots/vite_prefix_env_change_invalidates_cache.md b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots/vite_prefix_env_change_invalidates_cache.md
new file mode 100644
index 000000000..a341d5a23
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/snapshots/vite_prefix_env_change_invalidates_cache.md
@@ -0,0 +1,62 @@
+# vite_prefix_env_change_invalidates_cache
+
+`VITE_MODE` is picked up by Vite's patched `loadEnv`, which asks the runner for every `VITE_*` env via `getEnvs(pattern, { tracked: true })`. Flipping its value between runs must invalidate the cache AND change the build output — Vite's `define` plugin substitutes `import.meta.env.VITE_MODE` at build time, so dead-code elimination leaves only the branch matching the value.
+
+## `VITE_MODE=production vt run --cache build`
+
+first run: production build
+
+```
+$ vite build
+```
+
+## `vtt grep-file dist/assets/main.js BUILD_MODE_PROD`
+
+production build: PROD marker survived DCE
+
+```
+dist/assets/main.js: found "BUILD_MODE_PROD"
+```
+
+## `vtt grep-file dist/assets/main.js BUILD_MODE_DEV`
+
+dev branch is gone
+
+```
+dist/assets/main.js: missing "BUILD_MODE_DEV"
+```
+
+## `VITE_MODE=production vt run --cache build`
+
+cache hit: VITE_MODE unchanged
+
+```
+$ vite build ◉ cache hit, replaying
+
+---
+vt run: cache hit.
+```
+
+## `VITE_MODE=development vt run --cache build`
+
+cache miss: tracked env glob `VITE_*` — VITE_MODE value changed
+
+```
+$ vite build ○ cache miss: tracked env glob 'VITE_*' changed, executing
+```
+
+## `vtt grep-file dist/assets/main.js BUILD_MODE_PROD`
+
+PROD marker gone after the dev rebuild
+
+```
+dist/assets/main.js: missing "BUILD_MODE_PROD"
+```
+
+## `vtt grep-file dist/assets/main.js BUILD_MODE_DEV`
+
+DEV marker now in the bundle
+
+```
+dist/assets/main.js: found "BUILD_MODE_DEV"
+```
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/src/main.js b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/src/main.js
new file mode 100644
index 000000000..541b3d7c8
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/src/main.js
@@ -0,0 +1,9 @@
+// `import.meta.env.VITE_MODE` is replaced at build time from the value vite
+// picks up for keys matching `envPrefix` (`VITE_` by default). The markers
+// let the e2e test assert that flipping VITE_MODE actually changed what was
+// built and that glob-tracking invalidates the cache.
+if (import.meta.env.VITE_MODE === 'production') {
+ document.body.append('BUILD_MODE_PROD');
+} else {
+ document.body.append('BUILD_MODE_DEV');
+}
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/vite-task.json b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/vite-task.json
new file mode 100644
index 000000000..81571aeaf
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/vite-task.json
@@ -0,0 +1,11 @@
+{
+ "tasks": {
+ "build": {
+ "command": "vite build",
+ // No `"env": [...]` — vite's patched `loadEnv` asks the runner for
+ // every `VITE_*` env via `getEnvs`, so the glob + match-set are
+ // fingerprinted automatically.
+ "cache": true
+ }
+ }
+}
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/vite.config.js b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/vite.config.js
new file mode 100644
index 000000000..cc83efec1
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_build_cache/vite.config.js
@@ -0,0 +1,15 @@
+import { defineConfig } from 'vite';
+
+export default defineConfig({
+ logLevel: 'silent',
+ build: {
+ rollupOptions: {
+ output: {
+ // Stable filenames make cache behaviour deterministic across runs.
+ entryFileNames: 'assets/main.js',
+ chunkFileNames: 'assets/chunk.js',
+ assetFileNames: 'assets/[name][extname]',
+ },
+ },
+ },
+});
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/dev.mjs b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/dev.mjs
new file mode 100644
index 000000000..3cf79b82a
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/dev.mjs
@@ -0,0 +1,14 @@
+// Programmatic Vite dev server bring-up: middleware mode skips the HTTP
+// listen entirely (Windows runners refuse the 127.0.0.1 bind with
+// `listen UNKNOWN`), but `_createServer` still calls `disableCache()`
+// via `@voidzero-dev/vite-task-client` on its first line — so even
+// though this process exits 0 the runner is told not to store the run
+// and the next invocation must miss.
+import { createServer } from 'vite';
+
+const server = await createServer({
+ configFile: false,
+ logLevel: 'silent',
+ server: { middlewareMode: true },
+});
+await server.close();
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/package.json b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/package.json
new file mode 100644
index 000000000..23ec17d56
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "vite-dev-disable-cache-fixture",
+ "private": true,
+ "type": "module"
+}
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/snapshots.toml b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/snapshots.toml
new file mode 100644
index 000000000..efd50410e
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/snapshots.toml
@@ -0,0 +1,20 @@
+[[e2e]]
+name = "vite_dev_disables_cache"
+comment = """
+`vt run --cache dev` brings up a Vite dev server programmatically on an ephemeral port and closes it immediately. Vite's `_createServer` calls `disableCache()` via `@voidzero-dev/vite-task-client`, so this run is never stored — the next invocation re-executes (cache miss / NotFound).
+"""
+ignore = true
+steps = [
+ { argv = [
+ "vt",
+ "run",
+ "--cache",
+ "dev",
+ ], comment = "first run — Vite dev start calls disableCache" },
+ { argv = [
+ "vt",
+ "run",
+ "--cache",
+ "dev",
+ ], comment = "cache miss (NotFound) because the first run was not stored" },
+]
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/snapshots/vite_dev_disables_cache.md b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/snapshots/vite_dev_disables_cache.md
new file mode 100644
index 000000000..9f5e07491
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/snapshots/vite_dev_disables_cache.md
@@ -0,0 +1,19 @@
+# vite_dev_disables_cache
+
+`vt run --cache dev` brings up a Vite dev server programmatically on an ephemeral port and closes it immediately. Vite's `_createServer` calls `disableCache()` via `@voidzero-dev/vite-task-client`, so this run is never stored — the next invocation re-executes (cache miss / NotFound).
+
+## `vt run --cache dev`
+
+first run — Vite dev start calls disableCache
+
+```
+$ node dev.mjs
+```
+
+## `vt run --cache dev`
+
+cache miss (NotFound) because the first run was not stored
+
+```
+$ node dev.mjs
+```
diff --git a/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/vite-task.json b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/vite-task.json
new file mode 100644
index 000000000..1b8982a59
--- /dev/null
+++ b/crates/vite_task_bin/tests/e2e_snapshots/fixtures/vite_dev_disable_cache/vite-task.json
@@ -0,0 +1,8 @@
+{
+ "tasks": {
+ "dev": {
+ "command": "node dev.mjs",
+ "cache": true
+ }
+ }
+}
diff --git a/package.json b/package.json
index 4da38727a..eb8caa0ec 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,6 @@
"license": "MIT",
"type": "module",
"scripts": {
- "prepare": "husky",
"build-vite-task-client-types": "tsc -p packages/vite-task-client/tsconfig.json"
},
"devDependencies": {
@@ -25,5 +24,5 @@
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
- "packageManager": "pnpm@11.1.2"
+ "packageManager": "pnpm@10.33.4"
}
diff --git a/packages/tools/package.json b/packages/tools/package.json
index 9ffcfdfac..4698dc5bb 100644
--- a/packages/tools/package.json
+++ b/packages/tools/package.json
@@ -6,6 +6,7 @@
"cross-env": "^10.1.0",
"oxfmt": "0.42.0",
"oxlint": "catalog:",
- "oxlint-tsgolint": "catalog:"
+ "oxlint-tsgolint": "catalog:",
+ "vite": "catalog:"
}
}
diff --git a/playground/README.md b/playground/README.md
index 863dce49b..fee21627d 100644
--- a/playground/README.md
+++ b/playground/README.md
@@ -7,8 +7,8 @@ A workspace for manually testing `cargo run --bin vt run ...`.
```
playground/
├── packages/
-│ ├── app/ → depends on @playground/lib
-│ ├── lib/ → depends on @playground/utils
+│ ├── app/ → depends on lib
+│ ├── lib/ → depends on utils
│ └── utils/ → no dependencies
└── vite-task.json → workspace-level task config
```
@@ -19,10 +19,10 @@ Dependency chain: `app → lib → utils`
Tasks are defined in each package's `vite-task.json` with caching enabled. `dev` is a package.json script (not cached).
-| Name | Type | Packages | Cached | Description |
-| ----------- | ------ | --------------- | ------ | ---------------------------------------------- |
-| `build` | task | app, lib, utils | yes | Prints a build message |
-| `test` | task | app, lib, utils | yes | Prints a test message |
-| `lint` | task | app, lib, utils | yes | Prints a lint message |
-| `typecheck` | task | app, lib | yes | Prints a typecheck message |
-| `dev` | script | app, lib | no | Long-running process (prints every 2s, ctrl-c) |
+| Name | Type | Packages | Cached | Description |
+| ----------- | ------ | --------------- | ------ | ----------------------------------------------------- |
+| `build` | task | app, lib, utils | yes | `vite build` in app; prints a build message elsewhere |
+| `test` | task | app, lib, utils | yes | Prints a test message |
+| `lint` | task | app, lib, utils | yes | Prints a lint message |
+| `typecheck` | task | app, lib | yes | Prints a typecheck message |
+| `dev` | script | app, lib | no | Long-running process (prints every 2s, ctrl-c) |
diff --git a/playground/packages/app/index.html b/playground/packages/app/index.html
new file mode 100644
index 000000000..d4dce07f9
--- /dev/null
+++ b/playground/packages/app/index.html
@@ -0,0 +1,9 @@
+
+
+
+ playground-app
+
+
+
+
+
diff --git a/playground/packages/app/package.json b/playground/packages/app/package.json
index 055ace37f..6f1323384 100644
--- a/playground/packages/app/package.json
+++ b/playground/packages/app/package.json
@@ -1,11 +1,13 @@
{
- "name": "@playground/app",
+ "name": "app",
"version": "0.0.0",
"private": true,
+ "type": "module",
"scripts": {
"dev": "node dev.mjs"
},
"dependencies": {
- "@playground/lib": "workspace:*"
+ "lib": "workspace:*",
+ "vite": "catalog:"
}
}
diff --git a/playground/packages/app/src/index.ts b/playground/packages/app/src/index.ts
index 7db55b497..4169f3ebc 100644
--- a/playground/packages/app/src/index.ts
+++ b/playground/packages/app/src/index.ts
@@ -1,3 +1,13 @@
-import { sum } from '@playground/lib';
+///
-console.log(sum(1, 2, 3));
+import { sum } from 'lib';
+
+// `import.meta.env.VITE_MODE` is substituted at build time from the value
+// vite's patched `loadEnv` fetched via the runner. Dead-code elimination
+// leaves only the branch matching whatever `VITE_MODE=...` was set on the
+// run, so the bundle reflects (and the runner tracks) that env.
+if (import.meta.env.VITE_MODE === 'production') {
+ console.log('PROD build:', sum(1, 2, 3));
+} else {
+ console.log('DEV build:', sum(1, 2, 3));
+}
diff --git a/playground/packages/app/vite-task.json b/playground/packages/app/vite-task.json
index 58a9b2b48..1ad6fee4b 100644
--- a/playground/packages/app/vite-task.json
+++ b/playground/packages/app/vite-task.json
@@ -1,7 +1,8 @@
{
"tasks": {
"build": {
- "command": "node build.mjs"
+ "command": "vite build",
+ "cache": true
},
"test": {
"command": "node test.mjs"
diff --git a/playground/packages/lib/package.json b/playground/packages/lib/package.json
index fddb3aab3..e8b699cbc 100644
--- a/playground/packages/lib/package.json
+++ b/playground/packages/lib/package.json
@@ -1,11 +1,12 @@
{
- "name": "@playground/lib",
+ "name": "lib",
"version": "0.0.0",
"private": true,
+ "main": "./src/index.ts",
"scripts": {
"dev": "node dev.mjs"
},
"dependencies": {
- "@playground/utils": "workspace:*"
+ "utils": "workspace:*"
}
}
diff --git a/playground/packages/lib/src/index.ts b/playground/packages/lib/src/index.ts
index f7fa1e131..8e6da590d 100644
--- a/playground/packages/lib/src/index.ts
+++ b/playground/packages/lib/src/index.ts
@@ -1,4 +1,4 @@
-import { add } from '@playground/utils';
+import { add } from 'utils';
export function sum(...nums: number[]): number {
return nums.reduce((acc, n) => add(acc, n), 0);
diff --git a/playground/packages/utils/package.json b/playground/packages/utils/package.json
index 8036670aa..656f9b115 100644
--- a/playground/packages/utils/package.json
+++ b/playground/packages/utils/package.json
@@ -1,5 +1,6 @@
{
- "name": "@playground/utils",
+ "name": "utils",
"version": "0.0.0",
- "private": true
+ "private": true,
+ "main": "./src/index.ts"
}
diff --git a/playground/pnpm-lock.yaml b/playground/pnpm-lock.yaml
index ef78a0a05..92e9c4342 100644
--- a/playground/pnpm-lock.yaml
+++ b/playground/pnpm-lock.yaml
@@ -4,20 +4,519 @@ settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
+catalogs:
+ default:
+ vite:
+ specifier: https://pkg.pr.new/vite@22453
+ version: 8.0.13
+
importers:
.: {}
packages/app:
dependencies:
- '@playground/lib':
+ lib:
specifier: workspace:*
version: link:../lib
+ vite:
+ specifier: 'catalog:'
+ version: https://pkg.pr.new/vite@22453
packages/lib:
dependencies:
- '@playground/utils':
+ utils:
specifier: workspace:*
version: link:../utils
packages/utils: {}
+
+packages:
+
+ '@emnapi/core@1.10.0':
+ resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==}
+
+ '@emnapi/runtime@1.10.0':
+ resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==}
+
+ '@emnapi/wasi-threads@1.2.1':
+ resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
+
+ '@napi-rs/wasm-runtime@1.1.4':
+ resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==}
+ peerDependencies:
+ '@emnapi/core': ^1.7.1
+ '@emnapi/runtime': ^1.7.1
+
+ '@oxc-project/types@0.130.0':
+ resolution: {integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==}
+
+ '@rolldown/binding-android-arm64@1.0.1':
+ resolution: {integrity: sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6jasAhzSmg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [android]
+
+ '@rolldown/binding-darwin-arm64@1.0.1':
+ resolution: {integrity: sha512-cKnAhWEsV7TPcA/5EAteDp6KcJZBQ2G+BqE7zayMMi7kMvwRsbv7WT9aOnn0WNl4SKEIf43vjS31iUPu80nzXg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rolldown/binding-darwin-x64@1.0.1':
+ resolution: {integrity: sha512-YKrVwQjIRBPo+5G/u03wGjbdy4q7pyzCe93DK9VJ7zkVmeg8LJ7GbgsiHWdR4xSoe4CAXRD7Bcjgbtr64bkXNg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rolldown/binding-freebsd-x64@1.0.1':
+ resolution: {integrity: sha512-z/oBsREo46SsFqBwYtFe0kpJeBijAT48O/WXLI4suiCLBkr03RTtTJMCzSdDd2znlh8VJizL09XVkQgk8IZonw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.1':
+ resolution: {integrity: sha512-ik8q7GM11zxvYxFc2PeDcT6TBvhCQMaUxfph/M5l9sKuTs/Sjg3L+Byw0F7w0ZVLBZmx30P+gG0ECzzN+MFcmQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@rolldown/binding-linux-arm64-gnu@1.0.1':
+ resolution: {integrity: sha512-QoSx2EkyrrdZ6kcyE8stqZ62t0Yra8Fs5ia9lOxJrh6TMQJK7gQKmscdTHf7pOXKREKrVwOtJcQG3qVSfc866A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-arm64-musl@1.0.1':
+ resolution: {integrity: sha512-uwNwFpwKeNiZawfAWBgg0VIztPTV3ihhh1vV334h9ivnNLorxnQMU6Fz8wG1Zb4Qh9LC1/MkcyT3YlDXG3Rsgg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@rolldown/binding-linux-ppc64-gnu@1.0.1':
+ resolution: {integrity: sha512-zY1bul7OWr7DFBiJ++wofXvnr8B45ce3QsQUhKrIhXsygAh7bTkwyeM1bi1a2g5C/yC/N8TZyGDEoMfm/l9mpg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-s390x-gnu@1.0.1':
+ resolution: {integrity: sha512-0frlsT/f4Ft6I7SMESTKnF3cZsdicQn1dCMkF/jT9wDLE+gGoiQfv1nmT9e+s7s/fekvvy6tZM2jHvI2tkbJDQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-x64-gnu@1.0.1':
+ resolution: {integrity: sha512-XABVmGp9Tg0WspTVvwduTc4fpqy6JnAUrSQe6OuyqD/03nI7r0O9OWUkMIwFrjKAIqolvqoA4ZrJppgwE0Gxmw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-x64-musl@1.0.1':
+ resolution: {integrity: sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO86SEBULUQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@rolldown/binding-openharmony-arm64@1.0.1':
+ resolution: {integrity: sha512-/Mh0Zhq3OP7fVs0kcQHZP6lZEthMGTaSf8UBQYSFEZDWGXXlEC+nJ6EqenaK2t4LBXMe3A+K/G2BVXXdtOr4PQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@rolldown/binding-wasm32-wasi@1.0.1':
+ resolution: {integrity: sha512-+1xc9X45l8ufsBAm6Gjvx2qDRIY9lTVt0cgWNcJ+1gdhXvkbxePA60yRTwSTuXL09CMhyJmjpV7E3NoyxbqFQQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [wasm32]
+
+ '@rolldown/binding-win32-arm64-msvc@1.0.1':
+ resolution: {integrity: sha512-1D+UqZdfnuR+Jy1GgMJwi85bD40H21uNmOPRWQhw4oRSuolZ/B5rixZ45DK2KXOTCvmVCecauWgEhbw8bI7tOw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rolldown/binding-win32-x64-msvc@1.0.1':
+ resolution: {integrity: sha512-INAycaWuhlOK3wk4mRHGsdgwYWmd9cChdPdE9bwWmy6rn9VqVNYNFGhOdXrofXUxwHIncSiPNb8tNm8knDVIeQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [win32]
+
+ '@rolldown/pluginutils@1.0.1':
+ resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
+
+ '@tybys/wasm-util@0.10.1':
+ resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
+
+ '@voidzero-dev/vite-task-client@https://codeload.github.com/voidzero-dev/vite-task/tar.gz/1d49f00186a4c935187c79507f3364ee0358c9f3#path:/packages/vite-task-client':
+ resolution: {path: /packages/vite-task-client, tarball: https://codeload.github.com/voidzero-dev/vite-task/tar.gz/1d49f00186a4c935187c79507f3364ee0358c9f3}
+ version: 0.0.0
+
+ detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
+
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ lightningcss-android-arm64@1.32.0:
+ resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ lightningcss-darwin-arm64@1.32.0:
+ resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.32.0:
+ resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.32.0:
+ resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.32.0:
+ resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-arm64-musl@1.32.0:
+ resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-linux-x64-gnu@1.32.0:
+ resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-x64-musl@1.32.0:
+ resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-win32-arm64-msvc@1.32.0:
+ resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.32.0:
+ resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.32.0:
+ resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
+ engines: {node: '>= 12.0.0'}
+
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@4.0.4:
+ resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
+ engines: {node: '>=12'}
+
+ postcss@8.5.14:
+ resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ rolldown@1.0.1:
+ resolution: {integrity: sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ tinyglobby@0.2.16:
+ resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==}
+ engines: {node: '>=12.0.0'}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ vite@https://pkg.pr.new/vite@22453:
+ resolution: {tarball: https://pkg.pr.new/vite@22453}
+ version: 8.0.13
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^20.19.0 || >=22.12.0
+ '@vitejs/devtools': ^0.1.18
+ esbuild: ^0.27.0 || ^0.28.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ '@vitejs/devtools':
+ optional: true
+ esbuild:
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+snapshots:
+
+ '@emnapi/core@1.10.0':
+ dependencies:
+ '@emnapi/wasi-threads': 1.2.1
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@1.10.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/wasi-threads@1.2.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
+ dependencies:
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@tybys/wasm-util': 0.10.1
+ optional: true
+
+ '@oxc-project/types@0.130.0': {}
+
+ '@rolldown/binding-android-arm64@1.0.1':
+ optional: true
+
+ '@rolldown/binding-darwin-arm64@1.0.1':
+ optional: true
+
+ '@rolldown/binding-darwin-x64@1.0.1':
+ optional: true
+
+ '@rolldown/binding-freebsd-x64@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-arm64-gnu@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-arm64-musl@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-ppc64-gnu@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-s390x-gnu@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-x64-gnu@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-x64-musl@1.0.1':
+ optional: true
+
+ '@rolldown/binding-openharmony-arm64@1.0.1':
+ optional: true
+
+ '@rolldown/binding-wasm32-wasi@1.0.1':
+ dependencies:
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
+ optional: true
+
+ '@rolldown/binding-win32-arm64-msvc@1.0.1':
+ optional: true
+
+ '@rolldown/binding-win32-x64-msvc@1.0.1':
+ optional: true
+
+ '@rolldown/pluginutils@1.0.1': {}
+
+ '@tybys/wasm-util@0.10.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@voidzero-dev/vite-task-client@https://codeload.github.com/voidzero-dev/vite-task/tar.gz/1d49f00186a4c935187c79507f3364ee0358c9f3#path:/packages/vite-task-client': {}
+
+ detect-libc@2.1.2: {}
+
+ fdir@6.5.0(picomatch@4.0.4):
+ optionalDependencies:
+ picomatch: 4.0.4
+
+ fsevents@2.3.3:
+ optional: true
+
+ lightningcss-android-arm64@1.32.0:
+ optional: true
+
+ lightningcss-darwin-arm64@1.32.0:
+ optional: true
+
+ lightningcss-darwin-x64@1.32.0:
+ optional: true
+
+ lightningcss-freebsd-x64@1.32.0:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.32.0:
+ optional: true
+
+ lightningcss-linux-arm64-musl@1.32.0:
+ optional: true
+
+ lightningcss-linux-x64-gnu@1.32.0:
+ optional: true
+
+ lightningcss-linux-x64-musl@1.32.0:
+ optional: true
+
+ lightningcss-win32-arm64-msvc@1.32.0:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.32.0:
+ optional: true
+
+ lightningcss@1.32.0:
+ dependencies:
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.32.0
+ lightningcss-darwin-arm64: 1.32.0
+ lightningcss-darwin-x64: 1.32.0
+ lightningcss-freebsd-x64: 1.32.0
+ lightningcss-linux-arm-gnueabihf: 1.32.0
+ lightningcss-linux-arm64-gnu: 1.32.0
+ lightningcss-linux-arm64-musl: 1.32.0
+ lightningcss-linux-x64-gnu: 1.32.0
+ lightningcss-linux-x64-musl: 1.32.0
+ lightningcss-win32-arm64-msvc: 1.32.0
+ lightningcss-win32-x64-msvc: 1.32.0
+
+ nanoid@3.3.11: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@4.0.4: {}
+
+ postcss@8.5.14:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ rolldown@1.0.1:
+ dependencies:
+ '@oxc-project/types': 0.130.0
+ '@rolldown/pluginutils': 1.0.1
+ optionalDependencies:
+ '@rolldown/binding-android-arm64': 1.0.1
+ '@rolldown/binding-darwin-arm64': 1.0.1
+ '@rolldown/binding-darwin-x64': 1.0.1
+ '@rolldown/binding-freebsd-x64': 1.0.1
+ '@rolldown/binding-linux-arm-gnueabihf': 1.0.1
+ '@rolldown/binding-linux-arm64-gnu': 1.0.1
+ '@rolldown/binding-linux-arm64-musl': 1.0.1
+ '@rolldown/binding-linux-ppc64-gnu': 1.0.1
+ '@rolldown/binding-linux-s390x-gnu': 1.0.1
+ '@rolldown/binding-linux-x64-gnu': 1.0.1
+ '@rolldown/binding-linux-x64-musl': 1.0.1
+ '@rolldown/binding-openharmony-arm64': 1.0.1
+ '@rolldown/binding-wasm32-wasi': 1.0.1
+ '@rolldown/binding-win32-arm64-msvc': 1.0.1
+ '@rolldown/binding-win32-x64-msvc': 1.0.1
+
+ source-map-js@1.2.1: {}
+
+ tinyglobby@0.2.16:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.4)
+ picomatch: 4.0.4
+
+ tslib@2.8.1:
+ optional: true
+
+ vite@https://pkg.pr.new/vite@22453:
+ dependencies:
+ '@voidzero-dev/vite-task-client': https://codeload.github.com/voidzero-dev/vite-task/tar.gz/1d49f00186a4c935187c79507f3364ee0358c9f3#path:/packages/vite-task-client
+ lightningcss: 1.32.0
+ picomatch: 4.0.4
+ postcss: 8.5.14
+ rolldown: 1.0.1
+ tinyglobby: 0.2.16
+ optionalDependencies:
+ fsevents: 2.3.3
diff --git a/playground/pnpm-workspace.yaml b/playground/pnpm-workspace.yaml
index 924b55f42..ae2e53960 100644
--- a/playground/pnpm-workspace.yaml
+++ b/playground/pnpm-workspace.yaml
@@ -1,2 +1,7 @@
packages:
- packages/*
+
+catalog:
+ # Track the vite PR #22453 build until @voidzero-dev/vite-task-client is
+ # published to npm and the integration ships in a real vite release.
+ vite: https://pkg.pr.new/vite@22453
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 217045f9b..391a02b76 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -30,6 +30,9 @@ catalogs:
typescript:
specifier: ^6.0.3
version: 6.0.3
+ vite:
+ specifier: https://pkg.pr.new/vite@23ded7bb458062c028d7a52019133c9cfd51b105
+ version: 8.0.14
importers:
@@ -74,14 +77,35 @@ importers:
oxlint-tsgolint:
specifier: 'catalog:'
version: 0.18.1
+ vite:
+ specifier: 'catalog:'
+ version: https://pkg.pr.new/vite@23ded7bb458062c028d7a52019133c9cfd51b105(@types/node@25.0.3)(yaml@2.9.0)
packages/vite-task-client: {}
packages:
+ '@emnapi/core@1.10.0':
+ resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==}
+
+ '@emnapi/runtime@1.10.0':
+ resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==}
+
+ '@emnapi/wasi-threads@1.2.1':
+ resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
+
'@epic-web/invariant@1.0.0':
resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==}
+ '@napi-rs/wasm-runtime@1.1.4':
+ resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==}
+ peerDependencies:
+ '@emnapi/core': ^1.7.1
+ '@emnapi/runtime': ^1.7.1
+
+ '@oxc-project/types@0.132.0':
+ resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==}
+
'@oxfmt/binding-android-arm-eabi@0.42.0':
resolution: {integrity: sha512-dsqPTYsozeokRjlrt/b4E7Pj0z3eS3Eg74TWQuuKbjY4VttBmA88rB7d50Xrd+TZ986qdXCNeZRPEzZHAe+jow==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -356,12 +380,117 @@ packages:
cpu: [x64]
os: [win32]
+ '@rolldown/binding-android-arm64@1.0.2':
+ resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [android]
+
+ '@rolldown/binding-darwin-arm64@1.0.2':
+ resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rolldown/binding-darwin-x64@1.0.2':
+ resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rolldown/binding-freebsd-x64@1.0.2':
+ resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.2':
+ resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@rolldown/binding-linux-arm64-gnu@1.0.2':
+ resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-arm64-musl@1.0.2':
+ resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@rolldown/binding-linux-ppc64-gnu@1.0.2':
+ resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-s390x-gnu@1.0.2':
+ resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-x64-gnu@1.0.2':
+ resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-x64-musl@1.0.2':
+ resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@rolldown/binding-openharmony-arm64@1.0.2':
+ resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@rolldown/binding-wasm32-wasi@1.0.2':
+ resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [wasm32]
+
+ '@rolldown/binding-win32-arm64-msvc@1.0.2':
+ resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rolldown/binding-win32-x64-msvc@1.0.2':
+ resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [win32]
+
+ '@rolldown/pluginutils@1.0.1':
+ resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
+
'@tsconfig/strictest@2.0.8':
resolution: {integrity: sha512-XnQ7vNz5HRN0r88GYf1J9JJjqtZPiHt2woGJOo2dYqyHGGcd6OLGqSlBB6p1j9mpzja6Oe5BoPqWmeDx6X9rLw==}
+ '@tybys/wasm-util@0.10.2':
+ resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==}
+
'@types/node@25.0.3':
resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
+ '@voidzero-dev/vite-task-client@https://codeload.github.com/voidzero-dev/vite-task/tar.gz/c16342348fa3c9a28074d10a338a88e32f3c7858#path:/packages/vite-task-client':
+ resolution: {gitHosted: true, path: /packages/vite-task-client, tarball: https://codeload.github.com/voidzero-dev/vite-task/tar.gz/c16342348fa3c9a28074d10a338a88e32f3c7858}
+ version: 0.0.0
+
ansi-escapes@7.3.0:
resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==}
engines: {node: '>=18'}
@@ -391,6 +520,10 @@ packages:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
+ detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
+
emoji-regex@10.6.0:
resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
@@ -401,6 +534,20 @@ packages:
eventemitter3@5.0.4:
resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
get-east-asian-width@1.5.0:
resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==}
engines: {node: '>=18'}
@@ -417,6 +564,80 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ lightningcss-android-arm64@1.32.0:
+ resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ lightningcss-darwin-arm64@1.32.0:
+ resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.32.0:
+ resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.32.0:
+ resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.32.0:
+ resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-arm64-musl@1.32.0:
+ resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-linux-x64-gnu@1.32.0:
+ resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-x64-musl@1.32.0:
+ resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-win32-arm64-msvc@1.32.0:
+ resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.32.0:
+ resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.32.0:
+ resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
+ engines: {node: '>= 12.0.0'}
+
lint-staged@17.0.5:
resolution: {integrity: sha512-d12yC+/e8RhBjZtaxZn71FyrgU/P5e+uAPifhCLwdosQZP/zamSdKRWDC30ocVIbzDKiFG1McHc/LUgB92GIPw==}
engines: {node: '>=22.22.1'}
@@ -434,6 +655,11 @@ packages:
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
engines: {node: '>=18'}
+ nanoid@3.3.12:
+ resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
onetime@7.0.0:
resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
engines: {node: '>=18'}
@@ -461,10 +687,17 @@ packages:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
picomatch@4.0.4:
resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
engines: {node: '>=12'}
+ postcss@8.5.15:
+ resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==}
+ engines: {node: ^10 || ^12 || >=14}
+
restore-cursor@5.1.0:
resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
engines: {node: '>=18'}
@@ -472,6 +705,11 @@ packages:
rfdc@1.4.1:
resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
+ rolldown@1.0.2:
+ resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+
shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -492,6 +730,10 @@ packages:
resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==}
engines: {node: '>=20'}
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
string-argv@0.3.2:
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
engines: {node: '>=0.6.19'}
@@ -512,10 +754,17 @@ packages:
resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==}
engines: {node: '>=18'}
+ tinyglobby@0.2.16:
+ resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==}
+ engines: {node: '>=12.0.0'}
+
tinypool@2.1.0:
resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==}
engines: {node: ^20.0.0 || >=22.0.0}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
typescript@6.0.3:
resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==}
engines: {node: '>=14.17'}
@@ -524,6 +773,50 @@ packages:
undici-types@7.16.0:
resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+ vite@https://pkg.pr.new/vite@23ded7bb458062c028d7a52019133c9cfd51b105:
+ resolution: {tarball: https://pkg.pr.new/vite@23ded7bb458062c028d7a52019133c9cfd51b105}
+ version: 8.0.14
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^20.19.0 || >=22.12.0
+ '@vitejs/devtools': ^0.1.18
+ esbuild: ^0.27.0 || ^0.28.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ '@vitejs/devtools':
+ optional: true
+ esbuild:
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
@@ -544,8 +837,33 @@ packages:
snapshots:
+ '@emnapi/core@1.10.0':
+ dependencies:
+ '@emnapi/wasi-threads': 1.2.1
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@1.10.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/wasi-threads@1.2.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
'@epic-web/invariant@1.0.0': {}
+ '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
+ dependencies:
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@tybys/wasm-util': 0.10.2
+ optional: true
+
+ '@oxc-project/types@0.132.0': {}
+
'@oxfmt/binding-android-arm-eabi@0.42.0':
optional: true
@@ -678,12 +996,70 @@ snapshots:
'@oxlint/binding-win32-x64-msvc@1.55.0':
optional: true
+ '@rolldown/binding-android-arm64@1.0.2':
+ optional: true
+
+ '@rolldown/binding-darwin-arm64@1.0.2':
+ optional: true
+
+ '@rolldown/binding-darwin-x64@1.0.2':
+ optional: true
+
+ '@rolldown/binding-freebsd-x64@1.0.2':
+ optional: true
+
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.2':
+ optional: true
+
+ '@rolldown/binding-linux-arm64-gnu@1.0.2':
+ optional: true
+
+ '@rolldown/binding-linux-arm64-musl@1.0.2':
+ optional: true
+
+ '@rolldown/binding-linux-ppc64-gnu@1.0.2':
+ optional: true
+
+ '@rolldown/binding-linux-s390x-gnu@1.0.2':
+ optional: true
+
+ '@rolldown/binding-linux-x64-gnu@1.0.2':
+ optional: true
+
+ '@rolldown/binding-linux-x64-musl@1.0.2':
+ optional: true
+
+ '@rolldown/binding-openharmony-arm64@1.0.2':
+ optional: true
+
+ '@rolldown/binding-wasm32-wasi@1.0.2':
+ dependencies:
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
+ optional: true
+
+ '@rolldown/binding-win32-arm64-msvc@1.0.2':
+ optional: true
+
+ '@rolldown/binding-win32-x64-msvc@1.0.2':
+ optional: true
+
+ '@rolldown/pluginutils@1.0.1': {}
+
'@tsconfig/strictest@2.0.8': {}
+ '@tybys/wasm-util@0.10.2':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
'@types/node@25.0.3':
dependencies:
undici-types: 7.16.0
+ '@voidzero-dev/vite-task-client@https://codeload.github.com/voidzero-dev/vite-task/tar.gz/c16342348fa3c9a28074d10a338a88e32f3c7858#path:/packages/vite-task-client': {}
+
ansi-escapes@7.3.0:
dependencies:
environment: 1.1.0
@@ -712,12 +1088,21 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
+ detect-libc@2.1.2: {}
+
emoji-regex@10.6.0: {}
environment@1.1.0: {}
eventemitter3@5.0.4: {}
+ fdir@6.5.0(picomatch@4.0.4):
+ optionalDependencies:
+ picomatch: 4.0.4
+
+ fsevents@2.3.3:
+ optional: true
+
get-east-asian-width@1.5.0: {}
husky@9.1.7: {}
@@ -728,6 +1113,55 @@ snapshots:
isexe@2.0.0: {}
+ lightningcss-android-arm64@1.32.0:
+ optional: true
+
+ lightningcss-darwin-arm64@1.32.0:
+ optional: true
+
+ lightningcss-darwin-x64@1.32.0:
+ optional: true
+
+ lightningcss-freebsd-x64@1.32.0:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.32.0:
+ optional: true
+
+ lightningcss-linux-arm64-musl@1.32.0:
+ optional: true
+
+ lightningcss-linux-x64-gnu@1.32.0:
+ optional: true
+
+ lightningcss-linux-x64-musl@1.32.0:
+ optional: true
+
+ lightningcss-win32-arm64-msvc@1.32.0:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.32.0:
+ optional: true
+
+ lightningcss@1.32.0:
+ dependencies:
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.32.0
+ lightningcss-darwin-arm64: 1.32.0
+ lightningcss-darwin-x64: 1.32.0
+ lightningcss-freebsd-x64: 1.32.0
+ lightningcss-linux-arm-gnueabihf: 1.32.0
+ lightningcss-linux-arm64-gnu: 1.32.0
+ lightningcss-linux-arm64-musl: 1.32.0
+ lightningcss-linux-x64-gnu: 1.32.0
+ lightningcss-linux-x64-musl: 1.32.0
+ lightningcss-win32-arm64-msvc: 1.32.0
+ lightningcss-win32-x64-msvc: 1.32.0
+
lint-staged@17.0.5:
dependencies:
listr2: 10.2.1
@@ -755,6 +1189,8 @@ snapshots:
mimic-function@5.0.1: {}
+ nanoid@3.3.12: {}
+
onetime@7.0.0:
dependencies:
mimic-function: 5.0.1
@@ -817,8 +1253,16 @@ snapshots:
path-key@3.1.1: {}
+ picocolors@1.1.1: {}
+
picomatch@4.0.4: {}
+ postcss@8.5.15:
+ dependencies:
+ nanoid: 3.3.12
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
restore-cursor@5.1.0:
dependencies:
onetime: 7.0.0
@@ -826,6 +1270,27 @@ snapshots:
rfdc@1.4.1: {}
+ rolldown@1.0.2:
+ dependencies:
+ '@oxc-project/types': 0.132.0
+ '@rolldown/pluginutils': 1.0.1
+ optionalDependencies:
+ '@rolldown/binding-android-arm64': 1.0.2
+ '@rolldown/binding-darwin-arm64': 1.0.2
+ '@rolldown/binding-darwin-x64': 1.0.2
+ '@rolldown/binding-freebsd-x64': 1.0.2
+ '@rolldown/binding-linux-arm-gnueabihf': 1.0.2
+ '@rolldown/binding-linux-arm64-gnu': 1.0.2
+ '@rolldown/binding-linux-arm64-musl': 1.0.2
+ '@rolldown/binding-linux-ppc64-gnu': 1.0.2
+ '@rolldown/binding-linux-s390x-gnu': 1.0.2
+ '@rolldown/binding-linux-x64-gnu': 1.0.2
+ '@rolldown/binding-linux-x64-musl': 1.0.2
+ '@rolldown/binding-openharmony-arm64': 1.0.2
+ '@rolldown/binding-wasm32-wasi': 1.0.2
+ '@rolldown/binding-win32-arm64-msvc': 1.0.2
+ '@rolldown/binding-win32-x64-msvc': 1.0.2
+
shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
@@ -844,6 +1309,8 @@ snapshots:
ansi-styles: 6.2.3
is-fullwidth-code-point: 5.1.0
+ source-map-js@1.2.1: {}
+
string-argv@0.3.2: {}
string-width@7.2.0:
@@ -863,12 +1330,33 @@ snapshots:
tinyexec@1.1.2: {}
+ tinyglobby@0.2.16:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.4)
+ picomatch: 4.0.4
+
tinypool@2.1.0: {}
+ tslib@2.8.1:
+ optional: true
+
typescript@6.0.3: {}
undici-types@7.16.0: {}
+ vite@https://pkg.pr.new/vite@23ded7bb458062c028d7a52019133c9cfd51b105(@types/node@25.0.3)(yaml@2.9.0):
+ dependencies:
+ '@voidzero-dev/vite-task-client': https://codeload.github.com/voidzero-dev/vite-task/tar.gz/c16342348fa3c9a28074d10a338a88e32f3c7858#path:/packages/vite-task-client
+ lightningcss: 1.32.0
+ picomatch: 4.0.4
+ postcss: 8.5.15
+ rolldown: 1.0.2
+ tinyglobby: 0.2.16
+ optionalDependencies:
+ '@types/node': 25.0.3
+ fsevents: 2.3.3
+ yaml: 2.9.0
+
which@2.0.2:
dependencies:
isexe: 2.0.0
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 58304dfc1..91f2bd3e7 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -12,5 +12,14 @@ catalog:
oxlint: ^1.55.0
oxlint-tsgolint: ^0.18.0
typescript: ^6.0.3
+ # Track the vite PR #22453 build until @voidzero-dev/vite-task-client is
+ # published to npm and the integration ships in a real vite release. Pinned
+ # to a commit-specific pkg.pr.new URL so bumps require updating this line.
+ vite: https://pkg.pr.new/vite@23ded7bb458062c028d7a52019133c9cfd51b105
catalogMode: prefer
+
+# Vite's `@voidzero-dev/vite-task-client` dep is a github-spec while the
+# package isn't published to npm. pnpm 11 blocks exotic transitive specs
+# by default; opt out for as long as the integration ships via git.
+blockExoticSubdeps: false