react-doctor 0.9.12 → 0.9.13-dev.2e3f6eb

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 (52) hide show
  1. package/README.md +34 -1
  2. package/bin/react-doctor.js +1 -9
  3. package/dist/active-run-trace-dlIZeEvb.js +18 -0
  4. package/dist/active-scan-abort-registry-DwG6tSPy.js +28 -0
  5. package/dist/{build-section-divider-BsQvH-7I.js → build-section-divider-DZA4c-cf.js} +10 -25
  6. package/dist/{ci-B4x4RjKD.js → ci-S0bTu0o7.js} +13 -12
  7. package/dist/cli.js +121 -41
  8. package/dist/{design-A48PNCf_.js → design-B_e6HEZ7.js} +4 -4
  9. package/dist/{devtools-DPRVRu3S.js → devtools-CC2PAZ85.js} +4 -4
  10. package/dist/{exit-gracefully-Bk531kS-.js → exit-gracefully-DyTWDVj-.js} +15 -9
  11. package/dist/get-east-asian-width-Bv2TD3Xj.js +444 -0
  12. package/dist/{report-error-Pb2uO8EG.js → handle-error-4yYwwrfs.js} +18 -68
  13. package/dist/index.d.ts +53 -42
  14. package/dist/index.js +55126 -54688
  15. package/dist/{inspect-CwH84aSA.js → inspect-CuGcOcRw.js} +44 -33
  16. package/dist/{install-sFN_w425.js → install-HI1T486C.js} +9 -8
  17. package/dist/{install-doctor-script-DLayXS7q.js → install-doctor-script-Deldi_8f.js} +7 -449
  18. package/dist/{install-github-workflow-Goz-KFqb.js → install-github-workflow-DSe3lec2.js} +10 -6
  19. package/dist/{install-react-doctor-Bq7dfEBI.js → install-react-doctor-CF-vA_AY.js} +47 -45
  20. package/dist/{run-scan-app-DXBMW54J.js → jsx-runtime-Dv23MVo2.js} +281 -2759
  21. package/dist/path-format-DnHpmJwG.js +9 -0
  22. package/dist/{print-branded-header-D_J8Qdsj.js → print-branded-header-DGdy9YGZ.js} +4 -4
  23. package/dist/project-analysis-worker.d.ts +1 -0
  24. package/dist/project-analysis-worker.js +51905 -0
  25. package/dist/prompt-runtime-scan-url-CoDCW0Xw.js +240 -0
  26. package/dist/{read-object-file-Hk79zI91.js → read-object-file-CLvVP0OL.js} +4 -4
  27. package/dist/{record-metric-CsQXJewH.js → record-metric-CFTeG4Ha.js} +3264 -6018
  28. package/dist/report-error-B_O2ZFAv.js +64 -0
  29. package/dist/{report-workflow-result-6n_wSqzA.js → report-workflow-result-CjDXDNp9.js} +5 -5
  30. package/dist/{resolve-scope-DP6rYlNO.js → resolve-scope-B-trcJ7X.js} +8 -10
  31. package/dist/{rules-BnIZ4Fq_.js → rules-VU4BYkQ8.js} +6 -6
  32. package/dist/run-scan-app-BfeaRuV4.js +2511 -0
  33. package/dist/runtime-scan/browser-probe.iife.js +855 -0
  34. package/dist/runtime-scan-B_Eegbyo.js +770 -0
  35. package/dist/sanitize-runtime-url-hKKd5j5H.js +76 -0
  36. package/dist/scan-CrgcC-Rk.js +47 -0
  37. package/dist/semver-DFtnEmN-.js +3219 -0
  38. package/dist/{should-fail-scan-gate-DzZuTxim.js → should-fail-scan-gate-DE7RleKZ.js} +160 -184
  39. package/dist/{should-skip-prompts-D1GWG2qN.js → should-skip-prompts-BmYznvDr.js} +4 -4
  40. package/dist/should-use-tui-dVbYKSDM.js +25 -0
  41. package/dist/skills/improve-threejs/SKILL.md +102 -0
  42. package/dist/skills/performance/SKILL.md +113 -0
  43. package/dist/skills/react-doctor/SKILL.md +6 -0
  44. package/dist/{unref-stdin-0a_0uwC6.js → telemetry-runtime-D2l_bu0o.js} +57 -33
  45. package/dist/unref-stdin-SK3WfwxS.js +12 -0
  46. package/dist/{version-Bo5QDp7F.js → version-CB3K7ucz.js} +4 -4
  47. package/dist/{why-BFYbtnm8.js → why-CCN3R7xM.js} +4 -4
  48. package/dist/with-run-span-BC-NFEo9.js +110 -0
  49. package/package.json +9 -10
  50. package/dist/chunk-q7NCDQ7-.js +0 -28
  51. package/dist/lsp.js +0 -81145
  52. package/dist/scan-CnnXz78m.js +0 -53
@@ -1,13 +1,14 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1bafcce9-582d-5e1a-bc89-a32bbcc74196")}catch(e){}}();
3
- import { Gn as log, Kn as warn, O as RUN_GIT_MAX_BUFFER_BYTES, Un as error$1, Wn as info$1, ar as runSync, cn as highlighter, z as isNonInteractiveEnvironment } from "./record-metric-CsQXJewH.js";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ed2ed5b2-88c6-5d9f-99f2-b60f3282ddd5")}catch(e){}}();
3
+ import { B as isNonInteractiveEnvironment, Cn as error$1, En as warn, Kt as highlighter, Tn as log, k as RUN_GIT_MAX_BUFFER_BYTES, wn as info$1, zn as runSync } from "./record-metric-CFTeG4Ha.js";
4
+ import { a as chalk, i as stripAnsi, t as eastAsianWidth } from "./get-east-asian-width-Bv2TD3Xj.js";
4
5
  import { execFileSync } from "node:child_process";
5
6
  import * as path$1 from "node:path";
6
7
  import * as fs$1 from "node:fs";
7
8
  import process$1 from "node:process";
8
- import os from "node:os";
9
9
  import { stripVTControlCharacters } from "node:util";
10
10
  import tty from "node:tty";
11
+ import isUnicodeSupported from "is-unicode-supported";
11
12
  //#region src/cli/utils/cli-logger.ts
12
13
  /**
13
14
  * Thin synchronous façade over Effect's `Console` module. Used by
@@ -120,408 +121,6 @@ const packageHasNestedRecordKey = (projectRoot, key, nestedKey) => {
120
121
  };
121
122
  const ensureTrailingNewline = (content) => content.endsWith("\n") ? content : `${content}\n`;
122
123
  //#endregion
123
- //#region ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js
124
- const ANSI_BACKGROUND_OFFSET = 10;
125
- const wrapAnsi16 = (offset = 0) => (code) => `\u001B[${code + offset}m`;
126
- const wrapAnsi256 = (offset = 0) => (code) => `\u001B[${38 + offset};5;${code}m`;
127
- const wrapAnsi16m = (offset = 0) => (red, green, blue) => `\u001B[${38 + offset};2;${red};${green};${blue}m`;
128
- const styles$1 = {
129
- modifier: {
130
- reset: [0, 0],
131
- bold: [1, 22],
132
- dim: [2, 22],
133
- italic: [3, 23],
134
- underline: [4, 24],
135
- overline: [53, 55],
136
- inverse: [7, 27],
137
- hidden: [8, 28],
138
- strikethrough: [9, 29]
139
- },
140
- color: {
141
- black: [30, 39],
142
- red: [31, 39],
143
- green: [32, 39],
144
- yellow: [33, 39],
145
- blue: [34, 39],
146
- magenta: [35, 39],
147
- cyan: [36, 39],
148
- white: [37, 39],
149
- blackBright: [90, 39],
150
- gray: [90, 39],
151
- grey: [90, 39],
152
- redBright: [91, 39],
153
- greenBright: [92, 39],
154
- yellowBright: [93, 39],
155
- blueBright: [94, 39],
156
- magentaBright: [95, 39],
157
- cyanBright: [96, 39],
158
- whiteBright: [97, 39]
159
- },
160
- bgColor: {
161
- bgBlack: [40, 49],
162
- bgRed: [41, 49],
163
- bgGreen: [42, 49],
164
- bgYellow: [43, 49],
165
- bgBlue: [44, 49],
166
- bgMagenta: [45, 49],
167
- bgCyan: [46, 49],
168
- bgWhite: [47, 49],
169
- bgBlackBright: [100, 49],
170
- bgGray: [100, 49],
171
- bgGrey: [100, 49],
172
- bgRedBright: [101, 49],
173
- bgGreenBright: [102, 49],
174
- bgYellowBright: [103, 49],
175
- bgBlueBright: [104, 49],
176
- bgMagentaBright: [105, 49],
177
- bgCyanBright: [106, 49],
178
- bgWhiteBright: [107, 49]
179
- }
180
- };
181
- Object.keys(styles$1.modifier);
182
- const foregroundColorNames = Object.keys(styles$1.color);
183
- const backgroundColorNames = Object.keys(styles$1.bgColor);
184
- [...foregroundColorNames, ...backgroundColorNames];
185
- function assembleStyles() {
186
- const codes = /* @__PURE__ */ new Map();
187
- for (const [groupName, group] of Object.entries(styles$1)) {
188
- for (const [styleName, style] of Object.entries(group)) {
189
- styles$1[styleName] = {
190
- open: `\u001B[${style[0]}m`,
191
- close: `\u001B[${style[1]}m`
192
- };
193
- group[styleName] = styles$1[styleName];
194
- codes.set(style[0], style[1]);
195
- }
196
- Object.defineProperty(styles$1, groupName, {
197
- value: group,
198
- enumerable: false
199
- });
200
- }
201
- Object.defineProperty(styles$1, "codes", {
202
- value: codes,
203
- enumerable: false
204
- });
205
- styles$1.color.close = "\x1B[39m";
206
- styles$1.bgColor.close = "\x1B[49m";
207
- styles$1.color.ansi = wrapAnsi16();
208
- styles$1.color.ansi256 = wrapAnsi256();
209
- styles$1.color.ansi16m = wrapAnsi16m();
210
- styles$1.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
211
- styles$1.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
212
- styles$1.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
213
- Object.defineProperties(styles$1, {
214
- rgbToAnsi256: {
215
- value(red, green, blue) {
216
- if (red === green && green === blue) {
217
- if (red < 8) return 16;
218
- if (red > 248) return 231;
219
- return Math.round((red - 8) / 247 * 24) + 232;
220
- }
221
- return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
222
- },
223
- enumerable: false
224
- },
225
- hexToRgb: {
226
- value(hex) {
227
- const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
228
- if (!matches) return [
229
- 0,
230
- 0,
231
- 0
232
- ];
233
- let [colorString] = matches;
234
- if (colorString.length === 3) colorString = [...colorString].map((character) => character + character).join("");
235
- const integer = Number.parseInt(colorString, 16);
236
- return [
237
- integer >> 16 & 255,
238
- integer >> 8 & 255,
239
- integer & 255
240
- ];
241
- },
242
- enumerable: false
243
- },
244
- hexToAnsi256: {
245
- value: (hex) => styles$1.rgbToAnsi256(...styles$1.hexToRgb(hex)),
246
- enumerable: false
247
- },
248
- ansi256ToAnsi: {
249
- value(code) {
250
- if (code < 8) return 30 + code;
251
- if (code < 16) return 90 + (code - 8);
252
- let red;
253
- let green;
254
- let blue;
255
- if (code >= 232) {
256
- red = ((code - 232) * 10 + 8) / 255;
257
- green = red;
258
- blue = red;
259
- } else {
260
- code -= 16;
261
- const remainder = code % 36;
262
- red = Math.floor(code / 36) / 5;
263
- green = Math.floor(remainder / 6) / 5;
264
- blue = remainder % 6 / 5;
265
- }
266
- const value = Math.max(red, green, blue) * 2;
267
- if (value === 0) return 30;
268
- let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
269
- if (value === 2) result += 60;
270
- return result;
271
- },
272
- enumerable: false
273
- },
274
- rgbToAnsi: {
275
- value: (red, green, blue) => styles$1.ansi256ToAnsi(styles$1.rgbToAnsi256(red, green, blue)),
276
- enumerable: false
277
- },
278
- hexToAnsi: {
279
- value: (hex) => styles$1.ansi256ToAnsi(styles$1.hexToAnsi256(hex)),
280
- enumerable: false
281
- }
282
- });
283
- return styles$1;
284
- }
285
- const ansiStyles = assembleStyles();
286
- //#endregion
287
- //#region ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js
288
- function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process$1.argv) {
289
- const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
290
- const position = argv.indexOf(prefix + flag);
291
- const terminatorPosition = argv.indexOf("--");
292
- return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
293
- }
294
- const { env: env$1 } = process$1;
295
- let flagForceColor;
296
- if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) flagForceColor = 0;
297
- else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) flagForceColor = 1;
298
- function envForceColor() {
299
- if ("FORCE_COLOR" in env$1) {
300
- if (env$1.FORCE_COLOR === "true") return 1;
301
- if (env$1.FORCE_COLOR === "false") return 0;
302
- return env$1.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env$1.FORCE_COLOR, 10), 3);
303
- }
304
- }
305
- function translateLevel(level) {
306
- if (level === 0) return false;
307
- return {
308
- level,
309
- hasBasic: true,
310
- has256: level >= 2,
311
- has16m: level >= 3
312
- };
313
- }
314
- function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
315
- const noFlagForceColor = envForceColor();
316
- if (noFlagForceColor !== void 0) flagForceColor = noFlagForceColor;
317
- const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
318
- if (forceColor === 0) return 0;
319
- if (sniffFlags) {
320
- if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) return 3;
321
- if (hasFlag("color=256")) return 2;
322
- }
323
- if ("TF_BUILD" in env$1 && "AGENT_NAME" in env$1) return 1;
324
- if (haveStream && !streamIsTTY && forceColor === void 0) return 0;
325
- const min = forceColor || 0;
326
- if (env$1.TERM === "dumb") return min;
327
- if (process$1.platform === "win32") {
328
- const osRelease = os.release().split(".");
329
- if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
330
- return 1;
331
- }
332
- if ("CI" in env$1) {
333
- if ([
334
- "GITHUB_ACTIONS",
335
- "GITEA_ACTIONS",
336
- "CIRCLECI"
337
- ].some((key) => key in env$1)) return 3;
338
- if ([
339
- "TRAVIS",
340
- "APPVEYOR",
341
- "GITLAB_CI",
342
- "BUILDKITE",
343
- "DRONE"
344
- ].some((sign) => sign in env$1) || env$1.CI_NAME === "codeship") return 1;
345
- return min;
346
- }
347
- if ("TEAMCITY_VERSION" in env$1) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$1.TEAMCITY_VERSION) ? 1 : 0;
348
- if (env$1.COLORTERM === "truecolor") return 3;
349
- if (env$1.TERM === "xterm-kitty") return 3;
350
- if (env$1.TERM === "xterm-ghostty") return 3;
351
- if (env$1.TERM === "wezterm") return 3;
352
- if ("TERM_PROGRAM" in env$1) {
353
- const version = Number.parseInt((env$1.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
354
- switch (env$1.TERM_PROGRAM) {
355
- case "iTerm.app": return version >= 3 ? 3 : 2;
356
- case "Apple_Terminal": return 2;
357
- }
358
- }
359
- if (/-256(color)?$/i.test(env$1.TERM)) return 2;
360
- if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$1.TERM)) return 1;
361
- if ("COLORTERM" in env$1) return 1;
362
- return min;
363
- }
364
- function createSupportsColor(stream, options = {}) {
365
- return translateLevel(_supportsColor(stream, {
366
- streamIsTTY: stream && stream.isTTY,
367
- ...options
368
- }));
369
- }
370
- const supportsColor = {
371
- stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
372
- stderr: createSupportsColor({ isTTY: tty.isatty(2) })
373
- };
374
- //#endregion
375
- //#region ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.js
376
- function stringReplaceAll(string, substring, replacer) {
377
- let index = string.indexOf(substring);
378
- if (index === -1) return string;
379
- const substringLength = substring.length;
380
- let endIndex = 0;
381
- let returnValue = "";
382
- do {
383
- returnValue += string.slice(endIndex, index) + substring + replacer;
384
- endIndex = index + substringLength;
385
- index = string.indexOf(substring, endIndex);
386
- } while (index !== -1);
387
- returnValue += string.slice(endIndex);
388
- return returnValue;
389
- }
390
- function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
391
- let endIndex = 0;
392
- let returnValue = "";
393
- do {
394
- const gotCR = string[index - 1] === "\r";
395
- returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? "\r\n" : "\n") + postfix;
396
- endIndex = index + 1;
397
- index = string.indexOf("\n", endIndex);
398
- } while (index !== -1);
399
- returnValue += string.slice(endIndex);
400
- return returnValue;
401
- }
402
- //#endregion
403
- //#region ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.js
404
- const { stdout: stdoutColor, stderr: stderrColor } = supportsColor;
405
- const GENERATOR = Symbol("GENERATOR");
406
- const STYLER = Symbol("STYLER");
407
- const IS_EMPTY = Symbol("IS_EMPTY");
408
- const levelMapping = [
409
- "ansi",
410
- "ansi",
411
- "ansi256",
412
- "ansi16m"
413
- ];
414
- const styles = Object.create(null);
415
- const applyOptions = (object, options = {}) => {
416
- if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) throw new Error("The `level` option should be an integer from 0 to 3");
417
- const colorLevel = stdoutColor ? stdoutColor.level : 0;
418
- object.level = options.level === void 0 ? colorLevel : options.level;
419
- };
420
- const chalkFactory = (options) => {
421
- const chalk = (...strings) => strings.join(" ");
422
- applyOptions(chalk, options);
423
- Object.setPrototypeOf(chalk, createChalk.prototype);
424
- return chalk;
425
- };
426
- function createChalk(options) {
427
- return chalkFactory(options);
428
- }
429
- Object.setPrototypeOf(createChalk.prototype, Function.prototype);
430
- for (const [styleName, style] of Object.entries(ansiStyles)) styles[styleName] = { get() {
431
- const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
432
- Object.defineProperty(this, styleName, { value: builder });
433
- return builder;
434
- } };
435
- styles.visible = { get() {
436
- const builder = createBuilder(this, this[STYLER], true);
437
- Object.defineProperty(this, "visible", { value: builder });
438
- return builder;
439
- } };
440
- const getModelAnsi = (model, level, type, ...arguments_) => {
441
- if (model === "rgb") {
442
- if (level === "ansi16m") return ansiStyles[type].ansi16m(...arguments_);
443
- if (level === "ansi256") return ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));
444
- return ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));
445
- }
446
- if (model === "hex") return getModelAnsi("rgb", level, type, ...ansiStyles.hexToRgb(...arguments_));
447
- return ansiStyles[type][model](...arguments_);
448
- };
449
- for (const model of [
450
- "rgb",
451
- "hex",
452
- "ansi256"
453
- ]) {
454
- styles[model] = { get() {
455
- const { level } = this;
456
- return function(...arguments_) {
457
- const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansiStyles.color.close, this[STYLER]);
458
- return createBuilder(this, styler, this[IS_EMPTY]);
459
- };
460
- } };
461
- const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
462
- styles[bgModel] = { get() {
463
- const { level } = this;
464
- return function(...arguments_) {
465
- const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansiStyles.bgColor.close, this[STYLER]);
466
- return createBuilder(this, styler, this[IS_EMPTY]);
467
- };
468
- } };
469
- }
470
- const proto = Object.defineProperties(() => {}, {
471
- ...styles,
472
- level: {
473
- enumerable: true,
474
- get() {
475
- return this[GENERATOR].level;
476
- },
477
- set(level) {
478
- this[GENERATOR].level = level;
479
- }
480
- }
481
- });
482
- const createStyler = (open, close, parent) => {
483
- let openAll;
484
- let closeAll;
485
- if (parent === void 0) {
486
- openAll = open;
487
- closeAll = close;
488
- } else {
489
- openAll = parent.openAll + open;
490
- closeAll = close + parent.closeAll;
491
- }
492
- return {
493
- open,
494
- close,
495
- openAll,
496
- closeAll,
497
- parent
498
- };
499
- };
500
- const createBuilder = (self, _styler, _isEmpty) => {
501
- const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
502
- Object.setPrototypeOf(builder, proto);
503
- builder[GENERATOR] = self;
504
- builder[STYLER] = _styler;
505
- builder[IS_EMPTY] = _isEmpty;
506
- return builder;
507
- };
508
- const applyStyle = (self, string) => {
509
- if (self.level <= 0 || !string) return self[IS_EMPTY] ? "" : string;
510
- let styler = self[STYLER];
511
- if (styler === void 0) return string;
512
- const { openAll, closeAll } = styler;
513
- if (string.includes("\x1B")) while (styler !== void 0) {
514
- string = stringReplaceAll(string, styler.close, styler.open);
515
- styler = styler.parent;
516
- }
517
- const lfIndex = string.indexOf("\n");
518
- if (lfIndex !== -1) string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
519
- return openAll + string + closeAll;
520
- };
521
- Object.defineProperties(createChalk.prototype, styles);
522
- const chalk = createChalk();
523
- createChalk({ level: stderrColor ? stderrColor.level : 0 });
524
- //#endregion
525
124
  //#region ../../node_modules/.pnpm/mimic-function@5.0.1/node_modules/mimic-function/index.js
526
125
  const copyProperty = (to, from, property, ignoreNonConfigurable) => {
527
126
  if (property === "length" || property === "prototype") return;
@@ -2534,14 +2133,6 @@ format(105, 49);
2534
2133
  format(106, 49);
2535
2134
  format(107, 49);
2536
2135
  //#endregion
2537
- //#region ../../node_modules/.pnpm/is-unicode-supported@2.1.0/node_modules/is-unicode-supported/index.js
2538
- function isUnicodeSupported() {
2539
- const { env } = process$1;
2540
- const { TERM, TERM_PROGRAM } = env;
2541
- if (process$1.platform !== "win32") return TERM !== "linux";
2542
- 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";
2543
- }
2544
- //#endregion
2545
2136
  //#region ../../node_modules/.pnpm/log-symbols@7.0.1/node_modules/log-symbols/symbols.js
2546
2137
  const _isUnicodeSupported = isUnicodeSupported();
2547
2138
  const info = blue(_isUnicodeSupported ? "ℹ" : "i");
@@ -2549,39 +2140,6 @@ const success = green(_isUnicodeSupported ? "✔" : "√");
2549
2140
  const warning = yellow(_isUnicodeSupported ? "⚠" : "‼");
2550
2141
  const error = red(_isUnicodeSupported ? "✖" : "×");
2551
2142
  //#endregion
2552
- //#region ../../node_modules/.pnpm/ansi-regex@6.2.2/node_modules/ansi-regex/index.js
2553
- function ansiRegex({ onlyFirst = false } = {}) {
2554
- return new RegExp(`(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]`, onlyFirst ? void 0 : "g");
2555
- }
2556
- //#endregion
2557
- //#region ../../node_modules/.pnpm/strip-ansi@7.1.2/node_modules/strip-ansi/index.js
2558
- const regex = ansiRegex();
2559
- function stripAnsi(string) {
2560
- if (typeof string !== "string") throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
2561
- return string.replace(regex, "");
2562
- }
2563
- //#endregion
2564
- //#region ../../node_modules/.pnpm/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/lookup.js
2565
- function isAmbiguous(x) {
2566
- 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;
2567
- }
2568
- function isFullWidth(x) {
2569
- return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
2570
- }
2571
- function isWide(x) {
2572
- 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 >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || 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 <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && 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 <= 94198 || x >= 94208 && x <= 101589 || x >= 101631 && x <= 101662 || x >= 101760 && x <= 101874 || 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 >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || 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 <= 128728 || 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 <= 129674 || x >= 129678 && x <= 129734 || x === 129736 || x >= 129741 && x <= 129756 || x >= 129759 && x <= 129770 || x >= 129775 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
2573
- }
2574
- //#endregion
2575
- //#region ../../node_modules/.pnpm/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/index.js
2576
- function validate(codePoint) {
2577
- if (!Number.isSafeInteger(codePoint)) throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
2578
- }
2579
- function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
2580
- validate(codePoint);
2581
- if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) return 2;
2582
- return 1;
2583
- }
2584
- //#endregion
2585
2143
  //#region ../../node_modules/.pnpm/string-width@8.1.1/node_modules/string-width/index.js
2586
2144
  /**
2587
2145
  Logic:
@@ -3245,7 +2803,7 @@ const installReactDoctorScriptStep = (projectRoot) => {
3245
2803
  }
3246
2804
  };
3247
2805
  //#endregion
3248
- export { packageHasNestedRecordKey as A, SIMPLE_GIT_HOOKS_CONFIG_FILE as C, getPackageJsonPath as D, ensureTrailingNewline as E, runGitRaw as F, writeJsonFile as I, cliLogger as L, readPackageJson as M, resolveGitPath as N, isRecord as O, runGit as P, REACT_DOCTOR_COMMAND as S, VITE_PLUS_HOOKS_PATH as T, LEFTHOOK_CONFIG_FILES as _, installReactDoctorScriptStep as a, OVERCOMMIT_CONFIG_FILE as b, spinner as c, stripAnsi as d, isUnicodeSupported as f, HUSKY_HOOKS_PATH as g, HOOK_RELATIVE_PATH as h, hasDoctorScript as i, packageHasRecordKey as j, packageHasDependency as k, isFullWidth as l, HOOK_FILE_NAME as m, findNearestPackageDirectory as n, isSpinnerSilent as o, chalk as p, hasDoctorDependency as r, setSpinnerSilent as s, DOCTOR_PACKAGE_NAME as t, isWide as u, LEGACY_HOOK_RUNNER_RELATIVE_PATH as v, SIMPLE_GIT_HOOKS_PACKAGE_JSON_KEY as w, PRE_COMMIT_CONFIG_FILE as x, NON_BLOCKING_REACT_DOCTOR_COMMAND as y };
2806
+ export { runGitRaw as A, isRecord as C, readPackageJson as D, packageHasRecordKey as E, cliLogger as M, resolveGitPath as O, getPackageJsonPath as S, packageHasNestedRecordKey as T, REACT_DOCTOR_COMMAND as _, installReactDoctorScriptStep as a, VITE_PLUS_HOOKS_PATH as b, spinner as c, HUSKY_HOOKS_PATH as d, LEFTHOOK_CONFIG_FILES as f, PRE_COMMIT_CONFIG_FILE as g, OVERCOMMIT_CONFIG_FILE as h, hasDoctorScript as i, writeJsonFile as j, runGit as k, HOOK_FILE_NAME as l, NON_BLOCKING_REACT_DOCTOR_COMMAND as m, findNearestPackageDirectory as n, isSpinnerSilent as o, LEGACY_HOOK_RUNNER_RELATIVE_PATH as p, hasDoctorDependency as r, setSpinnerSilent as s, DOCTOR_PACKAGE_NAME as t, HOOK_RELATIVE_PATH as u, SIMPLE_GIT_HOOKS_CONFIG_FILE as v, packageHasDependency as w, ensureTrailingNewline as x, SIMPLE_GIT_HOOKS_PACKAGE_JSON_KEY as y };
3249
2807
 
3250
- //# sourceMappingURL=install-doctor-script-DLayXS7q.js.map
3251
- //# debugId=1bafcce9-582d-5e1a-bc89-a32bbcc74196
2808
+ //# sourceMappingURL=install-doctor-script-Deldi_8f.js.map
2809
+ //# debugId=ed2ed5b2-88c6-5d9f-99f2-b60f3282ddd5
@@ -1,8 +1,8 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d1cb508b-96cc-5dbf-97f7-661ec92c04be")}catch(e){}}();
3
- import { C as GH_DEFAULT_BRANCH_PROBE_TIMEOUT_MS } from "./record-metric-CsQXJewH.js";
4
- import { t as unrefStdin } from "./unref-stdin-0a_0uwC6.js";
5
- import { L as cliLogger } from "./install-doctor-script-DLayXS7q.js";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4322dfe5-353c-5912-ab46-0cd03fe69b97")}catch(e){}}();
3
+ import { w as GH_DEFAULT_BRANCH_PROBE_TIMEOUT_MS } from "./record-metric-CFTeG4Ha.js";
4
+ import { t as unrefStdin } from "./unref-stdin-SK3WfwxS.js";
5
+ import { M as cliLogger } from "./install-doctor-script-Deldi_8f.js";
6
6
  import { createRequire } from "node:module";
7
7
  import { execFile } from "node:child_process";
8
8
  import * as path$1 from "node:path";
@@ -183,6 +183,10 @@ jobs:
183
183
  # the gate: uncomment the block below and set blocking to "error" (fail
184
184
  # on new error-severity findings) or "warning" (fail on any finding).
185
185
  # Full reference: https://www.react.doctor/ci
186
+ #
187
+ # Security: @v2 is a floating major tag that may move. For supply-chain-
188
+ # hardened CI, pin to a full commit SHA with a version comment instead:
189
+ # uses: millionco/react-doctor@<sha> # v2.x.x
186
190
  # with:
187
191
  # blocking: error # Gate level: "none" (advisory, the default) | "warning" | "error"
188
192
  # scope: full # On PRs, scan the whole project instead of just changed files
@@ -263,5 +267,5 @@ const upgradeReactDoctorWorkflowInPlace = (projectRoot) => {
263
267
  //#endregion
264
268
  export { readReactDoctorWorkflow as a, workflowUsesV1Action as c, detectDefaultBranch as d, runCommand as f, isReactDoctorWorkflowInstalled as i, prompts as l, getReactDoctorWorkflowPath as n, upgradeReactDoctorWorkflowInPlace as o, installReactDoctorWorkflow as r, upgradeWorkflowActionToV2 as s, buildWorkflowContent as t, isCommandAvailable as u };
265
269
 
266
- //# sourceMappingURL=install-github-workflow-Goz-KFqb.js.map
267
- //# debugId=d1cb508b-96cc-5dbf-97f7-661ec92c04be
270
+ //# sourceMappingURL=install-github-workflow-DSe3lec2.js.map
271
+ //# debugId=4322dfe5-353c-5912-ab46-0cd03fe69b97