react-doctor 0.9.12-dev.8c2f03a → 0.9.12-dev.a163de9

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 (45) hide show
  1. package/README.md +27 -0
  2. package/dist/active-run-trace-dlIZeEvb.js +18 -0
  3. package/dist/active-scan-abort-registry-DwG6tSPy.js +28 -0
  4. package/dist/{build-section-divider-DuozMmwU.js → build-section-divider-DwhI0l-P.js} +8 -22
  5. package/dist/{ci-Bwd2LJZC.js → ci-BM5Bztiz.js} +12 -11
  6. package/dist/cli.js +77 -25
  7. package/dist/{design-Q4Umr_4T.js → design-BJm8XW5q.js} +4 -4
  8. package/dist/{devtools-D8NTVj81.js → devtools-BiC-AP3B.js} +3 -3
  9. package/dist/{exit-gracefully-vUI1H1zC.js → exit-gracefully-cFX-xHhy.js} +15 -9
  10. package/dist/get-east-asian-width-Cglw13G7.js +444 -0
  11. package/dist/{report-error-CAp5cil9.js → handle-error-DBoxwa4Y.js} +6 -61
  12. package/dist/index.d.ts +34 -2
  13. package/dist/index.js +415 -209
  14. package/dist/{inspect-RxIsB8bi.js → inspect-Cj9X2Cuj.js} +21 -19
  15. package/dist/{install-CI0nvC_v.js → install-DJE5tJBN.js} +9 -8
  16. package/dist/{install-doctor-script-BAmTZygh.js → install-doctor-script-Bwy0GRjB.js} +7 -449
  17. package/dist/{install-github-workflow-Dg2sosDx.js → install-github-workflow-CQL9QH8Q.js} +6 -6
  18. package/dist/{install-react-doctor-CIJcnTik.js → install-react-doctor-BC0tbnqe.js} +47 -45
  19. package/dist/{run-scan-app-CeNk17wq.js → jsx-runtime-BGIkB563.js} +280 -2769
  20. package/dist/{print-branded-header-kwnSGrfR.js → print-branded-header-B5xE0DP1.js} +4 -4
  21. package/dist/project-analysis-worker.js +3 -3
  22. package/dist/prompt-runtime-scan-url-G27i97Bd.js +240 -0
  23. package/dist/{read-object-file-m5uVvcBp.js → read-object-file-p5HY4kEb.js} +4 -4
  24. package/dist/{record-metric-DospZkfP.js → record-metric-B0l334ac.js} +419 -192
  25. package/dist/report-error-CxbHpLL8.js +64 -0
  26. package/dist/{report-workflow-result-D0GvvJtT.js → report-workflow-result-Dtn4MVZ_.js} +5 -5
  27. package/dist/{resolve-scope-eXawiGEH.js → resolve-scope-DFSO5zB7.js} +6 -6
  28. package/dist/{rules-C_xYDSz8.js → rules-DEUYP2QZ.js} +6 -6
  29. package/dist/run-scan-app-0v4YCLNw.js +2509 -0
  30. package/dist/runtime-scan/browser-probe.iife.js +855 -0
  31. package/dist/runtime-scan-CrdGMGtp.js +770 -0
  32. package/dist/sanitize-runtime-url-DMNbP5D7.js +76 -0
  33. package/dist/{scan-DIwsgV6M.js → scan-BjmlwnGK.js} +10 -22
  34. package/dist/{should-fail-scan-gate-BWTNIU5h.js → should-fail-scan-gate-DFrfU9H8.js} +23 -114
  35. package/dist/{should-skip-prompts-oK3MwWyB.js → should-skip-prompts-jB7AIlXO.js} +4 -4
  36. package/dist/should-use-tui-DwO2FSvM.js +25 -0
  37. package/dist/skills/improve-threejs/SKILL.md +102 -0
  38. package/dist/skills/performance/SKILL.md +113 -0
  39. package/dist/skills/react-doctor/SKILL.md +6 -0
  40. package/dist/{unref-stdin-BGZVK4sJ.js → telemetry-runtime-EpReAdpc.js} +5 -23
  41. package/dist/unref-stdin-BKT_s38a.js +12 -0
  42. package/dist/{version-9-2T2YQf.js → version-LTrxsytD.js} +4 -4
  43. package/dist/{why-BOiuB_qy.js → why-i7UomrTB.js} +4 -4
  44. package/dist/with-run-span-tKhCINUb.js +110 -0
  45. package/package.json +7 -4
package/dist/index.js CHANGED
@@ -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]="a17c28bc-da40-5fec-8489-037e933cd8c3")}catch(e){}}();
3
- import { i as __toESM$1, r as __require, t as __commonJSMin$1 } from "./chunk-ChKA3wi6.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]="7faf884e-554f-52d9-9d60-eb66987e6849")}catch(e){}}();
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 path$1$1 from "node:path";
6
6
  import path from "node:path";
@@ -25,7 +25,7 @@ import { convertToTSX } from "@astrojs/compiler/sync";
25
25
  import { STATUS_CODES } from "node:http";
26
26
  import { gzipSync } from "node:zlib";
27
27
  //#region ../../node_modules/.pnpm/picomatch@4.0.4/node_modules/picomatch/lib/constants.js
28
- var require_constants$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
28
+ var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
29
29
  const WIN_SLASH = "\\\\/";
30
30
  const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
31
31
  const DEFAULT_MAX_EXTGLOB_RECURSION = 0;
@@ -194,7 +194,7 @@ var require_constants$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) =>
194
194
  }));
195
195
  //#endregion
196
196
  //#region ../../node_modules/.pnpm/picomatch@4.0.4/node_modules/picomatch/lib/utils.js
197
- var require_utils = /* @__PURE__ */ __commonJSMin$1(((exports) => {
197
+ var require_utils = /* @__PURE__ */ __commonJSMin(((exports) => {
198
198
  const { REGEX_BACKSLASH, REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL } = require_constants$1();
199
199
  exports.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val);
200
200
  exports.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str);
@@ -242,7 +242,7 @@ var require_utils = /* @__PURE__ */ __commonJSMin$1(((exports) => {
242
242
  }));
243
243
  //#endregion
244
244
  //#region ../../node_modules/.pnpm/picomatch@4.0.4/node_modules/picomatch/lib/scan.js
245
- var require_scan = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
245
+ var require_scan = /* @__PURE__ */ __commonJSMin(((exports, module) => {
246
246
  const utils = require_utils();
247
247
  const { CHAR_ASTERISK, CHAR_AT, CHAR_BACKWARD_SLASH, CHAR_COMMA, CHAR_DOT, CHAR_EXCLAMATION_MARK, CHAR_FORWARD_SLASH, CHAR_LEFT_CURLY_BRACE, CHAR_LEFT_PARENTHESES, CHAR_LEFT_SQUARE_BRACKET, CHAR_PLUS, CHAR_QUESTION_MARK, CHAR_RIGHT_CURLY_BRACE, CHAR_RIGHT_PARENTHESES, CHAR_RIGHT_SQUARE_BRACKET } = require_constants$1();
248
248
  const isPathSeparator = (code) => {
@@ -529,7 +529,7 @@ var require_scan = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
529
529
  }));
530
530
  //#endregion
531
531
  //#region ../../node_modules/.pnpm/picomatch@4.0.4/node_modules/picomatch/lib/parse.js
532
- var require_parse$2 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
532
+ var require_parse$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
533
533
  const constants = require_constants$1();
534
534
  const utils = require_utils();
535
535
  /**
@@ -1584,7 +1584,7 @@ var require_parse$2 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
1584
1584
  }));
1585
1585
  //#endregion
1586
1586
  //#region ../../node_modules/.pnpm/picomatch@4.0.4/node_modules/picomatch/lib/picomatch.js
1587
- var require_picomatch$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
1587
+ var require_picomatch$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1588
1588
  const scan = require_scan();
1589
1589
  const parse = require_parse$2();
1590
1590
  const utils = require_utils();
@@ -1883,8 +1883,8 @@ var require_picomatch$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) =>
1883
1883
  module.exports = picomatch;
1884
1884
  }));
1885
1885
  //#endregion
1886
- //#region ../core/dist/collect-unplugin-auto-import-global-scopes-Dno9RW5R.js
1887
- var import_picomatch = /* @__PURE__ */ __toESM$1((/* @__PURE__ */ __commonJSMin$1(((exports, module) => {
1886
+ //#region ../core/dist/collect-unplugin-auto-import-global-scopes-C1E7dTEQ.js
1887
+ var import_picomatch = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
1888
1888
  const pico = require_picomatch$1();
1889
1889
  const utils = require_utils();
1890
1890
  function picomatch(glob, options, returnState = false) {
@@ -2164,6 +2164,7 @@ const ES_TARGET_YEAR_BY_NAME = {
2164
2164
  * compiler options — the root config first, then a monorepo base config.
2165
2165
  */
2166
2166
  const TSCONFIG_FILENAMES = ["tsconfig.json", "tsconfig.base.json"];
2167
+ const DISABLE_DIRECTIVE_BACKUP_DIRECTORY_SEGMENTS = [".react-doctor", "audit-backups"];
2167
2168
  /**
2168
2169
  * Project-config files that `StagedFiles.materialize` copies into
2169
2170
  * the temp directory alongside staged sources so oxlint resolves
@@ -23377,7 +23378,7 @@ Union([
23377
23378
  ]);
23378
23379
  //#endregion
23379
23380
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js
23380
- var require_constants = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23381
+ var require_constants = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23381
23382
  const SEMVER_SPEC_VERSION = "2.0.0";
23382
23383
  const MAX_LENGTH = 256;
23383
23384
  const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
@@ -23402,12 +23403,12 @@ var require_constants = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23402
23403
  }));
23403
23404
  //#endregion
23404
23405
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/debug.js
23405
- var require_debug = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23406
+ var require_debug = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23406
23407
  module.exports = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {};
23407
23408
  }));
23408
23409
  //#endregion
23409
23410
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/re.js
23410
- var require_re = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23411
+ var require_re = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23411
23412
  const { MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH, MAX_LENGTH } = require_constants();
23412
23413
  const debug = require_debug();
23413
23414
  exports = module.exports = {};
@@ -23486,7 +23487,7 @@ var require_re = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23486
23487
  }));
23487
23488
  //#endregion
23488
23489
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/parse-options.js
23489
- var require_parse_options = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23490
+ var require_parse_options = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23490
23491
  const looseOption = Object.freeze({ loose: true });
23491
23492
  const emptyOpts = Object.freeze({});
23492
23493
  const parseOptions = (options) => {
@@ -23498,7 +23499,7 @@ var require_parse_options = /* @__PURE__ */ __commonJSMin$1(((exports, module) =
23498
23499
  }));
23499
23500
  //#endregion
23500
23501
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/identifiers.js
23501
- var require_identifiers = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23502
+ var require_identifiers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23502
23503
  const numeric = /^[0-9]+$/;
23503
23504
  const compareIdentifiers = (a, b) => {
23504
23505
  if (typeof a === "number" && typeof b === "number") return a === b ? 0 : a < b ? -1 : 1;
@@ -23518,7 +23519,7 @@ var require_identifiers = /* @__PURE__ */ __commonJSMin$1(((exports, module) =>
23518
23519
  }));
23519
23520
  //#endregion
23520
23521
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/semver.js
23521
- var require_semver$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23522
+ var require_semver$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23522
23523
  const debug = require_debug();
23523
23524
  const { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
23524
23525
  const { safeRe: re, t } = require_re();
@@ -23696,7 +23697,7 @@ var require_semver$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23696
23697
  }));
23697
23698
  //#endregion
23698
23699
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/parse.js
23699
- var require_parse$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23700
+ var require_parse$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23700
23701
  const SemVer = require_semver$1();
23701
23702
  const parse = (version, options, throwErrors = false) => {
23702
23703
  if (version instanceof SemVer) return version;
@@ -23711,7 +23712,7 @@ var require_parse$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23711
23712
  }));
23712
23713
  //#endregion
23713
23714
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/valid.js
23714
- var require_valid$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23715
+ var require_valid$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23715
23716
  const parse = require_parse$1();
23716
23717
  const valid = (version, options) => {
23717
23718
  const v = parse(version, options);
@@ -23721,7 +23722,7 @@ var require_valid$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23721
23722
  }));
23722
23723
  //#endregion
23723
23724
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/clean.js
23724
- var require_clean = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23725
+ var require_clean = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23725
23726
  const parse = require_parse$1();
23726
23727
  const clean = (version, options) => {
23727
23728
  const s = parse(version.trim().replace(/^[=v]+/, ""), options);
@@ -23731,7 +23732,7 @@ var require_clean = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23731
23732
  }));
23732
23733
  //#endregion
23733
23734
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/inc.js
23734
- var require_inc = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23735
+ var require_inc = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23735
23736
  const SemVer = require_semver$1();
23736
23737
  const inc = (version, release, options, identifier, identifierBase) => {
23737
23738
  if (typeof options === "string") {
@@ -23749,7 +23750,7 @@ var require_inc = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23749
23750
  }));
23750
23751
  //#endregion
23751
23752
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/diff.js
23752
- var require_diff = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23753
+ var require_diff = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23753
23754
  const parse = require_parse$1();
23754
23755
  const diff = (version1, version2) => {
23755
23756
  const v1 = parse(version1, null, true);
@@ -23777,28 +23778,28 @@ var require_diff = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23777
23778
  }));
23778
23779
  //#endregion
23779
23780
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/major.js
23780
- var require_major = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23781
+ var require_major = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23781
23782
  const SemVer = require_semver$1();
23782
23783
  const major = (a, loose) => new SemVer(a, loose).major;
23783
23784
  module.exports = major;
23784
23785
  }));
23785
23786
  //#endregion
23786
23787
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/minor.js
23787
- var require_minor = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23788
+ var require_minor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23788
23789
  const SemVer = require_semver$1();
23789
23790
  const minor = (a, loose) => new SemVer(a, loose).minor;
23790
23791
  module.exports = minor;
23791
23792
  }));
23792
23793
  //#endregion
23793
23794
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/patch.js
23794
- var require_patch = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23795
+ var require_patch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23795
23796
  const SemVer = require_semver$1();
23796
23797
  const patch = (a, loose) => new SemVer(a, loose).patch;
23797
23798
  module.exports = patch;
23798
23799
  }));
23799
23800
  //#endregion
23800
23801
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/prerelease.js
23801
- var require_prerelease = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23802
+ var require_prerelease = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23802
23803
  const parse = require_parse$1();
23803
23804
  const prerelease = (version, options) => {
23804
23805
  const parsed = parse(version, options);
@@ -23808,28 +23809,28 @@ var require_prerelease = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23808
23809
  }));
23809
23810
  //#endregion
23810
23811
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare.js
23811
- var require_compare = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23812
+ var require_compare = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23812
23813
  const SemVer = require_semver$1();
23813
23814
  const compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
23814
23815
  module.exports = compare;
23815
23816
  }));
23816
23817
  //#endregion
23817
23818
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rcompare.js
23818
- var require_rcompare = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23819
+ var require_rcompare = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23819
23820
  const compare = require_compare();
23820
23821
  const rcompare = (a, b, loose) => compare(b, a, loose);
23821
23822
  module.exports = rcompare;
23822
23823
  }));
23823
23824
  //#endregion
23824
23825
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-loose.js
23825
- var require_compare_loose = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23826
+ var require_compare_loose = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23826
23827
  const compare = require_compare();
23827
23828
  const compareLoose = (a, b) => compare(a, b, true);
23828
23829
  module.exports = compareLoose;
23829
23830
  }));
23830
23831
  //#endregion
23831
23832
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-build.js
23832
- var require_compare_build = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23833
+ var require_compare_build = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23833
23834
  const SemVer = require_semver$1();
23834
23835
  const compareBuild = (a, b, loose) => {
23835
23836
  const versionA = new SemVer(a, loose);
@@ -23840,63 +23841,63 @@ var require_compare_build = /* @__PURE__ */ __commonJSMin$1(((exports, module) =
23840
23841
  }));
23841
23842
  //#endregion
23842
23843
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/sort.js
23843
- var require_sort = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23844
+ var require_sort = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23844
23845
  const compareBuild = require_compare_build();
23845
23846
  const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose));
23846
23847
  module.exports = sort;
23847
23848
  }));
23848
23849
  //#endregion
23849
23850
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rsort.js
23850
- var require_rsort = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23851
+ var require_rsort = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23851
23852
  const compareBuild = require_compare_build();
23852
23853
  const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose));
23853
23854
  module.exports = rsort;
23854
23855
  }));
23855
23856
  //#endregion
23856
23857
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gt.js
23857
- var require_gt = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23858
+ var require_gt = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23858
23859
  const compare = require_compare();
23859
23860
  const gt = (a, b, loose) => compare(a, b, loose) > 0;
23860
23861
  module.exports = gt;
23861
23862
  }));
23862
23863
  //#endregion
23863
23864
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lt.js
23864
- var require_lt = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23865
+ var require_lt = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23865
23866
  const compare = require_compare();
23866
23867
  const lt = (a, b, loose) => compare(a, b, loose) < 0;
23867
23868
  module.exports = lt;
23868
23869
  }));
23869
23870
  //#endregion
23870
23871
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/eq.js
23871
- var require_eq = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23872
+ var require_eq = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23872
23873
  const compare = require_compare();
23873
23874
  const eq = (a, b, loose) => compare(a, b, loose) === 0;
23874
23875
  module.exports = eq;
23875
23876
  }));
23876
23877
  //#endregion
23877
23878
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/neq.js
23878
- var require_neq = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23879
+ var require_neq = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23879
23880
  const compare = require_compare();
23880
23881
  const neq = (a, b, loose) => compare(a, b, loose) !== 0;
23881
23882
  module.exports = neq;
23882
23883
  }));
23883
23884
  //#endregion
23884
23885
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gte.js
23885
- var require_gte = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23886
+ var require_gte = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23886
23887
  const compare = require_compare();
23887
23888
  const gte = (a, b, loose) => compare(a, b, loose) >= 0;
23888
23889
  module.exports = gte;
23889
23890
  }));
23890
23891
  //#endregion
23891
23892
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lte.js
23892
- var require_lte = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23893
+ var require_lte = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23893
23894
  const compare = require_compare();
23894
23895
  const lte = (a, b, loose) => compare(a, b, loose) <= 0;
23895
23896
  module.exports = lte;
23896
23897
  }));
23897
23898
  //#endregion
23898
23899
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/cmp.js
23899
- var require_cmp = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23900
+ var require_cmp = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23900
23901
  const eq = require_eq();
23901
23902
  const neq = require_neq();
23902
23903
  const gt = require_gt();
@@ -23928,7 +23929,7 @@ var require_cmp = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23928
23929
  }));
23929
23930
  //#endregion
23930
23931
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/coerce.js
23931
- var require_coerce = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23932
+ var require_coerce = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23932
23933
  const SemVer = require_semver$1();
23933
23934
  const parse = require_parse$1();
23934
23935
  const { safeRe: re, t } = require_re();
@@ -23956,7 +23957,7 @@ var require_coerce = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23956
23957
  }));
23957
23958
  //#endregion
23958
23959
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/lrucache.js
23959
- var require_lrucache = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23960
+ var require_lrucache = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23960
23961
  var LRUCache = class {
23961
23962
  constructor() {
23962
23963
  this.max = 1e3;
@@ -23989,7 +23990,7 @@ var require_lrucache = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23989
23990
  }));
23990
23991
  //#endregion
23991
23992
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/range.js
23992
- var require_range = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
23993
+ var require_range = /* @__PURE__ */ __commonJSMin(((exports, module) => {
23993
23994
  const SPACE_CHARACTERS = /\s+/g;
23994
23995
  module.exports = class Range {
23995
23996
  constructor(range, options) {
@@ -24261,7 +24262,7 @@ var require_range = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24261
24262
  }));
24262
24263
  //#endregion
24263
24264
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/comparator.js
24264
- var require_comparator = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24265
+ var require_comparator = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24265
24266
  const ANY = Symbol("SemVer ANY");
24266
24267
  module.exports = class Comparator {
24267
24268
  static get ANY() {
@@ -24331,7 +24332,7 @@ var require_comparator = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24331
24332
  }));
24332
24333
  //#endregion
24333
24334
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/satisfies.js
24334
- var require_satisfies = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24335
+ var require_satisfies = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24335
24336
  const Range = require_range();
24336
24337
  const satisfies = (version, range, options) => {
24337
24338
  try {
@@ -24345,14 +24346,14 @@ var require_satisfies = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24345
24346
  }));
24346
24347
  //#endregion
24347
24348
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/to-comparators.js
24348
- var require_to_comparators = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24349
+ var require_to_comparators = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24349
24350
  const Range = require_range();
24350
24351
  const toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" "));
24351
24352
  module.exports = toComparators;
24352
24353
  }));
24353
24354
  //#endregion
24354
24355
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/max-satisfying.js
24355
- var require_max_satisfying = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24356
+ var require_max_satisfying = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24356
24357
  const SemVer = require_semver$1();
24357
24358
  const Range = require_range();
24358
24359
  const maxSatisfying = (versions, range, options) => {
@@ -24378,7 +24379,7 @@ var require_max_satisfying = /* @__PURE__ */ __commonJSMin$1(((exports, module)
24378
24379
  }));
24379
24380
  //#endregion
24380
24381
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-satisfying.js
24381
- var require_min_satisfying = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24382
+ var require_min_satisfying = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24382
24383
  const SemVer = require_semver$1();
24383
24384
  const Range = require_range();
24384
24385
  const minSatisfying = (versions, range, options) => {
@@ -24404,7 +24405,7 @@ var require_min_satisfying = /* @__PURE__ */ __commonJSMin$1(((exports, module)
24404
24405
  }));
24405
24406
  //#endregion
24406
24407
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-version.js
24407
- var require_min_version = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24408
+ var require_min_version = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24408
24409
  const SemVer = require_semver$1();
24409
24410
  const Range = require_range();
24410
24411
  const gt = require_gt();
@@ -24444,7 +24445,7 @@ var require_min_version = /* @__PURE__ */ __commonJSMin$1(((exports, module) =>
24444
24445
  }));
24445
24446
  //#endregion
24446
24447
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/valid.js
24447
- var require_valid = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24448
+ var require_valid = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24448
24449
  const Range = require_range();
24449
24450
  const validRange = (range, options) => {
24450
24451
  try {
@@ -24457,7 +24458,7 @@ var require_valid = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24457
24458
  }));
24458
24459
  //#endregion
24459
24460
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/outside.js
24460
- var require_outside = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24461
+ var require_outside = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24461
24462
  const SemVer = require_semver$1();
24462
24463
  const Comparator = require_comparator();
24463
24464
  const { ANY } = Comparator;
@@ -24510,21 +24511,21 @@ var require_outside = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24510
24511
  }));
24511
24512
  //#endregion
24512
24513
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/gtr.js
24513
- var require_gtr = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24514
+ var require_gtr = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24514
24515
  const outside = require_outside();
24515
24516
  const gtr = (version, range, options) => outside(version, range, ">", options);
24516
24517
  module.exports = gtr;
24517
24518
  }));
24518
24519
  //#endregion
24519
24520
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/ltr.js
24520
- var require_ltr = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24521
+ var require_ltr = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24521
24522
  const outside = require_outside();
24522
24523
  const ltr = (version, range, options) => outside(version, range, "<", options);
24523
24524
  module.exports = ltr;
24524
24525
  }));
24525
24526
  //#endregion
24526
24527
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/intersects.js
24527
- var require_intersects = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24528
+ var require_intersects = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24528
24529
  const Range = require_range();
24529
24530
  const intersects = (r1, r2, options) => {
24530
24531
  r1 = new Range(r1, options);
@@ -24535,7 +24536,7 @@ var require_intersects = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24535
24536
  }));
24536
24537
  //#endregion
24537
24538
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/simplify.js
24538
- var require_simplify = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24539
+ var require_simplify = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24539
24540
  const satisfies = require_satisfies();
24540
24541
  const compare = require_compare();
24541
24542
  module.exports = (versions, range, options) => {
@@ -24565,7 +24566,7 @@ var require_simplify = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24565
24566
  }));
24566
24567
  //#endregion
24567
24568
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/subset.js
24568
- var require_subset = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24569
+ var require_subset = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24569
24570
  const Range = require_range();
24570
24571
  const Comparator = require_comparator();
24571
24572
  const { ANY } = Comparator;
@@ -24660,7 +24661,7 @@ var require_subset = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24660
24661
  }));
24661
24662
  //#endregion
24662
24663
  //#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/index.js
24663
- var require_semver = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24664
+ var require_semver = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24664
24665
  const internalRe = require_re();
24665
24666
  const constants = require_constants();
24666
24667
  const SemVer = require_semver$1();
@@ -24715,7 +24716,7 @@ var require_semver = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
24715
24716
  }));
24716
24717
  //#endregion
24717
24718
  //#region ../../node_modules/.pnpm/baseline-browser-mapping@2.9.19/node_modules/baseline-browser-mapping/dist/index.cjs
24718
- var require_dist = /* @__PURE__ */ __commonJSMin$1(((exports) => {
24719
+ var require_dist = /* @__PURE__ */ __commonJSMin(((exports) => {
24719
24720
  const s = {
24720
24721
  chrome: { releases: [
24721
24722
  [
@@ -43965,7 +43966,7 @@ var require_dist = /* @__PURE__ */ __commonJSMin$1(((exports) => {
43965
43966
  }));
43966
43967
  //#endregion
43967
43968
  //#region ../../node_modules/.pnpm/node-releases@2.0.27/node_modules/node-releases/data/processed/envs.json
43968
- var require_envs = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
43969
+ var require_envs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
43969
43970
  module.exports = [
43970
43971
  {
43971
43972
  "name": "nodejs",
@@ -46747,7 +46748,7 @@ var require_envs = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
46747
46748
  }));
46748
46749
  //#endregion
46749
46750
  //#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/browsers.js
46750
- var require_browsers$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
46751
+ var require_browsers$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
46751
46752
  module.exports = {
46752
46753
  A: "ie",
46753
46754
  B: "edge",
@@ -46772,12 +46773,12 @@ var require_browsers$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
46772
46773
  }));
46773
46774
  //#endregion
46774
46775
  //#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/browsers.js
46775
- var require_browsers = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
46776
+ var require_browsers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
46776
46777
  module.exports.browsers = require_browsers$1();
46777
46778
  }));
46778
46779
  //#endregion
46779
46780
  //#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/browserVersions.js
46780
- var require_browserVersions$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
46781
+ var require_browserVersions$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
46781
46782
  module.exports = {
46782
46783
  "0": "117",
46783
46784
  "1": "118",
@@ -47029,12 +47030,12 @@ var require_browserVersions$1 = /* @__PURE__ */ __commonJSMin$1(((exports, modul
47029
47030
  }));
47030
47031
  //#endregion
47031
47032
  //#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/browserVersions.js
47032
- var require_browserVersions = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
47033
+ var require_browserVersions = /* @__PURE__ */ __commonJSMin(((exports, module) => {
47033
47034
  module.exports.browserVersions = require_browserVersions$1();
47034
47035
  }));
47035
47036
  //#endregion
47036
47037
  //#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/agents.js
47037
- var require_agents$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
47038
+ var require_agents$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
47038
47039
  module.exports = {
47039
47040
  A: {
47040
47041
  A: {
@@ -51403,7 +51404,7 @@ var require_agents$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51403
51404
  }));
51404
51405
  //#endregion
51405
51406
  //#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/agents.js
51406
- var require_agents = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51407
+ var require_agents = /* @__PURE__ */ __commonJSMin(((exports, module) => {
51407
51408
  const browsers = require_browsers().browsers;
51408
51409
  const versions = require_browserVersions().browserVersions;
51409
51410
  const agentsData = require_agents$1();
@@ -51436,7 +51437,7 @@ var require_agents = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51436
51437
  }));
51437
51438
  //#endregion
51438
51439
  //#region ../../node_modules/.pnpm/electron-to-chromium@1.5.286/node_modules/electron-to-chromium/versions.js
51439
- var require_versions = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51440
+ var require_versions = /* @__PURE__ */ __commonJSMin(((exports, module) => {
51440
51441
  module.exports = {
51441
51442
  "0.20": "39",
51442
51443
  "0.21": "41",
@@ -51670,7 +51671,7 @@ var require_versions = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51670
51671
  }));
51671
51672
  //#endregion
51672
51673
  //#region ../../node_modules/.pnpm/node-releases@2.0.27/node_modules/node-releases/data/release-schedule/release-schedule.json
51673
- var require_release_schedule = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51674
+ var require_release_schedule = /* @__PURE__ */ __commonJSMin(((exports, module) => {
51674
51675
  module.exports = {
51675
51676
  "v0.8": {
51676
51677
  "start": "2012-06-25",
@@ -51827,7 +51828,7 @@ var require_release_schedule = /* @__PURE__ */ __commonJSMin$1(((exports, module
51827
51828
  }));
51828
51829
  //#endregion
51829
51830
  //#region ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/error.js
51830
- var require_error = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51831
+ var require_error = /* @__PURE__ */ __commonJSMin(((exports, module) => {
51831
51832
  function BrowserslistError(message) {
51832
51833
  this.name = "BrowserslistError";
51833
51834
  this.message = message;
@@ -51839,7 +51840,7 @@ var require_error = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51839
51840
  }));
51840
51841
  //#endregion
51841
51842
  //#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/lib/statuses.js
51842
- var require_statuses = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51843
+ var require_statuses = /* @__PURE__ */ __commonJSMin(((exports, module) => {
51843
51844
  module.exports = {
51844
51845
  1: "ls",
51845
51846
  2: "rec",
@@ -51852,7 +51853,7 @@ var require_statuses = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51852
51853
  }));
51853
51854
  //#endregion
51854
51855
  //#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/lib/supported.js
51855
- var require_supported = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51856
+ var require_supported = /* @__PURE__ */ __commonJSMin(((exports, module) => {
51856
51857
  module.exports = {
51857
51858
  y: 1,
51858
51859
  n: 2,
@@ -51865,7 +51866,7 @@ var require_supported = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51865
51866
  }));
51866
51867
  //#endregion
51867
51868
  //#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/feature.js
51868
- var require_feature = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51869
+ var require_feature = /* @__PURE__ */ __commonJSMin(((exports, module) => {
51869
51870
  const statuses = require_statuses();
51870
51871
  const supported = require_supported();
51871
51872
  const browsers = require_browsers().browsers;
@@ -51908,7 +51909,7 @@ var require_feature = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51908
51909
  }));
51909
51910
  //#endregion
51910
51911
  //#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/region.js
51911
- var require_region = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51912
+ var require_region = /* @__PURE__ */ __commonJSMin(((exports, module) => {
51912
51913
  const browsers = require_browsers().browsers;
51913
51914
  function unpackRegion(packed) {
51914
51915
  return Object.keys(packed).reduce((list, browser) => {
@@ -51927,7 +51928,7 @@ var require_region = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51927
51928
  }));
51928
51929
  //#endregion
51929
51930
  //#region ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node.js
51930
- var require_node = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
51931
+ var require_node = /* @__PURE__ */ __commonJSMin(((exports, module) => {
51931
51932
  var feature = require_feature().default;
51932
51933
  var region = require_region().default;
51933
51934
  var fs$2 = __require("fs");
@@ -52220,7 +52221,7 @@ var require_node = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
52220
52221
  }));
52221
52222
  //#endregion
52222
52223
  //#region ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/parse.js
52223
- var require_parse = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
52224
+ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
52224
52225
  var AND_REGEXP = /^\s+and\s+(.*)/i;
52225
52226
  var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i;
52226
52227
  function flatten(array) {
@@ -52286,7 +52287,7 @@ var require_parse = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
52286
52287
  }));
52287
52288
  //#endregion
52288
52289
  //#region ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/index.js
52289
- var require_browserslist = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
52290
+ var require_browserslist = /* @__PURE__ */ __commonJSMin(((exports, module) => {
52290
52291
  var bbm = require_dist();
52291
52292
  var jsReleases = require_envs();
52292
52293
  var agents = require_agents().agents;
@@ -53308,8 +53309,8 @@ var require_browserslist = /* @__PURE__ */ __commonJSMin$1(((exports, module) =>
53308
53309
  }));
53309
53310
  //#endregion
53310
53311
  //#region ../../node_modules/.pnpm/effect@4.0.0-beta.102/node_modules/effect/dist/Brand.js
53311
- var import_semver = /* @__PURE__ */ __toESM$1(require_semver(), 1);
53312
- var import_browserslist = /* @__PURE__ */ __toESM$1(require_browserslist(), 1);
53312
+ var import_semver = /* @__PURE__ */ __toESM(require_semver(), 1);
53313
+ var import_browserslist = /* @__PURE__ */ __toESM(require_browserslist(), 1);
53313
53314
  /**
53314
53315
  * Returns a `Constructor` that **does not apply any runtime checks** and just
53315
53316
  * returns the provided value.
@@ -62294,6 +62295,72 @@ const warn$1 = (...args) => consoleWith((console) => sync$2(() => {
62294
62295
  }));
62295
62296
  //#endregion
62296
62297
  //#region ../../node_modules/.pnpm/effect@4.0.0-beta.102/node_modules/effect/dist/Cache.js
62298
+ var import_picocolors = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
62299
+ let p = process || {}, argv = p.argv || [], env = p.env || {};
62300
+ let isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI);
62301
+ let formatter = (open, close, replace = open) => (input) => {
62302
+ let string = "" + input, index = string.indexOf(close, open.length);
62303
+ return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
62304
+ };
62305
+ let replaceClose = (string, close, replace, index) => {
62306
+ let result = "", cursor = 0;
62307
+ do {
62308
+ result += string.substring(cursor, index) + replace;
62309
+ cursor = index + close.length;
62310
+ index = string.indexOf(close, cursor);
62311
+ } while (~index);
62312
+ return result + string.substring(cursor);
62313
+ };
62314
+ let createColors = (enabled = isColorSupported) => {
62315
+ let f = enabled ? formatter : () => String;
62316
+ return {
62317
+ isColorSupported: enabled,
62318
+ reset: f("\x1B[0m", "\x1B[0m"),
62319
+ bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"),
62320
+ dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"),
62321
+ italic: f("\x1B[3m", "\x1B[23m"),
62322
+ underline: f("\x1B[4m", "\x1B[24m"),
62323
+ inverse: f("\x1B[7m", "\x1B[27m"),
62324
+ hidden: f("\x1B[8m", "\x1B[28m"),
62325
+ strikethrough: f("\x1B[9m", "\x1B[29m"),
62326
+ black: f("\x1B[30m", "\x1B[39m"),
62327
+ red: f("\x1B[31m", "\x1B[39m"),
62328
+ green: f("\x1B[32m", "\x1B[39m"),
62329
+ yellow: f("\x1B[33m", "\x1B[39m"),
62330
+ blue: f("\x1B[34m", "\x1B[39m"),
62331
+ magenta: f("\x1B[35m", "\x1B[39m"),
62332
+ cyan: f("\x1B[36m", "\x1B[39m"),
62333
+ white: f("\x1B[37m", "\x1B[39m"),
62334
+ gray: f("\x1B[90m", "\x1B[39m"),
62335
+ bgBlack: f("\x1B[40m", "\x1B[49m"),
62336
+ bgRed: f("\x1B[41m", "\x1B[49m"),
62337
+ bgGreen: f("\x1B[42m", "\x1B[49m"),
62338
+ bgYellow: f("\x1B[43m", "\x1B[49m"),
62339
+ bgBlue: f("\x1B[44m", "\x1B[49m"),
62340
+ bgMagenta: f("\x1B[45m", "\x1B[49m"),
62341
+ bgCyan: f("\x1B[46m", "\x1B[49m"),
62342
+ bgWhite: f("\x1B[47m", "\x1B[49m"),
62343
+ blackBright: f("\x1B[90m", "\x1B[39m"),
62344
+ redBright: f("\x1B[91m", "\x1B[39m"),
62345
+ greenBright: f("\x1B[92m", "\x1B[39m"),
62346
+ yellowBright: f("\x1B[93m", "\x1B[39m"),
62347
+ blueBright: f("\x1B[94m", "\x1B[39m"),
62348
+ magentaBright: f("\x1B[95m", "\x1B[39m"),
62349
+ cyanBright: f("\x1B[96m", "\x1B[39m"),
62350
+ whiteBright: f("\x1B[97m", "\x1B[39m"),
62351
+ bgBlackBright: f("\x1B[100m", "\x1B[49m"),
62352
+ bgRedBright: f("\x1B[101m", "\x1B[49m"),
62353
+ bgGreenBright: f("\x1B[102m", "\x1B[49m"),
62354
+ bgYellowBright: f("\x1B[103m", "\x1B[49m"),
62355
+ bgBlueBright: f("\x1B[104m", "\x1B[49m"),
62356
+ bgMagentaBright: f("\x1B[105m", "\x1B[49m"),
62357
+ bgCyanBright: f("\x1B[106m", "\x1B[49m"),
62358
+ bgWhiteBright: f("\x1B[107m", "\x1B[49m")
62359
+ };
62360
+ };
62361
+ module.exports = createColors();
62362
+ module.exports.createColors = createColors;
62363
+ })))(), 1);
62297
62364
  /**
62298
62365
  * Caches values loaded by an Effect lookup function.
62299
62366
  *
@@ -64263,34 +64330,13 @@ function traceSegmentInternal(segments, memo, line, column, bias) {
64263
64330
  }
64264
64331
  //#endregion
64265
64332
  //#region ../core/dist/index.js
64266
- var __create = Object.create;
64267
- var __defProp = Object.defineProperty;
64268
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
64269
- var __getOwnPropNames = Object.getOwnPropertyNames;
64270
- var __getProtoOf = Object.getPrototypeOf;
64271
- var __hasOwnProp = Object.prototype.hasOwnProperty;
64272
- var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
64273
- var __copyProps = (to, from, except, desc) => {
64274
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
64275
- key = keys[i];
64276
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
64277
- get: ((k) => from[k]).bind(null, key),
64278
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
64279
- });
64280
- }
64281
- return to;
64282
- };
64283
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
64284
- value: mod,
64285
- enumerable: true
64286
- }) : target, mod));
64287
64333
  var ProjectNotFoundError = class extends Error {
64288
64334
  name = "ProjectNotFoundError";
64289
64335
  directory;
64290
64336
  kind;
64291
64337
  constructor(directory, options) {
64292
64338
  const kind = options?.kind ?? "no-project";
64293
- super(kind === "missing-path" ? `Scan target "${directory}" does not exist. Check the path and try again.` : `No React project found in ${directory}. Expected a package.json at the directory root or a nested package.json with a React dependency.`, options);
64339
+ super(kind === "missing-path" ? `Scan target "${directory}" does not exist. Check the path and try again.` : `No React or Three.js project found in ${directory}. Expected a package.json at the directory root or a nested package.json with a React or Three.js dependency.`, options);
64294
64340
  this.directory = directory;
64295
64341
  this.kind = kind;
64296
64342
  }
@@ -64324,7 +64370,7 @@ var AmbiguousProjectError = class extends Error {
64324
64370
  directory;
64325
64371
  candidates;
64326
64372
  constructor(directory, candidates, options) {
64327
- super(`Multiple React projects found under ${directory} (${candidates.length} candidates): ${candidates.join(", ")}. Re-run diagnose() with one of those subdirectories, or iterate them yourself.`, options);
64373
+ super(`Multiple React or Three.js projects found under ${directory} (${candidates.length} candidates): ${candidates.join(", ")}. Re-run diagnose() with one of those subdirectories, or iterate them yourself.`, options);
64328
64374
  this.directory = directory;
64329
64375
  this.candidates = candidates;
64330
64376
  }
@@ -65664,15 +65710,29 @@ const detectPreES2023Target = (directory) => {
65664
65710
  }
65665
65711
  return false;
65666
65712
  };
65713
+ const SHADCN_CONFIG_FILE_NAME = "components.json";
65714
+ const detectShadcnUi = (directory) => {
65715
+ if (isFile(path$1$1.join(directory, SHADCN_CONFIG_FILE_NAME))) return true;
65716
+ if (isProjectBoundary(directory)) return false;
65717
+ let ancestorDirectory = path$1$1.dirname(directory);
65718
+ while (ancestorDirectory !== path$1$1.dirname(ancestorDirectory)) {
65719
+ if (isFile(path$1$1.join(ancestorDirectory, SHADCN_CONFIG_FILE_NAME))) return true;
65720
+ if (isProjectBoundary(ancestorDirectory)) return false;
65721
+ ancestorDirectory = path$1$1.dirname(ancestorDirectory);
65722
+ }
65723
+ return false;
65724
+ };
65667
65725
  const FRAMEWORK_PACKAGES = {
65668
65726
  next: "nextjs",
65669
65727
  "@tanstack/react-start": "tanstack-start",
65670
65728
  "@remix-run/react": "remix",
65671
65729
  gatsby: "gatsby",
65672
65730
  astro: "astro",
65731
+ "@astrojs/react": "astro",
65673
65732
  vite: "vite",
65674
65733
  "react-scripts": "cra",
65675
65734
  expo: "expo",
65735
+ "expo-router": "expo",
65676
65736
  "react-native": "react-native"
65677
65737
  };
65678
65738
  const detectFramework = (dependencies) => {
@@ -66164,20 +66224,39 @@ const getDependencyDeclaration = ({ packageJson, packageName, sections }) => {
66164
66224
  version: null
66165
66225
  };
66166
66226
  };
66167
- const REACT_DEPENDENCY_NAMES = new Set([
66227
+ const REACT_PROJECT_DEPENDENCY_NAMES = new Set([
66168
66228
  "react",
66229
+ "react-dom",
66169
66230
  "react-native",
66170
66231
  "next",
66171
- "preact"
66232
+ "preact",
66233
+ "expo",
66234
+ "expo-router",
66235
+ "gatsby",
66236
+ "@remix-run/react",
66237
+ "@tanstack/react-start",
66238
+ "react-scripts",
66239
+ "@astrojs/react"
66172
66240
  ]);
66241
+ const REACT_THREE_FIBER_DEPENDENCY_NAMES = ["@react-three/fiber", "react-three-fiber"];
66242
+ const REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES = [
66243
+ ...REACT_THREE_FIBER_DEPENDENCY_NAMES,
66244
+ "@react-three/drei",
66245
+ "@react-three/rapier",
66246
+ "@react-three/postprocessing",
66247
+ "@react-three/xr",
66248
+ "@react-three/cannon"
66249
+ ];
66250
+ const THREE_DEPENDENCY_NAMES = ["three", ...REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES];
66173
66251
  const hasReactDependency = (packageJson) => {
66174
66252
  const allDependencies = {
66175
66253
  ...packageJson.peerDependencies,
66176
66254
  ...packageJson.dependencies,
66177
66255
  ...packageJson.devDependencies
66178
66256
  };
66179
- return Object.keys(allDependencies).some((packageName) => REACT_DEPENDENCY_NAMES.has(packageName));
66257
+ return Object.keys(allDependencies).some((packageName) => REACT_PROJECT_DEPENDENCY_NAMES.has(packageName));
66180
66258
  };
66259
+ const hasSupportedProjectDependency = (packageJson) => hasReactDependency(packageJson) || getDependencySpec(packageJson, "remotion") !== null || THREE_DEPENDENCY_NAMES.some((packageName) => getDependencySpec(packageJson, packageName) !== null);
66181
66260
  const getPreactVersion = (packageJson) => getDependencySpec(packageJson, "preact");
66182
66261
  const resolveCatalogBackedDependencyVersion = ({ rootDirectory, rootPackageJson, packageName, sourceDirectory = rootDirectory, sourcePackageJson = rootPackageJson, version }) => {
66183
66262
  if (version === null || !isCatalogReference(version)) return version;
@@ -66368,7 +66447,7 @@ const listWorkspacePackages = (rootDirectory) => {
66368
66447
  seenDirectories.add(workspacePackage.directory);
66369
66448
  packages.push(workspacePackage);
66370
66449
  };
66371
- if (hasReactDependency(packageJson)) pushIfNew({
66450
+ if (hasSupportedProjectDependency(packageJson)) pushIfNew({
66372
66451
  name: packageJson.name ?? path$1$1.basename(rootDirectory),
66373
66452
  directory: rootDirectory
66374
66453
  });
@@ -66376,7 +66455,7 @@ const listWorkspacePackages = (rootDirectory) => {
66376
66455
  const directories = resolveWorkspaceDirectories(rootDirectory, pattern);
66377
66456
  for (const workspaceDirectory of directories) {
66378
66457
  const workspacePackageJson = readPackageJson(path$1$1.join(workspaceDirectory, "package.json"));
66379
- if (!hasReactDependency(workspacePackageJson)) continue;
66458
+ if (!hasSupportedProjectDependency(workspacePackageJson)) continue;
66380
66459
  pushIfNew({
66381
66460
  name: workspacePackageJson.name ?? path$1$1.basename(workspaceDirectory),
66382
66461
  directory: workspaceDirectory
@@ -66408,6 +66487,29 @@ const getTanStackQueryVersion = (packageJson) => {
66408
66487
  packageNames: TANSTACK_REACT_QUERY_PACKAGES
66409
66488
  });
66410
66489
  };
66490
+ const hasAnyDependency = (packageJson, packageNames) => {
66491
+ const allDependencies = {
66492
+ ...packageJson.peerDependencies,
66493
+ ...packageJson.dependencies,
66494
+ ...packageJson.devDependencies,
66495
+ ...packageJson.optionalDependencies
66496
+ };
66497
+ return packageNames.some((packageName) => allDependencies[packageName] !== void 0);
66498
+ };
66499
+ const BASE_UI_PACKAGES = ["@base-ui-components/react", "@base-ui/react"];
66500
+ const hasBaseUiDependency = (packageJson) => hasAnyDependency(packageJson, BASE_UI_PACKAGES);
66501
+ const RADIX_UNIFIED_PACKAGE = "radix-ui";
66502
+ const RADIX_PRIMITIVE_PACKAGE_PREFIX = "@radix-ui/react-";
66503
+ const RADIX_NON_PRIMITIVE_PACKAGES = new Set(["@radix-ui/react-icons"]);
66504
+ const hasRadixUiDependency = (packageJson) => {
66505
+ const allDependencies = {
66506
+ ...packageJson.peerDependencies,
66507
+ ...packageJson.dependencies,
66508
+ ...packageJson.devDependencies,
66509
+ ...packageJson.optionalDependencies
66510
+ };
66511
+ return Object.keys(allDependencies).some((packageName) => packageName === RADIX_UNIFIED_PACKAGE || packageName.startsWith(RADIX_PRIMITIVE_PACKAGE_PREFIX) && !RADIX_NON_PRIMITIVE_PACKAGES.has(packageName));
66512
+ };
66411
66513
  const STYLED_COMPONENTS_PACKAGES = ["styled-components"];
66412
66514
  const getStyledComponentsVersion = (packageJson) => {
66413
66515
  return getPreferredDependencyVersion({
@@ -66438,12 +66540,15 @@ const hasI18nDependency = (packageJson) => {
66438
66540
  };
66439
66541
  return I18N_PACKAGES.some((packageName) => allDependencies[packageName] !== void 0);
66440
66542
  };
66543
+ const REACT_ARIA_COMPONENT_PACKAGES = ["react-aria-components"];
66544
+ const TANSTACK_TABLE_PACKAGES = ["@tanstack/react-table"];
66545
+ const TANSTACK_VIRTUAL_PACKAGES = ["@tanstack/react-virtual"];
66546
+ const TANSTACK_FORM_PACKAGES = ["@tanstack/react-form"];
66441
66547
  const REANIMATED_DEPENDENCY_NAME = "react-native-reanimated";
66442
66548
  const MOBX_REACT_PACKAGE_NAME = "mobx-react";
66443
66549
  const MOBX_REACT_LITE_PACKAGE_NAME = "mobx-react-lite";
66444
66550
  const MOBX_STATE_TREE_PACKAGE_NAME = "mobx-state-tree";
66445
66551
  const MOBX_REACT_OBSERVER_PACKAGE_NAME = "mobx-react-observer";
66446
- const REACT_THREE_FIBER_DEPENDENCY_NAMES = ["@react-three/fiber", "react-three-fiber"];
66447
66552
  const REACT_THREE_FIBER_SECTIONS = [
66448
66553
  "dependencies",
66449
66554
  "peerDependencies",
@@ -66456,8 +66561,6 @@ const THREE_DEPENDENCY_SECTIONS = [
66456
66561
  "optionalDependencies",
66457
66562
  "devDependencies"
66458
66563
  ];
66459
- const REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES = [...REACT_THREE_FIBER_DEPENDENCY_NAMES, "@react-three/drei"];
66460
- const THREE_DEPENDENCY_NAMES = [...REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES, "three"];
66461
66564
  const REACT_ROUTER_DEPENDENCY_NAMES = [
66462
66565
  "@react-router/dev",
66463
66566
  "react-router-dom",
@@ -66631,6 +66734,13 @@ const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, roo
66631
66734
  });
66632
66735
  if (styledComponentsVersion && shouldReplaceStyledComponentsVersion(facts.styledComponentsVersion, styledComponentsVersion)) facts.styledComponentsVersion = styledComponentsVersion;
66633
66736
  facts.hasI18nLibrary = facts.hasI18nLibrary || hasI18nDependency(packageJson);
66737
+ facts.hasShadcnUi = facts.hasShadcnUi || detectShadcnUi(directory);
66738
+ facts.hasRadixUi = facts.hasRadixUi || hasRadixUiDependency(packageJson);
66739
+ facts.hasBaseUi = facts.hasBaseUi || hasBaseUiDependency(packageJson);
66740
+ facts.hasReactAriaComponents = facts.hasReactAriaComponents || hasAnyDependency(packageJson, REACT_ARIA_COMPONENT_PACKAGES);
66741
+ facts.hasTanstackTable = facts.hasTanstackTable || hasAnyDependency(packageJson, TANSTACK_TABLE_PACKAGES);
66742
+ facts.hasTanstackVirtual = facts.hasTanstackVirtual || hasAnyDependency(packageJson, TANSTACK_VIRTUAL_PACKAGES);
66743
+ facts.hasTanstackForm = facts.hasTanstackForm || hasAnyDependency(packageJson, TANSTACK_FORM_PACKAGES);
66634
66744
  for (const packageName of REACT_THREE_FIBER_DEPENDENCY_NAMES) {
66635
66745
  const version = resolveCatalogBackedDependencyVersion({
66636
66746
  rootDirectory,
@@ -66733,6 +66843,13 @@ const collectWorkspaceFacts = (rootDirectory, rootPackageJson, { collectReactGro
66733
66843
  tanstackQueryVersion: null,
66734
66844
  styledComponentsVersion: null,
66735
66845
  hasI18nLibrary: false,
66846
+ hasShadcnUi: false,
66847
+ hasRadixUi: false,
66848
+ hasBaseUi: false,
66849
+ hasReactAriaComponents: false,
66850
+ hasTanstackTable: false,
66851
+ hasTanstackVirtual: false,
66852
+ hasTanstackForm: false,
66736
66853
  hasReactNativeAwarePackage: false,
66737
66854
  hasReanimatedAwarePackage: false,
66738
66855
  hasSsrDependency: false,
@@ -66961,13 +67078,13 @@ const detectTargetBlankOpenerProtection = (directory, packageJson) => {
66961
67078
  if (browserslistRequirement === "noreferrer" || electronRequirement === "noreferrer") return "noreferrer";
66962
67079
  if (browserslistRequirement === "noopener" || electronRequirement === "noopener") return "noopener";
66963
67080
  };
66964
- const toReactWorkspacePackages = (directories) => {
67081
+ const toSupportedWorkspacePackages = (directories) => {
66965
67082
  const packages = [];
66966
67083
  for (const directory of directories) {
66967
67084
  const packageJsonPath = path$1$1.join(directory, "package.json");
66968
67085
  if (!isFile(packageJsonPath)) continue;
66969
67086
  const packageJson = readPackageJson(packageJsonPath);
66970
- if (!hasReactDependency(packageJson)) continue;
67087
+ if (!hasSupportedProjectDependency(packageJson)) continue;
66971
67088
  const name = packageJson.name ?? path$1$1.basename(directory);
66972
67089
  packages.push({
66973
67090
  name,
@@ -66980,7 +67097,7 @@ const listManifestWorkspacePackages = (rootDirectory) => {
66980
67097
  if (isFile(path$1$1.join(rootDirectory, "package.json"))) return listWorkspacePackages(rootDirectory);
66981
67098
  const patterns = parsePnpmWorkspacePatterns(rootDirectory);
66982
67099
  const nxPatterns = patterns.length > 0 ? [] : getNxWorkspaceDirectories(rootDirectory);
66983
- return toReactWorkspacePackages((patterns.length > 0 ? patterns : nxPatterns).flatMap((pattern) => resolveWorkspaceDirectories(rootDirectory, pattern)));
67100
+ return toSupportedWorkspacePackages((patterns.length > 0 ? patterns : nxPatterns).flatMap((pattern) => resolveWorkspaceDirectories(rootDirectory, pattern)));
66984
67101
  };
66985
67102
  const NON_PROJECT_DIRECTORIES = new Set([
66986
67103
  "AppData",
@@ -66988,7 +67105,7 @@ const NON_PROJECT_DIRECTORIES = new Set([
66988
67105
  "Library"
66989
67106
  ]);
66990
67107
  const MAX_SCAN_DEPTH = 6;
66991
- const discoverReactSubprojectsByFilesystem = (rootDirectory) => {
67108
+ const discoverSupportedSubprojectsByFilesystem = (rootDirectory) => {
66992
67109
  const packages = [];
66993
67110
  const pendingDirectories = [{
66994
67111
  directory: rootDirectory,
@@ -67001,7 +67118,7 @@ const discoverReactSubprojectsByFilesystem = (rootDirectory) => {
67001
67118
  const packageJsonPath = path$1$1.join(currentDirectory, "package.json");
67002
67119
  if (isFile(packageJsonPath)) {
67003
67120
  const packageJson = readPackageJson(packageJsonPath);
67004
- if (hasReactDependency(packageJson)) {
67121
+ if (hasSupportedProjectDependency(packageJson)) {
67005
67122
  const name = packageJson.name ?? path$1$1.basename(currentDirectory);
67006
67123
  packages.push({
67007
67124
  name,
@@ -67021,11 +67138,11 @@ const discoverReactSubprojectsByFilesystem = (rootDirectory) => {
67021
67138
  }
67022
67139
  return packages;
67023
67140
  };
67024
- const discoverReactSubprojects = (rootDirectory) => {
67141
+ const discoverSupportedSubprojects = (rootDirectory) => {
67025
67142
  if (!isDirectory(rootDirectory)) return [];
67026
67143
  const manifestPackages = listManifestWorkspacePackages(rootDirectory);
67027
67144
  if (manifestPackages.length > 0) return manifestPackages;
67028
- return discoverReactSubprojectsByFilesystem(rootDirectory);
67145
+ return discoverSupportedSubprojectsByFilesystem(rootDirectory);
67029
67146
  };
67030
67147
  const cachedProjectInfos = /* @__PURE__ */ new Map();
67031
67148
  const clearProjectCache = () => {
@@ -67084,6 +67201,12 @@ const discoverProjectWithoutPackageJson = (directory, options) => {
67084
67201
  remotionVersion: null,
67085
67202
  remotionMajorVersion: null,
67086
67203
  hasI18nLibrary: false,
67204
+ hasRadixUi: false,
67205
+ hasBaseUi: false,
67206
+ hasReactAriaComponents: false,
67207
+ hasTanstackTable: false,
67208
+ hasTanstackVirtual: false,
67209
+ hasTanstackForm: false,
67087
67210
  tanstackQueryVersion: null,
67088
67211
  styledComponentsVersion: null,
67089
67212
  hasThree: false,
@@ -67105,6 +67228,7 @@ const discoverProjectWithoutPackageJson = (directory, options) => {
67105
67228
  shopifyFlashListMajorVersion: null,
67106
67229
  hasReanimated: false,
67107
67230
  reanimatedVersion: null,
67231
+ hasShadcnUi: detectShadcnUi(directory),
67108
67232
  isPreES2023Target: hasOwnTsConfig && detectPreES2023Target(directory),
67109
67233
  isStaticExport: false,
67110
67234
  sourceFileCount
@@ -67267,6 +67391,12 @@ const discoverProject = (directory, options = {}) => {
67267
67391
  hasReactCompilerLintPlugin: detectReactCompilerLintPlugin(directory, packageJson),
67268
67392
  hasTanStackQuery: tanstackQueryVersion !== null,
67269
67393
  hasI18nLibrary: workspaceFacts.hasI18nLibrary,
67394
+ hasRadixUi: workspaceFacts.hasRadixUi,
67395
+ hasBaseUi: workspaceFacts.hasBaseUi,
67396
+ hasReactAriaComponents: workspaceFacts.hasReactAriaComponents,
67397
+ hasTanstackTable: workspaceFacts.hasTanstackTable,
67398
+ hasTanstackVirtual: workspaceFacts.hasTanstackVirtual,
67399
+ hasTanstackForm: workspaceFacts.hasTanstackForm,
67270
67400
  tanstackQueryVersion,
67271
67401
  styledComponentsVersion: workspaceFacts.styledComponentsVersion,
67272
67402
  valtioVersion,
@@ -67293,6 +67423,7 @@ const discoverProject = (directory, options = {}) => {
67293
67423
  shopifyFlashListMajorVersion: shopifyFlashListVersion === null ? null : getLowestDependencyMajor(shopifyFlashListVersion),
67294
67424
  hasReanimated,
67295
67425
  reanimatedVersion,
67426
+ hasShadcnUi: workspaceFacts.hasShadcnUi,
67296
67427
  isPreES2023Target,
67297
67428
  isStaticExport: framework === "nextjs" && detectNextjsStaticExport(workspaceFacts.next.sourceDirectory ?? directory),
67298
67429
  sourceFileCount
@@ -67300,16 +67431,31 @@ const discoverProject = (directory, options = {}) => {
67300
67431
  cachedProjectInfos.set(directory, projectInfo);
67301
67432
  return projectInfo;
67302
67433
  };
67434
+ const REACT_COMPATIBLE_FRAMEWORKS = new Set([
67435
+ "nextjs",
67436
+ "tanstack-start",
67437
+ "cra",
67438
+ "remix",
67439
+ "gatsby",
67440
+ "expo",
67441
+ "react-native",
67442
+ "preact"
67443
+ ]);
67444
+ /**
67445
+ * Whether project discovery resolved a React-compatible runtime directly or
67446
+ * through a framework whose runtime is necessarily React-compatible.
67447
+ */
67448
+ const hasReactRuntime = (project) => project.reactVersion !== null || project.preactVersion !== null || REACT_COMPATIBLE_FRAMEWORKS.has(project.framework);
67303
67449
  /**
67304
- * A project is worth scanning when it has React/Preact (the framework-
67450
+ * A project is worth scanning when it has a supported runtime (the runtime-
67305
67451
  * specific rules apply) OR it simply has source files to lint. The
67306
67452
  * second arm is what lets a plain TypeScript/JavaScript codebase — no
67307
67453
  * React dependency at all — run the framework-agnostic rules
67308
67454
  * (security, architecture, zod, bundle-size, …) instead of hard-failing
67309
- * with "No React dependency". Only a directory with neither React nor a
67310
- * single source file has nothing to analyze.
67455
+ * with "No React dependency". Only a directory with neither a supported
67456
+ * runtime nor a single source file has nothing to analyze.
67311
67457
  */
67312
- const isAnalyzableProject = (project) => project.reactVersion !== null || project.preactVersion !== null || project.sourceFileCount > 0;
67458
+ const isAnalyzableProject = (project) => hasReactRuntime(project) || project.hasThree === true || project.hasRemotion === true || project.sourceFileCount > 0;
67313
67459
  const LEGACY_RULE_KEY_TO_NATIVE_RULE_KEY = {
67314
67460
  "deslop/circular-dependency": "react-doctor/circular-dependency",
67315
67461
  "deslop/unused-dependency": "react-doctor/unused-dependency",
@@ -69227,11 +69373,11 @@ const resolveConfigRootDir = (config, configSourceDirectory) => {
69227
69373
  };
69228
69374
  const resolveDiagnoseTarget = (directory, options = {}) => {
69229
69375
  if (isFile(path$1$1.join(directory, "package.json"))) return directory;
69230
- const reactSubprojects = discoverReactSubprojects(directory);
69231
- if (reactSubprojects.length === 0) return null;
69232
- if (reactSubprojects.length === 1) return reactSubprojects[0].directory;
69376
+ const subprojects = discoverSupportedSubprojects(directory);
69377
+ if (subprojects.length === 0) return null;
69378
+ if (subprojects.length === 1) return subprojects[0].directory;
69233
69379
  if (options.allowAmbiguous === true) return null;
69234
- throw new AmbiguousProjectError(directory, reactSubprojects.map((subproject) => path$1$1.relative(directory, subproject.directory)).toSorted());
69380
+ throw new AmbiguousProjectError(directory, subprojects.map((subproject) => path$1$1.relative(directory, subproject.directory)).toSorted());
69235
69381
  };
69236
69382
  /**
69237
69383
  * The canonical entry-point translation shared by every public shell
@@ -70966,21 +71112,6 @@ function* collectSecurityScanFiles(rootDirectory, excludedDirectories = /* @__PU
70966
71112
  }
70967
71113
  }
70968
71114
  }
70969
- const REACT_COMPATIBLE_FRAMEWORKS = new Set([
70970
- "nextjs",
70971
- "tanstack-start",
70972
- "cra",
70973
- "remix",
70974
- "gatsby",
70975
- "expo",
70976
- "react-native",
70977
- "preact"
70978
- ]);
70979
- /**
70980
- * Whether project discovery resolved a React-compatible runtime directly or
70981
- * through a framework whose runtime is necessarily React-compatible.
70982
- */
70983
- const hasReactRuntime = (project) => project.reactVersion !== null || project.preactVersion !== null || REACT_COMPATIBLE_FRAMEWORKS.has(project.framework);
70984
71115
  const CLIENT_ONLY_FRAMEWORKS = new Set([
70985
71116
  "vite",
70986
71117
  "cra",
@@ -71041,6 +71172,13 @@ const buildCapabilities = (project) => {
71041
71172
  minor: 0
71042
71173
  })) capabilities.add("tailwind:4");
71043
71174
  }
71175
+ if (project.hasShadcnUi === true) capabilities.add("shadcn");
71176
+ if (project.hasRadixUi === true) capabilities.add("radix-ui");
71177
+ if (project.hasBaseUi === true) capabilities.add("base-ui");
71178
+ if (project.hasReactAriaComponents === true) capabilities.add("react-aria");
71179
+ if (project.hasTanstackTable === true) capabilities.add("tanstack-table");
71180
+ if (project.hasTanstackVirtual === true) capabilities.add("tanstack-virtual");
71181
+ if (project.hasTanstackForm === true) capabilities.add("tanstack-form");
71044
71182
  if (project.zodVersion !== null) capabilities.add("zod");
71045
71183
  if (project.zodMajorVersion !== null && project.zodMajorVersion >= 4) capabilities.add("zod:4");
71046
71184
  if (project.mobxVersion !== void 0 && project.mobxVersion !== null || project.hasMobxReact === true || project.hasMobxReactLite === true || project.hasMobxStateTree === true || project.hasMobxReactObserver === true) capabilities.add("mobx");
@@ -71218,72 +71356,6 @@ const checkSecurityScanCooperative = async (rootDirectory, options = {}) => {
71218
71356
  }
71219
71357
  return session.diagnostics;
71220
71358
  };
71221
- var import_picocolors = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
71222
- let p = process || {}, argv = p.argv || [], env = p.env || {};
71223
- let isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI);
71224
- let formatter = (open, close, replace = open) => (input) => {
71225
- let string = "" + input, index = string.indexOf(close, open.length);
71226
- return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
71227
- };
71228
- let replaceClose = (string, close, replace, index) => {
71229
- let result = "", cursor = 0;
71230
- do {
71231
- result += string.substring(cursor, index) + replace;
71232
- cursor = index + close.length;
71233
- index = string.indexOf(close, cursor);
71234
- } while (~index);
71235
- return result + string.substring(cursor);
71236
- };
71237
- let createColors = (enabled = isColorSupported) => {
71238
- let f = enabled ? formatter : () => String;
71239
- return {
71240
- isColorSupported: enabled,
71241
- reset: f("\x1B[0m", "\x1B[0m"),
71242
- bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"),
71243
- dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"),
71244
- italic: f("\x1B[3m", "\x1B[23m"),
71245
- underline: f("\x1B[4m", "\x1B[24m"),
71246
- inverse: f("\x1B[7m", "\x1B[27m"),
71247
- hidden: f("\x1B[8m", "\x1B[28m"),
71248
- strikethrough: f("\x1B[9m", "\x1B[29m"),
71249
- black: f("\x1B[30m", "\x1B[39m"),
71250
- red: f("\x1B[31m", "\x1B[39m"),
71251
- green: f("\x1B[32m", "\x1B[39m"),
71252
- yellow: f("\x1B[33m", "\x1B[39m"),
71253
- blue: f("\x1B[34m", "\x1B[39m"),
71254
- magenta: f("\x1B[35m", "\x1B[39m"),
71255
- cyan: f("\x1B[36m", "\x1B[39m"),
71256
- white: f("\x1B[37m", "\x1B[39m"),
71257
- gray: f("\x1B[90m", "\x1B[39m"),
71258
- bgBlack: f("\x1B[40m", "\x1B[49m"),
71259
- bgRed: f("\x1B[41m", "\x1B[49m"),
71260
- bgGreen: f("\x1B[42m", "\x1B[49m"),
71261
- bgYellow: f("\x1B[43m", "\x1B[49m"),
71262
- bgBlue: f("\x1B[44m", "\x1B[49m"),
71263
- bgMagenta: f("\x1B[45m", "\x1B[49m"),
71264
- bgCyan: f("\x1B[46m", "\x1B[49m"),
71265
- bgWhite: f("\x1B[47m", "\x1B[49m"),
71266
- blackBright: f("\x1B[90m", "\x1B[39m"),
71267
- redBright: f("\x1B[91m", "\x1B[39m"),
71268
- greenBright: f("\x1B[92m", "\x1B[39m"),
71269
- yellowBright: f("\x1B[93m", "\x1B[39m"),
71270
- blueBright: f("\x1B[94m", "\x1B[39m"),
71271
- magentaBright: f("\x1B[95m", "\x1B[39m"),
71272
- cyanBright: f("\x1B[96m", "\x1B[39m"),
71273
- whiteBright: f("\x1B[97m", "\x1B[39m"),
71274
- bgBlackBright: f("\x1B[100m", "\x1B[49m"),
71275
- bgRedBright: f("\x1B[101m", "\x1B[49m"),
71276
- bgGreenBright: f("\x1B[102m", "\x1B[49m"),
71277
- bgYellowBright: f("\x1B[103m", "\x1B[49m"),
71278
- bgBlueBright: f("\x1B[104m", "\x1B[49m"),
71279
- bgMagentaBright: f("\x1B[105m", "\x1B[49m"),
71280
- bgCyanBright: f("\x1B[106m", "\x1B[49m"),
71281
- bgWhiteBright: f("\x1B[107m", "\x1B[49m")
71282
- };
71283
- };
71284
- module.exports = createColors();
71285
- module.exports.createColors = createColors;
71286
- })))(), 1);
71287
71359
  const highlighter = {
71288
71360
  error: import_picocolors.default.red,
71289
71361
  warn: import_picocolors.default.yellow,
@@ -72601,7 +72673,11 @@ var Git = class Git extends Service()("react-doctor/Git") {
72601
72673
  const symref = yield* runGit(directory, ["symbolic-ref", "refs/remotes/origin/HEAD"]);
72602
72674
  if (symref.status === 0) {
72603
72675
  const trimmed = trimOrNull(symref.stdout);
72604
- if (trimmed !== null) return trimmed.replace("refs/remotes/origin/", "");
72676
+ if (trimmed !== null) {
72677
+ const branchName = trimmed.replace("refs/remotes/origin/", "");
72678
+ const remoteBranch = `origin/${branchName}`;
72679
+ return (yield* branchExists(directory, remoteBranch)) ? remoteBranch : branchName;
72680
+ }
72605
72681
  }
72606
72682
  const candidates = yield* runGit(directory, [
72607
72683
  "for-each-ref",
@@ -72609,7 +72685,10 @@ var Git = class Git extends Service()("react-doctor/Git") {
72609
72685
  ...DEFAULT_BRANCH_CANDIDATES.map((candidate) => `refs/heads/${candidate}`)
72610
72686
  ]);
72611
72687
  if (candidates.status !== 0) return null;
72612
- return trimOrNull(candidates.stdout.split("\n")[0] ?? "");
72688
+ const localBranch = trimOrNull(candidates.stdout.split("\n")[0] ?? "");
72689
+ if (localBranch === null) return null;
72690
+ const remoteBranch = `origin/${localBranch}`;
72691
+ return (yield* branchExists(directory, remoteBranch)) ? remoteBranch : localBranch;
72613
72692
  }).pipe(withSpan("Git.defaultBranch"));
72614
72693
  const branchExists = (directory, branch) => runGit(directory, [
72615
72694
  "rev-parse",
@@ -73111,6 +73190,19 @@ const detectUserLintConfigPaths = (rootDirectory) => {
73111
73190
  return [];
73112
73191
  };
73113
73192
  const DISABLE_DIRECTIVE_PATTERN = /(eslint|oxlint)-disable/;
73193
+ const getBackupRootDirectory = (rootDirectory) => path$1$1.join(rootDirectory, ...DISABLE_DIRECTIVE_BACKUP_DIRECTORY_SEGMENTS);
73194
+ const getBackupPath = (rootDirectory, absolutePath) => {
73195
+ if (!isPathInsideDirectory(absolutePath, rootDirectory)) return null;
73196
+ return path$1$1.join(getBackupRootDirectory(rootDirectory), path$1$1.relative(rootDirectory, absolutePath));
73197
+ };
73198
+ const removeBackupRootIfEmpty = (rootDirectory) => {
73199
+ const backupRootDirectory = getBackupRootDirectory(rootDirectory);
73200
+ if (!walkSourceTreeFiles(backupRootDirectory).next().done) return;
73201
+ fs$1$3.rmSync(backupRootDirectory, {
73202
+ recursive: true,
73203
+ force: true
73204
+ });
73205
+ };
73114
73206
  const neutralizedFileLeases = /* @__PURE__ */ new Map();
73115
73207
  const activeNeutralizationInitializations = /* @__PURE__ */ new Set();
73116
73208
  const directoriesOverlap = (left, right) => {
@@ -73202,8 +73294,50 @@ const collectNeutralizationCandidatePaths = (rootDirectory, discoveredRelativePa
73202
73294
  }
73203
73295
  return candidatePaths;
73204
73296
  };
73297
+ const recoverOrphanedBackups = (rootDirectory) => {
73298
+ const blockedPaths = /* @__PURE__ */ new Set();
73299
+ const backupRootDirectory = getBackupRootDirectory(rootDirectory);
73300
+ for (const { absolutePath: backupPath } of walkSourceTreeFiles(backupRootDirectory)) {
73301
+ const originalPath = path$1$1.join(rootDirectory, path$1$1.relative(backupRootDirectory, backupPath));
73302
+ if (neutralizedFileLeases.has(originalPath)) continue;
73303
+ let backupContent;
73304
+ let currentContent;
73305
+ try {
73306
+ backupContent = fs$1$3.readFileSync(backupPath, "utf-8");
73307
+ currentContent = fs$1$3.readFileSync(originalPath, "utf-8");
73308
+ } catch (error) {
73309
+ process.stderr.write(`[react-doctor] Could not recover ${originalPath}: ${messageFromUnknown(error)}. The backup remains at ${backupPath}.\n`);
73310
+ blockedPaths.add(originalPath);
73311
+ continue;
73312
+ }
73313
+ if (currentContent === backupContent) {
73314
+ try {
73315
+ fs$1$3.rmSync(backupPath);
73316
+ } catch (error) {
73317
+ process.stderr.write(`[react-doctor] Failed to delete stale backup ${backupPath}: ${messageFromUnknown(error)}\n`);
73318
+ blockedPaths.add(originalPath);
73319
+ }
73320
+ continue;
73321
+ }
73322
+ if (currentContent !== neutralizeContent(backupContent)) {
73323
+ process.stderr.write(`[react-doctor] Did not overwrite changed file ${originalPath}. Recover it manually from ${backupPath}.\n`);
73324
+ blockedPaths.add(originalPath);
73325
+ continue;
73326
+ }
73327
+ try {
73328
+ fs$1$3.writeFileSync(originalPath, backupContent);
73329
+ fs$1$3.rmSync(backupPath);
73330
+ } catch (error) {
73331
+ process.stderr.write(`[react-doctor] Failed to restore ${originalPath} from backup: ${messageFromUnknown(error)}\n`);
73332
+ blockedPaths.add(originalPath);
73333
+ }
73334
+ }
73335
+ removeBackupRootIfEmpty(rootDirectory);
73336
+ return blockedPaths;
73337
+ };
73205
73338
  const neutralizeDisableDirectives = async (rootDirectory, includePaths, options = {}) => {
73206
73339
  const resolvedRootDirectory = fs$1$3.realpathSync(rootDirectory);
73340
+ const blockedPaths = /* @__PURE__ */ new Set();
73207
73341
  const leasedPaths = /* @__PURE__ */ new Set();
73208
73342
  let isRestored = false;
73209
73343
  const restore = () => {
@@ -73216,16 +73350,24 @@ const neutralizeDisableDirectives = async (rootDirectory, includePaths, options
73216
73350
  if (lease.referenceCount > 0) continue;
73217
73351
  neutralizedFileLeases.delete(absolutePath);
73218
73352
  try {
73219
- fs$1$3.writeFileSync(absolutePath, lease.originalContent);
73353
+ const currentContent = fs$1$3.readFileSync(absolutePath, "utf-8");
73354
+ if (currentContent !== lease.neutralizedContent && currentContent !== lease.originalContent) {
73355
+ process.stderr.write(`[react-doctor] Did not overwrite changed file ${absolutePath}. Recover it manually from ${lease.backupPath}.\n`);
73356
+ continue;
73357
+ }
73358
+ if (currentContent === lease.neutralizedContent) fs$1$3.writeFileSync(absolutePath, lease.originalContent);
73359
+ fs$1$3.rmSync(lease.backupPath, { force: true });
73220
73360
  } catch (error) {
73221
- process.stderr.write(`[react-doctor] Failed to restore inline disable directives in ${absolutePath}: ${messageFromUnknown(error)}\n[react-doctor] Run: git checkout -- ${absolutePath}\n`);
73361
+ process.stderr.write(`[react-doctor] Failed to restore inline disable directives in ${absolutePath}: ${messageFromUnknown(error)}. The backup remains at ${lease.backupPath}.\n`);
73222
73362
  }
73223
73363
  }
73364
+ removeBackupRootIfEmpty(resolvedRootDirectory);
73224
73365
  };
73225
73366
  const onExit = () => restore();
73226
73367
  process.once("exit", onExit);
73227
73368
  const leaseCandidatePath = (absolutePath) => {
73228
73369
  if (leasedPaths.has(absolutePath)) return;
73370
+ if (blockedPaths.has(absolutePath)) return;
73229
73371
  const existingLease = neutralizedFileLeases.get(absolutePath);
73230
73372
  if (existingLease) {
73231
73373
  existingLease.referenceCount += 1;
@@ -73240,9 +73382,20 @@ const neutralizeDisableDirectives = async (rootDirectory, includePaths, options
73240
73382
  }
73241
73383
  const neutralizedContent = neutralizeContent(originalContent);
73242
73384
  if (neutralizedContent !== originalContent) {
73385
+ const backupPath = getBackupPath(resolvedRootDirectory, absolutePath);
73386
+ if (backupPath === null) return;
73387
+ try {
73388
+ fs$1$3.mkdirSync(path$1$1.dirname(backupPath), { recursive: true });
73389
+ fs$1$3.writeFileSync(backupPath, originalContent, { flag: "wx" });
73390
+ } catch (error) {
73391
+ process.stderr.write(`[react-doctor] Did not modify ${absolutePath}: ${messageFromUnknown(error)}. Check ${backupPath}.\n`);
73392
+ return;
73393
+ }
73243
73394
  fs$1$3.writeFileSync(absolutePath, neutralizedContent);
73244
73395
  neutralizedFileLeases.set(absolutePath, {
73396
+ backupPath,
73245
73397
  originalContent,
73398
+ neutralizedContent,
73246
73399
  referenceCount: 1
73247
73400
  });
73248
73401
  leasedPaths.add(absolutePath);
@@ -73250,6 +73403,8 @@ const neutralizeDisableDirectives = async (rootDirectory, includePaths, options
73250
73403
  };
73251
73404
  try {
73252
73405
  await withOverlappingInitializationLock(resolvedRootDirectory, async () => {
73406
+ for (const blockedPath of recoverOrphanedBackups(resolvedRootDirectory)) blockedPaths.add(blockedPath);
73407
+ if (options.recoverOnly) return;
73253
73408
  for (const absolutePath of collectNeutralizationCandidatePaths(resolvedRootDirectory, [], includePaths)) if (neutralizedFileLeases.has(absolutePath)) leaseCandidatePath(absolutePath);
73254
73409
  const discoveredRelativePaths = await (options.findFiles ?? findFilesWithDisableDirectives)(resolvedRootDirectory, includePaths);
73255
73410
  for (const absolutePath of collectNeutralizationCandidatePaths(resolvedRootDirectory, discoveredRelativePaths, includePaths)) leaseCandidatePath(absolutePath);
@@ -74505,7 +74660,7 @@ const buildRelatedLocations = (labels, filePath, sourceBuffer) => {
74505
74660
  const isOxlintSpan = (value) => isRecord(value) && typeof value.offset === "number" && typeof value.length === "number" && typeof value.line === "number" && typeof value.column === "number";
74506
74661
  const isOxlintLabel = (value) => isRecord(value) && isOxlintSpan(value.span);
74507
74662
  const isMappableOxlintDiagnostic = (value) => isRecord(value) && typeof value.code === "string" && value.code.length > 0 && typeof value.filename === "string" && value.filename.length > 0 && (value.severity === "warning" || value.severity === "error") && Array.isArray(value.labels) && value.labels.every(isOxlintLabel);
74508
- const isEngineFailureDiagnostic = (value) => !isRecord(value) || typeof value.filename !== "string" || value.filename.length === 0;
74663
+ const isEngineFailureDiagnostic = (value) => !isRecord(value) || typeof value.filename !== "string" || value.filename.length === 0 || typeof value.message === "string" && value.message.startsWith("Error running JS plugin.") && (typeof value.code !== "string" || value.code.length === 0) && Array.isArray(value.labels) && value.labels.length === 0;
74509
74664
  const isOxlintOutput = (value) => isRecord(value) && Array.isArray(value.diagnostics);
74510
74665
  /**
74511
74666
  * Parses one oxlint subprocess's stdout into a flat `Diagnostic[]`.
@@ -74635,6 +74790,46 @@ const buildProfiledNodeArguments = (input) => [
74635
74790
  ...input.heapProfileDirectory ? ["--heap-prof", `--heap-prof-dir=${input.heapProfileDirectory}`] : [],
74636
74791
  ...input.argumentsList
74637
74792
  ];
74793
+ const buildOxlintTimingArguments = (argumentsList) => {
74794
+ const timingArguments = [...argumentsList];
74795
+ const formatFlagIndex = timingArguments.indexOf("--format");
74796
+ if (formatFlagIndex === -1 || formatFlagIndex + 1 >= timingArguments.length) throw new Error("Oxlint timing arguments require a --format value");
74797
+ timingArguments[formatFlagIndex + 1] = "default";
74798
+ timingArguments.push("--debug", "timings", "--quiet");
74799
+ return timingArguments;
74800
+ };
74801
+ const captureOxlintRuleTimings = (input) => new Promise((resolve, reject) => {
74802
+ const timingEnvironment = { ...input.environment };
74803
+ timingEnvironment.REACT_DOCTOR_RULE_TIMINGS_DIR = void 0;
74804
+ const timingChild = spawn(input.nodeBinaryPath, buildOxlintTimingArguments(input.argumentsList), {
74805
+ cwd: input.rootDirectory,
74806
+ env: timingEnvironment,
74807
+ stdio: [
74808
+ "ignore",
74809
+ "pipe",
74810
+ "pipe"
74811
+ ]
74812
+ });
74813
+ const stdoutBuffers = [];
74814
+ const stderrBuffers = [];
74815
+ timingChild.stdout.on("data", (buffer) => stdoutBuffers.push(buffer));
74816
+ timingChild.stderr.on("data", (buffer) => stderrBuffers.push(buffer));
74817
+ timingChild.on("error", reject);
74818
+ timingChild.on("close", (_code, signal) => {
74819
+ if (signal) {
74820
+ reject(/* @__PURE__ */ new Error(`Oxlint timing pass was killed by ${signal}`));
74821
+ return;
74822
+ }
74823
+ const timingOutput = `${Buffer.concat(stdoutBuffers).toString("utf8")}\n${Buffer.concat(stderrBuffers).toString("utf8")}`;
74824
+ if (!timingOutput.includes("Rule timings:")) {
74825
+ resolve();
74826
+ return;
74827
+ }
74828
+ fs$1$3.mkdirSync(input.timingDirectory, { recursive: true });
74829
+ fs$1$3.writeFileSync(path$1$1.join(input.timingDirectory, `oxlint-${timingChild.pid ?? process.pid}.timings.txt`), timingOutput);
74830
+ resolve();
74831
+ });
74832
+ });
74638
74833
  const lowerChildProcessPriority = (processId) => {
74639
74834
  if (processId === void 0) return;
74640
74835
  try {
@@ -74756,7 +74951,18 @@ const spawnOxlint = (args, rootDirectory, nodeBinaryPath, spawnTimeoutMs = OXLIN
74756
74951
  return;
74757
74952
  }
74758
74953
  }
74759
- resolve(output);
74954
+ const timingDirectory = SANITIZED_ENV.REACT_DOCTOR_OXLINT_TIMINGS_DIR;
74955
+ if (timingDirectory === void 0) {
74956
+ resolve(output);
74957
+ return;
74958
+ }
74959
+ captureOxlintRuleTimings({
74960
+ argumentsList: args,
74961
+ environment: SANITIZED_ENV,
74962
+ nodeBinaryPath,
74963
+ rootDirectory,
74964
+ timingDirectory
74965
+ }).then(() => resolve(output), reject);
74760
74966
  });
74761
74967
  });
74762
74968
  const PARALLELISM_EXHAUSTION_ERROR_CODES = new Set([
@@ -75561,7 +75767,7 @@ const runOxlint = async (options) => {
75561
75767
  const pluginPath = resolvePluginPath();
75562
75768
  const extendsPaths = (adoptExistingLintConfig && !customRulesOnly ? detectUserLintConfigPaths(rootDirectory) : []).filter(canOxlintExtendConfig);
75563
75769
  const userPlugins = includedTags.size > 0 ? [] : resolveUserPlugins(userConfig?.plugins, configSourceDirectory);
75564
- const restoreDisableDirectives = respectInlineDisables ? () => {} : await neutralizeDisableDirectives(rootDirectory, includePaths ?? options.precomputedSourceFiles?.map((sourceFile) => sourceFile.path));
75770
+ const restoreDisableDirectives = await neutralizeDisableDirectives(rootDirectory, includePaths ?? options.precomputedSourceFiles?.map((sourceFile) => sourceFile.path), { recoverOnly: respectInlineDisables });
75565
75771
  const configDirectory = fs$1$3.mkdtempSync(path$1$1.join(os.tmpdir(), "react-doctor-oxlintrc-"));
75566
75772
  const configPath = path$1$1.join(configDirectory, "oxlintrc.json");
75567
75773
  try {
@@ -77864,4 +78070,4 @@ const toJsonReport = (result, options) => buildJsonReport({
77864
78070
  export { AmbiguousProjectError, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, ProjectNotFoundError, ReactDoctorError, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, hasReactRuntime, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
77865
78071
 
77866
78072
  //# sourceMappingURL=index.js.map
77867
- //# debugId=a17c28bc-da40-5fec-8489-037e933cd8c3
78073
+ //# debugId=7faf884e-554f-52d9-9d60-eb66987e6849