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.
- package/dist/{build-section-divider-BBuZ20p0.js → build-section-divider-dL0ACdwz.js} +7 -7
- package/dist/{ci-Cje97GMB.js → ci-B9f24Y3W.js} +11 -11
- package/dist/cli.js +22 -22
- package/dist/{design-swBQC07N.js → design-BgNIP4Ts.js} +4 -4
- package/dist/{exit-gracefully-GZXxMj5W.js → exit-gracefully-BNtmaYKV.js} +6 -6
- package/dist/index.js +120 -21
- package/dist/{inspect-BQapfOJX.js → inspect-yGAELM32.js} +15 -15
- package/dist/{install-CChowo4Z.js → install-BNmBXUPs.js} +8 -8
- package/dist/{install-doctor-script-BM5NC98v.js → install-doctor-script-BFy4otr5.js} +4 -4
- package/dist/{install-github-workflow-L48jbG9d.js → install-github-workflow-Bd-3IaWG.js} +6 -6
- package/dist/{install-react-doctor-BFp6q3iz.js → install-react-doctor-BoYnwCHi.js} +8 -8
- package/dist/lsp.js +25 -18
- package/dist/{print-branded-header-DQn3TZpV.js → print-branded-header-aUDNw3Y3.js} +4 -4
- package/dist/{read-object-file-BTd_gGow.js → read-object-file-SoRztiUR.js} +4 -4
- package/dist/{record-metric-CuPtdZfm.js → record-metric-CS-5W1fU.js} +46 -27
- package/dist/{report-error-DemUcOtc.js → report-error-DO_LTnG1.js} +5 -5
- package/dist/{report-workflow-result-W-amAB4Z.js → report-workflow-result-TIztoV2u.js} +5 -5
- package/dist/{resolve-scope-BGBQcbGi.js → resolve-scope-OT2B4B5o.js} +6 -6
- package/dist/{rules-BsYE5BBb.js → rules-Bky1VqKt.js} +6 -6
- package/dist/{run-scan-app-CfT3YzbG.js → run-scan-app-sXT7VN-U.js} +57 -32
- package/dist/{scan-D8DHxJxj.js → scan-wlzL5YMB.js} +8 -8
- package/dist/{should-fail-scan-gate-B5XfdAMg.js → should-fail-scan-gate-CvGX6kBX.js} +10 -10
- package/dist/{should-skip-prompts-DaBGPwa3.js → should-skip-prompts-CJ1MaziC.js} +4 -4
- package/dist/{unref-stdin-D0Lq28Bk.js → unref-stdin-C_oGEwwO.js} +4 -4
- package/dist/{version-CyVLelBf.js → version-CDe5iaV6.js} +4 -4
- package/dist/{why-nfPQ3AAq.js → why-B3_wyTCh.js} +4 -4
- 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]="
|
|
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-
|
|
5
|
-
import { n as registerActiveTuiRenderer, t as exitGracefully } from "./exit-gracefully-
|
|
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-
|
|
7
|
-
import { i as isReactDoctorWorkflowInstalled } from "./install-github-workflow-
|
|
8
|
-
import { r as resolveScope, s as resolveBlockingLevel, t as finalizeScope, u as toForwardSlashes } from "./resolve-scope-
|
|
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-
|
|
10
|
-
import { a as recordGate, f as ONBOARDING_EVENT, n as openUrl, r as isGatePending } from "./report-workflow-result-
|
|
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
|
|
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 &&
|
|
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:
|
|
25976
|
-
|
|
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
|
-
|
|
27962
|
-
|
|
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
|
-
|
|
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-
|
|
28318
|
-
//# debugId=
|
|
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]="
|
|
3
|
-
import { Mn as resolveScanTarget, t as recordCount, w as METRIC, z as isNonInteractiveEnvironment } from "./record-metric-
|
|
4
|
-
import { i as warnDeprecatedDiff } from "./resolve-scope-
|
|
5
|
-
import { _ as resolveCliInspectOptions, i as validateModeFlags } from "./should-fail-scan-gate-
|
|
6
|
-
import { n as warnDeprecatedFailOn, r as runProjectMigrations, t as inspectAction } from "./inspect-
|
|
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-
|
|
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-
|
|
53
|
-
//# debugId=
|
|
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]="
|
|
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-
|
|
4
|
-
import { a as setActiveRunTrace, i as recordRunTraceId, o as getTelemetryContext } from "./unref-stdin-
|
|
5
|
-
import { n as buildFooterLinkLines, r as activeScanAbortRegistry, t as buildSectionDivider } from "./build-section-divider-
|
|
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-
|
|
7
|
-
import { d as detectDefaultBranch, l as prompts, r as installReactDoctorWorkflow, u as isCommandAvailable } from "./install-github-workflow-
|
|
8
|
-
import { a as isValidBlockingLevel, c as openWorkflowPullRequest, l as stageWorkflowFile, o as pickBlockingLevel, u as toForwardSlashes } from "./resolve-scope-
|
|
9
|
-
import { h as detectAvailableAgents, t as reportWorkflowResult } from "./report-workflow-result-
|
|
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-
|
|
2997
|
-
//# debugId=
|
|
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]="
|
|
3
|
-
import { z as isNonInteractiveEnvironment } from "./record-metric-
|
|
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-
|
|
10
|
-
//# debugId=
|
|
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]="
|
|
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-
|
|
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-
|
|
227
|
-
//# debugId=
|
|
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]="
|
|
3
|
-
import { g as VERSION, t as recordCount, w as METRIC } from "./record-metric-
|
|
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-
|
|
21
|
-
//# debugId=
|
|
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]="
|
|
3
|
-
import { t as inspectAction } from "./inspect-
|
|
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-
|
|
21
|
-
//# debugId=
|
|
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.
|
|
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.
|
|
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.
|
|
73
|
-
"oxlint-plugin-react-doctor": "0.9.
|
|
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/
|
|
87
|
-
"@react-doctor/
|
|
88
|
-
"@react-doctor/
|
|
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"
|