vite-plus 1.1.0 → 1.3.0

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 (83) hide show
  1. package/LICENSE +58 -1
  2. package/binding/index.cjs +54 -54
  3. package/binding/index.d.cts +7 -0
  4. package/dist/{agent-eISuMXJb.js → agent-97KmGCyL.js} +4 -4
  5. package/dist/bin.js +12 -12
  6. package/dist/{command-CguLh2KL.js → command-CdMBoZFD.js} +13 -13
  7. package/dist/command-DVTILtS-.js +1 -0
  8. package/dist/comparison-CmVirWIW-DUGaiYqF.js +121 -0
  9. package/dist/config/bin.js +4 -4
  10. package/dist/{constants-CCQkpaxK.js → constants-DR55DpRm.js} +3 -3
  11. package/dist/create/bin.d.ts +2 -1
  12. package/dist/create/bin.js +112 -29
  13. package/dist/{define-config-CeW9DETl.d.ts → define-config-Bexdd6RZ.d.ts} +1 -1
  14. package/dist/{define-config-CREUiMmM.cjs → define-config-BxDc_9BK.cjs} +89 -3
  15. package/dist/{define-config-Ro6PS4dP.js → define-config-CvE5pHqB.js} +111 -6
  16. package/dist/define-config.cjs +1 -1
  17. package/dist/define-config.d.ts +1 -1
  18. package/dist/define-config.js +1 -2
  19. package/dist/{dist-DfmT__Aw.js → dist-Cqz8OtiO.js} +24 -21
  20. package/dist/{dist-BsAzy8OW.js → dist-DIpm7mot.js} +6 -7
  21. package/dist/dist-Dhu07wmN.js +3 -0
  22. package/dist/{editor-B8tkz7nL.js → editor-CtJGQP7C.js} +34 -27
  23. package/dist/fmt.js +1 -2
  24. package/dist/hooks/bin.js +1 -1
  25. package/dist/{hooks-C-4gykWR.js → hooks-DhwsWb46.js} +34 -22
  26. package/dist/index.cjs +1 -1
  27. package/dist/index.d.ts +1 -1
  28. package/dist/index.js +1 -1
  29. package/dist/lint-plugins-dev.js +1 -2
  30. package/dist/lint-plugins.cjs +1 -1
  31. package/dist/lint-plugins.js +1 -2
  32. package/dist/migration/bin.js +18 -16
  33. package/dist/{oxlint-plugin-config-CbG58Kzr.js → oxlint-plugin-config-BIzrO2y2.js} +1 -1
  34. package/dist/oxlint-plugin.js +2 -2
  35. package/dist/pack-bin.js +2 -2
  36. package/dist/{package-BS84eWrW.js → package-CQDXTm6j.js} +1 -1
  37. package/dist/{package-overrides-CpoQngt3.js → package-overrides-D1RcXSFl.js} +1 -1
  38. package/dist/{prompts-ByOzbMBG.js → prompts-1xNz_ne0.js} +103 -208
  39. package/dist/resolve-vite-config-7WDtXO4G.js +1 -0
  40. package/dist/{resolve-vite-config-Be237LWp.js → resolve-vite-config-BVr1SUNg.js} +2 -2
  41. package/dist/{rolldown-runtime-CMFfr-1z.js → rolldown-runtime-kJ_i4yPo.js} +1 -1
  42. package/dist/staged/bin.js +33 -5
  43. package/dist/sync-versions/bin.js +4760 -3369
  44. package/dist/sync-versions/bin.mjs +4899 -3505
  45. package/dist/test/browser/providers/playwright.d.ts +7 -2
  46. package/dist/test/browser-playwright.d.ts +7 -2
  47. package/dist/toolchain.js +12 -12
  48. package/dist/toolchain.json +12 -12
  49. package/dist/{tsconfig-DzZ-nrx2.js → tsconfig-BZu7kl-x.js} +3 -3
  50. package/dist/tsconfig-zWgHiQ3X.js +1 -0
  51. package/dist/version.js +2 -2
  52. package/dist/versions.js +7 -7
  53. package/docs/config/run.md +9 -5
  54. package/docs/config/staged.md +1 -1
  55. package/docs/guide/automatic-data-tracking.md +7 -6
  56. package/docs/guide/cache.md +3 -3
  57. package/docs/guide/check.md +7 -7
  58. package/docs/guide/commit-hooks.md +3 -1
  59. package/docs/guide/create.md +48 -4
  60. package/docs/guide/env.md +25 -11
  61. package/docs/guide/github-actions-cache.md +1 -1
  62. package/docs/guide/global-cli.md +36 -10
  63. package/docs/guide/ide-integration.md +1 -1
  64. package/docs/guide/index.md +8 -8
  65. package/docs/guide/local-cli.md +24 -8
  66. package/docs/guide/migrate-rules.md +3 -3
  67. package/docs/guide/migrate.md +9 -9
  68. package/docs/guide/{install.md → package-management.md} +42 -4
  69. package/docs/guide/run.md +10 -8
  70. package/docs/guide/test.md +3 -1
  71. package/docs/guide/troubleshooting.md +7 -5
  72. package/docs/guide/upgrade-project.md +1 -5
  73. package/docs/guide/upgrade.md +6 -0
  74. package/docs/guide/vitest-v5.md +2 -2
  75. package/docs/guide/vpx.md +3 -3
  76. package/package.json +32 -31
  77. package/templates/generator/bin/index.ts +0 -0
  78. package/templates/generator/package.json +2 -2
  79. package/templates/generator/src/template.ts +1 -0
  80. package/dist/command-CLJK5jGW.js +0 -2
  81. package/dist/dist-DUsqQuw8.js +0 -6774
  82. package/dist/resolve-vite-config-CofpYgnY.js +0 -2
  83. package/dist/tsconfig-3ONY2k2K.js +0 -2
@@ -1,16 +1,16 @@
1
- import { r as __toESM, t as __commonJSMin } from "./rolldown-runtime-CMFfr-1z.js";
1
+ import { r as __toESM, t as __commonJSMin } from "./rolldown-runtime-kJ_i4yPo.js";
2
2
  import { t as accent } from "./terminal-MKGAuy-p.js";
3
- import { f as VITE_PLUS_VERSION } from "./constants-CCQkpaxK.js";
3
+ import { f as VITE_PLUS_VERSION } from "./constants-DR55DpRm.js";
4
4
  import { a as writeJsonFile, i as readJsonFile } from "./json-JP24qHUF.js";
5
- import { S as tryParse, _ as formatComparableVersion, b as parse, d as PRERELEASE_LOOSE, i as COERCE_FULL, r as COERCE, t as require_dist, u as PRERELEASE, v as isGreaterThanOrEqual, x as safeRegex } from "./dist-DUsqQuw8.js";
6
- import { n as runCommandSilently } from "./command-CguLh2KL.js";
5
+ import { _ as isGreaterThanOrEqual, b as safeRegex, g as formatComparableVersion, l as PRERELEASE, n as COERCE, r as COERCE_FULL, u as PRERELEASE_LOOSE, x as tryParse, y as parse } from "./comparison-CmVirWIW-DUGaiYqF.js";
6
+ import { n as runCommandSilently } from "./command-CdMBoZFD.js";
7
+ import { t as require_dist } from "./dist-DIpm7mot.js";
7
8
  import path from "node:path";
8
9
  import { downloadPackageManager } from "../binding/index.js";
9
10
  import { stripVTControlCharacters, styleText } from "node:util";
10
11
  import fs from "node:fs";
11
12
  import process$1, { stdin, stdout } from "node:process";
12
- import * as l from "node:readline";
13
- import l__default from "node:readline";
13
+ import l__default, * as l from "node:readline";
14
14
  import { ReadStream } from "node:tty";
15
15
  import { randomBytes } from "node:crypto";
16
16
  //#region ../../node_modules/.pnpm/fast-string-truncated-width@3.0.3/node_modules/fast-string-truncated-width/dist/utils.js
@@ -23,7 +23,7 @@ const getCodePointsLength$1 = (() => {
23
23
  return input.length - surrogatePairsNr;
24
24
  };
25
25
  })();
26
- const isFullWidth$2 = (x) => {
26
+ const isFullWidth$1 = (x) => {
27
27
  return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
28
28
  };
29
29
  const isWideNotCJKTNotEmoji$1 = (x) => {
@@ -31,21 +31,21 @@ const isWideNotCJKTNotEmoji$1 = (x) => {
31
31
  };
32
32
  //#endregion
33
33
  //#region ../../node_modules/.pnpm/fast-string-truncated-width@3.0.3/node_modules/fast-string-truncated-width/dist/index.js
34
- const ANSI_RE$2 = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y;
35
- const CONTROL_RE$2 = /[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y;
34
+ const ANSI_RE$1 = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y;
35
+ const CONTROL_RE$1 = /[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y;
36
36
  const CJKT_WIDE_RE$1 = /(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/uy;
37
- const TAB_RE$2 = /\t{1,1000}/y;
38
- const EMOJI_RE$2 = /[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/uy;
39
- const LATIN_RE$2 = /(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y;
40
- const MODIFIER_RE$2 = /\p{M}+/gu;
41
- const NO_TRUNCATION$5 = {
37
+ const TAB_RE$1 = /\t{1,1000}/y;
38
+ const EMOJI_RE$1 = /[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/uy;
39
+ const LATIN_RE$1 = /(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y;
40
+ const MODIFIER_RE$1 = /\p{M}+/gu;
41
+ const NO_TRUNCATION$3 = {
42
42
  limit: Infinity,
43
43
  ellipsis: ""
44
44
  };
45
- const getStringTruncatedWidth$2 = (input, truncationOptions = {}, widthOptions = {}) => {
45
+ const getStringTruncatedWidth$1 = (input, truncationOptions = {}, widthOptions = {}) => {
46
46
  const LIMIT = truncationOptions.limit ?? Infinity;
47
47
  const ELLIPSIS = truncationOptions.ellipsis ?? "";
48
- const ELLIPSIS_WIDTH = truncationOptions?.ellipsisWidth ?? (ELLIPSIS ? getStringTruncatedWidth$2(ELLIPSIS, NO_TRUNCATION$5, widthOptions).width : 0);
48
+ const ELLIPSIS_WIDTH = truncationOptions?.ellipsisWidth ?? (ELLIPSIS ? getStringTruncatedWidth$1(ELLIPSIS, NO_TRUNCATION$3, widthOptions).width : 0);
49
49
  const ANSI_WIDTH = 0;
50
50
  const CONTROL_WIDTH = widthOptions.controlWidth ?? 0;
51
51
  const TAB_WIDTH = widthOptions.tabWidth ?? 8;
@@ -54,11 +54,11 @@ const getStringTruncatedWidth$2 = (input, truncationOptions = {}, widthOptions =
54
54
  const REGULAR_WIDTH = widthOptions.regularWidth ?? 1;
55
55
  const WIDE_WIDTH = widthOptions.wideWidth ?? FULL_WIDTH_WIDTH;
56
56
  const PARSE_BLOCKS = [
57
- [LATIN_RE$2, REGULAR_WIDTH],
58
- [ANSI_RE$2, ANSI_WIDTH],
59
- [CONTROL_RE$2, CONTROL_WIDTH],
60
- [TAB_RE$2, TAB_WIDTH],
61
- [EMOJI_RE$2, EMOJI_WIDTH],
57
+ [LATIN_RE$1, REGULAR_WIDTH],
58
+ [ANSI_RE$1, ANSI_WIDTH],
59
+ [CONTROL_RE$1, CONTROL_WIDTH],
60
+ [TAB_RE$1, TAB_WIDTH],
61
+ [EMOJI_RE$1, EMOJI_WIDTH],
62
62
  [CJKT_WIDE_RE$1, WIDE_WIDTH]
63
63
  ];
64
64
  let indexPrev = 0;
@@ -76,9 +76,9 @@ const getStringTruncatedWidth$2 = (input, truncationOptions = {}, widthOptions =
76
76
  if (unmatchedEnd > unmatchedStart || index >= length && index > indexPrev) {
77
77
  const unmatched = input.slice(unmatchedStart, unmatchedEnd) || input.slice(indexPrev, index);
78
78
  lengthExtra = 0;
79
- for (const char of unmatched.replaceAll(MODIFIER_RE$2, "")) {
79
+ for (const char of unmatched.replaceAll(MODIFIER_RE$1, "")) {
80
80
  const codePoint = char.codePointAt(0) || 0;
81
- if (isFullWidth$2(codePoint)) widthExtra = FULL_WIDTH_WIDTH;
81
+ if (isFullWidth$1(codePoint)) widthExtra = FULL_WIDTH_WIDTH;
82
82
  else if (isWideNotCJKTNotEmoji$1(codePoint)) widthExtra = WIDE_WIDTH;
83
83
  else widthExtra = REGULAR_WIDTH;
84
84
  if (width + widthExtra > truncationLimit) truncationIndex = Math.min(truncationIndex, Math.max(unmatchedStart, indexPrev) + lengthExtra);
@@ -96,7 +96,7 @@ const getStringTruncatedWidth$2 = (input, truncationOptions = {}, widthOptions =
96
96
  const [BLOCK_RE, BLOCK_WIDTH] = PARSE_BLOCKS[i];
97
97
  BLOCK_RE.lastIndex = index;
98
98
  if (BLOCK_RE.test(input)) {
99
- lengthExtra = BLOCK_RE === CJKT_WIDE_RE$1 ? getCodePointsLength$1(input.slice(index, BLOCK_RE.lastIndex)) : BLOCK_RE === EMOJI_RE$2 ? 1 : BLOCK_RE.lastIndex - index;
99
+ lengthExtra = BLOCK_RE === CJKT_WIDE_RE$1 ? getCodePointsLength$1(input.slice(index, BLOCK_RE.lastIndex)) : BLOCK_RE === EMOJI_RE$1 ? 1 : BLOCK_RE.lastIndex - index;
100
100
  widthExtra = lengthExtra * BLOCK_WIDTH;
101
101
  if (width + widthExtra > truncationLimit) truncationIndex = Math.min(truncationIndex, index + Math.floor((truncationLimit - width) / BLOCK_WIDTH));
102
102
  if (width + widthExtra > LIMIT) {
@@ -121,18 +121,18 @@ const getStringTruncatedWidth$2 = (input, truncationOptions = {}, widthOptions =
121
121
  };
122
122
  //#endregion
123
123
  //#region ../../node_modules/.pnpm/fast-string-width@3.0.2/node_modules/fast-string-width/dist/index.js
124
- const NO_TRUNCATION$4 = {
124
+ const NO_TRUNCATION$2 = {
125
125
  limit: Infinity,
126
126
  ellipsis: "",
127
127
  ellipsisWidth: 0
128
128
  };
129
- const fastStringWidth$2 = (input, options = {}) => {
130
- return getStringTruncatedWidth$2(input, NO_TRUNCATION$4, options).width;
129
+ const fastStringWidth$1 = (input, options = {}) => {
130
+ return getStringTruncatedWidth$1(input, NO_TRUNCATION$2, options).width;
131
131
  };
132
132
  //#endregion
133
133
  //#region ../../node_modules/.pnpm/fast-wrap-ansi@0.2.0/node_modules/fast-wrap-ansi/lib/main.js
134
- const ESC$1 = "\x1B";
135
- const CSI$1 = "›";
134
+ const ESC$2 = "\x1B";
135
+ const CSI$2 = "›";
136
136
  const END_CODE$1 = 39;
137
137
  const ANSI_ESCAPE_BELL$1 = "\x07";
138
138
  const ANSI_CSI$1 = "[";
@@ -153,26 +153,26 @@ const getClosingCode$1 = (openingCode) => {
153
153
  if (openingCode === 9) return 29;
154
154
  if (openingCode === 0) return 0;
155
155
  };
156
- const wrapAnsiCode$1 = (code) => `${ESC$1}${ANSI_CSI$1}${code}${ANSI_SGR_TERMINATOR$1}`;
157
- const wrapAnsiHyperlink$1 = (url) => `${ESC$1}${ANSI_ESCAPE_LINK$1}${url}${ANSI_ESCAPE_BELL$1}`;
156
+ const wrapAnsiCode$1 = (code) => `${ESC$2}${ANSI_CSI$1}${code}${ANSI_SGR_TERMINATOR$1}`;
157
+ const wrapAnsiHyperlink$1 = (url) => `${ESC$2}${ANSI_ESCAPE_LINK$1}${url}${ANSI_ESCAPE_BELL$1}`;
158
158
  const wrapWord$1 = (rows, word, columns) => {
159
159
  const characters = word[Symbol.iterator]();
160
160
  let isInsideEscape = false;
161
161
  let isInsideLinkEscape = false;
162
162
  let lastRow = rows.at(-1);
163
- let visible = lastRow === void 0 ? 0 : fastStringWidth$2(lastRow);
163
+ let visible = lastRow === void 0 ? 0 : fastStringWidth$1(lastRow);
164
164
  let currentCharacter = characters.next();
165
165
  let nextCharacter = characters.next();
166
166
  let rawCharacterIndex = 0;
167
167
  while (!currentCharacter.done) {
168
168
  const character = currentCharacter.value;
169
- const characterLength = fastStringWidth$2(character);
169
+ const characterLength = fastStringWidth$1(character);
170
170
  if (visible + characterLength <= columns) rows[rows.length - 1] += character;
171
171
  else {
172
172
  rows.push(character);
173
173
  visible = 0;
174
174
  }
175
- if (character === ESC$1 || character === CSI$1) {
175
+ if (character === ESC$2 || character === CSI$2) {
176
176
  isInsideEscape = true;
177
177
  isInsideLinkEscape = word.startsWith(ANSI_ESCAPE_LINK$1, rawCharacterIndex + 1);
178
178
  }
@@ -201,7 +201,7 @@ const stringVisibleTrimSpacesRight$1 = (string) => {
201
201
  const words = string.split(" ");
202
202
  let last = words.length;
203
203
  while (last) {
204
- if (fastStringWidth$2(words[last - 1])) break;
204
+ if (fastStringWidth$1(words[last - 1])) break;
205
205
  last--;
206
206
  }
207
207
  if (last === words.length) return string;
@@ -222,7 +222,7 @@ const exec$1 = (string, columns, options = {}) => {
222
222
  const trimmed = row.trimStart();
223
223
  if (row.length !== trimmed.length) {
224
224
  rows[rows.length - 1] = trimmed;
225
- rowLength = fastStringWidth$2(trimmed);
225
+ rowLength = fastStringWidth$1(trimmed);
226
226
  }
227
227
  }
228
228
  if (index !== 0) {
@@ -235,19 +235,19 @@ const exec$1 = (string, columns, options = {}) => {
235
235
  rowLength++;
236
236
  }
237
237
  }
238
- const wordLength = fastStringWidth$2(word);
238
+ const wordLength = fastStringWidth$1(word);
239
239
  if (options.hard && wordLength > columns) {
240
240
  const remainingColumns = columns - rowLength;
241
241
  const breaksStartingThisLine = 1 + Math.floor((wordLength - remainingColumns - 1) / columns);
242
242
  if (Math.floor((wordLength - 1) / columns) < breaksStartingThisLine) rows.push("");
243
243
  wrapWord$1(rows, word, columns);
244
- rowLength = fastStringWidth$2(rows.at(-1) ?? "");
244
+ rowLength = fastStringWidth$1(rows.at(-1) ?? "");
245
245
  continue;
246
246
  }
247
247
  if (rowLength + wordLength > columns && rowLength && wordLength) {
248
248
  if (options.wordWrap === false && rowLength < columns) {
249
249
  wrapWord$1(rows, word, columns);
250
- rowLength = fastStringWidth$2(rows.at(-1) ?? "");
250
+ rowLength = fastStringWidth$1(rows.at(-1) ?? "");
251
251
  continue;
252
252
  }
253
253
  rows.push("");
@@ -255,7 +255,7 @@ const exec$1 = (string, columns, options = {}) => {
255
255
  }
256
256
  if (rowLength + wordLength > columns && options.wordWrap === false) {
257
257
  wrapWord$1(rows, word, columns);
258
- rowLength = fastStringWidth$2(rows.at(-1) ?? "");
258
+ rowLength = fastStringWidth$1(rows.at(-1) ?? "");
259
259
  continue;
260
260
  }
261
261
  rows[rows.length - 1] += word;
@@ -271,7 +271,7 @@ const exec$1 = (string, columns, options = {}) => {
271
271
  inSurrogate = character >= "\ud800" && character <= "\udbff";
272
272
  if (inSurrogate) continue;
273
273
  } else inSurrogate = false;
274
- if (character === ESC$1 || character === CSI$1) {
274
+ if (character === ESC$2 || character === CSI$2) {
275
275
  GROUP_REGEX$1.lastIndex = i + 1;
276
276
  const groups = GROUP_REGEX$1.exec(preString)?.groups;
277
277
  if (groups?.code !== void 0) {
@@ -853,159 +853,51 @@ var require_picocolors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
853
853
  module.exports.createColors = createColors;
854
854
  }));
855
855
  //#endregion
856
- //#region ../prompts/dist/index.mjs
856
+ //#region ../../node_modules/.pnpm/sisteransi@2.0.0/node_modules/sisteransi/dist/index.js
857
857
  var import_picocolors = /* @__PURE__ */ __toESM(require_picocolors(), 1);
858
- const isAmbiguous = (x) => {
859
- return x === 161 || x === 164 || x === 167 || x === 168 || x === 170 || x === 173 || x === 174 || x >= 176 && x <= 180 || x >= 182 && x <= 186 || x >= 188 && x <= 191 || x === 198 || x === 208 || x === 215 || x === 216 || x >= 222 && x <= 225 || x === 230 || x >= 232 && x <= 234 || x === 236 || x === 237 || x === 240 || x === 242 || x === 243 || x >= 247 && x <= 250 || x === 252 || x === 254 || x === 257 || x === 273 || x === 275 || x === 283 || x === 294 || x === 295 || x === 299 || x >= 305 && x <= 307 || x === 312 || x >= 319 && x <= 322 || x === 324 || x >= 328 && x <= 331 || x === 333 || x === 338 || x === 339 || x === 358 || x === 359 || x === 363 || x === 462 || x === 464 || x === 466 || x === 468 || x === 470 || x === 472 || x === 474 || x === 476 || x === 593 || x === 609 || x === 708 || x === 711 || x >= 713 && x <= 715 || x === 717 || x === 720 || x >= 728 && x <= 731 || x === 733 || x === 735 || x >= 768 && x <= 879 || x >= 913 && x <= 929 || x >= 931 && x <= 937 || x >= 945 && x <= 961 || x >= 963 && x <= 969 || x === 1025 || x >= 1040 && x <= 1103 || x === 1105 || x === 8208 || x >= 8211 && x <= 8214 || x === 8216 || x === 8217 || x === 8220 || x === 8221 || x >= 8224 && x <= 8226 || x >= 8228 && x <= 8231 || x === 8240 || x === 8242 || x === 8243 || x === 8245 || x === 8251 || x === 8254 || x === 8308 || x === 8319 || x >= 8321 && x <= 8324 || x === 8364 || x === 8451 || x === 8453 || x === 8457 || x === 8467 || x === 8470 || x === 8481 || x === 8482 || x === 8486 || x === 8491 || x === 8531 || x === 8532 || x >= 8539 && x <= 8542 || x >= 8544 && x <= 8555 || x >= 8560 && x <= 8569 || x === 8585 || x >= 8592 && x <= 8601 || x === 8632 || x === 8633 || x === 8658 || x === 8660 || x === 8679 || x === 8704 || x === 8706 || x === 8707 || x === 8711 || x === 8712 || x === 8715 || x === 8719 || x === 8721 || x === 8725 || x === 8730 || x >= 8733 && x <= 8736 || x === 8739 || x === 8741 || x >= 8743 && x <= 8748 || x === 8750 || x >= 8756 && x <= 8759 || x === 8764 || x === 8765 || x === 8776 || x === 8780 || x === 8786 || x === 8800 || x === 8801 || x >= 8804 && x <= 8807 || x === 8810 || x === 8811 || x === 8814 || x === 8815 || x === 8834 || x === 8835 || x === 8838 || x === 8839 || x === 8853 || x === 8857 || x === 8869 || x === 8895 || x === 8978 || x >= 9312 && x <= 9449 || x >= 9451 && x <= 9547 || x >= 9552 && x <= 9587 || x >= 9600 && x <= 9615 || x >= 9618 && x <= 9621 || x === 9632 || x === 9633 || x >= 9635 && x <= 9641 || x === 9650 || x === 9651 || x === 9654 || x === 9655 || x === 9660 || x === 9661 || x === 9664 || x === 9665 || x >= 9670 && x <= 9672 || x === 9675 || x >= 9678 && x <= 9681 || x >= 9698 && x <= 9701 || x === 9711 || x === 9733 || x === 9734 || x === 9737 || x === 9742 || x === 9743 || x === 9756 || x === 9758 || x === 9792 || x === 9794 || x === 9824 || x === 9825 || x >= 9827 && x <= 9829 || x >= 9831 && x <= 9834 || x === 9836 || x === 9837 || x === 9839 || x === 9886 || x === 9887 || x === 9919 || x >= 9926 && x <= 9933 || x >= 9935 && x <= 9939 || x >= 9941 && x <= 9953 || x === 9955 || x === 9960 || x === 9961 || x >= 9963 && x <= 9969 || x === 9972 || x >= 9974 && x <= 9977 || x === 9979 || x === 9980 || x === 9982 || x === 9983 || x === 10045 || x >= 10102 && x <= 10111 || x >= 11094 && x <= 11097 || x >= 12872 && x <= 12879 || x >= 57344 && x <= 63743 || x >= 65024 && x <= 65039 || x === 65533 || x >= 127232 && x <= 127242 || x >= 127248 && x <= 127277 || x >= 127280 && x <= 127337 || x >= 127344 && x <= 127373 || x === 127375 || x === 127376 || x >= 127387 && x <= 127404 || x >= 917760 && x <= 917999 || x >= 983040 && x <= 1048573 || x >= 1048576 && x <= 1114109;
860
- };
861
- const isFullWidth$1 = (x) => {
862
- return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
863
- };
864
- const isWide = (x) => {
865
- return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9800 && x <= 9811 || x === 9855 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12771 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 19903 || x >= 19968 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101632 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129672 || x >= 129680 && x <= 129725 || x >= 129727 && x <= 129733 || x >= 129742 && x <= 129755 || x >= 129760 && x <= 129768 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
866
- };
867
- const ANSI_RE$1 = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y;
868
- const CONTROL_RE$1 = /[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y;
869
- const TAB_RE$1 = /\t{1,1000}/y;
870
- const EMOJI_RE$1 = /[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/uy;
871
- const LATIN_RE$1 = /(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y;
872
- const MODIFIER_RE$1 = /\p{M}+/gu;
873
- const NO_TRUNCATION$3 = {
874
- limit: Infinity,
875
- ellipsis: ""
858
+ const ESC$1 = "\x1B";
859
+ const CSI$1 = `${ESC$1}[`;
860
+ const cursor = {
861
+ to(x, y) {
862
+ if (!y) return `${CSI$1}${x + 1}G`;
863
+ return `${CSI$1}${y + 1};${x + 1}H`;
864
+ },
865
+ move(x, y) {
866
+ let ret = "";
867
+ if (x < 0) ret += `${CSI$1}${-x}D`;
868
+ else if (x > 0) ret += `${CSI$1}${x}C`;
869
+ if (y < 0) ret += `${CSI$1}${-y}A`;
870
+ else if (y > 0) ret += `${CSI$1}${y}B`;
871
+ return ret;
872
+ },
873
+ up: (count = 1) => `${CSI$1}${count}A`,
874
+ down: (count = 1) => `${CSI$1}${count}B`,
875
+ forward: (count = 1) => `${CSI$1}${count}C`,
876
+ backward: (count = 1) => `${CSI$1}${count}D`,
877
+ nextLine: (count = 1) => `${CSI$1}E`.repeat(count),
878
+ prevLine: (count = 1) => `${CSI$1}F`.repeat(count),
879
+ left: `${CSI$1}G`,
880
+ hide: `${CSI$1}?25l`,
881
+ show: `${CSI$1}?25h`,
882
+ save: `${ESC$1}7`,
883
+ restore: `${ESC$1}8`
876
884
  };
877
- const getStringTruncatedWidth$1 = (input, truncationOptions = {}, widthOptions = {}) => {
878
- const LIMIT = truncationOptions.limit ?? Infinity;
879
- const ELLIPSIS = truncationOptions.ellipsis ?? "";
880
- const ELLIPSIS_WIDTH = truncationOptions?.ellipsisWidth ?? (ELLIPSIS ? getStringTruncatedWidth$1(ELLIPSIS, NO_TRUNCATION$3, widthOptions).width : 0);
881
- const ANSI_WIDTH = widthOptions.ansiWidth ?? 0;
882
- const CONTROL_WIDTH = widthOptions.controlWidth ?? 0;
883
- const TAB_WIDTH = widthOptions.tabWidth ?? 8;
884
- const AMBIGUOUS_WIDTH = widthOptions.ambiguousWidth ?? 1;
885
- const EMOJI_WIDTH = widthOptions.emojiWidth ?? 2;
886
- const FULL_WIDTH_WIDTH = widthOptions.fullWidthWidth ?? 2;
887
- const REGULAR_WIDTH = widthOptions.regularWidth ?? 1;
888
- const WIDE_WIDTH = widthOptions.wideWidth ?? 2;
889
- let indexPrev = 0;
890
- let index = 0;
891
- let length = input.length;
892
- let lengthExtra = 0;
893
- let truncationEnabled = false;
894
- let truncationIndex = length;
895
- let truncationLimit = Math.max(0, LIMIT - ELLIPSIS_WIDTH);
896
- let unmatchedStart = 0;
897
- let unmatchedEnd = 0;
898
- let width = 0;
899
- let widthExtra = 0;
900
- outer: while (true) {
901
- if (unmatchedEnd > unmatchedStart || index >= length && index > indexPrev) {
902
- const unmatched = input.slice(unmatchedStart, unmatchedEnd) || input.slice(indexPrev, index);
903
- lengthExtra = 0;
904
- for (const char of unmatched.replaceAll(MODIFIER_RE$1, "")) {
905
- const codePoint = char.codePointAt(0) || 0;
906
- if (isFullWidth$1(codePoint)) widthExtra = FULL_WIDTH_WIDTH;
907
- else if (isWide(codePoint)) widthExtra = WIDE_WIDTH;
908
- else if (AMBIGUOUS_WIDTH !== REGULAR_WIDTH && isAmbiguous(codePoint)) widthExtra = AMBIGUOUS_WIDTH;
909
- else widthExtra = REGULAR_WIDTH;
910
- if (width + widthExtra > truncationLimit) truncationIndex = Math.min(truncationIndex, Math.max(unmatchedStart, indexPrev) + lengthExtra);
911
- if (width + widthExtra > LIMIT) {
912
- truncationEnabled = true;
913
- break outer;
914
- }
915
- lengthExtra += char.length;
916
- width += widthExtra;
917
- }
918
- unmatchedStart = unmatchedEnd = 0;
919
- }
920
- if (index >= length) break;
921
- LATIN_RE$1.lastIndex = index;
922
- if (LATIN_RE$1.test(input)) {
923
- lengthExtra = LATIN_RE$1.lastIndex - index;
924
- widthExtra = lengthExtra * REGULAR_WIDTH;
925
- if (width + widthExtra > truncationLimit) truncationIndex = Math.min(truncationIndex, index + Math.floor((truncationLimit - width) / REGULAR_WIDTH));
926
- if (width + widthExtra > LIMIT) {
927
- truncationEnabled = true;
928
- break;
929
- }
930
- width += widthExtra;
931
- unmatchedStart = indexPrev;
932
- unmatchedEnd = index;
933
- index = indexPrev = LATIN_RE$1.lastIndex;
934
- continue;
935
- }
936
- ANSI_RE$1.lastIndex = index;
937
- if (ANSI_RE$1.test(input)) {
938
- if (width + ANSI_WIDTH > truncationLimit) truncationIndex = Math.min(truncationIndex, index);
939
- if (width + ANSI_WIDTH > LIMIT) {
940
- truncationEnabled = true;
941
- break;
942
- }
943
- width += ANSI_WIDTH;
944
- unmatchedStart = indexPrev;
945
- unmatchedEnd = index;
946
- index = indexPrev = ANSI_RE$1.lastIndex;
947
- continue;
948
- }
949
- CONTROL_RE$1.lastIndex = index;
950
- if (CONTROL_RE$1.test(input)) {
951
- lengthExtra = CONTROL_RE$1.lastIndex - index;
952
- widthExtra = lengthExtra * CONTROL_WIDTH;
953
- if (width + widthExtra > truncationLimit) truncationIndex = Math.min(truncationIndex, index + Math.floor((truncationLimit - width) / CONTROL_WIDTH));
954
- if (width + widthExtra > LIMIT) {
955
- truncationEnabled = true;
956
- break;
957
- }
958
- width += widthExtra;
959
- unmatchedStart = indexPrev;
960
- unmatchedEnd = index;
961
- index = indexPrev = CONTROL_RE$1.lastIndex;
962
- continue;
963
- }
964
- TAB_RE$1.lastIndex = index;
965
- if (TAB_RE$1.test(input)) {
966
- lengthExtra = TAB_RE$1.lastIndex - index;
967
- widthExtra = lengthExtra * TAB_WIDTH;
968
- if (width + widthExtra > truncationLimit) truncationIndex = Math.min(truncationIndex, index + Math.floor((truncationLimit - width) / TAB_WIDTH));
969
- if (width + widthExtra > LIMIT) {
970
- truncationEnabled = true;
971
- break;
972
- }
973
- width += widthExtra;
974
- unmatchedStart = indexPrev;
975
- unmatchedEnd = index;
976
- index = indexPrev = TAB_RE$1.lastIndex;
977
- continue;
978
- }
979
- EMOJI_RE$1.lastIndex = index;
980
- if (EMOJI_RE$1.test(input)) {
981
- if (width + EMOJI_WIDTH > truncationLimit) truncationIndex = Math.min(truncationIndex, index);
982
- if (width + EMOJI_WIDTH > LIMIT) {
983
- truncationEnabled = true;
984
- break;
985
- }
986
- width += EMOJI_WIDTH;
987
- unmatchedStart = indexPrev;
988
- unmatchedEnd = index;
989
- index = indexPrev = EMOJI_RE$1.lastIndex;
990
- continue;
991
- }
992
- index += 1;
885
+ const erase = {
886
+ screen: `${CSI$1}2J`,
887
+ up: (count = 1) => `${CSI$1}1J`.repeat(count),
888
+ down: (count = 1) => `${CSI$1}J`.repeat(count),
889
+ line: `${CSI$1}2K`,
890
+ lineEnd: `${CSI$1}K`,
891
+ lineStart: `${CSI$1}1K`,
892
+ lines(count) {
893
+ let clear = "";
894
+ for (let i = 0; i < count; i++) clear += this.line + (i < count - 1 ? cursor.up() : "");
895
+ if (count) clear += cursor.left;
896
+ return clear;
993
897
  }
994
- return {
995
- width: truncationEnabled ? truncationLimit : width,
996
- index: truncationEnabled ? truncationIndex : length,
997
- truncated: truncationEnabled,
998
- ellipsed: truncationEnabled && LIMIT >= ELLIPSIS_WIDTH
999
- };
1000
- };
1001
- const NO_TRUNCATION$2 = {
1002
- limit: Infinity,
1003
- ellipsis: "",
1004
- ellipsisWidth: 0
1005
- };
1006
- const fastStringWidth$1 = (input, options = {}) => {
1007
- return getStringTruncatedWidth$1(input, NO_TRUNCATION$2, options).width;
1008
898
  };
899
+ //#endregion
900
+ //#region ../prompts/dist/index.mjs
1009
901
  const getCodePointsLength = (() => {
1010
902
  const SURROGATE_PAIR_RE = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
1011
903
  return (input) => {
@@ -1281,13 +1173,15 @@ function wrapAnsi(string, columns, options) {
1281
1173
  return String(string).normalize().split(CRLF_OR_LF).map((line) => exec(line, columns, options)).join("\n");
1282
1174
  }
1283
1175
  function isUnicodeSupported() {
1284
- if (process$1.platform !== "win32") return process$1.env.TERM !== "linux";
1285
- return Boolean(process$1.env.CI) || Boolean(process$1.env.WT_SESSION) || Boolean(process$1.env.TERMINUS_SUBLIME) || process$1.env.ConEmuTask === "{cmd::Cmder}" || process$1.env.TERM_PROGRAM === "Terminus-Sublime" || process$1.env.TERM_PROGRAM === "vscode" || process$1.env.TERM === "xterm-256color" || process$1.env.TERM === "alacritty" || process$1.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
1176
+ const { env } = process$1;
1177
+ const { TERM, TERM_PROGRAM } = env;
1178
+ if (process$1.platform !== "win32") return TERM !== "linux";
1179
+ return Boolean(env.WT_SESSION) || Boolean(env.TERMINUS_SUBLIME) || env.ConEmuTask === "{cmd::Cmder}" || TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
1286
1180
  }
1287
1181
  updateSettings({ withGuide: false });
1288
1182
  /** Wrap using visible columns rather than the length of ANSI escape sequences. */
1289
1183
  const wrapTextWithPrefix = (output, text, prefix, startPrefix = prefix) => {
1290
- return wrapAnsi(text, Math.max(1, getColumns(output ?? process.stdout) - Math.max(fastStringWidth$1(prefix), fastStringWidth$1(startPrefix))), {
1184
+ return wrapAnsi(text, Math.max(1, getColumns(output ?? process.stdout) - Math.max(fastStringWidth(prefix), fastStringWidth(startPrefix))), {
1291
1185
  hard: true,
1292
1186
  trim: false
1293
1187
  }).split("\n").map((line, index) => `${index === 0 ? startPrefix : prefix}${line}`).join("\n");
@@ -1299,8 +1193,8 @@ const promptTitle = (message, state, opts) => {
1299
1193
  return `${hasGuide ? `${import_picocolors.default.gray(S_BAR)}\n` : ""}${wrapTextWithPrefix(opts.output, message, hasGuide ? `${symbolBar(state)} ` : " ", `${symbol(state)} `)}\n`;
1300
1194
  };
1301
1195
  const optionText = (output, marker, label, format, suffix = "") => {
1302
- const continuation = " ".repeat(fastStringWidth$1(marker));
1303
- const width = Math.max(1, getColumns(output ?? process.stdout) - 2 - fastStringWidth$1(marker));
1196
+ const continuation = " ".repeat(fastStringWidth(marker));
1197
+ const width = Math.max(1, getColumns(output ?? process.stdout) - 2 - fastStringWidth(marker));
1304
1198
  const [first, ...rest] = label.split("\n");
1305
1199
  return wrapAnsi([format(first) + suffix, ...rest.map(format)].join("\n"), width, {
1306
1200
  hard: true,
@@ -1474,13 +1368,13 @@ import_picocolors.default.gray;
1474
1368
  * piped output never see these markers as content (they only update the
1475
1369
  * window title, which the runner's PTY captures).
1476
1370
  *
1477
- * Protocol (shared with vite-task's `pty_terminal_test_client` crate):
1478
- * `OSC 2 ; pty-terminal-test:<32-hex-id>:<base64url(name)> ST`. The runner
1371
+ * Protocol (shared with vite-task's `vt_pty_terminal_test_client` crate):
1372
+ * `OSC 2 ; vt-pty-terminal-test:<32-hex-id>:<base64url(name)> ST`. The runner
1479
1373
  * decodes the title with `decode_milestone_title`, ignoring ordinary title
1480
1374
  * updates. A fresh random id per emission keeps repeated milestones with the
1481
1375
  * same name observable as distinct title changes through Windows ConPTY.
1482
1376
  */
1483
- const MILESTONE_TITLE_MARKER = "pty-terminal-test:";
1377
+ const MILESTONE_TITLE_MARKER = "vt-pty-terminal-test:";
1484
1378
  const OSC2_OPEN = "\x1B]2;";
1485
1379
  const ST = "\x1B\\";
1486
1380
  const MILESTONES_ENABLED = process.env.VP_EMIT_MILESTONES === "1";
@@ -1537,9 +1431,9 @@ const log = {
1537
1431
  const parts = [];
1538
1432
  const hasGuide = getGuide({ withGuide });
1539
1433
  const spacingString = !hasGuide ? "" : secondarySymbol;
1540
- const prefix = symbol ? `${symbol} ` : hasGuide ? `${secondarySymbol} ` : "";
1434
+ const prefix = symbol ? `${symbol} ` : hasGuide ? `${secondarySymbol} ` : "";
1541
1435
  const marker = symbol ?? secondarySymbol;
1542
- const secondaryPrefix = hasGuide ? `${secondarySymbol} ` : symbol ? " " : "";
1436
+ const secondaryPrefix = hasGuide ? `${secondarySymbol} ` : symbol ? " " : "";
1543
1437
  for (let i = 0; i < spacing; i++) parts.push(spacingString);
1544
1438
  const messageParts = Array.isArray(message) ? message : message.split("\n");
1545
1439
  if (messageParts.length > 0) {
@@ -1759,9 +1653,9 @@ const spinner = ({ indicator = "dots", onCancel, output = process.stdout, cancel
1759
1653
  hard: true,
1760
1654
  trim: false
1761
1655
  }).split("\n");
1762
- if (prevLines.length > 1) output.write(import_src.cursor.up(prevLines.length - 1));
1763
- output.write(import_src.cursor.to(0));
1764
- output.write(import_src.erase.down());
1656
+ if (prevLines.length > 1) output.write(cursor.up(prevLines.length - 1));
1657
+ output.write(cursor.to(0));
1658
+ output.write(erase.down());
1765
1659
  };
1766
1660
  const hasGuide = getGuide(opts);
1767
1661
  const startLoop = () => {
@@ -1778,11 +1672,11 @@ const spinner = ({ indicator = "dots", onCancel, output = process.stdout, cancel
1778
1672
  clearPrevMessage();
1779
1673
  const frame = styleFn(frames[frameIndex] ?? (unicode ? "◒" : "o"));
1780
1674
  let outputMessage;
1781
- if (isCI$1) outputMessage = `${frame} ${_message}...`;
1782
- else if (indicator === "timer") outputMessage = `${frame} ${_message} ${formatTimer(getElapsedMs())}`;
1675
+ if (isCI$1) outputMessage = `${frame} ${_message}...`;
1676
+ else if (indicator === "timer") outputMessage = `${frame} ${_message} ${formatTimer(getElapsedMs())}`;
1783
1677
  else {
1784
1678
  const loadingDots = ".".repeat(Math.floor(indicatorTimer)).slice(0, 3);
1785
- outputMessage = `${frame} ${_message}${loadingDots}`;
1679
+ outputMessage = `${frame} ${_message}${loadingDots}`;
1786
1680
  }
1787
1681
  const wrapped = wrapAnsi(outputMessage, columns, {
1788
1682
  hard: true,
@@ -2627,12 +2521,13 @@ async function selectPackageManager(interactive, silent = false) {
2627
2521
  return PackageManager.pnpm;
2628
2522
  }
2629
2523
  }
2630
- async function downloadPackageManager$1(packageManager, version, interactive, silent = false) {
2524
+ async function downloadPackageManager$1(packageManager, version, interactive, silent = false, cwd) {
2631
2525
  const spinner = silent ? getSilentSpinner() : getSpinner(interactive);
2632
2526
  spinner.start(`${packageManager}@${version} installing...`);
2633
2527
  const downloadResult = await downloadPackageManager({
2634
2528
  name: packageManager,
2635
- version
2529
+ version,
2530
+ cwd
2636
2531
  });
2637
2532
  spinner.stop(`${packageManager}@${downloadResult.version} installed`);
2638
2533
  return downloadResult;
@@ -0,0 +1 @@
1
+ export { a as resolveUniversalViteConfig } from "./resolve-vite-config-BVr1SUNg.js";
@@ -1,5 +1,5 @@
1
- import { l as VITE_CONFIG_FILES } from "./constants-CCQkpaxK.js";
2
- import { u as withConfigMetadataResolution } from "./define-config-Ro6PS4dP.js";
1
+ import { l as VITE_CONFIG_FILES } from "./constants-DR55DpRm.js";
2
+ import { u as withConfigMetadataResolution } from "./define-config-CvE5pHqB.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs";
5
5
  //#region src/resolve-vite-config.ts
@@ -6,7 +6,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
9
+ var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod, mod.exports), cb = null), mod.exports);
10
10
  var __copyProps = (to, from, except, desc) => {
11
11
  if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
12
12
  key = keys[i];
@@ -1,12 +1,12 @@
1
- import { r as __toESM, t as __commonJSMin } from "../rolldown-runtime-CMFfr-1z.js";
1
+ import { r as __toESM, t as __commonJSMin } from "../rolldown-runtime-kJ_i4yPo.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-Be237LWp.js";
3
+ import { o as resolveViteConfig } from "../resolve-vite-config-BVr1SUNg.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";
7
7
  import { fileURLToPath, pathToFileURL } from "node:url";
8
8
  import { parseStagedArgs } from "../../binding/index.js";
9
- import util, { format, formatWithOptions, inspect, promisify } from "node:util";
9
+ import util, { format, formatWithOptions, inspect, promisify, stripVTControlCharacters } from "node:util";
10
10
  import { closeSync, constants, openSync, readSync, statSync } from "node:fs";
11
11
  import { cwd } from "node:process";
12
12
  import l__default from "node:readline";
@@ -4099,7 +4099,7 @@ const jsonParse = async (filename) => {
4099
4099
  const yamlParse = async (filename) => {
4100
4100
  const isPackageFile = PACKAGE_YAML_FILES.includes(path.basename(filename));
4101
4101
  try {
4102
- const [YAML, content] = await Promise.all([import("../dist-BsAzy8OW.js").then((m) => /* @__PURE__ */ __toESM(m.default, 1)), readFile(filename)]);
4102
+ const [YAML, content] = await Promise.all([import("../dist-Dhu07wmN.js").then((m) => /* @__PURE__ */ __toESM(m.default, 1)), readFile(filename)]);
4103
4103
  const yaml = YAML.parse(content);
4104
4104
  return isPackageFile ? yaml[CONFIG_NAME] : yaml;
4105
4105
  } catch (error) {
@@ -4589,6 +4589,34 @@ const lintStaged = async (options = {}, logger = console) => {
4589
4589
  }
4590
4590
  };
4591
4591
  //#endregion
4592
+ //#region src/staged/logger.ts
4593
+ const workflowSuccessMessages = /* @__PURE__ */ new Set([
4594
+ "✔ Done preparing lint-staged!",
4595
+ "✔ Done running tasks for staged files!",
4596
+ "✔ Done running tasks for changed files!",
4597
+ "✔ Done staging changes from tasks!",
4598
+ "✔ Done hiding unstaged changes to partially staged files!",
4599
+ "✔ Done restoring untracked files!",
4600
+ "✔ Done cleaning up temporary files!"
4601
+ ]);
4602
+ function isWorkflowProgress(message) {
4603
+ const text = stripVTControlCharacters(message);
4604
+ if (text.includes("\n")) return false;
4605
+ return text === "" || text.startsWith("⋯ ") || text.startsWith(" ") || workflowSuccessMessages.has(text) || /^✔ Done backing up original state \([\da-f]+\)!$/.test(text);
4606
+ }
4607
+ function createStagedLogger(logger = {
4608
+ ...console,
4609
+ log
4610
+ }) {
4611
+ return {
4612
+ ...logger,
4613
+ log(message, ...args) {
4614
+ if (typeof message === "string" && args.length === 0 && isWorkflowProgress(message)) return;
4615
+ logger.log(message, ...args);
4616
+ }
4617
+ };
4618
+ }
4619
+ //#endregion
4592
4620
  //#region src/staged/bin.ts
4593
4621
  const args = unwrapCliParseOutcome(parseStagedArgs(process.argv.slice(3)));
4594
4622
  const options = {};
@@ -4626,7 +4654,7 @@ if (args.cwd != null) options.cwd = args.cwd;
4626
4654
  if (args.diff != null) options.diff = args.diff;
4627
4655
  if (args.diffFilter != null) options.diffFilter = args.diffFilter;
4628
4656
  if (args.concurrent != null) options.concurrent = args.concurrent;
4629
- const success = await lintStaged(options);
4657
+ const success = await lintStaged(options, options.debug || options.quiet ? void 0 : createStagedLogger());
4630
4658
  process.exit(success ? 0 : 1);
4631
4659
  //#endregion
4632
4660
  export {};