react-doctor 0.9.12-dev.ffc2d14 → 0.9.13-dev.fd23edc

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 (47) hide show
  1. package/README.md +33 -0
  2. package/dist/active-run-trace-dlIZeEvb.js +18 -0
  3. package/dist/active-scan-abort-registry-DwG6tSPy.js +28 -0
  4. package/dist/{build-section-divider-BuOtLrzK.js → build-section-divider-CUtO-gXD.js} +8 -22
  5. package/dist/{ci-DVVsf25h.js → ci-DjilJaw4.js} +12 -11
  6. package/dist/cli.js +116 -35
  7. package/dist/{design-Y1pcA2uj.js → design-CXLKbARh.js} +4 -4
  8. package/dist/{devtools-D8NTVj81.js → devtools-CC2PAZ85.js} +3 -3
  9. package/dist/{exit-gracefully-DnXGONjj.js → exit-gracefully-DTLgxZZ5.js} +15 -9
  10. package/dist/get-east-asian-width-Bv2TD3Xj.js +444 -0
  11. package/dist/{report-error-MGKyeIns.js → handle-error-BqaqFvmc.js} +18 -68
  12. package/dist/index.d.ts +32 -0
  13. package/dist/index.js +585 -286
  14. package/dist/{inspect-g3_lzs3l.js → inspect-BIfnzKGq.js} +38 -28
  15. package/dist/{install-doctor-script-DmEWQpVJ.js → install-doctor-script-B1U08lUD.js} +7 -449
  16. package/dist/{install-github-workflow-Dx6Pl9Wl.js → install-github-workflow-CkOl0wCn.js} +10 -6
  17. package/dist/{install-02Lq6wKC.js → install-nhJ65X-y.js} +9 -8
  18. package/dist/{install-react-doctor-CMCXgenA.js → install-react-doctor-Dm35Egex.js} +8 -8
  19. package/dist/{run-scan-app-CDDu7P32.js → jsx-runtime-C1t3eR6p.js} +280 -2774
  20. package/dist/path-format-DnHpmJwG.js +9 -0
  21. package/dist/{print-branded-header-kbvWYuGv.js → print-branded-header-qOJiGkuW.js} +4 -4
  22. package/dist/project-analysis-worker.js +54 -53
  23. package/dist/prompt-runtime-scan-url-m88LMtMP.js +240 -0
  24. package/dist/{read-object-file-Cwhr9OIi.js → read-object-file-Cv41FpZo.js} +4 -4
  25. package/dist/{record-metric-CFfsgcVs.js → record-metric-u8youmM2.js} +548 -235
  26. package/dist/report-error-CkFgxJTQ.js +64 -0
  27. package/dist/{report-workflow-result-DGg9xopH.js → report-workflow-result-Wh1SQuOu.js} +5 -5
  28. package/dist/{resolve-scope-CXS-5jLR.js → resolve-scope-CHCpJtks.js} +8 -10
  29. package/dist/{rules-CThlosPx.js → rules-C30QFptP.js} +6 -6
  30. package/dist/run-scan-app-yTBDucJ3.js +2511 -0
  31. package/dist/runtime-scan/browser-probe.iife.js +855 -0
  32. package/dist/runtime-scan-VH25Yf8H.js +770 -0
  33. package/dist/sanitize-runtime-url-crVHbQlW.js +76 -0
  34. package/dist/scan-CNSRWEtJ.js +47 -0
  35. package/dist/{should-fail-scan-gate-C0Bo5Gqy.js → should-fail-scan-gate-Cw6KeoRT.js} +20 -112
  36. package/dist/{should-skip-prompts-BqrtVX4G.js → should-skip-prompts-B5zkkkKR.js} +4 -4
  37. package/dist/should-use-tui-S9255AG_.js +25 -0
  38. package/dist/skills/improve-threejs/SKILL.md +102 -0
  39. package/dist/skills/performance/SKILL.md +113 -0
  40. package/dist/skills/react-doctor/SKILL.md +6 -0
  41. package/dist/{unref-stdin-BxyvqsOy.js → telemetry-runtime-B2rpGWMl.js} +55 -25
  42. package/dist/unref-stdin-SK3WfwxS.js +12 -0
  43. package/dist/{version-S-8vvWFi.js → version-KQbGQSGN.js} +4 -4
  44. package/dist/{why-DXfx0oL9.js → why-B-l2qTCV.js} +4 -4
  45. package/dist/with-run-span-Dk1M8cnH.js +110 -0
  46. package/package.json +9 -6
  47. package/dist/scan-4I1mvxBO.js +0 -53
@@ -1,17 +1,19 @@
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]="af0fd5ec-ce34-5937-847d-1030d5a8d5cb")}catch(e){}}();
3
- import { $n as CANONICAL_GITHUB_URL, F as STAGED_SNAPSHOT_ADDITIONAL_CONFIG_FILENAMES, G as isCiOrCodingAgentEnvironment, Gt as highlighter, It as getBaselineDiffPlan, K as isCodingAgentEnvironment, Ln as runPromise, Lt as getChangedLineRanges, Nt as findLegacyConfig, Ot as detectAiTrainingEnvironment, P as STAGED_FILES_TEMP_DIR_PREFIX, Pn as provide$1, R as CliInputError, Sr as messageFromUnknown, Ut as hasSupportedFrameworkOrLibrary, V as isDebugFlagEnabled, Wn as provide, Y as Git, dn as resolveScanTarget, f as setJsonReportDirectory, g as VERSION, gr as STAGED_FILES_PROJECT_CONFIG_FILENAMES, h as writeJsonReport, kn as gen, kt as discoverSupportedSubprojects, lt as StagedFiles, m as writeJsonErrorReport, mt as buildJsonReport, n as recordDistribution, on as remainingDeadlineBudgetMs, p as setJsonReportMode, qt as isPathInsideDirectory, rn as mapWithConcurrency, t as recordCount, tn as listWorkspacePackages, u as enableJsonMode, vn as toRelativePath, w as METRIC, xr as isPlainObject, yr as isErrnoException, zt as getDiffInfo } from "./record-metric-CFfsgcVs.js";
4
- import { c as isExpectedUserError, s as shutdownTelemetry } from "./unref-stdin-BxyvqsOy.js";
5
- import { i as flushSentry } from "./build-section-divider-BuOtLrzK.js";
6
- import { n as handleError, r as handleUserError, t as reportErrorToSentry } from "./report-error-MGKyeIns.js";
7
- import { F as runGitRaw, L as cliLogger, c as spinner, i as hasDoctorScript, n as findNearestPackageDirectory, o as isSpinnerSilent, s as setSpinnerSilent } from "./install-doctor-script-DmEWQpVJ.js";
8
- import { a as readReactDoctorWorkflow, c as workflowUsesV1Action, i as isReactDoctorWorkflowInstalled, l as prompts, s as upgradeWorkflowActionToV2 } from "./install-github-workflow-Dx6Pl9Wl.js";
9
- import { c as openWorkflowPullRequest, i as warnDeprecatedDiff, l as stageWorkflowFile, r as resolveScope, s as resolveBlockingLevel, t as finalizeScope, u as toForwardSlashes } from "./resolve-scope-CXS-5jLR.js";
10
- import { t as shouldSkipPrompts } from "./should-skip-prompts-BqrtVX4G.js";
11
- import { A as resolveMergeBaseRef, C as copyToClipboard, D as deduplicateProjectScans, E as collectProjectSourceFileCounts, I as printDiagnosticsDump, O as createInvocationInspect, S as CLI_AGENT_BINARIES, T as buildHandoffPayload, V as buildEmptyReportMessage, _ as resolveCliInspectOptions, a as projectManifestChanged, b as setUpGitHubActions, c as selectProjects, d as resolveProjectChangedLineRanges, f as resolveProjectDiffIncludePaths, g as resolveWorkspaceDeadCodeOwner, h as retryMissingProjectScores, i as validateModeFlags, j as printHeadlessReport, k as inspect, l as buildCodeFrame, m as resolveProjectRelativeDirectory, n as formatSkippedProjectsMessage, o as partitionProjectScanOutcomes, p as resolveProjectSourceFilePaths, r as validateIncludeUntrackedScope, t as shouldFailScanGate, u as resolveProjectScan, v as filterScansForSurface, w as launchCliAgent, x as detectLaunchableAgents, y as countUniqueScannedFiles, z as filterDiagnosticsByCategories } from "./should-fail-scan-gate-C0Bo5Gqy.js";
12
- import { a as recordGate, i as readPreference, o as runMigrations, p as SETUP_HINT_EVENT, r as isGatePending, s as writePreference, u as HANDOFF_TARGET_PREFERENCE_ID } from "./report-workflow-result-DGg9xopH.js";
13
- import { a as askUpgradeActionVersion, c as recordCiPromptDecision, i as installReactDoctorAgentHooks, l as hasHandledActionUpgrade, o as askAddToGitHubActions, r as findAgentsWithOutdatedReactDoctorHooks, s as hasHandledCiPrompt, t as getSkillSourceDirectory, u as recordActionUpgradeDecision } from "./install-react-doctor-CMCXgenA.js";
14
- import { t as readObjectFile } from "./read-object-file-Cwhr9OIi.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]="6035757c-5992-5ac9-b221-3286f4e948e6")}catch(e){}}();
3
+ import { An as gen, At as discoverSupportedSubprojects, Bt as getDiffInfo, Cr as messageFromUnknown, F as STAGED_FILES_TEMP_DIR_PREFIX, Fn as provide$1, Gn as provide, H as isDebugFlagEnabled, I as STAGED_SNAPSHOT_ADDITIONAL_CONFIG_FILENAMES, Jt as isPathInsideDirectory, K as isCiOrCodingAgentEnvironment, Kt as highlighter, Lt as getBaselineDiffPlan, Pt as findLegacyConfig, Rn as runPromise, Rt as getChangedLineRanges, Sr as isPlainObject, T as METRIC, Wt as hasSupportedFrameworkOrLibrary, X as Git, _ as VERSION, _r as STAGED_FILES_PROJECT_CONFIG_FILENAMES, br as isErrnoException, er as CANONICAL_GITHUB_URL, f as setJsonReportDirectory, fn as resolveScanTarget, g as writeJsonReport, h as writeJsonErrorReport, ht as buildJsonReport, in as mapWithConcurrency, kt as detectAiTrainingEnvironment, n as recordDistribution, nn as listWorkspacePackages, p as setJsonReportMode, q as isCodingAgentEnvironment, sn as remainingDeadlineBudgetMs, t as recordCount, u as enableJsonMode, ut as StagedFiles, yn as toRelativePath, z as CliInputError } from "./record-metric-u8youmM2.js";
4
+ import { n as shutdownTelemetry, r as isExpectedUserError } from "./telemetry-runtime-B2rpGWMl.js";
5
+ import { r as flushSentry } from "./build-section-divider-CUtO-gXD.js";
6
+ import { n as handleUserError, t as handleError } from "./handle-error-BqaqFvmc.js";
7
+ import { t as reportErrorToSentry } from "./report-error-CkFgxJTQ.js";
8
+ import { t as toForwardSlashes } from "./path-format-DnHpmJwG.js";
9
+ import { A as runGitRaw, M as cliLogger, c as spinner, i as hasDoctorScript, n as findNearestPackageDirectory, o as isSpinnerSilent, s as setSpinnerSilent } from "./install-doctor-script-B1U08lUD.js";
10
+ import { a as readReactDoctorWorkflow, c as workflowUsesV1Action, i as isReactDoctorWorkflowInstalled, l as prompts, s as upgradeWorkflowActionToV2 } from "./install-github-workflow-CkOl0wCn.js";
11
+ import { c as openWorkflowPullRequest, i as warnDeprecatedDiff, l as stageWorkflowFile, r as resolveScope, s as resolveBlockingLevel, t as finalizeScope } from "./resolve-scope-CHCpJtks.js";
12
+ import { t as shouldSkipPrompts } from "./should-skip-prompts-B5zkkkKR.js";
13
+ import { A as inspect, B as filterDiagnosticsByCategories, C as CLI_AGENT_BINARIES, D as collectProjectSourceFileCounts, E as buildHandoffPayload, H as buildEmptyReportMessage, L as printDiagnosticsDump, M as printHeadlessReport, O as deduplicateProjectScans, S as detectLaunchableAgents, T as launchCliAgent, _ as resolveWorkspaceDeadCodeOwner, a as validateModeFlags, b as countUniqueScannedFiles, d as resolveProjectScan, f as resolveProjectChangedLineRanges, g as retryMissingProjectScores, h as resolveProjectRelativeDirectory, i as validateIncludeUntrackedScope, j as resolveMergeBaseRef, k as createInvocationInspect, l as selectProjects, m as resolveProjectSourceFilePaths, n as formatSkippedProjectsMessage, o as projectManifestChanged, p as resolveProjectDiffIncludePaths, s as partitionProjectScanOutcomes, t as shouldFailScanGate, u as buildCodeFrame, v as resolveCliInspectOptions, w as copyToClipboard, x as setUpGitHubActions, y as filterScansForSurface } from "./should-fail-scan-gate-Cw6KeoRT.js";
14
+ import { a as recordGate, i as readPreference, o as runMigrations, p as SETUP_HINT_EVENT, r as isGatePending, s as writePreference, u as HANDOFF_TARGET_PREFERENCE_ID } from "./report-workflow-result-Wh1SQuOu.js";
15
+ import { a as askUpgradeActionVersion, c as recordCiPromptDecision, i as installReactDoctorAgentHooks, l as hasHandledActionUpgrade, o as askAddToGitHubActions, r as findAgentsWithOutdatedReactDoctorHooks, s as hasHandledCiPrompt, t as getSkillSourceDirectory, u as recordActionUpgradeDecision } from "./install-react-doctor-Dm35Egex.js";
16
+ import { t as readObjectFile } from "./read-object-file-Cv41FpZo.js";
15
17
  import * as path$1 from "node:path";
16
18
  import * as fs$1 from "node:fs";
17
19
  import { tmpdir } from "node:os";
@@ -1093,11 +1095,11 @@ const runStagedInspect = async (input) => {
1093
1095
  };
1094
1096
  //#endregion
1095
1097
  //#region src/cli/commands/inspect.ts
1096
- const buildChangedFilesDiffInfo = (changedFiles) => ({
1098
+ const buildFileSelectionDiffInfo = (filePaths) => ({
1097
1099
  currentBranch: process.env.GITHUB_HEAD_REF?.trim() || null,
1098
1100
  baseBranch: process.env.GITHUB_BASE_REF?.trim() || "pull request target",
1099
1101
  baseSha: process.env.REACT_DOCTOR_BASE_SHA?.trim() || void 0,
1100
- changedFiles,
1102
+ changedFiles: [...filePaths],
1101
1103
  isCurrentChanges: false
1102
1104
  });
1103
1105
  const hasScanDeadlineExpired = (scanDeadlineEpochMs) => scanDeadlineEpochMs !== void 0 && remainingDeadlineBudgetMs(scanDeadlineEpochMs) === 0;
@@ -1184,7 +1186,7 @@ const maybeMigrateLegacyConfig = async (requestedDirectory, { isQuiet, isStaged
1184
1186
  if (!(!isQuiet && !isStaged && process.stdout.isTTY === true && !isCiOrCodingAgentEnvironment())) return;
1185
1187
  await runProjectMigrations(requestedDirectory);
1186
1188
  };
1187
- const inspectAction = async (directory, flags, invocationCommand = "inspect") => {
1189
+ const inspectAction = async (directory, flags, invocationCommand = "inspect", selectedFilePaths) => {
1188
1190
  const isScoreOnly = Boolean(flags.score);
1189
1191
  const isJsonMode = Boolean(flags.json);
1190
1192
  const isQuiet = isScoreOnly || isJsonMode;
@@ -1261,14 +1263,15 @@ const inspectAction = async (directory, flags, invocationCommand = "inspect") =>
1261
1263
  }
1262
1264
  const projectDirectories = await selectProjects(resolvedDirectory, flags.project, skipPrompts, userConfig?.projects);
1263
1265
  const projectSelectionCompletedTime = performance.now();
1264
- let changedFilesDiffInfo = flags.changedFilesFrom ? buildChangedFilesDiffInfo(readChangedFilesFrom(path$1.resolve(flags.changedFilesFrom))) : null;
1265
- if (changedFilesDiffInfo !== null && scanTarget.didRedirectViaRootDir) {
1266
+ const hasPositionalFileSelection = selectedFilePaths !== void 0;
1267
+ let providedFilesDiffInfo = hasPositionalFileSelection ? buildFileSelectionDiffInfo(selectedFilePaths) : flags.changedFilesFrom ? buildFileSelectionDiffInfo(readChangedFilesFrom(path$1.resolve(flags.changedFilesFrom))) : null;
1268
+ if (providedFilesDiffInfo !== null && requestedDirectory !== resolvedDirectory) {
1266
1269
  const relativeProjectDirectory = resolveProjectRelativeDirectory(requestedDirectory, resolvedDirectory);
1267
1270
  if (relativeProjectDirectory) {
1268
1271
  const projectPrefix = `${relativeProjectDirectory}/`;
1269
- changedFilesDiffInfo = {
1270
- ...changedFilesDiffInfo,
1271
- changedFiles: changedFilesDiffInfo.changedFiles.flatMap((filePath) => {
1272
+ providedFilesDiffInfo = {
1273
+ ...providedFilesDiffInfo,
1274
+ changedFiles: providedFilesDiffInfo.changedFiles.flatMap((filePath) => {
1272
1275
  return filePath.startsWith(projectPrefix) ? [filePath.slice(projectPrefix.length)] : [];
1273
1276
  })
1274
1277
  };
@@ -1276,7 +1279,11 @@ const inspectAction = async (directory, flags, invocationCommand = "inspect") =>
1276
1279
  }
1277
1280
  const requestedScope = resolveScope(flags, userConfig);
1278
1281
  const includeUntracked = flags.includeUntracked ?? false;
1279
- const scopeRequest = requestedScope.scope === void 0 && changedFilesDiffInfo !== null ? {
1282
+ const scopeRequest = hasPositionalFileSelection ? {
1283
+ scope: "files",
1284
+ base: void 0,
1285
+ usedDeprecatedDiff: false
1286
+ } : requestedScope.scope === void 0 && providedFilesDiffInfo !== null ? {
1280
1287
  ...requestedScope,
1281
1288
  scope: "changed"
1282
1289
  } : requestedScope;
@@ -1284,8 +1291,8 @@ const inspectAction = async (directory, flags, invocationCommand = "inspect") =>
1284
1291
  scanStartupSpinner = !isQuiet ? spinner("Scanning...").start() : null;
1285
1292
  if (scanStartupSpinner !== null) recordDistribution(METRIC.scanFeedbackDelay, performance.now() - projectSelectionCompletedTime, { unit: "millisecond" });
1286
1293
  const wantsDiffMode = scopeRequest.scope !== void 0 && scopeRequest.scope !== "full";
1287
- const shouldDetectDiff = changedFilesDiffInfo === null && (wantsDiffMode || scopeRequest.scope === void 0 && !skipPrompts && !isQuiet);
1288
- const diffInfo = changedFilesDiffInfo ?? (shouldDetectDiff ? await getDiffInfo(resolvedDirectory, scopeRequest.base, includeUntracked) : null);
1294
+ const shouldDetectDiff = providedFilesDiffInfo === null && (wantsDiffMode || scopeRequest.scope === void 0 && !skipPrompts && !isQuiet);
1295
+ const diffInfo = providedFilesDiffInfo ?? (shouldDetectDiff ? await getDiffInfo(resolvedDirectory, scopeRequest.base, includeUntracked) : null);
1289
1296
  scanStartupSpinner?.stop();
1290
1297
  scanStartupSpinner = null;
1291
1298
  const scope = await finalizeScope({
@@ -1296,7 +1303,7 @@ const inspectAction = async (directory, flags, invocationCommand = "inspect") =>
1296
1303
  });
1297
1304
  scanStartupSpinner = !isQuiet ? spinner("Scanning...").start() : null;
1298
1305
  const isDiffMode = scope !== "full";
1299
- const comparisonBaseRef = isDiffMode && diffInfo && !diffInfo.isCurrentChanges ? diffInfo.baseSha ? await resolveMergeBaseRef(resolvedDirectory, diffInfo.baseSha) : diffInfo.diffBaseRef ?? await resolveMergeBaseRef(resolvedDirectory, diffInfo.baseBranch) : null;
1306
+ const comparisonBaseRef = isDiffMode && diffInfo && !diffInfo.isCurrentChanges && !hasPositionalFileSelection ? diffInfo.baseSha ? await resolveMergeBaseRef(resolvedDirectory, diffInfo.baseSha) : diffInfo.diffBaseRef ?? await resolveMergeBaseRef(resolvedDirectory, diffInfo.baseBranch) : null;
1300
1307
  const baselineRef = scope === "changed" ? comparisonBaseRef : null;
1301
1308
  const baselineDiffPlan = baselineRef === null ? null : await getBaselineDiffPlan(resolvedDirectory, baselineRef);
1302
1309
  const linesBaseRef = diffInfo?.isCurrentChanges ? "HEAD" : comparisonBaseRef;
@@ -1314,7 +1321,10 @@ const inspectAction = async (directory, flags, invocationCommand = "inspect") =>
1314
1321
  }
1315
1322
  setJsonReportMode(baselineRef ? "baseline" : isDiffMode ? "diff" : "full");
1316
1323
  if (isDiffMode && diffInfo && !isQuiet) {
1317
- if (diffInfo.isCurrentChanges) cliLogger.log("Scanning uncommitted changes");
1324
+ if (hasPositionalFileSelection) {
1325
+ const fileLabel = diffInfo.changedFiles.length === 1 ? "file" : "files";
1326
+ cliLogger.log(`Scanning ${diffInfo.changedFiles.length} selected ${fileLabel}`);
1327
+ } else if (diffInfo.isCurrentChanges) cliLogger.log("Scanning uncommitted changes");
1318
1328
  else {
1319
1329
  const currentBranchLabel = diffInfo.currentBranch ?? "(detached HEAD)";
1320
1330
  cliLogger.log(`Scanning changes: ${highlighter.info(currentBranchLabel)} → ${highlighter.info(diffInfo.baseBranch)}`);
@@ -1440,5 +1450,5 @@ const inspectAction = async (directory, flags, invocationCommand = "inspect") =>
1440
1450
  //#endregion
1441
1451
  export { warnDeprecatedFailOn as n, runProjectMigrations as r, inspectAction as t };
1442
1452
 
1443
- //# sourceMappingURL=inspect-g3_lzs3l.js.map
1444
- //# debugId=af0fd5ec-ce34-5937-847d-1030d5a8d5cb
1453
+ //# sourceMappingURL=inspect-BIfnzKGq.js.map
1454
+ //# debugId=6035757c-5992-5ac9-b221-3286f4e948e6
@@ -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]="2db33223-3aae-5288-b88b-907a0e50a00f")}catch(e){}}();
3
- import { Cn as info$1, Gt as highlighter, O as RUN_GIT_MAX_BUFFER_BYTES, Rn as runSync, Sn as error$1, Tn as warn, wn as log, z as isNonInteractiveEnvironment } from "./record-metric-CFfsgcVs.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]="ce027446-192c-5291-8ee7-c06b586db53b")}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-u8youmM2.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-DmEWQpVJ.js.map
3251
- //# debugId=2db33223-3aae-5288-b88b-907a0e50a00f
2808
+ //# sourceMappingURL=install-doctor-script-B1U08lUD.js.map
2809
+ //# debugId=ce027446-192c-5291-8ee7-c06b586db53b