react-doctor 0.9.12-dev.bd08406 → 0.9.12-dev.ca30808
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/README.md +6 -0
- package/dist/{build-section-divider-DjX3mmIx.js → build-section-divider-DGcPvzjX.js} +7 -7
- package/dist/{ci-D0OU7_5i.js → ci-DZ9QnUV4.js} +12 -12
- package/dist/cli.js +67 -38
- package/dist/{design-D-9YrV4y.js → design-BlxQroSp.js} +4 -4
- package/dist/{devtools-BiC-AP3B.js → devtools-CC2PAZ85.js} +3 -3
- package/dist/{exit-gracefully-DuS_nzeq.js → exit-gracefully-Dt1ix6Xh.js} +6 -6
- package/dist/{get-east-asian-width-Cglw13G7.js → get-east-asian-width-Bv2TD3Xj.js} +3 -3
- package/dist/{handle-error-BzC_gVSx.js → handle-error-Cslt8b7C.js} +17 -12
- package/dist/index.js +459 -285
- package/dist/{inspect-NIjyNi5S.js → inspect-Dd1qqPJf.js} +38 -29
- package/dist/{install-BcGDtIYv.js → install-DeWeUjqr.js} +9 -9
- package/dist/{install-doctor-script-W-u3DPjZ.js → install-doctor-script-DbKR-GHo.js} +7 -14
- package/dist/{install-github-workflow-DqodeftR.js → install-github-workflow-Bkv_CMdF.js} +10 -6
- package/dist/{install-react-doctor-C3r0K9JP.js → install-react-doctor-DkfLDtWd.js} +8 -8
- package/dist/{jsx-runtime-BXnpEdz3.js → jsx-runtime-DwPH8QhA.js} +7 -7
- package/dist/path-format-DnHpmJwG.js +9 -0
- package/dist/{print-branded-header-eiCaprox.js → print-branded-header-CFNvp2ey.js} +4 -4
- package/dist/project-analysis-worker.js +53 -52
- package/dist/{prompt-runtime-scan-url-CAZLxZl0.js → prompt-runtime-scan-url-BuXp7_n4.js} +6 -6
- package/dist/{read-object-file-D4DobruV.js → read-object-file-CEbx-anl.js} +4 -4
- package/dist/{record-metric-CECbS8Qh.js → record-metric-BzGcVSov.js} +405 -230
- package/dist/{report-error-Ckftf8UM.js → report-error-ZMTPN93d.js} +5 -5
- package/dist/{report-workflow-result-MtfAsorD.js → report-workflow-result-CKUjTJpB.js} +5 -5
- package/dist/{resolve-scope-IDn0nWJF.js → resolve-scope-BgrQEVtj.js} +8 -10
- package/dist/{rules-6hA6QP9L.js → rules-DizN5gJ6.js} +6 -6
- package/dist/{run-scan-app-DNHg67cm.js → run-scan-app-CjSGMmOE.js} +17 -14
- package/dist/{runtime-scan-Dqqn1kW3.js → runtime-scan-DINB89wl.js} +9 -9
- package/dist/{sanitize-runtime-url-DhYx4VYy.js → sanitize-runtime-url-CFvLC0Vp.js} +4 -4
- package/dist/{scan-DtjqkKaM.js → scan-CEvjogRY.js} +17 -11
- package/dist/{should-fail-scan-gate-CXE70SlM.js → should-fail-scan-gate-gpuv_UOL.js} +19 -12
- package/dist/{should-skip-prompts-DwpFmYZZ.js → should-skip-prompts-F0NaNR8z.js} +4 -4
- package/dist/{should-use-tui-Cze9CmaN.js → should-use-tui-Dve0A4YR.js} +4 -4
- package/dist/{telemetry-runtime-DVy10F6G.js → telemetry-runtime-Bs7DsGaF.js} +55 -7
- package/dist/{unref-stdin-BKT_s38a.js → unref-stdin-SK3WfwxS.js} +3 -3
- package/dist/{version-Cr0PARuU.js → version-DVa-lN1C.js} +4 -4
- package/dist/{why-DnrSKh_M.js → why-BqR3fLtE.js} +4 -4
- package/dist/{with-run-span-BsK0r1ay.js → with-run-span-NbAvibgv.js} +5 -5
- package/package.json +3 -2
|
@@ -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]="97dd867b-f764-5179-b8b8-5121bb6cf9a5")}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-BzGcVSov.js";
|
|
4
|
+
import { n as shutdownTelemetry, r as isExpectedUserError } from "./telemetry-runtime-Bs7DsGaF.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-ZMTPN93d.js.map
|
|
64
|
+
//# debugId=97dd867b-f764-5179-b8b8-5121bb6cf9a5
|
|
@@ -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]="9717c30b-8de3-5523-babc-39205f875170")}catch(e){}}();
|
|
3
|
+
import { O as REACT_DOCTOR_CONFIG_PROJECT_NAME, T as METRIC, t as recordCount } from "./record-metric-BzGcVSov.js";
|
|
4
|
+
import { u as isCommandAvailable } from "./install-github-workflow-Bkv_CMdF.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-CKUjTJpB.js.map
|
|
279
|
+
//# debugId=9717c30b-8de3-5523-babc-39205f875170
|
|
@@ -1,12 +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 { Jt as isPathInsideDirectory, Nt as filterSourceFiles, wr as toCanonicalPath } from "./record-metric-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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]="19df94ee-697c-5752-a981-9ce9204b2446")}catch(e){}}();
|
|
3
|
+
import { Jt as isPathInsideDirectory, Nt as filterSourceFiles, wr as toCanonicalPath } from "./record-metric-BzGcVSov.js";
|
|
4
|
+
import { t as toForwardSlashes } from "./path-format-DnHpmJwG.js";
|
|
5
|
+
import { M as cliLogger } from "./install-doctor-script-DbKR-GHo.js";
|
|
6
|
+
import { d as detectDefaultBranch, f as runCommand, l as prompts, u as isCommandAvailable } from "./install-github-workflow-Bkv_CMdF.js";
|
|
6
7
|
import * as path$1 from "node:path";
|
|
7
|
-
//#region src/cli/utils/path-format.ts
|
|
8
|
-
const toForwardSlashes = (filePath) => filePath.replaceAll("\\", "/");
|
|
9
|
-
//#endregion
|
|
10
8
|
//#region src/cli/utils/open-workflow-pull-request.ts
|
|
11
9
|
const NEW_BRANCH_PREFIX = "react-doctor/add-github-actions";
|
|
12
10
|
const DEFAULT_COMMIT_MESSAGE = "ci: add React Doctor GitHub Actions workflow";
|
|
@@ -333,7 +331,7 @@ const finalizeScope = async ({ requested, diffInfo, skipPrompts, isQuiet }) => {
|
|
|
333
331
|
return scanScope === "changed" ? "changed" : "full";
|
|
334
332
|
};
|
|
335
333
|
//#endregion
|
|
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
|
|
334
|
+
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 };
|
|
337
335
|
|
|
338
|
-
//# sourceMappingURL=resolve-scope-
|
|
339
|
-
//# debugId=
|
|
336
|
+
//# sourceMappingURL=resolve-scope-BgrQEVtj.js.map
|
|
337
|
+
//# debugId=19df94ee-697c-5752-a981-9ce9204b2446
|
|
@@ -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]="db7f0339-715a-5848-9f32-e160413aba9a")}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-BzGcVSov.js";
|
|
4
|
+
import { M as cliLogger, n as findNearestPackageDirectory } from "./install-doctor-script-DbKR-GHo.js";
|
|
5
|
+
import { t as readObjectFile } from "./read-object-file-CEbx-anl.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-DizN5gJ6.js.map
|
|
581
|
+
//# debugId=db7f0339-715a-5848-9f32-e160413aba9a
|
|
@@ -1,14 +1,16 @@
|
|
|
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 {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { a as
|
|
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]="4274712b-fdd4-5a2e-b321-89a31b66fc17")}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-BzGcVSov.js";
|
|
4
|
+
import { t as toForwardSlashes } from "./path-format-DnHpmJwG.js";
|
|
5
|
+
import { M as cliLogger, n as findNearestPackageDirectory } from "./install-doctor-script-DbKR-GHo.js";
|
|
6
|
+
import { i as isReactDoctorWorkflowInstalled } from "./install-github-workflow-Bkv_CMdF.js";
|
|
7
|
+
import { r as resolveScope, s as resolveBlockingLevel, t as finalizeScope } from "./resolve-scope-BgrQEVtj.js";
|
|
8
|
+
import { B as filterDiagnosticsByCategories, C as CLI_AGENT_BINARIES, D as collectProjectSourceFileCounts, E as buildHandoffPayload, F as formatElapsedTime, G as buildSortedRuleGroups, H as buildEmptyReportMessage, I as printFooter, K as formatFixRecipeLine, L as printDiagnosticsDump, N as pluralize, O as deduplicateProjectScans, P as formatSkippedCheckLabel, R as formatDiagnosticSite, S as detectLaunchableAgents, T as launchCliAgent, U as hasLintHardFailure, V as buildNoScoreMessage, W as buildRulePriorityMap, _ as resolveWorkspaceDeadCodeOwner, b as countUniqueScannedFiles, c as discoverWorkspacePackages, d as resolveProjectScan, f as resolveProjectChangedLineRanges, g as retryMissingProjectScores, i as validateIncludeUntrackedScope, j as resolveMergeBaseRef, k as createInvocationInspect, l as selectProjects, m as resolveProjectSourceFilePaths, n as formatSkippedProjectsMessage, o as projectManifestChanged, p as resolveProjectDiffIncludePaths, q as formatLearnMoreLine, s as partitionProjectScanOutcomes, t as shouldFailScanGate, u as buildCodeFrame, v as resolveCliInspectOptions, w as copyToClipboard, x as setUpGitHubActions, y as filterScansForSurface, z as hasIncompleteScoreAnalysis } from "./should-fail-scan-gate-gpuv_UOL.js";
|
|
9
|
+
import { a as recordGate, f as ONBOARDING_EVENT, n as openUrl, r as isGatePending } from "./report-workflow-result-CKUjTJpB.js";
|
|
10
|
+
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-DwPH8QhA.js";
|
|
10
11
|
import path from "node:path";
|
|
11
12
|
import { performance } from "node:perf_hooks";
|
|
13
|
+
import isUnicodeSupported from "is-unicode-supported";
|
|
12
14
|
import { getSkillAgentConfig } from "agent-install";
|
|
13
15
|
//#region src/cli/utils/get-top-error-rule-keys.ts
|
|
14
16
|
const getTopErrorRuleKeys = (diagnostics, limit, rulePriority) => new Set(buildSortedRuleGroups(diagnostics.filter((diagnostic) => diagnostic.severity === "error"), rulePriority).slice(0, limit).map(([ruleKey]) => ruleKey));
|
|
@@ -2041,14 +2043,14 @@ const qualifyDiagnosticPaths = (diagnostics, rootDirectory, projectDirectory) =>
|
|
|
2041
2043
|
filePath: toForwardSlashes(path.join(prefix, diagnostic.filePath))
|
|
2042
2044
|
});
|
|
2043
2045
|
};
|
|
2044
|
-
const resolveScanPresentation = (input, projectScans) => {
|
|
2046
|
+
const resolveScanPresentation = (input, projectScans, rootDirectory) => {
|
|
2045
2047
|
const isScoreDisabled = input.options?.noScore === true || projectScans.some((projectScan) => projectScan.config?.noScore === true);
|
|
2046
2048
|
return {
|
|
2047
2049
|
isOffline: isCiEnvironment() || input.share === false || isShareOptedOut(projectScans, input.options?.noScore),
|
|
2048
2050
|
initialProgress: projectScans.length > 1 ? "Indexing workspace files…" : "Scanning project…",
|
|
2049
2051
|
noScoreMessage: buildNoScoreMessage({ isScoreDisabled }),
|
|
2050
2052
|
outputDirectory: input.options?.outputDirectory,
|
|
2051
|
-
shouldRecommendCi:
|
|
2053
|
+
shouldRecommendCi: isCiUnconfigured(rootDirectory),
|
|
2052
2054
|
verbose: input.options?.verbose === true
|
|
2053
2055
|
};
|
|
2054
2056
|
};
|
|
@@ -2223,6 +2225,7 @@ const runMountedScan = async (rootDirectory, presentation, blockingLevel, execut
|
|
|
2223
2225
|
const completedScan = await executeScan(context);
|
|
2224
2226
|
mountedRenderer.dispose();
|
|
2225
2227
|
mountedRenderer = mountRenderer("report");
|
|
2228
|
+
if (presentation.shouldRecommendCi) recordCount(METRIC.tuiCiRecommendationShown);
|
|
2226
2229
|
await mountedRenderer.instance.waitUntilExit();
|
|
2227
2230
|
mountedRenderer.dispose();
|
|
2228
2231
|
if (presentation.outputDirectory !== void 0 || presentation.verbose) await runPromise(printDiagnosticsDump([...completedScan.diagnostics], presentation.outputDirectory, presentation.verbose));
|
|
@@ -2259,7 +2262,7 @@ const runSingleProjectScan = async (rootScanTarget, projectDirectory, input, sco
|
|
|
2259
2262
|
process.stdout.write("No changed source files in the selected project.\n");
|
|
2260
2263
|
return { shouldFail: false };
|
|
2261
2264
|
}
|
|
2262
|
-
const presentation = resolveScanPresentation(input, [projectScan]);
|
|
2265
|
+
const presentation = resolveScanPresentation(input, [projectScan], rootScanTarget.resolvedDirectory);
|
|
2263
2266
|
return runMountedScan(projectScan.directory, presentation, blockingLevel, async (context) => {
|
|
2264
2267
|
const result = await inspectProject(projectScan.directory, {
|
|
2265
2268
|
...resolveTuiInspectOptions(input, projectScan.config),
|
|
@@ -2341,7 +2344,7 @@ const runMultiProjectScan = async (rootScanTarget, directories, input, scopePlan
|
|
|
2341
2344
|
isRootDeadCodeEnabled: input.options?.deadCode ?? rootProjectScan?.config?.deadCode ?? true
|
|
2342
2345
|
});
|
|
2343
2346
|
if (workspaceDeadCodeOwner !== null) recordCount(METRIC.scanWorkspaceMaintainabilityShared, 1, { projectCount: discoveredProjectScans.length });
|
|
2344
|
-
return runMountedScan(rootDirectory, resolveScanPresentation(input, projectScans.map(({ projectScan }) => projectScan)), blockingLevel, async (context) => {
|
|
2347
|
+
return runMountedScan(rootDirectory, resolveScanPresentation(input, projectScans.map(({ projectScan }) => projectScan), rootDirectory), blockingLevel, async (context) => {
|
|
2345
2348
|
const startTime = performance.now();
|
|
2346
2349
|
let finishedCount = 0;
|
|
2347
2350
|
recordDistribution(METRIC.scanFeedbackDelay, performance.now() - feedbackStartTime, {
|
|
@@ -2504,5 +2507,5 @@ const runScanApp = async (input) => {
|
|
|
2504
2507
|
//#endregion
|
|
2505
2508
|
export { runScanApp };
|
|
2506
2509
|
|
|
2507
|
-
//# sourceMappingURL=run-scan-app-
|
|
2508
|
-
//# debugId=
|
|
2510
|
+
//# sourceMappingURL=run-scan-app-CjSGMmOE.js.map
|
|
2511
|
+
//# debugId=4274712b-fdd4-5a2e-b321-89a31b66fc17
|
|
@@ -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]="e693f254-f206-59a3-bc7f-14e03f317985")}catch(e){}}();
|
|
3
|
+
import { Kt as highlighter, T as METRIC, t as recordCount, u as enableJsonMode, z as CliInputError } from "./record-metric-BzGcVSov.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-ZMTPN93d.js";
|
|
6
|
+
import { n as resetSentryRunState, r as withRunSpan } from "./with-run-span-NbAvibgv.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-CFvLC0Vp.js";
|
|
8
|
+
import { r as resolveTuiEnvironment, t as isTuiEnvironmentSupported } from "./should-use-tui-Dve0A4YR.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-BuXp7_n4.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-DINB89wl.js.map
|
|
770
|
+
//# debugId=e693f254-f206-59a3-bc7f-14e03f317985
|
|
@@ -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]="b94421cc-23bd-5827-bcc1-d086d3dc4ba9")}catch(e){}}();
|
|
3
|
+
import { z as CliInputError } from "./record-metric-BzGcVSov.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-CFvLC0Vp.js.map
|
|
76
|
+
//# debugId=b94421cc-23bd-5827-bcc1-d086d3dc4ba9
|
|
@@ -1,18 +1,24 @@
|
|
|
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 {
|
|
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]="379ea2c9-a7ee-584a-82cb-23e65d3013ed")}catch(e){}}();
|
|
3
|
+
import { T as METRIC, fn as resolveScanTarget, t as recordCount } from "./record-metric-BzGcVSov.js";
|
|
4
|
+
import { i as warnDeprecatedDiff } from "./resolve-scope-BgrQEVtj.js";
|
|
5
|
+
import { a as validateModeFlags, r as validateFilePathSelectionFlags, v as resolveCliInspectOptions } from "./should-fail-scan-gate-gpuv_UOL.js";
|
|
6
|
+
import { n as warnDeprecatedFailOn, r as runProjectMigrations, t as inspectAction } from "./inspect-Dd1qqPJf.js";
|
|
7
|
+
import { n as shouldUseTui, r as resolveTuiEnvironment } from "./should-use-tui-Dve0A4YR.js";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
//#region src/cli/commands/scan.ts
|
|
10
10
|
const runScanCommand = async (input) => {
|
|
11
11
|
if (input.flags.cache === false) process.env.REACT_DOCTOR_NO_CACHE = "1";
|
|
12
|
-
if (
|
|
12
|
+
if (input.filePaths !== void 0) validateFilePathSelectionFlags(input.flags);
|
|
13
|
+
const tuiEnvironment = {
|
|
13
14
|
flags: input.flags,
|
|
14
15
|
...resolveTuiEnvironment()
|
|
15
|
-
}
|
|
16
|
+
};
|
|
17
|
+
if (input.filePaths !== void 0) {
|
|
18
|
+
await inspectAction(input.directory, input.flags, input.invocationCommand, input.filePaths);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (!shouldUseTui(tuiEnvironment)) {
|
|
16
22
|
await inspectAction(input.directory, input.flags, input.invocationCommand);
|
|
17
23
|
return;
|
|
18
24
|
}
|
|
@@ -22,7 +28,7 @@ const runScanCommand = async (input) => {
|
|
|
22
28
|
warnDeprecatedFailOn(input.flags, scanTarget.userConfig);
|
|
23
29
|
warnDeprecatedDiff(input.flags, scanTarget.userConfig);
|
|
24
30
|
recordCount(METRIC.cliInvoked, 1, { command: input.invocationCommand });
|
|
25
|
-
const { runScanApp } = await import("./run-scan-app-
|
|
31
|
+
const { runScanApp } = await import("./run-scan-app-CjSGMmOE.js");
|
|
26
32
|
const { shouldFail } = await runScanApp({
|
|
27
33
|
directory: input.directory,
|
|
28
34
|
scanTarget,
|
|
@@ -37,5 +43,5 @@ const runScanCommand = async (input) => {
|
|
|
37
43
|
//#endregion
|
|
38
44
|
export { runScanCommand };
|
|
39
45
|
|
|
40
|
-
//# sourceMappingURL=scan-
|
|
41
|
-
//# debugId=
|
|
46
|
+
//# sourceMappingURL=scan-CEvjogRY.js.map
|
|
47
|
+
//# debugId=379ea2c9-a7ee-584a-82cb-23e65d3013ed
|
|
@@ -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 { $ 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]="a7a3004c-7dae-5ed3-90d5-1d72a5f5429b")}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-BzGcVSov.js";
|
|
4
|
+
import { t as getTelemetryContext } from "./telemetry-runtime-Bs7DsGaF.js";
|
|
5
|
+
import { n as buildFooterLinkLines, t as buildSectionDivider } from "./build-section-divider-DGcPvzjX.js";
|
|
6
6
|
import { t as activeScanAbortRegistry } from "./active-scan-abort-registry-DwG6tSPy.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
7
|
+
import { t as toForwardSlashes } from "./path-format-DnHpmJwG.js";
|
|
8
|
+
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-DbKR-GHo.js";
|
|
9
|
+
import { d as detectDefaultBranch, l as prompts, r as installReactDoctorWorkflow, u as isCommandAvailable } from "./install-github-workflow-Bkv_CMdF.js";
|
|
10
|
+
import { a as isValidBlockingLevel, c as openWorkflowPullRequest, l as stageWorkflowFile, o as pickBlockingLevel } from "./resolve-scope-BgrQEVtj.js";
|
|
11
|
+
import { n as resetSentryRunState, r as withRunSpan, t as recordSentryProjectContext } from "./with-run-span-NbAvibgv.js";
|
|
12
|
+
import { h as detectAvailableAgents, t as reportWorkflowResult } from "./report-workflow-result-CKUjTJpB.js";
|
|
12
13
|
import { createRequire } from "node:module";
|
|
13
14
|
import { spawn } from "node:child_process";
|
|
14
15
|
import * as path$1 from "node:path";
|
|
@@ -2971,6 +2972,12 @@ const validateIncludeUntrackedScope = (includeUntracked, scope) => {
|
|
|
2971
2972
|
if (!includeUntracked || scope !== void 0 && scope !== "full") return;
|
|
2972
2973
|
throw new CliInputError("--include-untracked requires the files, changed, or lines scope (via --scope, --diff, or config).");
|
|
2973
2974
|
};
|
|
2975
|
+
const validateFilePathSelectionFlags = (flags) => {
|
|
2976
|
+
if (flags.staged || flags.changedFilesFrom !== void 0) throw new CliInputError("Cannot combine file path arguments with --staged or --changed-files-from. Use one file source.");
|
|
2977
|
+
if (usedDiffAlias(flags)) throw new CliInputError("Cannot combine file path arguments with --diff. File path arguments use the files scope.");
|
|
2978
|
+
if (usedScope(flags) && flags.scope !== "files") throw new CliInputError(`Cannot combine file path arguments with --scope ${flags.scope}. File path arguments use --scope files.`);
|
|
2979
|
+
if (flags.base !== void 0) throw new CliInputError("Cannot combine file path arguments with --base. The selected files do not need a Git base.");
|
|
2980
|
+
};
|
|
2974
2981
|
const validateModeFlags = (flags) => {
|
|
2975
2982
|
if (usedScope(flags) && usedDiffAlias(flags)) throw new CliInputError("Cannot combine --scope and --diff; --diff is the deprecated alias.");
|
|
2976
2983
|
if (flags.staged && usedDiffAlias(flags)) throw new CliInputError("Cannot combine --staged and --diff; pick one mode.");
|
|
@@ -2995,7 +3002,7 @@ const shouldFailScanGate = (input) => {
|
|
|
2995
3002
|
return shouldBlockCi(filterScansForSurface(input.scans, "ciFailure"), input.blockingLevel);
|
|
2996
3003
|
};
|
|
2997
3004
|
//#endregion
|
|
2998
|
-
export {
|
|
3005
|
+
export { inspect as A, filterDiagnosticsByCategories as B, CLI_AGENT_BINARIES as C, collectProjectSourceFileCounts as D, buildHandoffPayload as E, formatElapsedTime as F, buildSortedRuleGroups as G, buildEmptyReportMessage as H, printFooter as I, formatFixRecipeLine as K, printDiagnosticsDump as L, printHeadlessReport as M, pluralize as N, deduplicateProjectScans as O, formatSkippedCheckLabel as P, formatDiagnosticSite as R, detectLaunchableAgents as S, launchCliAgent as T, hasLintHardFailure as U, buildNoScoreMessage as V, buildRulePriorityMap as W, resolveWorkspaceDeadCodeOwner as _, validateModeFlags as a, countUniqueScannedFiles as b, discoverWorkspacePackages as c, resolveProjectScan as d, resolveProjectChangedLineRanges as f, retryMissingProjectScores as g, resolveProjectRelativeDirectory as h, validateIncludeUntrackedScope as i, resolveMergeBaseRef as j, createInvocationInspect as k, selectProjects as l, resolveProjectSourceFilePaths as m, formatSkippedProjectsMessage as n, projectManifestChanged as o, resolveProjectDiffIncludePaths as p, formatLearnMoreLine as q, validateFilePathSelectionFlags as r, partitionProjectScanOutcomes as s, shouldFailScanGate as t, buildCodeFrame as u, resolveCliInspectOptions as v, copyToClipboard as w, setUpGitHubActions as x, filterScansForSurface as y, hasIncompleteScoreAnalysis as z };
|
|
2999
3006
|
|
|
3000
|
-
//# sourceMappingURL=should-fail-scan-gate-
|
|
3001
|
-
//# debugId=
|
|
3007
|
+
//# sourceMappingURL=should-fail-scan-gate-gpuv_UOL.js.map
|
|
3008
|
+
//# debugId=a7a3004c-7dae-5ed3-90d5-1d72a5f5429b
|
|
@@ -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]="92b67ec7-ac21-5825-9ec7-9268f58c961f")}catch(e){}}();
|
|
3
|
+
import { B as isNonInteractiveEnvironment } from "./record-metric-BzGcVSov.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-F0NaNR8z.js.map
|
|
10
|
+
//# debugId=92b67ec7-ac21-5825-9ec7-9268f58c961f
|
|
@@ -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]="56ecffad-c47a-5d32-a057-6f564c02f965")}catch(e){}}();
|
|
3
|
+
import { B as isNonInteractiveEnvironment } from "./record-metric-BzGcVSov.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-Dve0A4YR.js.map
|
|
25
|
+
//# debugId=56ecffad-c47a-5d32-a057-6f564c02f965
|
|
@@ -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]="45bafc76-f991-53d1-8b84-f9b5d4bb1cba")}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-BzGcVSov.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-Bs7DsGaF.js.map
|
|
251
|
+
//# debugId=45bafc76-f991-53d1-8b84-f9b5d4bb1cba
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/cli/utils/unref-stdin.ts
|
|
2
2
|
|
|
3
|
-
!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
|
+
!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]="8f48a2ed-e79f-5438-90a2-8ef096b5fd64")}catch(e){}}();
|
|
4
4
|
const unrefStdin = () => {
|
|
5
5
|
if (process.stdin.isTTY) return;
|
|
6
6
|
process.stdin.unref?.();
|
|
@@ -8,5 +8,5 @@ const unrefStdin = () => {
|
|
|
8
8
|
//#endregion
|
|
9
9
|
export { unrefStdin as t };
|
|
10
10
|
|
|
11
|
-
//# sourceMappingURL=unref-stdin-
|
|
12
|
-
//# debugId=
|
|
11
|
+
//# sourceMappingURL=unref-stdin-SK3WfwxS.js.map
|
|
12
|
+
//# debugId=8f48a2ed-e79f-5438-90a2-8ef096b5fd64
|
|
@@ -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]="d23c1b0d-b3f7-5e4d-aacc-938d2c0c439d")}catch(e){}}();
|
|
3
|
+
import { T as METRIC, _ as VERSION, t as recordCount } from "./record-metric-BzGcVSov.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-DVa-lN1C.js.map
|
|
21
|
+
//# debugId=d23c1b0d-b3f7-5e4d-aacc-938d2c0c439d
|
|
@@ -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]="4d60df56-978e-5a34-bf24-e07249f3719f")}catch(e){}}();
|
|
3
|
+
import { t as inspectAction } from "./inspect-Dd1qqPJf.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-BqR3fLtE.js.map
|
|
21
|
+
//# debugId=4d60df56-978e-5a34-bf24-e07249f3719f
|
|
@@ -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]="ffce6642-493e-5779-b1db-64f399f953b7")}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-BzGcVSov.js";
|
|
4
|
+
import { t as getTelemetryContext } from "./telemetry-runtime-Bs7DsGaF.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-NbAvibgv.js.map
|
|
110
|
+
//# debugId=ffce6642-493e-5779-b1db-64f399f953b7
|
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.ca30808",
|
|
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.ca30808"
|
|
71
72
|
},
|
|
72
73
|
"devDependencies": {
|
|
73
74
|
"@types/babel__code-frame": "^7.27.0",
|