From 6c87955b37d4646015bfc7ab608b7a14be402096 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Wed, 29 Jul 2026 00:43:45 +0200 Subject: [PATCH 01/10] build(kumo): bundle CLI with vp pack --- .changeset/quick-clis-bundle.md | 5 ++ packages/kumo/AGENTS.md | 2 +- packages/kumo/package.json | 2 +- packages/kumo/src/command-line/build-cli.ts | 80 ------------------- .../imports/export-path-validation.test.ts | 33 +++++++- packages/kumo/vite.config.ts | 23 ++++++ 6 files changed, 62 insertions(+), 83 deletions(-) create mode 100644 .changeset/quick-clis-bundle.md delete mode 100644 packages/kumo/src/command-line/build-cli.ts diff --git a/.changeset/quick-clis-bundle.md b/.changeset/quick-clis-bundle.md new file mode 100644 index 0000000000..184db1968d --- /dev/null +++ b/.changeset/quick-clis-bundle.md @@ -0,0 +1,5 @@ +--- +"@cloudflare/kumo": patch +--- + +Build the Kumo CLI as a single Node-targeted tsdown entry instead of emitting redundant command bundles with esbuild. diff --git a/packages/kumo/AGENTS.md b/packages/kumo/AGENTS.md index b26f30758f..8fec0f2cd5 100644 --- a/packages/kumo/AGENTS.md +++ b/packages/kumo/AGENTS.md @@ -50,7 +50,7 @@ kumo/ ### Build System -- **Three-step build**: `vp build` (Vite+/Rolldown) → `css-build.ts` (copies CSS + `@tailwindcss/cli`) → `build-cli.ts` (esbuild) +- **Two-step build**: `css-build.ts` copies CSS with `@tailwindcss/cli`, then `vp pack` builds browser library entries, the Node CLI, and declarations - **Bundled deps**: `@base-ui/react`, `clsx`, `tailwind-merge` are bundled (not external) - **External peers**: `react`, `react-dom`, `@phosphor-icons/react` only - **`"use client"` banner**: Injected on ALL output chunks for RSC compatibility diff --git a/packages/kumo/package.json b/packages/kumo/package.json index 0e25a4dccd..fc27b1fc4f 100644 --- a/packages/kumo/package.json +++ b/packages/kumo/package.json @@ -429,7 +429,7 @@ }, "scripts": { "prepublishOnly": "pnpm run build && pnpm run test:unit", - "build": "pnpm run codegen:registry && tsx scripts/css-build.ts && vp pack && tsx src/command-line/build-cli.ts", + "build": "pnpm run codegen:registry && tsx scripts/css-build.ts && vp pack", "dev": "vp pack --watch", "new:component": "plop component", "clean": "rm -rf dist", diff --git a/packages/kumo/src/command-line/build-cli.ts b/packages/kumo/src/command-line/build-cli.ts deleted file mode 100644 index 23173b2e9c..0000000000 --- a/packages/kumo/src/command-line/build-cli.ts +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env node -/** - * Build script for the Kumo CLI - * Compiles TypeScript CLI files to JavaScript in dist/command-line/ - */ - -import * as esbuild from "esbuild"; -import { mkdirSync, writeFileSync, readFileSync, chmodSync } from "node:fs"; -import { dirname, join } from "node:path"; -import { fileURLToPath } from "node:url"; - -const __dirname = dirname(fileURLToPath(import.meta.url)); -const packageRoot = join(__dirname, "../.."); // src/command-line -> packages/kumo -const distCliDir = join(packageRoot, "dist", "command-line"); - -// Ensure dist/command-line directory exists -mkdirSync(distCliDir, { recursive: true }); -mkdirSync(join(distCliDir, "commands"), { recursive: true }); -mkdirSync(join(distCliDir, "utils"), { recursive: true }); - -// Compile CLI files using esbuild API -const cliFiles = [ - { src: "src/command-line/cli.ts", dest: "dist/command-line/cli.js" }, - { - src: "src/command-line/commands/ls.ts", - dest: "dist/command-line/commands/ls.js", - }, - { - src: "src/command-line/commands/doc.ts", - dest: "dist/command-line/commands/doc.js", - }, - { - src: "src/command-line/commands/init.ts", - dest: "dist/command-line/commands/init.js", - }, - { - src: "src/command-line/commands/blocks.ts", - dest: "dist/command-line/commands/blocks.js", - }, - { - src: "src/command-line/commands/add.ts", - dest: "dist/command-line/commands/add.js", - }, - { - src: "src/command-line/commands/ai.ts", - dest: "dist/command-line/commands/ai.js", - }, -]; - -console.log("Building Kumo CLI..."); - -for (const file of cliFiles) { - const srcPath = join(packageRoot, file.src); - const destPath = join(packageRoot, file.dest); - - // Use esbuild API directly - await esbuild.build({ - entryPoints: [srcPath], - outfile: destPath, - format: "esm", - platform: "node", - target: "node18", - bundle: true, - packages: "external", - }); - - // Read the compiled file and ensure shebang is at the top - let content = readFileSync(destPath, "utf-8"); - if (!content.startsWith("#!/usr/bin/env node")) { - content = "#!/usr/bin/env node\n" + content; - writeFileSync(destPath, content); - } - - // Make the main CLI executable - if (file.dest === "dist/command-line/cli.js") { - chmodSync(destPath, 0o755); - } -} - -console.log("Kumo CLI built successfully!"); diff --git a/packages/kumo/tests/imports/export-path-validation.test.ts b/packages/kumo/tests/imports/export-path-validation.test.ts index 271170be39..b53eb9b4d6 100644 --- a/packages/kumo/tests/imports/export-path-validation.test.ts +++ b/packages/kumo/tests/imports/export-path-validation.test.ts @@ -1,5 +1,6 @@ import { describe, it, expect } from "vite-plus/test"; -import { existsSync, readdirSync } from "fs"; +import { existsSync, readdirSync, statSync } from "fs"; +import { spawnSync } from "child_process"; import { join, dirname } from "path"; import { fileURLToPath } from "url"; import { readFileSync } from "fs"; @@ -241,6 +242,36 @@ describe.skipIf(!isBuilt)("Export Path Validation (Post-Build)", () => { expect(mapFiles).toEqual([]); }); + it("should ship one executable CLI bundle that the package bin can launch", () => { + const packageDir = join(__dirname, "../.."); + const cliDir = join(packageDir, "dist/command-line"); + const cliPath = join(cliDir, "cli.js"); + const binPath = join( + packageDir, + packageJson.bin.kumo.replace(/^\.\//, ""), + ); + + expect(readdirSync(cliDir).sort()).toEqual(["cli.js"]); + expect(readFileSync(cliPath, "utf-8")).toMatch( + /^#!\/usr\/bin\/env node\n/, + ); + + if (process.platform !== "win32") { + expect(statSync(cliPath).mode & 0o111).not.toBe(0); + } + + const result = spawnSync(process.execPath, [binPath, "help"], { + cwd: packageDir, + encoding: "utf-8", + }); + + expect(result.status).toBe(0); + expect(result.stderr).toBe(""); + expect(result.stdout).toContain( + "Kumo CLI - Component registry and blocks distribution", + ); + }); + it("primitive JS files should import from bundled chunks", async () => { const sliderJs = join(__dirname, "../../dist/primitives/slider.js"); const content = readFileSync(sliderJs, "utf-8"); diff --git a/packages/kumo/vite.config.ts b/packages/kumo/vite.config.ts index d0950bac58..79b65b7a04 100644 --- a/packages/kumo/vite.config.ts +++ b/packages/kumo/vite.config.ts @@ -294,6 +294,29 @@ export default defineConfig({ ); }, }, + { + // The package bin wrapper loads this single, self-contained Node bundle. + // All command modules are statically imported by cli.ts, so separate + // command entry points would only duplicate code in the published package. + entry: { + cli: resolve(__dirname, "src/command-line/cli.ts"), + }, + format: "esm", + platform: "node", + target: "node18", + // Clean only the CLI subtree so stale standalone command bundles cannot + // survive an incremental build, without touching library or CSS outputs. + outDir: "dist/command-line", + clean: true, + dts: false, + sourcemap: false, + exports: false, + // Match esbuild's previous `packages: "external"` behavior. + deps: { neverBundle: true }, + outputOptions: { + entryFileNames: "[name].js", + }, + }, { entry: packEntries, format: "esm", From ce2aa3cc498a70b65ba86a480ee446296426fc88 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Wed, 29 Jul 2026 00:58:25 +0200 Subject: [PATCH 02/10] test(kumo): avoid conditional CLI assertion --- .../tests/imports/export-path-validation.test.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/kumo/tests/imports/export-path-validation.test.ts b/packages/kumo/tests/imports/export-path-validation.test.ts index b53eb9b4d6..a924588077 100644 --- a/packages/kumo/tests/imports/export-path-validation.test.ts +++ b/packages/kumo/tests/imports/export-path-validation.test.ts @@ -256,10 +256,6 @@ describe.skipIf(!isBuilt)("Export Path Validation (Post-Build)", () => { /^#!\/usr\/bin\/env node\n/, ); - if (process.platform !== "win32") { - expect(statSync(cliPath).mode & 0o111).not.toBe(0); - } - const result = spawnSync(process.execPath, [binPath, "help"], { cwd: packageDir, encoding: "utf-8", @@ -272,6 +268,15 @@ describe.skipIf(!isBuilt)("Export Path Validation (Post-Build)", () => { ); }); + it.skipIf(process.platform === "win32")( + "should mark the CLI bundle as executable", + () => { + const cliPath = join(__dirname, "../../dist/command-line/cli.js"); + + expect(statSync(cliPath).mode & 0o111).not.toBe(0); + }, + ); + it("primitive JS files should import from bundled chunks", async () => { const sliderJs = join(__dirname, "../../dist/primitives/slider.js"); const content = readFileSync(sliderJs, "utf-8"); From 1f0436868a90907afec5e87b044926c0cbf81ce9 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Wed, 29 Jul 2026 01:02:52 +0200 Subject: [PATCH 03/10] style(kumo): trim CLI build comments --- packages/kumo/vite.config.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/kumo/vite.config.ts b/packages/kumo/vite.config.ts index 79b65b7a04..941f270972 100644 --- a/packages/kumo/vite.config.ts +++ b/packages/kumo/vite.config.ts @@ -295,23 +295,21 @@ export default defineConfig({ }, }, { - // The package bin wrapper loads this single, self-contained Node bundle. - // All command modules are statically imported by cli.ts, so separate - // command entry points would only duplicate code in the published package. + // Extra entries would duplicate commands already imported by cli.ts. entry: { cli: resolve(__dirname, "src/command-line/cli.ts"), }, format: "esm", platform: "node", + // Preserve the existing Node compatibility floor. target: "node18", - // Clean only the CLI subtree so stale standalone command bundles cannot - // survive an incremental build, without touching library or CSS outputs. + // Limit cleaning because other builds share dist. outDir: "dist/command-line", clean: true, dts: false, sourcemap: false, exports: false, - // Match esbuild's previous `packages: "external"` behavior. + // Avoid bundling dependencies supplied by the installed package. deps: { neverBundle: true }, outputOptions: { entryFileNames: "[name].js", From 9650f4d931de1c5ff1d365c9d839f88a44918a0c Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Wed, 29 Jul 2026 01:09:45 +0200 Subject: [PATCH 04/10] docs(kumo): clarify build pipeline --- packages/kumo/AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kumo/AGENTS.md b/packages/kumo/AGENTS.md index 8fec0f2cd5..7d3732befe 100644 --- a/packages/kumo/AGENTS.md +++ b/packages/kumo/AGENTS.md @@ -50,7 +50,7 @@ kumo/ ### Build System -- **Two-step build**: `css-build.ts` copies CSS with `@tailwindcss/cli`, then `vp pack` builds browser library entries, the Node CLI, and declarations +- **Build pipeline**: `codegen:registry` → `css-build.ts` → `vp pack` (browser library, Node CLI, declarations) - **Bundled deps**: `@base-ui/react`, `clsx`, `tailwind-merge` are bundled (not external) - **External peers**: `react`, `react-dom`, `@phosphor-icons/react` only - **`"use client"` banner**: Injected on ALL output chunks for RSC compatibility From 8e8c0851b5e333366fb7b76f4a40a42077df28d4 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Wed, 29 Jul 2026 01:18:22 +0200 Subject: [PATCH 05/10] build(kumo): fold package assets into vp pack --- .changeset/quick-clis-bundle.md | 2 +- packages/kumo/AGENTS.md | 2 +- packages/kumo/package.json | 2 +- packages/kumo/scripts/css-build.ts | 105 ------------------ .../imports/export-path-validation.test.ts | 49 +++++++- packages/kumo/vite.config.ts | 62 ++++++++++- 6 files changed, 111 insertions(+), 111 deletions(-) delete mode 100644 packages/kumo/scripts/css-build.ts diff --git a/.changeset/quick-clis-bundle.md b/.changeset/quick-clis-bundle.md index 184db1968d..87b6e14929 100644 --- a/.changeset/quick-clis-bundle.md +++ b/.changeset/quick-clis-bundle.md @@ -2,4 +2,4 @@ "@cloudflare/kumo": patch --- -Build the Kumo CLI as a single Node-targeted tsdown entry instead of emitting redundant command bundles with esbuild. +Build the Kumo CLI and package assets with tsdown instead of separate esbuild and asset build scripts. diff --git a/packages/kumo/AGENTS.md b/packages/kumo/AGENTS.md index 7d3732befe..ecc1652cda 100644 --- a/packages/kumo/AGENTS.md +++ b/packages/kumo/AGENTS.md @@ -50,7 +50,7 @@ kumo/ ### Build System -- **Build pipeline**: `codegen:registry` → `css-build.ts` → `vp pack` (browser library, Node CLI, declarations) +- **Build pipeline**: `codegen:registry` → `vp pack` (browser library, Node CLI, declarations, package assets) - **Bundled deps**: `@base-ui/react`, `clsx`, `tailwind-merge` are bundled (not external) - **External peers**: `react`, `react-dom`, `@phosphor-icons/react` only - **`"use client"` banner**: Injected on ALL output chunks for RSC compatibility diff --git a/packages/kumo/package.json b/packages/kumo/package.json index fc27b1fc4f..c9976c393e 100644 --- a/packages/kumo/package.json +++ b/packages/kumo/package.json @@ -429,7 +429,7 @@ }, "scripts": { "prepublishOnly": "pnpm run build && pnpm run test:unit", - "build": "pnpm run codegen:registry && tsx scripts/css-build.ts && vp pack", + "build": "pnpm run codegen:registry && vp pack", "dev": "vp pack --watch", "new:component": "plop component", "clean": "rm -rf dist", diff --git a/packages/kumo/scripts/css-build.ts b/packages/kumo/scripts/css-build.ts deleted file mode 100644 index 9b09cdb0ed..0000000000 --- a/packages/kumo/scripts/css-build.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { copyFileSync, mkdirSync, existsSync, readdirSync, statSync } from "fs"; -import { join, dirname } from "path"; -import { fileURLToPath } from "url"; -import { execSync } from "child_process"; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); - -const srcDir = join(__dirname, "../src/styles"); -const distDir = join(__dirname, "../dist/styles"); -const blocksSrcDir = join(__dirname, "../src/blocks"); -// IMPORTANT: Block source files must be in a SEPARATE directory from dist/src/blocks/ -// because dist/src/blocks/ contains .d.ts files generated by vite-plugin-dts. -// If .tsx files are in the same directory, TypeScript will try to type-check them -// when consumers import from @cloudflare/kumo, causing build failures. -const blocksDistDir = join(__dirname, "../dist/blocks-source"); - -// Create dist/styles directory if it doesn't exist -if (!existsSync(distDir)) { - mkdirSync(distDir, { recursive: true }); -} - -// Copy CSS files for Tailwind users (raw CSS with Tailwind directives) -const cssFiles: string[] = [ - "kumo.css", - "kumo-binding.css", - "theme-kumo.css", - "theme-fedramp.css", -]; - -cssFiles.forEach((file) => { - const srcPath = join(srcDir, file); - const distPath = join(distDir, file); - - if (existsSync(srcPath)) { - copyFileSync(srcPath, distPath); - console.log(`✓ Copied ${file} to dist/styles/ (Tailwind version)`); - } else { - console.warn(`⚠ Warning: ${file} not found in src/styles/`); - } -}); - -// Compile standalone CSS for non-Tailwind users -console.log("📦 Compiling standalone CSS..."); -try { - const standaloneInput = join(srcDir, "kumo-standalone.css"); - const standaloneOutput = join(distDir, "kumo-standalone.css"); - - // Use Tailwind CLI to compile the CSS - execSync( - `npx tailwindcss -i ${standaloneInput} -o ${standaloneOutput} --minify`, - { stdio: "inherit" }, - ); - - console.log("✓ Compiled kumo-standalone.css"); -} catch (error) { - console.error("❌ Failed to compile standalone CSS:", error); - process.exit(1); -} - -console.log("✅ CSS build complete"); - -// Copy block source files to dist for CLI `kumo add` command -console.log("📦 Copying block source files..."); - -function copyBlockFiles(srcDir: string, destDir: string): void { - if (!existsSync(srcDir)) { - console.warn(`⚠ Warning: blocks source directory not found at ${srcDir}`); - return; - } - - const blockDirs = readdirSync(srcDir).filter((item) => { - const itemPath = join(srcDir, item); - return statSync(itemPath).isDirectory(); - }); - - for (const blockDir of blockDirs) { - const blockSrcPath = join(srcDir, blockDir); - const blockDestPath = join(destDir, blockDir); - - // Create destination directory - if (!existsSync(blockDestPath)) { - mkdirSync(blockDestPath, { recursive: true }); - } - - // Copy only .tsx files (source files needed by CLI) - // We skip index.ts barrel files to avoid TypeScript resolution issues - // in other packages that might reference dist/src/blocks - const files = readdirSync(blockSrcPath); - for (const file of files) { - if (file.endsWith(".tsx")) { - const srcFile = join(blockSrcPath, file); - const destFile = join(blockDestPath, file); - // Only copy if it's a file (not directory) - if (statSync(srcFile).isFile()) { - copyFileSync(srcFile, destFile); - console.log(` ✓ Copied ${blockDir}/${file}`); - } - } - } - } -} - -copyBlockFiles(blocksSrcDir, blocksDistDir); -console.log("✅ Block source files copied"); diff --git a/packages/kumo/tests/imports/export-path-validation.test.ts b/packages/kumo/tests/imports/export-path-validation.test.ts index a924588077..608ad813fd 100644 --- a/packages/kumo/tests/imports/export-path-validation.test.ts +++ b/packages/kumo/tests/imports/export-path-validation.test.ts @@ -1,9 +1,8 @@ import { describe, it, expect } from "vite-plus/test"; -import { existsSync, readdirSync, statSync } from "fs"; +import { existsSync, readFileSync, readdirSync, statSync } from "fs"; import { spawnSync } from "child_process"; import { join, dirname } from "path"; import { fileURLToPath } from "url"; -import { readFileSync } from "fs"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); @@ -277,6 +276,52 @@ describe.skipIf(!isBuilt)("Export Path Validation (Post-Build)", () => { }, ); + it("should ship raw and compiled CSS assets", () => { + const packageDir = join(__dirname, "../.."); + const sourceDir = join(packageDir, "src/styles"); + const outputDir = join(packageDir, "dist/styles"); + const rawFiles = [ + "kumo.css", + "kumo-binding.css", + "theme-kumo.css", + "theme-fedramp.css", + ]; + + for (const file of rawFiles) { + expect(readFileSync(join(outputDir, file), "utf-8")).toBe( + readFileSync(join(sourceDir, file), "utf-8"), + ); + } + + const standaloneCss = readFileSync( + join(outputDir, "kumo-standalone.css"), + "utf-8", + ); + expect(standaloneCss).not.toContain('@import "tailwindcss"'); + expect(standaloneCss).toContain("--color-kumo-base"); + }); + + it("should ship block sources used by the CLI", () => { + const packageDir = join(__dirname, "../.."); + const sourceDir = join(packageDir, "src/blocks"); + const outputDir = join(packageDir, "dist/blocks-source"); + + for (const block of readdirSync(sourceDir, { withFileTypes: true })) { + if (!block.isDirectory()) continue; + + const blockDir = join(sourceDir, block.name); + const files = readdirSync(blockDir).filter((file) => + file.endsWith(".tsx"), + ); + + for (const file of files) { + expect(readFileSync(join(outputDir, block.name, file), "utf-8")).toBe( + readFileSync(join(blockDir, file), "utf-8"), + ); + } + } + }); + it("primitive JS files should import from bundled chunks", async () => { const sliderJs = join(__dirname, "../../dist/primitives/slider.js"); const content = readFileSync(sliderJs, "utf-8"); diff --git a/packages/kumo/vite.config.ts b/packages/kumo/vite.config.ts index 941f270972..392e57240d 100644 --- a/packages/kumo/vite.config.ts +++ b/packages/kumo/vite.config.ts @@ -1,10 +1,45 @@ import { defineConfig } from "vite-plus"; import { resolve, dirname } from "path"; import { fileURLToPath } from "url"; -import { readdirSync, writeFileSync } from "fs"; +import { readFileSync, readdirSync, writeFileSync } from "fs"; +import { execFileSync } from "child_process"; +import { createRequire } from "module"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); +const require = createRequire(import.meta.url); + +const stylesDir = resolve(__dirname, "src/styles"); +const distStylesDir = resolve(__dirname, "dist/styles"); +const blocksDir = resolve(__dirname, "src/blocks"); +const distBlocksDir = resolve(__dirname, "dist/blocks-source"); +const standaloneCssInput = resolve(stylesDir, "kumo-standalone.css"); +const standaloneCssOutput = resolve(distStylesDir, "kumo-standalone.css"); +const tailwindPackagePath = require.resolve("@tailwindcss/cli/package.json"); +const tailwindPackage = JSON.parse( + readFileSync(tailwindPackagePath, "utf-8"), +) as { + bin: { tailwindcss: string }; +}; +const tailwindCliPath = resolve( + dirname(tailwindPackagePath), + tailwindPackage.bin.tailwindcss, +); +const cssAssets = [ + "kumo.css", + "kumo-binding.css", + "theme-kumo.css", + "theme-fedramp.css", +].map((file) => resolve(stylesDir, file)); + +function getBlockSourceCopies() { + return readdirSync(blocksDir, { withFileTypes: true }) + .filter((entry) => entry.isDirectory()) + .map((entry) => ({ + from: resolve(blocksDir, entry.name, "*.tsx"), + to: resolve(distBlocksDir, entry.name), + })); +} // Dynamically discover primitive files function getPrimitiveEntries() { @@ -314,6 +349,31 @@ export default defineConfig({ outputOptions: { entryFileNames: "[name].js", }, + // Asset changes should rebuild the small CLI graph, not the browser library. + plugins: [ + { + name: "kumo:standalone-css", + buildStart() { + this.addWatchFile(standaloneCssInput); + }, + writeBundle() { + // The Vite plugin requires resolver internals unavailable to vp pack. + execFileSync( + process.execPath, + [ + tailwindCliPath, + "-i", + standaloneCssInput, + "-o", + standaloneCssOutput, + "--minify", + ], + { cwd: __dirname, stdio: "inherit" }, + ); + }, + }, + ], + copy: [{ from: cssAssets, to: distStylesDir }, ...getBlockSourceCopies()], }, { entry: packEntries, From 812860f57d18ef024ca0b7f37fe36fe403af9431 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Wed, 29 Jul 2026 01:25:07 +0200 Subject: [PATCH 06/10] refactor(kumo): defer package asset config --- packages/kumo/vite.config.ts | 110 ++++++++++++++++++----------------- 1 file changed, 57 insertions(+), 53 deletions(-) diff --git a/packages/kumo/vite.config.ts b/packages/kumo/vite.config.ts index 392e57240d..ac0d4729a3 100644 --- a/packages/kumo/vite.config.ts +++ b/packages/kumo/vite.config.ts @@ -1,4 +1,5 @@ import { defineConfig } from "vite-plus"; +import type { PackUserConfig } from "vite-plus/pack"; import { resolve, dirname } from "path"; import { fileURLToPath } from "url"; import { readFileSync, readdirSync, writeFileSync } from "fs"; @@ -7,38 +8,65 @@ import { createRequire } from "module"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); -const require = createRequire(import.meta.url); -const stylesDir = resolve(__dirname, "src/styles"); -const distStylesDir = resolve(__dirname, "dist/styles"); -const blocksDir = resolve(__dirname, "src/blocks"); -const distBlocksDir = resolve(__dirname, "dist/blocks-source"); -const standaloneCssInput = resolve(stylesDir, "kumo-standalone.css"); -const standaloneCssOutput = resolve(distStylesDir, "kumo-standalone.css"); -const tailwindPackagePath = require.resolve("@tailwindcss/cli/package.json"); -const tailwindPackage = JSON.parse( - readFileSync(tailwindPackagePath, "utf-8"), -) as { - bin: { tailwindcss: string }; -}; -const tailwindCliPath = resolve( - dirname(tailwindPackagePath), - tailwindPackage.bin.tailwindcss, -); -const cssAssets = [ - "kumo.css", - "kumo-binding.css", - "theme-kumo.css", - "theme-fedramp.css", -].map((file) => resolve(stylesDir, file)); - -function getBlockSourceCopies() { - return readdirSync(blocksDir, { withFileTypes: true }) +function getPackageAssetConfig(): Pick { + const require = createRequire(import.meta.url); + const stylesDir = resolve(__dirname, "src/styles"); + const distStylesDir = resolve(__dirname, "dist/styles"); + const blocksDir = resolve(__dirname, "src/blocks"); + const distBlocksDir = resolve(__dirname, "dist/blocks-source"); + const standaloneCssInput = resolve(stylesDir, "kumo-standalone.css"); + const standaloneCssOutput = resolve(distStylesDir, "kumo-standalone.css"); + const tailwindPackagePath = require.resolve("@tailwindcss/cli/package.json"); + const tailwindPackage = JSON.parse( + readFileSync(tailwindPackagePath, "utf-8"), + ) as { + bin: { tailwindcss: string }; + }; + const tailwindCliPath = resolve( + dirname(tailwindPackagePath), + tailwindPackage.bin.tailwindcss, + ); + const cssAssets = [ + "kumo.css", + "kumo-binding.css", + "theme-kumo.css", + "theme-fedramp.css", + ].map((file) => resolve(stylesDir, file)); + const blockSources = readdirSync(blocksDir, { withFileTypes: true }) .filter((entry) => entry.isDirectory()) .map((entry) => ({ from: resolve(blocksDir, entry.name, "*.tsx"), to: resolve(distBlocksDir, entry.name), })); + + return { + // Asset changes should rebuild the small CLI graph, not the browser library. + plugins: [ + { + name: "kumo:standalone-css", + buildStart() { + this.addWatchFile(standaloneCssInput); + }, + writeBundle() { + // The Vite plugin requires resolver internals unavailable to vp pack. + execFileSync( + process.execPath, + [ + tailwindCliPath, + "-i", + standaloneCssInput, + "-o", + standaloneCssOutput, + "--minify", + ], + { cwd: __dirname, stdio: "inherit" }, + ); + }, + }, + ], + copy: [{ from: cssAssets, to: distStylesDir }, ...blockSources], + }; } // Dynamically discover primitive files @@ -176,7 +204,7 @@ const packEntries = { ), }; -export default defineConfig({ +export default defineConfig(({ command }) => ({ lint: { jsPlugins: [ "./lint/kumo-plugin.js", @@ -349,31 +377,7 @@ export default defineConfig({ outputOptions: { entryFileNames: "[name].js", }, - // Asset changes should rebuild the small CLI graph, not the browser library. - plugins: [ - { - name: "kumo:standalone-css", - buildStart() { - this.addWatchFile(standaloneCssInput); - }, - writeBundle() { - // The Vite plugin requires resolver internals unavailable to vp pack. - execFileSync( - process.execPath, - [ - tailwindCliPath, - "-i", - standaloneCssInput, - "-o", - standaloneCssOutput, - "--minify", - ], - { cwd: __dirname, stdio: "inherit" }, - ); - }, - }, - ], - copy: [{ from: cssAssets, to: distStylesDir }, ...getBlockSourceCopies()], + ...(command === "build" ? getPackageAssetConfig() : {}), }, { entry: packEntries, @@ -399,4 +403,4 @@ export default defineConfig({ publint: true, }, ], -}); +})); From 1dad1aae20ba38227d4ccb65c238c85d8b5058ff Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Wed, 29 Jul 2026 01:27:30 +0200 Subject: [PATCH 07/10] docs(kumo): remove stale CSS build reference --- packages/kumo/AGENTS.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/kumo/AGENTS.md b/packages/kumo/AGENTS.md index ecc1652cda..0524d62e34 100644 --- a/packages/kumo/AGENTS.md +++ b/packages/kumo/AGENTS.md @@ -23,8 +23,7 @@ kumo/ ├── scripts/ │ ├── component-registry/ # Registry codegen (13 sub-modules, 930+ lines orchestrator) │ ├── theme-generator/ # Theme CSS codegen from config.ts -│ ├── generate-primitives.ts -│ └── css-build.ts # Post-Vite CSS processing +│ └── generate-primitives.ts ├── lint/ # 5 custom oxlint rules (superset of root lint/) ├── tests/imports/ # Structural validation: export paths, package.json, build entries ├── vite.config.ts # Library mode, dynamic primitive discovery, PLOP marker From 47facc1bc342d01079a7f3662bc89858426467a2 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Wed, 29 Jul 2026 01:35:54 +0200 Subject: [PATCH 08/10] build(kumo): remove unused esbuild dependency --- packages/kumo/package.json | 1 - pnpm-lock.yaml | 509 +------------------------------------ 2 files changed, 14 insertions(+), 496 deletions(-) diff --git a/packages/kumo/package.json b/packages/kumo/package.json index c9976c393e..95c461849d 100644 --- a/packages/kumo/package.json +++ b/packages/kumo/package.json @@ -479,7 +479,6 @@ "@vitejs/plugin-react": "~6.0.3", "@vitest/browser-playwright": "catalog:", "@vitest/ui": "catalog:", - "esbuild": "0.27.2", "glob": "13.0.0", "happy-dom": "catalog:", "playwright": "catalog:", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 71c433eb68..b4df5d3a8f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -162,7 +162,7 @@ importers: version: 4.1.17 '@tailwindcss/vite': specifier: 'catalog:' - version: 4.1.17(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)) + version: 4.1.17(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)) '@testing-library/react': specifier: 16.3.1 version: 16.3.1(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.4))(@types/react@19.2.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -189,16 +189,13 @@ importers: version: 1.1.6 '@vitejs/plugin-react': specifier: ~6.0.3 - version: 6.0.3(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)) + version: 6.0.3(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)) '@vitest/browser-playwright': specifier: 'catalog:' - version: 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10) + version: 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10) '@vitest/ui': specifier: 'catalog:' version: 4.1.10(vitest@4.1.10) - esbuild: - specifier: 0.27.2 - version: 0.27.2 glob: specifier: 13.0.0 version: 13.0.0 @@ -231,13 +228,13 @@ importers: version: 5.9.3 vite: specifier: npm:@voidzero-dev/vite-plus-core@0.2.6 - version: '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)' + version: '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)' vite-plus: specifier: 'catalog:' - version: 0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.27.2)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0) + version: 0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0) vitest: specifier: 4.1.10 - version: 4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) + version: 4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) vitest-browser-react: specifier: ^2.0.5 version: 2.0.5(@types/react-dom@19.2.3(@types/react@19.2.4))(@types/react@19.2.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vitest@4.1.10) @@ -380,13 +377,13 @@ importers: version: 5.9.3 vite: specifier: npm:@voidzero-dev/vite-plus-core@0.2.6 - version: '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)' + version: '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)' vite-plus: specifier: 'catalog:' - version: 0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.27.2)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0) + version: 0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0) vitest: specifier: 4.1.10 - version: 4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) + version: 4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) packages/kumo-screenshot-worker: dependencies: @@ -894,12 +891,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.2': - resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.27.3': resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} engines: {node: '>=18'} @@ -918,12 +909,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.2': - resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.27.3': resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} engines: {node: '>=18'} @@ -942,12 +927,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.2': - resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.27.3': resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} engines: {node: '>=18'} @@ -966,12 +945,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.2': - resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.27.3': resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} engines: {node: '>=18'} @@ -990,12 +963,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.2': - resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.27.3': resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} engines: {node: '>=18'} @@ -1014,12 +981,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.2': - resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.27.3': resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} engines: {node: '>=18'} @@ -1038,12 +999,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.2': - resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} engines: {node: '>=18'} @@ -1062,12 +1017,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.2': - resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} engines: {node: '>=18'} @@ -1086,12 +1035,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.2': - resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.27.3': resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} engines: {node: '>=18'} @@ -1110,12 +1053,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.2': - resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.27.3': resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} engines: {node: '>=18'} @@ -1134,12 +1071,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.2': - resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.27.3': resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} engines: {node: '>=18'} @@ -1158,12 +1089,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.2': - resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.27.3': resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} engines: {node: '>=18'} @@ -1182,12 +1107,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.2': - resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.27.3': resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} engines: {node: '>=18'} @@ -1206,12 +1125,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.2': - resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.27.3': resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} engines: {node: '>=18'} @@ -1230,12 +1143,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.2': - resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.27.3': resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} engines: {node: '>=18'} @@ -1254,12 +1161,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.2': - resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.27.3': resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} engines: {node: '>=18'} @@ -1278,12 +1179,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.2': - resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.27.3': resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} engines: {node: '>=18'} @@ -1302,12 +1197,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.2': - resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.27.3': resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} engines: {node: '>=18'} @@ -1326,12 +1215,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.2': - resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} engines: {node: '>=18'} @@ -1350,12 +1233,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.2': - resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.27.3': resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} engines: {node: '>=18'} @@ -1374,12 +1251,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.2': - resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} engines: {node: '>=18'} @@ -1398,12 +1269,6 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.2': - resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.27.3': resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} engines: {node: '>=18'} @@ -1422,12 +1287,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.2': - resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.27.3': resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} engines: {node: '>=18'} @@ -1446,12 +1305,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.2': - resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.27.3': resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} engines: {node: '>=18'} @@ -1470,12 +1323,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.2': - resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.27.3': resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} engines: {node: '>=18'} @@ -1494,12 +1341,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.2': - resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.27.3': resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} engines: {node: '>=18'} @@ -3698,11 +3539,6 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.2: - resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.27.3: resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} @@ -6766,9 +6602,6 @@ snapshots: '@esbuild/aix-ppc64@0.25.12': optional: true - '@esbuild/aix-ppc64@0.27.2': - optional: true - '@esbuild/aix-ppc64@0.27.3': optional: true @@ -6778,9 +6611,6 @@ snapshots: '@esbuild/android-arm64@0.25.12': optional: true - '@esbuild/android-arm64@0.27.2': - optional: true - '@esbuild/android-arm64@0.27.3': optional: true @@ -6790,9 +6620,6 @@ snapshots: '@esbuild/android-arm@0.25.12': optional: true - '@esbuild/android-arm@0.27.2': - optional: true - '@esbuild/android-arm@0.27.3': optional: true @@ -6802,9 +6629,6 @@ snapshots: '@esbuild/android-x64@0.25.12': optional: true - '@esbuild/android-x64@0.27.2': - optional: true - '@esbuild/android-x64@0.27.3': optional: true @@ -6814,9 +6638,6 @@ snapshots: '@esbuild/darwin-arm64@0.25.12': optional: true - '@esbuild/darwin-arm64@0.27.2': - optional: true - '@esbuild/darwin-arm64@0.27.3': optional: true @@ -6826,9 +6647,6 @@ snapshots: '@esbuild/darwin-x64@0.25.12': optional: true - '@esbuild/darwin-x64@0.27.2': - optional: true - '@esbuild/darwin-x64@0.27.3': optional: true @@ -6838,9 +6656,6 @@ snapshots: '@esbuild/freebsd-arm64@0.25.12': optional: true - '@esbuild/freebsd-arm64@0.27.2': - optional: true - '@esbuild/freebsd-arm64@0.27.3': optional: true @@ -6850,9 +6665,6 @@ snapshots: '@esbuild/freebsd-x64@0.25.12': optional: true - '@esbuild/freebsd-x64@0.27.2': - optional: true - '@esbuild/freebsd-x64@0.27.3': optional: true @@ -6862,9 +6674,6 @@ snapshots: '@esbuild/linux-arm64@0.25.12': optional: true - '@esbuild/linux-arm64@0.27.2': - optional: true - '@esbuild/linux-arm64@0.27.3': optional: true @@ -6874,9 +6683,6 @@ snapshots: '@esbuild/linux-arm@0.25.12': optional: true - '@esbuild/linux-arm@0.27.2': - optional: true - '@esbuild/linux-arm@0.27.3': optional: true @@ -6886,9 +6692,6 @@ snapshots: '@esbuild/linux-ia32@0.25.12': optional: true - '@esbuild/linux-ia32@0.27.2': - optional: true - '@esbuild/linux-ia32@0.27.3': optional: true @@ -6898,9 +6701,6 @@ snapshots: '@esbuild/linux-loong64@0.25.12': optional: true - '@esbuild/linux-loong64@0.27.2': - optional: true - '@esbuild/linux-loong64@0.27.3': optional: true @@ -6910,9 +6710,6 @@ snapshots: '@esbuild/linux-mips64el@0.25.12': optional: true - '@esbuild/linux-mips64el@0.27.2': - optional: true - '@esbuild/linux-mips64el@0.27.3': optional: true @@ -6922,9 +6719,6 @@ snapshots: '@esbuild/linux-ppc64@0.25.12': optional: true - '@esbuild/linux-ppc64@0.27.2': - optional: true - '@esbuild/linux-ppc64@0.27.3': optional: true @@ -6934,9 +6728,6 @@ snapshots: '@esbuild/linux-riscv64@0.25.12': optional: true - '@esbuild/linux-riscv64@0.27.2': - optional: true - '@esbuild/linux-riscv64@0.27.3': optional: true @@ -6946,9 +6737,6 @@ snapshots: '@esbuild/linux-s390x@0.25.12': optional: true - '@esbuild/linux-s390x@0.27.2': - optional: true - '@esbuild/linux-s390x@0.27.3': optional: true @@ -6958,9 +6746,6 @@ snapshots: '@esbuild/linux-x64@0.25.12': optional: true - '@esbuild/linux-x64@0.27.2': - optional: true - '@esbuild/linux-x64@0.27.3': optional: true @@ -6970,9 +6755,6 @@ snapshots: '@esbuild/netbsd-arm64@0.25.12': optional: true - '@esbuild/netbsd-arm64@0.27.2': - optional: true - '@esbuild/netbsd-arm64@0.27.3': optional: true @@ -6982,9 +6764,6 @@ snapshots: '@esbuild/netbsd-x64@0.25.12': optional: true - '@esbuild/netbsd-x64@0.27.2': - optional: true - '@esbuild/netbsd-x64@0.27.3': optional: true @@ -6994,9 +6773,6 @@ snapshots: '@esbuild/openbsd-arm64@0.25.12': optional: true - '@esbuild/openbsd-arm64@0.27.2': - optional: true - '@esbuild/openbsd-arm64@0.27.3': optional: true @@ -7006,9 +6782,6 @@ snapshots: '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/openbsd-x64@0.27.2': - optional: true - '@esbuild/openbsd-x64@0.27.3': optional: true @@ -7018,9 +6791,6 @@ snapshots: '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.27.2': - optional: true - '@esbuild/openharmony-arm64@0.27.3': optional: true @@ -7030,9 +6800,6 @@ snapshots: '@esbuild/sunos-x64@0.25.12': optional: true - '@esbuild/sunos-x64@0.27.2': - optional: true - '@esbuild/sunos-x64@0.27.3': optional: true @@ -7042,9 +6809,6 @@ snapshots: '@esbuild/win32-arm64@0.25.12': optional: true - '@esbuild/win32-arm64@0.27.2': - optional: true - '@esbuild/win32-arm64@0.27.3': optional: true @@ -7054,9 +6818,6 @@ snapshots: '@esbuild/win32-ia32@0.25.12': optional: true - '@esbuild/win32-ia32@0.27.2': - optional: true - '@esbuild/win32-ia32@0.27.3': optional: true @@ -7066,9 +6827,6 @@ snapshots: '@esbuild/win32-x64@0.25.12': optional: true - '@esbuild/win32-x64@0.27.2': - optional: true - '@esbuild/win32-x64@0.27.3': optional: true @@ -7999,12 +7757,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.3.3 - '@tailwindcss/vite@4.1.17(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))': + '@tailwindcss/vite@4.1.17(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.1.17 '@tailwindcss/oxide': 4.1.17 tailwindcss: 4.1.17 - vite: '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)' '@tailwindcss/vite@4.3.3(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@24.13.3)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))': dependencies: @@ -8195,23 +7953,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@6.0.3(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))': + '@vitejs/plugin-react@6.0.3(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)' - - '@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10)': - dependencies: - '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(vitest@4.1.10) - '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) - playwright: 1.57.0 - tinyrainbow: 3.1.0 - vitest: 4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite + vite: '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)' '@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10)': dependencies: @@ -8225,7 +7970,6 @@ snapshots: - msw - utf-8-validate - vite - optional: true '@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@24.13.3)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@24.13.3)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10)': dependencies: @@ -8241,18 +7985,6 @@ snapshots: - vite optional: true - '@vitest/browser-preview@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(vitest@4.1.10)': - dependencies: - '@testing-library/dom': 10.4.1 - '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) - '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(vitest@4.1.10) - vitest: 4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - '@vitest/browser-preview@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(vitest@4.1.10)': dependencies: '@testing-library/dom': 10.4.1 @@ -8277,23 +8009,6 @@ snapshots: - utf-8-validate - vite - '@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(vitest@4.1.10)': - dependencies: - '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) - '@vitest/utils': 4.1.10 - magic-string: 0.30.21 - pngjs: 7.0.0 - sirv: 3.0.2 - tinyrainbow: 3.1.0 - vitest: 4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) - ws: 8.21.1 - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - '@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(vitest@4.1.10)': dependencies: '@blazediff/core': 1.9.1 @@ -8337,15 +8052,6 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))': - dependencies: - '@vitest/spy': 4.1.10 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - msw: 2.12.3(@types/node@22.19.1)(typescript@5.9.3) - vite: '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)' - '@vitest/mocker@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))': dependencies: '@vitest/spy': 4.1.10 @@ -8399,25 +8105,6 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.0 - '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)': - dependencies: - '@oxc-project/runtime': 0.141.0 - '@oxc-project/types': 0.141.0 - lightningcss: 1.33.0 - postcss: 8.5.19 - yuku-codegen: 0.5.48 - yuku-parser: 0.5.48 - optionalDependencies: - '@arethetypeswrong/core': 0.18.5 - '@types/node': 22.19.1 - esbuild: 0.27.2 - fsevents: 2.3.3 - jiti: 2.7.0 - publint: 0.3.21 - tsx: 4.20.6 - typescript: 5.9.3 - yaml: 2.9.0 - '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)': dependencies: '@oxc-project/runtime': 0.141.0 @@ -9144,35 +8831,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.12 '@esbuild/win32-x64': 0.25.12 - esbuild@0.27.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.2 - '@esbuild/android-arm': 0.27.2 - '@esbuild/android-arm64': 0.27.2 - '@esbuild/android-x64': 0.27.2 - '@esbuild/darwin-arm64': 0.27.2 - '@esbuild/darwin-x64': 0.27.2 - '@esbuild/freebsd-arm64': 0.27.2 - '@esbuild/freebsd-x64': 0.27.2 - '@esbuild/linux-arm': 0.27.2 - '@esbuild/linux-arm64': 0.27.2 - '@esbuild/linux-ia32': 0.27.2 - '@esbuild/linux-loong64': 0.27.2 - '@esbuild/linux-mips64el': 0.27.2 - '@esbuild/linux-ppc64': 0.27.2 - '@esbuild/linux-riscv64': 0.27.2 - '@esbuild/linux-s390x': 0.27.2 - '@esbuild/linux-x64': 0.27.2 - '@esbuild/netbsd-arm64': 0.27.2 - '@esbuild/netbsd-x64': 0.27.2 - '@esbuild/openbsd-arm64': 0.27.2 - '@esbuild/openbsd-x64': 0.27.2 - '@esbuild/openharmony-arm64': 0.27.2 - '@esbuild/sunos-x64': 0.27.2 - '@esbuild/win32-arm64': 0.27.2 - '@esbuild/win32-ia32': 0.27.2 - '@esbuild/win32-x64': 0.27.2 - esbuild@0.27.3: optionalDependencies: '@esbuild/aix-ppc64': 0.27.3 @@ -10695,31 +10353,6 @@ snapshots: outvariant@1.4.3: optional: true - oxfmt@0.60.0(vite-plus@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.27.2)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)): - dependencies: - tinypool: 2.1.0 - optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.60.0 - '@oxfmt/binding-android-arm64': 0.60.0 - '@oxfmt/binding-darwin-arm64': 0.60.0 - '@oxfmt/binding-darwin-x64': 0.60.0 - '@oxfmt/binding-freebsd-x64': 0.60.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.60.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.60.0 - '@oxfmt/binding-linux-arm64-gnu': 0.60.0 - '@oxfmt/binding-linux-arm64-musl': 0.60.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.60.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.60.0 - '@oxfmt/binding-linux-riscv64-musl': 0.60.0 - '@oxfmt/binding-linux-s390x-gnu': 0.60.0 - '@oxfmt/binding-linux-x64-gnu': 0.60.0 - '@oxfmt/binding-linux-x64-musl': 0.60.0 - '@oxfmt/binding-openharmony-arm64': 0.60.0 - '@oxfmt/binding-win32-arm64-msvc': 0.60.0 - '@oxfmt/binding-win32-ia32-msvc': 0.60.0 - '@oxfmt/binding-win32-x64-msvc': 0.60.0 - vite-plus: 0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.27.2)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0) - oxfmt@0.60.0(vite-plus@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)): dependencies: tinypool: 2.1.0 @@ -10779,30 +10412,6 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 7.0.2001 '@oxlint-tsgolint/win32-x64': 7.0.2001 - oxlint@1.75.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.27.2)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)): - optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.75.0 - '@oxlint/binding-android-arm64': 1.75.0 - '@oxlint/binding-darwin-arm64': 1.75.0 - '@oxlint/binding-darwin-x64': 1.75.0 - '@oxlint/binding-freebsd-x64': 1.75.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.75.0 - '@oxlint/binding-linux-arm-musleabihf': 1.75.0 - '@oxlint/binding-linux-arm64-gnu': 1.75.0 - '@oxlint/binding-linux-arm64-musl': 1.75.0 - '@oxlint/binding-linux-ppc64-gnu': 1.75.0 - '@oxlint/binding-linux-riscv64-gnu': 1.75.0 - '@oxlint/binding-linux-riscv64-musl': 1.75.0 - '@oxlint/binding-linux-s390x-gnu': 1.75.0 - '@oxlint/binding-linux-x64-gnu': 1.75.0 - '@oxlint/binding-linux-x64-musl': 1.75.0 - '@oxlint/binding-openharmony-arm64': 1.75.0 - '@oxlint/binding-win32-arm64-msvc': 1.75.0 - '@oxlint/binding-win32-ia32-msvc': 1.75.0 - '@oxlint/binding-win32-x64-msvc': 1.75.0 - oxlint-tsgolint: 7.0.2001 - vite-plus: 0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.27.2)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0) - oxlint@1.75.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.75.0 @@ -11850,65 +11459,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-plus@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.27.2)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0): - dependencies: - '@oxc-project/types': 0.141.0 - '@oxlint/plugins': 1.73.0 - '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(vitest@4.1.10) - '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(vitest@4.1.10) - '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) - '@vitest/pretty-format': 4.1.10 - '@vitest/runner': 4.1.10 - '@vitest/snapshot': 4.1.10 - '@vitest/spy': 4.1.10 - '@vitest/utils': 4.1.10 - '@voidzero-dev/vite-plus-core': 0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0) - oxfmt: 0.60.0(vite-plus@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.27.2)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)) - oxlint: 1.75.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.27.2)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)) - oxlint-tsgolint: 7.0.2001 - vitest: 4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) - optionalDependencies: - '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10) - '@voidzero-dev/vite-plus-darwin-arm64': 0.2.6 - '@voidzero-dev/vite-plus-darwin-x64': 0.2.6 - '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.6 - '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.6 - '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.6 - '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.6 - '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.6 - '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.6 - transitivePeerDependencies: - - '@arethetypeswrong/core' - - '@edge-runtime/vm' - - '@opentelemetry/api' - - '@types/node' - - '@vitejs/devtools' - - '@vitest/coverage-istanbul' - - '@vitest/coverage-v8' - - '@vitest/ui' - - bufferutil - - esbuild - - happy-dom - - jiti - - jsdom - - less - - msw - - publint - - sass - - sass-embedded - - stylus - - sugarss - - svelte - - terser - - tsx - - typescript - - unplugin-unused - - unrun - - utf-8-validate - - vite - - yaml - vite-plus@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.8.9)(jiti@2.7.0)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0): dependencies: '@oxc-project/types': 0.141.0 @@ -12035,42 +11585,11 @@ snapshots: dependencies: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - vitest: 4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) + vitest: 4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) optionalDependencies: '@types/react': 19.2.4 '@types/react-dom': 19.2.3(@types/react@19.2.4) - vitest@4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)): - dependencies: - '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)) - '@vitest/pretty-format': 4.1.10 - '@vitest/runner': 4.1.10 - '@vitest/snapshot': 4.1.10 - '@vitest/spy': 4.1.10 - '@vitest/utils': 4.1.10 - es-module-lexer: 2.1.0 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.1 - pathe: 2.0.3 - picomatch: 4.0.5 - std-env: 4.1.0 - tinybench: 2.9.0 - tinyexec: 1.2.4 - tinyglobby: 0.2.17 - tinyrainbow: 3.1.0 - vite: '@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0)' - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 22.19.1 - '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10) - '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.27.2)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(vitest@4.1.10) - '@vitest/ui': 4.1.10(vitest@4.1.10) - happy-dom: 20.8.9 - transitivePeerDependencies: - - msw - vitest@4.1.10(@types/node@22.19.1)(@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3))(playwright@1.57.0)(vitest@4.1.10))(@vitest/browser-preview@4.1.10)(@vitest/ui@4.1.10(vitest@4.1.10))(@voidzero-dev/vite-plus-core@0.2.6(@arethetypeswrong/core@0.18.5)(@types/node@22.19.1)(esbuild@0.28.1)(jiti@2.7.0)(publint@0.3.21)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0))(happy-dom@20.8.9)(msw@2.12.3(@types/node@22.19.1)(typescript@5.9.3)): dependencies: '@vitest/expect': 4.1.10 From f55789329ac3d54da6b825437c0557a45f82af91 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Thu, 30 Jul 2026 21:53:00 +0200 Subject: [PATCH 09/10] test(kumo): validate CLI through package bin --- .../tests/imports/export-path-validation.test.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/packages/kumo/tests/imports/export-path-validation.test.ts b/packages/kumo/tests/imports/export-path-validation.test.ts index 608ad813fd..694037bba3 100644 --- a/packages/kumo/tests/imports/export-path-validation.test.ts +++ b/packages/kumo/tests/imports/export-path-validation.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from "vite-plus/test"; -import { existsSync, readFileSync, readdirSync, statSync } from "fs"; +import { existsSync, readFileSync, readdirSync } from "fs"; import { spawnSync } from "child_process"; import { join, dirname } from "path"; import { fileURLToPath } from "url"; @@ -241,7 +241,7 @@ describe.skipIf(!isBuilt)("Export Path Validation (Post-Build)", () => { expect(mapFiles).toEqual([]); }); - it("should ship one executable CLI bundle that the package bin can launch", () => { + it("should ship one CLI bundle that the package bin can launch", () => { const packageDir = join(__dirname, "../.."); const cliDir = join(packageDir, "dist/command-line"); const cliPath = join(cliDir, "cli.js"); @@ -267,15 +267,6 @@ describe.skipIf(!isBuilt)("Export Path Validation (Post-Build)", () => { ); }); - it.skipIf(process.platform === "win32")( - "should mark the CLI bundle as executable", - () => { - const cliPath = join(__dirname, "../../dist/command-line/cli.js"); - - expect(statSync(cliPath).mode & 0o111).not.toBe(0); - }, - ); - it("should ship raw and compiled CSS assets", () => { const packageDir = join(__dirname, "../.."); const sourceDir = join(packageDir, "src/styles"); From c396ee83d6af4bc40ef552f5d7f03a852bb5331b Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Mon, 24 Aug 2026 17:42:53 +0200 Subject: [PATCH 10/10] docs(kumo): clarify CLI dependency bundling --- packages/kumo/vite.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kumo/vite.config.ts b/packages/kumo/vite.config.ts index ac0d4729a3..3960a788ee 100644 --- a/packages/kumo/vite.config.ts +++ b/packages/kumo/vite.config.ts @@ -372,7 +372,7 @@ export default defineConfig(({ command }) => ({ dts: false, sourcemap: false, exports: false, - // Avoid bundling dependencies supplied by the installed package. + // Externalize installed dependencies; relative command imports stay bundled. deps: { neverBundle: true }, outputOptions: { entryFileNames: "[name].js",