vite-plus 0.2.2 → 0.2.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.
@@ -1,10 +1,10 @@
1
- import { o as VITEST_VERSION, r as CONFIG_METADATA_ENV } from "./constants-NeTOxrzV.js";
1
+ import { o as VITEST_VERSION, r as CONFIG_METADATA_ENV } from "./constants-CZ7Mnq-C.js";
2
2
  import { createRequire } from "node:module";
3
3
  import path from "node:path";
4
4
  import { readFileSync } from "node:fs";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { defineConfig, defineProject } from "vitest/config";
7
- //#region ../../node_modules/.pnpm/tsdown@0.22.3_@arethetypeswrong+core@0.18.2_@tsdown+css@0.22.3_@tsdown+exe@0.22.3_@type_7ab537c68b19946c2da2ea6b389f768f/node_modules/tsdown/esm-shims.js
7
+ //#region ../../node_modules/.pnpm/tsdown@0.22.3_@arethetypeswrong+core@0.18.2_@tsdown+css@0.22.3_@tsdown+exe@0.22.3_@type_b3805a6765df28d505319221a7193e18/node_modules/tsdown/esm-shims.js
8
8
  const getFilename = () => fileURLToPath(import.meta.url);
9
9
  const getDirname = () => path.dirname(getFilename());
10
10
  const __dirname = /* @__PURE__ */ getDirname();
@@ -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.2.2", VITE_PLUS_VERSION, VITEST_VERSION, CONFIG_METADATA_ENV;
40
+ var version = "0.2.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.9";
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_define_config = require("./define-config-CrA3lZhQ.cjs");
2
+ const require_define_config = require("./define-config-Dut6XD42.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-CSgy0zML.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-D2jo1xVA.js";
2
2
  export { AUTO_INLINE_DEPS, assertCoverageProviderVersionMatch, checkCoverageProviderVersion, computeAutoInlineList, defineConfig, defineProject, isVitestFamilySpecifier, lazyPlugins, resolveCoverageProviderToCheck, withConfigMetadataResolution };
@@ -1,6 +1,6 @@
1
- import { B as runCommandSilently, M as multiselect, P as select, R as isCancel, j as log, k as confirm, l as cancelAndExit, w as getSpinner } from "./tsconfig-fvpxgUq2.js";
1
+ import { B as runCommandSilently, M as multiselect, P as select, R as isCancel, j as log, k as confirm, l as cancelAndExit, w as getSpinner } from "./tsconfig-D6sTl0dN.js";
2
2
  import { a as writeJsonFile, c as parse, i as readJsonFile, n as editJsonFile, o as applyEdits, s as modify, t as detectFormattingOptions } from "./json-DiRs8ceZ.js";
3
- import { G as detectConfigs, J as warnMigration, U as PRETTIER_CONFIG_FILES, Y as displayRelative, z as rewriteToolLintStagedConfigFiles } from "./agent-D7O7mSeO.js";
3
+ import { G as detectConfigs, J as warnMigration, U as PRETTIER_CONFIG_FILES, Y as displayRelative, z as rewriteToolLintStagedConfigFiles } from "./agent-D3nZAMGI.js";
4
4
  import path from "node:path";
5
5
  import { rewritePrettier } from "../binding/index.js";
6
6
  import fs from "node:fs";
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_define_config = require("./define-config-CrA3lZhQ.cjs");
1
+ const require_define_config = require("./define-config-Dut6XD42.cjs");
2
2
  //#region src/index.cts
3
3
  const vite = require("@voidzero-dev/vite-plus-core");
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-CSgy0zML.js";
1
+ import { a as defineConfig, c as lazyPlugins, o as defineProject } from "./define-config-D2jo1xVA.js";
2
2
  import { configDefaults, coverageConfigDefaults, defaultBrowserPort, defaultExclude, defaultInclude } from "vitest/config";
3
3
  export * from "@voidzero-dev/vite-plus-core";
4
4
  export { configDefaults, coverageConfigDefaults, defaultBrowserPort, defaultExclude, defaultInclude, defineConfig, defineProject, lazyPlugins };
@@ -1,13 +1,13 @@
1
1
  import { r as __toESM } from "../rolldown-runtime-C7HZzL1F.js";
2
- import { d as isForceOverrideMode, l as VITE_PLUS_VERSION } from "../constants-NeTOxrzV.js";
3
- import { B as runCommandSilently, D as require_semver, E as PackageManager, F as spinner, N as outro, P as select, R as isCancel, _ as upgradeYarn, d as downloadPackageManager, f as promptGitHooks, g as selectPackageManager, h as runViteInstall, i as hasBaseUrlInTsconfig, j as log, k as confirm, l as cancelAndExit, m as runViteFmt, r as fixBaseUrlInTsconfig, t as confirmBaseUrlFix, u as defaultInteractive } from "../tsconfig-fvpxgUq2.js";
2
+ import { d as isForceOverrideMode, l as VITE_PLUS_VERSION } from "../constants-CZ7Mnq-C.js";
3
+ import { B as runCommandSilently, D as require_semver, E as PackageManager, F as spinner, N as outro, P as select, R as isCancel, _ as upgradeYarn, d as downloadPackageManager, f as promptGitHooks, g as selectPackageManager, h as runViteInstall, i as hasBaseUrlInTsconfig, j as log, k as confirm, l as cancelAndExit, m as runViteFmt, r as fixBaseUrlInTsconfig, t as confirmBaseUrlFix, u as defaultInteractive } from "../tsconfig-D6sTl0dN.js";
4
4
  import { a as printHeader, i as muted, r as log$1, s as warnMsg, t as accent } from "../terminal-uTv0ZaMr.js";
5
5
  import { a as writeJsonFile, i as readJsonFile } from "../json-DiRs8ceZ.js";
6
6
  import { t as lib_default } from "../lib-L3DWSRQp.js";
7
- import { a as readNearestPackageJson, i as hasVitePlusDependency } from "../package-CU2g7URl.js";
8
- import { A as detectWorkspace, B as warnIncompatibleEslintIntegration, C as injectLintTypeCheckDefaults, D as ensureVitePlusBootstrap, E as detectVitePlusBootstrapPending, F as detectEslintProject, H as warnPackageLevelEslint, I as detectIncompatibleEslintIntegration, K as checkViteVersion, L as migrateEslintToOxlint, O as configureYarnNodeModulesMode, P as confirmEslintMigration, T as collectToolchainVersionChanges, V as warnLegacyEslintConfig, Y as displayRelative, _ as detectLegacyGitHooksMigrationCandidate, b as preflightGitHooksSetup, d as rewriteStandaloneProject, f as detectPendingCoreMigration, h as migrateNodeVersionManagerFile, i as selectAgentTargetPaths, k as detectYarnPnpMode, l as rewriteMonorepo, m as detectNodeVersionManagerFile, n as detectAgentConflicts, p as finalizeCoreMigrationForExistingVitePlus, q as checkVitestVersion, r as detectExistingAgentTargetPaths, s as writeAgentInstructions, w as mergeViteConfigFiles, y as installGitHooks } from "../agent-D7O7mSeO.js";
7
+ import { a as readNearestPackageJson, i as hasVitePlusDependency } from "../package-Cpo2ei_V.js";
8
+ import { A as detectWorkspace, B as warnIncompatibleEslintIntegration, C as injectLintTypeCheckDefaults, D as ensureVitePlusBootstrap, E as detectVitePlusBootstrapPending, F as detectEslintProject, H as warnPackageLevelEslint, I as detectIncompatibleEslintIntegration, K as checkViteVersion, L as migrateEslintToOxlint, O as configureYarnNodeModulesMode, P as confirmEslintMigration, T as collectToolchainVersionChanges, V as warnLegacyEslintConfig, Y as displayRelative, _ as detectLegacyGitHooksMigrationCandidate, b as preflightGitHooksSetup, d as rewriteStandaloneProject, f as detectPendingCoreMigration, h as migrateNodeVersionManagerFile, i as selectAgentTargetPaths, k as detectYarnPnpMode, l as rewriteMonorepo, m as detectNodeVersionManagerFile, n as detectAgentConflicts, p as finalizeCoreMigrationForExistingVitePlus, q as checkVitestVersion, r as detectExistingAgentTargetPaths, s as writeAgentInstructions, w as mergeViteConfigFiles, y as installGitHooks } from "../agent-D3nZAMGI.js";
9
9
  import { n as addMigrationWarning, r as createMigrationReport } from "../report-BS7ULx7A.js";
10
- import { a as writeEditorConfigs, c as hasFrameworkShim, d as migratePrettierToOxfmt, l as confirmPrettierMigration, o as addFrameworkShim, p as warnPackageLevelPrettier, r as selectEditor, s as detectFramework, t as detectEditorConflicts, u as detectPrettierProject } from "../editor-CPzssglc.js";
10
+ import { a as writeEditorConfigs, c as hasFrameworkShim, d as migratePrettierToOxfmt, l as confirmPrettierMigration, o as addFrameworkShim, p as warnPackageLevelPrettier, r as selectEditor, s as detectFramework, t as detectEditorConflicts, u as detectPrettierProject } from "../editor-D1BZiU1h.js";
11
11
  import { t as renderCliDoc } from "../help-YP84FSEz.js";
12
12
  import { t as ROLLDOWN_COMPAT_RESULT_PREFIX } from "../protocol-D99W10Qi.js";
13
13
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { s as VITE_PLUS_NAME } from "./constants-NeTOxrzV.js";
1
+ import { s as VITE_PLUS_NAME } from "./constants-CZ7Mnq-C.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-C2Rqc_WQ.js";
1
+ import { n as VITE_PLUS_OXLINT_PLUGIN_NAME, t as PREFER_VITE_PLUS_IMPORTS_RULE_NAME } from "./oxlint-plugin-config-BSbv66Qn.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,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as resolveViteConfig } from "./resolve-vite-config-r91rIaPs.js";
2
+ import { a as resolveViteConfig } from "./resolve-vite-config-DX2o0SWM.js";
3
3
  import module from "node:module";
4
4
  import { buildWithConfigs, enableDebug, globalLogger, resolveUserConfig } from "@voidzero-dev/vite-plus-core/pack";
5
5
  //#region ../../node_modules/.pnpm/cac@7.0.0/node_modules/cac/dist/index.js
@@ -1,4 +1,4 @@
1
- import "./constants-NeTOxrzV.js";
1
+ import "./constants-CZ7Mnq-C.js";
2
2
  import { i as readJsonFile } from "./json-DiRs8ceZ.js";
3
3
  import { createRequire } from "node:module";
4
4
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { u as withConfigMetadataResolution } from "./define-config-CSgy0zML.js";
1
+ import { u as withConfigMetadataResolution } from "./define-config-D2jo1xVA.js";
2
2
  import path from "node:path";
3
3
  import fs from "node:fs";
4
4
  //#region src/resolve-vite-config.ts
@@ -1,6 +1,6 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "../rolldown-runtime-C7HZzL1F.js";
2
2
  import { a as printHeader, n as errorMsg, r as log } from "../terminal-uTv0ZaMr.js";
3
- import { a as resolveViteConfig } from "../resolve-vite-config-r91rIaPs.js";
3
+ import { a as resolveViteConfig } from "../resolve-vite-config-DX2o0SWM.js";
4
4
  import { t as lib_default } from "../lib-L3DWSRQp.js";
5
5
  import { t as renderCliDoc } from "../help-YP84FSEz.js";
6
6
  import { createRequire } from "node:module";
@@ -1,5 +1,5 @@
1
1
  import { n as __require, r as __toESM, t as __commonJSMin } from "./rolldown-runtime-C7HZzL1F.js";
2
- import { l as VITE_PLUS_VERSION, t as BASEURL_TSCONFIG_FIX_PACKAGE, u as createBaseUrlTsconfigFixArgs } from "./constants-NeTOxrzV.js";
2
+ import { l as VITE_PLUS_VERSION, t as BASEURL_TSCONFIG_FIX_PACKAGE, u as createBaseUrlTsconfigFixArgs } from "./constants-CZ7Mnq-C.js";
3
3
  import { t as accent } from "./terminal-uTv0ZaMr.js";
4
4
  import { a as writeJsonFile, c as parse, i as readJsonFile, o as applyEdits, s as modify } from "./json-DiRs8ceZ.js";
5
5
  import { t as require_dist } from "./dist-CKz3vcoG.js";
@@ -1676,6 +1676,42 @@ const limitOptions = (params) => {
1676
1676
  if (shouldRenderBottomEllipsis) result.push(overflowFormat);
1677
1677
  return result;
1678
1678
  };
1679
+ /**
1680
+ * Render-milestone markers for the PTY snapshot suite
1681
+ * (crates/vite_cli_snapshots): invisible OSC 8 hyperlinks the runner
1682
+ * synchronizes on via `expect-milestone` interactions. Emission is gated on
1683
+ * `VP_EMIT_MILESTONES=1`, which only the runner sets; real terminals and
1684
+ * piped output never see these bytes.
1685
+ *
1686
+ * Protocol (shared with vite-task's `pty_terminal_test_client` crate):
1687
+ * `OSC 8 ; ; https://milestone.invalid/<hex(name)> ST <ZWSP> OSC 8 ; ; ST`.
1688
+ * The zero-width anchor keeps the hyperlink observable through Windows
1689
+ * ConPTY, which can drop zero-length hyperlinks.
1690
+ */
1691
+ const MILESTONE_URI_PREFIX = "https://milestone.invalid/";
1692
+ const OSC8_OPEN = "\x1B]8;;";
1693
+ const ST = "\x1B\\";
1694
+ const ZERO_WIDTH_ANCHOR = "​";
1695
+ const MILESTONES_ENABLED = process.env.VP_EMIT_MILESTONES === "1";
1696
+ /**
1697
+ * Returns the encoded milestone byte sequence for `name`, or an empty string
1698
+ * when emission is disabled. Append the result to a rendered prompt frame so
1699
+ * the marker arrives in the output stream together with the render it marks.
1700
+ */
1701
+ function milestone(name) {
1702
+ if (!MILESTONES_ENABLED) return "";
1703
+ const hex = Buffer.from(name, "utf8").toString("hex");
1704
+ return `${OSC8_OPEN}${MILESTONE_URI_PREFIX}${hex}${ST}${ZERO_WIDTH_ANCHOR}${OSC8_OPEN}${ST}`;
1705
+ }
1706
+ /**
1707
+ * Milestone for a prompt render, following the runner naming convention
1708
+ * `<kind>:<id>:<state>` (e.g. `select:template:1`, `confirm:approve:yes`,
1709
+ * `text:project-name:my-app`). `id` defaults to the prompt kind; pass
1710
+ * `testId` at ambiguous call sites (multiple prompts of one kind in a flow).
1711
+ */
1712
+ function promptMilestone(kind, id, state) {
1713
+ return milestone(`${kind}:${id ?? kind}:${state}`);
1714
+ }
1679
1715
  const confirm = (opts) => {
1680
1716
  const active = opts.active ?? "Yes";
1681
1717
  const inactive = opts.inactive ?? "No";
@@ -1692,12 +1728,12 @@ const confirm = (opts) => {
1692
1728
  const title = `${hasGuide ? `${import_picocolors.default.gray(S_BAR)}\n` : ""}${symbol(this.state)} ${opts.message}\n`;
1693
1729
  const value = this.value ? active : inactive;
1694
1730
  switch (this.state) {
1695
- case "submit": return `${title}${hasGuide ? `${import_picocolors.default.gray(S_BAR)} ` : nestedPrefix}${import_picocolors.default.dim(value)}\n`;
1696
- case "cancel": return `${title}${hasGuide ? `${import_picocolors.default.gray(S_BAR)} ` : nestedPrefix}${import_picocolors.default.strikethrough(import_picocolors.default.dim(value))}${hasGuide ? `\n${import_picocolors.default.gray(S_BAR)}` : ""}\n`;
1731
+ case "submit": return `${title}${hasGuide ? `${import_picocolors.default.gray(S_BAR)} ` : nestedPrefix}${import_picocolors.default.dim(value)}\n${promptMilestone("confirm", opts.testId, "submit")}`;
1732
+ case "cancel": return `${title}${hasGuide ? `${import_picocolors.default.gray(S_BAR)} ` : nestedPrefix}${import_picocolors.default.strikethrough(import_picocolors.default.dim(value))}${hasGuide ? `\n${import_picocolors.default.gray(S_BAR)}` : ""}\n${promptMilestone("confirm", opts.testId, "cancel")}`;
1697
1733
  default: {
1698
1734
  const defaultPrefix = hasGuide ? `${import_picocolors.default.blue(S_BAR)} ` : nestedPrefix;
1699
1735
  const defaultPrefixEnd = hasGuide ? import_picocolors.default.blue(S_BAR_END) : "";
1700
- return `${title}${defaultPrefix}${this.value ? `${import_picocolors.default.blue(S_POINTER_ACTIVE)} ${import_picocolors.default.bold(active)}` : `${import_picocolors.default.dim(" ")} ${import_picocolors.default.dim(active)}`}${opts.vertical ? hasGuide ? `\n${import_picocolors.default.blue(S_BAR)} ` : `\n${nestedPrefix}` : ` ${import_picocolors.default.dim("/")} `}${!this.value ? `${import_picocolors.default.blue(S_POINTER_ACTIVE)} ${import_picocolors.default.bold(inactive)}` : `${import_picocolors.default.dim(" ")} ${import_picocolors.default.dim(inactive)}`}\n${defaultPrefixEnd}\n`;
1736
+ return `${title}${defaultPrefix}${this.value ? `${import_picocolors.default.blue(S_POINTER_ACTIVE)} ${import_picocolors.default.bold(active)}` : `${import_picocolors.default.dim(" ")} ${import_picocolors.default.dim(active)}`}${opts.vertical ? hasGuide ? `\n${import_picocolors.default.blue(S_BAR)} ` : `\n${nestedPrefix}` : ` ${import_picocolors.default.dim("/")} `}${!this.value ? `${import_picocolors.default.blue(S_POINTER_ACTIVE)} ${import_picocolors.default.bold(inactive)}` : `${import_picocolors.default.dim(" ")} ${import_picocolors.default.dim(inactive)}`}\n${defaultPrefixEnd}\n${promptMilestone("confirm", opts.testId, this.value ? "yes" : "no")}`;
1701
1737
  }
1702
1738
  }
1703
1739
  }
@@ -2059,11 +2095,11 @@ const select = (opts) => {
2059
2095
  switch (this.state) {
2060
2096
  case "submit": {
2061
2097
  const submitPrefix = hasGuide ? `${import_picocolors.default.gray(S_BAR)} ` : nestedPrefix;
2062
- return `${title}${wrapTextWithPrefix(opts.output, opt(this.options[this.cursor], "selected"), submitPrefix)}\n`;
2098
+ return `${title}${wrapTextWithPrefix(opts.output, opt(this.options[this.cursor], "selected"), submitPrefix)}\n${promptMilestone("select", opts.testId, "submit")}`;
2063
2099
  }
2064
2100
  case "cancel": {
2065
2101
  const cancelPrefix = hasGuide ? `${import_picocolors.default.gray(S_BAR)} ` : nestedPrefix;
2066
- return `${title}${wrapTextWithPrefix(opts.output, opt(this.options[this.cursor], "cancelled"), cancelPrefix)}${hasGuide ? `\n${import_picocolors.default.gray(S_BAR)}` : ""}\n`;
2102
+ return `${title}${wrapTextWithPrefix(opts.output, opt(this.options[this.cursor], "cancelled"), cancelPrefix)}${hasGuide ? `\n${import_picocolors.default.gray(S_BAR)}` : ""}\n${promptMilestone("select", opts.testId, "cancel")}`;
2067
2103
  }
2068
2104
  default: {
2069
2105
  const prefix = hasGuide ? `${import_picocolors.default.blue(S_BAR)} ` : nestedPrefix;
@@ -2078,7 +2114,7 @@ const select = (opts) => {
2078
2114
  columnPadding: prefix.length,
2079
2115
  rowPadding: titleLineCount + footerLineCount,
2080
2116
  style: (item, active) => opt(item, item.disabled ? "disabled" : active ? "active" : "inactive")
2081
- }).join(`\n${prefix}`)}\n${prefixEnd}\n`;
2117
+ }).join(`\n${prefix}`)}\n${prefixEnd}\n${promptMilestone("select", opts.testId, String(this.cursor))}`;
2082
2118
  }
2083
2119
  }
2084
2120
  }
@@ -2105,18 +2141,18 @@ const text = (opts) => {
2105
2141
  const errorText = this.error ? ` ${import_picocolors.default.yellow(this.error)}` : "";
2106
2142
  const errorPrefix = hasGuide ? `${import_picocolors.default.yellow(S_BAR)} ` : nestedPrefix;
2107
2143
  const errorPrefixEnd = hasGuide ? import_picocolors.default.yellow(S_BAR_END) : "";
2108
- return `${title.trim()}\n${errorPrefix}${userInput}\n${errorPrefixEnd}${errorText}\n`;
2144
+ return `${title.trim()}\n${errorPrefix}${userInput}\n${errorPrefixEnd}${errorText}\n${promptMilestone("text", opts.testId, "error")}`;
2109
2145
  }
2110
2146
  case "submit": {
2111
2147
  const valueText = value ? import_picocolors.default.dim(value) : "";
2112
- return `${title}${hasGuide ? `${import_picocolors.default.gray(S_BAR)} ` : nestedPrefix}${valueText}\n`;
2148
+ return `${title}${hasGuide ? `${import_picocolors.default.gray(S_BAR)} ` : nestedPrefix}${valueText}\n${promptMilestone("text", opts.testId, "submit")}`;
2113
2149
  }
2114
2150
  case "cancel": {
2115
2151
  const valueText = value ? import_picocolors.default.strikethrough(import_picocolors.default.dim(value)) : "";
2116
2152
  const cancelPrefix = hasGuide ? `${import_picocolors.default.gray(S_BAR)} ` : nestedPrefix;
2117
- return `${title}${cancelPrefix}${valueText}${value.trim() ? `\n${cancelPrefix}` : ""}\n`;
2153
+ return `${title}${cancelPrefix}${valueText}${value.trim() ? `\n${cancelPrefix}` : ""}\n${promptMilestone("text", opts.testId, "cancel")}`;
2118
2154
  }
2119
- default: return `${title}${hasGuide ? `${import_picocolors.default.blue(S_BAR)} ` : nestedPrefix}${userInput}\n${hasGuide ? import_picocolors.default.blue(S_BAR_END) : ""}\n`;
2155
+ default: return `${title}${hasGuide ? `${import_picocolors.default.blue(S_BAR)} ` : nestedPrefix}${userInput}\n${hasGuide ? import_picocolors.default.blue(S_BAR_END) : ""}\n${promptMilestone("text", opts.testId, this.value ?? "")}`;
2120
2156
  }
2121
2157
  }
2122
2158
  }).prompt();
@@ -3907,7 +3943,7 @@ const DEFAULT_BRIDGE_REGISTRY = "https://registry-bridge.viteplus.dev/";
3907
3943
  const REGISTRY_MARKER = "# vite-plus preview build registry bridge (auto-added by vp)";
3908
3944
  const BRIDGE_HOST = "registry-bridge.viteplus.dev";
3909
3945
  /**
3910
- * Registry bridge that serves pkg.pr.new builds as ordinary `0.0.0-commit.<sha>`
3946
+ * Registry bridge that serves PR preview builds as ordinary `0.0.0-commit.<sha>`
3911
3947
  * versions (and proxies everything else to npmjs). Only ever used for preview
3912
3948
  * builds (see {@link isPreviewVitePlusVersion}); real releases never resolve
3913
3949
  * through it. Overridable via `VP_REGISTRY_BRIDGE` for testing or an alternate
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
- import { m as version } from "./constants-NeTOxrzV.js";
1
+ import { m as version } from "./constants-CZ7Mnq-C.js";
2
2
  import { a as printHeader, r as log, t as accent } from "./terminal-uTv0ZaMr.js";
3
- import { i as hasVitePlusDependency, n as detectPackageMetadata } from "./package-CU2g7URl.js";
3
+ import { i as hasVitePlusDependency, n as detectPackageMetadata } from "./package-Cpo2ei_V.js";
4
4
  import { t as renderCliDoc } from "./help-YP84FSEz.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
package/dist/versions.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export const versions = {
2
- "vite": "8.1.2",
2
+ "vite": "8.1.3",
3
3
  "rolldown": "1.1.4",
4
4
  "tsdown": "0.22.3",
5
5
  "oxlint": "1.72.0",
@@ -48,7 +48,7 @@ FROM ghcr.io/voidzero-dev/vite-plus:latest AS build
48
48
  WORKDIR /app
49
49
 
50
50
  # Install dependencies first so this layer is cached across source changes.
51
- COPY --chown=vp:vp package.json pnpm-lock.yaml .node-version* ./
51
+ COPY --chown=vp:vp package.json pnpm-lock.yaml pnpm-workspace.yaml .node-version* ./
52
52
  RUN vp install --frozen-lockfile
53
53
 
54
54
  # Build. vp reads .node-version and provisions that exact Node.js automatically.
@@ -64,7 +64,7 @@ RUN cp "$(vp env which node | head -1)" /tmp/node
64
64
  # prune the already-installed devDependencies.
65
65
  FROM ghcr.io/voidzero-dev/vite-plus:latest AS deps
66
66
  WORKDIR /app
67
- COPY --chown=vp:vp package.json pnpm-lock.yaml .node-version* ./
67
+ COPY --chown=vp:vp package.json pnpm-lock.yaml pnpm-workspace.yaml .node-version* ./
68
68
  RUN vp install --frozen-lockfile --prod
69
69
 
70
70
  # --- runtime stage: small, glibc, no vp ---
@@ -110,7 +110,7 @@ server:
110
110
  ```dockerfile [Dockerfile]
111
111
  FROM ghcr.io/voidzero-dev/vite-plus:latest AS build
112
112
  WORKDIR /app
113
- COPY --chown=vp:vp package.json pnpm-lock.yaml .node-version* ./
113
+ COPY --chown=vp:vp package.json pnpm-lock.yaml pnpm-workspace.yaml .node-version* ./
114
114
  RUN vp install --frozen-lockfile
115
115
  COPY --chown=vp:vp . .
116
116
  RUN vp build
package/docs/guide/env.md CHANGED
@@ -39,7 +39,7 @@ This switches to system-first mode, where the shims prefer your system Node.js a
39
39
 
40
40
  ### Setup
41
41
 
42
- - `vp env setup` creates or updates shims in `VP_HOME/bin` (and writes the per-shell setup scripts under `~/.vite-plus/`)
42
+ - `vp env setup` creates or updates shims in `VP_HOME/bin` (and writes the per-shell setup scripts under `VP_HOME`)
43
43
  - `vp env on` enables managed mode so shims always use Vite+-managed Node.js
44
44
  - `vp env off` enables system-first mode so shims prefer system Node.js first
45
45
  - `vp env print` prints the shell snippet for the current session
@@ -72,7 +72,7 @@ Use the `-g` flag for installing, updating or removing globally installed packag
72
72
  ::: warning
73
73
  These commands do **NOT** interact with the underlying package manager's global installation directory.
74
74
 
75
- Instead, Vite+ manages its own global packages under `~/.vite-plus/packages`, allowing them to remain available across different Node.js versions.
75
+ Instead, Vite+ manages its own global packages under `VP_HOME/packages`, allowing them to remain available across different Node.js versions.
76
76
 
77
77
  As a result, commands such as `vp link` do not affect Vite+'s global packages and will not appear in `vp list -g`.
78
78
  :::
@@ -2,8 +2,8 @@
2
2
 
3
3
  Use this page when something in Vite+ is not behaving the way you expect.
4
4
 
5
- ::: warning
6
- Vite+ is still in alpha. We are making frequent changes, adding features quickly, and we want feedback to help make it great.
5
+ ::: info
6
+ Vite+ is in beta: stable, but not yet complete. We are adding features on the road to 1.0 and prioritize community feedback, so please [reach out](#asking-for-help) if something does not work as expected.
7
7
  :::
8
8
 
9
9
  ## Supported Tool Versions
@@ -62,7 +62,7 @@ Then set the `vitest` override to that exact version, or rerun `vp migrate` to u
62
62
 
63
63
  Some Vite+ pull requests publish temporary packages for testing before an npm release. Treat these as nightly or bleeding-edge builds: they are useful when you want to verify a specific fix, test a fresh upstream dependency bump, or confirm a change before the next release. For day-to-day work, prefer the published `latest` release.
64
64
 
65
- Each commit on an eligible pull request is published to [pkg.pr.new](https://pkg.pr.new) and registered with the [registry bridge](https://registry-bridge.viteplus.dev/). The bridge serves these builds as ordinary npm versions of the form `0.0.0-commit.<sha>` and proxies every other package to the npm registry. That means you install a preview with normal version specs instead of mutable URLs, and the same versions resolve in CI.
65
+ Each commit on an eligible pull request is published to the [registry bridge](https://registry-bridge.viteplus.dev/). The bridge serves these builds as ordinary npm versions of the form `0.0.0-commit.<sha>` and proxies every other package to the npm registry. That means you install a preview with normal version specs instead of mutable URLs, and the same versions resolve in CI.
66
66
 
67
67
  Both `vite-plus` and `@voidzero-dev/vite-plus-core` publish under the same `0.0.0-commit.<sha>` version. Each pull request carries a comment listing the exact version for its latest commit, along with ready-to-copy install steps.
68
68
 
package/docs/package.json CHANGED
@@ -4,7 +4,8 @@
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vitepress dev",
7
- "build": "cp ../packages/cli/install.sh ../packages/cli/install.ps1 public/ && vitepress build",
7
+ "build": "cp ../packages/cli/install.sh ../packages/cli/install.ps1 public/ && vp run build:site",
8
+ "build:netlify": "cp ../packages/cli/install.sh ../packages/cli/install.ps1 public/ && vitepress build",
8
9
  "preview": "vitepress preview",
9
10
  "update-trusted-stack-stats": "node .vitepress/theme/data/fetch-trusted-stack-stats.ts"
10
11
  },
@@ -0,0 +1,17 @@
1
+ export default {
2
+ run: {
3
+ tasks: {
4
+ 'build:site': {
5
+ command: 'vitepress build',
6
+ input: [
7
+ { auto: true },
8
+ '!.vitepress/.temp/**',
9
+ '!.vitepress/dist/**',
10
+ '!node_modules',
11
+ '!node_modules/.vite-temp/**',
12
+ ],
13
+ output: ['.vitepress/dist/**'],
14
+ },
15
+ },
16
+ },
17
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plus",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "The Unified Toolchain for the Web",
5
5
  "homepage": "https://viteplus.dev/guide",
6
6
  "bugs": {
@@ -367,7 +367,7 @@
367
367
  "oxlint": "=1.72.0",
368
368
  "oxlint-tsgolint": "=0.24.0",
369
369
  "vitest": "4.1.9",
370
- "@voidzero-dev/vite-plus-core": "0.2.2"
370
+ "@voidzero-dev/vite-plus-core": "0.2.3"
371
371
  },
372
372
  "devDependencies": {
373
373
  "@napi-rs/cli": "^3.7.2",
@@ -396,9 +396,9 @@
396
396
  "validate-npm-package-name": "^7.0.2",
397
397
  "yaml": "^2.8.1",
398
398
  "zod": "^3.25.76",
399
- "@voidzero-dev/vite-plus-tools": "0.0.0",
400
399
  "@voidzero-dev/vite-plus-prompts": "0.0.0",
401
- "vite": "npm:@voidzero-dev/vite-plus-core@0.2.2"
400
+ "@voidzero-dev/vite-plus-tools": "0.0.0",
401
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.2.3"
402
402
  },
403
403
  "peerDependencies": {
404
404
  "@vitest/browser-playwright": "4.1.9",
@@ -430,14 +430,14 @@
430
430
  "node": "^20.19.0 || ^22.18.0 || >=24.11.0"
431
431
  },
432
432
  "optionalDependencies": {
433
- "@voidzero-dev/vite-plus-darwin-arm64": "0.2.2",
434
- "@voidzero-dev/vite-plus-darwin-x64": "0.2.2",
435
- "@voidzero-dev/vite-plus-linux-arm64-gnu": "0.2.2",
436
- "@voidzero-dev/vite-plus-linux-arm64-musl": "0.2.2",
437
- "@voidzero-dev/vite-plus-linux-x64-gnu": "0.2.2",
438
- "@voidzero-dev/vite-plus-linux-x64-musl": "0.2.2",
439
- "@voidzero-dev/vite-plus-win32-x64-msvc": "0.2.2",
440
- "@voidzero-dev/vite-plus-win32-arm64-msvc": "0.2.2"
433
+ "@voidzero-dev/vite-plus-darwin-arm64": "0.2.3",
434
+ "@voidzero-dev/vite-plus-darwin-x64": "0.2.3",
435
+ "@voidzero-dev/vite-plus-linux-arm64-gnu": "0.2.3",
436
+ "@voidzero-dev/vite-plus-linux-arm64-musl": "0.2.3",
437
+ "@voidzero-dev/vite-plus-linux-x64-gnu": "0.2.3",
438
+ "@voidzero-dev/vite-plus-linux-x64-musl": "0.2.3",
439
+ "@voidzero-dev/vite-plus-win32-x64-msvc": "0.2.3",
440
+ "@voidzero-dev/vite-plus-win32-arm64-msvc": "0.2.3"
441
441
  },
442
442
  "scripts": {
443
443
  "build": "oxnode -C dev ./build.ts",