react-doctor 0.9.10 → 0.9.11-dev.55f11e3

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 (27) hide show
  1. package/dist/{build-section-divider-BBuZ20p0.js → build-section-divider-dL0ACdwz.js} +7 -7
  2. package/dist/{ci-Cje97GMB.js → ci-B9f24Y3W.js} +11 -11
  3. package/dist/cli.js +22 -22
  4. package/dist/{design-swBQC07N.js → design-BgNIP4Ts.js} +4 -4
  5. package/dist/{exit-gracefully-GZXxMj5W.js → exit-gracefully-BNtmaYKV.js} +6 -6
  6. package/dist/index.js +120 -21
  7. package/dist/{inspect-BQapfOJX.js → inspect-yGAELM32.js} +15 -15
  8. package/dist/{install-CChowo4Z.js → install-BNmBXUPs.js} +8 -8
  9. package/dist/{install-doctor-script-BM5NC98v.js → install-doctor-script-BFy4otr5.js} +4 -4
  10. package/dist/{install-github-workflow-L48jbG9d.js → install-github-workflow-Bd-3IaWG.js} +6 -6
  11. package/dist/{install-react-doctor-BFp6q3iz.js → install-react-doctor-BoYnwCHi.js} +8 -8
  12. package/dist/lsp.js +25 -18
  13. package/dist/{print-branded-header-DQn3TZpV.js → print-branded-header-aUDNw3Y3.js} +4 -4
  14. package/dist/{read-object-file-BTd_gGow.js → read-object-file-SoRztiUR.js} +4 -4
  15. package/dist/{record-metric-CuPtdZfm.js → record-metric-CS-5W1fU.js} +46 -27
  16. package/dist/{report-error-DemUcOtc.js → report-error-DO_LTnG1.js} +5 -5
  17. package/dist/{report-workflow-result-W-amAB4Z.js → report-workflow-result-TIztoV2u.js} +5 -5
  18. package/dist/{resolve-scope-BGBQcbGi.js → resolve-scope-OT2B4B5o.js} +6 -6
  19. package/dist/{rules-BsYE5BBb.js → rules-Bky1VqKt.js} +6 -6
  20. package/dist/{run-scan-app-CfT3YzbG.js → run-scan-app-sXT7VN-U.js} +57 -32
  21. package/dist/{scan-D8DHxJxj.js → scan-wlzL5YMB.js} +8 -8
  22. package/dist/{should-fail-scan-gate-B5XfdAMg.js → should-fail-scan-gate-CvGX6kBX.js} +10 -10
  23. package/dist/{should-skip-prompts-DaBGPwa3.js → should-skip-prompts-CJ1MaziC.js} +4 -4
  24. package/dist/{unref-stdin-D0Lq28Bk.js → unref-stdin-C_oGEwwO.js} +4 -4
  25. package/dist/{version-CyVLelBf.js → version-CDe5iaV6.js} +4 -4
  26. package/dist/{why-nfPQ3AAq.js → why-B3_wyTCh.js} +4 -4
  27. package/package.json +7 -7
@@ -1,13 +1,13 @@
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]="90b96e1c-2dee-597e-a8b6-b85290dc7102")}catch(e){}}();
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]="280d37a7-2952-5204-af4b-0e5dc2499f2f")}catch(e){}}();
3
3
  import { n as __require, r as __toESM, t as __commonJSMin } from "./chunk-q7NCDQ7-.js";
4
- import { $t as getCategoryImpact, B as isGitHookEnvironment, Cn as mapWithConcurrency, Dn as remainingDeadlineBudgetMs, I as TUI_REPORT_COMPACT_MAX_ROWS, It as calculateScore, L as TUI_REPORT_DETAIL_WIDTH_FRACTION, Mn as resolveScanTarget, Pt as buildRuleDocsUrl, Qt as getBaselineDiffPlan, S as CI_TRUST_COMPANIES, St as Reporter, Vn as yieldToEventLoop, W as isCiEnvironment, an as hasPublishedFixRecipe, bt as Progress, cn as highlighter, cr as void_, en as getChangedLineRanges, fr as succeed, ir as runPromise, n as recordDistribution, nn as getDiffInfo, or as sync, ot as GITHUB_ACTIONS_SETUP_URL, pn as isPathInsideDirectory, t as recordCount, tt as DIAGNOSTIC_CATEGORY_BUCKETS, w as METRIC } from "./record-metric-CuPtdZfm.js";
5
- import { n as registerActiveTuiRenderer, t as exitGracefully } from "./exit-gracefully-GZXxMj5W.js";
6
- import { L as cliLogger, d as stripAnsi, f as isUnicodeSupported, l as isFullWidth$1, n as findNearestPackageDirectory, p as chalk, u as isWide$1 } from "./install-doctor-script-BM5NC98v.js";
7
- import { i as isReactDoctorWorkflowInstalled } from "./install-github-workflow-L48jbG9d.js";
8
- import { r as resolveScope, s as resolveBlockingLevel, t as finalizeScope, u as toForwardSlashes } from "./resolve-scope-BGBQcbGi.js";
9
- import { A as resolveMergeBaseRef, B as buildEmptyReportMessage, C as copyToClipboard, D as deduplicateProjectScans, E as collectProjectSourceFileCounts, F as printDiagnosticsDump, G as formatLearnMoreLine, H as buildRulePriorityMap, I as formatDiagnosticSite, L as hasIncompleteScoreAnalysis, M as pluralize, N as formatElapsedTime, O as createInvocationInspect, P as printFooter, R as filterDiagnosticsByCategories, S as CLI_AGENT_BINARIES, T as buildHandoffPayload, U as buildSortedRuleGroups, V as hasLintHardFailure, W as formatFixRecipeLine, _ as resolveCliInspectOptions, a as projectManifestChanged, b as setUpGitHubActions, c as selectProjects, d as resolveProjectChangedLineRanges, f as resolveProjectDiffIncludePaths, g as resolveWorkspaceDeadCodeOwner, h as retryMissingProjectScores, l as buildCodeFrame, n as formatSkippedProjectsMessage, o as partitionProjectScanOutcomes, p as resolveProjectSourceFilePaths, r as validateIncludeUntrackedScope, s as discoverWorkspacePackages, t as shouldFailScanGate, u as resolveProjectScan, v as filterScansForSurface, w as launchCliAgent, x as detectLaunchableAgents, y as countUniqueScannedFiles, z as buildNoScoreMessage } from "./should-fail-scan-gate-B5XfdAMg.js";
10
- import { a as recordGate, f as ONBOARDING_EVENT, n as openUrl, r as isGatePending } from "./report-workflow-result-W-amAB4Z.js";
4
+ import { $t as getCategoryImpact, B as isGitHookEnvironment, Cn as mapWithConcurrency, Dn as remainingDeadlineBudgetMs, I as TUI_REPORT_COMPACT_MAX_ROWS, It as calculateScore, L as TUI_REPORT_DETAIL_WIDTH_FRACTION, Mn as resolveScanTarget, Pt as buildRuleDocsUrl, Qt as getBaselineDiffPlan, S as CI_TRUST_COMPANIES, St as Reporter, Vn as yieldToEventLoop, W as isCiEnvironment, an as hasPublishedFixRecipe, bt as Progress, cn as highlighter, cr as void_, en as getChangedLineRanges, fr as succeed, ir as runPromise, n as recordDistribution, nn as getDiffInfo, or as sync, ot as GITHUB_ACTIONS_SETUP_URL, pn as isPathInsideDirectory, t as recordCount, tt as DIAGNOSTIC_CATEGORY_BUCKETS, w as METRIC } from "./record-metric-CS-5W1fU.js";
5
+ import { n as registerActiveTuiRenderer, t as exitGracefully } from "./exit-gracefully-BNtmaYKV.js";
6
+ import { L as cliLogger, d as stripAnsi, f as isUnicodeSupported, l as isFullWidth$1, n as findNearestPackageDirectory, p as chalk, u as isWide$1 } from "./install-doctor-script-BFy4otr5.js";
7
+ import { i as isReactDoctorWorkflowInstalled } from "./install-github-workflow-Bd-3IaWG.js";
8
+ import { r as resolveScope, s as resolveBlockingLevel, t as finalizeScope, u as toForwardSlashes } from "./resolve-scope-OT2B4B5o.js";
9
+ import { A as resolveMergeBaseRef, B as buildEmptyReportMessage, C as copyToClipboard, D as deduplicateProjectScans, E as collectProjectSourceFileCounts, F as printDiagnosticsDump, G as formatLearnMoreLine, H as buildRulePriorityMap, I as formatDiagnosticSite, L as hasIncompleteScoreAnalysis, M as pluralize, N as formatElapsedTime, O as createInvocationInspect, P as printFooter, R as filterDiagnosticsByCategories, S as CLI_AGENT_BINARIES, T as buildHandoffPayload, U as buildSortedRuleGroups, V as hasLintHardFailure, W as formatFixRecipeLine, _ as resolveCliInspectOptions, a as projectManifestChanged, b as setUpGitHubActions, c as selectProjects, d as resolveProjectChangedLineRanges, f as resolveProjectDiffIncludePaths, g as resolveWorkspaceDeadCodeOwner, h as retryMissingProjectScores, l as buildCodeFrame, n as formatSkippedProjectsMessage, o as partitionProjectScanOutcomes, p as resolveProjectSourceFilePaths, r as validateIncludeUntrackedScope, s as discoverWorkspacePackages, t as shouldFailScanGate, u as resolveProjectScan, v as filterScansForSurface, w as launchCliAgent, x as detectLaunchableAgents, y as countUniqueScannedFiles, z as buildNoScoreMessage } from "./should-fail-scan-gate-CvGX6kBX.js";
10
+ import { a as recordGate, f as ONBOARDING_EVENT, n as openUrl, r as isGatePending } from "./report-workflow-result-TIztoV2u.js";
11
11
  import { EventEmitter } from "node:events";
12
12
  import { execFileSync } from "node:child_process";
13
13
  import path from "node:path";
@@ -24785,12 +24785,20 @@ const ActionMenu = ({ actions, selectedIndex: controlledSelectedIndex, onSelecti
24785
24785
  };
24786
24786
  //#endregion
24787
24787
  //#region src/cli/ink/components/agent-handoff.tsx
24788
- const AgentHandoff = ({ agents, onSelect, onBack, onQuit }) => {
24789
- const actions = agents.map((agentId) => ({
24788
+ const AgentHandoff = ({ agents, onSelect, onCopyPrompt, onBack, onQuit }) => {
24789
+ const actions = [...agents.map((agentId) => ({
24790
24790
  id: agentId,
24791
24791
  label: getSkillAgentConfig(agentId).displayName,
24792
24792
  onSelect: () => onSelect(agentId)
24793
- }));
24793
+ })), {
24794
+ id: "copy-prompt",
24795
+ label: "Copy prompt",
24796
+ description: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
24797
+ dimColor: true,
24798
+ children: "Paste into any agent or edit it first"
24799
+ }),
24800
+ onSelect: onCopyPrompt
24801
+ }];
24794
24802
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
24795
24803
  flexDirection: "column",
24796
24804
  children: [
@@ -24798,7 +24806,7 @@ const AgentHandoff = ({ agents, onSelect, onBack, onQuit }) => {
24798
24806
  paddingLeft: 2,
24799
24807
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
24800
24808
  bold: true,
24801
- children: "Choose an agent"
24809
+ children: "Choose how to continue"
24802
24810
  })
24803
24811
  }),
24804
24812
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionMenu, {
@@ -25894,7 +25902,18 @@ const Report = ({ report, onExit, onQuit = onExit, launchableAgents = EMPTY_LAUN
25894
25902
  width: isWide ? reportLayout.listColumnWidth : reportLayout.width
25895
25903
  };
25896
25904
  const isCiSetupAvailable = Boolean(canAddToCi && onAddToCi && !isCiSetupQueued);
25897
- const isHandoffAvailable = diagnosticRows.length > 0 && launchableAgents.length > 0 && Boolean(onHandoff);
25905
+ const isHandoffAvailable = diagnosticRows.length > 0 && Boolean(onHandoff);
25906
+ const completeHandoff = (destination) => {
25907
+ if (!onHandoff) return;
25908
+ onHandoff({
25909
+ destination,
25910
+ prompt: buildHandoffPayload({
25911
+ diagnostics: report.diagnostics,
25912
+ projectName: report.projectName
25913
+ })
25914
+ });
25915
+ onExit();
25916
+ };
25898
25917
  const firstDiagnosticEntry = diagnosticListEntries.find((entry) => entry.kind === "item");
25899
25918
  const resolvedViewerSelectedRowIndex = viewerSelectedRowIndex ?? (firstDiagnosticEntry?.kind === "item" ? firstDiagnosticEntry.rowIndex : null);
25900
25919
  const markViewerRuleRead = (index) => {
@@ -25972,17 +25991,8 @@ const Report = ({ report, onExit, onQuit = onExit, launchableAgents = EMPTY_LAUN
25972
25991
  });
25973
25992
  else if (activeReportScreen === "handoff") activeScreenContent = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AgentHandoff, {
25974
25993
  agents: launchableAgents,
25975
- onSelect: (agentId) => {
25976
- if (!onHandoff) return;
25977
- onHandoff({
25978
- agentId,
25979
- prompt: buildHandoffPayload({
25980
- diagnostics: report.diagnostics,
25981
- projectName: report.projectName
25982
- })
25983
- });
25984
- onExit();
25985
- },
25994
+ onSelect: completeHandoff,
25995
+ onCopyPrompt: () => completeHandoff("clipboard"),
25986
25996
  onBack: () => setActiveReportScreen("landing"),
25987
25997
  onQuit
25988
25998
  });
@@ -27958,14 +27968,29 @@ const printExitFooter = async (input) => {
27958
27968
  }));
27959
27969
  };
27960
27970
  const performTuiHandoff = async (request, rootDirectory) => {
27961
- try {
27962
- await launchCliAgent(request.agentId, request.prompt, rootDirectory);
27971
+ let failureMessage = null;
27972
+ if (request.destination === "clipboard") {
27973
+ const didCopy = await copyToClipboard(request.prompt);
27974
+ recordCount(METRIC.agentHandoff, 1, {
27975
+ outcome: "clipboard",
27976
+ source: "tui",
27977
+ copied: didCopy
27978
+ });
27979
+ if (didCopy) {
27980
+ process.stdout.write(`${highlighter.success("✔")} Copied the prompt to your clipboard.\n`);
27981
+ return;
27982
+ }
27983
+ failureMessage = "Couldn't access the clipboard. Here's the prompt instead:";
27984
+ } else try {
27985
+ await launchCliAgent(request.destination, request.prompt, rootDirectory);
27986
+ return;
27963
27987
  } catch {
27964
- process.stdout.write(`${highlighter.warn("⚠")} Couldn't launch ${CLI_AGENT_BINARIES[request.agentId]}. Here's the prompt instead:\n`);
27965
- process.stdout.write(`${highlighter.dim("──── Agent prompt ────")}\n`);
27966
- process.stdout.write(`${request.prompt}\n`);
27967
- process.stdout.write(`${highlighter.dim("──────────────────────")}\n`);
27988
+ failureMessage = `Couldn't launch ${CLI_AGENT_BINARIES[request.destination]}. Here's the prompt instead:`;
27968
27989
  }
27990
+ process.stdout.write(`${highlighter.warn("⚠")} ${failureMessage}\n`);
27991
+ process.stdout.write(`${highlighter.dim("──── Agent prompt ────")}\n`);
27992
+ process.stdout.write(`${request.prompt}\n`);
27993
+ process.stdout.write(`${highlighter.dim("──────────────────────")}\n`);
27969
27994
  };
27970
27995
  const isCiUnconfigured = (directory) => !isReactDoctorWorkflowInstalled(findNearestPackageDirectory(directory) ?? directory);
27971
27996
  const performCiSetup = async (rootDirectory) => {
@@ -28314,5 +28339,5 @@ const runScanApp = async (input) => {
28314
28339
  //#endregion
28315
28340
  export { runScanApp };
28316
28341
 
28317
- //# sourceMappingURL=run-scan-app-CfT3YzbG.js.map
28318
- //# debugId=90b96e1c-2dee-597e-a8b6-b85290dc7102
28342
+ //# sourceMappingURL=run-scan-app-sXT7VN-U.js.map
28343
+ //# debugId=280d37a7-2952-5204-af4b-0e5dc2499f2f
@@ -1,9 +1,9 @@
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]="457f1715-5394-5bd5-bd77-275dfa38368c")}catch(e){}}();
3
- import { Mn as resolveScanTarget, t as recordCount, w as METRIC, z as isNonInteractiveEnvironment } from "./record-metric-CuPtdZfm.js";
4
- import { i as warnDeprecatedDiff } from "./resolve-scope-BGBQcbGi.js";
5
- import { _ as resolveCliInspectOptions, i as validateModeFlags } from "./should-fail-scan-gate-B5XfdAMg.js";
6
- import { n as warnDeprecatedFailOn, r as runProjectMigrations, t as inspectAction } from "./inspect-BQapfOJX.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]="a46f4c69-a1f0-5730-ba17-44336d5dffe0")}catch(e){}}();
3
+ import { Mn as resolveScanTarget, t as recordCount, w as METRIC, z as isNonInteractiveEnvironment } from "./record-metric-CS-5W1fU.js";
4
+ import { i as warnDeprecatedDiff } from "./resolve-scope-OT2B4B5o.js";
5
+ import { _ as resolveCliInspectOptions, i as validateModeFlags } from "./should-fail-scan-gate-CvGX6kBX.js";
6
+ import { n as warnDeprecatedFailOn, r as runProjectMigrations, t as inspectAction } from "./inspect-yGAELM32.js";
7
7
  import path from "node:path";
8
8
  //#region src/cli/utils/should-use-tui.ts
9
9
  const shouldUseTui = (input) => {
@@ -34,7 +34,7 @@ const runScanCommand = async (input) => {
34
34
  warnDeprecatedFailOn(input.flags, scanTarget.userConfig);
35
35
  warnDeprecatedDiff(input.flags, scanTarget.userConfig);
36
36
  recordCount(METRIC.cliInvoked, 1, { command: input.invocationCommand });
37
- const { runScanApp } = await import("./run-scan-app-CfT3YzbG.js");
37
+ const { runScanApp } = await import("./run-scan-app-sXT7VN-U.js");
38
38
  const { shouldFail } = await runScanApp({
39
39
  directory: input.directory,
40
40
  scanTarget,
@@ -49,5 +49,5 @@ const runScanCommand = async (input) => {
49
49
  //#endregion
50
50
  export { runScanCommand };
51
51
 
52
- //# sourceMappingURL=scan-D8DHxJxj.js.map
53
- //# debugId=457f1715-5394-5bd5-bd77-275dfa38368c
52
+ //# sourceMappingURL=scan-wlzL5YMB.js.map
53
+ //# debugId=a46f4c69-a1f0-5730-ba17-44336d5dffe0
@@ -1,12 +1,12 @@
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]="64dd164d-d176-539f-b7f8-b4217a0009df")}catch(e){}}();
3
- import { $n as orElseSucceed, An as resolveReactDoctorCacheDir, Bt as computeConfigFingerprint, Cn as mapWithConcurrency, Ct as SHARE_BASE_URL, Dt as SidecarLintCacheEnabled, E as NANOSECONDS_PER_MILLISECOND, Et as Score, Ft as buildSkippedChecks, G as isCiOrCodingAgentEnvironment, Gn as log, Gt as discoverReactSubprojects, H as ACTION_INPUT_ENVIRONMENT_VARIABLES, Hn as Console, Ht as createNodeReadFileLinesSync, It as calculateScore, Jn as decodeUnknownSync, Jt as filterSourceFiles, Kn as warn, Kt as filterDiagnosticsForSurface, Ln as summarizeDiagnostics, Lt as canonicalizeUserRuleKey, Mn as resolveScanTarget, Mt as atomicWriteJson, Nn as restoreLegacyThrow, On as resolveGithubActionsScoreMetadata, Pn as runInspect, Pt as buildRuleDocsUrl, Qn as map, R as CliInputError, St as Reporter, Tn as mergeReactDoctorConfigs, U as detectRunnerOs, Un as error, Ut as createOxlintSpawnSlots, Vn as yieldToEventLoop, Vt as computeDiagnosticDelta, W as isCiEnvironment, X as CI_URL, Xn as gen, Zn as makeSpan, _ as makeNoopConsole, _r as ParentSpan, _t as OxlintConcurrency, an as hasPublishedFixRecipe, ar as runSync, at as Files, bn as listSourceFiles, bt as Progress, c as setSentryProjectInfo, cn as highlighter, ct as Git, d as isJsonModeActive, dn as isFile, er as promise, et as Config, fn as isMonorepoRoot, fr as succeed, ft as LintPartialFailures, g as VERSION, gn as isReactDoctorError, gr as void_, gt as OXLINT_NODE_REQUIREMENT, hr as fail, ht as NodeResolver, in as groupBy, ir as runPromise, it as ENTERPRISE_CONTACT_URL, jn as resolveScanConcurrency, k as SCAN_RESULT_CACHE_FILENAME, kn as resolveLintBatchOrdering, kt as SupplyChain, l as getRunId, ln as isDirectory, lt as HTML_FILE_PATTERN, mt as MILLISECONDS_PER_SECOND, n as recordDistribution, nr as provideContext, o as buildSentryScope, or as sync, pt as Linter, qn as Diagnostic, qt as filterPathsOutsideDirectories, r as toSpanAttributes, rr as provideService, rt as DeadCode, s as buildSentryProjectContext, sn as hashFileContents, sr as try_, st as GIT_SHOW_MAX_BUFFER_BYTES, t as recordCount, tn as getDiagnosticRuleIdentity, tr as provide, tt as DIAGNOSTIC_CATEGORY_BUCKETS, ur as mergeAll, ut as JSX_FILE_PATTERN, vn as isScanComplete, vt as OxlintSpawnSlots, w as METRIC, wn as materializeSourceTree, x as BASELINE_FILES_TEMP_DIR_PREFIX, xn as listWorkspacePackages, xt as Project, yt as PerFileLintCacheEnabled, z as isNonInteractiveEnvironment, zt as collectSourceFileCountsByDirectory } from "./record-metric-CuPtdZfm.js";
4
- import { a as setActiveRunTrace, i as recordRunTraceId, o as getTelemetryContext } from "./unref-stdin-D0Lq28Bk.js";
5
- import { n as buildFooterLinkLines, r as activeScanAbortRegistry, t as buildSectionDivider } from "./build-section-divider-BBuZ20p0.js";
6
- import { D as getPackageJsonPath, L as cliLogger, O as isRecord, P as runGit, a as installReactDoctorScriptStep, c as spinner, n as findNearestPackageDirectory, o as isSpinnerSilent, s as setSpinnerSilent } from "./install-doctor-script-BM5NC98v.js";
7
- import { d as detectDefaultBranch, l as prompts, r as installReactDoctorWorkflow, u as isCommandAvailable } from "./install-github-workflow-L48jbG9d.js";
8
- import { a as isValidBlockingLevel, c as openWorkflowPullRequest, l as stageWorkflowFile, o as pickBlockingLevel, u as toForwardSlashes } from "./resolve-scope-BGBQcbGi.js";
9
- import { h as detectAvailableAgents, t as reportWorkflowResult } from "./report-workflow-result-W-amAB4Z.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]="baa6bc77-ebe6-5347-9935-93103f83a43a")}catch(e){}}();
3
+ import { $n as orElseSucceed, An as resolveReactDoctorCacheDir, Bt as computeConfigFingerprint, Cn as mapWithConcurrency, Ct as SHARE_BASE_URL, Dt as SidecarLintCacheEnabled, E as NANOSECONDS_PER_MILLISECOND, Et as Score, Ft as buildSkippedChecks, G as isCiOrCodingAgentEnvironment, Gn as log, Gt as discoverReactSubprojects, H as ACTION_INPUT_ENVIRONMENT_VARIABLES, Hn as Console, Ht as createNodeReadFileLinesSync, It as calculateScore, Jn as decodeUnknownSync, Jt as filterSourceFiles, Kn as warn, Kt as filterDiagnosticsForSurface, Ln as summarizeDiagnostics, Lt as canonicalizeUserRuleKey, Mn as resolveScanTarget, Mt as atomicWriteJson, Nn as restoreLegacyThrow, On as resolveGithubActionsScoreMetadata, Pn as runInspect, Pt as buildRuleDocsUrl, Qn as map, R as CliInputError, St as Reporter, Tn as mergeReactDoctorConfigs, U as detectRunnerOs, Un as error, Ut as createOxlintSpawnSlots, Vn as yieldToEventLoop, Vt as computeDiagnosticDelta, W as isCiEnvironment, X as CI_URL, Xn as gen, Zn as makeSpan, _ as makeNoopConsole, _r as ParentSpan, _t as OxlintConcurrency, an as hasPublishedFixRecipe, ar as runSync, at as Files, bn as listSourceFiles, bt as Progress, c as setSentryProjectInfo, cn as highlighter, ct as Git, d as isJsonModeActive, dn as isFile, er as promise, et as Config, fn as isMonorepoRoot, fr as succeed, ft as LintPartialFailures, g as VERSION, gn as isReactDoctorError, gr as void_, gt as OXLINT_NODE_REQUIREMENT, hr as fail, ht as NodeResolver, in as groupBy, ir as runPromise, it as ENTERPRISE_CONTACT_URL, jn as resolveScanConcurrency, k as SCAN_RESULT_CACHE_FILENAME, kn as resolveLintBatchOrdering, kt as SupplyChain, l as getRunId, ln as isDirectory, lt as HTML_FILE_PATTERN, mt as MILLISECONDS_PER_SECOND, n as recordDistribution, nr as provideContext, o as buildSentryScope, or as sync, pt as Linter, qn as Diagnostic, qt as filterPathsOutsideDirectories, r as toSpanAttributes, rr as provideService, rt as DeadCode, s as buildSentryProjectContext, sn as hashFileContents, sr as try_, st as GIT_SHOW_MAX_BUFFER_BYTES, t as recordCount, tn as getDiagnosticRuleIdentity, tr as provide, tt as DIAGNOSTIC_CATEGORY_BUCKETS, ur as mergeAll, ut as JSX_FILE_PATTERN, vn as isScanComplete, vt as OxlintSpawnSlots, w as METRIC, wn as materializeSourceTree, x as BASELINE_FILES_TEMP_DIR_PREFIX, xn as listWorkspacePackages, xt as Project, yt as PerFileLintCacheEnabled, z as isNonInteractiveEnvironment, zt as collectSourceFileCountsByDirectory } from "./record-metric-CS-5W1fU.js";
4
+ import { a as setActiveRunTrace, i as recordRunTraceId, o as getTelemetryContext } from "./unref-stdin-C_oGEwwO.js";
5
+ import { n as buildFooterLinkLines, r as activeScanAbortRegistry, t as buildSectionDivider } from "./build-section-divider-dL0ACdwz.js";
6
+ import { D as getPackageJsonPath, L as cliLogger, O as isRecord, P as runGit, a as installReactDoctorScriptStep, c as spinner, n as findNearestPackageDirectory, o as isSpinnerSilent, s as setSpinnerSilent } from "./install-doctor-script-BFy4otr5.js";
7
+ import { d as detectDefaultBranch, l as prompts, r as installReactDoctorWorkflow, u as isCommandAvailable } from "./install-github-workflow-Bd-3IaWG.js";
8
+ import { a as isValidBlockingLevel, c as openWorkflowPullRequest, l as stageWorkflowFile, o as pickBlockingLevel, u as toForwardSlashes } from "./resolve-scope-OT2B4B5o.js";
9
+ import { h as detectAvailableAgents, t as reportWorkflowResult } from "./report-workflow-result-TIztoV2u.js";
10
10
  import { createRequire } from "node:module";
11
11
  import { spawn } from "node:child_process";
12
12
  import * as path$1 from "node:path";
@@ -2993,5 +2993,5 @@ const shouldFailScanGate = (input) => {
2993
2993
  //#endregion
2994
2994
  export { resolveMergeBaseRef as A, buildEmptyReportMessage as B, copyToClipboard as C, deduplicateProjectScans as D, collectProjectSourceFileCounts as E, printDiagnosticsDump as F, formatLearnMoreLine as G, buildRulePriorityMap as H, formatDiagnosticSite as I, hasIncompleteScoreAnalysis as L, pluralize as M, formatElapsedTime as N, createInvocationInspect as O, printFooter as P, filterDiagnosticsByCategories as R, CLI_AGENT_BINARIES as S, buildHandoffPayload as T, buildSortedRuleGroups as U, hasLintHardFailure as V, formatFixRecipeLine as W, resolveCliInspectOptions as _, projectManifestChanged as a, setUpGitHubActions as b, selectProjects as c, resolveProjectChangedLineRanges as d, resolveProjectDiffIncludePaths as f, resolveWorkspaceDeadCodeOwner as g, retryMissingProjectScores as h, validateModeFlags as i, printHeadlessReport as j, inspect as k, buildCodeFrame as l, resolveProjectRelativeDirectory as m, formatSkippedProjectsMessage as n, partitionProjectScanOutcomes as o, resolveProjectSourceFilePaths as p, validateIncludeUntrackedScope as r, discoverWorkspacePackages as s, shouldFailScanGate as t, resolveProjectScan as u, filterScansForSurface as v, launchCliAgent as w, detectLaunchableAgents as x, countUniqueScannedFiles as y, buildNoScoreMessage as z };
2995
2995
 
2996
- //# sourceMappingURL=should-fail-scan-gate-B5XfdAMg.js.map
2997
- //# debugId=64dd164d-d176-539f-b7f8-b4217a0009df
2996
+ //# sourceMappingURL=should-fail-scan-gate-CvGX6kBX.js.map
2997
+ //# debugId=baa6bc77-ebe6-5347-9935-93103f83a43a
@@ -1,10 +1,10 @@
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]="b49fd4c3-3be0-52f6-9e01-f9bef8d28fc1")}catch(e){}}();
3
- import { z as isNonInteractiveEnvironment } from "./record-metric-CuPtdZfm.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]="fee6d8c9-7c98-5da7-b190-c22db339c9f3")}catch(e){}}();
3
+ import { z as isNonInteractiveEnvironment } from "./record-metric-CS-5W1fU.js";
4
4
  //#region src/cli/utils/should-skip-prompts.ts
5
5
  const shouldSkipPrompts = (input = {}) => Boolean(input.yes) || Boolean(input.json) || isNonInteractiveEnvironment() || !process.stdin.isTTY;
6
6
  //#endregion
7
7
  export { shouldSkipPrompts as t };
8
8
 
9
- //# sourceMappingURL=should-skip-prompts-DaBGPwa3.js.map
10
- //# debugId=b49fd4c3-3be0-52f6-9e01-f9bef8d28fc1
9
+ //# sourceMappingURL=should-skip-prompts-CJ1MaziC.js.map
10
+ //# debugId=fee6d8c9-7c98-5da7-b190-c22db339c9f3
@@ -1,6 +1,6 @@
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]="c98da11e-f692-57c2-842b-457b988f926b")}catch(e){}}();
3
- import { En as messageFromUnknown, R as CliInputError, Yn as make, ar as runSync, g as VERSION, gn as isReactDoctorError, gr as void_, hn as isProjectDiscoveryError, i as isTelemetryEnabled, ir as runPromise, lr as buildWithScope, mr as makeUnsafe, pr as close, un as isErrnoException, yn as layerObservability } from "./record-metric-CuPtdZfm.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]="0aad15ef-4817-5479-bd3e-5b67928b44c8")}catch(e){}}();
3
+ import { En as messageFromUnknown, R as CliInputError, Yn as make, ar as runSync, g as VERSION, gn as isReactDoctorError, gr as void_, hn as isProjectDiscoveryError, i as isTelemetryEnabled, ir as runPromise, lr as buildWithScope, mr as makeUnsafe, pr as close, un as isErrnoException, yn as layerObservability } from "./record-metric-CS-5W1fU.js";
4
4
  //#region src/cli/utils/is-environment-error.ts
5
5
  const ENVIRONMENT_ERROR_CODES = new Set([
6
6
  "EACCES",
@@ -223,5 +223,5 @@ const unrefStdin = () => {
223
223
  //#endregion
224
224
  export { setActiveRunTrace as a, isExpectedUserError as c, recordRunTraceId as i, formatEnvironmentError as l, getActiveRunTrace as n, getTelemetryContext as o, getLastRunTraceId as r, shutdownTelemetry as s, unrefStdin as t, isEnvironmentError as u };
225
225
 
226
- //# sourceMappingURL=unref-stdin-D0Lq28Bk.js.map
227
- //# debugId=c98da11e-f692-57c2-842b-457b988f926b
226
+ //# sourceMappingURL=unref-stdin-C_oGEwwO.js.map
227
+ //# debugId=0aad15ef-4817-5479-bd3e-5b67928b44c8
@@ -1,6 +1,6 @@
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]="10cef2d6-6244-5897-b951-7d7d9bdbf476")}catch(e){}}();
3
- import { g as VERSION, t as recordCount, w as METRIC } from "./record-metric-CuPtdZfm.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]="fdba9728-11c5-5d65-afe3-e972bef3bd4e")}catch(e){}}();
3
+ import { g as VERSION, t as recordCount, w as METRIC } from "./record-metric-CS-5W1fU.js";
4
4
  //#region src/cli/commands/version.ts
5
5
  /**
6
6
  * oclif-style version line. 12-factor CLI Apps (#3, "What version am I
@@ -17,5 +17,5 @@ const versionAction = () => {
17
17
  //#endregion
18
18
  export { versionAction };
19
19
 
20
- //# sourceMappingURL=version-CyVLelBf.js.map
21
- //# debugId=10cef2d6-6244-5897-b951-7d7d9bdbf476
20
+ //# sourceMappingURL=version-CDe5iaV6.js.map
21
+ //# debugId=fdba9728-11c5-5d65-afe3-e972bef3bd4e
@@ -1,6 +1,6 @@
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]="79c662d0-5f1b-5d94-b632-bd6ea77829b7")}catch(e){}}();
3
- import { t as inspectAction } from "./inspect-BQapfOJX.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]="90ed46de-eacc-56eb-80ed-a6784cb38906")}catch(e){}}();
3
+ import { t as inspectAction } from "./inspect-yGAELM32.js";
4
4
  //#region src/cli/commands/why.ts
5
5
  /**
6
6
  * `why <file:line>` — explains why a rule fired (or why a suppression didn't
@@ -17,5 +17,5 @@ const whyAction = async (location, options) => {
17
17
  //#endregion
18
18
  export { whyAction };
19
19
 
20
- //# sourceMappingURL=why-nfPQ3AAq.js.map
21
- //# debugId=79c662d0-5f1b-5d94-b632-bd6ea77829b7
20
+ //# sourceMappingURL=why-B3_wyTCh.js.map
21
+ //# debugId=90ed46de-eacc-56eb-80ed-a6784cb38906
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-doctor",
3
- "version": "0.9.10",
3
+ "version": "0.9.11-dev.55f11e3",
4
4
  "description": "Your agent writes bad React. This catches it",
5
5
  "keywords": [
6
6
  "accessibility",
@@ -61,7 +61,7 @@
61
61
  "jiti": "^2.7.0",
62
62
  "magicast": "^0.5.3",
63
63
  "oxc-resolver": "^11.24.2",
64
- "oxlint": ">=1.76.0 <1.77.0",
64
+ "oxlint": ">=1.77.0 <1.78.0",
65
65
  "prompts": "^2.4.2",
66
66
  "typescript": ">=5.0.4 <6",
67
67
  "vscode-languageserver": "^9.0.1",
@@ -69,8 +69,8 @@
69
69
  "vscode-uri": "^3.1.0",
70
70
  "yaml": "^2.9.0",
71
71
  "yoga-layout": "~3.2.1",
72
- "deslop-js": "0.9.10",
73
- "oxlint-plugin-react-doctor": "0.9.10"
72
+ "deslop-js": "0.9.11",
73
+ "oxlint-plugin-react-doctor": "0.9.11-dev.55f11e3"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@types/babel__code-frame": "^7.27.0",
@@ -83,9 +83,9 @@
83
83
  "ora": "^9.4.0",
84
84
  "react": "19.2.5",
85
85
  "react-devtools-core": "^7.0.1",
86
- "@react-doctor/api": "0.9.10",
87
- "@react-doctor/core": "0.9.10",
88
- "@react-doctor/language-server": "0.9.10"
86
+ "@react-doctor/language-server": "0.9.11",
87
+ "@react-doctor/api": "0.9.11",
88
+ "@react-doctor/core": "0.9.11"
89
89
  },
90
90
  "engines": {
91
91
  "node": "^20.19.0 || >=22.13.0"