react-doctor 0.9.12-dev.bd08406 → 0.9.12-dev.cad6b5f
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-DjX3mmIx.js → build-section-divider-DSn_mPgb.js} +7 -7
- package/dist/{ci-D0OU7_5i.js → ci-BUdvRf-c.js} +12 -12
- package/dist/cli.js +28 -27
- package/dist/{design-D-9YrV4y.js → design-CoLGuy5S.js} +4 -4
- package/dist/{exit-gracefully-DuS_nzeq.js → exit-gracefully-bXME8cHp.js} +6 -6
- package/dist/{handle-error-BzC_gVSx.js → handle-error-DmROnRRs.js} +17 -12
- package/dist/index.js +402 -253
- package/dist/{inspect-NIjyNi5S.js → inspect-npBX73XH.js} +16 -16
- package/dist/{install-doctor-script-W-u3DPjZ.js → install-doctor-script-DYCVafXv.js} +6 -13
- package/dist/{install-github-workflow-DqodeftR.js → install-github-workflow-B1RVnChC.js} +9 -5
- package/dist/{install-react-doctor-C3r0K9JP.js → install-react-doctor-BLY8CGQe.js} +8 -8
- package/dist/{install-BcGDtIYv.js → install-znLbjZ9d.js} +9 -9
- package/dist/{jsx-runtime-BXnpEdz3.js → jsx-runtime-DA_1Hma_.js} +5 -5
- package/dist/{print-branded-header-eiCaprox.js → print-branded-header-C3a4rWLc.js} +4 -4
- package/dist/project-analysis-worker.js +53 -52
- package/dist/{prompt-runtime-scan-url-CAZLxZl0.js → prompt-runtime-scan-url-D-VxJdEV.js} +5 -5
- package/dist/{read-object-file-D4DobruV.js → read-object-file-CZ3jYY2n.js} +4 -4
- package/dist/{record-metric-CECbS8Qh.js → record-metric-o3jPUAlb.js} +348 -198
- package/dist/{report-error-Ckftf8UM.js → report-error-Q2foihSQ.js} +5 -5
- package/dist/{report-workflow-result-MtfAsorD.js → report-workflow-result-DtNumNBo.js} +5 -5
- package/dist/{resolve-scope-IDn0nWJF.js → resolve-scope-BqQ7bkS9.js} +6 -6
- package/dist/{rules-6hA6QP9L.js → rules-BBFANx88.js} +6 -6
- package/dist/{run-scan-app-DNHg67cm.js → run-scan-app-5nFtP_Q2.js} +16 -14
- package/dist/{runtime-scan-Dqqn1kW3.js → runtime-scan-DS3bDIZw.js} +9 -9
- package/dist/{sanitize-runtime-url-DhYx4VYy.js → sanitize-runtime-url-BXPjEywk.js} +4 -4
- package/dist/{scan-DtjqkKaM.js → scan-BsE9Z2jI.js} +9 -9
- package/dist/{should-fail-scan-gate-CXE70SlM.js → should-fail-scan-gate-BoSm_UbG.js} +11 -11
- package/dist/{should-skip-prompts-DwpFmYZZ.js → should-skip-prompts-DFGKV3BW.js} +4 -4
- package/dist/{should-use-tui-Cze9CmaN.js → should-use-tui-Ce7rumUG.js} +4 -4
- package/dist/{telemetry-runtime-DVy10F6G.js → telemetry-runtime-B7w82_85.js} +55 -7
- package/dist/{version-Cr0PARuU.js → version-nwFNPzMN.js} +4 -4
- package/dist/{why-DnrSKh_M.js → why-xMM2hBwY.js} +4 -4
- package/dist/{with-run-span-BsK0r1ay.js → with-run-span-DId1q6s-.js} +5 -5
- package/package.json +5 -4
|
@@ -1,7 +1,7 @@
|
|
|
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 SENTRY_FLUSH_TIMEOUT_MS, T as METRIC, Xt as isReactDoctorError, l as getRunId, o as buildSentryScope, t as recordCount } from "./record-metric-
|
|
4
|
-
import { n as shutdownTelemetry, r as isExpectedUserError } from "./telemetry-runtime-
|
|
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]="67f3b061-4203-5426-bfd8-fe29dc8ee6d5")}catch(e){}}();
|
|
3
|
+
import { N as SENTRY_FLUSH_TIMEOUT_MS, T as METRIC, Xt as isReactDoctorError, l as getRunId, o as buildSentryScope, t as recordCount } from "./record-metric-o3jPUAlb.js";
|
|
4
|
+
import { n as shutdownTelemetry, r as isExpectedUserError } from "./telemetry-runtime-B7w82_85.js";
|
|
5
5
|
import { r as recordRunTraceId, t as getActiveRunTrace } from "./active-run-trace-dlIZeEvb.js";
|
|
6
6
|
import * as Sentry from "@sentry/node";
|
|
7
7
|
//#region src/cli/utils/report-error.ts
|
|
@@ -60,5 +60,5 @@ const reportErrorToSentry = async (error) => {
|
|
|
60
60
|
//#endregion
|
|
61
61
|
export { reportErrorToSentry as t };
|
|
62
62
|
|
|
63
|
-
//# sourceMappingURL=report-error-
|
|
64
|
-
//# debugId=
|
|
63
|
+
//# sourceMappingURL=report-error-Q2foihSQ.js.map
|
|
64
|
+
//# debugId=67f3b061-4203-5426-bfd8-fe29dc8ee6d5
|
|
@@ -1,7 +1,7 @@
|
|
|
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 { O as REACT_DOCTOR_CONFIG_PROJECT_NAME, T as METRIC, t as recordCount } from "./record-metric-
|
|
4
|
-
import { u as isCommandAvailable } from "./install-github-workflow-
|
|
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]="5af3a0de-2b51-5f60-9fd7-c5b951c6e9d3")}catch(e){}}();
|
|
3
|
+
import { O as REACT_DOCTOR_CONFIG_PROJECT_NAME, T as METRIC, t as recordCount } from "./record-metric-o3jPUAlb.js";
|
|
4
|
+
import { u as isCommandAvailable } from "./install-github-workflow-B1RVnChC.js";
|
|
5
5
|
import { spawn } from "node:child_process";
|
|
6
6
|
import * as path$1 from "node:path";
|
|
7
7
|
import process$1 from "node:process";
|
|
@@ -275,5 +275,5 @@ const reportWorkflowResult = (workflowSpinner, result, projectRoot) => {
|
|
|
275
275
|
//#endregion
|
|
276
276
|
export { recordGate as a, ACTION_UPGRADE_EVENT as c, INSTALL_AGENTS_PREFERENCE_ID as d, ONBOARDING_EVENT as f, detectAvailableAgents as h, readPreference as i, CI_PITCH_EVENT as l, computeDefaultSelectedAgents as m, openUrl as n, runMigrations as o, SETUP_HINT_EVENT as p, isGatePending as r, writePreference as s, reportWorkflowResult as t, HANDOFF_TARGET_PREFERENCE_ID as u };
|
|
277
277
|
|
|
278
|
-
//# sourceMappingURL=report-workflow-result-
|
|
279
|
-
//# debugId=
|
|
278
|
+
//# sourceMappingURL=report-workflow-result-DtNumNBo.js.map
|
|
279
|
+
//# debugId=5af3a0de-2b51-5f60-9fd7-c5b951c6e9d3
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import { Jt as isPathInsideDirectory, Nt as filterSourceFiles, wr as toCanonicalPath } from "./record-metric-
|
|
4
|
-
import {
|
|
5
|
-
import { d as detectDefaultBranch, f as runCommand, l as prompts, u as isCommandAvailable } from "./install-github-workflow-
|
|
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]="11555805-a2ed-5935-817c-37c5ff8d5ae7")}catch(e){}}();
|
|
3
|
+
import { Jt as isPathInsideDirectory, Nt as filterSourceFiles, wr as toCanonicalPath } from "./record-metric-o3jPUAlb.js";
|
|
4
|
+
import { M as cliLogger } from "./install-doctor-script-DYCVafXv.js";
|
|
5
|
+
import { d as detectDefaultBranch, f as runCommand, l as prompts, u as isCommandAvailable } from "./install-github-workflow-B1RVnChC.js";
|
|
6
6
|
import * as path$1 from "node:path";
|
|
7
7
|
//#region src/cli/utils/path-format.ts
|
|
8
8
|
const toForwardSlashes = (filePath) => filePath.replaceAll("\\", "/");
|
|
@@ -335,5 +335,5 @@ const finalizeScope = async ({ requested, diffInfo, skipPrompts, isQuiet }) => {
|
|
|
335
335
|
//#endregion
|
|
336
336
|
export { isValidBlockingLevel as a, openWorkflowPullRequest as c, warnDeprecatedDiff as i, stageWorkflowFile as l, isScopeValue as n, pickBlockingLevel as o, resolveScope as r, resolveBlockingLevel as s, finalizeScope as t, toForwardSlashes as u };
|
|
337
337
|
|
|
338
|
-
//# sourceMappingURL=resolve-scope-
|
|
339
|
-
//# debugId=
|
|
338
|
+
//# sourceMappingURL=resolve-scope-BqQ7bkS9.js.map
|
|
339
|
+
//# debugId=11555805-a2ed-5935-817c-37c5ff8d5ae7
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import { Kt as highlighter, Sr as isPlainObject, St as clearConfigCache, T as METRIC, Vt as getEquivalentRuleKeys, Zt as isSameRuleKey, bn as validateConfigTypes, gt as buildRuleDocsUrl, nr as COMPILER_CLEANUP_BUCKET, rn as loadConfigWithSource, rr as COMPILER_CLEANUP_RULE_KEYS, t as recordCount } from "./record-metric-
|
|
4
|
-
import {
|
|
5
|
-
import { t as readObjectFile } from "./read-object-file-
|
|
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]="6419fa07-102d-5a81-9867-3ae6111d1ff2")}catch(e){}}();
|
|
3
|
+
import { Kt as highlighter, Sr as isPlainObject, St as clearConfigCache, T as METRIC, Vt as getEquivalentRuleKeys, Zt as isSameRuleKey, bn as validateConfigTypes, gt as buildRuleDocsUrl, nr as COMPILER_CLEANUP_BUCKET, rn as loadConfigWithSource, rr as COMPILER_CLEANUP_RULE_KEYS, t as recordCount } from "./record-metric-o3jPUAlb.js";
|
|
4
|
+
import { M as cliLogger, n as findNearestPackageDirectory } from "./install-doctor-script-DYCVafXv.js";
|
|
5
|
+
import { t as readObjectFile } from "./read-object-file-CZ3jYY2n.js";
|
|
6
6
|
import * as path$1 from "node:path";
|
|
7
7
|
import * as fs$1 from "node:fs";
|
|
8
8
|
import { REACT_DOCTOR_RULES } from "oxlint-plugin-react-doctor/core";
|
|
@@ -577,5 +577,5 @@ const rulesUnignoreTagAction = async (tag, options) => {
|
|
|
577
577
|
//#endregion
|
|
578
578
|
export { rulesCategoryAction, rulesDisableAction, rulesEnableAction, rulesExplainAction, rulesIgnoreTagAction, rulesListAction, rulesSetAction, rulesUnignoreTagAction };
|
|
579
579
|
|
|
580
|
-
//# sourceMappingURL=rules-
|
|
581
|
-
//# debugId=
|
|
580
|
+
//# sourceMappingURL=rules-BBFANx88.js.map
|
|
581
|
+
//# debugId=6419fa07-102d-5a81-9867-3ae6111d1ff2
|
|
@@ -1,14 +1,15 @@
|
|
|
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 { Bn as sync, Bt as getDiffInfo, C as CI_TRUST_COMPANIES, G as isCiEnvironment, Hn as void_, Jt as isPathInsideDirectory, Kn as succeed, Kt as highlighter, L as TUI_REPORT_COMPACT_MAX_ROWS, Lt as getBaselineDiffPlan, R as TUI_REPORT_DETAIL_WIDTH_FRACTION, Rn as runPromise, Rt as getChangedLineRanges, T as METRIC, Ut as hasPublishedFixRecipe, V as isGitHookEnvironment, ar as DIAGNOSTIC_CATEGORY_BUCKETS, at as Progress, cr as GITHUB_ACTIONS_SETUP_URL, fn as resolveScanTarget, gt as buildRuleDocsUrl, in as mapWithConcurrency, n as recordDistribution, sn as remainingDeadlineBudgetMs, st as Reporter, t as recordCount, vr as getCategoryImpact, xn as yieldToEventLoop, yt as calculateScore } from "./record-metric-
|
|
4
|
-
import {
|
|
5
|
-
import { i as isReactDoctorWorkflowInstalled } from "./install-github-workflow-
|
|
6
|
-
import { r as resolveScope, s as resolveBlockingLevel, t as finalizeScope, u as toForwardSlashes } from "./resolve-scope-
|
|
7
|
-
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-
|
|
8
|
-
import { a as recordGate, f as ONBOARDING_EVENT, n as openUrl, r as isGatePending } from "./report-workflow-result-
|
|
9
|
-
import { a as useExitOnCtrlC, c as Spinner, d as useInput, f as Transform, h as Box, i as import_react, l as useStdout, m as Text, n as registerMountedTuiRenderer, o as terminalSymbols, p as render, r as useStdoutDimensions, s as isPrintableInput, t as require_jsx_runtime, u as useApp } from "./jsx-runtime-
|
|
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]="fb75a5a2-1e10-5b95-9a5c-a6362ea44b86")}catch(e){}}();
|
|
3
|
+
import { Bn as sync, Bt as getDiffInfo, C as CI_TRUST_COMPANIES, G as isCiEnvironment, Hn as void_, Jt as isPathInsideDirectory, Kn as succeed, Kt as highlighter, L as TUI_REPORT_COMPACT_MAX_ROWS, Lt as getBaselineDiffPlan, R as TUI_REPORT_DETAIL_WIDTH_FRACTION, Rn as runPromise, Rt as getChangedLineRanges, T as METRIC, Ut as hasPublishedFixRecipe, V as isGitHookEnvironment, ar as DIAGNOSTIC_CATEGORY_BUCKETS, at as Progress, cr as GITHUB_ACTIONS_SETUP_URL, fn as resolveScanTarget, gt as buildRuleDocsUrl, in as mapWithConcurrency, n as recordDistribution, sn as remainingDeadlineBudgetMs, st as Reporter, t as recordCount, vr as getCategoryImpact, xn as yieldToEventLoop, yt as calculateScore } from "./record-metric-o3jPUAlb.js";
|
|
4
|
+
import { M as cliLogger, n as findNearestPackageDirectory } from "./install-doctor-script-DYCVafXv.js";
|
|
5
|
+
import { i as isReactDoctorWorkflowInstalled } from "./install-github-workflow-B1RVnChC.js";
|
|
6
|
+
import { r as resolveScope, s as resolveBlockingLevel, t as finalizeScope, u as toForwardSlashes } from "./resolve-scope-BqQ7bkS9.js";
|
|
7
|
+
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-BoSm_UbG.js";
|
|
8
|
+
import { a as recordGate, f as ONBOARDING_EVENT, n as openUrl, r as isGatePending } from "./report-workflow-result-DtNumNBo.js";
|
|
9
|
+
import { a as useExitOnCtrlC, c as Spinner, d as useInput, f as Transform, h as Box, i as import_react, l as useStdout, m as Text, n as registerMountedTuiRenderer, o as terminalSymbols, p as render, r as useStdoutDimensions, s as isPrintableInput, t as require_jsx_runtime, u as useApp } from "./jsx-runtime-DA_1Hma_.js";
|
|
10
10
|
import path from "node:path";
|
|
11
11
|
import { performance } from "node:perf_hooks";
|
|
12
|
+
import isUnicodeSupported from "is-unicode-supported";
|
|
12
13
|
import { getSkillAgentConfig } from "agent-install";
|
|
13
14
|
//#region src/cli/utils/get-top-error-rule-keys.ts
|
|
14
15
|
const getTopErrorRuleKeys = (diagnostics, limit, rulePriority) => new Set(buildSortedRuleGroups(diagnostics.filter((diagnostic) => diagnostic.severity === "error"), rulePriority).slice(0, limit).map(([ruleKey]) => ruleKey));
|
|
@@ -2041,14 +2042,14 @@ const qualifyDiagnosticPaths = (diagnostics, rootDirectory, projectDirectory) =>
|
|
|
2041
2042
|
filePath: toForwardSlashes(path.join(prefix, diagnostic.filePath))
|
|
2042
2043
|
});
|
|
2043
2044
|
};
|
|
2044
|
-
const resolveScanPresentation = (input, projectScans) => {
|
|
2045
|
+
const resolveScanPresentation = (input, projectScans, rootDirectory) => {
|
|
2045
2046
|
const isScoreDisabled = input.options?.noScore === true || projectScans.some((projectScan) => projectScan.config?.noScore === true);
|
|
2046
2047
|
return {
|
|
2047
2048
|
isOffline: isCiEnvironment() || input.share === false || isShareOptedOut(projectScans, input.options?.noScore),
|
|
2048
2049
|
initialProgress: projectScans.length > 1 ? "Indexing workspace files…" : "Scanning project…",
|
|
2049
2050
|
noScoreMessage: buildNoScoreMessage({ isScoreDisabled }),
|
|
2050
2051
|
outputDirectory: input.options?.outputDirectory,
|
|
2051
|
-
shouldRecommendCi:
|
|
2052
|
+
shouldRecommendCi: isCiUnconfigured(rootDirectory),
|
|
2052
2053
|
verbose: input.options?.verbose === true
|
|
2053
2054
|
};
|
|
2054
2055
|
};
|
|
@@ -2223,6 +2224,7 @@ const runMountedScan = async (rootDirectory, presentation, blockingLevel, execut
|
|
|
2223
2224
|
const completedScan = await executeScan(context);
|
|
2224
2225
|
mountedRenderer.dispose();
|
|
2225
2226
|
mountedRenderer = mountRenderer("report");
|
|
2227
|
+
if (presentation.shouldRecommendCi) recordCount(METRIC.tuiCiRecommendationShown);
|
|
2226
2228
|
await mountedRenderer.instance.waitUntilExit();
|
|
2227
2229
|
mountedRenderer.dispose();
|
|
2228
2230
|
if (presentation.outputDirectory !== void 0 || presentation.verbose) await runPromise(printDiagnosticsDump([...completedScan.diagnostics], presentation.outputDirectory, presentation.verbose));
|
|
@@ -2259,7 +2261,7 @@ const runSingleProjectScan = async (rootScanTarget, projectDirectory, input, sco
|
|
|
2259
2261
|
process.stdout.write("No changed source files in the selected project.\n");
|
|
2260
2262
|
return { shouldFail: false };
|
|
2261
2263
|
}
|
|
2262
|
-
const presentation = resolveScanPresentation(input, [projectScan]);
|
|
2264
|
+
const presentation = resolveScanPresentation(input, [projectScan], rootScanTarget.resolvedDirectory);
|
|
2263
2265
|
return runMountedScan(projectScan.directory, presentation, blockingLevel, async (context) => {
|
|
2264
2266
|
const result = await inspectProject(projectScan.directory, {
|
|
2265
2267
|
...resolveTuiInspectOptions(input, projectScan.config),
|
|
@@ -2341,7 +2343,7 @@ const runMultiProjectScan = async (rootScanTarget, directories, input, scopePlan
|
|
|
2341
2343
|
isRootDeadCodeEnabled: input.options?.deadCode ?? rootProjectScan?.config?.deadCode ?? true
|
|
2342
2344
|
});
|
|
2343
2345
|
if (workspaceDeadCodeOwner !== null) recordCount(METRIC.scanWorkspaceMaintainabilityShared, 1, { projectCount: discoveredProjectScans.length });
|
|
2344
|
-
return runMountedScan(rootDirectory, resolveScanPresentation(input, projectScans.map(({ projectScan }) => projectScan)), blockingLevel, async (context) => {
|
|
2346
|
+
return runMountedScan(rootDirectory, resolveScanPresentation(input, projectScans.map(({ projectScan }) => projectScan), rootDirectory), blockingLevel, async (context) => {
|
|
2345
2347
|
const startTime = performance.now();
|
|
2346
2348
|
let finishedCount = 0;
|
|
2347
2349
|
recordDistribution(METRIC.scanFeedbackDelay, performance.now() - feedbackStartTime, {
|
|
@@ -2504,5 +2506,5 @@ const runScanApp = async (input) => {
|
|
|
2504
2506
|
//#endregion
|
|
2505
2507
|
export { runScanApp };
|
|
2506
2508
|
|
|
2507
|
-
//# sourceMappingURL=run-scan-app-
|
|
2508
|
-
//# debugId=
|
|
2509
|
+
//# sourceMappingURL=run-scan-app-5nFtP_Q2.js.map
|
|
2510
|
+
//# debugId=fb75a5a2-1e10-5b95-9a5c-a6362ea44b86
|
|
@@ -1,11 +1,11 @@
|
|
|
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 { Kt as highlighter, T as METRIC, t as recordCount, u as enableJsonMode, z as CliInputError } 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]="cdc97f85-1707-507e-a6f3-d8a2e0bd4a4e")}catch(e){}}();
|
|
3
|
+
import { Kt as highlighter, T as METRIC, t as recordCount, u as enableJsonMode, z as CliInputError } from "./record-metric-o3jPUAlb.js";
|
|
4
4
|
import { t as activeScanAbortRegistry } from "./active-scan-abort-registry-DwG6tSPy.js";
|
|
5
|
-
import { t as reportErrorToSentry } from "./report-error-
|
|
6
|
-
import { n as resetSentryRunState, r as withRunSpan } from "./with-run-span-
|
|
7
|
-
import { _ as RUNTIME_SCAN_SNAPSHOT_TIMEOUT_MS, b as RUNTIME_SCAN_TRACING_COMPLETE_TIMEOUT_MS, f as RUNTIME_SCAN_PROBE_RELATIVE_PATH, g as RUNTIME_SCAN_SAFE_CDP_PAGE_URLS, h as RUNTIME_SCAN_PROBE_SNAPSHOT_TOKEN_PLACEHOLDER, l as RUNTIME_SCAN_MAX_SNAPSHOT_PAYLOAD_BYTES, m as RUNTIME_SCAN_PROBE_SNAPSHOT_BINDING_NAME_PLACEHOLDER, n as RUNTIME_SCAN_BROWSER_WIDTH_PX, o as RUNTIME_SCAN_MAX_COMPONENT_EVENTS, p as RUNTIME_SCAN_PROBE_SNAPSHOT_ATTRIBUTE_NAME_PLACEHOLDER, r as RUNTIME_SCAN_CONTROL_CHARACTERS_PATTERN, s as RUNTIME_SCAN_MAX_RECORDING_DURATION_MS, t as sanitizeRuntimeUrl, v as RUNTIME_SCAN_TRACE_CATEGORIES, y as RUNTIME_SCAN_TRACE_FILE_EXTENSION } from "./sanitize-runtime-url-
|
|
8
|
-
import { r as resolveTuiEnvironment, t as isTuiEnvironmentSupported } from "./should-use-tui-
|
|
5
|
+
import { t as reportErrorToSentry } from "./report-error-Q2foihSQ.js";
|
|
6
|
+
import { n as resetSentryRunState, r as withRunSpan } from "./with-run-span-DId1q6s-.js";
|
|
7
|
+
import { _ as RUNTIME_SCAN_SNAPSHOT_TIMEOUT_MS, b as RUNTIME_SCAN_TRACING_COMPLETE_TIMEOUT_MS, f as RUNTIME_SCAN_PROBE_RELATIVE_PATH, g as RUNTIME_SCAN_SAFE_CDP_PAGE_URLS, h as RUNTIME_SCAN_PROBE_SNAPSHOT_TOKEN_PLACEHOLDER, l as RUNTIME_SCAN_MAX_SNAPSHOT_PAYLOAD_BYTES, m as RUNTIME_SCAN_PROBE_SNAPSHOT_BINDING_NAME_PLACEHOLDER, n as RUNTIME_SCAN_BROWSER_WIDTH_PX, o as RUNTIME_SCAN_MAX_COMPONENT_EVENTS, p as RUNTIME_SCAN_PROBE_SNAPSHOT_ATTRIBUTE_NAME_PLACEHOLDER, r as RUNTIME_SCAN_CONTROL_CHARACTERS_PATTERN, s as RUNTIME_SCAN_MAX_RECORDING_DURATION_MS, t as sanitizeRuntimeUrl, v as RUNTIME_SCAN_TRACE_CATEGORIES, y as RUNTIME_SCAN_TRACE_FILE_EXTENSION } from "./sanitize-runtime-url-BXPjEywk.js";
|
|
8
|
+
import { r as resolveTuiEnvironment, t as isTuiEnvironmentSupported } from "./should-use-tui-Ce7rumUG.js";
|
|
9
9
|
import * as path$1 from "node:path";
|
|
10
10
|
import * as fs$1 from "node:fs";
|
|
11
11
|
import { randomUUID } from "node:crypto";
|
|
@@ -719,7 +719,7 @@ const resolveRuntimeScanUrl = async (url) => {
|
|
|
719
719
|
if (url !== void 0) return url;
|
|
720
720
|
if (!isTuiEnvironmentSupported(resolveTuiEnvironment(process.stderr.isTTY === true))) throw new CliInputError("A URL is required outside an interactive terminal. Run `react-doctor scan <url>`.");
|
|
721
721
|
recordCount(METRIC.runtimeScanUrlPromptShown);
|
|
722
|
-
const { promptRuntimeScanUrl } = await import("./prompt-runtime-scan-url-
|
|
722
|
+
const { promptRuntimeScanUrl } = await import("./prompt-runtime-scan-url-D-VxJdEV.js");
|
|
723
723
|
return promptRuntimeScanUrl();
|
|
724
724
|
};
|
|
725
725
|
const runtimeScanAction = async (url, flags) => {
|
|
@@ -766,5 +766,5 @@ const runtimeScanAction = async (url, flags) => {
|
|
|
766
766
|
//#endregion
|
|
767
767
|
export { runtimeScanAction };
|
|
768
768
|
|
|
769
|
-
//# sourceMappingURL=runtime-scan-
|
|
770
|
-
//# debugId=
|
|
769
|
+
//# sourceMappingURL=runtime-scan-DS3bDIZw.js.map
|
|
770
|
+
//# debugId=cdc97f85-1707-507e-a6f3-d8a2e0bd4a4e
|
|
@@ -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 { z as CliInputError } 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]="819ce67a-c622-525d-b027-1662ae3dce77")}catch(e){}}();
|
|
3
|
+
import { z as CliInputError } from "./record-metric-o3jPUAlb.js";
|
|
4
4
|
//#region src/cli/runtime-scan/constants.ts
|
|
5
5
|
const RUNTIME_SCAN_MAX_COMPONENT_EVENTS = 2e3;
|
|
6
6
|
const RUNTIME_SCAN_MAX_SNAPSHOT_PAYLOAD_BYTES = 5 * 1024 * 1024;
|
|
@@ -72,5 +72,5 @@ const sanitizeRuntimeUrl = (rawUrl) => {
|
|
|
72
72
|
//#endregion
|
|
73
73
|
export { RUNTIME_SCAN_SNAPSHOT_TIMEOUT_MS as _, RUNTIME_SCAN_LOCAL_DEV_PORTS as a, RUNTIME_SCAN_TRACING_COMPLETE_TIMEOUT_MS as b, RUNTIME_SCAN_MAX_SNAPSHOT_BYTES as c, RUNTIME_SCAN_MAX_TRACE_BYTES as d, RUNTIME_SCAN_PROBE_RELATIVE_PATH as f, RUNTIME_SCAN_SAFE_CDP_PAGE_URLS as g, RUNTIME_SCAN_PROBE_SNAPSHOT_TOKEN_PLACEHOLDER as h, RUNTIME_SCAN_LAYOUT_THRASH_RATIO as i, RUNTIME_SCAN_MAX_SNAPSHOT_PAYLOAD_BYTES as l, RUNTIME_SCAN_PROBE_SNAPSHOT_BINDING_NAME_PLACEHOLDER as m, RUNTIME_SCAN_BROWSER_WIDTH_PX as n, RUNTIME_SCAN_MAX_COMPONENT_EVENTS as o, RUNTIME_SCAN_PROBE_SNAPSHOT_ATTRIBUTE_NAME_PLACEHOLDER as p, RUNTIME_SCAN_CONTROL_CHARACTERS_PATTERN as r, RUNTIME_SCAN_MAX_RECORDING_DURATION_MS as s, sanitizeRuntimeUrl as t, RUNTIME_SCAN_MAX_STRING_LENGTH as u, RUNTIME_SCAN_TRACE_CATEGORIES as v, RUNTIME_SCAN_TRACE_FILE_EXTENSION as y };
|
|
74
74
|
|
|
75
|
-
//# sourceMappingURL=sanitize-runtime-url-
|
|
76
|
-
//# debugId=
|
|
75
|
+
//# sourceMappingURL=sanitize-runtime-url-BXPjEywk.js.map
|
|
76
|
+
//# debugId=819ce67a-c622-525d-b027-1662ae3dce77
|
|
@@ -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 { T as METRIC, fn as resolveScanTarget, t as recordCount } 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-
|
|
7
|
-
import { n as shouldUseTui, r as resolveTuiEnvironment } from "./should-use-tui-
|
|
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]="592d3638-19ed-5a94-b1ad-3606ed046966")}catch(e){}}();
|
|
3
|
+
import { T as METRIC, fn as resolveScanTarget, t as recordCount } from "./record-metric-o3jPUAlb.js";
|
|
4
|
+
import { i as warnDeprecatedDiff } from "./resolve-scope-BqQ7bkS9.js";
|
|
5
|
+
import { _ as resolveCliInspectOptions, i as validateModeFlags } from "./should-fail-scan-gate-BoSm_UbG.js";
|
|
6
|
+
import { n as warnDeprecatedFailOn, r as runProjectMigrations, t as inspectAction } from "./inspect-npBX73XH.js";
|
|
7
|
+
import { n as shouldUseTui, r as resolveTuiEnvironment } from "./should-use-tui-Ce7rumUG.js";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
//#region src/cli/commands/scan.ts
|
|
10
10
|
const runScanCommand = async (input) => {
|
|
@@ -22,7 +22,7 @@ const runScanCommand = async (input) => {
|
|
|
22
22
|
warnDeprecatedFailOn(input.flags, scanTarget.userConfig);
|
|
23
23
|
warnDeprecatedDiff(input.flags, scanTarget.userConfig);
|
|
24
24
|
recordCount(METRIC.cliInvoked, 1, { command: input.invocationCommand });
|
|
25
|
-
const { runScanApp } = await import("./run-scan-app-
|
|
25
|
+
const { runScanApp } = await import("./run-scan-app-5nFtP_Q2.js");
|
|
26
26
|
const { shouldFail } = await runScanApp({
|
|
27
27
|
directory: input.directory,
|
|
28
28
|
scanTarget,
|
|
@@ -37,5 +37,5 @@ const runScanCommand = async (input) => {
|
|
|
37
37
|
//#endregion
|
|
38
38
|
export { runScanCommand };
|
|
39
39
|
|
|
40
|
-
//# sourceMappingURL=scan-
|
|
41
|
-
//# debugId=
|
|
40
|
+
//# sourceMappingURL=scan-BsE9Z2jI.js.map
|
|
41
|
+
//# debugId=592d3638-19ed-5a94-b1ad-3606ed046966
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import { $ as Linter, A as SCAN_RESULT_CACHE_FILENAME, An as gen, At as discoverSupportedSubprojects, B as isNonInteractiveEnvironment, Bn as sync, Cn as error, Ct as collectSourceFileCountsByDirectory, Dn as Diagnostic, Dt as createNodeReadFileLinesSync, En as warn, Et as countOptInProjectRuleSelections, Fn as provide, G as isCiEnvironment, Gt as hashFileContents, Ht as groupBy, In as provideContext, J as Config, Jt as isPathInsideDirectory, K as isCiOrCodingAgentEnvironment, Kn as succeed, Kt as highlighter, Ln as provideService, Mn as map, Mt as filterPathsOutsideDirectories, Nn as orElseSucceed, Nt as filterSourceFiles, On as decodeUnknownSync, Ot as createOxlintSpawnSlots, Pn as promise, Q as LintPartialFailures, Qt as isScanComplete, Rn as runPromise, S as BASELINE_FILES_TEMP_DIR_PREFIX, Sn as Console, T as METRIC, Tn as log, Tt as computeDiagnosticDelta, U as ACTION_INPUT_ENVIRONMENT_VARIABLES, Ut as hasPublishedFixRecipe, Vn as try_, W as detectRunnerOs, Wn as mergeAll, X as Git, Xt as isReactDoctorError, Y as Files, Zn as ParentSpan, _ as VERSION, _n as shouldUseMaintainabilityLayer, _t as buildRuleSeverityControls, an as materializeSourceTree, ar as DIAGNOSTIC_CATEGORY_BUCKETS, at as Progress, bt as canonicalizeUserRuleKey, cn as resolveGithubActionsScoreMetadata, ct as Score, d as isJsonModeActive, dn as resolveScanConcurrency, dr as JSX_DUPLICATION_SOURCE_FILE_PATTERN, dt as SupplyChain, en as listSourceFiles, et as Maintainability, fn as resolveScanTarget, fr as JSX_FILE_PATTERN, gt as buildRuleDocsUrl, hr as SHARE_BASE_URL, in as mapWithConcurrency, it as PerFileLintCacheEnabled, jt as filterDiagnosticsForSurface, l as getRunId, ln as resolveLintBatchOrdering, lr as GIT_SHOW_MAX_BUFFER_BYTES, lt as SidecarLintCacheEnabled, mn as runInspect, mr as OXLINT_NODE_REQUIREMENT, mt as atomicWriteJson, n as recordDistribution, nn as listWorkspacePackages, nt as OxlintConcurrency, on as mergeReactDoctorConfigs, ot as Project, pn as restoreLegacyThrow, pr as MILLISECONDS_PER_SECOND, qt as isMonorepoRoot, r as toSpanAttributes, rt as OxlintSpawnSlots, sn as remainingDeadlineBudgetMs, sr as ENTERPRISE_CONTACT_URL, st as Reporter, t as recordCount, tn as listSourceFilesCooperative, tr as CI_URL, tt as NodeResolver, un as resolveReactDoctorCacheDir, ur as HTML_FILE_PATTERN, v as makeNoopConsole, vn as summarizeDiagnostics, vt as buildSkippedChecks, wt as computeConfigFingerprint, xn as yieldToEventLoop, xr as isFile, xt as classifyFileContext, yr as isDirectory, yt as calculateScore, z as CliInputError, zn as runSync, zt as getDiagnosticRuleIdentity } from "./record-metric-
|
|
4
|
-
import { t as getTelemetryContext } from "./telemetry-runtime-
|
|
5
|
-
import { n as buildFooterLinkLines, t as buildSectionDivider } from "./build-section-divider-
|
|
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]="0502cb6f-aa7f-5a91-96d1-c7a5eb0ef463")}catch(e){}}();
|
|
3
|
+
import { $ as Linter, A as SCAN_RESULT_CACHE_FILENAME, An as gen, At as discoverSupportedSubprojects, B as isNonInteractiveEnvironment, Bn as sync, Cn as error, Ct as collectSourceFileCountsByDirectory, Dn as Diagnostic, Dt as createNodeReadFileLinesSync, En as warn, Et as countOptInProjectRuleSelections, Fn as provide, G as isCiEnvironment, Gt as hashFileContents, Ht as groupBy, In as provideContext, J as Config, Jt as isPathInsideDirectory, K as isCiOrCodingAgentEnvironment, Kn as succeed, Kt as highlighter, Ln as provideService, Mn as map, Mt as filterPathsOutsideDirectories, Nn as orElseSucceed, Nt as filterSourceFiles, On as decodeUnknownSync, Ot as createOxlintSpawnSlots, Pn as promise, Q as LintPartialFailures, Qt as isScanComplete, Rn as runPromise, S as BASELINE_FILES_TEMP_DIR_PREFIX, Sn as Console, T as METRIC, Tn as log, Tt as computeDiagnosticDelta, U as ACTION_INPUT_ENVIRONMENT_VARIABLES, Ut as hasPublishedFixRecipe, Vn as try_, W as detectRunnerOs, Wn as mergeAll, X as Git, Xt as isReactDoctorError, Y as Files, Zn as ParentSpan, _ as VERSION, _n as shouldUseMaintainabilityLayer, _t as buildRuleSeverityControls, an as materializeSourceTree, ar as DIAGNOSTIC_CATEGORY_BUCKETS, at as Progress, bt as canonicalizeUserRuleKey, cn as resolveGithubActionsScoreMetadata, ct as Score, d as isJsonModeActive, dn as resolveScanConcurrency, dr as JSX_DUPLICATION_SOURCE_FILE_PATTERN, dt as SupplyChain, en as listSourceFiles, et as Maintainability, fn as resolveScanTarget, fr as JSX_FILE_PATTERN, gt as buildRuleDocsUrl, hr as SHARE_BASE_URL, in as mapWithConcurrency, it as PerFileLintCacheEnabled, jt as filterDiagnosticsForSurface, l as getRunId, ln as resolveLintBatchOrdering, lr as GIT_SHOW_MAX_BUFFER_BYTES, lt as SidecarLintCacheEnabled, mn as runInspect, mr as OXLINT_NODE_REQUIREMENT, mt as atomicWriteJson, n as recordDistribution, nn as listWorkspacePackages, nt as OxlintConcurrency, on as mergeReactDoctorConfigs, ot as Project, pn as restoreLegacyThrow, pr as MILLISECONDS_PER_SECOND, qt as isMonorepoRoot, r as toSpanAttributes, rt as OxlintSpawnSlots, sn as remainingDeadlineBudgetMs, sr as ENTERPRISE_CONTACT_URL, st as Reporter, t as recordCount, tn as listSourceFilesCooperative, tr as CI_URL, tt as NodeResolver, un as resolveReactDoctorCacheDir, ur as HTML_FILE_PATTERN, v as makeNoopConsole, vn as summarizeDiagnostics, vt as buildSkippedChecks, wt as computeConfigFingerprint, xn as yieldToEventLoop, xr as isFile, xt as classifyFileContext, yr as isDirectory, yt as calculateScore, z as CliInputError, zn as runSync, zt as getDiagnosticRuleIdentity } from "./record-metric-o3jPUAlb.js";
|
|
4
|
+
import { t as getTelemetryContext } from "./telemetry-runtime-B7w82_85.js";
|
|
5
|
+
import { n as buildFooterLinkLines, t as buildSectionDivider } from "./build-section-divider-DSn_mPgb.js";
|
|
6
6
|
import { t as activeScanAbortRegistry } from "./active-scan-abort-registry-DwG6tSPy.js";
|
|
7
|
-
import {
|
|
8
|
-
import { d as detectDefaultBranch, l as prompts, r as installReactDoctorWorkflow, u as isCommandAvailable } from "./install-github-workflow-
|
|
9
|
-
import { a as isValidBlockingLevel, c as openWorkflowPullRequest, l as stageWorkflowFile, o as pickBlockingLevel, u as toForwardSlashes } from "./resolve-scope-
|
|
10
|
-
import { n as resetSentryRunState, r as withRunSpan, t as recordSentryProjectContext } from "./with-run-span-
|
|
11
|
-
import { h as detectAvailableAgents, t as reportWorkflowResult } from "./report-workflow-result-
|
|
7
|
+
import { C as isRecord, M as cliLogger, S as getPackageJsonPath, a as installReactDoctorScriptStep, c as spinner, k as runGit, n as findNearestPackageDirectory, o as isSpinnerSilent, s as setSpinnerSilent } from "./install-doctor-script-DYCVafXv.js";
|
|
8
|
+
import { d as detectDefaultBranch, l as prompts, r as installReactDoctorWorkflow, u as isCommandAvailable } from "./install-github-workflow-B1RVnChC.js";
|
|
9
|
+
import { a as isValidBlockingLevel, c as openWorkflowPullRequest, l as stageWorkflowFile, o as pickBlockingLevel, u as toForwardSlashes } from "./resolve-scope-BqQ7bkS9.js";
|
|
10
|
+
import { n as resetSentryRunState, r as withRunSpan, t as recordSentryProjectContext } from "./with-run-span-DId1q6s-.js";
|
|
11
|
+
import { h as detectAvailableAgents, t as reportWorkflowResult } from "./report-workflow-result-DtNumNBo.js";
|
|
12
12
|
import { createRequire } from "node:module";
|
|
13
13
|
import { spawn } from "node:child_process";
|
|
14
14
|
import * as path$1 from "node:path";
|
|
@@ -2997,5 +2997,5 @@ const shouldFailScanGate = (input) => {
|
|
|
2997
2997
|
//#endregion
|
|
2998
2998
|
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 };
|
|
2999
2999
|
|
|
3000
|
-
//# sourceMappingURL=should-fail-scan-gate-
|
|
3001
|
-
//# debugId=
|
|
3000
|
+
//# sourceMappingURL=should-fail-scan-gate-BoSm_UbG.js.map
|
|
3001
|
+
//# debugId=0502cb6f-aa7f-5a91-96d1-c7a5eb0ef463
|
|
@@ -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 { B 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]="95423541-aa23-59f8-a6bb-ca00197103f7")}catch(e){}}();
|
|
3
|
+
import { B as isNonInteractiveEnvironment } from "./record-metric-o3jPUAlb.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-DFGKV3BW.js.map
|
|
10
|
+
//# debugId=95423541-aa23-59f8-a6bb-ca00197103f7
|
|
@@ -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 { B 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]="bd9ef892-a3a0-5554-835c-b1190518ee90")}catch(e){}}();
|
|
3
|
+
import { B as isNonInteractiveEnvironment } from "./record-metric-o3jPUAlb.js";
|
|
4
4
|
//#region src/cli/utils/resolve-tui-environment.ts
|
|
5
5
|
const resolveTuiEnvironment = (outputIsTty = process.stdout.isTTY === true) => ({
|
|
6
6
|
isNonInteractiveEnvironment: isNonInteractiveEnvironment(),
|
|
@@ -21,5 +21,5 @@ const shouldUseTui = (input) => {
|
|
|
21
21
|
//#endregion
|
|
22
22
|
export { shouldUseTui as n, resolveTuiEnvironment as r, isTuiEnvironmentSupported as t };
|
|
23
23
|
|
|
24
|
-
//# sourceMappingURL=should-use-tui-
|
|
25
|
-
//# debugId=
|
|
24
|
+
//# sourceMappingURL=should-use-tui-Ce7rumUG.js.map
|
|
25
|
+
//# debugId=bd9ef892-a3a0-5554-835c-b1190518ee90
|
|
@@ -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 layerObservability, Cr as messageFromUnknown, Jn as makeUnsafe, Rn as runPromise, Un as buildWithScope, Xn as void_, Xt as isReactDoctorError, Yt as isProjectDiscoveryError, _ as VERSION, br as isErrnoException, i as isTelemetryEnabled, kn as make, qn as close, z as CliInputError, zn as runSync } 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]="dea30d78-c1f8-5651-aa76-0fedb7734134")}catch(e){}}();
|
|
3
|
+
import { $t as layerObservability, Cr as messageFromUnknown, Jn as makeUnsafe, Rn as runPromise, Un as buildWithScope, Xn as void_, Xt as isReactDoctorError, Yt as isProjectDiscoveryError, _ as VERSION, br as isErrnoException, i as isTelemetryEnabled, kn as make, qn as close, z as CliInputError, zn as runSync } from "./record-metric-o3jPUAlb.js";
|
|
4
4
|
//#region src/cli/utils/is-environment-error.ts
|
|
5
5
|
const ENVIRONMENT_ERROR_CODES = new Set([
|
|
6
6
|
"EACCES",
|
|
@@ -61,6 +61,51 @@ const formatEnvironmentError = (error) => {
|
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
63
|
//#endregion
|
|
64
|
+
//#region src/cli/utils/is-npm-cache-corruption-error.ts
|
|
65
|
+
const MISSING_AJV_META_SCHEMA_MESSAGES = new Set(["Cannot find module './meta/unevaluated.json'", "Cannot find module './meta/validation.json'"]);
|
|
66
|
+
const NPX_AJV_META_SCHEMA_REQUIRE_PATH_PATTERN = /(?:^|\/)_npx\/(?<cacheKey>[a-f0-9]{16})\/node_modules\/ajv\/dist\/refs\/json-schema-2020-12\/index\.js$/;
|
|
67
|
+
const isModuleNotFoundError = (error) => error instanceof Error && "code" in error && error.code === "MODULE_NOT_FOUND";
|
|
68
|
+
const findNpmCacheCorruptionError = (error) => {
|
|
69
|
+
const pendingErrors = [error];
|
|
70
|
+
const visitedErrors = /* @__PURE__ */ new Set();
|
|
71
|
+
while (pendingErrors.length > 0) {
|
|
72
|
+
const currentError = pendingErrors.pop();
|
|
73
|
+
if (typeof currentError !== "object" || currentError === null) continue;
|
|
74
|
+
if (visitedErrors.has(currentError)) continue;
|
|
75
|
+
visitedErrors.add(currentError);
|
|
76
|
+
if (isModuleNotFoundError(currentError)) {
|
|
77
|
+
const [message] = currentError.message.split("\n");
|
|
78
|
+
if (message && MISSING_AJV_META_SCHEMA_MESSAGES.has(message)) {
|
|
79
|
+
const requireStack = Array.isArray(currentError.requireStack) ? currentError.requireStack : [];
|
|
80
|
+
for (const requirePath of requireStack) {
|
|
81
|
+
if (typeof requirePath !== "string") continue;
|
|
82
|
+
const cacheKey = requirePath.replaceAll("\\", "/").match(NPX_AJV_META_SCHEMA_REQUIRE_PATH_PATTERN)?.groups?.cacheKey;
|
|
83
|
+
if (cacheKey !== void 0) return {
|
|
84
|
+
cacheKey,
|
|
85
|
+
moduleNotFoundError: currentError
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (currentError instanceof Error && currentError.cause !== void 0) pendingErrors.push(currentError.cause);
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
};
|
|
94
|
+
const isNpmCacheCorruptionError = (error) => findNpmCacheCorruptionError(error) !== null;
|
|
95
|
+
const formatNpmCacheCorruptionError = (error) => {
|
|
96
|
+
const corruptionMatch = findNpmCacheCorruptionError(error);
|
|
97
|
+
if (!corruptionMatch) return messageFromUnknown(error);
|
|
98
|
+
return [
|
|
99
|
+
"The npx cache has an incomplete Ajv installation.",
|
|
100
|
+
"",
|
|
101
|
+
"Remove this cache entry, then run React Doctor again:",
|
|
102
|
+
` npm cache npx rm ${corruptionMatch.cacheKey}`,
|
|
103
|
+
" npx react-doctor@latest",
|
|
104
|
+
"",
|
|
105
|
+
`Original error: ${corruptionMatch.moduleNotFoundError.message}`
|
|
106
|
+
].join("\n");
|
|
107
|
+
};
|
|
108
|
+
//#endregion
|
|
64
109
|
//#region src/cli/utils/is-expected-user-error.ts
|
|
65
110
|
/**
|
|
66
111
|
* Whether `error` is an expected, user-actionable failure — the user's project
|
|
@@ -69,7 +114,7 @@ const formatEnvironmentError = (error) => {
|
|
|
69
114
|
* `handleUserError` (a plain message — no "Something went wrong", prefilled
|
|
70
115
|
* issue, Discord link, or Sentry reference), since there is no bug to report.
|
|
71
116
|
*
|
|
72
|
-
*
|
|
117
|
+
* Five distinct shapes reach the CLI's catch blocks:
|
|
73
118
|
*
|
|
74
119
|
* - **Project-discovery failures** (`NoReactDependencyError`,
|
|
75
120
|
* `ProjectNotFoundError`, `PackageJsonNotFoundError`, `NotADirectoryError`,
|
|
@@ -89,12 +134,15 @@ const formatEnvironmentError = (error) => {
|
|
|
89
134
|
* actionable message instead of crashing. See `is-environment-error.ts` for
|
|
90
135
|
* why the set stays narrow (codes that usually mean our bug keep reaching
|
|
91
136
|
* Sentry).
|
|
137
|
+
* - **npm cache corruption** (missing Ajv meta-schema files inside `_npx`) —
|
|
138
|
+
* an incomplete npx package installation that the user can remove and
|
|
139
|
+
* reinstall.
|
|
92
140
|
*
|
|
93
141
|
* This composes the existing core narrowers rather than introducing a new
|
|
94
142
|
* error-shape helper (AGENTS.md): it encodes CLI-layer reporting policy, not
|
|
95
143
|
* knowledge of the `ReactDoctorError` shape.
|
|
96
144
|
*/
|
|
97
|
-
const isExpectedUserError = (error) => error instanceof CliInputError || isProjectDiscoveryError(error) || isEnvironmentError(error) || isReactDoctorError(error) && (error.reason._tag === "GitBaseBranchInvalid" || error.reason._tag === "GitBaseBranchMissing");
|
|
145
|
+
const isExpectedUserError = (error) => error instanceof CliInputError || isProjectDiscoveryError(error) || isEnvironmentError(error) || isNpmCacheCorruptionError(error) || isReactDoctorError(error) && (error.reason._tag === "GitBaseBranchInvalid" || error.reason._tag === "GitBaseBranchMissing");
|
|
98
146
|
//#endregion
|
|
99
147
|
//#region src/cli/utils/resolve-axiom-telemetry-options.ts
|
|
100
148
|
/**
|
|
@@ -197,7 +245,7 @@ const shutdownTelemetry = async () => {
|
|
|
197
245
|
return pendingShutdown;
|
|
198
246
|
};
|
|
199
247
|
//#endregion
|
|
200
|
-
export {
|
|
248
|
+
export { isNpmCacheCorruptionError as a, formatNpmCacheCorruptionError as i, shutdownTelemetry as n, formatEnvironmentError as o, isExpectedUserError as r, isEnvironmentError as s, getTelemetryContext as t };
|
|
201
249
|
|
|
202
|
-
//# sourceMappingURL=telemetry-runtime-
|
|
203
|
-
//# debugId=
|
|
250
|
+
//# sourceMappingURL=telemetry-runtime-B7w82_85.js.map
|
|
251
|
+
//# debugId=dea30d78-c1f8-5651-aa76-0fedb7734134
|
|
@@ -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 METRIC, _ as VERSION, t as recordCount } 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]="cb1e379a-caa5-5d07-ac99-df1c775bb697")}catch(e){}}();
|
|
3
|
+
import { T as METRIC, _ as VERSION, t as recordCount } from "./record-metric-o3jPUAlb.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-nwFNPzMN.js.map
|
|
21
|
+
//# debugId=cb1e379a-caa5-5d07-ac99-df1c775bb697
|
|
@@ -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]="e762ca62-803e-5323-87b9-f50b80a36cac")}catch(e){}}();
|
|
3
|
+
import { t as inspectAction } from "./inspect-npBX73XH.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-xMM2hBwY.js.map
|
|
21
|
+
//# debugId=e762ca62-803e-5323-87b9-f50b80a36cac
|
|
@@ -1,7 +1,7 @@
|
|
|
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 { D as NANOSECONDS_PER_MILLISECOND, In as provideContext, Xn as void_, Yn as fail, c as setSentryProjectInfo, jn as makeSpan, o as buildSentryScope, r as toSpanAttributes, s as buildSentryProjectContext, zn as runSync } from "./record-metric-
|
|
4
|
-
import { t as getTelemetryContext } from "./telemetry-runtime-
|
|
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]="3f40a220-5a39-5a4b-a6c1-55a073246d58")}catch(e){}}();
|
|
3
|
+
import { D as NANOSECONDS_PER_MILLISECOND, In as provideContext, Xn as void_, Yn as fail, c as setSentryProjectInfo, jn as makeSpan, o as buildSentryScope, r as toSpanAttributes, s as buildSentryProjectContext, zn as runSync } from "./record-metric-o3jPUAlb.js";
|
|
4
|
+
import { t as getTelemetryContext } from "./telemetry-runtime-B7w82_85.js";
|
|
5
5
|
import { i as setActiveRunTrace, r as recordRunTraceId } from "./active-run-trace-dlIZeEvb.js";
|
|
6
6
|
//#region src/cli/utils/with-run-span.ts
|
|
7
7
|
/**
|
|
@@ -106,5 +106,5 @@ const recordSentryProjectContext = (projectInfo, rootSpan, options = {}) => {
|
|
|
106
106
|
//#endregion
|
|
107
107
|
export { resetSentryRunState as n, withRunSpan as r, recordSentryProjectContext as t };
|
|
108
108
|
|
|
109
|
-
//# sourceMappingURL=with-run-span-
|
|
110
|
-
//# debugId=
|
|
109
|
+
//# sourceMappingURL=with-run-span-DId1q6s-.js.map
|
|
110
|
+
//# debugId=3f40a220-5a39-5a4b-a6c1-55a073246d58
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-doctor",
|
|
3
|
-
"version": "0.9.12-dev.
|
|
3
|
+
"version": "0.9.12-dev.cad6b5f",
|
|
4
4
|
"description": "Your agent writes bad React. This catches it",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"accessibility",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"conf": "^15.1.0",
|
|
58
58
|
"confbox": "^0.2.4",
|
|
59
59
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
60
|
+
"is-unicode-supported": "^2.1.0",
|
|
60
61
|
"jiti": "^2.7.0",
|
|
61
62
|
"magicast": "^0.5.3",
|
|
62
63
|
"oxc-parser": "^0.146.0",
|
|
@@ -67,7 +68,7 @@
|
|
|
67
68
|
"typescript": ">=5.0.4 <6",
|
|
68
69
|
"yaml": "^2.9.0",
|
|
69
70
|
"yoga-layout": "~3.2.1",
|
|
70
|
-
"oxlint-plugin-react-doctor": "0.9.12-dev.
|
|
71
|
+
"oxlint-plugin-react-doctor": "0.9.12-dev.cad6b5f"
|
|
71
72
|
},
|
|
72
73
|
"devDependencies": {
|
|
73
74
|
"@types/babel__code-frame": "^7.27.0",
|
|
@@ -80,8 +81,8 @@
|
|
|
80
81
|
"ora": "^9.4.0",
|
|
81
82
|
"react": "19.2.5",
|
|
82
83
|
"react-devtools-core": "^7.0.1",
|
|
83
|
-
"@react-doctor/
|
|
84
|
-
"@react-doctor/
|
|
84
|
+
"@react-doctor/api": "0.9.12",
|
|
85
|
+
"@react-doctor/core": "0.9.12"
|
|
85
86
|
},
|
|
86
87
|
"engines": {
|
|
87
88
|
"node": "^20.19.0 || >=22.13.0"
|