vite-plus 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/binding/index.cjs +137 -55
  2. package/binding/index.d.cts +40 -0
  3. package/dist/{agent-C59HKB4Y.js → agent-Cu6-tXIP.js} +2 -2
  4. package/dist/bin.js +5 -5
  5. package/dist/config/bin.js +2 -2
  6. package/dist/{constants-IhOditRA.js → constants-C2dTOTe-.js} +1 -1
  7. package/dist/create/bin.js +84 -65
  8. package/dist/{define-config-DpAPETDf.cjs → define-config-D0mevyb3.cjs} +1 -1
  9. package/dist/{define-config-DAaCa0U_.js → define-config-IgzmnvvV.js} +1 -1
  10. package/dist/define-config.cjs +1 -1
  11. package/dist/define-config.js +1 -1
  12. package/dist/{editor-QOIGtmH4.js → editor-4sjlHmUh.js} +17 -6
  13. package/dist/index.cjs +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/lint-plugins.cjs +1 -1
  16. package/dist/migration/bin.js +6 -6
  17. package/dist/{oxlint-plugin-config-BU42tr8y.js → oxlint-plugin-config-BVqEe9KY.js} +1 -1
  18. package/dist/oxlint-plugin.js +1 -1
  19. package/dist/pack-bin.js +1 -1
  20. package/dist/{package-BB-Jh_z3.js → package-CHH8jWan.js} +1 -1
  21. package/dist/{prompts-CujFOJXu.js → prompts-k14KgthC.js} +1 -1
  22. package/dist/{resolve-vite-config-CHHjsjKJ.js → resolve-vite-config-BqvS2P98.js} +2 -2
  23. package/dist/{resolve-vite-config-6Nox70uP.js → resolve-vite-config-CTOTuqTi.js} +1 -1
  24. package/dist/staged/bin.js +1 -1
  25. package/dist/toolchain.js +7 -7
  26. package/dist/toolchain.json +7 -7
  27. package/dist/{tsconfig-DCtWfQPA.js → tsconfig-C3h9CVTA.js} +2 -2
  28. package/dist/{tsconfig-MXktI3SX.js → tsconfig-euB-GmIE.js} +1 -1
  29. package/dist/version.js +2 -2
  30. package/dist/versions.js +3 -3
  31. package/docs/config/staged.md +1 -2
  32. package/docs/guide/ci.md +28 -31
  33. package/docs/guide/commit-hooks.md +11 -34
  34. package/docs/guide/create.md +1 -2
  35. package/docs/guide/docker.md +20 -68
  36. package/docs/guide/env.md +30 -20
  37. package/docs/guide/global-cli.md +426 -0
  38. package/docs/guide/ide-integration.md +1 -2
  39. package/docs/guide/implode.md +14 -1
  40. package/docs/guide/index.md +37 -34
  41. package/docs/guide/install.md +17 -19
  42. package/docs/guide/lint.md +3 -9
  43. package/docs/guide/local-cli.md +123 -0
  44. package/docs/guide/migrate-rules.md +93 -290
  45. package/docs/guide/migrate.md +5 -48
  46. package/docs/guide/run.md +1 -1
  47. package/docs/guide/troubleshooting.md +3 -8
  48. package/docs/guide/upgrade-project.md +61 -0
  49. package/docs/guide/upgrade.md +17 -62
  50. package/package.json +17 -17
  51. package/docs/guide/installer-env-vars.md +0 -286
@@ -1,18 +1,18 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "../rolldown-runtime-CMFfr-1z.js";
2
2
  import { t as renderCliDoc } from "../help-BmKpeOP9.js";
3
3
  import { a as muted, i as log, o as printHeader, r as formatDuration, s as success, t as accent } from "../terminal-MKGAuy-p.js";
4
- import { u as VITE_PLUS_NAME } from "../constants-IhOditRA.js";
4
+ import { u as VITE_PLUS_NAME } from "../constants-C2dTOTe-.js";
5
5
  import { i as readJsonFile, n as editJsonFile } from "../json-cULBl7Pi.js";
6
- import { o as fetchNpmResource, r as getScopeFromPackageName, s as getNpmRegistry, t as checkNpmPackageExists } from "../package-BB-Jh_z3.js";
7
- import { i as hasViteConfig, o as resolveViteConfig, r as findWorkspaceRoot, t as findViteConfig } from "../resolve-vite-config-CHHjsjKJ.js";
8
- import { C as multiselect, D as text, E as spinner, O as require_picocolors, S as log$1, T as select, a as resolveGitInit, c as selectPackageManager, d as readYamlFile, h as resolveApproveBuildTargets, i as promptGitHooks, k as isCancel, m as detectGatedBuilds, n as defaultInteractive, o as runViteFmt, p as approveBuilds, r as downloadPackageManager$1, s as runViteInstall, t as cancelAndExit, u as editYamlFile, v as DependencyType, x as intro, y as PackageManager } from "../prompts-CujFOJXu.js";
6
+ import { o as fetchNpmResource, r as getScopeFromPackageName, s as getNpmRegistry, t as checkNpmPackageExists } from "../package-CHH8jWan.js";
7
+ import { i as hasViteConfig, o as resolveViteConfig, r as findWorkspaceRoot, t as findViteConfig } from "../resolve-vite-config-BqvS2P98.js";
8
+ import { C as multiselect, D as text, E as spinner, O as require_picocolors, S as log$1, T as select, a as resolveGitInit, c as selectPackageManager, d as readYamlFile, h as resolveApproveBuildTargets, i as promptGitHooks, k as isCancel, m as detectGatedBuilds, n as defaultInteractive, o as runViteFmt, p as approveBuilds, r as downloadPackageManager$1, s as runViteInstall, t as cancelAndExit, u as editYamlFile, v as DependencyType, x as intro, y as PackageManager } from "../prompts-k14KgthC.js";
9
9
  import { t as require_semver } from "../semver-CaDAb8vV.js";
10
- import { a as selectAgentTargets, c as writeCopilotSetupWorkflow, d as templatesDir, l as displayRelative, r as detectExistingAgentTargetPaths, s as writeAgentInstructions, t as COPILOT_AGENT_ID } from "../agent-C59HKB4Y.js";
11
- import { F as addFrameworkShim, I as detectFramework, K as promptPrettierMigration, L as hasFrameworkShim, M as isBingoTemplate, N as updatePackageJsonWithDeps, P as updateWorkspaceConfig, Q as promptEslintMigration, S as injectCreateDefaultTemplate, V as promptTsupMigration, W as detectPrettierProject, Y as detectEslintProject, _ as installGitHooks, a as selectEditors, b as findGitRoot, c as rewriteMonorepoProject, h as setPackageManager, j as detectWorkspace$1, l as rewriteStandaloneProject, n as detectExistingEditors, o as writeEditorConfigs, s as rewriteMonorepo, x as initGitRepository, y as shouldSkipStagedMigrationForHooks, z as detectTsupProject } from "../editor-QOIGtmH4.js";
10
+ import { a as selectAgentTargets, c as writeCopilotSetupWorkflow, d as templatesDir, l as displayRelative, r as detectExistingAgentTargetPaths, s as writeAgentInstructions, t as COPILOT_AGENT_ID } from "../agent-Cu6-tXIP.js";
11
+ import { F as addFrameworkShim, I as detectFramework, K as promptPrettierMigration, L as hasFrameworkShim, M as isBingoTemplate, N as updatePackageJsonWithDeps, P as updateWorkspaceConfig, Q as promptEslintMigration, S as injectCreateDefaultTemplate, V as promptTsupMigration, W as detectPrettierProject, Y as detectEslintProject, _ as installGitHooks, a as selectEditors, b as findGitRoot, c as rewriteMonorepoProject, h as setPackageManager, j as detectWorkspace$1, l as rewriteStandaloneProject, n as detectExistingEditors, o as writeEditorConfigs, s as rewriteMonorepo, x as initGitRepository, y as shouldSkipStagedMigrationForHooks, z as detectTsupProject } from "../editor-4sjlHmUh.js";
12
12
  import { n as runCommandSilently, t as runCommand$1 } from "../command-CguLh2KL.js";
13
13
  import { t as unwrapCliParseOutcome } from "../cli-parse-DHE8NrBU.js";
14
14
  import path from "node:path";
15
- import { getVpDirs, parseCreateArgs, runCommand, upsertJsonConfig, vitePlusHeader } from "../../binding/index.js";
15
+ import { getVpDirs, parseCreateArgs, removeConfigKey, runCommand, upsertJsonConfig, vitePlusHeader } from "../../binding/index.js";
16
16
  import { styleText } from "node:util";
17
17
  import fs from "node:fs";
18
18
  import os from "node:os";
@@ -4476,64 +4476,6 @@ function autoFixRemoteTemplateCommand(templateInfo, workspaceInfo) {
4476
4476
  }
4477
4477
  }
4478
4478
  //#endregion
4479
- //#region src/create/templates/builtin.ts
4480
- async function executeBuiltinTemplate(workspaceInfo, templateInfo, options) {
4481
- assert(templateInfo.targetDir, "targetDir is required");
4482
- assert(templateInfo.packageName, "packageName is required");
4483
- if (templateInfo.command === BuiltinTemplate.generator) return await executeGeneratorScaffold(workspaceInfo, templateInfo, options);
4484
- if (templateInfo.command === BuiltinTemplate.application) {
4485
- templateInfo.command = "create-vite@latest";
4486
- if (!templateInfo.interactive) templateInfo.args.push("--no-interactive");
4487
- templateInfo.args.unshift(templateInfo.targetDir);
4488
- } else if (templateInfo.command === BuiltinTemplate.library) {
4489
- const libraryTemplateInfo = discoverTemplate(LibraryTemplateRepo, [templateInfo.targetDir], workspaceInfo);
4490
- const result = await runRemoteTemplateCommand(workspaceInfo, workspaceInfo.rootDir, libraryTemplateInfo, false, options?.silent ?? false);
4491
- if (result.exitCode !== 0) return { exitCode: result.exitCode };
4492
- setPackageName(path.join(workspaceInfo.rootDir, templateInfo.targetDir), templateInfo.packageName);
4493
- return {
4494
- ...result,
4495
- projectDir: templateInfo.targetDir
4496
- };
4497
- }
4498
- if (templateInfo.command.startsWith("vite:")) {
4499
- if (!options?.silent) log$1.error(`Unknown builtin template "${templateInfo.command}". Run ${import_picocolors.default.yellow("vp create --list")} to see available templates.`);
4500
- return { exitCode: 1 };
4501
- }
4502
- const result = await runRemoteTemplateCommand(workspaceInfo, workspaceInfo.rootDir, templateInfo, false, options?.silent ?? false);
4503
- if (result.exitCode !== 0) return { exitCode: result.exitCode };
4504
- setPackageName(path.join(workspaceInfo.rootDir, templateInfo.targetDir), templateInfo.packageName);
4505
- return {
4506
- ...result,
4507
- projectDir: templateInfo.targetDir
4508
- };
4509
- }
4510
- //#endregion
4511
- //#region src/create/templates/bundled.ts
4512
- /**
4513
- * Scaffold a bundled template by copying the pre-extracted directory at
4514
- * `localPath` into `workspaceInfo.rootDir/targetDir`.
4515
- */
4516
- async function executeBundledTemplate(workspaceInfo, templateInfo) {
4517
- assert(templateInfo.localPath, "localPath is required for bundled templates");
4518
- assert(templateInfo.targetDir, "targetDir is required");
4519
- assert(templateInfo.packageName, "packageName is required");
4520
- const destDir = path.join(workspaceInfo.rootDir, templateInfo.targetDir);
4521
- try {
4522
- copyDir(templateInfo.localPath, destDir);
4523
- } catch (error) {
4524
- if (error.code === "ENOENT") throw new Error(`bundled template directory not found: ${templateInfo.localPath}`, { cause: error });
4525
- throw error;
4526
- }
4527
- renameFiles(destDir);
4528
- try {
4529
- setPackageName(destDir, templateInfo.packageName);
4530
- } catch {}
4531
- return {
4532
- exitCode: 0,
4533
- projectDir: templateInfo.targetDir
4534
- };
4535
- }
4536
- //#endregion
4537
4479
  //#region src/create/templates/monorepo.ts
4538
4480
  const InitialMonorepoAppDir = "apps/website";
4539
4481
  async function executeMonorepoTemplate(workspaceInfo, templateInfo, options) {
@@ -4603,6 +4545,7 @@ async function executeMonorepoTemplate(workspaceInfo, templateInfo, options) {
4603
4545
  const libraryPackageName = workspaceInfo.monorepoScope ? `${workspaceInfo.monorepoScope}/utils` : "utils";
4604
4546
  const libraryProjectPath = path.join(fullPath, libraryDir);
4605
4547
  setPackageName(libraryProjectPath, libraryPackageName);
4548
+ removeNestedLibraryToolConfig(libraryProjectPath);
4606
4549
  rewriteMonorepoProject(libraryProjectPath, workspaceInfo.packageManager, void 0, options?.silent ?? false);
4607
4550
  alignMonorepoTypeScriptVersion(fullPath, appProjectPath, libraryProjectPath);
4608
4551
  return {
@@ -4611,6 +4554,22 @@ async function executeMonorepoTemplate(workspaceInfo, templateInfo, options) {
4611
4554
  };
4612
4555
  }
4613
4556
  /**
4557
+ * Remove the root-only lint and format options shipped by the standalone library template.
4558
+ *
4559
+ * The same remote template is also used by `vite:library`, where this config is
4560
+ * valid. A library created as a workspace member, however, gets its lint and
4561
+ * format config from the monorepo root, so retaining them here creates invalid
4562
+ * nested config.
4563
+ */
4564
+ function removeNestedLibraryToolConfig(projectPath) {
4565
+ const configPath = path.join(projectPath, "vite.config.ts");
4566
+ if (!fs.existsSync(configPath)) return;
4567
+ for (const configKey of ["lint", "fmt"]) {
4568
+ const result = removeConfigKey(configPath, configKey);
4569
+ if (result.updated) fs.writeFileSync(configPath, result.content);
4570
+ }
4571
+ }
4572
+ /**
4614
4573
  * Keep every scaffolded workspace member on the same TypeScript version.
4615
4574
  *
4616
4575
  * The app and library come from independently updated remote templates. If
@@ -4668,6 +4627,66 @@ function dropAliasedRuntimeDevDeps(appProjectPath, packageManager) {
4668
4627
  });
4669
4628
  }
4670
4629
  //#endregion
4630
+ //#region src/create/templates/builtin.ts
4631
+ async function executeBuiltinTemplate(workspaceInfo, templateInfo, options) {
4632
+ assert(templateInfo.targetDir, "targetDir is required");
4633
+ assert(templateInfo.packageName, "packageName is required");
4634
+ if (templateInfo.command === BuiltinTemplate.generator) return await executeGeneratorScaffold(workspaceInfo, templateInfo, options);
4635
+ if (templateInfo.command === BuiltinTemplate.application) {
4636
+ templateInfo.command = "create-vite@latest";
4637
+ if (!templateInfo.interactive) templateInfo.args.push("--no-interactive");
4638
+ templateInfo.args.unshift(templateInfo.targetDir);
4639
+ } else if (templateInfo.command === BuiltinTemplate.library) {
4640
+ const libraryTemplateInfo = discoverTemplate(LibraryTemplateRepo, [templateInfo.targetDir], workspaceInfo);
4641
+ const result = await runRemoteTemplateCommand(workspaceInfo, workspaceInfo.rootDir, libraryTemplateInfo, false, options?.silent ?? false);
4642
+ if (result.exitCode !== 0) return { exitCode: result.exitCode };
4643
+ const fullPath = path.join(workspaceInfo.rootDir, templateInfo.targetDir);
4644
+ setPackageName(fullPath, templateInfo.packageName);
4645
+ if (workspaceInfo.isMonorepo) removeNestedLibraryToolConfig(fullPath);
4646
+ return {
4647
+ ...result,
4648
+ projectDir: templateInfo.targetDir
4649
+ };
4650
+ }
4651
+ if (templateInfo.command.startsWith("vite:")) {
4652
+ if (!options?.silent) log$1.error(`Unknown builtin template "${templateInfo.command}". Run ${import_picocolors.default.yellow("vp create --list")} to see available templates.`);
4653
+ return { exitCode: 1 };
4654
+ }
4655
+ const result = await runRemoteTemplateCommand(workspaceInfo, workspaceInfo.rootDir, templateInfo, false, options?.silent ?? false);
4656
+ if (result.exitCode !== 0) return { exitCode: result.exitCode };
4657
+ setPackageName(path.join(workspaceInfo.rootDir, templateInfo.targetDir), templateInfo.packageName);
4658
+ return {
4659
+ ...result,
4660
+ projectDir: templateInfo.targetDir
4661
+ };
4662
+ }
4663
+ //#endregion
4664
+ //#region src/create/templates/bundled.ts
4665
+ /**
4666
+ * Scaffold a bundled template by copying the pre-extracted directory at
4667
+ * `localPath` into `workspaceInfo.rootDir/targetDir`.
4668
+ */
4669
+ async function executeBundledTemplate(workspaceInfo, templateInfo) {
4670
+ assert(templateInfo.localPath, "localPath is required for bundled templates");
4671
+ assert(templateInfo.targetDir, "targetDir is required");
4672
+ assert(templateInfo.packageName, "packageName is required");
4673
+ const destDir = path.join(workspaceInfo.rootDir, templateInfo.targetDir);
4674
+ try {
4675
+ copyDir(templateInfo.localPath, destDir);
4676
+ } catch (error) {
4677
+ if (error.code === "ENOENT") throw new Error(`bundled template directory not found: ${templateInfo.localPath}`, { cause: error });
4678
+ throw error;
4679
+ }
4680
+ renameFiles(destDir);
4681
+ try {
4682
+ setPackageName(destDir, templateInfo.packageName);
4683
+ } catch {}
4684
+ return {
4685
+ exitCode: 0,
4686
+ projectDir: templateInfo.targetDir
4687
+ };
4688
+ }
4689
+ //#endregion
4671
4690
  //#region src/create/bin.ts
4672
4691
  const listTemplatesMessage = renderCliDoc({
4673
4692
  usage: "vp create --list",
@@ -37,7 +37,7 @@ let node_module = require("node:module");
37
37
  let node_url = require("node:url");
38
38
  let vitest_config = require("vitest/config");
39
39
  //#region package.json
40
- var version = "0.3.2", VITE_PLUS_VERSION, VITEST_VERSION, CONFIG_METADATA_ENV;
40
+ var version = "0.3.3", VITE_PLUS_VERSION, VITEST_VERSION, CONFIG_METADATA_ENV;
41
41
  var init_constants = __esmMin((() => {
42
42
  VITE_PLUS_VERSION = process.env.VP_VERSION || version;
43
43
  VITEST_VERSION = "4.1.11";
@@ -1,4 +1,4 @@
1
- import { c as VITEST_VERSION, r as CONFIG_METADATA_ENV } from "./constants-IhOditRA.js";
1
+ import { c as VITEST_VERSION, r as CONFIG_METADATA_ENV } from "./constants-C2dTOTe-.js";
2
2
  import { createRequire } from "node:module";
3
3
  import path from "node:path";
4
4
  import { fileURLToPath } from "node:url";
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_define_config = require("./define-config-DpAPETDf.cjs");
2
+ const require_define_config = require("./define-config-D0mevyb3.cjs");
3
3
  require_define_config.init_define_config();
4
4
  exports.AUTO_INLINE_DEPS = require_define_config.AUTO_INLINE_DEPS;
5
5
  exports.assertCoverageProviderVersionMatch = require_define_config.assertCoverageProviderVersionMatch;
@@ -1,2 +1,2 @@
1
- import { a as defineConfig, c as lazyPlugins, i as computeAutoInlineList, l as resolveCoverageProviderToCheck, n as assertCoverageProviderVersionMatch, o as defineProject, r as checkCoverageProviderVersion, s as isVitestFamilySpecifier, t as AUTO_INLINE_DEPS, u as withConfigMetadataResolution } from "./define-config-DAaCa0U_.js";
1
+ import { a as defineConfig, c as lazyPlugins, i as computeAutoInlineList, l as resolveCoverageProviderToCheck, n as assertCoverageProviderVersionMatch, o as defineProject, r as checkCoverageProviderVersion, s as isVitestFamilySpecifier, t as AUTO_INLINE_DEPS, u as withConfigMetadataResolution } from "./define-config-IgzmnvvV.js";
2
2
  export { AUTO_INLINE_DEPS, assertCoverageProviderVersionMatch, checkCoverageProviderVersion, computeAutoInlineList, defineConfig, defineProject, isVitestFamilySpecifier, lazyPlugins, resolveCoverageProviderToCheck, withConfigMetadataResolution };
@@ -1,15 +1,15 @@
1
1
  import { r as __toESM } from "./rolldown-runtime-CMFfr-1z.js";
2
- import { a as SETUP_VP_VERSION, c as VITEST_VERSION, d as VITE_PLUS_OVERRIDE_PACKAGES, f as VITE_PLUS_VERSION, l as VITE_CONFIG_FILES, m as isForceOverrideMode, n as BASEURL_TSCONFIG_WARNING, o as TSDOWN_MIGRATION_SKILL_URL, s as VITEST_AGE_GATE_EXEMPT_PACKAGES, u as VITE_PLUS_NAME } from "./constants-IhOditRA.js";
3
- import { i as ensureVitePlusImportRuleDefaults, r as createDefaultVitePlusLintConfig } from "./oxlint-plugin-config-BU42tr8y.js";
2
+ import { a as SETUP_VP_VERSION, c as VITEST_VERSION, d as VITE_PLUS_OVERRIDE_PACKAGES, f as VITE_PLUS_VERSION, l as VITE_CONFIG_FILES, m as isForceOverrideMode, n as BASEURL_TSCONFIG_WARNING, o as TSDOWN_MIGRATION_SKILL_URL, s as VITEST_AGE_GATE_EXEMPT_PACKAGES, u as VITE_PLUS_NAME } from "./constants-C2dTOTe-.js";
3
+ import { i as ensureVitePlusImportRuleDefaults, r as createDefaultVitePlusLintConfig } from "./oxlint-plugin-config-BVqEe9KY.js";
4
4
  import { a as writeJsonFile, c as parse, i as readJsonFile, n as editJsonFile, o as applyEdits, r as isJsonFile, s as modify, t as detectFormattingOptions } from "./json-cULBl7Pi.js";
5
- import { n as detectPackageMetadata, r as getScopeFromPackageName } from "./package-BB-Jh_z3.js";
6
- import { C as multiselect, S as log, T as select, _ as getSpinner, b as confirm, d as readYamlFile, f as scalarString, g as getSilentSpinner, k as isCancel, t as cancelAndExit, u as editYamlFile, y as PackageManager } from "./prompts-CujFOJXu.js";
5
+ import { n as detectPackageMetadata, r as getScopeFromPackageName } from "./package-CHH8jWan.js";
6
+ import { C as multiselect, S as log, T as select, _ as getSpinner, b as confirm, d as readYamlFile, f as scalarString, g as getSilentSpinner, k as isCancel, t as cancelAndExit, u as editYamlFile, y as PackageManager } from "./prompts-k14KgthC.js";
7
7
  import { t as require_semver } from "./semver-CaDAb8vV.js";
8
- import { l as displayRelative, u as rulesDir } from "./agent-C59HKB4Y.js";
8
+ import { l as displayRelative, u as rulesDir } from "./agent-Cu6-tXIP.js";
9
9
  import { n as addMigrationWarning, t as addManualStep } from "./report-CK5TnTsr.js";
10
10
  import { n as runCommandSilently, r as require_cross_spawn } from "./command-CguLh2KL.js";
11
11
  import { t as require_dist } from "./dist-BDYZP12R.js";
12
- import { a as hasBaseUrlInTsconfig, c as hasVitestTypesInTsconfig, l as removeDeprecatedTsconfigFalseOption, n as findTsconfigFiles, s as hasTypesToRewriteInTsconfig, u as rewriteTypesInTsconfig } from "./tsconfig-DCtWfQPA.js";
12
+ import { a as hasBaseUrlInTsconfig, c as hasVitestTypesInTsconfig, l as removeDeprecatedTsconfigFalseOption, n as findTsconfigFiles, s as hasTypesToRewriteInTsconfig, u as rewriteTypesInTsconfig } from "./tsconfig-C3h9CVTA.js";
13
13
  import { n as extractOverrideTargetName, t as isAlignableVitestEcosystemPackage } from "./vitest-ecosystem-BiRqcaRI.js";
14
14
  import { i as findUnsafeHookInstallPath, t as SUPPORTED_GIT_HOOK_NAMES } from "./hooks-C-4gykWR.js";
15
15
  import path, { posix, win32 } from "node:path";
@@ -689,6 +689,14 @@ function jsPluginsToNamespaces(entries) {
689
689
  ns.delete("");
690
690
  return ns;
691
691
  }
692
+ function stripUnsupportedReactRefreshOption(rules) {
693
+ const rule = rules?.["react/only-export-components"];
694
+ if (!Array.isArray(rule)) return false;
695
+ const options = rule[1];
696
+ if (!options || typeof options !== "object" || Array.isArray(options) || !("allowCompoundComponents" in options)) return false;
697
+ delete options.allowCompoundComponents;
698
+ return true;
699
+ }
692
700
  /**
693
701
  * Sanitize the `.oxlintrc.json` produced by `@oxlint/migrate` (in-place)
694
702
  * before it gets merged into `vite.config.ts`. Drop references that
@@ -710,6 +718,7 @@ function jsPluginsToNamespaces(entries) {
710
718
  function sanitizeMigratedOxlintConfig(config, availablePackages, report) {
711
719
  const allDroppedJsPlugins = /* @__PURE__ */ new Set();
712
720
  const allDroppedPlugins = /* @__PURE__ */ new Set();
721
+ let droppedReactRefreshOption = stripUnsupportedReactRefreshOption(config.rules);
713
722
  const baseSplit = partitionJsPlugins(config.jsPlugins ?? [], availablePackages);
714
723
  for (const n of baseSplit.dropped) allDroppedJsPlugins.add(n);
715
724
  if (config.jsPlugins && baseSplit.dropped.length > 0) config.jsPlugins = baseSplit.kept;
@@ -726,6 +735,7 @@ function sanitizeMigratedOxlintConfig(config, availablePackages, report) {
726
735
  if (Object.keys(filtered).length !== Object.keys(config.rules).length) config.rules = filtered;
727
736
  }
728
737
  if (Array.isArray(config.overrides)) for (const override of config.overrides) {
738
+ if (stripUnsupportedReactRefreshOption(override.rules)) droppedReactRefreshOption = true;
729
739
  let overrideSurvivors = [];
730
740
  if (override.jsPlugins) {
731
741
  const split = partitionJsPlugins(override.jsPlugins, availablePackages);
@@ -746,6 +756,7 @@ function sanitizeMigratedOxlintConfig(config, availablePackages, report) {
746
756
  if (Object.keys(filtered).length !== Object.keys(override.rules).length) override.rules = filtered;
747
757
  }
748
758
  }
759
+ if (droppedReactRefreshOption) warnMigration("The bundled Oxlint does not support react/only-export-components.allowCompoundComponents. Removed this option from the migrated config; compound component exports may now report lint errors.", report);
749
760
  if (allDroppedJsPlugins.size > 0) warnMigration(`Stripped JS plugin reference(s) from the generated lint config: ${[...allDroppedJsPlugins].join(", ")}. No matching package is present in this workspace, so loading them at lint time would fail. If you want their Oxlint coverage back, install each package (e.g. \`vp install <name>\`) and add its name back to \`lint.jsPlugins\` in vite.config.ts.`, report);
750
761
  if (allDroppedPlugins.size > 0) warnMigration(`Stripped unknown plugin reference(s) from the generated lint config: ${[...allDroppedPlugins].join(", ")}. These aren't native Oxlint plugins and no surviving JS plugin contributes them.`, report);
751
762
  }
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_define_config = require("./define-config-DpAPETDf.cjs");
1
+ const require_define_config = require("./define-config-D0mevyb3.cjs");
2
2
  //#region src/index.cts
3
3
  const vite = require("vite");
4
4
  const { configDefaults, coverageConfigDefaults, defaultBrowserPort, defaultExclude, defaultInclude } = require("vitest/config");
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as defineConfig, c as lazyPlugins, o as defineProject } from "./define-config-DAaCa0U_.js";
1
+ import { a as defineConfig, c as lazyPlugins, o as defineProject } from "./define-config-IgzmnvvV.js";
2
2
  import { configDefaults, coverageConfigDefaults, defaultBrowserPort, defaultExclude, defaultInclude } from "vitest/config";
3
3
  export * from "vite";
4
4
  export { configDefaults, coverageConfigDefaults, defaultBrowserPort, defaultExclude, defaultInclude, defineConfig, defineProject, lazyPlugins };
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- require("./define-config-DpAPETDf.cjs");
2
+ require("./define-config-D0mevyb3.cjs");
3
3
  let _oxlint_plugins = require("@oxlint/plugins");
4
4
  Object.defineProperty(exports, "definePlugin", {
5
5
  enumerable: true,
@@ -1,15 +1,15 @@
1
1
  import { r as __toESM } from "../rolldown-runtime-CMFfr-1z.js";
2
2
  import { a as muted, c as warnMsg, i as log, o as printHeader, r as formatDuration, t as accent } from "../terminal-MKGAuy-p.js";
3
- import { a as SETUP_VP_VERSION, f as VITE_PLUS_VERSION, m as isForceOverrideMode } from "../constants-IhOditRA.js";
3
+ import { a as SETUP_VP_VERSION, f as VITE_PLUS_VERSION, m as isForceOverrideMode } from "../constants-C2dTOTe-.js";
4
4
  import { a as writeJsonFile, i as readJsonFile } from "../json-cULBl7Pi.js";
5
- import { a as readNearestPackageJson, i as hasVitePlusDependency } from "../package-BB-Jh_z3.js";
6
- import { E as spinner, S as log$1, T as select, b as confirm, c as selectPackageManager, i as promptGitHooks, k as isCancel, l as upgradeYarn, n as defaultInteractive, o as runViteFmt, r as downloadPackageManager$1, s as runViteInstall, t as cancelAndExit, w as outro, y as PackageManager } from "../prompts-CujFOJXu.js";
5
+ import { a as readNearestPackageJson, i as hasVitePlusDependency } from "../package-CHH8jWan.js";
6
+ import { E as spinner, S as log$1, T as select, b as confirm, c as selectPackageManager, i as promptGitHooks, k as isCancel, l as upgradeYarn, n as defaultInteractive, o as runViteFmt, r as downloadPackageManager$1, s as runViteInstall, t as cancelAndExit, w as outro, y as PackageManager } from "../prompts-k14KgthC.js";
7
7
  import { t as require_semver } from "../semver-CaDAb8vV.js";
8
- import { i as selectAgentTargetPaths, l as displayRelative, n as detectAgentConflicts, r as detectExistingAgentTargetPaths, s as writeAgentInstructions } from "../agent-C59HKB4Y.js";
8
+ import { i as selectAgentTargetPaths, l as displayRelative, n as detectAgentConflicts, r as detectExistingAgentTargetPaths, s as writeAgentInstructions } from "../agent-Cu6-tXIP.js";
9
9
  import { n as addMigrationWarning, r as createMigrationReport } from "../report-CK5TnTsr.js";
10
- import { $ as warnIncompatibleEslintIntegration, A as detectYarnPnpMode, B as migrateTsupToTsdown, C as injectLintTypeCheckDefaults, D as detectVitePlusBootstrapPending, E as collectToolchainVersionChanges, F as addFrameworkShim, G as migratePrettierToOxfmt, H as warnMissingTsupConfig, I as detectFramework, J as confirmEslintMigration, L as hasFrameworkShim, O as ensureVitePlusBootstrap, R as confirmTsupMigration, T as mergeViteConfigFiles, U as confirmPrettierMigration, W as detectPrettierProject, X as detectIncompatibleEslintIntegration, Y as detectEslintProject, Z as migrateEslintToOxlint, _ as installGitHooks, d as finalizeCoreMigrationForExistingVitePlus, et as warnLegacyEslintConfig, f as detectNodeVersionManagerFile, g as detectLegacyGitHooksMigrationCandidate, i as selectEditor, j as detectWorkspace$1, k as configureYarnNodeModulesMode, l as rewriteStandaloneProject, m as migrateSetupVpVersion, nt as checkViteVersion, o as writeEditorConfigs, p as migrateNodeVersionManagerFile, q as warnPackageLevelPrettier, r as isJsonLikeFile, rt as checkVitestVersion, s as rewriteMonorepo, t as detectEditorConflicts, tt as warnPackageLevelEslint, u as detectPendingCoreMigration, v as preflightGitHooksSetup, w as mergeTsdownConfigFile, y as shouldSkipStagedMigrationForHooks, z as detectTsupProject } from "../editor-QOIGtmH4.js";
10
+ import { $ as warnIncompatibleEslintIntegration, A as detectYarnPnpMode, B as migrateTsupToTsdown, C as injectLintTypeCheckDefaults, D as detectVitePlusBootstrapPending, E as collectToolchainVersionChanges, F as addFrameworkShim, G as migratePrettierToOxfmt, H as warnMissingTsupConfig, I as detectFramework, J as confirmEslintMigration, L as hasFrameworkShim, O as ensureVitePlusBootstrap, R as confirmTsupMigration, T as mergeViteConfigFiles, U as confirmPrettierMigration, W as detectPrettierProject, X as detectIncompatibleEslintIntegration, Y as detectEslintProject, Z as migrateEslintToOxlint, _ as installGitHooks, d as finalizeCoreMigrationForExistingVitePlus, et as warnLegacyEslintConfig, f as detectNodeVersionManagerFile, g as detectLegacyGitHooksMigrationCandidate, i as selectEditor, j as detectWorkspace$1, k as configureYarnNodeModulesMode, l as rewriteStandaloneProject, m as migrateSetupVpVersion, nt as checkViteVersion, o as writeEditorConfigs, p as migrateNodeVersionManagerFile, q as warnPackageLevelPrettier, r as isJsonLikeFile, rt as checkVitestVersion, s as rewriteMonorepo, t as detectEditorConflicts, tt as warnPackageLevelEslint, u as detectPendingCoreMigration, v as preflightGitHooksSetup, w as mergeTsdownConfigFile, y as shouldSkipStagedMigrationForHooks, z as detectTsupProject } from "../editor-4sjlHmUh.js";
11
11
  import { n as runCommandSilently } from "../command-CguLh2KL.js";
12
- import { a as hasBaseUrlInTsconfig, i as fixBaseUrlInTsconfig, t as confirmBaseUrlFix } from "../tsconfig-DCtWfQPA.js";
12
+ import { a as hasBaseUrlInTsconfig, i as fixBaseUrlInTsconfig, t as confirmBaseUrlFix } from "../tsconfig-C3h9CVTA.js";
13
13
  import { t as unwrapCliParseOutcome } from "../cli-parse-DHE8NrBU.js";
14
14
  import { t as ROLLDOWN_COMPAT_RESULT_PREFIX } from "../protocol-D99W10Qi.js";
15
15
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { u as VITE_PLUS_NAME } from "./constants-IhOditRA.js";
1
+ import { u as VITE_PLUS_NAME } from "./constants-C2dTOTe-.js";
2
2
  //#region src/oxlint-plugin-config.ts
3
3
  const VITE_PLUS_OXLINT_PLUGIN_NAME = VITE_PLUS_NAME;
4
4
  const VITE_PLUS_OXLINT_PLUGIN_SPECIFIER = `${VITE_PLUS_NAME}/oxlint-plugin`;
@@ -1,4 +1,4 @@
1
- import { n as VITE_PLUS_OXLINT_PLUGIN_NAME, t as PREFER_VITE_PLUS_IMPORTS_RULE_NAME } from "./oxlint-plugin-config-BU42tr8y.js";
1
+ import { n as VITE_PLUS_OXLINT_PLUGIN_NAME, t as PREFER_VITE_PLUS_IMPORTS_RULE_NAME } from "./oxlint-plugin-config-BVqEe9KY.js";
2
2
  import path from "node:path";
3
3
  import fs from "node:fs";
4
4
  import { definePlugin, defineRule } from "@oxlint/plugins";
package/dist/pack-bin.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { t as cac } from "./dist-DfmT__Aw.js";
3
- import { o as resolveViteConfig } from "./resolve-vite-config-CHHjsjKJ.js";
3
+ import { o as resolveViteConfig } from "./resolve-vite-config-BqvS2P98.js";
4
4
  import module from "node:module";
5
5
  import { buildWithConfigs, enableDebug, globalLogger, resolveUserConfig } from "vite/pack";
6
6
  //#region src/pack-bin.ts
@@ -1,4 +1,4 @@
1
- import "./constants-IhOditRA.js";
1
+ import "./constants-C2dTOTe-.js";
2
2
  import { i as readJsonFile } from "./json-cULBl7Pi.js";
3
3
  import { createRequire } from "node:module";
4
4
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "./rolldown-runtime-CMFfr-1z.js";
2
2
  import { t as accent } from "./terminal-MKGAuy-p.js";
3
- import { f as VITE_PLUS_VERSION } from "./constants-IhOditRA.js";
3
+ import { f as VITE_PLUS_VERSION } from "./constants-C2dTOTe-.js";
4
4
  import { a as writeJsonFile, i as readJsonFile } from "./json-cULBl7Pi.js";
5
5
  import { t as require_semver } from "./semver-CaDAb8vV.js";
6
6
  import { n as runCommandSilently } from "./command-CguLh2KL.js";
@@ -1,5 +1,5 @@
1
- import { l as VITE_CONFIG_FILES } from "./constants-IhOditRA.js";
2
- import { u as withConfigMetadataResolution } from "./define-config-DAaCa0U_.js";
1
+ import { l as VITE_CONFIG_FILES } from "./constants-C2dTOTe-.js";
2
+ import { u as withConfigMetadataResolution } from "./define-config-IgzmnvvV.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs";
5
5
  //#region src/resolve-vite-config.ts
@@ -1,2 +1,2 @@
1
- import { a as resolveUniversalViteConfig } from "./resolve-vite-config-CHHjsjKJ.js";
1
+ import { a as resolveUniversalViteConfig } from "./resolve-vite-config-BqvS2P98.js";
2
2
  export { resolveUniversalViteConfig };
@@ -1,6 +1,6 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "../rolldown-runtime-CMFfr-1z.js";
2
2
  import { i as log, n as errorMsg, o as printHeader } from "../terminal-MKGAuy-p.js";
3
- import { o as resolveViteConfig } from "../resolve-vite-config-CHHjsjKJ.js";
3
+ import { o as resolveViteConfig } from "../resolve-vite-config-BqvS2P98.js";
4
4
  import { t as unwrapCliParseOutcome } from "../cli-parse-DHE8NrBU.js";
5
5
  import { createRequire } from "node:module";
6
6
  import path, { basename, delimiter, dirname, normalize, resolve } from "node:path";
package/dist/toolchain.js CHANGED
@@ -4,7 +4,7 @@ export const toolchain = {
4
4
  {
5
5
  "id": "vite-plus",
6
6
  "name": "vite-plus",
7
- "version": "0.3.2",
7
+ "version": "0.3.3",
8
8
  "kind": "package",
9
9
  "delivery": [
10
10
  "dependency"
@@ -14,7 +14,7 @@ export const toolchain = {
14
14
  {
15
15
  "id": "vite-plus-core",
16
16
  "name": "@voidzero-dev/vite-plus-core",
17
- "version": "0.3.2",
17
+ "version": "0.3.3",
18
18
  "kind": "package",
19
19
  "delivery": [
20
20
  "dependency"
@@ -36,7 +36,7 @@ export const toolchain = {
36
36
  {
37
37
  "id": "rolldown",
38
38
  "name": "rolldown",
39
- "version": "1.2.8",
39
+ "version": "1.2.9",
40
40
  "kind": "tool",
41
41
  "delivery": [
42
42
  "bundled",
@@ -57,7 +57,7 @@ export const toolchain = {
57
57
  {
58
58
  "id": "oxlint",
59
59
  "name": "oxlint",
60
- "version": "1.82.0",
60
+ "version": "1.83.0",
61
61
  "kind": "tool",
62
62
  "delivery": [
63
63
  "dependency"
@@ -67,7 +67,7 @@ export const toolchain = {
67
67
  {
68
68
  "id": "oxfmt",
69
69
  "name": "oxfmt",
70
- "version": "0.67.0",
70
+ "version": "0.68.0",
71
71
  "kind": "tool",
72
72
  "delivery": [
73
73
  "dependency"
@@ -100,7 +100,7 @@ export const toolchain = {
100
100
  "id": "vite-task",
101
101
  "name": "vite-task",
102
102
  "revision": "d05b1dcdbaabaa69643ee0b89cebe3cd390957e9",
103
- "builtAt": "2026-09-14T14:39:37Z",
103
+ "builtAt": "2026-09-18T02:37:51Z",
104
104
  "kind": "tool",
105
105
  "delivery": [
106
106
  "compiled"
@@ -110,7 +110,7 @@ export const toolchain = {
110
110
  {
111
111
  "id": "oxc",
112
112
  "name": "oxc",
113
- "version": "0.149.0",
113
+ "version": "0.150.0",
114
114
  "kind": "engine",
115
115
  "delivery": [
116
116
  "compiled"
@@ -4,7 +4,7 @@
4
4
  {
5
5
  "id": "vite-plus",
6
6
  "name": "vite-plus",
7
- "version": "0.3.2",
7
+ "version": "0.3.3",
8
8
  "kind": "package",
9
9
  "delivery": [
10
10
  "dependency"
@@ -14,7 +14,7 @@
14
14
  {
15
15
  "id": "vite-plus-core",
16
16
  "name": "@voidzero-dev/vite-plus-core",
17
- "version": "0.3.2",
17
+ "version": "0.3.3",
18
18
  "kind": "package",
19
19
  "delivery": [
20
20
  "dependency"
@@ -36,7 +36,7 @@
36
36
  {
37
37
  "id": "rolldown",
38
38
  "name": "rolldown",
39
- "version": "1.2.8",
39
+ "version": "1.2.9",
40
40
  "kind": "tool",
41
41
  "delivery": [
42
42
  "bundled",
@@ -57,7 +57,7 @@
57
57
  {
58
58
  "id": "oxlint",
59
59
  "name": "oxlint",
60
- "version": "1.82.0",
60
+ "version": "1.83.0",
61
61
  "kind": "tool",
62
62
  "delivery": [
63
63
  "dependency"
@@ -67,7 +67,7 @@
67
67
  {
68
68
  "id": "oxfmt",
69
69
  "name": "oxfmt",
70
- "version": "0.67.0",
70
+ "version": "0.68.0",
71
71
  "kind": "tool",
72
72
  "delivery": [
73
73
  "dependency"
@@ -100,7 +100,7 @@
100
100
  "id": "vite-task",
101
101
  "name": "vite-task",
102
102
  "revision": "d05b1dcdbaabaa69643ee0b89cebe3cd390957e9",
103
- "builtAt": "2026-09-14T14:39:37Z",
103
+ "builtAt": "2026-09-18T02:37:51Z",
104
104
  "kind": "tool",
105
105
  "delivery": [
106
106
  "compiled"
@@ -110,7 +110,7 @@
110
110
  {
111
111
  "id": "oxc",
112
112
  "name": "oxc",
113
- "version": "0.149.0",
113
+ "version": "0.150.0",
114
114
  "kind": "engine",
115
115
  "delivery": [
116
116
  "compiled"
@@ -1,6 +1,6 @@
1
- import { p as createBaseUrlTsconfigFixArgs, t as BASEURL_TSCONFIG_FIX_PACKAGE } from "./constants-IhOditRA.js";
1
+ import { p as createBaseUrlTsconfigFixArgs, t as BASEURL_TSCONFIG_FIX_PACKAGE } from "./constants-C2dTOTe-.js";
2
2
  import { c as parse, o as applyEdits, s as modify } from "./json-cULBl7Pi.js";
3
- import { S as log, b as confirm, k as isCancel, t as cancelAndExit } from "./prompts-CujFOJXu.js";
3
+ import { S as log, b as confirm, k as isCancel, t as cancelAndExit } from "./prompts-k14KgthC.js";
4
4
  import { n as runCommandSilently } from "./command-CguLh2KL.js";
5
5
  import path from "node:path";
6
6
  import { styleText } from "node:util";
@@ -1,2 +1,2 @@
1
- import { a as hasBaseUrlInTsconfig, i as fixBaseUrlInTsconfig } from "./tsconfig-DCtWfQPA.js";
1
+ import { a as hasBaseUrlInTsconfig, i as fixBaseUrlInTsconfig } from "./tsconfig-C3h9CVTA.js";
2
2
  export { fixBaseUrlInTsconfig, hasBaseUrlInTsconfig };
package/dist/version.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { t as renderCliDoc } from "./help-BmKpeOP9.js";
2
2
  import { i as log, o as printHeader, t as accent } from "./terminal-MKGAuy-p.js";
3
- import { _ as version } from "./constants-IhOditRA.js";
4
- import { i as hasVitePlusDependency, n as detectPackageMetadata } from "./package-BB-Jh_z3.js";
3
+ import { _ as version } from "./constants-C2dTOTe-.js";
4
+ import { i as hasVitePlusDependency, n as detectPackageMetadata } from "./package-CHH8jWan.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
7
7
  //#region src/version.ts
package/dist/versions.js CHANGED
@@ -1,9 +1,9 @@
1
1
  export const versions = {
2
2
  "vite": "8.3.0",
3
- "rolldown": "1.2.8",
3
+ "rolldown": "1.2.9",
4
4
  "vitest": "4.1.11",
5
- "oxfmt": "0.67.0",
6
- "oxlint": "1.82.0",
5
+ "oxfmt": "0.68.0",
6
+ "oxlint": "1.83.0",
7
7
  "oxlint-tsgolint": "7.0.2001",
8
8
  "tsdown": "0.23.0"
9
9
  };
@@ -1,7 +1,6 @@
1
1
  # Staged Config
2
2
 
3
- `vp staged` reads staged-file rules from the `staged` block in `vite.config.ts`. See the
4
- [Commit hooks guide](/guide/commit-hooks).
3
+ `vp staged` reads staged-file rules from the `staged` block in `vite.config.ts`. See the [Commit hooks guide](/guide/commit-hooks).
5
4
 
6
5
  ## Example
7
6