react-doctor 0.9.12-dev.0b670aa → 0.9.12-dev.1971506
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/dist/active-run-trace-dlIZeEvb.js +18 -0
- package/dist/active-scan-abort-registry-DwG6tSPy.js +28 -0
- package/dist/{build-section-divider-CJ7k-BvF.js → build-section-divider-dzVqU6Fr.js} +8 -22
- package/dist/{ci-Dannv-cF.js → ci-tO6eKsPx.js} +12 -11
- package/dist/cli.js +76 -24
- package/dist/{design-9x5DReyL.js → design-BOr8ASzl.js} +4 -4
- package/dist/{devtools-D8NTVj81.js → devtools-BiC-AP3B.js} +3 -3
- package/dist/{exit-gracefully-ti2wONpM.js → exit-gracefully-B4JO2DSi.js} +15 -9
- package/dist/get-east-asian-width-Cglw13G7.js +444 -0
- package/dist/{report-error-BlOAg03W.js → handle-error-JVQU0Pxy.js} +6 -61
- package/dist/index.d.ts +2 -2
- package/dist/index.js +61 -43
- package/dist/{inspect-C3itFiEW.js → inspect-CBkHe9dS.js} +17 -16
- package/dist/{install-CjIJL6S5.js → install-DG3MH36X.js} +9 -8
- package/dist/{install-doctor-script-0sdZ4SY8.js → install-doctor-script-DaB6kssK.js} +6 -441
- package/dist/{install-github-workflow-DQ8_lhAW.js → install-github-workflow-CHs4pPvZ.js} +6 -6
- package/dist/{install-react-doctor-DRG8hdL4.js → install-react-doctor-D4Z6xm2T.js} +8 -8
- package/dist/{run-scan-app-Cgn4ELJF.js → jsx-runtime-5ph9KX7N.js} +280 -2769
- package/dist/{print-branded-header-Dc1KdrcV.js → print-branded-header-BRA02Uik.js} +4 -4
- package/dist/prompt-runtime-scan-url-1IvWhRJ0.js +240 -0
- package/dist/{read-object-file-rblJxHxN.js → read-object-file-CacQMaGw.js} +4 -4
- package/dist/{record-metric-Dgg2b2LG.js → record-metric-DcBAbVVs.js} +115 -76
- package/dist/report-error-Cj58fOLO.js +64 -0
- package/dist/{report-workflow-result-Dp4dCUxw.js → report-workflow-result-DadOSgvV.js} +5 -5
- package/dist/{resolve-scope-CbeXgE9z.js → resolve-scope-pqK2skSv.js} +6 -6
- package/dist/{rules-ClDrNCc3.js → rules-IBWoSmK_.js} +6 -6
- package/dist/run-scan-app-JphzszIp.js +2508 -0
- package/dist/runtime-scan/browser-probe.iife.js +855 -0
- package/dist/runtime-scan-BSMwOS9F.js +770 -0
- package/dist/sanitize-runtime-url-BN8oyAb7.js +76 -0
- package/dist/{scan-Caa_ogFB.js → scan-1Hakw1J4.js} +10 -22
- package/dist/{should-fail-scan-gate-BGzNJApW.js → should-fail-scan-gate-CwBjVudY.js} +23 -114
- package/dist/{should-skip-prompts-Bbl0ToUI.js → should-skip-prompts-CtQ-6r7T.js} +4 -4
- package/dist/should-use-tui-BLBNwhU6.js +25 -0
- package/dist/skills/performance/SKILL.md +113 -0
- package/dist/skills/react-doctor/SKILL.md +6 -0
- package/dist/{unref-stdin-C7d7_3va.js → telemetry-runtime-BxsPVkMH.js} +5 -23
- package/dist/unref-stdin-BKT_s38a.js +12 -0
- package/dist/{version-Bjql-CLM.js → version-5WSKTaCF.js} +4 -4
- package/dist/{why-BqG2EML8.js → why-DHTN2DPT.js} +4 -4
- package/dist/with-run-span-Kn-I23fJ.js +110 -0
- package/package.json +8 -6
|
@@ -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]="
|
|
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]="c9e04589-a11d-5831-8f4a-ffc7130734b6")}catch(e){}}();
|
|
3
3
|
import { i as __toESM$1, r as __require, t as __commonJSMin$1 } from "./chunk-ChKA3wi6.js";
|
|
4
4
|
import { n as require_picomatch, t as require_semver } from "./semver-DFtnEmN-.js";
|
|
5
5
|
import { createRequire } from "node:module";
|
|
@@ -62323,7 +62323,7 @@ var ProjectNotFoundError = class extends Error {
|
|
|
62323
62323
|
kind;
|
|
62324
62324
|
constructor(directory, options) {
|
|
62325
62325
|
const kind = options?.kind ?? "no-project";
|
|
62326
|
-
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);
|
|
62326
|
+
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);
|
|
62327
62327
|
this.directory = directory;
|
|
62328
62328
|
this.kind = kind;
|
|
62329
62329
|
}
|
|
@@ -62357,7 +62357,7 @@ var AmbiguousProjectError = class extends Error {
|
|
|
62357
62357
|
directory;
|
|
62358
62358
|
candidates;
|
|
62359
62359
|
constructor(directory, candidates, options) {
|
|
62360
|
-
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);
|
|
62360
|
+
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);
|
|
62361
62361
|
this.directory = directory;
|
|
62362
62362
|
this.candidates = candidates;
|
|
62363
62363
|
}
|
|
@@ -63697,9 +63697,11 @@ const FRAMEWORK_PACKAGES = {
|
|
|
63697
63697
|
"@remix-run/react": "remix",
|
|
63698
63698
|
gatsby: "gatsby",
|
|
63699
63699
|
astro: "astro",
|
|
63700
|
+
"@astrojs/react": "astro",
|
|
63700
63701
|
vite: "vite",
|
|
63701
63702
|
"react-scripts": "cra",
|
|
63702
63703
|
expo: "expo",
|
|
63704
|
+
"expo-router": "expo",
|
|
63703
63705
|
"react-native": "react-native"
|
|
63704
63706
|
};
|
|
63705
63707
|
const detectFramework = (dependencies) => {
|
|
@@ -64191,20 +64193,39 @@ const getDependencyDeclaration = ({ packageJson, packageName, sections }) => {
|
|
|
64191
64193
|
version: null
|
|
64192
64194
|
};
|
|
64193
64195
|
};
|
|
64194
|
-
const
|
|
64196
|
+
const REACT_PROJECT_DEPENDENCY_NAMES = new Set([
|
|
64195
64197
|
"react",
|
|
64198
|
+
"react-dom",
|
|
64196
64199
|
"react-native",
|
|
64197
64200
|
"next",
|
|
64198
|
-
"preact"
|
|
64201
|
+
"preact",
|
|
64202
|
+
"expo",
|
|
64203
|
+
"expo-router",
|
|
64204
|
+
"gatsby",
|
|
64205
|
+
"@remix-run/react",
|
|
64206
|
+
"@tanstack/react-start",
|
|
64207
|
+
"react-scripts",
|
|
64208
|
+
"@astrojs/react"
|
|
64199
64209
|
]);
|
|
64210
|
+
const REACT_THREE_FIBER_DEPENDENCY_NAMES = ["@react-three/fiber", "react-three-fiber"];
|
|
64211
|
+
const REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES = [
|
|
64212
|
+
...REACT_THREE_FIBER_DEPENDENCY_NAMES,
|
|
64213
|
+
"@react-three/drei",
|
|
64214
|
+
"@react-three/rapier",
|
|
64215
|
+
"@react-three/postprocessing",
|
|
64216
|
+
"@react-three/xr",
|
|
64217
|
+
"@react-three/cannon"
|
|
64218
|
+
];
|
|
64219
|
+
const THREE_DEPENDENCY_NAMES = ["three", ...REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES];
|
|
64200
64220
|
const hasReactDependency = (packageJson) => {
|
|
64201
64221
|
const allDependencies = {
|
|
64202
64222
|
...packageJson.peerDependencies,
|
|
64203
64223
|
...packageJson.dependencies,
|
|
64204
64224
|
...packageJson.devDependencies
|
|
64205
64225
|
};
|
|
64206
|
-
return Object.keys(allDependencies).some((packageName) =>
|
|
64226
|
+
return Object.keys(allDependencies).some((packageName) => REACT_PROJECT_DEPENDENCY_NAMES.has(packageName));
|
|
64207
64227
|
};
|
|
64228
|
+
const hasSupportedProjectDependency = (packageJson) => hasReactDependency(packageJson) || getDependencySpec(packageJson, "remotion") !== null || THREE_DEPENDENCY_NAMES.some((packageName) => getDependencySpec(packageJson, packageName) !== null);
|
|
64208
64229
|
const getPreactVersion = (packageJson) => getDependencySpec(packageJson, "preact");
|
|
64209
64230
|
const resolveCatalogBackedDependencyVersion = ({ rootDirectory, rootPackageJson, packageName, sourceDirectory = rootDirectory, sourcePackageJson = rootPackageJson, version }) => {
|
|
64210
64231
|
if (version === null || !isCatalogReference(version)) return version;
|
|
@@ -64395,7 +64416,7 @@ const listWorkspacePackages = (rootDirectory) => {
|
|
|
64395
64416
|
seenDirectories.add(workspacePackage.directory);
|
|
64396
64417
|
packages.push(workspacePackage);
|
|
64397
64418
|
};
|
|
64398
|
-
if (
|
|
64419
|
+
if (hasSupportedProjectDependency(packageJson)) pushIfNew({
|
|
64399
64420
|
name: packageJson.name ?? path$1$1.basename(rootDirectory),
|
|
64400
64421
|
directory: rootDirectory
|
|
64401
64422
|
});
|
|
@@ -64403,7 +64424,7 @@ const listWorkspacePackages = (rootDirectory) => {
|
|
|
64403
64424
|
const directories = resolveWorkspaceDirectories(rootDirectory, pattern);
|
|
64404
64425
|
for (const workspaceDirectory of directories) {
|
|
64405
64426
|
const workspacePackageJson = readPackageJson(path$1$1.join(workspaceDirectory, "package.json"));
|
|
64406
|
-
if (!
|
|
64427
|
+
if (!hasSupportedProjectDependency(workspacePackageJson)) continue;
|
|
64407
64428
|
pushIfNew({
|
|
64408
64429
|
name: workspacePackageJson.name ?? path$1$1.basename(workspaceDirectory),
|
|
64409
64430
|
directory: workspaceDirectory
|
|
@@ -64470,7 +64491,6 @@ const MOBX_REACT_PACKAGE_NAME = "mobx-react";
|
|
|
64470
64491
|
const MOBX_REACT_LITE_PACKAGE_NAME = "mobx-react-lite";
|
|
64471
64492
|
const MOBX_STATE_TREE_PACKAGE_NAME = "mobx-state-tree";
|
|
64472
64493
|
const MOBX_REACT_OBSERVER_PACKAGE_NAME = "mobx-react-observer";
|
|
64473
|
-
const REACT_THREE_FIBER_DEPENDENCY_NAMES = ["@react-three/fiber", "react-three-fiber"];
|
|
64474
64494
|
const REACT_THREE_FIBER_SECTIONS = [
|
|
64475
64495
|
"dependencies",
|
|
64476
64496
|
"peerDependencies",
|
|
@@ -64483,8 +64503,6 @@ const THREE_DEPENDENCY_SECTIONS = [
|
|
|
64483
64503
|
"optionalDependencies",
|
|
64484
64504
|
"devDependencies"
|
|
64485
64505
|
];
|
|
64486
|
-
const REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES = [...REACT_THREE_FIBER_DEPENDENCY_NAMES, "@react-three/drei"];
|
|
64487
|
-
const THREE_DEPENDENCY_NAMES = [...REACT_THREE_FIBER_ECOSYSTEM_DEPENDENCY_NAMES, "three"];
|
|
64488
64506
|
const REACT_ROUTER_DEPENDENCY_NAMES = [
|
|
64489
64507
|
"@react-router/dev",
|
|
64490
64508
|
"react-router-dom",
|
|
@@ -64985,13 +65003,13 @@ const detectTargetBlankOpenerProtection = (directory, packageJson) => {
|
|
|
64985
65003
|
if (browserslistRequirement === "noreferrer" || electronRequirement === "noreferrer") return "noreferrer";
|
|
64986
65004
|
if (browserslistRequirement === "noopener" || electronRequirement === "noopener") return "noopener";
|
|
64987
65005
|
};
|
|
64988
|
-
const
|
|
65006
|
+
const toSupportedWorkspacePackages = (directories) => {
|
|
64989
65007
|
const packages = [];
|
|
64990
65008
|
for (const directory of directories) {
|
|
64991
65009
|
const packageJsonPath = path$1$1.join(directory, "package.json");
|
|
64992
65010
|
if (!isFile(packageJsonPath)) continue;
|
|
64993
65011
|
const packageJson = readPackageJson(packageJsonPath);
|
|
64994
|
-
if (!
|
|
65012
|
+
if (!hasSupportedProjectDependency(packageJson)) continue;
|
|
64995
65013
|
const name = packageJson.name ?? path$1$1.basename(directory);
|
|
64996
65014
|
packages.push({
|
|
64997
65015
|
name,
|
|
@@ -65004,7 +65022,7 @@ const listManifestWorkspacePackages = (rootDirectory) => {
|
|
|
65004
65022
|
if (isFile(path$1$1.join(rootDirectory, "package.json"))) return listWorkspacePackages(rootDirectory);
|
|
65005
65023
|
const patterns = parsePnpmWorkspacePatterns(rootDirectory);
|
|
65006
65024
|
const nxPatterns = patterns.length > 0 ? [] : getNxWorkspaceDirectories(rootDirectory);
|
|
65007
|
-
return
|
|
65025
|
+
return toSupportedWorkspacePackages((patterns.length > 0 ? patterns : nxPatterns).flatMap((pattern) => resolveWorkspaceDirectories(rootDirectory, pattern)));
|
|
65008
65026
|
};
|
|
65009
65027
|
const NON_PROJECT_DIRECTORIES = new Set([
|
|
65010
65028
|
"AppData",
|
|
@@ -65012,7 +65030,7 @@ const NON_PROJECT_DIRECTORIES = new Set([
|
|
|
65012
65030
|
"Library"
|
|
65013
65031
|
]);
|
|
65014
65032
|
const MAX_SCAN_DEPTH = 6;
|
|
65015
|
-
const
|
|
65033
|
+
const discoverSupportedSubprojectsByFilesystem = (rootDirectory) => {
|
|
65016
65034
|
const packages = [];
|
|
65017
65035
|
const pendingDirectories = [{
|
|
65018
65036
|
directory: rootDirectory,
|
|
@@ -65025,7 +65043,7 @@ const discoverReactSubprojectsByFilesystem = (rootDirectory) => {
|
|
|
65025
65043
|
const packageJsonPath = path$1$1.join(currentDirectory, "package.json");
|
|
65026
65044
|
if (isFile(packageJsonPath)) {
|
|
65027
65045
|
const packageJson = readPackageJson(packageJsonPath);
|
|
65028
|
-
if (
|
|
65046
|
+
if (hasSupportedProjectDependency(packageJson)) {
|
|
65029
65047
|
const name = packageJson.name ?? path$1$1.basename(currentDirectory);
|
|
65030
65048
|
packages.push({
|
|
65031
65049
|
name,
|
|
@@ -65045,11 +65063,11 @@ const discoverReactSubprojectsByFilesystem = (rootDirectory) => {
|
|
|
65045
65063
|
}
|
|
65046
65064
|
return packages;
|
|
65047
65065
|
};
|
|
65048
|
-
const
|
|
65066
|
+
const discoverSupportedSubprojects = (rootDirectory) => {
|
|
65049
65067
|
if (!isDirectory(rootDirectory)) return [];
|
|
65050
65068
|
const manifestPackages = listManifestWorkspacePackages(rootDirectory);
|
|
65051
65069
|
if (manifestPackages.length > 0) return manifestPackages;
|
|
65052
|
-
return
|
|
65070
|
+
return discoverSupportedSubprojectsByFilesystem(rootDirectory);
|
|
65053
65071
|
};
|
|
65054
65072
|
const cachedProjectInfos = /* @__PURE__ */ new Map();
|
|
65055
65073
|
/**
|
|
@@ -65320,16 +65338,31 @@ const discoverProject = (directory, options = {}) => {
|
|
|
65320
65338
|
cachedProjectInfos.set(directory, projectInfo);
|
|
65321
65339
|
return projectInfo;
|
|
65322
65340
|
};
|
|
65341
|
+
const REACT_COMPATIBLE_FRAMEWORKS = new Set([
|
|
65342
|
+
"nextjs",
|
|
65343
|
+
"tanstack-start",
|
|
65344
|
+
"cra",
|
|
65345
|
+
"remix",
|
|
65346
|
+
"gatsby",
|
|
65347
|
+
"expo",
|
|
65348
|
+
"react-native",
|
|
65349
|
+
"preact"
|
|
65350
|
+
]);
|
|
65351
|
+
/**
|
|
65352
|
+
* Whether project discovery resolved a React-compatible runtime directly or
|
|
65353
|
+
* through a framework whose runtime is necessarily React-compatible.
|
|
65354
|
+
*/
|
|
65355
|
+
const hasReactRuntime = (project) => project.reactVersion !== null || project.preactVersion !== null || REACT_COMPATIBLE_FRAMEWORKS.has(project.framework);
|
|
65323
65356
|
/**
|
|
65324
|
-
* A project is worth scanning when it has
|
|
65357
|
+
* A project is worth scanning when it has a supported runtime (the runtime-
|
|
65325
65358
|
* specific rules apply) OR it simply has source files to lint. The
|
|
65326
65359
|
* second arm is what lets a plain TypeScript/JavaScript codebase — no
|
|
65327
65360
|
* React dependency at all — run the framework-agnostic rules
|
|
65328
65361
|
* (security, architecture, zod, bundle-size, …) instead of hard-failing
|
|
65329
|
-
* with "No React dependency". Only a directory with neither
|
|
65330
|
-
* single source file has nothing to analyze.
|
|
65362
|
+
* with "No React dependency". Only a directory with neither a supported
|
|
65363
|
+
* runtime nor a single source file has nothing to analyze.
|
|
65331
65364
|
*/
|
|
65332
|
-
const isAnalyzableProject = (project) => project.
|
|
65365
|
+
const isAnalyzableProject = (project) => hasReactRuntime(project) || project.hasThree === true || project.hasRemotion === true || project.sourceFileCount > 0;
|
|
65333
65366
|
const LEGACY_RULE_KEY_TO_NATIVE_RULE_KEY = {
|
|
65334
65367
|
"deslop/circular-dependency": "react-doctor/circular-dependency",
|
|
65335
65368
|
"deslop/unused-dependency": "react-doctor/unused-dependency",
|
|
@@ -67503,11 +67536,11 @@ const resolveConfigRootDir = (config, configSourceDirectory) => {
|
|
|
67503
67536
|
};
|
|
67504
67537
|
const resolveDiagnoseTarget = (directory, options = {}) => {
|
|
67505
67538
|
if (isFile(path$1$1.join(directory, "package.json"))) return directory;
|
|
67506
|
-
const
|
|
67507
|
-
if (
|
|
67508
|
-
if (
|
|
67539
|
+
const subprojects = discoverSupportedSubprojects(directory);
|
|
67540
|
+
if (subprojects.length === 0) return null;
|
|
67541
|
+
if (subprojects.length === 1) return subprojects[0].directory;
|
|
67509
67542
|
if (options.allowAmbiguous === true) return null;
|
|
67510
|
-
throw new AmbiguousProjectError(directory,
|
|
67543
|
+
throw new AmbiguousProjectError(directory, subprojects.map((subproject) => path$1$1.relative(directory, subproject.directory)).toSorted());
|
|
67511
67544
|
};
|
|
67512
67545
|
/**
|
|
67513
67546
|
* The canonical entry-point translation shared by every public shell
|
|
@@ -69242,21 +69275,6 @@ function* collectSecurityScanFiles(rootDirectory, excludedDirectories = /* @__PU
|
|
|
69242
69275
|
}
|
|
69243
69276
|
}
|
|
69244
69277
|
}
|
|
69245
|
-
const REACT_COMPATIBLE_FRAMEWORKS = new Set([
|
|
69246
|
-
"nextjs",
|
|
69247
|
-
"tanstack-start",
|
|
69248
|
-
"cra",
|
|
69249
|
-
"remix",
|
|
69250
|
-
"gatsby",
|
|
69251
|
-
"expo",
|
|
69252
|
-
"react-native",
|
|
69253
|
-
"preact"
|
|
69254
|
-
]);
|
|
69255
|
-
/**
|
|
69256
|
-
* Whether project discovery resolved a React-compatible runtime directly or
|
|
69257
|
-
* through a framework whose runtime is necessarily React-compatible.
|
|
69258
|
-
*/
|
|
69259
|
-
const hasReactRuntime = (project) => project.reactVersion !== null || project.preactVersion !== null || REACT_COMPATIBLE_FRAMEWORKS.has(project.framework);
|
|
69260
69278
|
const CLIENT_ONLY_FRAMEWORKS = new Set([
|
|
69261
69279
|
"vite",
|
|
69262
69280
|
"cra",
|
|
@@ -72876,7 +72894,7 @@ const buildRelatedLocations = (labels, filePath, sourceBuffer) => {
|
|
|
72876
72894
|
const isOxlintSpan = (value) => isRecord(value) && typeof value.offset === "number" && typeof value.length === "number" && typeof value.line === "number" && typeof value.column === "number";
|
|
72877
72895
|
const isOxlintLabel = (value) => isRecord(value) && isOxlintSpan(value.span);
|
|
72878
72896
|
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);
|
|
72879
|
-
const isEngineFailureDiagnostic = (value) => !isRecord(value) || typeof value.filename !== "string" || value.filename.length === 0;
|
|
72897
|
+
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;
|
|
72880
72898
|
const isOxlintOutput = (value) => isRecord(value) && Array.isArray(value.diagnostics);
|
|
72881
72899
|
/**
|
|
72882
72900
|
* Parses one oxlint subprocess's stdout into a flat `Diagnostic[]`.
|
|
@@ -76397,6 +76415,7 @@ const METRIC = {
|
|
|
76397
76415
|
ciConfigured: "ci.configured",
|
|
76398
76416
|
rulesChanged: "rules.changed",
|
|
76399
76417
|
rulesQueried: "rules.queried",
|
|
76418
|
+
runtimeScanUrlPromptShown: "runtime_scan.url_prompt_shown",
|
|
76400
76419
|
tuiCompactReportShown: "tui.compact_report_shown",
|
|
76401
76420
|
tuiFindingNavigated: "tui.finding_navigated",
|
|
76402
76421
|
tuiIssueStreamShown: "tui.issue_stream_shown",
|
|
@@ -76450,7 +76469,7 @@ const makeNoopConsole = () => ({
|
|
|
76450
76469
|
});
|
|
76451
76470
|
//#endregion
|
|
76452
76471
|
//#region src/cli/utils/version.ts
|
|
76453
|
-
const VERSION = "0.9.12-dev.
|
|
76472
|
+
const VERSION = "0.9.12-dev.1971506";
|
|
76454
76473
|
//#endregion
|
|
76455
76474
|
//#region src/cli/utils/json-mode.ts
|
|
76456
76475
|
let context = null;
|
|
@@ -76488,13 +76507,14 @@ const installSilentConsole = () => {
|
|
|
76488
76507
|
"trace"
|
|
76489
76508
|
]) target[key] = source[key];
|
|
76490
76509
|
};
|
|
76491
|
-
const enableJsonMode = ({ compact, directory, outputFile }) => {
|
|
76510
|
+
const enableJsonMode = ({ compact, directory, outputFile, writeCancellationError }) => {
|
|
76492
76511
|
context = {
|
|
76493
76512
|
compact,
|
|
76494
76513
|
directory,
|
|
76495
76514
|
startTime: performance$1.now(),
|
|
76496
76515
|
mode: "full",
|
|
76497
|
-
outputFile: null
|
|
76516
|
+
outputFile: null,
|
|
76517
|
+
writeCancellationError
|
|
76498
76518
|
};
|
|
76499
76519
|
installSilentConsole();
|
|
76500
76520
|
if (outputFile) {
|
|
@@ -76533,6 +76553,13 @@ const writeJsonErrorReport = (error, sentryEventId) => {
|
|
|
76533
76553
|
process.stdout.write(INTERNAL_ERROR_JSON_FALLBACK);
|
|
76534
76554
|
}
|
|
76535
76555
|
};
|
|
76556
|
+
const writeJsonCancellationReport = () => {
|
|
76557
|
+
if (context?.writeCancellationError !== void 0) {
|
|
76558
|
+
context.writeCancellationError();
|
|
76559
|
+
return;
|
|
76560
|
+
}
|
|
76561
|
+
writeJsonErrorReport(/* @__PURE__ */ new Error("Scan cancelled by user (SIGINT/SIGTERM)"));
|
|
76562
|
+
};
|
|
76536
76563
|
//#endregion
|
|
76537
76564
|
//#region src/cli/utils/run-id.ts
|
|
76538
76565
|
let cachedRunId;
|
|
@@ -76541,10 +76568,14 @@ const getRunId = () => {
|
|
|
76541
76568
|
return cachedRunId;
|
|
76542
76569
|
};
|
|
76543
76570
|
//#endregion
|
|
76571
|
+
//#region src/cli/utils/scrub-run-arguments.ts
|
|
76572
|
+
const scrubRunArguments = (argumentsList) => anonymizeText(argumentsList.map((argument) => argument.replace(/^((?:--[^=]+=)?)(?:https?|wss?):\/\/.+$/i, "$1<url>")).join(" "));
|
|
76573
|
+
//#endregion
|
|
76544
76574
|
//#region src/cli/utils/build-run-context.ts
|
|
76545
76575
|
const ROOT_SUBCOMMANDS = new Set([
|
|
76546
76576
|
"design",
|
|
76547
76577
|
"install",
|
|
76578
|
+
"scan",
|
|
76548
76579
|
"setup"
|
|
76549
76580
|
]);
|
|
76550
76581
|
const detectInvokedVia = () => {
|
|
@@ -76585,7 +76616,7 @@ const buildRunContext = () => {
|
|
|
76585
76616
|
runId: getRunId(),
|
|
76586
76617
|
origin: detectOrigin(),
|
|
76587
76618
|
command: detectCommand(userArguments),
|
|
76588
|
-
argv:
|
|
76619
|
+
argv: scrubRunArguments(userArguments),
|
|
76589
76620
|
cwd: scrubSensitivePaths(process.cwd()),
|
|
76590
76621
|
node: process.version,
|
|
76591
76622
|
nodeMajor: detectNodeMajor(),
|
|
@@ -76615,33 +76646,41 @@ const buildRunContext = () => {
|
|
|
76615
76646
|
* omits `projectName` and `rootDirectory`, the two identifying fields, so the
|
|
76616
76647
|
* project can't be tied back to a specific company/repo.
|
|
76617
76648
|
*/
|
|
76618
|
-
const buildSentryProjectContext = (projectInfo) =>
|
|
76619
|
-
|
|
76620
|
-
|
|
76621
|
-
|
|
76622
|
-
|
|
76623
|
-
|
|
76624
|
-
|
|
76625
|
-
|
|
76626
|
-
|
|
76627
|
-
|
|
76628
|
-
|
|
76629
|
-
|
|
76630
|
-
|
|
76631
|
-
|
|
76632
|
-
|
|
76633
|
-
|
|
76634
|
-
|
|
76635
|
-
|
|
76636
|
-
|
|
76637
|
-
|
|
76638
|
-
|
|
76639
|
-
|
|
76640
|
-
|
|
76641
|
-
|
|
76642
|
-
|
|
76643
|
-
|
|
76644
|
-
|
|
76649
|
+
const buildSentryProjectContext = (projectInfo) => {
|
|
76650
|
+
const capabilities = buildCapabilities(projectInfo);
|
|
76651
|
+
const supportedRuntimes = [];
|
|
76652
|
+
if (capabilities.has("react")) supportedRuntimes.push("react");
|
|
76653
|
+
if (capabilities.has("three")) supportedRuntimes.push("three");
|
|
76654
|
+
if (capabilities.has("remotion")) supportedRuntimes.push("remotion");
|
|
76655
|
+
return {
|
|
76656
|
+
tags: {
|
|
76657
|
+
"project.framework": projectInfo.framework,
|
|
76658
|
+
"project.runtime": supportedRuntimes.join("+") || "unknown",
|
|
76659
|
+
"project.reactMajor": projectInfo.reactMajorVersion,
|
|
76660
|
+
"project.typescript": projectInfo.hasTypeScript,
|
|
76661
|
+
"project.reactCompiler": projectInfo.hasReactCompiler,
|
|
76662
|
+
"project.expo": projectInfo.expoVersion !== null,
|
|
76663
|
+
"project.reactNative": projectInfo.hasReactNativeWorkspace
|
|
76664
|
+
},
|
|
76665
|
+
context: {
|
|
76666
|
+
framework: projectInfo.framework,
|
|
76667
|
+
reactVersion: projectInfo.reactVersion,
|
|
76668
|
+
reactMajorVersion: projectInfo.reactMajorVersion,
|
|
76669
|
+
hasTypeScript: projectInfo.hasTypeScript,
|
|
76670
|
+
hasReactCompiler: projectInfo.hasReactCompiler,
|
|
76671
|
+
tanstackQueryVersion: projectInfo.tanstackQueryVersion,
|
|
76672
|
+
mobxVersion: projectInfo.mobxVersion,
|
|
76673
|
+
styledComponentsVersion: projectInfo.styledComponentsVersion,
|
|
76674
|
+
tailwindVersion: projectInfo.tailwindVersion,
|
|
76675
|
+
zodVersion: projectInfo.zodVersion,
|
|
76676
|
+
preactVersion: projectInfo.preactVersion,
|
|
76677
|
+
hasReactNativeWorkspace: projectInfo.hasReactNativeWorkspace,
|
|
76678
|
+
expoVersion: projectInfo.expoVersion,
|
|
76679
|
+
hasReanimated: projectInfo.hasReanimated,
|
|
76680
|
+
sourceFileCount: projectInfo.sourceFileCount
|
|
76681
|
+
}
|
|
76682
|
+
};
|
|
76683
|
+
};
|
|
76645
76684
|
let currentProjectInfo = null;
|
|
76646
76685
|
const setSentryProjectInfo = (projectInfo) => {
|
|
76647
76686
|
currentProjectInfo = projectInfo;
|
|
@@ -76772,7 +76811,7 @@ const recordDistribution = (name, value, options = {}) => {
|
|
|
76772
76811
|
} catch {}
|
|
76773
76812
|
};
|
|
76774
76813
|
//#endregion
|
|
76775
|
-
export {
|
|
76814
|
+
export { Linter as $, CANONICAL_DISCORD_URL as $n, layerObservability as $t, SCAN_RESULT_CACHE_FILENAME as A, gen as An, discoverSupportedSubprojects as At, isNonInteractiveEnvironment as B, sync as Bn, getDiffInfo as Bt, CI_TRUST_COMPANIES as C, error as Cn, messageFromUnknown as Cr, collectSourceFileCountsByDirectory as Ct, NANOSECONDS_PER_MILLISECOND as D, Diagnostic as Dn, createNodeReadFileLinesSync as Dt, MINIMUM_VTE_VERSION_FOR_HYPERLINKS as E, warn$1 as En, countOptInProjectRuleSelections as Et, STAGED_FILES_TEMP_DIR_PREFIX as F, provide as Fn, formatErrorChain as Ft, isCiEnvironment as G, provide$2 as Gn, hashFileContents as Gt, isDebugFlagEnabled as H, void_ as Hn, groupBy as Ht, STAGED_SNAPSHOT_ADDITIONAL_CONFIG_FILENAMES as I, provideContext as In, formatReactDoctorError as It, Config as J, makeUnsafe$5 as Jn, isPathInsideDirectory as Jt, isCiOrCodingAgentEnvironment as K, succeed$3 as Kn, highlighter as Kt, TUI_REPORT_COMPACT_MAX_ROWS as L, provideService as Ln, getBaselineDiffPlan as Lt, SENTRY_DSN as M, map$3 as Mn, filterPathsOutsideDirectories as Mt, SENTRY_FLUSH_TIMEOUT_MS as N, orElseSucceed as Nn, filterSourceFiles as Nt, REACT_DOCTOR_CONFIG_PROJECT_NAME as O, decodeUnknownSync as On, createOxlintSpawnSlots as Ot, SENTRY_RELEASE_PREFIX as P, promise as Pn, findLegacyConfig as Pt, LintPartialFailures as Q, AXIOM_DEFAULT_DOMAIN as Qn, isScanComplete as Qt, TUI_REPORT_DETAIL_WIDTH_FRACTION as R, runPromise as Rn, getChangedLineRanges as Rt, BASELINE_FILES_TEMP_DIR_PREFIX as S, Console as Sn, isPlainObject as Sr, clearConfigCache as St, METRIC as T, log as Tn, computeDiagnosticDelta as Tt, ACTION_INPUT_ENVIRONMENT_VARIABLES as U, buildWithScope as Un, hasPublishedFixRecipe as Ut, isGitHookEnvironment as V, try_ as Vn, getEquivalentRuleKeys as Vt, detectRunnerOs as W, mergeAll$1 as Wn, hasSupportedFrameworkOrLibrary as Wt, Git as X, void_$1 as Xn, isReactDoctorError as Xt, Files as Y, fail$5 as Yn, isProjectDiscoveryError as Yt, LEGACY_CONFIG_FILENAME as Z, ParentSpan as Zn, isSameRuleKey as Zt, VERSION as _, shouldUseMaintainabilityLayer as _n, STAGED_FILES_PROJECT_CONFIG_FILENAMES as _r, buildRuleSeverityControls as _t, isEnvFlagEnabled as a, materializeSourceTree as an, DIAGNOSTIC_CATEGORY_BUCKETS as ar, Progress as at, AXIOM_METRICS_DATASET as b, validateConfigTypes as bn, isErrnoException as br, canonicalizeUserRuleKey as bt, setSentryProjectInfo as c, resolveGithubActionsScoreMetadata as cn, GITHUB_ACTIONS_SETUP_URL as cr, Score as ct, isJsonModeActive as d, resolveScanConcurrency as dn, JSX_DUPLICATION_SOURCE_FILE_PATTERN as dr, SupplyChain as dt, listSourceFiles as en, CANONICAL_GITHUB_URL as er, Maintainability as et, setJsonReportDirectory as f, resolveScanTarget as fn, JSX_FILE_PATTERN as fr, anonymizeInPlace as ft, writeJsonReport as g, setColorEnabled as gn, SKILL_NAME as gr, buildRuleDocsUrl as gt, writeJsonErrorReport as h, scrubSensitivePaths as hn, SHARE_BASE_URL as hr, buildJsonReport as ht, isTelemetryEnabled as i, mapWithConcurrency as in, CONFIG_SCHEMA_URL as ir, PerFileLintCacheEnabled as it, SCAN_RESULT_CACHE_MAX_HASHED_FILE_SIZE_BYTES as j, makeSpan$1 as jn, filterDiagnosticsForSurface as jt, RUN_GIT_MAX_BUFFER_BYTES as k, make$30 as kn, detectAiTrainingEnvironment as kt, getRunId as l, resolveLintBatchOrdering as ln, GIT_SHOW_MAX_BUFFER_BYTES as lr, SidecarLintCacheEnabled as lt, writeJsonCancellationReport as m, runInspect as mn, OXLINT_NODE_REQUIREMENT as mr, atomicWriteJson as mt, recordDistribution as n, listWorkspacePackages as nn, COMPILER_CLEANUP_BUCKET as nr, OxlintConcurrency as nt, buildSentryScope as o, mergeReactDoctorConfigs as on, DOCS_URL as or, Project as ot, setJsonReportMode as p, restoreLegacyThrow as pn, MILLISECONDS_PER_SECOND as pr, anonymizeText as pt, isCodingAgentEnvironment as q, close as qn, isMonorepoRoot as qt, toSpanAttributes as r, loadConfigWithSource as rn, COMPILER_CLEANUP_RULE_KEYS as rr, OxlintSpawnSlots as rt, buildSentryProjectContext as s, remainingDeadlineBudgetMs as sn, ENTERPRISE_CONTACT_URL as sr, Reporter as st, recordCount as t, listSourceFilesCooperative as tn, CI_URL as tr, NodeResolver as tt, enableJsonMode as u, resolveReactDoctorCacheDir as un, HTML_FILE_PATTERN as ur, StagedFiles as ut, makeNoopConsole as v, summarizeDiagnostics as vn, getCategoryImpact as vr, buildSkippedChecks as vt, GH_DEFAULT_BRANCH_PROBE_TIMEOUT_MS as w, info as wn, toCanonicalPath as wr, computeConfigFingerprint as wt, AXIOM_TRACES_DATASET as x, yieldToEventLoop as xn, isFile as xr, classifyFileContext as xt, AXIOM_INGEST_TOKEN as y, toRelativePath as yn, isDirectory as yr, calculateScore as yt, CliInputError as z, runSync as zn, getDiagnosticRuleIdentity as zt };
|
|
76776
76815
|
|
|
76777
|
-
//# sourceMappingURL=record-metric-
|
|
76778
|
-
//# debugId=
|
|
76816
|
+
//# sourceMappingURL=record-metric-DcBAbVVs.js.map
|
|
76817
|
+
//# debugId=c9e04589-a11d-5831-8f4a-ffc7130734b6
|
|
@@ -0,0 +1,64 @@
|
|
|
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]="a20fe928-d8ad-5c18-9673-1ca2c6c4aa84")}catch(e){}}();
|
|
3
|
+
import { N as SENTRY_FLUSH_TIMEOUT_MS, T as METRIC, Xt as isReactDoctorError, l as getRunId, o as buildSentryScope, t as recordCount } from "./record-metric-DcBAbVVs.js";
|
|
4
|
+
import { n as shutdownTelemetry, r as isExpectedUserError } from "./telemetry-runtime-BxsPVkMH.js";
|
|
5
|
+
import { r as recordRunTraceId, t as getActiveRunTrace } from "./active-run-trace-dlIZeEvb.js";
|
|
6
|
+
import * as Sentry from "@sentry/node";
|
|
7
|
+
//#region src/cli/utils/report-error.ts
|
|
8
|
+
/**
|
|
9
|
+
* Sends an error to Sentry — enriched with a fresh snapshot of the current run
|
|
10
|
+
* (version, platform, CI/agent, invocation, scanned project) and, when a run
|
|
11
|
+
* transaction is in flight, linked to its trace via the scope's propagation
|
|
12
|
+
* context so the crash and its transaction share a `trace_id` — then waits for
|
|
13
|
+
* delivery before the caller exits. The CLI tears down synchronously after
|
|
14
|
+
* rendering an error, so the awaited `flush` is what actually gets the event
|
|
15
|
+
* (and any in-flight transaction) off the machine.
|
|
16
|
+
*
|
|
17
|
+
* Returns the Sentry event id so the caller can surface it as a reference the
|
|
18
|
+
* user can quote when reporting the bug; returns `undefined` when Sentry was
|
|
19
|
+
* never initialized (`--no-score`, tests, or a missing DSN) or delivery failed.
|
|
20
|
+
* Swallows any transport failure so telemetry can never mask the user's
|
|
21
|
+
* original error.
|
|
22
|
+
*/
|
|
23
|
+
const reportErrorToSentry = async (error) => {
|
|
24
|
+
if (!Sentry.isInitialized()) return void 0;
|
|
25
|
+
if (isExpectedUserError(error)) return void 0;
|
|
26
|
+
try {
|
|
27
|
+
const { tags, contexts } = buildSentryScope();
|
|
28
|
+
let reason = "unknown";
|
|
29
|
+
if (isReactDoctorError(error)) reason = error.reason._tag;
|
|
30
|
+
else if (error instanceof Error) reason = error.name;
|
|
31
|
+
recordCount(METRIC.cliError, 1, {
|
|
32
|
+
command: typeof tags.command === "string" ? tags.command : void 0,
|
|
33
|
+
reason
|
|
34
|
+
});
|
|
35
|
+
const runTrace = getActiveRunTrace();
|
|
36
|
+
const eventId = Sentry.withScope((scope) => {
|
|
37
|
+
for (const [name, context] of Object.entries(contexts)) scope.setContext(name, context);
|
|
38
|
+
scope.setTags(tags);
|
|
39
|
+
if (runTrace) {
|
|
40
|
+
scope.setContext("axiom", {
|
|
41
|
+
traceId: runTrace.traceId,
|
|
42
|
+
runId: getRunId()
|
|
43
|
+
});
|
|
44
|
+
scope.setPropagationContext({
|
|
45
|
+
traceId: runTrace.traceId,
|
|
46
|
+
parentSpanId: runTrace.spanId,
|
|
47
|
+
sampled: runTrace.sampled,
|
|
48
|
+
sampleRand: Math.random()
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
recordRunTraceId(scope.getPropagationContext().traceId);
|
|
52
|
+
return Sentry.captureException(error);
|
|
53
|
+
});
|
|
54
|
+
await Promise.all([Sentry.flush(SENTRY_FLUSH_TIMEOUT_MS), shutdownTelemetry()]);
|
|
55
|
+
return eventId;
|
|
56
|
+
} catch {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
//#endregion
|
|
61
|
+
export { reportErrorToSentry as t };
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=report-error-Cj58fOLO.js.map
|
|
64
|
+
//# debugId=a20fe928-d8ad-5c18-9673-1ca2c6c4aa84
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import {
|
|
4
|
-
import { u as isCommandAvailable } from "./install-github-workflow-
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ceac7dfa-9c50-5226-aa1a-a66357e9048b")}catch(e){}}();
|
|
3
|
+
import { O as REACT_DOCTOR_CONFIG_PROJECT_NAME, T as METRIC, t as recordCount } from "./record-metric-DcBAbVVs.js";
|
|
4
|
+
import { u as isCommandAvailable } from "./install-github-workflow-CHs4pPvZ.js";
|
|
5
5
|
import { spawn } from "node:child_process";
|
|
6
6
|
import * as path$1 from "node:path";
|
|
7
7
|
import process$1 from "node:process";
|
|
@@ -275,5 +275,5 @@ const reportWorkflowResult = (workflowSpinner, result, projectRoot) => {
|
|
|
275
275
|
//#endregion
|
|
276
276
|
export { recordGate as a, ACTION_UPGRADE_EVENT as c, INSTALL_AGENTS_PREFERENCE_ID as d, ONBOARDING_EVENT as f, detectAvailableAgents as h, readPreference as i, CI_PITCH_EVENT as l, computeDefaultSelectedAgents as m, openUrl as n, runMigrations as o, SETUP_HINT_EVENT as p, isGatePending as r, writePreference as s, reportWorkflowResult as t, HANDOFF_TARGET_PREFERENCE_ID as u };
|
|
277
277
|
|
|
278
|
-
//# sourceMappingURL=report-workflow-result-
|
|
279
|
-
//# debugId=
|
|
278
|
+
//# sourceMappingURL=report-workflow-result-DadOSgvV.js.map
|
|
279
|
+
//# debugId=ceac7dfa-9c50-5226-aa1a-a66357e9048b
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { d as detectDefaultBranch, f as runCommand, l as prompts, u as isCommandAvailable } from "./install-github-workflow-
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f39eeead-907b-50fe-81ab-08e14fcaeeba")}catch(e){}}();
|
|
3
|
+
import { Jt as isPathInsideDirectory, Nt as filterSourceFiles, wr as toCanonicalPath } from "./record-metric-DcBAbVVs.js";
|
|
4
|
+
import { N as cliLogger } from "./install-doctor-script-DaB6kssK.js";
|
|
5
|
+
import { d as detectDefaultBranch, f as runCommand, l as prompts, u as isCommandAvailable } from "./install-github-workflow-CHs4pPvZ.js";
|
|
6
6
|
import * as path$1 from "node:path";
|
|
7
7
|
//#region src/cli/utils/path-format.ts
|
|
8
8
|
const toForwardSlashes = (filePath) => filePath.replaceAll("\\", "/");
|
|
@@ -335,5 +335,5 @@ const finalizeScope = async ({ requested, diffInfo, skipPrompts, isQuiet }) => {
|
|
|
335
335
|
//#endregion
|
|
336
336
|
export { isValidBlockingLevel as a, openWorkflowPullRequest as c, warnDeprecatedDiff as i, stageWorkflowFile as l, isScopeValue as n, pickBlockingLevel as o, resolveScope as r, resolveBlockingLevel as s, finalizeScope as t, toForwardSlashes as u };
|
|
337
337
|
|
|
338
|
-
//# sourceMappingURL=resolve-scope-
|
|
339
|
-
//# debugId=
|
|
338
|
+
//# sourceMappingURL=resolve-scope-pqK2skSv.js.map
|
|
339
|
+
//# debugId=f39eeead-907b-50fe-81ab-08e14fcaeeba
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { t as readObjectFile } from "./read-object-file-
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ae5700bd-f124-572c-86fb-a821bab90cca")}catch(e){}}();
|
|
3
|
+
import { Kt as highlighter, Sr as isPlainObject, St as clearConfigCache, T as METRIC, Vt as getEquivalentRuleKeys, Zt as isSameRuleKey, bn as validateConfigTypes, gt as buildRuleDocsUrl, nr as COMPILER_CLEANUP_BUCKET, rn as loadConfigWithSource, rr as COMPILER_CLEANUP_RULE_KEYS, t as recordCount } from "./record-metric-DcBAbVVs.js";
|
|
4
|
+
import { N as cliLogger, n as findNearestPackageDirectory } from "./install-doctor-script-DaB6kssK.js";
|
|
5
|
+
import { t as readObjectFile } from "./read-object-file-CacQMaGw.js";
|
|
6
6
|
import * as path$1 from "node:path";
|
|
7
7
|
import * as fs$1 from "node:fs";
|
|
8
8
|
import { REACT_DOCTOR_RULES } from "oxlint-plugin-react-doctor/core";
|
|
@@ -577,5 +577,5 @@ const rulesUnignoreTagAction = async (tag, options) => {
|
|
|
577
577
|
//#endregion
|
|
578
578
|
export { rulesCategoryAction, rulesDisableAction, rulesEnableAction, rulesExplainAction, rulesIgnoreTagAction, rulesListAction, rulesSetAction, rulesUnignoreTagAction };
|
|
579
579
|
|
|
580
|
-
//# sourceMappingURL=rules-
|
|
581
|
-
//# debugId=
|
|
580
|
+
//# sourceMappingURL=rules-IBWoSmK_.js.map
|
|
581
|
+
//# debugId=ae5700bd-f124-572c-86fb-a821bab90cca
|