From 09227265e7f06ad0b8af41363ac154b617242b9e Mon Sep 17 00:00:00 2001 From: Steve Faulkner Date: Thu, 19 Mar 2026 15:56:38 -0500 Subject: [PATCH 1/2] docs: update Vite 8 guidance --- .agents/skills/migrate-to-vinext/SKILL.md | 2 ++ .../references/config-examples.md | 2 ++ .../references/troubleshooting.md | 14 ++++++++++++++ AGENTS.md | 10 ++++++++++ README.md | 4 +++- tests/tsconfig-paths-vite8.test.ts | 4 ++-- 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/.agents/skills/migrate-to-vinext/SKILL.md b/.agents/skills/migrate-to-vinext/SKILL.md index 82a91b95c..d2030d3d7 100644 --- a/.agents/skills/migrate-to-vinext/SKILL.md +++ b/.agents/skills/migrate-to-vinext/SKILL.md @@ -94,6 +94,8 @@ Add `"type": "module"` to package.json. Rename any CJS config files: See [references/config-examples.md](references/config-examples.md) for config variants per router and deployment target. +If the project already has custom Vite config, prefer Vite 8-native keys when editing it: `oxc`, `optimizeDeps.rolldownOptions`, and `build.rolldownOptions`. Older `esbuild` and `build.rollupOptions` settings still work for now but are migration targets. + **Pages Router (minimal):** ```ts diff --git a/.agents/skills/migrate-to-vinext/references/config-examples.md b/.agents/skills/migrate-to-vinext/references/config-examples.md index 1445a2a64..91aac0ca1 100644 --- a/.agents/skills/migrate-to-vinext/references/config-examples.md +++ b/.agents/skills/migrate-to-vinext/references/config-examples.md @@ -1,5 +1,7 @@ # Vite Config Examples +These examples stay minimal on purpose. If you add custom build tuning on Vite 8, prefer `oxc`, `optimizeDeps.rolldownOptions`, and `build.rolldownOptions` / `worker.rolldownOptions` over older `esbuild` and `build.rollupOptions` settings. + ## Pages Router — Local Development No Cloudflare, no deployment. Simplest possible config. diff --git a/.agents/skills/migrate-to-vinext/references/troubleshooting.md b/.agents/skills/migrate-to-vinext/references/troubleshooting.md index 5a9323911..c956b8164 100644 --- a/.agents/skills/migrate-to-vinext/references/troubleshooting.md +++ b/.agents/skills/migrate-to-vinext/references/troubleshooting.md @@ -12,6 +12,20 @@ | RSC environment crash on dev start | Native Node module (sharp, satori) loaded in RSC env | vinext auto-stubs these in production; in dev, ensure these are only imported in server code behind dynamic `import()` | | `ASSETS binding not found` | wrangler.jsonc missing assets config | Add `"assets": { "not_found_handling": "none" }` to wrangler.jsonc | +## Vite 8 Migration Notes + +- **Symptom:** deprecation warnings for `esbuild`, `optimizeDeps.esbuildOptions`, or `build.rollupOptions`. + **Cause:** Vite 8 now defaults to Oxc and Rolldown. + **Fix:** Prefer `oxc`, `optimizeDeps.rolldownOptions`, and `build.rolldownOptions` / `worker.rolldownOptions` in custom Vite config. + +- **Symptom:** a package only breaks on Vite 8 with a bad `default` import from CommonJS. + **Cause:** Vite 8 made CommonJS default import handling more consistent. + **Fix:** Fix the import or package if possible. As a temporary workaround, set `legacy.inconsistentCjsInterop: true`. + +- **Symptom:** older browsers stop working after migration. + **Cause:** Vite 8 raised the default `build.target` browser baseline. + **Fix:** Set `build.target` explicitly in `vite.config.*` if you need older browser support. + ## ESM Conversion Issues When adding `"type": "module"`, any `.js` file using `module.exports` or `require()` will break. Common files that need renaming to `.cjs`: diff --git a/AGENTS.md b/AGENTS.md index f3e2f1b11..58f9ebc72 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -355,6 +355,16 @@ The RSC entry's `default` export is the request handler. The plugin calls it for You **must** use `createBuilder()` + `builder.buildApp()` for production builds, not `build()` directly. Calling `build()` from the Vite JS API doesn't trigger the RSC plugin's multi-environment build pipeline. `buildApp()` runs the 5-step RSC/SSR/client build sequence in the correct order. +### Vite 8 Defaults + +This repo currently resolves `vite` to `@voidzero-dev/vite-plus-core`, which bundles Vite 8. Keep that in mind when touching Vite config or plugin integration code: + +- Prefer `oxc` over `esbuild` for new JavaScript transform config +- Prefer `optimizeDeps.rolldownOptions` over `optimizeDeps.esbuildOptions` +- Prefer `build.rolldownOptions` / `worker.rolldownOptions` over adding new `*.rollupOptions` config +- When touching existing `build.rollupOptions` or `manualChunks`, preserve Vite 7 compatibility but treat them as migration targets, not patterns to copy forward +- If something breaks only on Vite 8, check the newer `build.target` baseline and stricter CommonJS default import behavior first + ### Virtual Module Resolution Quirks - **Build-time root prefix:** Vite prefixes virtual module IDs with the project root path when resolving SSR build entries. The `resolveId` hook must handle both `virtual:vinext-server-entry` and `/virtual:vinext-server-entry`. diff --git a/README.md b/README.md index cca8da320..edc8da6d7 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,8 @@ This will: The migration is non-destructive -- your existing Next.js setup continues to work alongside vinext. It does not modify `next.config`, `tsconfig.json`, or any source files, and it does not remove Next.js dependencies. +vinext supports both Vite 7 and Vite 8. If you bring custom Vite config or plugins from an older setup, note that Vite 8 now defaults to Rolldown, Oxc, Lightning CSS, and a newer browser baseline. Prefer `oxc`, `optimizeDeps.rolldownOptions`, and `build.rolldownOptions` over older `esbuild` and `build.rollupOptions` knobs, and override `build.target` if you still need older browsers. If a dependency only breaks on Vite 8 because of stricter CommonJS default import handling, fix the import or use `legacy.inconsistentCjsInterop: true` as a temporary escape hatch. See the [Vite 8 migration guide](https://vite.dev/guide/migration). + ```bash npm run dev:vinext # Start the vinext dev server (port 3001) npm run dev # Still runs Next.js as before @@ -696,7 +698,7 @@ Or add it to your `package.json` as a file dependency: } ``` -vinext has peer dependencies on `react ^19.2.4`, `react-dom ^19.2.4`, and `vite ^7.0.0`. Then replace `next` with `vinext` in your scripts and run as normal. +vinext has peer dependencies on `react ^19.2.4`, `react-dom ^19.2.4`, and `vite ^7.0.0 || ^8.0.0`. Then replace `next` with `vinext` in your scripts and run as normal. ## Contributing diff --git a/tests/tsconfig-paths-vite8.test.ts b/tests/tsconfig-paths-vite8.test.ts index 4a581ec5d..010b54e9b 100644 --- a/tests/tsconfig-paths-vite8.test.ts +++ b/tests/tsconfig-paths-vite8.test.ts @@ -52,7 +52,7 @@ describe("Vite tsconfig paths support", () => { }); it("uses resolve.tsconfigPaths on Vite 8 instead of vite-tsconfig-paths", async () => { - const root = setupProject({ name: "vite", version: "8.0.0-beta.18" }); + const root = setupProject({ name: "vite", version: "8.0.0" }); process.chdir(root); const plugins = vinext({ appDir: root }); @@ -78,7 +78,7 @@ describe("Vite tsconfig paths support", () => { }); it("does not override user-defined resolve.tsconfigPaths on Vite 8", async () => { - const root = setupProject({ name: "vite", version: "8.0.0-beta.18" }); + const root = setupProject({ name: "vite", version: "8.0.0" }); process.chdir(root); const plugins = vinext({ appDir: root }); From a92bbc124e832f1eeb40d9fe0a99daa7e87d84d7 Mon Sep 17 00:00:00 2001 From: Steve Faulkner Date: Thu, 19 Mar 2026 19:43:36 -0500 Subject: [PATCH 2/2] build: align Vite 8 bundler config --- packages/vinext/package.json | 2 +- packages/vinext/src/cli.ts | 22 +- packages/vinext/src/index.ts | 79 ++++-- pnpm-lock.yaml | 445 +++++-------------------------- pnpm-workspace.yaml | 4 +- tests/build-optimization.test.ts | 40 ++- tests/pages-router.test.ts | 22 +- 7 files changed, 182 insertions(+), 432 deletions(-) diff --git a/packages/vinext/package.json b/packages/vinext/package.json index 76191ee4f..463aa3eae 100644 --- a/packages/vinext/package.json +++ b/packages/vinext/package.json @@ -76,7 +76,7 @@ "peerDependencies": { "@mdx-js/rollup": "^3.0.0", "@vitejs/plugin-react": "^5.1.4 || ^6.0.0", - "@vitejs/plugin-rsc": "^0.5.19", + "@vitejs/plugin-rsc": "^0.5.21", "react": ">=19.2.0", "react-dom": ">=19.2.0", "react-server-dom-webpack": "^19.2.4", diff --git a/packages/vinext/src/cli.ts b/packages/vinext/src/cli.ts index 75389d1d6..786127f3b 100644 --- a/packages/vinext/src/cli.ts +++ b/packages/vinext/src/cli.ts @@ -13,7 +13,7 @@ * needed for most Next.js apps. */ -import vinext, { clientOutputConfig, clientTreeshakeConfig } from "./index.js"; +import vinext, { clientTreeshakeConfig, getClientOutputConfigForVite } from "./index.js"; import { printBuildReport } from "./build/report.js"; import { runPrerender } from "./build/run-prerender.js"; import path from "node:path"; @@ -358,6 +358,12 @@ async function buildApp() { applyViteConfigCompatibility(process.cwd()); const vite = await loadVite(); + const viteMajorVersion = Number.parseInt(vite.version, 10) || 7; + + const withBuildBundlerOptions = (bundlerOptions: Record) => + viteMajorVersion >= 8 + ? { rolldownOptions: bundlerOptions } + : { rollupOptions: bundlerOptions }; console.log(`\n vinext build (Vite ${getViteVersion()})\n`); @@ -445,11 +451,11 @@ async function buildApp() { outDir: "dist/server", emptyOutDir: false, // preserve RSC artefacts from buildApp() ssr: "virtual:vinext-server-entry", - rollupOptions: { + ...withBuildBundlerOptions({ output: { entryFileNames: "entry.js", }, - }, + }), }, }); } @@ -465,11 +471,11 @@ async function buildApp() { outDir: "dist/client", manifest: true, ssrManifest: true, - rollupOptions: { + ...withBuildBundlerOptions({ input: "virtual:vinext-client-entry", - output: clientOutputConfig, + output: getClientOutputConfigForVite(viteMajorVersion), treeshake: clientTreeshakeConfig, - }, + }), }, }, logger, @@ -483,11 +489,11 @@ async function buildApp() { build: { outDir: "dist/server", ssr: "virtual:vinext-server-entry", - rollupOptions: { + ...withBuildBundlerOptions({ output: { entryFileNames: "entry.js", }, - }, + }), }, }, logger, diff --git a/packages/vinext/src/index.ts b/packages/vinext/src/index.ts index db15cdb35..442611ea9 100644 --- a/packages/vinext/src/index.ts +++ b/packages/vinext/src/index.ts @@ -540,6 +540,17 @@ const clientOutputConfig = { experimentalMinChunkSize: 10_000, }; +const clientCodeSplittingConfig = { + minSize: 10_000, + groups: [ + { + name(moduleId: string) { + return clientManualChunks(moduleId) ?? null; + }, + }, + ], +}; + /** * Rollup treeshake configuration for production client builds. * @@ -570,6 +581,36 @@ const clientTreeshakeConfig = { moduleSideEffects: "no-external" as const, }; +type VinextBuildConfig = NonNullable; +type VinextBuildBundlerOptions = NonNullable; +type VinextBuildConfigWithLegacy = VinextBuildConfig & { + rollupOptions?: VinextBuildBundlerOptions; +}; + +function getBuildBundlerOptions( + build: UserConfig["build"] | undefined, +): VinextBuildBundlerOptions | undefined { + const buildConfig = build as VinextBuildConfigWithLegacy | undefined; + return buildConfig?.rolldownOptions ?? buildConfig?.rollupOptions; +} + +function withBuildBundlerOptions( + viteMajorVersion: number, + bundlerOptions: VinextBuildBundlerOptions, +): Partial { + return viteMajorVersion >= 8 + ? { rolldownOptions: bundlerOptions } + : { rollupOptions: bundlerOptions }; +} + +function getClientOutputConfigForVite(viteMajorVersion: number) { + return viteMajorVersion >= 8 + ? { + codeSplitting: clientCodeSplittingConfig, + } + : clientOutputConfig; +} + type BuildManifestChunk = { file: string; isEntry?: boolean; @@ -1766,7 +1807,7 @@ export default function vinext(options: VinextOptions = {}): PluginOption[] { // Disable Vite's default HTML serving - we handle all routing appType: "custom", build: { - rollupOptions: { + ...withBuildBundlerOptions(viteMajorVersion, { // Suppress "Module level directives cause errors when bundled" // warnings for "use client" / "use server" directives. Our shims // and third-party libraries legitimately use these directives; @@ -1774,7 +1815,7 @@ export default function vinext(options: VinextOptions = {}): PluginOption[] { // final bundle. We preserve any user-supplied onwarn so custom // warning handling is not lost. onwarn: (() => { - const userOnwarn = config.build?.rollupOptions?.onwarn; + const userOnwarn = getBuildBundlerOptions(config.build)?.onwarn; return (warning, defaultHandler) => { if ( warning.code === "MODULE_LEVEL_DIRECTIVE" && @@ -1817,8 +1858,10 @@ export default function vinext(options: VinextOptions = {}): PluginOption[] { // Router). For multi-environment builds (App Router, Cloudflare), // manualChunks is set per-environment on the client env below // to avoid leaking into RSC/SSR environments. - ...(!isSSR && !isMultiEnv ? { output: clientOutputConfig } : {}), - }, + ...(!isSSR && !isMultiEnv + ? { output: getClientOutputConfigForVite(viteMajorVersion) } + : {}), + }), }, // Let OPTIONS requests pass through Vite's CORS middleware to our // route handlers so they can set the Allow header and run user-defined @@ -1959,9 +2002,9 @@ export default function vinext(options: VinextOptions = {}): PluginOption[] { }, build: { outDir: options.rscOutDir ?? "dist/server", - rollupOptions: { + ...withBuildBundlerOptions(viteMajorVersion, { input: { index: VIRTUAL_RSC_ENTRY }, - }, + }), }, }, ssr: { @@ -1984,9 +2027,9 @@ export default function vinext(options: VinextOptions = {}): PluginOption[] { }, build: { outDir: options.ssrOutDir ?? "dist/server/ssr", - rollupOptions: { + ...withBuildBundlerOptions(viteMajorVersion, { input: { index: VIRTUAL_APP_SSR_ENTRY }, - }, + }), }, }, client: { @@ -2035,11 +2078,11 @@ export default function vinext(options: VinextOptions = {}): PluginOption[] { // on every page — defeating code-splitting for React.lazy() and // next/dynamic boundaries. ...(hasCloudflarePlugin ? { manifest: true } : {}), - rollupOptions: { + ...withBuildBundlerOptions(viteMajorVersion, { input: { index: VIRTUAL_APP_BROWSER_ENTRY }, - output: clientOutputConfig, + output: getClientOutputConfigForVite(viteMajorVersion), treeshake: clientTreeshakeConfig, - }, + }), }, }, }; @@ -2054,11 +2097,11 @@ export default function vinext(options: VinextOptions = {}): PluginOption[] { build: { manifest: true, ssrManifest: true, - rollupOptions: { + ...withBuildBundlerOptions(viteMajorVersion, { input: { index: VIRTUAL_CLIENT_ENTRY }, - output: clientOutputConfig, + output: getClientOutputConfigForVite(viteMajorVersion), treeshake: clientTreeshakeConfig, - }, + }), }, }, }; @@ -4504,7 +4547,13 @@ export type { export type { NextConfig } from "./config/next-config.js"; // Exported for CLI and testing -export { clientManualChunks, clientOutputConfig, clientTreeshakeConfig, computeLazyChunks }; +export { + clientManualChunks, + clientOutputConfig, + clientTreeshakeConfig, + computeLazyChunks, + getClientOutputConfigForVite, +}; export { augmentSsrManifestFromBundle as _augmentSsrManifestFromBundle }; export { resolvePostcssStringPlugins as _resolvePostcssStringPlugins }; export { _postcssCache }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15a69e1d1..2bb17a85f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -79,11 +79,11 @@ catalogs: specifier: ^0.8.6 version: 0.8.6 '@vitejs/plugin-react': - specifier: ^5.1.4 - version: 5.1.4 + specifier: ^6.0.1 + version: 6.0.1 '@vitejs/plugin-rsc': - specifier: ^0.5.19 - version: 0.5.20 + specifier: ^0.5.21 + version: 0.5.21 better-auth: specifier: ^1.4.0 version: 1.4.18 @@ -236,7 +236,7 @@ importers: version: 7.0.0-dev.20260217.1 '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) image-size: specifier: 'catalog:' version: 2.0.2 @@ -269,7 +269,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) react: specifier: 'catalog:' version: 19.2.4 @@ -285,7 +285,7 @@ importers: devDependencies: '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) vite: specifier: 'catalog:' version: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)' @@ -297,7 +297,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) react: specifier: 'catalog:' version: 19.2.4 @@ -313,7 +313,7 @@ importers: devDependencies: '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) vite: specifier: 'catalog:' version: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)' @@ -328,10 +328,10 @@ importers: version: 1.25.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(workerd@1.20260217.0)(wrangler@4.66.0(@cloudflare/workers-types@4.20260313.1)) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) react: specifier: 'catalog:' version: 19.2.4 @@ -362,7 +362,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) nitro: specifier: 'catalog:' version: nitro-nightly@3.0.1-20260317-115307-5d51b7f3(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(better-sqlite3@12.6.2)(chokidar@5.0.0)(jiti@2.6.1)(miniflare@4.20260217.0) @@ -393,7 +393,7 @@ importers: version: 2.0.13 '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) clsx: specifier: 'catalog:' version: 2.1.1 @@ -451,7 +451,7 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) postcss: specifier: 'catalog:' version: 8.5.3 @@ -487,10 +487,10 @@ importers: version: 4.2.0(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) react: specifier: 'catalog:' version: 19.2.4 @@ -570,10 +570,10 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) postcss: specifier: 'catalog:' version: 8.5.3 @@ -603,10 +603,10 @@ importers: version: 1.25.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(workerd@1.20260217.0)(wrangler@4.66.0(@cloudflare/workers-types@4.20260313.1)) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) ms: specifier: 'catalog:' version: 3.0.0-canary.1 @@ -640,7 +640,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) react: specifier: 'catalog:' version: 19.2.4 @@ -671,7 +671,7 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) typescript: specifier: 'catalog:' version: 5.9.3 @@ -692,7 +692,7 @@ importers: version: 1.25.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(workerd@1.20260217.0)(wrangler@4.66.0(@cloudflare/workers-types@4.20260313.1)) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) react: specifier: 'catalog:' version: 19.2.4 @@ -717,7 +717,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) react: specifier: 'catalog:' version: 19.2.4 @@ -760,10 +760,10 @@ importers: dependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) react: specifier: 'catalog:' version: 19.2.4 @@ -828,10 +828,10 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) react-server-dom-webpack: specifier: 'catalog:' version: 19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -846,7 +846,7 @@ importers: dependencies: '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) fake-context-lib: specifier: file:./__test_packages__/fake-context-lib version: file:tests/fixtures/app-basic/__test_packages__/fake-context-lib @@ -880,7 +880,7 @@ importers: dependencies: '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) react: specifier: 'catalog:' version: 19.2.4 @@ -908,10 +908,10 @@ importers: version: 1.25.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(workerd@1.20260217.0)(wrangler@4.66.0(@cloudflare/workers-types@4.20260313.1)) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) + version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) react: specifier: 'catalog:' version: 19.2.4 @@ -939,7 +939,7 @@ importers: dependencies: '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) better-auth: specifier: 'catalog:' version: 1.4.18(@voidzero-dev/vite-plus-test@0.1.12(@types/node@25.2.3)(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(better-sqlite3@12.6.2)(next@16.1.7(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -970,7 +970,7 @@ importers: dependencies: '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) next-intl: specifier: 'catalog:' version: 4.8.3(next@16.1.7(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(typescript@5.9.3) @@ -998,7 +998,7 @@ importers: dependencies: '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) next-themes: specifier: 'catalog:' version: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -1026,7 +1026,7 @@ importers: dependencies: '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) next-view-transitions: specifier: 'catalog:' version: 0.3.5(next@16.1.7(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -1054,7 +1054,7 @@ importers: dependencies: '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) nuqs: specifier: 'catalog:' version: 2.8.8(next@16.1.7(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) @@ -1091,7 +1091,7 @@ importers: version: 1.2.4(@types/react@19.2.14)(react@19.2.4) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) class-variance-authority: specifier: 'catalog:' version: 0.7.1 @@ -1166,7 +1166,7 @@ importers: dependencies: '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) react: specifier: 'catalog:' version: 19.2.4 @@ -1189,93 +1189,10 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.29.0': - resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.29.0': - resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.29.1': - resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.28.6': - resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.28.6': - resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.28.6': - resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.28.6': - resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.28.6': - resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.29.0': - resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-transform-react-jsx-self@7.27.1': - resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.27.1': - resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/runtime@7.28.6': resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} - engines: {node: '>=6.9.0'} - '@base-ui/react@1.2.0': resolution: {integrity: sha512-O6aEQHcm+QyGTFY28xuwRD3SEJGZOBDpyjN2WvpfWYFVhg+3zfXPysAILqtM0C1kWC82MccOE/v1j+GHXE4qIw==} engines: {node: '>=14.0.0'} @@ -2751,11 +2668,11 @@ packages: cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.3': - resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} + '@rolldown/pluginutils@1.0.0-rc.5': + resolution: {integrity: sha512-RxlLX/DPoarZ9PtxVrQgZhPoor987YtKQqCo5zkjX+0S0yLJ7Vv515Wk6+xtTL67VONKJKxETWZwuZjss2idYw==} - '@rolldown/pluginutils@1.0.0-rc.4': - resolution: {integrity: sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==} + '@rolldown/pluginutils@1.0.0-rc.7': + resolution: {integrity: sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==} '@rolldown/pluginutils@1.0.0-rc.9': resolution: {integrity: sha512-w6oiRWgEBl04QkFZgmW+jnU1EC9b57Oihi2ot3HNWIQRqgHp5PnYDia5iZ5FF7rpa4EQdiqMDXjlqKGXBhsoXw==} @@ -3175,18 +3092,6 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.28.0': - resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -3290,14 +3195,21 @@ packages: resolution: {integrity: sha512-hBcWIOppZV14bi+eAmCZj8Elj8hVSUZJTpf1lgGBhVD85pervzQ1poM/qYfFUlPraYSZYP+ASg6To5BwYmUSGQ==} engines: {node: '>=16'} - '@vitejs/plugin-react@5.1.4': - resolution: {integrity: sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==} + '@vitejs/plugin-react@6.0.1': + resolution: {integrity: sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 + babel-plugin-react-compiler: ^1.0.0 + vite: ^8.0.0 + peerDependenciesMeta: + '@rolldown/plugin-babel': + optional: true + babel-plugin-react-compiler: + optional: true - '@vitejs/plugin-rsc@0.5.20': - resolution: {integrity: sha512-JHPqfR8SSE2oNzCDRoyzEpbgxCxDks0PJAlo0KpK+OldYUxvozHroYpn0QtSdbZWq9YQ/ok1JUJ3GMc1xOmN0g==} + '@vitejs/plugin-rsc@0.5.21': + resolution: {integrity: sha512-uNayLT8IKvWoznvQyfwKuGiEFV28o7lxUDnw/Av36VCuGpDFZnMmvVCwR37gTvnSmnpul9V0tdJqY3tBKEaDqw==} peerDependencies: react: '*' react-dom: '*' @@ -3564,11 +3476,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} @@ -3633,9 +3540,6 @@ packages: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@1.1.1: resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} @@ -3750,9 +3654,6 @@ packages: resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} engines: {node: '>=0.3.1'} - electron-to-chromium@1.5.307: - resolution: {integrity: sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==} - emoji-regex-xs@2.0.1: resolution: {integrity: sha512-1QFuh8l7LqUcKe24LsPUNzjrzJQ7pgRwp1QMcZ5MX6mFplk2zQ08NVCM84++1cveaUUYtcCYHmeFEuNg16sU4g==} engines: {node: '>=10.0.0'} @@ -3797,10 +3698,6 @@ packages: engines: {node: '>=18'} hasBin: true - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -4014,10 +3911,6 @@ packages: next: optional: true - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - get-nonce@1.0.1: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} @@ -4155,9 +4048,6 @@ packages: jose@6.1.3: resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} @@ -4165,16 +4055,6 @@ packages: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -4340,9 +4220,6 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@0.577.0: resolution: {integrity: sha512-4LjoFv2eEPwYDPg/CUdBJQSDfPyzXCRrVW1X7jrx/trgxnxkHFjnVZINbzvzxjN70dxychOfg+FTYwBiS3pQ5A==} peerDependencies: @@ -4673,9 +4550,6 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-releases@2.0.36: - resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} - npm-to-yarn@3.0.1: resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4860,10 +4734,6 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-refresh@0.18.0: - resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} - engines: {node: '>=0.10.0'} - react-remove-scroll-bar@2.3.8: resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} @@ -4998,10 +4868,6 @@ packages: scroll-into-view-if-needed@3.1.0: resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -5298,12 +5164,6 @@ packages: uploadthing: optional: true - update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -5438,9 +5298,6 @@ packages: utf-8-validate: optional: true - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yoga-layout@3.2.1: resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} @@ -5466,120 +5323,8 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@babel/code-frame@7.29.0': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.29.0': {} - - '@babel/core@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.29.1': - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - - '@babel/helper-compilation-targets@7.28.6': - dependencies: - '@babel/compat-data': 7.29.0 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-globals@7.28.0': {} - - '@babel/helper-module-imports@7.28.6': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.28.6': {} - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helpers@7.28.6': - dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - - '@babel/parser@7.29.0': - dependencies: - '@babel/types': 7.29.0 - - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/runtime@7.28.6': {} - '@babel/template@7.28.6': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - - '@babel/traverse@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@base-ui/react@1.2.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@babel/runtime': 7.28.6 @@ -6716,9 +6461,9 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.0.0-rc.9': optional: true - '@rolldown/pluginutils@1.0.0-rc.3': {} + '@rolldown/pluginutils@1.0.0-rc.5': {} - '@rolldown/pluginutils@1.0.0-rc.4': {} + '@rolldown/pluginutils@1.0.0-rc.7': {} '@rolldown/pluginutils@1.0.0-rc.9': {} @@ -7050,27 +6795,6 @@ snapshots: tslib: 2.8.1 optional: true - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@types/babel__generator': 7.27.0 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.28.0 - - '@types/babel__generator@7.27.0': - dependencies: - '@babel/types': 7.29.0 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - - '@types/babel__traverse@7.28.0': - dependencies: - '@babel/types': 7.29.0 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -7166,21 +6890,14 @@ snapshots: '@resvg/resvg-wasm': 2.4.0 satori: 0.16.0 - '@vitejs/plugin-react@5.1.4(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))': + '@vitejs/plugin-react@6.0.1(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))': dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) - '@rolldown/pluginutils': 1.0.0-rc.3 - '@types/babel__core': 7.20.5 - react-refresh: 0.18.0 + '@rolldown/pluginutils': 1.0.0-rc.7 vite: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3)' - transitivePeerDependencies: - - supports-color - '@vitejs/plugin-rsc@0.5.20(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': + '@vitejs/plugin-rsc@0.5.21(@voidzero-dev/vite-plus-core@0.1.12(@types/node@25.2.3)(esbuild@0.27.3)(jiti@2.6.1)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react-server-dom-webpack@19.2.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': dependencies: - '@rolldown/pluginutils': 1.0.0-rc.4 + '@rolldown/pluginutils': 1.0.0-rc.5 es-module-lexer: 2.0.0 estree-walker: 3.0.3 magic-string: 0.30.21 @@ -7346,14 +7063,6 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.28.1: - dependencies: - baseline-browser-mapping: 2.10.0 - caniuse-lite: 1.0.30001776 - electron-to-chromium: 1.5.307 - node-releases: 2.0.36 - update-browserslist-db: 1.2.3(browserslist@4.28.1) - buffer@5.7.1: dependencies: base64-js: 1.5.1 @@ -7409,8 +7118,6 @@ snapshots: consola@3.4.2: {} - convert-source-map@2.0.0: {} - cookie@1.1.1: {} cross-spawn@7.0.6: @@ -7479,8 +7186,6 @@ snapshots: diff@5.2.2: {} - electron-to-chromium@1.5.307: {} - emoji-regex-xs@2.0.1: {} end-of-stream@1.4.5: @@ -7551,8 +7256,6 @@ snapshots: '@esbuild/win32-ia32': 0.27.3 '@esbuild/win32-x64': 0.27.3 - escalade@3.2.0: {} - escape-html@1.0.3: {} escape-string-regexp@5.0.0: {} @@ -7752,8 +7455,6 @@ snapshots: - '@types/react-dom' - tailwindcss - gensync@1.0.0-beta.2: {} - get-nonce@1.0.1: {} github-from-package@0.0.0: {} @@ -7947,18 +7648,12 @@ snapshots: jose@6.1.3: {} - js-tokens@4.0.0: {} - js-tokens@9.0.1: {} js-yaml@4.1.1: dependencies: argparse: 2.0.1 - jsesc@3.1.0: {} - - json5@2.2.3: {} - kleur@4.1.5: {} kysely@0.28.11: {} @@ -8070,10 +7765,6 @@ snapshots: longest-streak@3.1.0: {} - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - lucide-react@0.577.0(react@19.2.4): dependencies: react: 19.2.4 @@ -8682,8 +8373,6 @@ snapshots: node-addon-api@7.1.1: {} - node-releases@2.0.36: {} - npm-to-yarn@3.0.1: {} nuqs@2.8.8(next@16.1.7(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): @@ -8906,8 +8595,6 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - react-refresh@0.18.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.4): dependencies: react: 19.2.4 @@ -9113,8 +8800,6 @@ snapshots: dependencies: compute-scroll-into-view: 3.1.1 - semver@6.3.1: {} - semver@7.7.4: {} server-only@0.0.1: {} @@ -9358,12 +9043,6 @@ snapshots: db0: 0.3.4(better-sqlite3@12.6.2) ofetch: 2.0.0-alpha.3 - update-browserslist-db@1.2.3(browserslist@4.28.1): - dependencies: - browserslist: 4.28.1 - escalade: 3.2.0 - picocolors: 1.1.1 - use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.4): dependencies: react: 19.2.4 @@ -9531,8 +9210,6 @@ snapshots: ws@8.19.0: {} - yallist@3.1.1: {} - yoga-layout@3.2.1: {} youch-core@0.3.3: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4e36bd030..b053274fc 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -31,8 +31,8 @@ catalog: "@typescript/native-preview": ^7.0.0-dev.20260213.1 "@unpic/react": ^1.0.2 "@vercel/og": ^0.8.6 - "@vitejs/plugin-react": ^5.1.4 - "@vitejs/plugin-rsc": ^0.5.19 + "@vitejs/plugin-react": ^6.0.1 + "@vitejs/plugin-rsc": ^0.5.21 better-auth: ^1.4.0 better-sqlite3: ^12.0.0 class-variance-authority: ^0.7.1 diff --git a/tests/build-optimization.test.ts b/tests/build-optimization.test.ts index 261309b7e..dea6c6e6a 100644 --- a/tests/build-optimization.test.ts +++ b/tests/build-optimization.test.ts @@ -2,7 +2,7 @@ * Build optimization tests — verifies tree-shaking and chunking configuration * is correctly applied to client builds. * - * Tests the treeshake config, manualChunks function, and experimentalMinChunkSize + * Tests the treeshake config, manualChunks function, and minimum chunk sizing * to ensure large barrel-exporting libraries (e.g. mermaid) produce smaller bundles. */ import fsp from "node:fs/promises"; @@ -35,6 +35,14 @@ afterEach(() => { } }); +function getBuildBundlerOptions(result: any) { + return result.build?.rolldownOptions ?? result.build?.rollupOptions; +} + +function getEnvBuildBundlerOptions(env: any) { + return env?.build?.rolldownOptions ?? env?.build?.rollupOptions; +} + // ─── clientTreeshakeConfig ──────────────────────────────────────────────────── describe("clientTreeshakeConfig", () => { @@ -377,8 +385,8 @@ describe("treeshake config integration", () => { }; const result = await (mainPlugin as any).config(mockConfig, { command: "build" }); - // treeshake should be set on rollupOptions for non-SSR builds - expect(result.build.rollupOptions.treeshake).toEqual({ + // treeshake should be set on bundler options for non-SSR builds + expect(getBuildBundlerOptions(result).treeshake).toEqual({ preset: "recommended", moduleSideEffects: "no-external", }); @@ -420,7 +428,7 @@ describe("treeshake config integration", () => { const result = await (mainPlugin as any).config(mockConfig, { command: "build" }); // treeshake should NOT be set for SSR builds - expect(result.build.rollupOptions.treeshake).toBeUndefined(); + expect(getBuildBundlerOptions(result).treeshake).toBeUndefined(); } finally { await fsp.rm(tmpDir, { recursive: true, force: true }).catch(() => {}); } @@ -429,7 +437,7 @@ describe("treeshake config integration", () => { it("multi-env build scopes treeshake to client environment only", async () => { // In App Router builds (multi-env), treeshake must NOT be set globally // (which would leak into RSC/SSR) — it should only appear on the client - // environment's rollupOptions. + // environment's bundler options. const vinext = (await import("../packages/vinext/src/index.js")).default; const plugins = vinext(); @@ -466,24 +474,24 @@ describe("treeshake config integration", () => { }; const result = await (mainPlugin as any).config(mockConfig, { command: "build" }); - // Global rollupOptions should NOT have treeshake (would leak into RSC/SSR) - expect(result.build.rollupOptions.treeshake).toBeUndefined(); + // Global bundler options should NOT have treeshake (would leak into RSC/SSR) + expect(getBuildBundlerOptions(result).treeshake).toBeUndefined(); // Client environment should have treeshake - expect(result.environments.client.build.rollupOptions.treeshake).toEqual({ + expect(getEnvBuildBundlerOptions(result.environments.client).treeshake).toEqual({ preset: "recommended", moduleSideEffects: "no-external", }); // RSC and SSR environments should NOT have treeshake - expect(result.environments.rsc.build?.rollupOptions?.treeshake).toBeUndefined(); - expect(result.environments.ssr.build?.rollupOptions?.treeshake).toBeUndefined(); + expect(getEnvBuildBundlerOptions(result.environments.rsc)?.treeshake).toBeUndefined(); + expect(getEnvBuildBundlerOptions(result.environments.ssr)?.treeshake).toBeUndefined(); } finally { await fsp.rm(tmpDir, { recursive: true, force: true }).catch(() => {}); } }, 15000); - it("client output config includes experimentalMinChunkSize", async () => { + it("client output config includes minimum chunk sizing", async () => { const vinext = (await import("../packages/vinext/src/index.js")).default; const plugins = vinext(); @@ -516,10 +524,14 @@ describe("treeshake config integration", () => { const result = await (mainPlugin as any).config(mockConfig, { command: "build" }); // For standalone client builds (non-SSR, non-multi-env), - // output config should include experimentalMinChunkSize - const output = result.build.rollupOptions.output; + // output config should include the min chunk size setting. + const output = getBuildBundlerOptions(result).output; expect(output).toBeDefined(); - expect(output.experimentalMinChunkSize).toBe(10_000); + if (output.codeSplitting) { + expect(output.codeSplitting.minSize).toBe(10_000); + } else { + expect(output.experimentalMinChunkSize).toBe(10_000); + } } finally { await fsp.rm(tmpDir, { recursive: true, force: true }).catch(() => {}); } diff --git a/tests/pages-router.test.ts b/tests/pages-router.test.ts index 3b7bb8019..a2547e19f 100644 --- a/tests/pages-router.test.ts +++ b/tests/pages-router.test.ts @@ -21,6 +21,10 @@ type ClientBuildManifestEntry = { assets?: string[]; }; +function getBuildBundlerOptions(result: any) { + return result.build?.rolldownOptions ?? result.build?.rollupOptions; +} + function writeEncodedSlashPagesFixture(rootDir: string): void { fs.mkdirSync(path.join(rootDir, "pages", "a"), { recursive: true }); const nmLink = path.join(rootDir, "node_modules"); @@ -1122,20 +1126,21 @@ describe("Plugin config", () => { const result = await configPlugin.config({ root: FIXTURE_DIR, plugins: [] }); expect(result.build).toBeDefined(); - expect(result.build.rollupOptions).toBeDefined(); - expect(result.build.rollupOptions.onwarn).toBeDefined(); + const bundlerOptions = getBuildBundlerOptions(result); + expect(bundlerOptions).toBeDefined(); + expect(bundlerOptions.onwarn).toBeDefined(); const defaultHandler = vi.fn(); // "use client" MODULE_LEVEL_DIRECTIVE warnings should be silenced - result.build.rollupOptions.onwarn( + bundlerOptions.onwarn( { code: "MODULE_LEVEL_DIRECTIVE", message: '"use client" was ignored' }, defaultHandler, ); expect(defaultHandler).not.toHaveBeenCalled(); // "use server" MODULE_LEVEL_DIRECTIVE warnings should be silenced - result.build.rollupOptions.onwarn( + bundlerOptions.onwarn( { code: "MODULE_LEVEL_DIRECTIVE", message: '"use server" was ignored' }, defaultHandler, ); @@ -1146,13 +1151,13 @@ describe("Plugin config", () => { code: "MODULE_LEVEL_DIRECTIVE", message: '"use strict" was ignored', }; - result.build.rollupOptions.onwarn(otherDirectiveWarning, defaultHandler); + bundlerOptions.onwarn(otherDirectiveWarning, defaultHandler); expect(defaultHandler).toHaveBeenCalledWith(otherDirectiveWarning); // Other warning codes should pass through to the default handler defaultHandler.mockClear(); const otherWarning = { code: "CIRCULAR_DEPENDENCY", message: "circular" }; - result.build.rollupOptions.onwarn(otherWarning, defaultHandler); + bundlerOptions.onwarn(otherWarning, defaultHandler); expect(defaultHandler).toHaveBeenCalledWith(otherWarning); }); @@ -1168,10 +1173,11 @@ describe("Plugin config", () => { build: { rollupOptions: { onwarn: userOnwarn } }, }); + const bundlerOptions = getBuildBundlerOptions(result); const defaultHandler = vi.fn(); // "use client" should still be suppressed (user handler NOT called) - result.build.rollupOptions.onwarn( + bundlerOptions.onwarn( { code: "MODULE_LEVEL_DIRECTIVE", message: '"use client" was ignored' }, defaultHandler, ); @@ -1180,7 +1186,7 @@ describe("Plugin config", () => { // Other warnings should be forwarded to the user's handler const otherWarning = { code: "CIRCULAR_DEPENDENCY", message: "circular" }; - result.build.rollupOptions.onwarn(otherWarning, defaultHandler); + bundlerOptions.onwarn(otherWarning, defaultHandler); expect(userOnwarn).toHaveBeenCalledWith(otherWarning, defaultHandler); expect(defaultHandler).not.toHaveBeenCalled(); });