react-doctor 0.9.12-dev.0b670aa → 0.9.12-dev.28a1a9f

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-CJ7k-BvF.js → build-section-divider-CdnczCsb.js} +7 -7
  2. package/dist/{ci-Dannv-cF.js → ci-CvrWkFyG.js} +11 -11
  3. package/dist/cli.js +22 -22
  4. package/dist/{design-9x5DReyL.js → design-C6QoD6j5.js} +4 -4
  5. package/dist/{exit-gracefully-ti2wONpM.js → exit-gracefully-dQBRJxyW.js} +6 -6
  6. package/dist/index.d.ts +2 -2
  7. package/dist/index.js +61 -43
  8. package/dist/{inspect-C3itFiEW.js → inspect-CEYHtLuK.js} +16 -16
  9. package/dist/{install-CjIJL6S5.js → install-BPQG8X-S.js} +8 -8
  10. package/dist/{install-doctor-script-0sdZ4SY8.js → install-doctor-script-BZJlaCgz.js} +4 -4
  11. package/dist/{install-github-workflow-DQ8_lhAW.js → install-github-workflow-DQIDvKig.js} +6 -6
  12. package/dist/{install-react-doctor-DRG8hdL4.js → install-react-doctor-C3iiSm4r.js} +8 -8
  13. package/dist/{print-branded-header-Dc1KdrcV.js → print-branded-header-B594Zejh.js} +4 -4
  14. package/dist/{read-object-file-rblJxHxN.js → read-object-file-CIVH-Cg-.js} +4 -4
  15. package/dist/{record-metric-Dgg2b2LG.js → record-metric-CFPfyOEW.js} +99 -73
  16. package/dist/{report-error-BlOAg03W.js → report-error-DspMW6A2.js} +5 -5
  17. package/dist/{report-workflow-result-Dp4dCUxw.js → report-workflow-result-GxDOhexG.js} +5 -5
  18. package/dist/{resolve-scope-CbeXgE9z.js → resolve-scope-CNV3HRNo.js} +6 -6
  19. package/dist/{rules-ClDrNCc3.js → rules-C1Nt63By.js} +6 -6
  20. package/dist/{run-scan-app-Cgn4ELJF.js → run-scan-app-lYmDIiT4.js} +15 -10
  21. package/dist/{scan-Caa_ogFB.js → scan-D-Y1Qifl.js} +8 -8
  22. package/dist/{should-fail-scan-gate-BGzNJApW.js → should-fail-scan-gate-XdfNPXf9.js} +21 -13
  23. package/dist/{should-skip-prompts-Bbl0ToUI.js → should-skip-prompts-DXyhnzjP.js} +4 -4
  24. package/dist/{unref-stdin-C7d7_3va.js → unref-stdin-CwYEtpri.js} +4 -4
  25. package/dist/{version-Bjql-CLM.js → version-tT7fsrFN.js} +4 -4
  26. package/dist/{why-BqG2EML8.js → why-4B0HPeQG.js} +4 -4
  27. package/package.json +5 -4
@@ -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]="69630ea0-5ffe-5d6d-9480-79bc0b2dfc78")}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]="cc255551-8999-5715-954f-24ed42928cbd")}catch(e){}}();
3
3
  import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-ChKA3wi6.js";
4
- import { B as isGitHookEnvironment, Gn as succeed, Gt as highlighter, Ht as hasPublishedFixRecipe, I as TUI_REPORT_COMPACT_MAX_ROWS, It as getBaselineDiffPlan, L as TUI_REPORT_DETAIL_WIDTH_FRACTION, Ln as runPromise, Lt as getChangedLineRanges, S as CI_TRUST_COMPANIES, Vn as void_, W as isCiEnvironment, _r as getCategoryImpact, bn as yieldToEventLoop, dn as resolveScanTarget, ht as buildRuleDocsUrl, ir as DIAGNOSTIC_CATEGORY_BUCKETS, it as Progress, n as recordDistribution, on as remainingDeadlineBudgetMs, ot as Reporter, qt as isPathInsideDirectory, rn as mapWithConcurrency, sr as GITHUB_ACTIONS_SETUP_URL, t as recordCount, vt as calculateScore, w as METRIC, zn as sync, zt as getDiffInfo } from "./record-metric-Dgg2b2LG.js";
5
- import { n as registerActiveTuiRenderer, t as exitGracefully } from "./exit-gracefully-ti2wONpM.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-0sdZ4SY8.js";
7
- import { i as isReactDoctorWorkflowInstalled } from "./install-github-workflow-DQ8_lhAW.js";
8
- import { r as resolveScope, s as resolveBlockingLevel, t as finalizeScope, u as toForwardSlashes } from "./resolve-scope-CbeXgE9z.js";
9
- import { A as resolveMergeBaseRef, B as buildNoScoreMessage, C as copyToClipboard, D as deduplicateProjectScans, E as collectProjectSourceFileCounts, F as printFooter, G as formatFixRecipeLine, H as hasLintHardFailure, I as printDiagnosticsDump, K as formatLearnMoreLine, L as formatDiagnosticSite, M as pluralize, N as formatSkippedCheckLabel, O as createInvocationInspect, P as formatElapsedTime, R as hasIncompleteScoreAnalysis, S as CLI_AGENT_BINARIES, T as buildHandoffPayload, U as buildRulePriorityMap, V as buildEmptyReportMessage, W as buildSortedRuleGroups, _ 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 filterDiagnosticsByCategories } from "./should-fail-scan-gate-BGzNJApW.js";
10
- import { a as recordGate, f as ONBOARDING_EVENT, n as openUrl, r as isGatePending } from "./report-workflow-result-Dp4dCUxw.js";
4
+ import { B as isGitHookEnvironment, Gn as succeed, Gt as highlighter, Ht as hasPublishedFixRecipe, I as TUI_REPORT_COMPACT_MAX_ROWS, It as getBaselineDiffPlan, L as TUI_REPORT_DETAIL_WIDTH_FRACTION, Ln as runPromise, Lt as getChangedLineRanges, S as CI_TRUST_COMPANIES, Vn as void_, W as isCiEnvironment, _r as getCategoryImpact, bn as yieldToEventLoop, dn as resolveScanTarget, ht as buildRuleDocsUrl, ir as DIAGNOSTIC_CATEGORY_BUCKETS, it as Progress, n as recordDistribution, on as remainingDeadlineBudgetMs, ot as Reporter, qt as isPathInsideDirectory, rn as mapWithConcurrency, sr as GITHUB_ACTIONS_SETUP_URL, t as recordCount, vt as calculateScore, w as METRIC, zn as sync, zt as getDiffInfo } from "./record-metric-CFPfyOEW.js";
5
+ import { n as registerActiveTuiRenderer, t as exitGracefully } from "./exit-gracefully-dQBRJxyW.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-BZJlaCgz.js";
7
+ import { i as isReactDoctorWorkflowInstalled } from "./install-github-workflow-DQIDvKig.js";
8
+ import { r as resolveScope, s as resolveBlockingLevel, t as finalizeScope, u as toForwardSlashes } from "./resolve-scope-CNV3HRNo.js";
9
+ import { A as resolveMergeBaseRef, B as buildNoScoreMessage, C as copyToClipboard, D as deduplicateProjectScans, E as collectProjectSourceFileCounts, F as printFooter, G as formatFixRecipeLine, H as hasLintHardFailure, I as printDiagnosticsDump, K as formatLearnMoreLine, L as formatDiagnosticSite, M as pluralize, N as formatSkippedCheckLabel, O as createInvocationInspect, P as formatElapsedTime, R as hasIncompleteScoreAnalysis, S as CLI_AGENT_BINARIES, T as buildHandoffPayload, U as buildRulePriorityMap, V as buildEmptyReportMessage, W as buildSortedRuleGroups, _ 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 filterDiagnosticsByCategories } from "./should-fail-scan-gate-XdfNPXf9.js";
10
+ import { a as recordGate, f as ONBOARDING_EVENT, n as openUrl, r as isGatePending } from "./report-workflow-result-GxDOhexG.js";
11
11
  import { EventEmitter } from "node:events";
12
12
  import { execFileSync } from "node:child_process";
13
13
  import path from "node:path";
@@ -25792,10 +25792,14 @@ const ScoreHeader = ({ variant, score, projectedScore, projectName, issueCount,
25792
25792
  const [eyes, mouth] = doctorFace(score.score);
25793
25793
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
25794
25794
  flexDirection: "column",
25795
+ width: availableWidth,
25795
25796
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
25796
25797
  paddingLeft: 2,
25798
+ width: availableWidth,
25797
25799
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
25798
25800
  flexDirection: "column",
25801
+ flexShrink: 0,
25802
+ width: 7,
25799
25803
  marginRight: 2,
25800
25804
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
25801
25805
  color: scoreColor,
@@ -25803,6 +25807,7 @@ const ScoreHeader = ({ variant, score, projectedScore, projectName, issueCount,
25803
25807
  })
25804
25808
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
25805
25809
  flexDirection: "column",
25810
+ width: availableWidth - 11,
25806
25811
  children: [
25807
25812
  scoreSummaryLine,
25808
25813
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Text, {
@@ -28358,5 +28363,5 @@ const runScanApp = async (input) => {
28358
28363
  //#endregion
28359
28364
  export { runScanApp };
28360
28365
 
28361
- //# sourceMappingURL=run-scan-app-Cgn4ELJF.js.map
28362
- //# debugId=69630ea0-5ffe-5d6d-9480-79bc0b2dfc78
28366
+ //# sourceMappingURL=run-scan-app-lYmDIiT4.js.map
28367
+ //# debugId=cc255551-8999-5715-954f-24ed42928cbd
@@ -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]="ade4cf66-54d6-555a-8ea2-092f2794d38e")}catch(e){}}();
3
- import { dn as resolveScanTarget, t as recordCount, w as METRIC, z as isNonInteractiveEnvironment } from "./record-metric-Dgg2b2LG.js";
4
- import { i as warnDeprecatedDiff } from "./resolve-scope-CbeXgE9z.js";
5
- import { _ as resolveCliInspectOptions, i as validateModeFlags } from "./should-fail-scan-gate-BGzNJApW.js";
6
- import { n as warnDeprecatedFailOn, r as runProjectMigrations, t as inspectAction } from "./inspect-C3itFiEW.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]="21a71b3c-82e6-55b4-b8b4-bff714ffdee2")}catch(e){}}();
3
+ import { dn as resolveScanTarget, t as recordCount, w as METRIC, z as isNonInteractiveEnvironment } from "./record-metric-CFPfyOEW.js";
4
+ import { i as warnDeprecatedDiff } from "./resolve-scope-CNV3HRNo.js";
5
+ import { _ as resolveCliInspectOptions, i as validateModeFlags } from "./should-fail-scan-gate-XdfNPXf9.js";
6
+ import { n as warnDeprecatedFailOn, r as runProjectMigrations, t as inspectAction } from "./inspect-CEYHtLuK.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-Cgn4ELJF.js");
37
+ const { runScanApp } = await import("./run-scan-app-lYmDIiT4.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-Caa_ogFB.js.map
53
- //# debugId=ade4cf66-54d6-555a-8ea2-092f2794d38e
52
+ //# sourceMappingURL=scan-D-Y1Qifl.js.map
53
+ //# debugId=21a71b3c-82e6-55b4-b8b4-bff714ffdee2
@@ -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]="e9dd7060-4756-56a0-b78b-87feea53eea4")}catch(e){}}();
3
- import { $ as Maintainability, $t as listSourceFiles, An as makeSpan, At as filterDiagnosticsForSurface, Bn as try_, Ct as computeConfigFingerprint, Dn as decodeUnknownSync, Dt as createOxlintSpawnSlots, E as NANOSECONDS_PER_MILLISECOND, En as Diagnostic, Et as createNodeReadFileLinesSync, Fn as provideContext, G as isCiOrCodingAgentEnvironment, Gn as succeed, Gt as highlighter, H as ACTION_INPUT_ENVIRONMENT_VARIABLES, Ht as hasPublishedFixRecipe, In as provideService, J as Files, Jn as fail, Kt as isMonorepoRoot, Ln as runPromise, Mn as orElseSucceed, Mt as filterSourceFiles, Nn as promise, Pn as provide, Q as Linter, R as CliInputError, Rn as runSync, Rt as getDiagnosticRuleIdentity, Sn as error, St as collectSourceFileCountsByDirectory, Tn as warn, Tt as countOptInProjectRuleSelections, U as detectRunnerOs, Un as mergeAll, Vt as groupBy, W as isCiEnvironment, Wt as hashFileContents, Xn as ParentSpan, Y as Git, Yn as void_, Yt as isReactDoctorError, Z as LintPartialFailures, Zt as isScanComplete, _ as makeNoopConsole, _n as summarizeDiagnostics, _t as buildSkippedChecks, an as mergeReactDoctorConfigs, at as Project, bn as yieldToEventLoop, br as isFile, bt as classifyFileContext, c as setSentryProjectInfo, cn as resolveLintBatchOrdering, cr as GIT_SHOW_MAX_BUFFER_BYTES, ct as SidecarLintCacheEnabled, d as isJsonModeActive, dn as resolveScanTarget, dr as JSX_FILE_PATTERN, en as listSourceFilesCooperative, er as CI_URL, et as NodeResolver, fn as restoreLegacyThrow, fr as MILLISECONDS_PER_SECOND, g as VERSION, gn as shouldUseMaintainabilityLayer, gt as buildRuleSeverityControls, ht as buildRuleDocsUrl, in as materializeSourceTree, ir as DIAGNOSTIC_CATEGORY_BUCKETS, it as Progress, jn as map, jt as filterPathsOutsideDirectories, k as SCAN_RESULT_CACHE_FILENAME, kn as gen, kt as discoverReactSubprojects, l as getRunId, ln as resolveReactDoctorCacheDir, lr as HTML_FILE_PATTERN, mr as SHARE_BASE_URL, n as recordDistribution, nt as OxlintSpawnSlots, o as buildSentryScope, on as remainingDeadlineBudgetMs, or as ENTERPRISE_CONTACT_URL, ot as Reporter, pn as runInspect, pr as OXLINT_NODE_REQUIREMENT, pt as atomicWriteJson, q as Config, qt as isPathInsideDirectory, r as toSpanAttributes, rn as mapWithConcurrency, rt as PerFileLintCacheEnabled, s as buildSentryProjectContext, sn as resolveGithubActionsScoreMetadata, st as Score, t as recordCount, tn as listWorkspacePackages, tt as OxlintConcurrency, un as resolveScanConcurrency, ur as JSX_DUPLICATION_SOURCE_FILE_PATTERN, ut as SupplyChain, vr as isDirectory, vt as calculateScore, w as METRIC, wn as log, wt as computeDiagnosticDelta, x as BASELINE_FILES_TEMP_DIR_PREFIX, xn as Console, yt as canonicalizeUserRuleKey, z as isNonInteractiveEnvironment, zn as sync } from "./record-metric-Dgg2b2LG.js";
4
- import { a as setActiveRunTrace, i as recordRunTraceId, o as getTelemetryContext } from "./unref-stdin-C7d7_3va.js";
5
- import { n as buildFooterLinkLines, r as activeScanAbortRegistry, t as buildSectionDivider } from "./build-section-divider-CJ7k-BvF.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-0sdZ4SY8.js";
7
- import { d as detectDefaultBranch, l as prompts, r as installReactDoctorWorkflow, u as isCommandAvailable } from "./install-github-workflow-DQ8_lhAW.js";
8
- import { a as isValidBlockingLevel, c as openWorkflowPullRequest, l as stageWorkflowFile, o as pickBlockingLevel, u as toForwardSlashes } from "./resolve-scope-CbeXgE9z.js";
9
- import { h as detectAvailableAgents, t as reportWorkflowResult } from "./report-workflow-result-Dp4dCUxw.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]="49eb03b4-ad5f-5d68-8511-ef63da81d36d")}catch(e){}}();
3
+ import { $ as Maintainability, $t as listSourceFiles, An as makeSpan, At as filterDiagnosticsForSurface, Bn as try_, Ct as computeConfigFingerprint, Dn as decodeUnknownSync, Dt as createOxlintSpawnSlots, E as NANOSECONDS_PER_MILLISECOND, En as Diagnostic, Et as createNodeReadFileLinesSync, Fn as provideContext, G as isCiOrCodingAgentEnvironment, Gn as succeed, Gt as highlighter, H as ACTION_INPUT_ENVIRONMENT_VARIABLES, Ht as hasPublishedFixRecipe, In as provideService, J as Files, Jn as fail, Kt as isMonorepoRoot, Ln as runPromise, Mn as orElseSucceed, Mt as filterSourceFiles, Nn as promise, Pn as provide, Q as Linter, R as CliInputError, Rn as runSync, Rt as getDiagnosticRuleIdentity, Sn as error, St as collectSourceFileCountsByDirectory, Tn as warn, Tt as countOptInProjectRuleSelections, U as detectRunnerOs, Un as mergeAll, Vt as groupBy, W as isCiEnvironment, Wt as hashFileContents, Xn as ParentSpan, Y as Git, Yn as void_, Yt as isReactDoctorError, Z as LintPartialFailures, Zt as isScanComplete, _ as makeNoopConsole, _n as summarizeDiagnostics, _t as buildSkippedChecks, an as mergeReactDoctorConfigs, at as Project, bn as yieldToEventLoop, br as isFile, bt as classifyFileContext, c as setSentryProjectInfo, cn as resolveLintBatchOrdering, cr as GIT_SHOW_MAX_BUFFER_BYTES, ct as SidecarLintCacheEnabled, d as isJsonModeActive, dn as resolveScanTarget, dr as JSX_FILE_PATTERN, en as listSourceFilesCooperative, er as CI_URL, et as NodeResolver, fn as restoreLegacyThrow, fr as MILLISECONDS_PER_SECOND, g as VERSION, gn as shouldUseMaintainabilityLayer, gt as buildRuleSeverityControls, ht as buildRuleDocsUrl, in as materializeSourceTree, ir as DIAGNOSTIC_CATEGORY_BUCKETS, it as Progress, jn as map, jt as filterPathsOutsideDirectories, k as SCAN_RESULT_CACHE_FILENAME, kn as gen, kt as discoverSupportedSubprojects, l as getRunId, ln as resolveReactDoctorCacheDir, lr as HTML_FILE_PATTERN, mr as SHARE_BASE_URL, n as recordDistribution, nt as OxlintSpawnSlots, o as buildSentryScope, on as remainingDeadlineBudgetMs, or as ENTERPRISE_CONTACT_URL, ot as Reporter, pn as runInspect, pr as OXLINT_NODE_REQUIREMENT, pt as atomicWriteJson, q as Config, qt as isPathInsideDirectory, r as toSpanAttributes, rn as mapWithConcurrency, rt as PerFileLintCacheEnabled, s as buildSentryProjectContext, sn as resolveGithubActionsScoreMetadata, st as Score, t as recordCount, tn as listWorkspacePackages, tt as OxlintConcurrency, un as resolveScanConcurrency, ur as JSX_DUPLICATION_SOURCE_FILE_PATTERN, ut as SupplyChain, vr as isDirectory, vt as calculateScore, w as METRIC, wn as log, wt as computeDiagnosticDelta, x as BASELINE_FILES_TEMP_DIR_PREFIX, xn as Console, yt as canonicalizeUserRuleKey, z as isNonInteractiveEnvironment, zn as sync } from "./record-metric-CFPfyOEW.js";
4
+ import { a as setActiveRunTrace, i as recordRunTraceId, o as getTelemetryContext } from "./unref-stdin-CwYEtpri.js";
5
+ import { n as buildFooterLinkLines, r as activeScanAbortRegistry, t as buildSectionDivider } from "./build-section-divider-CdnczCsb.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-BZJlaCgz.js";
7
+ import { d as detectDefaultBranch, l as prompts, r as installReactDoctorWorkflow, u as isCommandAvailable } from "./install-github-workflow-DQIDvKig.js";
8
+ import { a as isValidBlockingLevel, c as openWorkflowPullRequest, l as stageWorkflowFile, o as pickBlockingLevel, u as toForwardSlashes } from "./resolve-scope-CNV3HRNo.js";
9
+ import { h as detectAvailableAgents, t as reportWorkflowResult } from "./report-workflow-result-GxDOhexG.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";
@@ -500,6 +500,13 @@ const TOOLCHAIN_PACKAGE_SPECIFIERS = [
500
500
  "eslint-plugin-react-hooks/package.json"
501
501
  ];
502
502
  const bundledRequire = createRequire(import.meta.url);
503
+ const RULE_PLUGIN_CONTENT_FINGERPRINT = (() => {
504
+ try {
505
+ return `oxlint-plugin-react-doctor#fingerprint=${hashFileContents(bundledRequire.resolve("oxlint-plugin-react-doctor")) ?? "unreadable"}`;
506
+ } catch {
507
+ return "oxlint-plugin-react-doctor#fingerprint=unresolved";
508
+ }
509
+ })();
503
510
  const normalizeForStableJson = (value) => {
504
511
  if (value === null) return null;
505
512
  if (value === void 0) return void 0;
@@ -691,7 +698,7 @@ const fileFingerprint = (filePath) => {
691
698
  return null;
692
699
  }
693
700
  };
694
- const resolveToolchainFingerprint = (nodeBinaryPath) => {
701
+ const resolveScanResultToolchainFingerprint = (nodeBinaryPath) => {
695
702
  const fingerprints = [];
696
703
  if (nodeBinaryPath !== null) fingerprints.push(nodeBinaryPath === process.execPath ? `node=${process.version}` : `node=${fileFingerprint(nodeBinaryPath) ?? "unreadable"}`);
697
704
  for (const specifier of TOOLCHAIN_PACKAGE_SPECIFIERS) try {
@@ -701,6 +708,7 @@ const resolveToolchainFingerprint = (nodeBinaryPath) => {
701
708
  } catch {
702
709
  fingerprints.push(`${specifier}=missing`);
703
710
  }
711
+ fingerprints.push(RULE_PLUGIN_CONTENT_FINGERPRINT);
704
712
  return fingerprints;
705
713
  };
706
714
  const buildScanResultCacheKey = (input) => {
@@ -717,7 +725,7 @@ const buildScanResultCacheKey = (input) => {
717
725
  dotenvFingerprint: resolveDotenvFingerprint(input.projectDirectory),
718
726
  reactDoctorVersion: input.version,
719
727
  nodeVersion: process.version,
720
- toolchainFingerprint: resolveToolchainFingerprint(input.nodeBinaryPath),
728
+ toolchainFingerprint: resolveScanResultToolchainFingerprint(input.nodeBinaryPath),
721
729
  configFingerprint: computeConfigFingerprint(input.projectDirectory, input.version),
722
730
  hasConfigOverride: input.hasConfigOverride,
723
731
  configSourceDirectory: input.configSourceDirectory,
@@ -2970,7 +2978,7 @@ const buildCodeFrame = (input) => {
2970
2978
  const discoverWorkspacePackages = (rootDirectory) => {
2971
2979
  const hasRootPackageJson = isFile(path$1.join(rootDirectory, "package.json"));
2972
2980
  const packages = listWorkspacePackages(rootDirectory);
2973
- if (packages.length === 0 && (!hasRootPackageJson || isMonorepoRoot(rootDirectory))) return discoverReactSubprojects(rootDirectory);
2981
+ if (packages.length === 0 && (!hasRootPackageJson || isMonorepoRoot(rootDirectory))) return discoverSupportedSubprojects(rootDirectory);
2974
2982
  return packages;
2975
2983
  };
2976
2984
  const selectProjects = async (rootDirectory, projectFlag, skipPrompts, configProjects) => {
@@ -3088,5 +3096,5 @@ const shouldFailScanGate = (input) => {
3088
3096
  //#endregion
3089
3097
  export { resolveMergeBaseRef as A, buildNoScoreMessage as B, copyToClipboard as C, deduplicateProjectScans as D, collectProjectSourceFileCounts as E, printFooter as F, formatFixRecipeLine as G, hasLintHardFailure as H, printDiagnosticsDump as I, formatLearnMoreLine as K, formatDiagnosticSite as L, pluralize as M, formatSkippedCheckLabel as N, createInvocationInspect as O, formatElapsedTime as P, hasIncompleteScoreAnalysis as R, CLI_AGENT_BINARIES as S, buildHandoffPayload as T, buildRulePriorityMap as U, buildEmptyReportMessage as V, buildSortedRuleGroups 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, filterDiagnosticsByCategories as z };
3090
3098
 
3091
- //# sourceMappingURL=should-fail-scan-gate-BGzNJApW.js.map
3092
- //# debugId=e9dd7060-4756-56a0-b78b-87feea53eea4
3099
+ //# sourceMappingURL=should-fail-scan-gate-XdfNPXf9.js.map
3100
+ //# debugId=49eb03b4-ad5f-5d68-8511-ef63da81d36d
@@ -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]="e5c1af83-a80c-5c40-bdcd-7071de31af74")}catch(e){}}();
3
- import { z as isNonInteractiveEnvironment } from "./record-metric-Dgg2b2LG.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]="bddc3436-2d02-5749-b77f-2c6cab9f26fa")}catch(e){}}();
3
+ import { z as isNonInteractiveEnvironment } from "./record-metric-CFPfyOEW.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-Bbl0ToUI.js.map
10
- //# debugId=e5c1af83-a80c-5c40-bdcd-7071de31af74
9
+ //# sourceMappingURL=should-skip-prompts-DXyhnzjP.js.map
10
+ //# debugId=bddc3436-2d02-5749-b77f-2c6cab9f26fa
@@ -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]="7f381600-a44f-5622-afd8-ebc549ab1867")}catch(e){}}();
3
- import { Hn as buildWithScope, Jt as isProjectDiscoveryError, Kn as close, Ln as runPromise, On as make, Qt as layerObservability, R as CliInputError, Rn as runSync, Sr as messageFromUnknown, Yn as void_, Yt as isReactDoctorError, g as VERSION, i as isTelemetryEnabled, qn as makeUnsafe, yr as isErrnoException } from "./record-metric-Dgg2b2LG.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]="108f5716-98ff-5383-8562-fb0e773f8470")}catch(e){}}();
3
+ import { Hn as buildWithScope, Jt as isProjectDiscoveryError, Kn as close, Ln as runPromise, On as make, Qt as layerObservability, R as CliInputError, Rn as runSync, Sr as messageFromUnknown, Yn as void_, Yt as isReactDoctorError, g as VERSION, i as isTelemetryEnabled, qn as makeUnsafe, yr as isErrnoException } from "./record-metric-CFPfyOEW.js";
4
4
  //#region src/cli/utils/is-environment-error.ts
5
5
  const ENVIRONMENT_ERROR_CODES = new Set([
6
6
  "EACCES",
@@ -217,5 +217,5 @@ const unrefStdin = () => {
217
217
  //#endregion
218
218
  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 };
219
219
 
220
- //# sourceMappingURL=unref-stdin-C7d7_3va.js.map
221
- //# debugId=7f381600-a44f-5622-afd8-ebc549ab1867
220
+ //# sourceMappingURL=unref-stdin-CwYEtpri.js.map
221
+ //# debugId=108f5716-98ff-5383-8562-fb0e773f8470
@@ -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]="88ddace2-4c0d-533b-aeef-9584fb110088")}catch(e){}}();
3
- import { g as VERSION, t as recordCount, w as METRIC } from "./record-metric-Dgg2b2LG.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]="1054ee88-20e7-5116-9a86-beac0e8cc51e")}catch(e){}}();
3
+ import { g as VERSION, t as recordCount, w as METRIC } from "./record-metric-CFPfyOEW.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-Bjql-CLM.js.map
21
- //# debugId=88ddace2-4c0d-533b-aeef-9584fb110088
20
+ //# sourceMappingURL=version-tT7fsrFN.js.map
21
+ //# debugId=1054ee88-20e7-5116-9a86-beac0e8cc51e
@@ -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]="1350f41a-9f33-5e71-84ba-8ecdf676986b")}catch(e){}}();
3
- import { t as inspectAction } from "./inspect-C3itFiEW.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]="e686b95d-a187-56db-863a-bc8218054b88")}catch(e){}}();
3
+ import { t as inspectAction } from "./inspect-CEYHtLuK.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-BqG2EML8.js.map
21
- //# debugId=1350f41a-9f33-5e71-84ba-8ecdf676986b
20
+ //# sourceMappingURL=why-4B0HPeQG.js.map
21
+ //# debugId=e686b95d-a187-56db-863a-bc8218054b88
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-doctor",
3
- "version": "0.9.12-dev.0b670aa",
3
+ "version": "0.9.12-dev.28a1a9f",
4
4
  "description": "Your agent writes bad React. This catches it",
5
5
  "keywords": [
6
6
  "accessibility",
@@ -53,19 +53,20 @@
53
53
  "@astrojs/compiler": "^4.0.0",
54
54
  "@sentry/node": "^10.54.0",
55
55
  "agent-install": "0.0.5",
56
+ "bippy": "^0.6.1",
56
57
  "conf": "^15.1.0",
57
58
  "confbox": "^0.2.4",
58
59
  "eslint-plugin-react-hooks": "^7.1.1",
59
60
  "jiti": "^2.7.0",
60
61
  "magicast": "^0.5.3",
61
- "oxc-parser": "^0.143.0",
62
+ "oxc-parser": "^0.144.0",
62
63
  "oxc-resolver": "^11.24.2",
63
- "oxlint": ">=1.77.0 <1.78.0",
64
+ "oxlint": ">=1.78.0 <1.79.0",
64
65
  "prompts": "^2.4.2",
65
66
  "typescript": ">=5.0.4 <6",
66
67
  "yaml": "^2.9.0",
67
68
  "yoga-layout": "~3.2.1",
68
- "oxlint-plugin-react-doctor": "0.9.12-dev.0b670aa"
69
+ "oxlint-plugin-react-doctor": "0.9.12-dev.28a1a9f"
69
70
  },
70
71
  "devDependencies": {
71
72
  "@types/babel__code-frame": "^7.27.0",