react-doctor 0.8.1-dev.412377e → 0.8.1-dev.5774353

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/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]="c65f1825-0401-518f-840a-c33df84ebafc")}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]="9a89aa42-c62d-57b9-a5d7-36051dd45bb3")}catch(e){}}();
3
3
  import { r as __toESM$1, t as __commonJSMin$1 } from "./chunk-N93fKeF6.js";
4
4
  import { createRequire } from "node:module";
5
5
  import reactDoctorPlugin, { ALL_REACT_DOCTOR_RULE_KEYS, CROSS_FILE_DEPENDENCY_COLLECTORS, CROSS_FILE_RULE_IDS, FRAMEWORK_SPECIFIC_RULE_KEYS, FRAMEWORK_TOKENS, MOTION_LIBRARY_PACKAGES, REACT_COMPILER_RULES, REACT_DOCTOR_RULES, classifySecurityScanFile, collectCrossFileDependencyProbes, resetManifestCaches, shouldReadSecurityScanContent } from "oxlint-plugin-react-doctor";
@@ -32854,6 +32854,44 @@ var AmbiguousProjectError = class extends Error {
32854
32854
  }
32855
32855
  };
32856
32856
  const isProjectDiscoveryError = (value) => value instanceof ProjectNotFoundError || value instanceof NoReactDependencyError || value instanceof PackageJsonNotFoundError || value instanceof NotADirectoryError || value instanceof AmbiguousProjectError;
32857
+ const isErrnoException = (error) => error instanceof Error && "code" in error;
32858
+ const IGNORABLE_READDIR_ERROR_CODES = new Set([
32859
+ "EACCES",
32860
+ "EPERM",
32861
+ "ENOENT",
32862
+ "ENOTDIR",
32863
+ "EINVAL",
32864
+ "ELOOP",
32865
+ "ENAMETOOLONG"
32866
+ ]);
32867
+ const isIgnorableReaddirError = (error) => isErrnoException(error) && typeof error.code === "string" && IGNORABLE_READDIR_ERROR_CODES.has(error.code);
32868
+ const readDirectoryEntries = (directoryPath) => {
32869
+ try {
32870
+ return NFS.readdirSync(directoryPath, { withFileTypes: true });
32871
+ } catch (error) {
32872
+ if (isIgnorableReaddirError(error)) return [];
32873
+ throw error;
32874
+ }
32875
+ };
32876
+ const isFile = (filePath) => {
32877
+ try {
32878
+ return NFS.statSync(filePath).isFile();
32879
+ } catch {
32880
+ return false;
32881
+ }
32882
+ };
32883
+ const isDirectory = (directoryPath) => {
32884
+ try {
32885
+ return NFS.statSync(directoryPath).isDirectory();
32886
+ } catch {
32887
+ return false;
32888
+ }
32889
+ };
32890
+ const isPlainObject = (value) => {
32891
+ if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
32892
+ const prototype = Object.getPrototypeOf(value);
32893
+ return prototype === null || prototype === Object.prototype;
32894
+ };
32857
32895
  const SOURCE_FILE_PATTERN = /\.(tsx?|jsx?|mts|mjs)$/;
32858
32896
  const GENERATED_BUNDLE_FILE_PATTERN = /\.(iife|umd|global|min)\.m?js$/i;
32859
32897
  const GENERATED_SOURCE_DIRECTORY_PATTERN = /(?:^|\/)__generated__\//;
@@ -32894,58 +32932,6 @@ const IGNORED_DIRECTORIES = new Set([
32894
32932
  "storybook-static"
32895
32933
  ]);
32896
32934
  const MILLISECONDS_PER_SECOND = 1e3;
32897
- const REACT_ROUTER_CAPABILITY_THRESHOLDS = [
32898
- {
32899
- capability: "react-router:6.4",
32900
- major: 6,
32901
- minor: 4
32902
- },
32903
- {
32904
- capability: "react-router:6.7",
32905
- major: 6,
32906
- minor: 7
32907
- },
32908
- {
32909
- capability: "react-router:6.9",
32910
- major: 6,
32911
- minor: 9
32912
- },
32913
- {
32914
- capability: "react-router:6.19",
32915
- major: 6,
32916
- minor: 19
32917
- },
32918
- {
32919
- capability: "react-router:7",
32920
- major: 7,
32921
- minor: 0
32922
- },
32923
- {
32924
- capability: "react-router:7.8",
32925
- major: 7,
32926
- minor: 8
32927
- },
32928
- {
32929
- capability: "react-router:7.9",
32930
- major: 7,
32931
- minor: 9
32932
- },
32933
- {
32934
- capability: "react-router:7.10",
32935
- major: 7,
32936
- minor: 10
32937
- },
32938
- {
32939
- capability: "react-router:7.15",
32940
- major: 7,
32941
- minor: 15
32942
- },
32943
- {
32944
- capability: "react-router:8",
32945
- major: 8,
32946
- minor: 0
32947
- }
32948
- ];
32949
32935
  const SCORE_API_URL = "https://www.react.doctor/api/score";
32950
32936
  const FETCH_TIMEOUT_MS = 1e4;
32951
32937
  const GITHUB_VIEWER_PERMISSION_TIMEOUT_MS = 2e3;
@@ -33064,44 +33050,6 @@ const SUPPLY_CHAIN_OVERLAP_TIMEOUT_MS = 9e4;
33064
33050
  const SUPPLY_CHAIN_CACHE_TTL_MS = 864e5;
33065
33051
  const SUPPLY_CHAIN_CACHE_SUBDIR = "supply-chain";
33066
33052
  const SUPPLY_CHAIN_IGNORED_PACKAGES = new Set(["next"]);
33067
- const isErrnoException = (error) => error instanceof Error && "code" in error;
33068
- const IGNORABLE_READDIR_ERROR_CODES = new Set([
33069
- "EACCES",
33070
- "EPERM",
33071
- "ENOENT",
33072
- "ENOTDIR",
33073
- "EINVAL",
33074
- "ELOOP",
33075
- "ENAMETOOLONG"
33076
- ]);
33077
- const isIgnorableReaddirError = (error) => isErrnoException(error) && typeof error.code === "string" && IGNORABLE_READDIR_ERROR_CODES.has(error.code);
33078
- const readDirectoryEntries = (directoryPath) => {
33079
- try {
33080
- return NFS.readdirSync(directoryPath, { withFileTypes: true });
33081
- } catch (error) {
33082
- if (isIgnorableReaddirError(error)) return [];
33083
- throw error;
33084
- }
33085
- };
33086
- const isFile = (filePath) => {
33087
- try {
33088
- return NFS.statSync(filePath).isFile();
33089
- } catch {
33090
- return false;
33091
- }
33092
- };
33093
- const isDirectory = (directoryPath) => {
33094
- try {
33095
- return NFS.statSync(directoryPath).isDirectory();
33096
- } catch {
33097
- return false;
33098
- }
33099
- };
33100
- const isPlainObject = (value) => {
33101
- if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
33102
- const prototype = Object.getPrototypeOf(value);
33103
- return prototype === null || prototype === Object.prototype;
33104
- };
33105
33053
  const lastSourceMappingUrl = (fileContent) => {
33106
33054
  const lastReference = [...fileContent.matchAll(/\/\/# sourceMappingURL=(\S+)/g)].at(-1);
33107
33055
  return lastReference ? lastReference[1] : null;
@@ -33427,10 +33375,10 @@ const FALLBACK_TSCONFIG_FILENAMES = ["tsconfig.app.json", "tsconfig.build.json"]
33427
33375
  const FRAMEWORK_PACKAGES = {
33428
33376
  next: "nextjs",
33429
33377
  "@tanstack/react-start": "tanstack-start",
33430
- "@remix-run/react": "remix",
33431
- gatsby: "gatsby",
33432
33378
  vite: "vite",
33433
33379
  "react-scripts": "cra",
33380
+ "@remix-run/react": "remix",
33381
+ gatsby: "gatsby",
33434
33382
  expo: "expo",
33435
33383
  "react-native": "react-native"
33436
33384
  };
@@ -33454,17 +33402,11 @@ const NEXT_CONFIG_FILENAMES = [
33454
33402
  ];
33455
33403
  const BABEL_CONFIG_FILENAMES = [
33456
33404
  ".babelrc",
33457
- ".babelrc.js",
33458
33405
  ".babelrc.json",
33459
- ".babelrc.cjs",
33460
- ".babelrc.mjs",
33461
- ".babelrc.cts",
33462
33406
  "babel.config.js",
33463
33407
  "babel.config.json",
33464
33408
  "babel.config.cjs",
33465
- "babel.config.mjs",
33466
- "babel.config.ts",
33467
- "babel.config.cts"
33409
+ "babel.config.mjs"
33468
33410
  ];
33469
33411
  const VITE_CONFIG_FILENAMES = [
33470
33412
  "vite.config.js",
@@ -33476,28 +33418,12 @@ const VITE_CONFIG_FILENAMES = [
33476
33418
  "vitest.config.ts",
33477
33419
  "vitest.config.js"
33478
33420
  ];
33479
- const RSBUILD_CONFIG_FILENAMES = [
33480
- "rsbuild.config.ts",
33481
- "rsbuild.config.js",
33482
- "rsbuild.config.mts",
33483
- "rsbuild.config.mjs",
33484
- "rsbuild.config.cts",
33485
- "rsbuild.config.cjs"
33486
- ];
33487
- const RSPACK_CONFIG_FILENAMES = [
33488
- "rspack.config.ts",
33489
- "rspack.config.js",
33490
- "rspack.config.mts",
33491
- "rspack.config.mjs",
33492
- "rspack.config.cts",
33493
- "rspack.config.cjs"
33494
- ];
33495
33421
  const EXPO_APP_CONFIG_FILENAMES = [
33496
33422
  "app.json",
33497
33423
  "app.config.js",
33498
33424
  "app.config.ts"
33499
33425
  ];
33500
- const REACT_COMPILER_PACKAGE_REFERENCE_PATTERN = /babel-plugin-react-compiler|react-compiler-runtime|reactCompilerPreset\s*\(|["']react-compiler["']/;
33426
+ const REACT_COMPILER_PACKAGE_REFERENCE_PATTERN = /babel-plugin-react-compiler|react-compiler-runtime|["']react-compiler["']/;
33501
33427
  const REACT_COMPILER_ENABLED_FLAG_PATTERN = /["']?reactCompiler["']?\s*:\s*(?:true\b|\{)/;
33502
33428
  const STATIC_EXPORT_OUTPUT_PATTERN = /(?:^|[^.\w])["']?output["']?\s*:\s*["']export["']/m;
33503
33429
  const hasCompilerPackage = (packageJson, compilerPackages) => {
@@ -33532,8 +33458,6 @@ const detectReactCompiler = (directory, packageJson) => {
33532
33458
  if (hasCompilerInConfigFiles(directory, NEXT_CONFIG_FILENAMES)) return true;
33533
33459
  if (hasCompilerInConfigFiles(directory, BABEL_CONFIG_FILENAMES)) return true;
33534
33460
  if (hasCompilerInConfigFiles(directory, VITE_CONFIG_FILENAMES)) return true;
33535
- if (hasCompilerInConfigFiles(directory, RSBUILD_CONFIG_FILENAMES)) return true;
33536
- if (hasCompilerInConfigFiles(directory, RSPACK_CONFIG_FILENAMES)) return true;
33537
33461
  if (hasCompilerInConfigFiles(directory, EXPO_APP_CONFIG_FILENAMES)) return true;
33538
33462
  return hasCompilerPackageInAncestors(directory, REACT_COMPILER_TRANSFORM_PACKAGES);
33539
33463
  };
@@ -33542,7 +33466,7 @@ const detectNextjsStaticExport = (directory) => NEXT_CONFIG_FILENAMES.some((file
33542
33466
  const filePath = Path.join(directory, filename);
33543
33467
  return isFile(filePath) && STATIC_EXPORT_OUTPUT_PATTERN.test(NFS.readFileSync(filePath, "utf-8"));
33544
33468
  });
33545
- const UNRESOLVABLE_PROTOCOL_VERSION = /^(?:catalog|file|git|github|https?|link|patch|portal|workspace|npm):/i;
33469
+ const UNRESOLVABLE_PROTOCOL_VERSION = /^(?:file|git|github|https?|link|patch|portal|workspace|npm):/i;
33546
33470
  const DIST_TAG_VERSION = /^[a-z][a-z0-9._-]*$/i;
33547
33471
  const WILDCARD_VERSION = /^[*xX](?:\.[*xX])*$/;
33548
33472
  const NPM_ALIAS_VERSION = /^npm:(?:@[^/]+\/[^@]+|[^@]+)@(.+)$/i;
@@ -33675,16 +33599,6 @@ const getLowestDependencyMajor = (version) => {
33675
33599
  }
33676
33600
  return lowestMajor;
33677
33601
  };
33678
- const getDependencyMajorWithinSupportedRange = (version, latestSupportedMajor) => {
33679
- const normalizedVersion = normalizeDependencyVersion(version);
33680
- if (normalizedVersion === null) return null;
33681
- const validRange = import_semver.validRange(normalizedVersion);
33682
- if (validRange === null) return null;
33683
- const minimumVersion = import_semver.minVersion(validRange);
33684
- if (minimumVersion === null || minimumVersion.major > latestSupportedMajor) return null;
33685
- if (import_semver.intersects(validRange, `>=${latestSupportedMajor + 1}.0.0`)) return null;
33686
- return minimumVersion.major;
33687
- };
33688
33602
  const isConcreteDependencyVersion = (version) => {
33689
33603
  const normalizedVersion = normalizeDependencyVersion(version);
33690
33604
  return normalizedVersion !== null && /\d/.test(normalizedVersion);
@@ -33728,18 +33642,9 @@ const parseReactMajorMinor = (reactVersion) => {
33728
33642
  };
33729
33643
  };
33730
33644
  const parseLowerBoundVersion = (versionSpec) => import_semver.validRange(versionSpec) !== null ? import_semver.minVersion(versionSpec) : import_semver.coerce(versionSpec);
33731
- const parseThreeRelease = (threeVersion) => {
33732
- if (typeof threeVersion !== "string") return null;
33733
- const normalizedVersion = normalizeDependencyVersion(threeVersion);
33734
- if (normalizedVersion === null) return null;
33735
- const lowerBound = parseLowerBoundVersion(normalizedVersion);
33736
- if (lowerBound === null) return null;
33737
- if (lowerBound.major > 0) return Number.MAX_SAFE_INTEGER;
33738
- return lowerBound.minor > 0 ? lowerBound.minor : null;
33739
- };
33740
- const parseDependencyMajorMinor = (dependencyVersion) => {
33741
- if (typeof dependencyVersion !== "string") return null;
33742
- const trimmed = dependencyVersion.trim();
33645
+ const parseTailwindMajorMinor = (tailwindVersion) => {
33646
+ if (typeof tailwindVersion !== "string") return null;
33647
+ const trimmed = tailwindVersion.trim();
33743
33648
  if (trimmed.length === 0) return null;
33744
33649
  const lowerBound = parseLowerBoundVersion(trimmed);
33745
33650
  if (lowerBound === null || lowerBound.major <= 0) return null;
@@ -33748,7 +33653,6 @@ const parseDependencyMajorMinor = (dependencyVersion) => {
33748
33653
  minor: lowerBound.minor
33749
33654
  };
33750
33655
  };
33751
- const parseTailwindMajorMinor = (tailwindVersion) => parseDependencyMajorMinor(tailwindVersion);
33752
33656
  const hasUpperBoundOnlyPeerRange = (range) => {
33753
33657
  if (typeof range !== "string") return false;
33754
33658
  const normalizedRange = normalizeDependencyVersion(range);
@@ -33770,7 +33674,7 @@ const resolveEffectiveReactMajor = (reactVersion, packageJson) => {
33770
33674
  if (peerFloor === null) return hasUpperBoundOnlyPeerRange(peerReactRange) ? null : installedReactMajor;
33771
33675
  return installedReactMajor !== null ? Math.min(installedReactMajor, peerFloor) : peerFloor;
33772
33676
  };
33773
- const isCatalogReference = (version) => typeof version === "string" && version.startsWith("catalog:");
33677
+ const isCatalogReference = (version) => version.startsWith("catalog:");
33774
33678
  const extractCatalogName = (version) => {
33775
33679
  if (!isCatalogReference(version)) return null;
33776
33680
  const name = version.slice(8).trim();
@@ -33920,12 +33824,6 @@ const TAILWIND_ZOD_SECTIONS = [
33920
33824
  "devDependencies",
33921
33825
  "peerDependencies"
33922
33826
  ];
33923
- const DEPENDENCY_SPEC_SECTIONS = [
33924
- "dependencies",
33925
- "devDependencies",
33926
- "peerDependencies",
33927
- "optionalDependencies"
33928
- ];
33929
33827
  const EMPTY_DEPENDENCY_INFO = {
33930
33828
  reactVersion: null,
33931
33829
  tailwindVersion: null,
@@ -33935,7 +33833,7 @@ const EMPTY_DEPENDENCY_INFO = {
33935
33833
  const pickConcreteVersion = (packageJson, packageName, sections) => {
33936
33834
  for (const section of sections) {
33937
33835
  const version = packageJson[section]?.[packageName];
33938
- if (typeof version !== "string") continue;
33836
+ if (version === void 0) continue;
33939
33837
  if (isCatalogReference(version)) return null;
33940
33838
  if (isConcreteDependencyVersion(version)) return version;
33941
33839
  }
@@ -33967,16 +33865,13 @@ const extractDependencyInfo = (packageJson) => {
33967
33865
  };
33968
33866
  };
33969
33867
  const getDependencySpec = (packageJson, packageName) => {
33970
- for (const section of DEPENDENCY_SPEC_SECTIONS) {
33971
- const spec = packageJson[section]?.[packageName];
33972
- if (typeof spec === "string") return spec;
33973
- }
33974
- return null;
33868
+ const spec = packageJson.dependencies?.[packageName] ?? packageJson.devDependencies?.[packageName] ?? packageJson.peerDependencies?.[packageName] ?? packageJson.optionalDependencies?.[packageName];
33869
+ return typeof spec === "string" ? spec : null;
33975
33870
  };
33976
33871
  const getDependencyDeclaration = ({ packageJson, packageName, sections }) => {
33977
33872
  for (const section of sections) {
33978
33873
  const version = packageJson[section]?.[packageName];
33979
- if (typeof version !== "string") continue;
33874
+ if (version === void 0) continue;
33980
33875
  return {
33981
33876
  catalogReference: extractCatalogName(version) ?? null,
33982
33877
  hasDeclaration: true,
@@ -34010,15 +33905,24 @@ const getPreactVersion = (packageJson) => {
34010
33905
  ...packageJson.devDependencies
34011
33906
  }.preact ?? null;
34012
33907
  };
34013
- const resolveCatalogBackedDependencyVersion = ({ rootDirectory, rootPackageJson, packageName, sourceDirectory = rootDirectory, sourcePackageJson = rootPackageJson, version }) => {
33908
+ const TANSTACK_QUERY_PACKAGES = new Set([
33909
+ "@tanstack/react-query",
33910
+ "@tanstack/query-core",
33911
+ "react-query"
33912
+ ]);
33913
+ const hasTanStackQuery = (packageJson) => {
33914
+ const allDependencies = {
33915
+ ...packageJson.peerDependencies,
33916
+ ...packageJson.dependencies,
33917
+ ...packageJson.devDependencies
33918
+ };
33919
+ return Object.keys(allDependencies).some((packageName) => TANSTACK_QUERY_PACKAGES.has(packageName));
33920
+ };
33921
+ const resolveCatalogBackedDependencyVersion = ({ rootDirectory, rootPackageJson, packageName, version }) => {
34014
33922
  if (version === null || !isCatalogReference(version)) return version;
34015
33923
  const catalogName = extractCatalogName(version);
34016
- const resolvedSourceVersion = resolveCatalogVersion(sourcePackageJson, packageName, sourceDirectory, catalogName);
34017
- if (resolvedSourceVersion) return resolvedSourceVersion;
34018
- if (sourceDirectory !== rootDirectory || sourcePackageJson !== rootPackageJson) {
34019
- const resolvedRootVersion = resolveCatalogVersion(rootPackageJson, packageName, rootDirectory, catalogName);
34020
- if (resolvedRootVersion) return resolvedRootVersion;
34021
- }
33924
+ const resolvedLocalVersion = resolveCatalogVersion(rootPackageJson, packageName, rootDirectory, catalogName);
33925
+ if (resolvedLocalVersion) return resolvedLocalVersion;
34022
33926
  const monorepoRoot = findMonorepoRoot(rootDirectory);
34023
33927
  if (!monorepoRoot) return version;
34024
33928
  const monorepoPackageJsonPath = Path.join(monorepoRoot, "package.json");
@@ -34216,84 +34120,7 @@ const listWorkspacePackages = (rootDirectory) => {
34216
34120
  }
34217
34121
  return packages;
34218
34122
  };
34219
- const PREFERRED_DEPENDENCY_SECTIONS = [
34220
- "dependencies",
34221
- "peerDependencies",
34222
- "devDependencies"
34223
- ];
34224
- const getPreferredDependencyVersion = ({ packageJson, packageNames }) => {
34225
- for (const packageName of packageNames) {
34226
- const declaration = getDependencyDeclaration({
34227
- packageJson,
34228
- packageName,
34229
- sections: PREFERRED_DEPENDENCY_SECTIONS
34230
- });
34231
- if (declaration.version !== null) return declaration.version;
34232
- }
34233
- return null;
34234
- };
34235
- const TANSTACK_REACT_QUERY_PACKAGES = ["@tanstack/react-query", "react-query"];
34236
- const getTanStackQueryVersion = (packageJson) => {
34237
- return getPreferredDependencyVersion({
34238
- packageJson,
34239
- packageNames: TANSTACK_REACT_QUERY_PACKAGES
34240
- });
34241
- };
34242
- const STYLED_COMPONENTS_PACKAGES = ["styled-components"];
34243
- const getStyledComponentsVersion = (packageJson) => {
34244
- return getPreferredDependencyVersion({
34245
- packageJson,
34246
- packageNames: STYLED_COMPONENTS_PACKAGES
34247
- });
34248
- };
34249
- const I18N_PACKAGES = [
34250
- "i18next",
34251
- "react-i18next",
34252
- "next-i18next",
34253
- "react-intl",
34254
- "next-intl",
34255
- "use-intl",
34256
- "@formatjs/intl",
34257
- "@lingui/core",
34258
- "@lingui/react",
34259
- "typesafe-i18n",
34260
- "@tolgee/react",
34261
- "react-intl-universal"
34262
- ];
34263
- const hasI18nDependency = (packageJson) => {
34264
- const allDependencies = {
34265
- ...packageJson.peerDependencies,
34266
- ...packageJson.dependencies,
34267
- ...packageJson.devDependencies,
34268
- ...packageJson.optionalDependencies
34269
- };
34270
- return I18N_PACKAGES.some((packageName) => allDependencies[packageName] !== void 0);
34271
- };
34272
34123
  const REANIMATED_DEPENDENCY_NAME = "react-native-reanimated";
34273
- const MOBX_REACT_PACKAGE_NAME = "mobx-react";
34274
- const MOBX_REACT_LITE_PACKAGE_NAME = "mobx-react-lite";
34275
- const MOBX_STATE_TREE_PACKAGE_NAME = "mobx-state-tree";
34276
- const MOBX_REACT_OBSERVER_PACKAGE_NAME = "mobx-react-observer";
34277
- const REACT_THREE_FIBER_DEPENDENCY_NAMES = ["@react-three/fiber", "react-three-fiber"];
34278
- const REACT_THREE_FIBER_SECTIONS = [
34279
- "dependencies",
34280
- "peerDependencies",
34281
- "optionalDependencies",
34282
- "devDependencies"
34283
- ];
34284
- const THREE_DEPENDENCY_SECTIONS = [
34285
- "dependencies",
34286
- "peerDependencies",
34287
- "optionalDependencies",
34288
- "devDependencies"
34289
- ];
34290
- const REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES = [...REACT_THREE_FIBER_DEPENDENCY_NAMES, "@react-three/drei"];
34291
- const THREE_DEPENDENCY_NAMES = [...REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES, "three"];
34292
- const REACT_ROUTER_DEPENDENCY_NAMES = [
34293
- "@react-router/dev",
34294
- "react-router-dom",
34295
- "react-router"
34296
- ];
34297
34124
  const SHOPIFY_FLASH_LIST_PACKAGE_NAME = "@shopify/flash-list";
34298
34125
  const resolveWorkspaceDependencyVersion = ({ concreteVersion, packageName, rootDirectory, rootPackageJson, sections, workspaceDirectory, workspacePackageJson }) => {
34299
34126
  const dependencyDeclaration = getDependencyDeclaration({
@@ -34304,7 +34131,7 @@ const resolveWorkspaceDependencyVersion = ({ concreteVersion, packageName, rootD
34304
34131
  if (!dependencyDeclaration.hasDeclaration) return null;
34305
34132
  return concreteVersion ?? resolveCatalogVersion(workspacePackageJson, packageName, workspaceDirectory, dependencyDeclaration.catalogReference) ?? resolveCatalogVersion(rootPackageJson, packageName, rootDirectory, dependencyDeclaration.catalogReference);
34306
34133
  };
34307
- const shouldReplaceWithLowerMajor = (currentVersion, nextVersion) => {
34134
+ const shouldReplaceReactVersion = (currentVersion, nextVersion) => {
34308
34135
  if (!currentVersion) return true;
34309
34136
  const currentMajor = parseReactMajor(currentVersion);
34310
34137
  const nextMajor = parseReactMajor(nextVersion);
@@ -34312,71 +34139,7 @@ const shouldReplaceWithLowerMajor = (currentVersion, nextVersion) => {
34312
34139
  if (nextMajor === null) return false;
34313
34140
  return nextMajor < currentMajor;
34314
34141
  };
34315
- const shouldReplaceSupportedDependencyFact = (currentFact, nextFact, latestSupportedMajor) => {
34316
- if (currentFact.version === null) return true;
34317
- if (nextFact.version === null) return false;
34318
- const currentMajor = getLowestDependencyMajor(currentFact.version);
34319
- const nextMajor = getLowestDependencyMajor(nextFact.version);
34320
- if (currentMajor === null) return false;
34321
- if (nextMajor === null) return true;
34322
- if (currentMajor > latestSupportedMajor) return false;
34323
- if (nextMajor > latestSupportedMajor) return true;
34324
- return nextMajor < currentMajor;
34325
- };
34326
- const shouldReplaceStyledComponentsVersion = (currentVersion, nextVersion) => {
34327
- if (!currentVersion) return true;
34328
- const currentMajor = getLowestDependencyMajor(currentVersion);
34329
- const nextMajor = getLowestDependencyMajor(nextVersion);
34330
- if (currentMajor === null) return nextMajor !== null && nextMajor < 6;
34331
- if (nextMajor === null) return currentMajor >= 6;
34332
- return nextMajor < currentMajor;
34333
- };
34334
- const selectOldestDependencyVersion = (currentVersion, nextVersion) => {
34335
- if (currentVersion === null || nextVersion === null) return null;
34336
- const current = parseDependencyMajorMinor(currentVersion);
34337
- const next = parseDependencyMajorMinor(nextVersion);
34338
- if (current === null) return currentVersion;
34339
- if (next === null) return nextVersion;
34340
- if (next.major !== current.major) return next.major < current.major ? nextVersion : currentVersion;
34341
- return next.minor < current.minor ? nextVersion : currentVersion;
34342
- };
34343
- const shouldReplaceMobxFact = (currentFact, nextFact) => {
34344
- if (currentFact.sourceDirectory === null) return true;
34345
- if (currentFact.version === null) return false;
34346
- if (nextFact.version === null) return true;
34347
- const currentMajor = getDependencyMajorWithinSupportedRange(currentFact.version, 6);
34348
- const nextMajor = getDependencyMajorWithinSupportedRange(nextFact.version, 6);
34349
- if (currentMajor === null) return false;
34350
- if (nextMajor === null) return true;
34351
- return selectOldestDependencyVersion(currentFact.version, nextFact.version) === nextFact.version;
34352
- };
34353
- const collectBindingVersion = (facts, packageJson, directory, packageName) => {
34354
- const version = getDependencySpec(packageJson, packageName);
34355
- if (version === null) return;
34356
- const resolvedVersion = resolveCatalogBackedDependencyVersion({
34357
- rootDirectory: directory,
34358
- rootPackageJson: packageJson,
34359
- packageName,
34360
- version
34361
- });
34362
- if (packageName === MOBX_REACT_PACKAGE_NAME) {
34363
- facts.mobxReactVersion = facts.hasMobxReact ? selectOldestDependencyVersion(facts.mobxReactVersion, resolvedVersion) : resolvedVersion;
34364
- facts.hasMobxReact = true;
34365
- return;
34366
- }
34367
- facts.mobxReactLiteVersion = facts.hasMobxReactLite ? selectOldestDependencyVersion(facts.mobxReactLiteVersion, resolvedVersion) : resolvedVersion;
34368
- facts.hasMobxReactLite = true;
34369
- };
34370
- const shouldReplaceReactRouterVersion = (currentVersion, nextVersion) => {
34371
- if (currentVersion === null) return true;
34372
- const current = parseReactMajorMinor(currentVersion);
34373
- const next = parseReactMajorMinor(nextVersion);
34374
- if (current === null) return next !== null;
34375
- if (next === null) return false;
34376
- if (next.major !== current.major) return next.major < current.major;
34377
- return next.minor < current.minor;
34378
- };
34379
- const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, rootPackageJson) => {
34142
+ const evaluateManifestFacts = (facts, packageJson, directory) => {
34380
34143
  if (facts.expo.version === null) {
34381
34144
  const spec = getDependencySpec(packageJson, "expo");
34382
34145
  if (spec !== null) facts.expo = {
@@ -34391,23 +34154,6 @@ const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, roo
34391
34154
  sourceDirectory: directory
34392
34155
  };
34393
34156
  }
34394
- for (const packageName of REACT_ROUTER_DEPENDENCY_NAMES) {
34395
- const resolvedSpec = resolveCatalogBackedDependencyVersion({
34396
- rootDirectory,
34397
- rootPackageJson,
34398
- sourceDirectory: directory,
34399
- sourcePackageJson: packageJson,
34400
- packageName,
34401
- version: getDependencySpec(packageJson, packageName)
34402
- });
34403
- if (resolvedSpec === null || !shouldReplaceReactRouterVersion(facts.reactRouter.version, resolvedSpec)) continue;
34404
- facts.reactRouter = {
34405
- version: resolvedSpec,
34406
- sourceDirectory: directory,
34407
- packageName
34408
- };
34409
- }
34410
- facts.hasReactRouterFramework = facts.hasReactRouterFramework || getDependencySpec(packageJson, "@react-router/dev") !== null;
34411
34157
  if (facts.shopifyFlashList.version === null) {
34412
34158
  const spec = getDependencySpec(packageJson, SHOPIFY_FLASH_LIST_PACKAGE_NAME);
34413
34159
  if (spec !== null) facts.shopifyFlashList = {
@@ -34415,36 +34161,6 @@ const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, roo
34415
34161
  sourceDirectory: directory
34416
34162
  };
34417
34163
  }
34418
- const mobxSpec = getDependencySpec(packageJson, "mobx");
34419
- if (mobxSpec !== null) {
34420
- const nextMobxFact = {
34421
- version: resolveCatalogBackedDependencyVersion({
34422
- rootDirectory: directory,
34423
- rootPackageJson: packageJson,
34424
- packageName: "mobx",
34425
- version: mobxSpec
34426
- }),
34427
- sourceDirectory: directory
34428
- };
34429
- if (shouldReplaceMobxFact(facts.mobx, nextMobxFact)) facts.mobx = nextMobxFact;
34430
- }
34431
- collectBindingVersion(facts, packageJson, directory, MOBX_REACT_PACKAGE_NAME);
34432
- collectBindingVersion(facts, packageJson, directory, MOBX_REACT_LITE_PACKAGE_NAME);
34433
- facts.hasMobxStateTree = facts.hasMobxStateTree || getDependencySpec(packageJson, MOBX_STATE_TREE_PACKAGE_NAME) !== null;
34434
- facts.hasMobxReactObserver = facts.hasMobxReactObserver || getDependencySpec(packageJson, MOBX_REACT_OBSERVER_PACKAGE_NAME) !== null;
34435
- const zustandSpec = getDependencySpec(packageJson, "zustand");
34436
- if (zustandSpec !== null) {
34437
- const nextZustandFact = {
34438
- version: resolveCatalogBackedDependencyVersion({
34439
- rootDirectory: directory,
34440
- rootPackageJson: packageJson,
34441
- packageName: "zustand",
34442
- version: zustandSpec
34443
- }),
34444
- sourceDirectory: directory
34445
- };
34446
- if (shouldReplaceSupportedDependencyFact(facts.zustand, nextZustandFact, 5)) facts.zustand = nextZustandFact;
34447
- }
34448
34164
  if (facts.reanimatedVersion === null) {
34449
34165
  const spec = getDependencySpec(packageJson, REANIMATED_DEPENDENCY_NAME);
34450
34166
  if (spec !== null) facts.reanimatedVersion = spec;
@@ -34453,75 +34169,9 @@ const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, roo
34453
34169
  const spec = getDependencySpec(packageJson, "valtio");
34454
34170
  if (spec !== null) facts.valtioVersion = spec;
34455
34171
  }
34456
- facts.tanstackQueryVersion ??= getTanStackQueryVersion(packageJson);
34457
- const styledComponentsVersion = resolveCatalogBackedDependencyVersion({
34458
- rootDirectory: directory,
34459
- rootPackageJson: packageJson,
34460
- packageName: "styled-components",
34461
- version: getStyledComponentsVersion(packageJson)
34462
- });
34463
- if (styledComponentsVersion && shouldReplaceStyledComponentsVersion(facts.styledComponentsVersion, styledComponentsVersion)) facts.styledComponentsVersion = styledComponentsVersion;
34464
- facts.hasI18nLibrary = facts.hasI18nLibrary || hasI18nDependency(packageJson);
34465
- for (const packageName of REACT_THREE_FIBER_DEPENDENCY_NAMES) {
34466
- const version = resolveCatalogBackedDependencyVersion({
34467
- rootDirectory,
34468
- rootPackageJson,
34469
- sourceDirectory: directory,
34470
- sourcePackageJson: packageJson,
34471
- packageName,
34472
- version: getDependencyDeclaration({
34473
- packageName,
34474
- packageJson,
34475
- sections: REACT_THREE_FIBER_SECTIONS
34476
- }).version
34477
- });
34478
- if (version === null) continue;
34479
- if (shouldReplaceWithLowerMajor(facts.reactThreeFiber.version, version)) facts.reactThreeFiber = {
34480
- packageName,
34481
- version,
34482
- sourceDirectory: directory
34483
- };
34484
- }
34485
- const threeVersion = resolveCatalogBackedDependencyVersion({
34486
- rootDirectory,
34487
- rootPackageJson,
34488
- sourceDirectory: directory,
34489
- sourcePackageJson: packageJson,
34490
- packageName: "three",
34491
- version: getDependencyDeclaration({
34492
- packageName: "three",
34493
- packageJson,
34494
- sections: THREE_DEPENDENCY_SECTIONS
34495
- }).version
34496
- });
34497
- if (threeVersion !== null) {
34498
- const currentRelease = parseThreeRelease(facts.threeVersion);
34499
- const nextRelease = parseThreeRelease(threeVersion);
34500
- if (facts.threeVersion === null || nextRelease !== null && (currentRelease === null || nextRelease < currentRelease)) facts.threeVersion = threeVersion;
34501
- }
34502
34172
  facts.hasReactNativeAwarePackage = facts.hasReactNativeAwarePackage || isPackageJsonReactNativeAware(packageJson);
34503
34173
  facts.hasReanimatedAwarePackage = facts.hasReanimatedAwarePackage || isPackageJsonReanimatedAware(packageJson);
34504
34174
  facts.hasSsrDependency = facts.hasSsrDependency || isPackageJsonSsrAware(packageJson);
34505
- const remotionSpec = getDependencySpec(packageJson, "remotion");
34506
- if (remotionSpec !== null) {
34507
- facts.hasRemotionDependency = true;
34508
- const resolvedRemotionVersion = resolveCatalogBackedDependencyVersion({
34509
- rootDirectory,
34510
- rootPackageJson,
34511
- packageName: "remotion",
34512
- version: remotionSpec
34513
- });
34514
- const remotionMajorVersion = resolvedRemotionVersion === null ? null : getLowestDependencyMajor(resolvedRemotionVersion);
34515
- if (remotionMajorVersion === null) {
34516
- facts.hasUnknownRemotionVersion = true;
34517
- facts.remotionVersion = null;
34518
- } else if (!facts.hasUnknownRemotionVersion) {
34519
- const currentRemotionMajorVersion = facts.remotionVersion === null ? null : getLowestDependencyMajor(facts.remotionVersion);
34520
- if (currentRemotionMajorVersion === null || remotionMajorVersion < currentRemotionMajorVersion) facts.remotionVersion = resolvedRemotionVersion;
34521
- }
34522
- }
34523
- facts.hasThree = facts.hasThree || THREE_DEPENDENCY_NAMES.some((dependencyName) => getDependencySpec(packageJson, dependencyName) !== null);
34524
- facts.hasReactThreeFiber = facts.hasReactThreeFiber || REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES.some((dependencyName) => getDependencySpec(packageJson, dependencyName) !== null);
34525
34175
  };
34526
34176
  const collectWorkspaceFacts = (rootDirectory, rootPackageJson, { collectReactGroup }) => {
34527
34177
  const facts = {
@@ -34537,60 +34187,26 @@ const collectWorkspaceFacts = (rootDirectory, rootPackageJson, { collectReactGro
34537
34187
  version: null,
34538
34188
  sourceDirectory: null
34539
34189
  },
34540
- reactRouter: {
34541
- version: null,
34542
- sourceDirectory: null,
34543
- packageName: null
34544
- },
34545
34190
  shopifyFlashList: {
34546
34191
  version: null,
34547
34192
  sourceDirectory: null
34548
34193
  },
34549
34194
  valtioVersion: null,
34550
- mobx: {
34551
- version: null,
34552
- sourceDirectory: null
34553
- },
34554
- hasMobxReact: false,
34555
- mobxReactVersion: null,
34556
- hasMobxReactLite: false,
34557
- mobxReactLiteVersion: null,
34558
- hasMobxStateTree: false,
34559
- hasMobxReactObserver: false,
34560
- zustand: {
34561
- version: null,
34562
- sourceDirectory: null
34563
- },
34564
- tanstackQueryVersion: null,
34565
- styledComponentsVersion: null,
34566
- hasI18nLibrary: false,
34567
34195
  hasReactNativeAwarePackage: false,
34568
34196
  hasReanimatedAwarePackage: false,
34569
34197
  hasSsrDependency: false,
34570
- hasRemotionDependency: false,
34571
- hasUnknownRemotionVersion: false,
34572
- remotionVersion: null,
34573
- hasThree: false,
34574
- threeVersion: null,
34575
- hasReactThreeFiber: false,
34576
- reactThreeFiber: {
34577
- packageName: null,
34578
- version: null,
34579
- sourceDirectory: null
34580
- },
34581
- hasReactRouterFramework: false,
34582
34198
  reanimatedVersion: null
34583
34199
  };
34584
- evaluateManifestFacts(facts, rootPackageJson, rootDirectory, rootDirectory, rootPackageJson);
34200
+ evaluateManifestFacts(facts, rootPackageJson, rootDirectory);
34585
34201
  let isReactGroupSettled = !collectReactGroup;
34586
34202
  const visitedDirectories = /* @__PURE__ */ new Set();
34587
34203
  for (const pattern of getWorkspacePatterns(rootDirectory, rootPackageJson)) {
34588
- const directories = resolveWorkspaceDirectories(rootDirectory, pattern).toSorted();
34204
+ const directories = [...resolveWorkspaceDirectories(rootDirectory, pattern)].sort();
34589
34205
  for (const workspaceDirectory of directories) {
34590
34206
  if (visitedDirectories.has(workspaceDirectory)) continue;
34591
34207
  visitedDirectories.add(workspaceDirectory);
34592
34208
  const workspacePackageJson = readPackageJson(Path.join(workspaceDirectory, "package.json"));
34593
- evaluateManifestFacts(facts, workspacePackageJson, workspaceDirectory, rootDirectory, rootPackageJson);
34209
+ evaluateManifestFacts(facts, workspacePackageJson, workspaceDirectory);
34594
34210
  const info = extractDependencyInfo(workspacePackageJson);
34595
34211
  if (info.framework !== "unknown" && frameworkMergeRank(info.framework) < frameworkMergeRank(facts.framework)) facts.framework = info.framework;
34596
34212
  if (isReactGroupSettled) continue;
@@ -34621,7 +34237,7 @@ const collectWorkspaceFacts = (rootDirectory, rootPackageJson, { collectReactGro
34621
34237
  workspaceDirectory,
34622
34238
  workspacePackageJson
34623
34239
  });
34624
- if (reactVersion && shouldReplaceWithLowerMajor(facts.reactVersion, reactVersion)) facts.reactVersion = reactVersion;
34240
+ if (reactVersion && shouldReplaceReactVersion(facts.reactVersion, reactVersion)) facts.reactVersion = reactVersion;
34625
34241
  if (tailwindVersion && !facts.tailwindVersion) facts.tailwindVersion = tailwindVersion;
34626
34242
  if (zodVersion && !facts.zodVersion) facts.zodVersion = zodVersion;
34627
34243
  const settledReactMajor = parseReactMajor(facts.reactVersion);
@@ -34814,16 +34430,6 @@ const discoverProjectWithoutPackageJson = (directory) => {
34814
34430
  tailwindVersion: null,
34815
34431
  zodVersion: null,
34816
34432
  zodMajorVersion: null,
34817
- mobxVersion: null,
34818
- mobxMajorVersion: null,
34819
- hasMobxReact: false,
34820
- mobxReactVersion: null,
34821
- hasMobxReactLite: false,
34822
- mobxReactLiteVersion: null,
34823
- hasMobxStateTree: false,
34824
- hasMobxReactObserver: false,
34825
- zustandVersion: null,
34826
- zustandMajorVersion: null,
34827
34433
  framework: "unknown",
34828
34434
  hasTypeScript: hasOwnTsConfig,
34829
34435
  hasReactCompiler: false,
@@ -34831,26 +34437,12 @@ const discoverProjectWithoutPackageJson = (directory) => {
34831
34437
  hasTanStackQuery: false,
34832
34438
  valtioVersion: null,
34833
34439
  valtioMajorVersion: null,
34834
- hasRemotion: false,
34835
- remotionVersion: null,
34836
- remotionMajorVersion: null,
34837
- hasI18nLibrary: false,
34838
- tanstackQueryVersion: null,
34839
- styledComponentsVersion: null,
34840
- hasThree: false,
34841
- threeVersion: null,
34842
- threeRelease: null,
34843
- hasReactThreeFiber: false,
34844
- reactThreeFiberVersion: null,
34845
- reactThreeFiberMajorVersion: null,
34846
34440
  hasSsrDependency: false,
34847
34441
  preactVersion: null,
34848
34442
  preactMajorVersion: null,
34849
34443
  hasReactNativeWorkspace: false,
34850
34444
  nextjsVersion: null,
34851
34445
  nextjsMajorVersion: null,
34852
- reactRouterVersion: null,
34853
- hasReactRouterFramework: false,
34854
34446
  expoVersion: null,
34855
34447
  shopifyFlashListVersion: null,
34856
34448
  shopifyFlashListMajorVersion: null,
@@ -34943,12 +34535,6 @@ const discoverProject = (directory) => {
34943
34535
  packageName: SHOPIFY_FLASH_LIST_PACKAGE_NAME,
34944
34536
  version: workspaceFacts.shopifyFlashList.version
34945
34537
  }) : null;
34946
- const zustandVersion = resolveCatalogBackedDependencyVersion({
34947
- rootDirectory: directory,
34948
- rootPackageJson: packageJson,
34949
- packageName: "zustand",
34950
- version: workspaceFacts.zustand.version
34951
- });
34952
34538
  const hasReanimated = hasReactNativeWorkspace && workspaceFacts.hasReanimatedAwarePackage;
34953
34539
  const reanimatedVersion = hasReanimated ? workspaceFacts.reanimatedVersion : null;
34954
34540
  const nextjsVersion = framework === "nextjs" ? resolveCatalogBackedDependencyVersion({
@@ -34963,33 +34549,7 @@ const discoverProject = (directory) => {
34963
34549
  packageName: "valtio",
34964
34550
  version: workspaceFacts.valtioVersion
34965
34551
  });
34966
- const mobxVersion = resolveCatalogBackedDependencyVersion({
34967
- rootDirectory: directory,
34968
- rootPackageJson: packageJson,
34969
- packageName: "mobx",
34970
- version: workspaceFacts.mobx.version
34971
- });
34972
- const reactRouterVersion = workspaceFacts.reactRouter.packageName === null ? null : resolveCatalogBackedDependencyVersion({
34973
- rootDirectory: directory,
34974
- rootPackageJson: packageJson,
34975
- packageName: workspaceFacts.reactRouter.packageName,
34976
- version: workspaceFacts.reactRouter.version
34977
- });
34978
34552
  const preactVersion = getPreactVersion(packageJson);
34979
- const remotionVersion = workspaceFacts.remotionVersion;
34980
- const tanstackQueryVersion = getTanStackQueryVersion(packageJson) ?? workspaceFacts.tanstackQueryVersion;
34981
- const reactThreeFiberVersion = workspaceFacts.reactThreeFiber.packageName ? resolveCatalogBackedDependencyVersion({
34982
- rootDirectory: directory,
34983
- rootPackageJson: packageJson,
34984
- packageName: workspaceFacts.reactThreeFiber.packageName,
34985
- version: workspaceFacts.reactThreeFiber.version
34986
- }) : null;
34987
- const threeVersion = resolveCatalogBackedDependencyVersion({
34988
- rootDirectory: directory,
34989
- rootPackageJson: packageJson,
34990
- packageName: "three",
34991
- version: workspaceFacts.threeVersion
34992
- });
34993
34553
  const isPreES2023Target = hasTypeScript && detectPreES2023Target(directory);
34994
34554
  const projectInfo = {
34995
34555
  rootDirectory: directory,
@@ -34999,43 +34559,19 @@ const discoverProject = (directory) => {
34999
34559
  tailwindVersion,
35000
34560
  zodVersion,
35001
34561
  zodMajorVersion: zodVersion === null ? null : getLowestDependencyMajor(zodVersion),
35002
- mobxVersion,
35003
- mobxMajorVersion: mobxVersion === null ? null : getDependencyMajorWithinSupportedRange(mobxVersion, 6),
35004
- hasMobxReact: workspaceFacts.hasMobxReact,
35005
- mobxReactVersion: workspaceFacts.mobxReactVersion,
35006
- hasMobxReactLite: workspaceFacts.hasMobxReactLite,
35007
- mobxReactLiteVersion: workspaceFacts.mobxReactLiteVersion,
35008
- hasMobxStateTree: workspaceFacts.hasMobxStateTree,
35009
- hasMobxReactObserver: workspaceFacts.hasMobxReactObserver,
35010
- zustandVersion,
35011
- zustandMajorVersion: zustandVersion === null ? null : getLowestDependencyMajor(zustandVersion),
35012
34562
  framework,
35013
34563
  hasTypeScript,
35014
34564
  hasReactCompiler: detectReactCompiler(directory, packageJson),
35015
34565
  hasReactCompilerLintPlugin: detectReactCompilerLintPlugin(directory, packageJson),
35016
- hasTanStackQuery: tanstackQueryVersion !== null,
35017
- hasI18nLibrary: workspaceFacts.hasI18nLibrary,
35018
- tanstackQueryVersion,
35019
- styledComponentsVersion: workspaceFacts.styledComponentsVersion,
34566
+ hasTanStackQuery: hasTanStackQuery(packageJson),
35020
34567
  valtioVersion,
35021
34568
  valtioMajorVersion: valtioVersion === null ? null : getLowestDependencyMajor(valtioVersion),
35022
- hasRemotion: workspaceFacts.hasRemotionDependency,
35023
- remotionVersion,
35024
- remotionMajorVersion: remotionVersion === null ? null : getLowestDependencyMajor(remotionVersion),
35025
- hasThree: workspaceFacts.hasThree,
35026
- threeVersion,
35027
- threeRelease: parseThreeRelease(threeVersion),
35028
- hasReactThreeFiber: workspaceFacts.hasReactThreeFiber,
35029
- reactThreeFiberVersion,
35030
- reactThreeFiberMajorVersion: reactThreeFiberVersion === null ? null : getLowestDependencyMajor(reactThreeFiberVersion),
35031
34569
  hasSsrDependency: workspaceFacts.hasSsrDependency,
35032
34570
  preactVersion,
35033
34571
  preactMajorVersion: parseReactMajor(preactVersion),
35034
34572
  hasReactNativeWorkspace,
35035
34573
  nextjsVersion,
35036
34574
  nextjsMajorVersion: nextjsVersion === null ? null : getLowestDependencyMajor(nextjsVersion),
35037
- reactRouterVersion,
35038
- hasReactRouterFramework: workspaceFacts.hasReactRouterFramework,
35039
34575
  expoVersion,
35040
34576
  shopifyFlashListVersion,
35041
34577
  shopifyFlashListMajorVersion: shopifyFlashListVersion === null ? null : getLowestDependencyMajor(shopifyFlashListVersion),
@@ -38304,10 +37840,10 @@ const SSR_FRAMEWORKS = new Set([
38304
37840
  "gatsby",
38305
37841
  "tanstack-start"
38306
37842
  ]);
38307
- const addVersionCapabilityLadder = (capabilities, name, detectedVersion, earliest, latest) => {
38308
- if (detectedVersion === null) return;
38309
- const cappedVersion = Math.min(detectedVersion, latest);
38310
- for (let candidate = earliest; candidate <= cappedVersion; candidate += 1) capabilities.add(`${name}:${candidate}`);
37843
+ const addMajorLadder = (capabilities, name, major, earliest, latest) => {
37844
+ if (major === null) return;
37845
+ const cappedMajor = Math.min(major, latest);
37846
+ for (let candidate = earliest; candidate <= cappedMajor; candidate += 1) capabilities.add(`${name}:${candidate}`);
38311
37847
  };
38312
37848
  const buildCapabilities = (project) => {
38313
37849
  const capabilities = /* @__PURE__ */ new Set();
@@ -38320,86 +37856,26 @@ const buildCapabilities = (project) => {
38320
37856
  if (CLIENT_ONLY_FRAMEWORKS.has(project.framework)) capabilities.add("client-only");
38321
37857
  if (project.isStaticExport) capabilities.add("nextjs:static-export");
38322
37858
  if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 15) capabilities.add("nextjs:15");
38323
- if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 16) capabilities.add("nextjs:16");
38324
- const reactRouterVersion = project.reactRouterVersion ?? null;
38325
- if (reactRouterVersion !== null) {
38326
- capabilities.add("react-router");
38327
- if (project.hasReactRouterFramework === true) capabilities.add("react-router-framework");
38328
- const detectedVersion = parseReactMajorMinor(reactRouterVersion);
38329
- if (detectedVersion !== null) {
38330
- for (const threshold of REACT_ROUTER_CAPABILITY_THRESHOLDS) if (isMajorMinorAtLeast(detectedVersion, threshold)) capabilities.add(threshold.capability);
38331
- }
38332
- }
38333
- addVersionCapabilityLadder(capabilities, "react", project.reactMajorVersion, 17, 30);
37859
+ addMajorLadder(capabilities, "react", project.reactMajorVersion, 17, 30);
38334
37860
  if (project.reactMajorVersion !== null && project.reactMajorVersion >= 19 && isMajorMinorAtLeast(parseReactMajorMinor(project.reactVersion), {
38335
37861
  major: 19,
38336
37862
  minor: 2
38337
37863
  })) capabilities.add("react:19.2");
38338
- if (project.tailwindVersion !== null) {
38339
- capabilities.add("tailwind");
38340
- const tailwindVersion = parseTailwindMajorMinor(project.tailwindVersion);
38341
- if (isMajorMinorAtLeast(tailwindVersion, {
38342
- major: 3,
38343
- minor: 4
38344
- })) capabilities.add("tailwind:3.4");
38345
- if (tailwindVersion !== null && isMajorMinorAtLeast(tailwindVersion, {
38346
- major: 4,
38347
- minor: 0
38348
- })) capabilities.add("tailwind:4");
38349
- }
37864
+ if (project.tailwindVersion !== null) capabilities.add("tailwind");
37865
+ if (project.tailwindVersion !== null && isMajorMinorAtLeast(parseTailwindMajorMinor(project.tailwindVersion), {
37866
+ major: 3,
37867
+ minor: 4
37868
+ })) capabilities.add("tailwind:3.4");
38350
37869
  if (project.zodVersion !== null) capabilities.add("zod");
38351
37870
  if (project.zodMajorVersion !== null && project.zodMajorVersion >= 4) capabilities.add("zod:4");
38352
- if (project.mobxVersion !== void 0 && project.mobxVersion !== null || project.hasMobxReact === true || project.hasMobxReactLite === true || project.hasMobxStateTree === true || project.hasMobxReactObserver === true) capabilities.add("mobx");
38353
- if (project.hasMobxReact === true) capabilities.add("mobx-react");
38354
- if (project.hasMobxReactLite === true) capabilities.add("mobx-react-lite");
38355
- if (project.hasMobxReact === true || project.hasMobxReactLite === true) capabilities.add("mobx-react-binding");
38356
- const mobxReactVersion = parseDependencyMajorMinor(project.mobxReactVersion);
38357
- const mobxReactLiteVersion = parseDependencyMajorMinor(project.mobxReactLiteVersion);
38358
- const hasMobxReactObserverMemoGuard = mobxReactVersion !== null && isMajorMinorAtLeast(mobxReactVersion, {
38359
- major: 7,
38360
- minor: 3
38361
- });
38362
- const hasMobxReactLiteObserverMemoGuard = mobxReactLiteVersion !== null && isMajorMinorAtLeast(mobxReactLiteVersion, {
38363
- major: 3,
38364
- minor: 3
38365
- });
38366
- if (hasMobxReactObserverMemoGuard) capabilities.add("mobx-react-observer-memo-guard");
38367
- if (hasMobxReactLiteObserverMemoGuard) capabilities.add("mobx-react-lite-observer-memo-guard");
38368
- if (hasMobxReactObserverMemoGuard || hasMobxReactLiteObserverMemoGuard) capabilities.add("mobx-react-binding-observer-memo-guard");
38369
- if (project.hasMobxStateTree === true) capabilities.add("mobx-state-tree");
38370
- if (project.hasMobxReactObserver === true) capabilities.add("mobx-react-observer");
38371
- if (project.mobxMajorVersion !== void 0 && project.mobxMajorVersion !== null && project.mobxMajorVersion >= 4 && project.mobxMajorVersion <= 6) addVersionCapabilityLadder(capabilities, "mobx", project.mobxMajorVersion, 4, 6);
38372
- const mobxVersion = parseDependencyMajorMinor(project.mobxVersion);
38373
- if (project.mobxMajorVersion === 6 && mobxVersion !== null && isMajorMinorAtLeast(mobxVersion, {
38374
- major: 6,
38375
- minor: 10
38376
- })) capabilities.add("mobx:6.10");
38377
- if (project.zustandVersion !== void 0 && project.zustandVersion !== null) capabilities.add("zustand");
38378
- if (project.zustandMajorVersion !== void 0 && project.zustandMajorVersion !== null && project.zustandMajorVersion >= 1 && project.zustandMajorVersion <= 5) addVersionCapabilityLadder(capabilities, "zustand", project.zustandMajorVersion, 1, 5);
38379
37871
  if (project.isPreES2023Target) capabilities.add("pre-es2023");
38380
37872
  if (project.hasReactCompiler) capabilities.add("react-compiler");
38381
- if (Boolean(project.hasTanStackQuery) || Boolean(project.tanstackQueryVersion)) capabilities.add("tanstack-query");
38382
- if (project.styledComponentsVersion) {
38383
- capabilities.add("styled-components");
38384
- const styledComponentsMajor = getLowestDependencyMajor(project.styledComponentsVersion);
38385
- if (styledComponentsMajor !== null && styledComponentsMajor >= 6) capabilities.add("styled-components:6");
38386
- }
38387
- if (project.hasI18nLibrary) capabilities.add("i18n");
37873
+ if (project.hasTanStackQuery) capabilities.add("tanstack-query");
38388
37874
  if (project.valtioVersion !== null) capabilities.add("valtio");
38389
- addVersionCapabilityLadder(capabilities, "valtio", project.valtioMajorVersion, 1, 10);
38390
- if (project.hasRemotion) {
38391
- capabilities.add("remotion");
38392
- addVersionCapabilityLadder(capabilities, "remotion", project.remotionMajorVersion ?? null, 4, 30);
38393
- }
38394
- if (project.hasThree || project.hasReactThreeFiber) capabilities.add("three");
38395
- addVersionCapabilityLadder(capabilities, "three", project.threeRelease ?? null, 145, 250);
38396
- if (project.hasReactThreeFiber) {
38397
- capabilities.add("r3f");
38398
- addVersionCapabilityLadder(capabilities, "r3f", project.reactThreeFiberMajorVersion ?? null, 3, 10);
38399
- }
37875
+ addMajorLadder(capabilities, "valtio", project.valtioMajorVersion, 1, 10);
38400
37876
  if (project.hasTypeScript) capabilities.add("typescript");
38401
37877
  if (project.preactVersion !== null) capabilities.add("preact");
38402
- addVersionCapabilityLadder(capabilities, "preact", project.preactMajorVersion, 10, 20);
37878
+ addMajorLadder(capabilities, "preact", project.preactMajorVersion, 10, 20);
38403
37879
  if (project.preactVersion !== null && project.reactVersion === null) capabilities.add("pure-preact");
38404
37880
  return capabilities;
38405
37881
  };
@@ -38411,7 +37887,7 @@ const getCapabilities = (project) => {
38411
37887
  capabilitiesByProject.set(project, capabilities);
38412
37888
  return capabilities;
38413
37889
  };
38414
- const shouldEnableRule = (requires, tags, capabilities, ignoredTags, disabledWhen, includedTags) => {
37890
+ const shouldEnableRule = (requires, tags, capabilities, ignoredTags, disabledWhen) => {
38415
37891
  if (requires) {
38416
37892
  for (const capability of requires) if (!capabilities.has(capability)) return false;
38417
37893
  }
@@ -38422,29 +37898,20 @@ const shouldEnableRule = (requires, tags, capabilities, ignoredTags, disabledWhe
38422
37898
  if (tags) {
38423
37899
  for (const tag of tags) if (ignoredTags.has(tag)) return false;
38424
37900
  }
38425
- if (includedTags && includedTags.size > 0) {
38426
- if (!tags?.some((tag) => includedTags.has(tag))) return false;
38427
- }
38428
37901
  return true;
38429
37902
  };
38430
- const shouldEnableRuleByDefaultStatus = (options) => options.defaultEnabled !== false || options.hasExplicitOverride === true || options.includeTagDefaults && options.hasIncludedTags;
38431
37903
  const yieldToEventLoop = () => new Promise((resolve) => {
38432
37904
  setImmediate(resolve);
38433
37905
  });
38434
37906
  const createSecurityScanSession = (rootDirectory, options) => {
38435
37907
  const capabilities = options.project ? getCapabilities(options.project) : /* @__PURE__ */ new Set();
38436
37908
  const ignoredTags = options.ignoredTags ?? /* @__PURE__ */ new Set();
38437
- const includedTags = options.includedTags ?? /* @__PURE__ */ new Set();
38438
37909
  const enabledScanRules = REACT_DOCTOR_RULES.flatMap((entry) => {
38439
37910
  const rule = entry.rule;
38440
37911
  const scan = rule.scan;
38441
37912
  if (typeof scan !== "function") return [];
38442
- if (!shouldEnableRuleByDefaultStatus({
38443
- defaultEnabled: rule.defaultEnabled,
38444
- includeTagDefaults: options.includeTagDefaults === true,
38445
- hasIncludedTags: includedTags.size > 0
38446
- })) return [];
38447
- if (!shouldEnableRule(rule.requires, rule.tags, capabilities, ignoredTags, rule.disabledWhen, includedTags)) return [];
37913
+ if (rule.defaultEnabled === false) return [];
37914
+ if (!shouldEnableRule(rule.requires, rule.tags, capabilities, ignoredTags, rule.disabledWhen)) return [];
38448
37915
  return [{
38449
37916
  entry,
38450
37917
  scan,
@@ -40430,9 +39897,8 @@ const buildUserPluginRules = (userPlugin, severityControls) => {
40430
39897
  }
40431
39898
  return enabled;
40432
39899
  };
40433
- const createOxlintConfig = ({ pluginPath, project, customRulesOnly = false, extendsPaths = [], ignoredTags = /* @__PURE__ */ new Set(), includedTags = /* @__PURE__ */ new Set(), includeTagDefaults = false, serverAuthFunctionNames, severityControls, userPlugins = [], disableReactHooksJsPlugin = false, ruleSelection, sidecarRuleIdFilter }) => {
40434
- const hasIncludedTags = includedTags.size > 0;
40435
- const reactHooksJsPlugin = disableReactHooksJsPlugin || ruleSelection === "sidecar" || hasIncludedTags ? null : resolveReactHooksJsPlugin(project.hasReactCompiler || project.hasReactCompilerLintPlugin === true, customRulesOnly);
39900
+ const createOxlintConfig = ({ pluginPath, project, customRulesOnly = false, extendsPaths = [], ignoredTags = /* @__PURE__ */ new Set(), serverAuthFunctionNames, severityControls, userPlugins = [], disableReactHooksJsPlugin = false, ruleSelection, sidecarRuleIdFilter }) => {
39901
+ const reactHooksJsPlugin = disableReactHooksJsPlugin || ruleSelection === "sidecar" ? null : resolveReactHooksJsPlugin(project.hasReactCompiler || project.hasReactCompilerLintPlugin === true, customRulesOnly);
40436
39902
  const reactCompilerRules = reactHooksJsPlugin ? applyRuleSeverityControls(filterRulesToAvailable(REACT_COMPILER_RULES, "react-hooks-js", reactHooksJsPlugin.availableRuleNames), severityControls) : {};
40437
39903
  const jsPlugins = [];
40438
39904
  if (reactHooksJsPlugin) jsPlugins.push(reactHooksJsPlugin.entry);
@@ -40447,14 +39913,9 @@ const createOxlintConfig = ({ pluginPath, project, customRulesOnly = false, exte
40447
39913
  if (rule.scan !== void 0) continue;
40448
39914
  if (customRulesOnly && registryEntry.originallyExternal) continue;
40449
39915
  if (rule.framework !== "global" && !rule.requires) continue;
40450
- if (!shouldEnableRule(rule.requires, rule.tags, capabilities, ignoredTags, rule.disabledWhen, includedTags)) continue;
39916
+ if (!shouldEnableRule(rule.requires, rule.tags, capabilities, ignoredTags, rule.disabledWhen)) continue;
40451
39917
  const explicitRuleOverride = resolveRuleSeverityOverride({ ruleKey: registryEntry.key }, severityControls);
40452
- if (!shouldEnableRuleByDefaultStatus({
40453
- defaultEnabled: rule.defaultEnabled,
40454
- includeTagDefaults,
40455
- hasIncludedTags,
40456
- hasExplicitOverride: explicitRuleOverride !== void 0
40457
- })) continue;
39918
+ if (rule.defaultEnabled === false && explicitRuleOverride === void 0) continue;
40458
39919
  const severity = resolveRuleSeverityOverride({
40459
39920
  ruleKey: registryEntry.key,
40460
39921
  category: rule.category
@@ -40463,7 +39924,7 @@ const createOxlintConfig = ({ pluginPath, project, customRulesOnly = false, exte
40463
39924
  enabledReactDoctorRules[registryEntry.key] = severity;
40464
39925
  }
40465
39926
  const userPluginRules = {};
40466
- if (ruleSelection !== "sidecar" && !hasIncludedTags) for (const userPlugin of userPlugins) {
39927
+ if (ruleSelection !== "sidecar") for (const userPlugin of userPlugins) {
40467
39928
  Object.assign(userPluginRules, buildUserPluginRules(userPlugin, severityControls));
40468
39929
  jsPlugins.push(userPlugin.entry);
40469
39930
  }
@@ -40680,19 +40141,6 @@ const createSidecarLintCache = (cacheDirectory, rulesetHash) => {
40680
40141
  }
40681
40142
  };
40682
40143
  };
40683
- const fingerprintCacheByFilePath = /* @__PURE__ */ new Map();
40684
- const fingerprintFileContents = (filePath, fingerprintLength) => {
40685
- const fileStats = NFS.statSync(filePath, { bigint: true });
40686
- const cachedFingerprint = fingerprintCacheByFilePath.get(filePath);
40687
- if (cachedFingerprint?.modifiedTimeNanoseconds === fileStats.mtimeNs && cachedFingerprint.sizeBytes === fileStats.size) return cachedFingerprint.fingerprint;
40688
- const fingerprint = crypto.createHash("sha256").update(NFS.readFileSync(filePath)).digest("hex").slice(0, fingerprintLength);
40689
- fingerprintCacheByFilePath.set(filePath, {
40690
- fingerprint,
40691
- modifiedTimeNanoseconds: fileStats.mtimeNs,
40692
- sizeBytes: fileStats.size
40693
- });
40694
- return fingerprint;
40695
- };
40696
40144
  const bundledRequire = createRequire(import.meta.url);
40697
40145
  const childNodeVersionByBinaryPath = /* @__PURE__ */ new Map();
40698
40146
  const resolveChildNodeVersion = (nodeBinaryPath) => {
@@ -40716,13 +40164,6 @@ const TOOLCHAIN_PACKAGE_SPECIFIERS = [
40716
40164
  "oxlint-plugin-react-doctor/package.json",
40717
40165
  "eslint-plugin-react-hooks/package.json"
40718
40166
  ];
40719
- const resolvePluginFingerprint = () => {
40720
- try {
40721
- return fingerprintFileContents(bundledRequire.resolve("oxlint-plugin-react-doctor"), 16);
40722
- } catch {
40723
- return "unresolved";
40724
- }
40725
- };
40726
40167
  const resolveOxlintToolchainVersions = (nodeBinaryPath = process.execPath) => {
40727
40168
  const versions = [`node=${resolveChildNodeVersion(nodeBinaryPath)}`];
40728
40169
  for (const specifier of TOOLCHAIN_PACKAGE_SPECIFIERS) try {
@@ -40732,7 +40173,6 @@ const resolveOxlintToolchainVersions = (nodeBinaryPath = process.execPath) => {
40732
40173
  } catch {
40733
40174
  versions.push(`${specifier}=missing`);
40734
40175
  }
40735
- versions.push(`oxlint-plugin-react-doctor#fingerprint=${resolvePluginFingerprint()}`);
40736
40176
  return versions;
40737
40177
  };
40738
40178
  const esmRequire = createRequire(import.meta.url);
@@ -42208,7 +41648,7 @@ const reactHooksJsPluginDropNote = (error) => {
42208
41648
  * 6. always restore disable directives + clean up the temp dir
42209
41649
  */
42210
41650
  const runOxlint = async (options) => {
42211
- const { rootDirectory, project, includePaths, nodeBinaryPath = process.execPath, customRulesOnly = false, respectInlineDisables = true, adoptExistingLintConfig = true, ignoredTags = /* @__PURE__ */ new Set(), includedTags = /* @__PURE__ */ new Set(), includeTagDefaults = false, userConfig, configSourceDirectory = rootDirectory, onPartialFailure, onFileCoverage, perFileLintCacheEnabled = false, sidecarLintCacheEnabled = false, onCacheStats, onSidecarStats, spawnTimeoutMs, outputMaxBytes, lintBatchOrdering = "cost" } = options;
41651
+ const { rootDirectory, project, includePaths, nodeBinaryPath = process.execPath, customRulesOnly = false, respectInlineDisables = true, adoptExistingLintConfig = true, ignoredTags = /* @__PURE__ */ new Set(), userConfig, configSourceDirectory = rootDirectory, onPartialFailure, onFileCoverage, perFileLintCacheEnabled = false, sidecarLintCacheEnabled = false, onCacheStats, onSidecarStats, spawnTimeoutMs, outputMaxBytes, lintBatchOrdering = "cost" } = options;
42212
41652
  const serverAuthFunctionNames = Array.isArray(userConfig?.serverAuthFunctionNames) ? userConfig.serverAuthFunctionNames.filter((entry) => typeof entry === "string" && entry.length > 0) : void 0;
42213
41653
  const severityControls = buildRuleSeverityControls(userConfig);
42214
41654
  validateRuleRegistration();
@@ -42222,15 +41662,13 @@ const runOxlint = async (options) => {
42222
41662
  }
42223
41663
  const pluginPath = resolvePluginPath();
42224
41664
  const extendsPaths = (adoptExistingLintConfig && !customRulesOnly ? detectUserLintConfigPaths(rootDirectory) : []).filter(canOxlintExtendConfig);
42225
- const userPlugins = includedTags.size > 0 ? [] : resolveUserPlugins(userConfig?.plugins, configSourceDirectory);
41665
+ const userPlugins = resolveUserPlugins(userConfig?.plugins, configSourceDirectory);
42226
41666
  const buildConfig = (overrides) => createOxlintConfig({
42227
41667
  pluginPath,
42228
41668
  project,
42229
41669
  customRulesOnly,
42230
41670
  extendsPaths: overrides.extendsPaths,
42231
41671
  ignoredTags,
42232
- includedTags,
42233
- includeTagDefaults,
42234
41672
  serverAuthFunctionNames,
42235
41673
  severityControls,
42236
41674
  userPlugins,
@@ -42619,8 +42057,6 @@ var Linter = class Linter extends Service()("react-doctor/Linter") {
42619
42057
  respectInlineDisables: input.respectInlineDisables,
42620
42058
  adoptExistingLintConfig: input.adoptExistingLintConfig,
42621
42059
  ignoredTags: input.ignoredTags,
42622
- includedTags: input.includedTags,
42623
- includeTagDefaults: input.includeTagDefaults,
42624
42060
  userConfig: input.userConfig ?? null,
42625
42061
  configSourceDirectory: input.configSourceDirectory,
42626
42062
  onPartialFailure: (reason) => {
@@ -43469,9 +42905,7 @@ const runInspect = (input, hooks = {}) => gen(function* () {
43469
42905
  const securityScanFailedRef = yield* make$13(false);
43470
42906
  const securityScanFiber = yield* forkChild(runCollect(applyPerElementPipeline(isDiffMode ? empty$4 : unwrap(tryPromise(() => checkSecurityScanCooperative(scanDirectory, {
43471
42907
  project,
43472
- ignoredTags: input.ignoredTags,
43473
- includedTags: input.includedTags,
43474
- includeTagDefaults: input.includeTagDefaults
42908
+ ignoredTags: input.ignoredTags
43475
42909
  })).pipe(map$3((diagnostics) => fromIterable$1(diagnostics)), catch_$1(() => set(securityScanFailedRef, true).pipe(as(empty$4))))))).pipe(withSpan("SecurityScan.run")));
43476
42910
  const shouldRunSupplyChain = !isDiffMode || (input.supplyChainManifestChanged ?? false);
43477
42911
  const supplyChainOverlapTimeout = yield* SupplyChainOverlapTimeoutMs;
@@ -43562,8 +42996,6 @@ const runInspect = (input, hooks = {}) => gen(function* () {
43562
42996
  respectInlineDisables: input.respectInlineDisables,
43563
42997
  adoptExistingLintConfig: input.adoptExistingLintConfig,
43564
42998
  ignoredTags: input.ignoredTags,
43565
- includedTags: input.includedTags,
43566
- includeTagDefaults: input.includeTagDefaults,
43567
42999
  userConfig: resolvedConfig.config ?? void 0,
43568
43000
  configSourceDirectory: resolvedConfig.configSourceDirectory ?? void 0,
43569
43001
  onFileProgress: (scannedFileCount, totalFileCount) => {
@@ -44424,4 +43856,4 @@ const toJsonReport = (result, options) => buildJsonReport({
44424
43856
  export { AmbiguousProjectError, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, ProjectNotFoundError, ReactDoctorError, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, hasReactRuntime, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
44425
43857
 
44426
43858
  //# sourceMappingURL=index.js.map
44427
- //# debugId=c65f1825-0401-518f-840a-c33df84ebafc
43859
+ //# debugId=9a89aa42-c62d-57b9-a5d7-36051dd45bb3