react-doctor 0.9.14-dev.260b448 → 0.9.14-dev.83466a8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/{build-section-divider-gekJe2aO.js → build-section-divider-CAWXRUMJ.js} +4 -4
  2. package/dist/{ci-S43tmiRM.js → ci-D_ENKPGK.js} +12 -12
  3. package/dist/cli.js +26 -25
  4. package/dist/{design-D4ctp88p.js → design-DV4k7slC.js} +4 -4
  5. package/dist/{exit-gracefully-D69nyRA4.js → exit-gracefully-mMDXRxMF.js} +6 -6
  6. package/dist/{handle-error-BE3O3Ugs.js → handle-error-DJtDTgb4.js} +5 -5
  7. package/dist/index.js +17 -30
  8. package/dist/{inspect-CKjzI6gB.js → inspect-Bu0U8NZ5.js} +15 -15
  9. package/dist/{install-PndnbaOs.js → install-BFlXeoez.js} +9 -9
  10. package/dist/{install-doctor-script-BAGTNvoL.js → install-doctor-script-BHwA_Cjy.js} +4 -4
  11. package/dist/{install-github-workflow-u0qIsWNy.js → install-github-workflow-BEOuMqAj.js} +4 -4
  12. package/dist/{install-react-doctor-D4nc_F4X.js → install-react-doctor-Ck9IDUVl.js} +8 -8
  13. package/dist/{jsx-runtime-DT94xKcX.js → jsx-runtime-CgOxdFZS.js} +5 -5
  14. package/dist/{print-branded-header-BwVcjvPZ.js → print-branded-header-ChR6uLrv.js} +4 -4
  15. package/dist/{prompt-runtime-scan-url-Bjsn6chf.js → prompt-runtime-scan-url-D2859TE1.js} +5 -5
  16. package/dist/{read-object-file-lnRYcs-x.js → read-object-file-w4Zh0_Lj.js} +4 -4
  17. package/dist/{record-metric-CQTcuE_T.js → record-metric-BK9LFZPO.js} +19 -32
  18. package/dist/{report-error-DbKdfCEt.js → report-error-CtLMZsVf.js} +5 -5
  19. package/dist/{report-workflow-result-w7YFI8kv.js → report-workflow-result-D0p8q7rJ.js} +5 -5
  20. package/dist/{resolve-scope-qNuGZ908.js → resolve-scope-C7ZeygIc.js} +6 -6
  21. package/dist/{rules-ByH9CzFb.js → rules-CY6HF12H.js} +6 -6
  22. package/dist/{run-scan-app-5khIAxD-.js → run-scan-app-afuV1E7E.js} +10 -10
  23. package/dist/{runtime-scan-BuSOAA46.js → runtime-scan-Z0ds5TbE.js} +9 -9
  24. package/dist/{sanitize-runtime-url-5kypdWqI.js → sanitize-runtime-url-BkrB7RjK.js} +4 -4
  25. package/dist/{scan-Cv_Bwsqc.js → scan-BZn-K1Xq.js} +9 -9
  26. package/dist/{should-fail-scan-gate-fan2kMeu.js → should-fail-scan-gate-DpWqdECw.js} +26 -15
  27. package/dist/{should-skip-prompts-BbpOXwiH.js → should-skip-prompts-CobsVjgV.js} +4 -4
  28. package/dist/{should-use-tui-CI612w4M.js → should-use-tui-D8Pw2Phg.js} +4 -4
  29. package/dist/{telemetry-runtime-CbJQ0K-c.js → telemetry-runtime-CdxHMIQV.js} +6 -6
  30. package/dist/{version-0CrqwW3U.js → version-D7x_oJ7a.js} +4 -4
  31. package/dist/{why-Bm4JpSPS.js → why-CTL3gjbA.js} +4 -4
  32. package/dist/{with-run-span-DF9i7MAa.js → with-run-span-B5Bp7USZ.js} +5 -5
  33. package/package.json +4 -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]="b80c0668-63a8-5918-87bd-80471630f75f")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="05ad25ab-103d-5f5f-a869-9a3a8449c03a")}catch(e){}}();
3
3
  import { bt as DOCS_URL, lt as CANONICAL_GITHUB_URL } from "./constants-CgtYeXfx.js";
4
- import { Ot as highlighter } from "./record-metric-CQTcuE_T.js";
4
+ import { Ot as highlighter } from "./record-metric-BK9LFZPO.js";
5
5
  //#region src/cli/utils/resolve-measure-width.ts
6
6
  const resolveClampedWidth = (input) => {
7
7
  const terminalColumns = process.stdout.columns;
@@ -77,5 +77,5 @@ const buildSectionDivider = () => highlighter.dim(`${DIVIDER_INDENT}${"─".repe
77
77
  //#endregion
78
78
  export { buildFooterLinkLines as n, buildSectionDivider as t };
79
79
 
80
- //# sourceMappingURL=build-section-divider-gekJe2aO.js.map
81
- //# debugId=b80c0668-63a8-5918-87bd-80471630f75f
80
+ //# sourceMappingURL=build-section-divider-CAWXRUMJ.js.map
81
+ //# debugId=05ad25ab-103d-5f5f-a869-9a3a8449c03a
@@ -1,16 +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]="d8509a8a-d646-50e6-b41d-a660d28ab0f3")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="be2a276e-a846-53e7-8a88-1fc0ca0b423a")}catch(e){}}();
3
3
  import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-ChKA3wi6.js";
4
4
  import { kt as GITHUB_ACTIONS_SETUP_URL, u as METRIC, ut as CI_URL } from "./constants-CgtYeXfx.js";
5
- import { Ot as highlighter, t as recordCount, yn as runSync } from "./record-metric-CQTcuE_T.js";
6
- import { o as isExpectedUserError } from "./telemetry-runtime-CbJQ0K-c.js";
7
- import { n as handleUserError, t as handleError } from "./handle-error-BE3O3Ugs.js";
8
- import { t as reportErrorToSentry } from "./report-error-DbKdfCEt.js";
9
- import { N as cliLogger, c as spinner, n as findNearestPackageDirectory } from "./install-doctor-script-BAGTNvoL.js";
10
- import { a as readReactDoctorWorkflow, d as detectDefaultBranch, f as runCommand, l as prompts, n as getReactDoctorWorkflowPath, s as upgradeWorkflowActionToV2, t as buildWorkflowContent } from "./install-github-workflow-u0qIsWNy.js";
11
- import { a as isValidBlockingLevel, c as openWorkflowPullRequest, l as stageWorkflowFile, n as isScopeValue } from "./resolve-scope-qNuGZ908.js";
12
- import { t as shouldSkipPrompts } from "./should-skip-prompts-BbpOXwiH.js";
13
- import { t as printBrandedHeader } from "./print-branded-header-BwVcjvPZ.js";
5
+ import { Ot as highlighter, t as recordCount, yn as runSync } from "./record-metric-BK9LFZPO.js";
6
+ import { o as isExpectedUserError } from "./telemetry-runtime-CdxHMIQV.js";
7
+ import { n as handleUserError, t as handleError } from "./handle-error-DJtDTgb4.js";
8
+ import { t as reportErrorToSentry } from "./report-error-CtLMZsVf.js";
9
+ import { N as cliLogger, c as spinner, n as findNearestPackageDirectory } from "./install-doctor-script-BHwA_Cjy.js";
10
+ import { a as readReactDoctorWorkflow, d as detectDefaultBranch, f as runCommand, l as prompts, n as getReactDoctorWorkflowPath, s as upgradeWorkflowActionToV2, t as buildWorkflowContent } from "./install-github-workflow-BEOuMqAj.js";
11
+ import { a as isValidBlockingLevel, c as openWorkflowPullRequest, l as stageWorkflowFile, n as isScopeValue } from "./resolve-scope-C7ZeygIc.js";
12
+ import { t as shouldSkipPrompts } from "./should-skip-prompts-CobsVjgV.js";
13
+ import { t as printBrandedHeader } from "./print-branded-header-ChR6uLrv.js";
14
14
  import * as fs$1 from "node:fs";
15
15
  import * as path$1 from "node:path";
16
16
  //#region src/cli/utils/ci/ci-provider.ts
@@ -7499,5 +7499,5 @@ const ciConfigAction = (options) => runCiCommand("config", runCiConfig, options)
7499
7499
  //#endregion
7500
7500
  export { ciConfigAction, ciInstallAction, ciUpgradeAction };
7501
7501
 
7502
- //# sourceMappingURL=ci-S43tmiRM.js.map
7503
- //# debugId=d8509a8a-d646-50e6-b41d-a660d28ab0f3
7502
+ //# sourceMappingURL=ci-D_ENKPGK.js.map
7503
+ //# debugId=be2a276e-a846-53e7-8a88-1fc0ca0b423a
package/dist/cli.js CHANGED
@@ -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]="01a511d3-2f70-50c3-8de6-424d199534ba")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d3696fb6-15d5-5a85-b708-3f058c610990")}catch(e){}}();
3
3
  import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-ChKA3wi6.js";
4
4
  import { lt as CANONICAL_GITHUB_URL, ut as CI_URL } from "./constants-CgtYeXfx.js";
5
5
  import "./start-scan-preamble-DVB7vlit.js";
6
- import { In as isDirectory, Ot as highlighter, Rn as isFile, S as isDebugFlagEnabled, Yt as setColorEnabled, _ as VERSION, d as isJsonModeActive, h as writeJsonErrorReport, ht as filterSourceFiles, i as isTelemetryEnabled, kt as isPathInsideDirectory, y as CliInputError } from "./record-metric-CQTcuE_T.js";
7
- import { a as initializeSentry, n as shutdownTelemetry, o as isExpectedUserError, r as flushSentry } from "./telemetry-runtime-CbJQ0K-c.js";
8
- import { t as exitGracefully } from "./exit-gracefully-D69nyRA4.js";
9
- import { n as handleUserError, t as handleError } from "./handle-error-BE3O3Ugs.js";
6
+ import { In as isDirectory, Ot as highlighter, Rn as isFile, S as isDebugFlagEnabled, Yt as setColorEnabled, _ as VERSION, d as isJsonModeActive, h as writeJsonErrorReport, ht as filterSourceFiles, i as isTelemetryEnabled, kt as isPathInsideDirectory, y as CliInputError } from "./record-metric-BK9LFZPO.js";
7
+ import { a as initializeSentry, n as shutdownTelemetry, o as isExpectedUserError, r as flushSentry } from "./telemetry-runtime-CdxHMIQV.js";
8
+ import { t as exitGracefully } from "./exit-gracefully-mMDXRxMF.js";
9
+ import { n as handleUserError, t as handleError } from "./handle-error-DJtDTgb4.js";
10
10
  import { n as getLastRunTraceId } from "./active-run-trace-Dewycxda.js";
11
- import { t as reportErrorToSentry } from "./report-error-DbKdfCEt.js";
11
+ import { t as reportErrorToSentry } from "./report-error-CtLMZsVf.js";
12
12
  import { t as toForwardSlashes } from "./path-format-By20mo8A.js";
13
13
  import { t as unrefStdin } from "./unref-stdin-D-NZBFpg.js";
14
14
  import * as path$1 from "node:path";
@@ -3360,6 +3360,7 @@ const COMMAND_FLAG_SPECS = new Map([
3360
3360
  "--no-dead-code",
3361
3361
  "--no-score",
3362
3362
  "--no-supply-chain",
3363
+ "--score",
3363
3364
  "--yes"
3364
3365
  ]),
3365
3366
  longOptionsWithRequiredValues: new Set([
@@ -3558,7 +3559,7 @@ ${highlighter.dim("Learn more:")}
3558
3559
  const collectCategoryOption = (value, previousValues) => [...previousValues ?? [], value];
3559
3560
  const program = new Command().name("react-doctor").description("Diagnose React codebase health").version(VERSION, "-v, --version", "display the version number").argument("[paths...]", "one project directory or source file paths to scan").option("--lint", "enable linting").option("--no-lint", "skip linting").addOption(new Option("--dead-code").hideHelp()).addOption(new Option("--no-dead-code").hideHelp()).option("--supply-chain", "enable the dependency supply-chain scan (default)").option("--no-supply-chain", "skip the dependency supply-chain scan (Socket.dev dependency health checks)").option("--verbose", "show every rule and per-file details (default shows top 3 rules)").option("--debug", "force a Sentry trace and print its id at the end (paste it into a bug report)").option("--output-dir <dir>", "directory for the full diagnostics dump (default: a temp folder)").option("--score", "output only the score").option("--json", "output a single structured JSON report (suppresses other output)").option("--json-compact", "with --json, emit compact JSON (no indentation)").option("--json-out <path>", "with --json, write the report to a file instead of stdout").option("--no-cache", "disable all scan caches for this run").option("-y, --yes", "skip prompts, scan all workspace projects").option("--no-parallel", "lint serially with one worker (default: parallel across CPU cores; set the worker count with REACT_DOCTOR_PARALLEL)").option("--project <name>", "select projects: workspace names or directory paths (comma-separated for multiple); overrides the `projects` config field").option("--scope <value>", "how much supported JS/TS and inline HTML script source to scan/report: full (default), files, changed (only new issues vs base), or lines (issues whose source spans touch changed lines)").option("--base <ref>", "base git ref for files/changed/lines scope (auto-detected when omitted)").option("--include-untracked", "with --scope files/changed/lines, also scan ordinary untracked files (respects .gitignore)").addOption(new Option("--diff [base]", "[deprecated] alias for --scope changed (pass `false` to force a full scan)").hideHelp()).addOption(new Option("--changed-files-from <file>", "scan source files listed in a newline-delimited changed-files file").hideHelp()).option("--no-score", "skip the score API, the share URL, and crash reporting").addOption(new Option("--category <category>", "only show diagnostics in a category (repeatable; e.g. Security)").argParser(collectCategoryOption)).option("--no-telemetry", "alias for --no-score (skip the score API, share URL, and crash reporting)").option("--staged", "scan only staged (git index) files for pre-commit hooks (honors --project and config `projects`; exits 0 when nothing is staged)").option("--max-duration <seconds>", MAX_DURATION_OPTION_DESCRIPTION).option("--blocking <level>", "severity that fails CI: error (default), warning, or none (advisory)").addOption(new Option("--fail-on <level>", "[deprecated] alias for --blocking <level>").hideHelp()).option("--no-respect-inline-disables", "audit mode: neutralize inline lint suppressions before scanning").option("--warnings", "show warning-severity diagnostics (default)").option("--no-warnings", "hide warning-severity diagnostics (errors only)").option("--color", "force colored output").option("--no-color", "disable colored output (also honors NO_COLOR)").addHelpText("after", renderRootHelpEpilog);
3560
3561
  program.action(async (positionalPaths = [], flags) => {
3561
- const { runScanCommand } = await import("./scan-Cv_Bwsqc.js");
3562
+ const { runScanCommand } = await import("./scan-BZn-K1Xq.js");
3562
3563
  return runScanCommand({
3563
3564
  ...resolvePositionalScanInput(positionalPaths),
3564
3565
  flags,
@@ -3566,75 +3567,75 @@ program.action(async (positionalPaths = [], flags) => {
3566
3567
  });
3567
3568
  });
3568
3569
  program.command("design [directory]").description("Run only the focused UI design diagnostics").addHelpText("after", renderDesignHelpEpilog).action(async (directory, _options, command) => {
3569
- const { designAction } = await import("./design-D4ctp88p.js");
3570
+ const { designAction } = await import("./design-DV4k7slC.js");
3570
3571
  return designAction(directory ?? ".", command.optsWithGlobals());
3571
3572
  });
3572
3573
  program.command("scan").description("Scan a React interaction in Chrome until you press Enter").argument("[url]", "HTTP(S) URL of the running React app; detects local apps when omitted").option("-f, --format <format>", "report format: text, json, or jsonl", "text").option("--cdp <url>", "reuse Chrome at this remote-debugging endpoint").option("--trace-out <path>", "save the compressed .json.gz DevTools trace at this path").addHelpText("after", renderRuntimeScanHelpEpilog).action(async (url, options) => {
3573
- const { runtimeScanAction } = await import("./runtime-scan-BuSOAA46.js");
3574
+ const { runtimeScanAction } = await import("./runtime-scan-Z0ds5TbE.js");
3574
3575
  return runtimeScanAction(url, options);
3575
3576
  });
3576
3577
  program.command("why <location>").description("Explain why a rule fired (or why a suppression didn't apply) at a file:line").option("--project <name>", "select projects: workspace names or directory paths (comma-separated for multiple)").option("-c, --cwd <cwd>", "working directory", process.cwd()).option("--color", "force colored output").option("--no-color", "disable colored output (also honors NO_COLOR)").action(async (location, options) => {
3577
- const { whyAction } = await import("./why-Bm4JpSPS.js");
3578
+ const { whyAction } = await import("./why-CTL3gjbA.js");
3578
3579
  return whyAction(location, options);
3579
3580
  });
3580
3581
  program.command("install").alias("setup").description("Install the react-doctor skill into your coding agents and optional git hook").option("-y, --yes", "skip prompts, install for all detected agents").option("--dry-run", "show what would be installed without writing files").option("--agent-hooks", "install end-of-turn agent hooks for Claude Code and Cursor").option("-c, --cwd <cwd>", "working directory", process.cwd()).option("--color", "force colored output").option("--no-color", "disable colored output (also honors NO_COLOR)").addHelpText("after", renderInstallHelpEpilog).action(async (options, command) => {
3581
- const { installAction } = await import("./install-PndnbaOs.js");
3582
+ const { installAction } = await import("./install-BFlXeoez.js");
3582
3583
  return installAction(options, command);
3583
3584
  });
3584
3585
  const providerOption = ["--provider <name>", "ci provider: github-actions or gitlab-ci (auto-detected by default)"];
3585
3586
  const prOption = ["--pr", "open a pull request with the change instead of writing it to the working tree"];
3586
3587
  const ci = program.command("ci").description("Set up, upgrade, and configure React Doctor in your CI");
3587
3588
  ci.command("install").description("Add a CI workflow that scans every pull request").option(...providerOption).option(...prOption).option("--blocking <level>", "gate level: none (advisory, default), warning, or error").option("--scope <value>", "what a pull-request scan reports: changed (default), files, lines, full").option("--comment", "post a summary comment on each pull request").option("--no-comment", "don't post a summary comment").option("--review-comments", "add inline review comments on changed lines").option("--no-review-comments", "don't add inline review comments").option("--commit-status", "report a commit status with the health score").option("--no-commit-status", "don't report a commit status").option("-y, --yes", "skip prompts; use the defaults").option("-c, --cwd <cwd>", "working directory", process.cwd()).option("--color", "force colored output").option("--no-color", "disable colored output (also honors NO_COLOR)").addHelpText("after", renderCiHelpEpilog).action(async (_options, command) => {
3588
- const { ciInstallAction } = await import("./ci-S43tmiRM.js");
3589
+ const { ciInstallAction } = await import("./ci-D_ENKPGK.js");
3589
3590
  return ciInstallAction(command.optsWithGlobals());
3590
3591
  });
3591
3592
  ci.command("config").description("Change the gate, scan scope, and pull-request reporting").option(...providerOption).option("--blocking <level>", "gate level: none (advisory), warning, or error").option("--scope <value>", "what a pull-request scan reports: changed, files, lines, or full").option("--comment", "post a summary comment on each pull request").option("--no-comment", "don't post a summary comment").option("--review-comments", "add inline review comments on changed lines").option("--no-review-comments", "don't add inline review comments").option("--commit-status", "report a commit status with the health score").option("--no-commit-status", "don't report a commit status").option("-y, --yes", "skip prompts; print the current settings").option("-c, --cwd <cwd>", "working directory", process.cwd()).option("--color", "force colored output").option("--no-color", "disable colored output (also honors NO_COLOR)").action(async (_options, command) => {
3592
- const { ciConfigAction } = await import("./ci-S43tmiRM.js");
3593
+ const { ciConfigAction } = await import("./ci-D_ENKPGK.js");
3593
3594
  return ciConfigAction(command.optsWithGlobals());
3594
3595
  });
3595
3596
  ci.command("upgrade").description("Upgrade the CI workflow to the action's current major").option(...providerOption).option(...prOption).option("-y, --yes", "skip prompts").option("-c, --cwd <cwd>", "working directory", process.cwd()).option("--color", "force colored output").option("--no-color", "disable colored output (also honors NO_COLOR)").action(async (_options, command) => {
3596
- const { ciUpgradeAction } = await import("./ci-S43tmiRM.js");
3597
+ const { ciUpgradeAction } = await import("./ci-D_ENKPGK.js");
3597
3598
  return ciUpgradeAction(command.optsWithGlobals());
3598
3599
  });
3599
3600
  program.command("version").description("show the version with Node and platform info").option("--color", "force colored output").option("--no-color", "disable colored output (also honors NO_COLOR)").action(async () => {
3600
- const { versionAction } = await import("./version-0CrqwW3U.js");
3601
+ const { versionAction } = await import("./version-D7x_oJ7a.js");
3601
3602
  return versionAction();
3602
3603
  });
3603
3604
  const rules = program.command("rules").description("List, explain, and configure which React Doctor rules run");
3604
3605
  rules.command("list").description("List rules and the severity they run at under your config").option("--category <name>", "only show rules in a category (e.g. Performance)").option("--tag <name>", "only show rules with a tag (e.g. design, test-noise)").option("--framework <name>", "only show rules for a framework (e.g. global, nextjs)").option("--configured", "only show rules your config has changed from the default").option("--json", "output a structured JSON array").option("-c, --cwd <cwd>", "working directory", process.cwd()).action(async (_options, command) => {
3605
- const { rulesListAction } = await import("./rules-ByH9CzFb.js");
3606
+ const { rulesListAction } = await import("./rules-CY6HF12H.js");
3606
3607
  return rulesListAction(command.optsWithGlobals());
3607
3608
  });
3608
3609
  rules.command("explain <rule>").description("Explain why a rule matters, its current severity, and how to configure it").option("--json", "output a structured JSON object").option("-c, --cwd <cwd>", "working directory", process.cwd()).action(async (rule, _options, command) => {
3609
- const { rulesExplainAction } = await import("./rules-ByH9CzFb.js");
3610
+ const { rulesExplainAction } = await import("./rules-CY6HF12H.js");
3610
3611
  return rulesExplainAction(rule, command.optsWithGlobals());
3611
3612
  });
3612
3613
  rules.command("set <rule> <severity>").description("Set a rule's severity: off, warn, or error").option("-c, --cwd <cwd>", "working directory", process.cwd()).action(async (rule, severity, _options, command) => {
3613
- const { rulesSetAction } = await import("./rules-ByH9CzFb.js");
3614
+ const { rulesSetAction } = await import("./rules-CY6HF12H.js");
3614
3615
  return rulesSetAction(rule, severity, command.optsWithGlobals());
3615
3616
  });
3616
3617
  rules.command("enable <rule>").description("Enable a rule at its recommended severity (or pass --severity)").option("--severity <level>", "severity to enable at: warn or error").option("-c, --cwd <cwd>", "working directory", process.cwd()).action(async (rule, _options, command) => {
3617
- const { rulesEnableAction } = await import("./rules-ByH9CzFb.js");
3618
+ const { rulesEnableAction } = await import("./rules-CY6HF12H.js");
3618
3619
  return rulesEnableAction(rule, command.optsWithGlobals());
3619
3620
  });
3620
3621
  rules.command("disable <rule>").description("Disable a rule so it never runs").option("-c, --cwd <cwd>", "working directory", process.cwd()).action(async (rule, _options, command) => {
3621
- const { rulesDisableAction } = await import("./rules-ByH9CzFb.js");
3622
+ const { rulesDisableAction } = await import("./rules-CY6HF12H.js");
3622
3623
  return rulesDisableAction(rule, command.optsWithGlobals());
3623
3624
  });
3624
3625
  rules.command("category <category> <severity>").description("Set the severity for a whole category (off, warn, error)").option("-c, --cwd <cwd>", "working directory", process.cwd()).action(async (category, severity, _options, command) => {
3625
- const { rulesCategoryAction } = await import("./rules-ByH9CzFb.js");
3626
+ const { rulesCategoryAction } = await import("./rules-CY6HF12H.js");
3626
3627
  return rulesCategoryAction(category, severity, command.optsWithGlobals());
3627
3628
  });
3628
3629
  rules.command("ignore-tag <tag>").description("Skip a whole rule family by tag before linting (e.g. design)").option("-c, --cwd <cwd>", "working directory", process.cwd()).action(async (tag, _options, command) => {
3629
- const { rulesIgnoreTagAction } = await import("./rules-ByH9CzFb.js");
3630
+ const { rulesIgnoreTagAction } = await import("./rules-CY6HF12H.js");
3630
3631
  return rulesIgnoreTagAction(tag, command.optsWithGlobals());
3631
3632
  });
3632
3633
  rules.command("unignore-tag <tag>").description("Stop ignoring a tag previously skipped via ignore-tag").option("-c, --cwd <cwd>", "working directory", process.cwd()).action(async (tag, _options, command) => {
3633
- const { rulesUnignoreTagAction } = await import("./rules-ByH9CzFb.js");
3634
+ const { rulesUnignoreTagAction } = await import("./rules-CY6HF12H.js");
3634
3635
  return rulesUnignoreTagAction(tag, command.optsWithGlobals());
3635
3636
  });
3636
3637
  program.command("experimental-tui [directory]", { hidden: true }).description("[experimental] interactive, scrollable scan report").option("--blocking <level>", "severity that fails CI: error (default), warning, or none (advisory)").option("--color", "force colored output").option("--no-color", "disable colored output (also honors NO_COLOR)").addOption(new Option("--no-dead-code").hideHelp()).option("--no-supply-chain", "skip the dependency supply-chain scan").option("--score", "only print the numeric score (for scripts and CI)").option("--no-score", "skip the score API, the share URL, and crash reporting").option("--no-cache", "disable all scan caches for this run").option("--max-duration <seconds>", MAX_DURATION_OPTION_DESCRIPTION).option("-p, --project <names>", "scan specific workspace projects (comma-separated, or *)").option("-y, --yes", "skip the project prompt and scan every discovered project").action(async (directory = ".", _localOptions, command) => {
3637
- const { runScanCommand } = await import("./scan-Cv_Bwsqc.js");
3638
+ const { runScanCommand } = await import("./scan-BZn-K1Xq.js");
3638
3639
  return runScanCommand({
3639
3640
  directory,
3640
3641
  flags: command.optsWithGlobals(),
@@ -3674,4 +3675,4 @@ Promise.resolve().then(() => assertNoRemovedFlags(process.argv)).then(() => prog
3674
3675
  export {};
3675
3676
 
3676
3677
  //# sourceMappingURL=cli.js.map
3677
- //# debugId=01a511d3-2f70-50c3-8de6-424d199534ba
3678
+ //# debugId=d3696fb6-15d5-5a85-b708-3f058c610990
@@ -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]="f1bdf9d8-61d1-54e9-a5a9-79e3bd4e4f5c")}catch(e){}}();
3
- import { t as inspectAction } from "./inspect-CKjzI6gB.js";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="57626291-135a-5ceb-a0df-95a1afbf4a97")}catch(e){}}();
3
+ import { t as inspectAction } from "./inspect-Bu0U8NZ5.js";
4
4
  //#region src/cli/commands/design.ts
5
5
  const designAction = async (directory, flags) => inspectAction(directory, {
6
6
  ...flags,
@@ -10,5 +10,5 @@ const designAction = async (directory, flags) => inspectAction(directory, {
10
10
  //#endregion
11
11
  export { designAction };
12
12
 
13
- //# sourceMappingURL=design-D4ctp88p.js.map
14
- //# debugId=f1bdf9d8-61d1-54e9-a5a9-79e3bd4e4f5c
13
+ //# sourceMappingURL=design-DV4k7slC.js.map
14
+ //# debugId=57626291-135a-5ceb-a0df-95a1afbf4a97
@@ -1,9 +1,9 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="17e2f835-4349-5113-af45-e629ce1701a8")}catch(e){}}();
3
- import { d as isJsonModeActive, m as writeJsonCancellationReport } from "./record-metric-CQTcuE_T.js";
4
- import { n as shutdownTelemetry, r as flushSentry } from "./telemetry-runtime-CbJQ0K-c.js";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4982959c-558d-5ca1-a714-cfa44ef2933b")}catch(e){}}();
3
+ import { d as isJsonModeActive, m as writeJsonCancellationReport } from "./record-metric-BK9LFZPO.js";
4
+ import { n as shutdownTelemetry, r as flushSentry } from "./telemetry-runtime-CdxHMIQV.js";
5
5
  import { t as activeScanAbortRegistry } from "./active-scan-abort-registry-CCTgal0O.js";
6
- import { n as buildFooterLinkLines, t as buildSectionDivider } from "./build-section-divider-gekJe2aO.js";
6
+ import { n as buildFooterLinkLines, t as buildSectionDivider } from "./build-section-divider-CAWXRUMJ.js";
7
7
  //#region src/cli/utils/active-tui-renderer.ts
8
8
  let activeTuiRenderer = null;
9
9
  const registerActiveTuiRenderer = (renderer) => {
@@ -50,5 +50,5 @@ const exitGracefully = () => {
50
50
  //#endregion
51
51
  export { registerActiveTuiRenderer as n, exitGracefully as t };
52
52
 
53
- //# sourceMappingURL=exit-gracefully-D69nyRA4.js.map
54
- //# debugId=17e2f835-4349-5113-af45-e629ce1701a8
53
+ //# sourceMappingURL=exit-gracefully-mMDXRxMF.js.map
54
+ //# debugId=4982959c-558d-5ca1-a714-cfa44ef2933b
@@ -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]="0749a5aa-da12-5360-a4ed-92fe7807b326")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3aa1ff26-7fae-50a3-b6ad-26b60fb9a5cd")}catch(e){}}();
3
3
  import { ct as CANONICAL_DISCORD_URL, lt as CANONICAL_GITHUB_URL, u as METRIC } from "./constants-CgtYeXfx.js";
4
- import { Ln as isErrnoException, Ot as highlighter, _ as VERSION, _t as formatErrorChain, jt as isReactDoctorError, rn as error, t as recordCount, un as gen, vt as formatReactDoctorError, yn as runSync } from "./record-metric-CQTcuE_T.js";
5
- import { c as isNpmCacheCorruptionError, l as formatEnvironmentError, s as formatNpmCacheCorruptionError, u as isEnvironmentError } from "./telemetry-runtime-CbJQ0K-c.js";
4
+ import { Ln as isErrnoException, Ot as highlighter, _ as VERSION, _t as formatErrorChain, jt as isReactDoctorError, rn as error, t as recordCount, un as gen, vt as formatReactDoctorError, yn as runSync } from "./record-metric-BK9LFZPO.js";
5
+ import { c as isNpmCacheCorruptionError, l as formatEnvironmentError, s as formatNpmCacheCorruptionError, u as isEnvironmentError } from "./telemetry-runtime-CdxHMIQV.js";
6
6
  //#region src/cli/utils/handle-error.ts
7
7
  const OTLP_ENDPOINT_ENVIRONMENT_VARIABLE = "REACT_DOCTOR_OTLP_ENDPOINT";
8
8
  const OTLP_AUTH_HEADER_ENVIRONMENT_VARIABLE = "REACT_DOCTOR_OTLP_AUTH_HEADER";
@@ -111,5 +111,5 @@ const handleUserError = (error$1, options = {}) => {
111
111
  //#endregion
112
112
  export { handleUserError as n, handleError as t };
113
113
 
114
- //# sourceMappingURL=handle-error-BE3O3Ugs.js.map
115
- //# debugId=0749a5aa-da12-5360-a4ed-92fe7807b326
114
+ //# sourceMappingURL=handle-error-DJtDTgb4.js.map
115
+ //# debugId=3aa1ff26-7fae-50a3-b6ad-26b60fb9a5cd
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
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]="6431f701-1905-52ae-becf-0f86749ce831")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c7496d33-4f38-5fe4-9528-8be6b127ea0b")}catch(e){}}();
3
3
  import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-ChKA3wi6.js";
4
4
  import { createRequire } from "node:module";
5
5
  import * as fs$1$2 from "node:fs";
@@ -67450,21 +67450,24 @@ const isPackageJsonReanimatedAware = (packageJson) => {
67450
67450
  };
67451
67451
  return Object.hasOwn(allDependencies, REANIMATED_DEPENDENCY_NAME$1);
67452
67452
  };
67453
- const SSR_DEPENDENCY_NAMES = new Set([
67454
- "@react-router/cloudflare",
67455
- "@react-router/node",
67456
- "@react-router/serve",
67457
- "vike",
67458
- "vite-plugin-ssr"
67459
- ]);
67460
- const isPackageJsonSsrAware = (packageJson) => {
67453
+ const hasAnyDependency = (packageJson, packageNames) => {
67461
67454
  const allDependencies = {
67462
67455
  ...packageJson.peerDependencies,
67463
67456
  ...packageJson.dependencies,
67464
67457
  ...packageJson.devDependencies,
67465
67458
  ...packageJson.optionalDependencies
67466
67459
  };
67467
- return Object.keys(allDependencies).some((packageName) => SSR_DEPENDENCY_NAMES.has(packageName));
67460
+ return packageNames.some((packageName) => allDependencies[packageName] !== void 0);
67461
+ };
67462
+ const SSR_DEPENDENCY_NAMES = [
67463
+ "@react-router/cloudflare",
67464
+ "@react-router/node",
67465
+ "@react-router/serve",
67466
+ "vike",
67467
+ "vite-plugin-ssr"
67468
+ ];
67469
+ const isPackageJsonSsrAware = (packageJson) => {
67470
+ return hasAnyDependency(packageJson, SSR_DEPENDENCY_NAMES);
67468
67471
  };
67469
67472
  const getWorkspacePatterns = (rootDirectory, packageJson) => {
67470
67473
  const pnpmPatterns = parsePnpmWorkspacePatterns(rootDirectory);
@@ -67582,15 +67585,6 @@ const getTanStackQueryVersion = (packageJson) => {
67582
67585
  packageNames: TANSTACK_REACT_QUERY_PACKAGES
67583
67586
  });
67584
67587
  };
67585
- const hasAnyDependency = (packageJson, packageNames) => {
67586
- const allDependencies = {
67587
- ...packageJson.peerDependencies,
67588
- ...packageJson.dependencies,
67589
- ...packageJson.devDependencies,
67590
- ...packageJson.optionalDependencies
67591
- };
67592
- return packageNames.some((packageName) => allDependencies[packageName] !== void 0);
67593
- };
67594
67588
  const BASE_UI_PACKAGES = ["@base-ui-components/react", "@base-ui/react"];
67595
67589
  const hasBaseUiDependency = (packageJson) => hasAnyDependency(packageJson, BASE_UI_PACKAGES);
67596
67590
  const RADIX_UNIFIED_PACKAGE = "radix-ui";
@@ -67627,13 +67621,7 @@ const I18N_PACKAGES = [
67627
67621
  "react-intl-universal"
67628
67622
  ];
67629
67623
  const hasI18nDependency = (packageJson) => {
67630
- const allDependencies = {
67631
- ...packageJson.peerDependencies,
67632
- ...packageJson.dependencies,
67633
- ...packageJson.devDependencies,
67634
- ...packageJson.optionalDependencies
67635
- };
67636
- return I18N_PACKAGES.some((packageName) => allDependencies[packageName] !== void 0);
67624
+ return hasAnyDependency(packageJson, I18N_PACKAGES);
67637
67625
  };
67638
67626
  const REACT_ARIA_COMPONENT_PACKAGES = ["react-aria-components"];
67639
67627
  const TANSTACK_TABLE_PACKAGES = ["@tanstack/react-table"];
@@ -68724,7 +68712,6 @@ const warnConfigIssue = (message) => {
68724
68712
  process.stderr.write(`[react-doctor] ${message}\n`);
68725
68713
  };
68726
68714
  const isStringArray = (value) => Array.isArray(value) && value.every((entry) => typeof entry === "string");
68727
- const collectStringList = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : [];
68728
68715
  const hasMatchingRuleOverride = (ruleIds, ruleIdentifier) => {
68729
68716
  if (ruleIds.size === 0) return true;
68730
68717
  for (const ruleId of ruleIds) if (isSameRuleKey(ruleId, ruleIdentifier)) return true;
@@ -68758,11 +68745,11 @@ const compileIgnoreOverrides = (userConfig) => {
68758
68745
  return overrides.flatMap((entry, index) => {
68759
68746
  const validated = validateOverrideEntry(entry, index);
68760
68747
  if (!validated) return [];
68761
- const filePatterns = compileGlobPatternsLenient(collectStringList(validated.files), (error) => warnConfigIssue(`ignore.overrides[${index}]: ${error.message}`));
68748
+ const filePatterns = compileGlobPatternsLenient(validated.files, (error) => warnConfigIssue(`ignore.overrides[${index}]: ${error.message}`));
68762
68749
  if (filePatterns.length === 0) return [];
68763
68750
  return [{
68764
68751
  filePatterns,
68765
- ruleIds: new Set(collectStringList(validated.rules))
68752
+ ruleIds: new Set(validated.rules ?? [])
68766
68753
  }];
68767
68754
  });
68768
68755
  };
@@ -79302,4 +79289,4 @@ const toJsonReport = (result, options) => buildJsonReport({
79302
79289
  export { AmbiguousProjectError, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, ProjectNotFoundError, ReactDoctorError, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, hasReactRuntime, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
79303
79290
 
79304
79291
  //# sourceMappingURL=index.js.map
79305
- //# debugId=6431f701-1905-52ae-becf-0f86749ce831
79292
+ //# debugId=c7496d33-4f38-5fe4-9528-8be6b127ea0b
@@ -1,19 +1,19 @@
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]="4d01d0a1-6ce2-5585-a23e-ca2cce2157c7")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="24c7b5b4-58fe-591a-b00a-0a3780b7d67e")}catch(e){}}();
3
3
  import { N as discardPrefetchedGitCommands, T as STAGED_SNAPSHOT_ADDITIONAL_CONFIG_FILENAMES, lt as CANONICAL_GITHUB_URL, u as METRIC, w as STAGED_FILES_TEMP_DIR_PREFIX, xn as STAGED_FILES_PROJECT_CONFIG_FILENAMES } from "./constants-CgtYeXfx.js";
4
- import { A as Git, D as isCodingAgentEnvironment, E as isCiOrCodingAgentEnvironment, Et as hasSupportedFrameworkOrLibrary, G as StagedFiles, Gt as resolveScanTarget, Ht as remainingDeadlineBudgetMs, Ln as isErrnoException, Lt as listWorkspacePackages, Ot as highlighter, Pn as messageFromUnknown, Qt as toRelativePath, S as isDebugFlagEnabled, St as getDiffInfo, Tn as provide, X as buildJsonReport, _ as VERSION, bt as getChangedLineRanges, dt as detectAiTrainingEnvironment, f as setJsonReportDirectory, ft as discoverSupportedSubprojects, g as writeJsonReport, gt as findLegacyConfig, h as writeJsonErrorReport, hn as provide$1, n as recordDistribution, p as setJsonReportMode, t as recordCount, u as enableJsonMode, un as gen, vn as runPromise, y as CliInputError, yt as getBaselineDiffPlan, zn as isPlainObject, zt as mapWithConcurrency } from "./record-metric-CQTcuE_T.js";
5
- import { n as shutdownTelemetry, o as isExpectedUserError, r as flushSentry } from "./telemetry-runtime-CbJQ0K-c.js";
6
- import { n as handleUserError, t as handleError } from "./handle-error-BE3O3Ugs.js";
7
- import { t as reportErrorToSentry } from "./report-error-DbKdfCEt.js";
4
+ import { A as Git, D as isCodingAgentEnvironment, E as isCiOrCodingAgentEnvironment, Et as hasSupportedFrameworkOrLibrary, G as StagedFiles, Gt as resolveScanTarget, Ht as remainingDeadlineBudgetMs, Ln as isErrnoException, Lt as listWorkspacePackages, Ot as highlighter, Pn as messageFromUnknown, Qt as toRelativePath, S as isDebugFlagEnabled, St as getDiffInfo, Tn as provide, X as buildJsonReport, _ as VERSION, bt as getChangedLineRanges, dt as detectAiTrainingEnvironment, f as setJsonReportDirectory, ft as discoverSupportedSubprojects, g as writeJsonReport, gt as findLegacyConfig, h as writeJsonErrorReport, hn as provide$1, n as recordDistribution, p as setJsonReportMode, t as recordCount, u as enableJsonMode, un as gen, vn as runPromise, y as CliInputError, yt as getBaselineDiffPlan, zn as isPlainObject, zt as mapWithConcurrency } from "./record-metric-BK9LFZPO.js";
5
+ import { n as shutdownTelemetry, o as isExpectedUserError, r as flushSentry } from "./telemetry-runtime-CdxHMIQV.js";
6
+ import { n as handleUserError, t as handleError } from "./handle-error-DJtDTgb4.js";
7
+ import { t as reportErrorToSentry } from "./report-error-CtLMZsVf.js";
8
8
  import { t as toForwardSlashes } from "./path-format-By20mo8A.js";
9
- import { N as cliLogger, c as spinner, i as hasDoctorScript, j as runGitRaw, n as findNearestPackageDirectory, o as isSpinnerSilent, s as setSpinnerSilent } from "./install-doctor-script-BAGTNvoL.js";
10
- import { a as readReactDoctorWorkflow, c as workflowUsesV1Action, i as isReactDoctorWorkflowInstalled, l as prompts, s as upgradeWorkflowActionToV2 } from "./install-github-workflow-u0qIsWNy.js";
11
- import { c as openWorkflowPullRequest, i as warnDeprecatedDiff, l as stageWorkflowFile, r as resolveScope, s as resolveBlockingLevel, t as finalizeScope } from "./resolve-scope-qNuGZ908.js";
12
- import { t as shouldSkipPrompts } from "./should-skip-prompts-BbpOXwiH.js";
13
- import { A as createInvocationInspect, C as detectLaunchableAgents, D as buildHandoffPayload, E as launchCliAgent, M as resolveMergeBaseRef, N as printHeadlessReport, O as collectProjectSourceFiles, R as printDiagnosticsDump, S as setUpGitHubActions, T as copyToClipboard, U as buildEmptyReportMessage, V as filterDiagnosticsByCategories, W as resolveInvocationOxlintConcurrency, _ as retryMissingProjectScores, a as validateModeFlags, b as filterScansForSurface, c as partitionProjectScanOutcomes, d as buildCodeFrame, f as resolveProjectScan, g as resolveProjectRelativeDirectory, h as resolveProjectSourceFilePaths, i as validateIncludeUntrackedScope, j as inspect, k as deduplicateProjectScans, l as discoverWorkspacePackages, m as resolveProjectDiffIncludePaths, n as formatSkippedProjectsMessage, o as resolveExcludedProjectDirectories, p as resolveProjectChangedLineRanges, s as projectManifestChanged, t as shouldFailScanGate, u as selectProjects, v as resolveWorkspaceDeadCodeOwner, w as CLI_AGENT_BINARIES, x as countUniqueScannedFiles, y as resolveCliInspectOptions } from "./should-fail-scan-gate-fan2kMeu.js";
14
- import { a as recordGate, g as loadAgentInstall, i as readPreference, o as runMigrations, p as SETUP_HINT_EVENT, r as isGatePending, s as writePreference, u as HANDOFF_TARGET_PREFERENCE_ID } from "./report-workflow-result-w7YFI8kv.js";
15
- import { a as askUpgradeActionVersion, c as recordCiPromptDecision, i as installReactDoctorAgentHooks, l as hasHandledActionUpgrade, o as askAddToGitHubActions, r as findAgentsWithOutdatedReactDoctorHooks, s as hasHandledCiPrompt, t as getSkillSourceDirectory, u as recordActionUpgradeDecision } from "./install-react-doctor-D4nc_F4X.js";
16
- import { t as readObjectFile } from "./read-object-file-lnRYcs-x.js";
9
+ import { N as cliLogger, c as spinner, i as hasDoctorScript, j as runGitRaw, n as findNearestPackageDirectory, o as isSpinnerSilent, s as setSpinnerSilent } from "./install-doctor-script-BHwA_Cjy.js";
10
+ import { a as readReactDoctorWorkflow, c as workflowUsesV1Action, i as isReactDoctorWorkflowInstalled, l as prompts, s as upgradeWorkflowActionToV2 } from "./install-github-workflow-BEOuMqAj.js";
11
+ import { c as openWorkflowPullRequest, i as warnDeprecatedDiff, l as stageWorkflowFile, r as resolveScope, s as resolveBlockingLevel, t as finalizeScope } from "./resolve-scope-C7ZeygIc.js";
12
+ import { t as shouldSkipPrompts } from "./should-skip-prompts-CobsVjgV.js";
13
+ import { A as createInvocationInspect, C as detectLaunchableAgents, D as buildHandoffPayload, E as launchCliAgent, M as resolveMergeBaseRef, N as printHeadlessReport, O as collectProjectSourceFiles, R as printDiagnosticsDump, S as setUpGitHubActions, T as copyToClipboard, U as buildEmptyReportMessage, V as filterDiagnosticsByCategories, W as resolveInvocationOxlintConcurrency, _ as retryMissingProjectScores, a as validateModeFlags, b as filterScansForSurface, c as partitionProjectScanOutcomes, d as buildCodeFrame, f as resolveProjectScan, g as resolveProjectRelativeDirectory, h as resolveProjectSourceFilePaths, i as validateIncludeUntrackedScope, j as inspect, k as deduplicateProjectScans, l as discoverWorkspacePackages, m as resolveProjectDiffIncludePaths, n as formatSkippedProjectsMessage, o as resolveExcludedProjectDirectories, p as resolveProjectChangedLineRanges, s as projectManifestChanged, t as shouldFailScanGate, u as selectProjects, v as resolveWorkspaceDeadCodeOwner, w as CLI_AGENT_BINARIES, x as countUniqueScannedFiles, y as resolveCliInspectOptions } from "./should-fail-scan-gate-DpWqdECw.js";
14
+ import { a as recordGate, g as loadAgentInstall, i as readPreference, o as runMigrations, p as SETUP_HINT_EVENT, r as isGatePending, s as writePreference, u as HANDOFF_TARGET_PREFERENCE_ID } from "./report-workflow-result-D0p8q7rJ.js";
15
+ import { a as askUpgradeActionVersion, c as recordCiPromptDecision, i as installReactDoctorAgentHooks, l as hasHandledActionUpgrade, o as askAddToGitHubActions, r as findAgentsWithOutdatedReactDoctorHooks, s as hasHandledCiPrompt, t as getSkillSourceDirectory, u as recordActionUpgradeDecision } from "./install-react-doctor-Ck9IDUVl.js";
16
+ import { t as readObjectFile } from "./read-object-file-w4Zh0_Lj.js";
17
17
  import * as fs$1 from "node:fs";
18
18
  import * as path$1 from "node:path";
19
19
  import { tmpdir } from "node:os";
@@ -1461,5 +1461,5 @@ const inspectAction = async (directory, flags, invocationCommand = "inspect", se
1461
1461
  //#endregion
1462
1462
  export { warnDeprecatedFailOn as n, runProjectMigrations as r, inspectAction as t };
1463
1463
 
1464
- //# sourceMappingURL=inspect-CKjzI6gB.js.map
1465
- //# debugId=4d01d0a1-6ce2-5585-a23e-ca2cce2157c7
1464
+ //# sourceMappingURL=inspect-Bu0U8NZ5.js.map
1465
+ //# debugId=24c7b5b4-58fe-591a-b00a-0a3780b7d67e
@@ -1,12 +1,12 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="eb60ef56-6731-5af7-839d-6f3261897a81")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="da32bd41-12a9-5817-8b98-48f530f01f0b")}catch(e){}}();
3
3
  import { u as METRIC } from "./constants-CgtYeXfx.js";
4
- import { t as recordCount, yn as runSync } from "./record-metric-CQTcuE_T.js";
5
- import { o as isExpectedUserError } from "./telemetry-runtime-CbJQ0K-c.js";
6
- import { n as handleUserError, t as handleError } from "./handle-error-BE3O3Ugs.js";
7
- import { t as reportErrorToSentry } from "./report-error-DbKdfCEt.js";
8
- import { t as printBrandedHeader } from "./print-branded-header-BwVcjvPZ.js";
9
- import { n as runInstallReactDoctor } from "./install-react-doctor-D4nc_F4X.js";
4
+ import { t as recordCount, yn as runSync } from "./record-metric-BK9LFZPO.js";
5
+ import { o as isExpectedUserError } from "./telemetry-runtime-CdxHMIQV.js";
6
+ import { n as handleUserError, t as handleError } from "./handle-error-DJtDTgb4.js";
7
+ import { t as reportErrorToSentry } from "./report-error-CtLMZsVf.js";
8
+ import { t as printBrandedHeader } from "./print-branded-header-ChR6uLrv.js";
9
+ import { n as runInstallReactDoctor } from "./install-react-doctor-Ck9IDUVl.js";
10
10
  //#region src/cli/commands/install.ts
11
11
  const installAction = async (options, command) => {
12
12
  recordCount(METRIC.cliInvoked, 1, { command: "install" });
@@ -30,5 +30,5 @@ const installAction = async (options, command) => {
30
30
  //#endregion
31
31
  export { installAction };
32
32
 
33
- //# sourceMappingURL=install-PndnbaOs.js.map
34
- //# debugId=eb60ef56-6731-5af7-839d-6f3261897a81
33
+ //# sourceMappingURL=install-BFlXeoez.js.map
34
+ //# debugId=da32bd41-12a9-5817-8b98-48f530f01f0b
@@ -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]="594b023c-7a86-56af-96c4-53e510b4f791")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="789306e0-d655-5813-b48a-c8943e47817e")}catch(e){}}();
3
3
  import { B as resolveGitCommand, g as RUN_GIT_MAX_BUFFER_BYTES } from "./constants-CgtYeXfx.js";
4
- import { Ot as highlighter, an as log, b as isNonInteractiveEnvironment, in as info$1, on as warn, rn as error$1, yn as runSync } from "./record-metric-CQTcuE_T.js";
4
+ import { Ot as highlighter, an as log, b as isNonInteractiveEnvironment, in as info$1, on as warn, rn as error$1, yn as runSync } from "./record-metric-BK9LFZPO.js";
5
5
  import { a as chalk, i as stripAnsi, t as eastAsianWidth } from "./get-east-asian-width-DRPy7dqz.js";
6
6
  import * as fs$1 from "node:fs";
7
7
  import * as path$1 from "node:path";
@@ -2814,5 +2814,5 @@ const installReactDoctorScriptStep = (projectRoot) => {
2814
2814
  //#endregion
2815
2815
  export { runGitAsync as A, isRecord as C, readPackageJson as D, packageHasRecordKey as E, writeJsonFile as M, cliLogger as N, resolveGitPath as O, getPackageJsonPath as S, packageHasNestedRecordKey as T, REACT_DOCTOR_COMMAND as _, installReactDoctorScriptStep as a, VITE_PLUS_HOOKS_PATH as b, spinner as c, HUSKY_HOOKS_PATH as d, LEFTHOOK_CONFIG_FILES as f, PRE_COMMIT_CONFIG_FILE as g, OVERCOMMIT_CONFIG_FILE as h, hasDoctorScript as i, runGitRaw as j, runGit as k, HOOK_FILE_NAME as l, NON_BLOCKING_REACT_DOCTOR_COMMAND as m, findNearestPackageDirectory as n, isSpinnerSilent as o, LEGACY_HOOK_RUNNER_RELATIVE_PATH as p, hasDoctorDependency as r, setSpinnerSilent as s, DOCTOR_PACKAGE_NAME as t, HOOK_RELATIVE_PATH as u, SIMPLE_GIT_HOOKS_CONFIG_FILE as v, packageHasDependency as w, ensureTrailingNewline as x, SIMPLE_GIT_HOOKS_PACKAGE_JSON_KEY as y };
2816
2816
 
2817
- //# sourceMappingURL=install-doctor-script-BAGTNvoL.js.map
2818
- //# debugId=594b023c-7a86-56af-96c4-53e510b4f791
2817
+ //# sourceMappingURL=install-doctor-script-BHwA_Cjy.js.map
2818
+ //# debugId=789306e0-d655-5813-b48a-c8943e47817e
@@ -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]="21aae539-3e9a-51fe-8c99-4caaf6ec8ab1")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="80868789-49c4-5f11-a0b4-8be2d0f4a464")}catch(e){}}();
3
3
  import { s as GH_DEFAULT_BRANCH_PROBE_TIMEOUT_MS } from "./constants-CgtYeXfx.js";
4
4
  import { t as unrefStdin } from "./unref-stdin-D-NZBFpg.js";
5
- import { N as cliLogger } from "./install-doctor-script-BAGTNvoL.js";
5
+ import { N as cliLogger } from "./install-doctor-script-BHwA_Cjy.js";
6
6
  import { createRequire } from "node:module";
7
7
  import * as fs$1 from "node:fs";
8
8
  import * as path$1 from "node:path";
@@ -267,5 +267,5 @@ const upgradeReactDoctorWorkflowInPlace = (projectRoot) => {
267
267
  //#endregion
268
268
  export { readReactDoctorWorkflow as a, workflowUsesV1Action as c, detectDefaultBranch as d, runCommand as f, isReactDoctorWorkflowInstalled as i, prompts as l, getReactDoctorWorkflowPath as n, upgradeReactDoctorWorkflowInPlace as o, installReactDoctorWorkflow as r, upgradeWorkflowActionToV2 as s, buildWorkflowContent as t, isCommandAvailable as u };
269
269
 
270
- //# sourceMappingURL=install-github-workflow-u0qIsWNy.js.map
271
- //# debugId=21aae539-3e9a-51fe-8c99-4caaf6ec8ab1
270
+ //# sourceMappingURL=install-github-workflow-BEOuMqAj.js.map
271
+ //# debugId=80868789-49c4-5f11-a0b4-8be2d0f4a464
@@ -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]="cd88fa13-a4b1-59d5-a84d-65bfc5c8b6a9")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ae5da5f5-ef26-531a-8977-b9df1deefb05")}catch(e){}}();
3
3
  import { kt as GITHUB_ACTIONS_SETUP_URL, o as CI_TRUST_COMPANIES, pn as SKILL_NAME, u as METRIC } from "./constants-CgtYeXfx.js";
4
- import { Ln as isErrnoException, Ot as highlighter, t as recordCount, y as CliInputError } from "./record-metric-CQTcuE_T.js";
5
- import { C as isRecord, D as readPackageJson, E as packageHasRecordKey, M as writeJsonFile, N as cliLogger, O as resolveGitPath, S as getPackageJsonPath, T as packageHasNestedRecordKey, _ as REACT_DOCTOR_COMMAND, a as installReactDoctorScriptStep, b as VITE_PLUS_HOOKS_PATH, c as spinner, d as HUSKY_HOOKS_PATH, f as LEFTHOOK_CONFIG_FILES, g as PRE_COMMIT_CONFIG_FILE, h as OVERCOMMIT_CONFIG_FILE, k as runGit, l as HOOK_FILE_NAME, m as NON_BLOCKING_REACT_DOCTOR_COMMAND, n as findNearestPackageDirectory, p as LEGACY_HOOK_RUNNER_RELATIVE_PATH, r as hasDoctorDependency, t as DOCTOR_PACKAGE_NAME, u as HOOK_RELATIVE_PATH, w as packageHasDependency, x as ensureTrailingNewline } from "./install-doctor-script-BAGTNvoL.js";
6
- import { a as readReactDoctorWorkflow, c as workflowUsesV1Action, d as detectDefaultBranch, l as prompts, n as getReactDoctorWorkflowPath, o as upgradeReactDoctorWorkflowInPlace, r as installReactDoctorWorkflow } from "./install-github-workflow-u0qIsWNy.js";
7
- import { t as shouldSkipPrompts } from "./should-skip-prompts-BbpOXwiH.js";
8
- import { a as recordGate, c as ACTION_UPGRADE_EVENT, d as INSTALL_AGENTS_PREFERENCE_ID, g as loadAgentInstall, h as detectAvailableAgents, i as readPreference, l as CI_PITCH_EVENT, m as computeDefaultSelectedAgents, n as openUrl, r as isGatePending, s as writePreference, t as reportWorkflowResult } from "./report-workflow-result-w7YFI8kv.js";
4
+ import { Ln as isErrnoException, Ot as highlighter, t as recordCount, y as CliInputError } from "./record-metric-BK9LFZPO.js";
5
+ import { C as isRecord, D as readPackageJson, E as packageHasRecordKey, M as writeJsonFile, N as cliLogger, O as resolveGitPath, S as getPackageJsonPath, T as packageHasNestedRecordKey, _ as REACT_DOCTOR_COMMAND, a as installReactDoctorScriptStep, b as VITE_PLUS_HOOKS_PATH, c as spinner, d as HUSKY_HOOKS_PATH, f as LEFTHOOK_CONFIG_FILES, g as PRE_COMMIT_CONFIG_FILE, h as OVERCOMMIT_CONFIG_FILE, k as runGit, l as HOOK_FILE_NAME, m as NON_BLOCKING_REACT_DOCTOR_COMMAND, n as findNearestPackageDirectory, p as LEGACY_HOOK_RUNNER_RELATIVE_PATH, r as hasDoctorDependency, t as DOCTOR_PACKAGE_NAME, u as HOOK_RELATIVE_PATH, w as packageHasDependency, x as ensureTrailingNewline } from "./install-doctor-script-BHwA_Cjy.js";
6
+ import { a as readReactDoctorWorkflow, c as workflowUsesV1Action, d as detectDefaultBranch, l as prompts, n as getReactDoctorWorkflowPath, o as upgradeReactDoctorWorkflowInPlace, r as installReactDoctorWorkflow } from "./install-github-workflow-BEOuMqAj.js";
7
+ import { t as shouldSkipPrompts } from "./should-skip-prompts-CobsVjgV.js";
8
+ import { a as recordGate, c as ACTION_UPGRADE_EVENT, d as INSTALL_AGENTS_PREFERENCE_ID, g as loadAgentInstall, h as detectAvailableAgents, i as readPreference, l as CI_PITCH_EVENT, m as computeDefaultSelectedAgents, n as openUrl, r as isGatePending, s as writePreference, t as reportWorkflowResult } from "./report-workflow-result-D0p8q7rJ.js";
9
9
  import * as fs$1 from "node:fs";
10
10
  import * as path$1 from "node:path";
11
11
  import { execFile } from "node:child_process";
@@ -1156,5 +1156,5 @@ const runInstallReactDoctor = async (options = {}) => {
1156
1156
  //#endregion
1157
1157
  export { askUpgradeActionVersion as a, recordCiPromptDecision as c, installReactDoctorAgentHooks as i, hasHandledActionUpgrade as l, runInstallReactDoctor as n, askAddToGitHubActions as o, findAgentsWithOutdatedReactDoctorHooks as r, hasHandledCiPrompt as s, getSkillSourceDirectory as t, recordActionUpgradeDecision as u };
1158
1158
 
1159
- //# sourceMappingURL=install-react-doctor-D4nc_F4X.js.map
1160
- //# debugId=cd88fa13-a4b1-59d5-a84d-65bfc5c8b6a9
1159
+ //# sourceMappingURL=install-react-doctor-Ck9IDUVl.js.map
1160
+ //# debugId=ae5da5f5-ef26-531a-8977-b9df1deefb05
@@ -1,9 +1,9 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5ec78c7a-3611-5a0e-adf8-2753976baa58")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="baec0877-b11f-53ac-8153-fdf5f2c34653")}catch(e){}}();
3
3
  import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-ChKA3wi6.js";
4
4
  import { u as METRIC } from "./constants-CgtYeXfx.js";
5
- import { t as recordCount } from "./record-metric-CQTcuE_T.js";
6
- import { n as registerActiveTuiRenderer, t as exitGracefully } from "./exit-gracefully-D69nyRA4.js";
5
+ import { t as recordCount } from "./record-metric-BK9LFZPO.js";
6
+ import { n as registerActiveTuiRenderer, t as exitGracefully } from "./exit-gracefully-mMDXRxMF.js";
7
7
  import { a as chalk, i as stripAnsi, n as isFullWidth$1, r as isWide$1 } from "./get-east-asian-width-DRPy7dqz.js";
8
8
  import * as fs$1 from "node:fs";
9
9
  import fs from "node:fs";
@@ -25870,5 +25870,5 @@ var require_jsx_runtime = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25870
25870
  //#endregion
25871
25871
  export { useExitOnCtrlC as a, Spinner as c, useInput as d, Transform as f, Box as h, import_react as i, useStdout as l, Text as m, registerMountedTuiRenderer as n, terminalSymbols as o, render as p, useStdoutDimensions as r, isPrintableInput as s, require_jsx_runtime as t, useApp as u };
25872
25872
 
25873
- //# sourceMappingURL=jsx-runtime-DT94xKcX.js.map
25874
- //# debugId=5ec78c7a-3611-5a0e-adf8-2753976baa58
25873
+ //# sourceMappingURL=jsx-runtime-CgOxdFZS.js.map
25874
+ //# debugId=baec0877-b11f-53ac-8153-fdf5f2c34653
@@ -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]="c749b04b-27bf-525d-809e-bb66bbc5cd47")}catch(e){}}();
3
- import { Ot as highlighter, _ as VERSION, an as log, un as gen } from "./record-metric-CQTcuE_T.js";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5781df40-7c03-5604-a91c-49e1e5f9f841")}catch(e){}}();
3
+ import { Ot as highlighter, _ as VERSION, an as log, un as gen } from "./record-metric-BK9LFZPO.js";
4
4
  //#region src/cli/utils/print-branded-header.ts
5
5
  /**
6
6
  * Single branded line every command prints first when not in JSON
@@ -18,5 +18,5 @@ const printBrandedHeader = gen(function* () {
18
18
  //#endregion
19
19
  export { printBrandedHeader as t };
20
20
 
21
- //# sourceMappingURL=print-branded-header-BwVcjvPZ.js.map
22
- //# debugId=c749b04b-27bf-525d-809e-bb66bbc5cd47
21
+ //# sourceMappingURL=print-branded-header-ChR6uLrv.js.map
22
+ //# debugId=5781df40-7c03-5604-a91c-49e1e5f9f841