react-doctor 0.8.1-dev.cd9ca68 → 0.8.1-dev.e6a1557
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/cli.js +23 -116
- package/dist/index.d.ts +0 -3
- package/dist/index.js +19 -110
- package/dist/lsp.js +19 -110
- package/package.json +5 -5
package/dist/cli.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]="
|
|
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]="81bdc95e-12f2-565f-a05c-7b8a60a98f81")}catch(e){}}();
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import * as NodeChildProcess from "node:child_process";
|
|
5
5
|
import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
|
|
@@ -36571,10 +36571,10 @@ const FALLBACK_TSCONFIG_FILENAMES = ["tsconfig.app.json", "tsconfig.build.json"]
|
|
|
36571
36571
|
const FRAMEWORK_PACKAGES = {
|
|
36572
36572
|
next: "nextjs",
|
|
36573
36573
|
"@tanstack/react-start": "tanstack-start",
|
|
36574
|
-
"@remix-run/react": "remix",
|
|
36575
|
-
gatsby: "gatsby",
|
|
36576
36574
|
vite: "vite",
|
|
36577
36575
|
"react-scripts": "cra",
|
|
36576
|
+
"@remix-run/react": "remix",
|
|
36577
|
+
gatsby: "gatsby",
|
|
36578
36578
|
expo: "expo",
|
|
36579
36579
|
"react-native": "react-native"
|
|
36580
36580
|
};
|
|
@@ -37101,6 +37101,19 @@ const getPreactVersion = (packageJson) => {
|
|
|
37101
37101
|
...packageJson.devDependencies
|
|
37102
37102
|
}.preact ?? null;
|
|
37103
37103
|
};
|
|
37104
|
+
const TANSTACK_QUERY_PACKAGES = new Set([
|
|
37105
|
+
"@tanstack/react-query",
|
|
37106
|
+
"@tanstack/query-core",
|
|
37107
|
+
"react-query"
|
|
37108
|
+
]);
|
|
37109
|
+
const hasTanStackQuery = (packageJson) => {
|
|
37110
|
+
const allDependencies = {
|
|
37111
|
+
...packageJson.peerDependencies,
|
|
37112
|
+
...packageJson.dependencies,
|
|
37113
|
+
...packageJson.devDependencies
|
|
37114
|
+
};
|
|
37115
|
+
return Object.keys(allDependencies).some((packageName) => TANSTACK_QUERY_PACKAGES.has(packageName));
|
|
37116
|
+
};
|
|
37104
37117
|
const resolveCatalogBackedDependencyVersion = ({ rootDirectory, rootPackageJson, packageName, version }) => {
|
|
37105
37118
|
if (version === null || !isCatalogReference(version)) return version;
|
|
37106
37119
|
const catalogName = extractCatalogName(version);
|
|
@@ -37303,55 +37316,6 @@ const listWorkspacePackages = (rootDirectory) => {
|
|
|
37303
37316
|
}
|
|
37304
37317
|
return packages;
|
|
37305
37318
|
};
|
|
37306
|
-
const getPreferredDependencyVersion = ({ packageJson, packageNames }) => {
|
|
37307
|
-
const allDependencies = {
|
|
37308
|
-
...packageJson.devDependencies,
|
|
37309
|
-
...packageJson.peerDependencies,
|
|
37310
|
-
...packageJson.dependencies
|
|
37311
|
-
};
|
|
37312
|
-
for (const packageName of packageNames) {
|
|
37313
|
-
const version = allDependencies[packageName];
|
|
37314
|
-
if (version !== void 0) return version;
|
|
37315
|
-
}
|
|
37316
|
-
return null;
|
|
37317
|
-
};
|
|
37318
|
-
const TANSTACK_REACT_QUERY_PACKAGES = ["@tanstack/react-query", "react-query"];
|
|
37319
|
-
const getTanStackQueryVersion = (packageJson) => {
|
|
37320
|
-
return getPreferredDependencyVersion({
|
|
37321
|
-
packageJson,
|
|
37322
|
-
packageNames: TANSTACK_REACT_QUERY_PACKAGES
|
|
37323
|
-
});
|
|
37324
|
-
};
|
|
37325
|
-
const STYLED_COMPONENTS_PACKAGES = ["styled-components"];
|
|
37326
|
-
const getStyledComponentsVersion = (packageJson) => {
|
|
37327
|
-
return getPreferredDependencyVersion({
|
|
37328
|
-
packageJson,
|
|
37329
|
-
packageNames: STYLED_COMPONENTS_PACKAGES
|
|
37330
|
-
});
|
|
37331
|
-
};
|
|
37332
|
-
const I18N_PACKAGES = [
|
|
37333
|
-
"i18next",
|
|
37334
|
-
"react-i18next",
|
|
37335
|
-
"next-i18next",
|
|
37336
|
-
"react-intl",
|
|
37337
|
-
"next-intl",
|
|
37338
|
-
"use-intl",
|
|
37339
|
-
"@formatjs/intl",
|
|
37340
|
-
"@lingui/core",
|
|
37341
|
-
"@lingui/react",
|
|
37342
|
-
"typesafe-i18n",
|
|
37343
|
-
"@tolgee/react",
|
|
37344
|
-
"react-intl-universal"
|
|
37345
|
-
];
|
|
37346
|
-
const hasI18nDependency = (packageJson) => {
|
|
37347
|
-
const allDependencies = {
|
|
37348
|
-
...packageJson.peerDependencies,
|
|
37349
|
-
...packageJson.dependencies,
|
|
37350
|
-
...packageJson.devDependencies,
|
|
37351
|
-
...packageJson.optionalDependencies
|
|
37352
|
-
};
|
|
37353
|
-
return I18N_PACKAGES.some((packageName) => allDependencies[packageName] !== void 0);
|
|
37354
|
-
};
|
|
37355
37319
|
const REANIMATED_DEPENDENCY_NAME = "react-native-reanimated";
|
|
37356
37320
|
const MOBX_REACT_PACKAGE_NAME = "mobx-react";
|
|
37357
37321
|
const MOBX_REACT_LITE_PACKAGE_NAME = "mobx-react-lite";
|
|
@@ -37386,14 +37350,6 @@ const shouldReplaceSupportedDependencyFact = (currentFact, nextFact, latestSuppo
|
|
|
37386
37350
|
if (nextMajor > latestSupportedMajor) return true;
|
|
37387
37351
|
return nextMajor < currentMajor;
|
|
37388
37352
|
};
|
|
37389
|
-
const shouldReplaceStyledComponentsVersion = (currentVersion, nextVersion) => {
|
|
37390
|
-
if (!currentVersion) return true;
|
|
37391
|
-
const currentMajor = getLowestDependencyMajor(currentVersion);
|
|
37392
|
-
const nextMajor = getLowestDependencyMajor(nextVersion);
|
|
37393
|
-
if (currentMajor === null) return nextMajor !== null && nextMajor < 6;
|
|
37394
|
-
if (nextMajor === null) return currentMajor >= 6;
|
|
37395
|
-
return nextMajor < currentMajor;
|
|
37396
|
-
};
|
|
37397
37353
|
const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, rootPackageJson) => {
|
|
37398
37354
|
if (facts.expo.version === null) {
|
|
37399
37355
|
const spec = getDependencySpec(packageJson, "expo");
|
|
@@ -37454,15 +37410,6 @@ const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, roo
|
|
|
37454
37410
|
const spec = getDependencySpec(packageJson, "valtio");
|
|
37455
37411
|
if (spec !== null) facts.valtioVersion = spec;
|
|
37456
37412
|
}
|
|
37457
|
-
facts.tanstackQueryVersion ??= getTanStackQueryVersion(packageJson);
|
|
37458
|
-
const styledComponentsVersion = resolveCatalogBackedDependencyVersion({
|
|
37459
|
-
rootDirectory: directory,
|
|
37460
|
-
rootPackageJson: packageJson,
|
|
37461
|
-
packageName: "styled-components",
|
|
37462
|
-
version: getStyledComponentsVersion(packageJson)
|
|
37463
|
-
});
|
|
37464
|
-
if (styledComponentsVersion && shouldReplaceStyledComponentsVersion(facts.styledComponentsVersion, styledComponentsVersion)) facts.styledComponentsVersion = styledComponentsVersion;
|
|
37465
|
-
facts.hasI18nLibrary = facts.hasI18nLibrary || hasI18nDependency(packageJson);
|
|
37466
37413
|
facts.hasReactNativeAwarePackage = facts.hasReactNativeAwarePackage || isPackageJsonReactNativeAware(packageJson);
|
|
37467
37414
|
facts.hasReanimatedAwarePackage = facts.hasReanimatedAwarePackage || isPackageJsonReanimatedAware(packageJson);
|
|
37468
37415
|
facts.hasSsrDependency = facts.hasSsrDependency || isPackageJsonSsrAware(packageJson);
|
|
@@ -37516,9 +37463,6 @@ const collectWorkspaceFacts = (rootDirectory, rootPackageJson, { collectReactGro
|
|
|
37516
37463
|
version: null,
|
|
37517
37464
|
sourceDirectory: null
|
|
37518
37465
|
},
|
|
37519
|
-
tanstackQueryVersion: null,
|
|
37520
|
-
styledComponentsVersion: null,
|
|
37521
|
-
hasI18nLibrary: false,
|
|
37522
37466
|
hasReactNativeAwarePackage: false,
|
|
37523
37467
|
hasReanimatedAwarePackage: false,
|
|
37524
37468
|
hasSsrDependency: false,
|
|
@@ -37775,9 +37719,6 @@ const discoverProjectWithoutPackageJson = (directory) => {
|
|
|
37775
37719
|
hasRemotion: false,
|
|
37776
37720
|
remotionVersion: null,
|
|
37777
37721
|
remotionMajorVersion: null,
|
|
37778
|
-
hasI18nLibrary: false,
|
|
37779
|
-
tanstackQueryVersion: null,
|
|
37780
|
-
styledComponentsVersion: null,
|
|
37781
37722
|
hasSsrDependency: false,
|
|
37782
37723
|
preactVersion: null,
|
|
37783
37724
|
preactMajorVersion: null,
|
|
@@ -37904,7 +37845,6 @@ const discoverProject = (directory) => {
|
|
|
37904
37845
|
});
|
|
37905
37846
|
const preactVersion = getPreactVersion(packageJson);
|
|
37906
37847
|
const remotionVersion = workspaceFacts.remotionVersion;
|
|
37907
|
-
const tanstackQueryVersion = getTanStackQueryVersion(packageJson) ?? workspaceFacts.tanstackQueryVersion;
|
|
37908
37848
|
const isPreES2023Target = hasTypeScript && detectPreES2023Target(directory);
|
|
37909
37849
|
const projectInfo = {
|
|
37910
37850
|
rootDirectory: directory,
|
|
@@ -37926,10 +37866,7 @@ const discoverProject = (directory) => {
|
|
|
37926
37866
|
hasTypeScript,
|
|
37927
37867
|
hasReactCompiler: detectReactCompiler(directory, packageJson),
|
|
37928
37868
|
hasReactCompilerLintPlugin: detectReactCompilerLintPlugin(directory, packageJson),
|
|
37929
|
-
hasTanStackQuery:
|
|
37930
|
-
hasI18nLibrary: workspaceFacts.hasI18nLibrary,
|
|
37931
|
-
tanstackQueryVersion,
|
|
37932
|
-
styledComponentsVersion: workspaceFacts.styledComponentsVersion,
|
|
37869
|
+
hasTanStackQuery: hasTanStackQuery(packageJson),
|
|
37933
37870
|
valtioVersion,
|
|
37934
37871
|
valtioMajorVersion: valtioVersion === null ? null : getLowestDependencyMajor(valtioVersion),
|
|
37935
37872
|
hasRemotion: workspaceFacts.hasRemotionDependency,
|
|
@@ -41260,7 +41197,6 @@ const buildCapabilities = (project) => {
|
|
|
41260
41197
|
if (CLIENT_ONLY_FRAMEWORKS.has(project.framework)) capabilities.add("client-only");
|
|
41261
41198
|
if (project.isStaticExport) capabilities.add("nextjs:static-export");
|
|
41262
41199
|
if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 15) capabilities.add("nextjs:15");
|
|
41263
|
-
if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 16) capabilities.add("nextjs:16");
|
|
41264
41200
|
addMajorLadder(capabilities, "react", project.reactMajorVersion, 17, 30);
|
|
41265
41201
|
if (project.reactMajorVersion !== null && project.reactMajorVersion >= 19 && isMajorMinorAtLeast(parseReactMajorMinor(project.reactVersion), {
|
|
41266
41202
|
major: 19,
|
|
@@ -41284,13 +41220,7 @@ const buildCapabilities = (project) => {
|
|
|
41284
41220
|
if (project.zustandMajorVersion !== void 0 && project.zustandMajorVersion !== null && project.zustandMajorVersion >= 1 && project.zustandMajorVersion <= 5) addMajorLadder(capabilities, "zustand", project.zustandMajorVersion, 1, 5);
|
|
41285
41221
|
if (project.isPreES2023Target) capabilities.add("pre-es2023");
|
|
41286
41222
|
if (project.hasReactCompiler) capabilities.add("react-compiler");
|
|
41287
|
-
if (
|
|
41288
|
-
if (project.styledComponentsVersion) {
|
|
41289
|
-
capabilities.add("styled-components");
|
|
41290
|
-
const styledComponentsMajor = getLowestDependencyMajor(project.styledComponentsVersion);
|
|
41291
|
-
if (styledComponentsMajor !== null && styledComponentsMajor >= 6) capabilities.add("styled-components:6");
|
|
41292
|
-
}
|
|
41293
|
-
if (project.hasI18nLibrary) capabilities.add("i18n");
|
|
41223
|
+
if (project.hasTanStackQuery) capabilities.add("tanstack-query");
|
|
41294
41224
|
if (project.valtioVersion !== null) capabilities.add("valtio");
|
|
41295
41225
|
addMajorLadder(capabilities, "valtio", project.valtioMajorVersion, 1, 10);
|
|
41296
41226
|
if (project.hasRemotion) {
|
|
@@ -43581,19 +43511,6 @@ const createSidecarLintCache = (cacheDirectory, rulesetHash) => {
|
|
|
43581
43511
|
}
|
|
43582
43512
|
};
|
|
43583
43513
|
};
|
|
43584
|
-
const fingerprintCacheByFilePath = /* @__PURE__ */ new Map();
|
|
43585
|
-
const fingerprintFileContents = (filePath, fingerprintLength) => {
|
|
43586
|
-
const fileStats = NFS.statSync(filePath, { bigint: true });
|
|
43587
|
-
const cachedFingerprint = fingerprintCacheByFilePath.get(filePath);
|
|
43588
|
-
if (cachedFingerprint?.modifiedTimeNanoseconds === fileStats.mtimeNs && cachedFingerprint.sizeBytes === fileStats.size) return cachedFingerprint.fingerprint;
|
|
43589
|
-
const fingerprint = crypto.createHash("sha256").update(NFS.readFileSync(filePath)).digest("hex").slice(0, fingerprintLength);
|
|
43590
|
-
fingerprintCacheByFilePath.set(filePath, {
|
|
43591
|
-
fingerprint,
|
|
43592
|
-
modifiedTimeNanoseconds: fileStats.mtimeNs,
|
|
43593
|
-
sizeBytes: fileStats.size
|
|
43594
|
-
});
|
|
43595
|
-
return fingerprint;
|
|
43596
|
-
};
|
|
43597
43514
|
const bundledRequire$3 = createRequire(import.meta.url);
|
|
43598
43515
|
const childNodeVersionByBinaryPath = /* @__PURE__ */ new Map();
|
|
43599
43516
|
const resolveChildNodeVersion = (nodeBinaryPath) => {
|
|
@@ -43617,13 +43534,6 @@ const TOOLCHAIN_PACKAGE_SPECIFIERS$1 = [
|
|
|
43617
43534
|
"oxlint-plugin-react-doctor/package.json",
|
|
43618
43535
|
"eslint-plugin-react-hooks/package.json"
|
|
43619
43536
|
];
|
|
43620
|
-
const resolvePluginFingerprint = () => {
|
|
43621
|
-
try {
|
|
43622
|
-
return fingerprintFileContents(bundledRequire$3.resolve("oxlint-plugin-react-doctor"), 16);
|
|
43623
|
-
} catch {
|
|
43624
|
-
return "unresolved";
|
|
43625
|
-
}
|
|
43626
|
-
};
|
|
43627
43537
|
const resolveOxlintToolchainVersions = (nodeBinaryPath = process.execPath) => {
|
|
43628
43538
|
const versions = [`node=${resolveChildNodeVersion(nodeBinaryPath)}`];
|
|
43629
43539
|
for (const specifier of TOOLCHAIN_PACKAGE_SPECIFIERS$1) try {
|
|
@@ -43633,7 +43543,6 @@ const resolveOxlintToolchainVersions = (nodeBinaryPath = process.execPath) => {
|
|
|
43633
43543
|
} catch {
|
|
43634
43544
|
versions.push(`${specifier}=missing`);
|
|
43635
43545
|
}
|
|
43636
|
-
versions.push(`oxlint-plugin-react-doctor#fingerprint=${resolvePluginFingerprint()}`);
|
|
43637
43546
|
return versions;
|
|
43638
43547
|
};
|
|
43639
43548
|
const esmRequire = createRequire(import.meta.url);
|
|
@@ -47601,7 +47510,7 @@ const makeNoopConsole = () => ({
|
|
|
47601
47510
|
});
|
|
47602
47511
|
//#endregion
|
|
47603
47512
|
//#region src/cli/utils/version.ts
|
|
47604
|
-
const VERSION = "0.8.1-dev.
|
|
47513
|
+
const VERSION = "0.8.1-dev.e6a1557";
|
|
47605
47514
|
//#endregion
|
|
47606
47515
|
//#region src/cli/utils/json-mode.ts
|
|
47607
47516
|
let context = null;
|
|
@@ -47772,9 +47681,7 @@ const buildSentryProjectContext = (projectInfo) => ({
|
|
|
47772
47681
|
reactMajorVersion: projectInfo.reactMajorVersion,
|
|
47773
47682
|
hasTypeScript: projectInfo.hasTypeScript,
|
|
47774
47683
|
hasReactCompiler: projectInfo.hasReactCompiler,
|
|
47775
|
-
|
|
47776
|
-
mobxVersion: projectInfo.mobxVersion,
|
|
47777
|
-
styledComponentsVersion: projectInfo.styledComponentsVersion,
|
|
47684
|
+
hasTanStackQuery: projectInfo.hasTanStackQuery,
|
|
47778
47685
|
tailwindVersion: projectInfo.tailwindVersion,
|
|
47779
47686
|
zodVersion: projectInfo.zodVersion,
|
|
47780
47687
|
preactVersion: projectInfo.preactVersion,
|
|
@@ -47955,13 +47862,13 @@ const isDevVersion = (version) => version === "0.0.0" || version.includes("-");
|
|
|
47955
47862
|
* uploads source-map artifacts under, so stack frames symbolicate. Honors the
|
|
47956
47863
|
* standard `SENTRY_RELEASE` override.
|
|
47957
47864
|
*/
|
|
47958
|
-
const resolveSentryRelease = () => process.env.SENTRY_RELEASE || `react-doctor@0.8.1-dev.
|
|
47865
|
+
const resolveSentryRelease = () => process.env.SENTRY_RELEASE || `react-doctor@0.8.1-dev.e6a1557`;
|
|
47959
47866
|
/**
|
|
47960
47867
|
* Deployment environment shown in Sentry's environment filter. Defaults to
|
|
47961
47868
|
* `production` for tagged releases and `development` for dev/unbuilt versions,
|
|
47962
47869
|
* overridable via the standard `SENTRY_ENVIRONMENT` env var.
|
|
47963
47870
|
*/
|
|
47964
|
-
const resolveSentryEnvironment = () => process.env.SENTRY_ENVIRONMENT || (isDevVersion("0.8.1-dev.
|
|
47871
|
+
const resolveSentryEnvironment = () => process.env.SENTRY_ENVIRONMENT || (isDevVersion("0.8.1-dev.e6a1557") ? "development" : "production");
|
|
47965
47872
|
/**
|
|
47966
47873
|
* Performance-tracing sample rate in `[0, 1]`. Reads `SENTRY_TRACES_SAMPLE_RATE`
|
|
47967
47874
|
* (set to `0` to disable tracing) and falls back to
|
|
@@ -66641,4 +66548,4 @@ Promise.resolve().then(() => assertNoRemovedFlags(process.argv)).then(() => prog
|
|
|
66641
66548
|
export {};
|
|
66642
66549
|
|
|
66643
66550
|
//# sourceMappingURL=cli.js.map
|
|
66644
|
-
//# debugId=
|
|
66551
|
+
//# debugId=81bdc95e-12f2-565f-a05c-7b8a60a98f81
|
package/dist/index.d.ts
CHANGED
|
@@ -9563,9 +9563,6 @@ interface ProjectInfo {
|
|
|
9563
9563
|
hasRemotion?: boolean;
|
|
9564
9564
|
remotionVersion?: string | null;
|
|
9565
9565
|
remotionMajorVersion?: number | null;
|
|
9566
|
-
hasI18nLibrary?: boolean;
|
|
9567
|
-
tanstackQueryVersion?: string | null;
|
|
9568
|
-
styledComponentsVersion?: string | null;
|
|
9569
9566
|
/**
|
|
9570
9567
|
* The declared `valtio` version spec, or `null` when no package in the
|
|
9571
9568
|
* analyzed project declares Valtio. `useSnapshot` has kept the same
|
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]="
|
|
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]="6aa1c6e1-8fcc-50d4-a076-3e864425bdc5")}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";
|
|
@@ -33375,10 +33375,10 @@ const FALLBACK_TSCONFIG_FILENAMES = ["tsconfig.app.json", "tsconfig.build.json"]
|
|
|
33375
33375
|
const FRAMEWORK_PACKAGES = {
|
|
33376
33376
|
next: "nextjs",
|
|
33377
33377
|
"@tanstack/react-start": "tanstack-start",
|
|
33378
|
-
"@remix-run/react": "remix",
|
|
33379
|
-
gatsby: "gatsby",
|
|
33380
33378
|
vite: "vite",
|
|
33381
33379
|
"react-scripts": "cra",
|
|
33380
|
+
"@remix-run/react": "remix",
|
|
33381
|
+
gatsby: "gatsby",
|
|
33382
33382
|
expo: "expo",
|
|
33383
33383
|
"react-native": "react-native"
|
|
33384
33384
|
};
|
|
@@ -33905,6 +33905,19 @@ const getPreactVersion = (packageJson) => {
|
|
|
33905
33905
|
...packageJson.devDependencies
|
|
33906
33906
|
}.preact ?? null;
|
|
33907
33907
|
};
|
|
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
|
+
};
|
|
33908
33921
|
const resolveCatalogBackedDependencyVersion = ({ rootDirectory, rootPackageJson, packageName, version }) => {
|
|
33909
33922
|
if (version === null || !isCatalogReference(version)) return version;
|
|
33910
33923
|
const catalogName = extractCatalogName(version);
|
|
@@ -34107,55 +34120,6 @@ const listWorkspacePackages = (rootDirectory) => {
|
|
|
34107
34120
|
}
|
|
34108
34121
|
return packages;
|
|
34109
34122
|
};
|
|
34110
|
-
const getPreferredDependencyVersion = ({ packageJson, packageNames }) => {
|
|
34111
|
-
const allDependencies = {
|
|
34112
|
-
...packageJson.devDependencies,
|
|
34113
|
-
...packageJson.peerDependencies,
|
|
34114
|
-
...packageJson.dependencies
|
|
34115
|
-
};
|
|
34116
|
-
for (const packageName of packageNames) {
|
|
34117
|
-
const version = allDependencies[packageName];
|
|
34118
|
-
if (version !== void 0) return version;
|
|
34119
|
-
}
|
|
34120
|
-
return null;
|
|
34121
|
-
};
|
|
34122
|
-
const TANSTACK_REACT_QUERY_PACKAGES = ["@tanstack/react-query", "react-query"];
|
|
34123
|
-
const getTanStackQueryVersion = (packageJson) => {
|
|
34124
|
-
return getPreferredDependencyVersion({
|
|
34125
|
-
packageJson,
|
|
34126
|
-
packageNames: TANSTACK_REACT_QUERY_PACKAGES
|
|
34127
|
-
});
|
|
34128
|
-
};
|
|
34129
|
-
const STYLED_COMPONENTS_PACKAGES = ["styled-components"];
|
|
34130
|
-
const getStyledComponentsVersion = (packageJson) => {
|
|
34131
|
-
return getPreferredDependencyVersion({
|
|
34132
|
-
packageJson,
|
|
34133
|
-
packageNames: STYLED_COMPONENTS_PACKAGES
|
|
34134
|
-
});
|
|
34135
|
-
};
|
|
34136
|
-
const I18N_PACKAGES = [
|
|
34137
|
-
"i18next",
|
|
34138
|
-
"react-i18next",
|
|
34139
|
-
"next-i18next",
|
|
34140
|
-
"react-intl",
|
|
34141
|
-
"next-intl",
|
|
34142
|
-
"use-intl",
|
|
34143
|
-
"@formatjs/intl",
|
|
34144
|
-
"@lingui/core",
|
|
34145
|
-
"@lingui/react",
|
|
34146
|
-
"typesafe-i18n",
|
|
34147
|
-
"@tolgee/react",
|
|
34148
|
-
"react-intl-universal"
|
|
34149
|
-
];
|
|
34150
|
-
const hasI18nDependency = (packageJson) => {
|
|
34151
|
-
const allDependencies = {
|
|
34152
|
-
...packageJson.peerDependencies,
|
|
34153
|
-
...packageJson.dependencies,
|
|
34154
|
-
...packageJson.devDependencies,
|
|
34155
|
-
...packageJson.optionalDependencies
|
|
34156
|
-
};
|
|
34157
|
-
return I18N_PACKAGES.some((packageName) => allDependencies[packageName] !== void 0);
|
|
34158
|
-
};
|
|
34159
34123
|
const REANIMATED_DEPENDENCY_NAME = "react-native-reanimated";
|
|
34160
34124
|
const MOBX_REACT_PACKAGE_NAME = "mobx-react";
|
|
34161
34125
|
const MOBX_REACT_LITE_PACKAGE_NAME = "mobx-react-lite";
|
|
@@ -34190,14 +34154,6 @@ const shouldReplaceSupportedDependencyFact = (currentFact, nextFact, latestSuppo
|
|
|
34190
34154
|
if (nextMajor > latestSupportedMajor) return true;
|
|
34191
34155
|
return nextMajor < currentMajor;
|
|
34192
34156
|
};
|
|
34193
|
-
const shouldReplaceStyledComponentsVersion = (currentVersion, nextVersion) => {
|
|
34194
|
-
if (!currentVersion) return true;
|
|
34195
|
-
const currentMajor = getLowestDependencyMajor(currentVersion);
|
|
34196
|
-
const nextMajor = getLowestDependencyMajor(nextVersion);
|
|
34197
|
-
if (currentMajor === null) return nextMajor !== null && nextMajor < 6;
|
|
34198
|
-
if (nextMajor === null) return currentMajor >= 6;
|
|
34199
|
-
return nextMajor < currentMajor;
|
|
34200
|
-
};
|
|
34201
34157
|
const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, rootPackageJson) => {
|
|
34202
34158
|
if (facts.expo.version === null) {
|
|
34203
34159
|
const spec = getDependencySpec(packageJson, "expo");
|
|
@@ -34258,15 +34214,6 @@ const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, roo
|
|
|
34258
34214
|
const spec = getDependencySpec(packageJson, "valtio");
|
|
34259
34215
|
if (spec !== null) facts.valtioVersion = spec;
|
|
34260
34216
|
}
|
|
34261
|
-
facts.tanstackQueryVersion ??= getTanStackQueryVersion(packageJson);
|
|
34262
|
-
const styledComponentsVersion = resolveCatalogBackedDependencyVersion({
|
|
34263
|
-
rootDirectory: directory,
|
|
34264
|
-
rootPackageJson: packageJson,
|
|
34265
|
-
packageName: "styled-components",
|
|
34266
|
-
version: getStyledComponentsVersion(packageJson)
|
|
34267
|
-
});
|
|
34268
|
-
if (styledComponentsVersion && shouldReplaceStyledComponentsVersion(facts.styledComponentsVersion, styledComponentsVersion)) facts.styledComponentsVersion = styledComponentsVersion;
|
|
34269
|
-
facts.hasI18nLibrary = facts.hasI18nLibrary || hasI18nDependency(packageJson);
|
|
34270
34217
|
facts.hasReactNativeAwarePackage = facts.hasReactNativeAwarePackage || isPackageJsonReactNativeAware(packageJson);
|
|
34271
34218
|
facts.hasReanimatedAwarePackage = facts.hasReanimatedAwarePackage || isPackageJsonReanimatedAware(packageJson);
|
|
34272
34219
|
facts.hasSsrDependency = facts.hasSsrDependency || isPackageJsonSsrAware(packageJson);
|
|
@@ -34320,9 +34267,6 @@ const collectWorkspaceFacts = (rootDirectory, rootPackageJson, { collectReactGro
|
|
|
34320
34267
|
version: null,
|
|
34321
34268
|
sourceDirectory: null
|
|
34322
34269
|
},
|
|
34323
|
-
tanstackQueryVersion: null,
|
|
34324
|
-
styledComponentsVersion: null,
|
|
34325
|
-
hasI18nLibrary: false,
|
|
34326
34270
|
hasReactNativeAwarePackage: false,
|
|
34327
34271
|
hasReanimatedAwarePackage: false,
|
|
34328
34272
|
hasSsrDependency: false,
|
|
@@ -34582,9 +34526,6 @@ const discoverProjectWithoutPackageJson = (directory) => {
|
|
|
34582
34526
|
hasRemotion: false,
|
|
34583
34527
|
remotionVersion: null,
|
|
34584
34528
|
remotionMajorVersion: null,
|
|
34585
|
-
hasI18nLibrary: false,
|
|
34586
|
-
tanstackQueryVersion: null,
|
|
34587
|
-
styledComponentsVersion: null,
|
|
34588
34529
|
hasSsrDependency: false,
|
|
34589
34530
|
preactVersion: null,
|
|
34590
34531
|
preactMajorVersion: null,
|
|
@@ -34711,7 +34652,6 @@ const discoverProject = (directory) => {
|
|
|
34711
34652
|
});
|
|
34712
34653
|
const preactVersion = getPreactVersion(packageJson);
|
|
34713
34654
|
const remotionVersion = workspaceFacts.remotionVersion;
|
|
34714
|
-
const tanstackQueryVersion = getTanStackQueryVersion(packageJson) ?? workspaceFacts.tanstackQueryVersion;
|
|
34715
34655
|
const isPreES2023Target = hasTypeScript && detectPreES2023Target(directory);
|
|
34716
34656
|
const projectInfo = {
|
|
34717
34657
|
rootDirectory: directory,
|
|
@@ -34733,10 +34673,7 @@ const discoverProject = (directory) => {
|
|
|
34733
34673
|
hasTypeScript,
|
|
34734
34674
|
hasReactCompiler: detectReactCompiler(directory, packageJson),
|
|
34735
34675
|
hasReactCompilerLintPlugin: detectReactCompilerLintPlugin(directory, packageJson),
|
|
34736
|
-
hasTanStackQuery:
|
|
34737
|
-
hasI18nLibrary: workspaceFacts.hasI18nLibrary,
|
|
34738
|
-
tanstackQueryVersion,
|
|
34739
|
-
styledComponentsVersion: workspaceFacts.styledComponentsVersion,
|
|
34676
|
+
hasTanStackQuery: hasTanStackQuery(packageJson),
|
|
34740
34677
|
valtioVersion,
|
|
34741
34678
|
valtioMajorVersion: valtioVersion === null ? null : getLowestDependencyMajor(valtioVersion),
|
|
34742
34679
|
hasRemotion: workspaceFacts.hasRemotionDependency,
|
|
@@ -38032,7 +37969,6 @@ const buildCapabilities = (project) => {
|
|
|
38032
37969
|
if (CLIENT_ONLY_FRAMEWORKS.has(project.framework)) capabilities.add("client-only");
|
|
38033
37970
|
if (project.isStaticExport) capabilities.add("nextjs:static-export");
|
|
38034
37971
|
if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 15) capabilities.add("nextjs:15");
|
|
38035
|
-
if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 16) capabilities.add("nextjs:16");
|
|
38036
37972
|
addMajorLadder(capabilities, "react", project.reactMajorVersion, 17, 30);
|
|
38037
37973
|
if (project.reactMajorVersion !== null && project.reactMajorVersion >= 19 && isMajorMinorAtLeast(parseReactMajorMinor(project.reactVersion), {
|
|
38038
37974
|
major: 19,
|
|
@@ -38056,13 +37992,7 @@ const buildCapabilities = (project) => {
|
|
|
38056
37992
|
if (project.zustandMajorVersion !== void 0 && project.zustandMajorVersion !== null && project.zustandMajorVersion >= 1 && project.zustandMajorVersion <= 5) addMajorLadder(capabilities, "zustand", project.zustandMajorVersion, 1, 5);
|
|
38057
37993
|
if (project.isPreES2023Target) capabilities.add("pre-es2023");
|
|
38058
37994
|
if (project.hasReactCompiler) capabilities.add("react-compiler");
|
|
38059
|
-
if (
|
|
38060
|
-
if (project.styledComponentsVersion) {
|
|
38061
|
-
capabilities.add("styled-components");
|
|
38062
|
-
const styledComponentsMajor = getLowestDependencyMajor(project.styledComponentsVersion);
|
|
38063
|
-
if (styledComponentsMajor !== null && styledComponentsMajor >= 6) capabilities.add("styled-components:6");
|
|
38064
|
-
}
|
|
38065
|
-
if (project.hasI18nLibrary) capabilities.add("i18n");
|
|
37995
|
+
if (project.hasTanStackQuery) capabilities.add("tanstack-query");
|
|
38066
37996
|
if (project.valtioVersion !== null) capabilities.add("valtio");
|
|
38067
37997
|
addMajorLadder(capabilities, "valtio", project.valtioMajorVersion, 1, 10);
|
|
38068
37998
|
if (project.hasRemotion) {
|
|
@@ -40337,19 +40267,6 @@ const createSidecarLintCache = (cacheDirectory, rulesetHash) => {
|
|
|
40337
40267
|
}
|
|
40338
40268
|
};
|
|
40339
40269
|
};
|
|
40340
|
-
const fingerprintCacheByFilePath = /* @__PURE__ */ new Map();
|
|
40341
|
-
const fingerprintFileContents = (filePath, fingerprintLength) => {
|
|
40342
|
-
const fileStats = NFS.statSync(filePath, { bigint: true });
|
|
40343
|
-
const cachedFingerprint = fingerprintCacheByFilePath.get(filePath);
|
|
40344
|
-
if (cachedFingerprint?.modifiedTimeNanoseconds === fileStats.mtimeNs && cachedFingerprint.sizeBytes === fileStats.size) return cachedFingerprint.fingerprint;
|
|
40345
|
-
const fingerprint = crypto.createHash("sha256").update(NFS.readFileSync(filePath)).digest("hex").slice(0, fingerprintLength);
|
|
40346
|
-
fingerprintCacheByFilePath.set(filePath, {
|
|
40347
|
-
fingerprint,
|
|
40348
|
-
modifiedTimeNanoseconds: fileStats.mtimeNs,
|
|
40349
|
-
sizeBytes: fileStats.size
|
|
40350
|
-
});
|
|
40351
|
-
return fingerprint;
|
|
40352
|
-
};
|
|
40353
40270
|
const bundledRequire = createRequire(import.meta.url);
|
|
40354
40271
|
const childNodeVersionByBinaryPath = /* @__PURE__ */ new Map();
|
|
40355
40272
|
const resolveChildNodeVersion = (nodeBinaryPath) => {
|
|
@@ -40373,13 +40290,6 @@ const TOOLCHAIN_PACKAGE_SPECIFIERS = [
|
|
|
40373
40290
|
"oxlint-plugin-react-doctor/package.json",
|
|
40374
40291
|
"eslint-plugin-react-hooks/package.json"
|
|
40375
40292
|
];
|
|
40376
|
-
const resolvePluginFingerprint = () => {
|
|
40377
|
-
try {
|
|
40378
|
-
return fingerprintFileContents(bundledRequire.resolve("oxlint-plugin-react-doctor"), 16);
|
|
40379
|
-
} catch {
|
|
40380
|
-
return "unresolved";
|
|
40381
|
-
}
|
|
40382
|
-
};
|
|
40383
40293
|
const resolveOxlintToolchainVersions = (nodeBinaryPath = process.execPath) => {
|
|
40384
40294
|
const versions = [`node=${resolveChildNodeVersion(nodeBinaryPath)}`];
|
|
40385
40295
|
for (const specifier of TOOLCHAIN_PACKAGE_SPECIFIERS) try {
|
|
@@ -40389,7 +40299,6 @@ const resolveOxlintToolchainVersions = (nodeBinaryPath = process.execPath) => {
|
|
|
40389
40299
|
} catch {
|
|
40390
40300
|
versions.push(`${specifier}=missing`);
|
|
40391
40301
|
}
|
|
40392
|
-
versions.push(`oxlint-plugin-react-doctor#fingerprint=${resolvePluginFingerprint()}`);
|
|
40393
40302
|
return versions;
|
|
40394
40303
|
};
|
|
40395
40304
|
const esmRequire = createRequire(import.meta.url);
|
|
@@ -44073,4 +43982,4 @@ const toJsonReport = (result, options) => buildJsonReport({
|
|
|
44073
43982
|
export { AmbiguousProjectError, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, ProjectNotFoundError, ReactDoctorError, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, hasReactRuntime, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
|
|
44074
43983
|
|
|
44075
43984
|
//# sourceMappingURL=index.js.map
|
|
44076
|
-
//# debugId=
|
|
43985
|
+
//# debugId=6aa1c6e1-8fcc-50d4-a076-3e864425bdc5
|
package/dist/lsp.js
CHANGED
|
@@ -33427,10 +33427,10 @@ const FALLBACK_TSCONFIG_FILENAMES = ["tsconfig.app.json", "tsconfig.build.json"]
|
|
|
33427
33427
|
const FRAMEWORK_PACKAGES = {
|
|
33428
33428
|
next: "nextjs",
|
|
33429
33429
|
"@tanstack/react-start": "tanstack-start",
|
|
33430
|
-
"@remix-run/react": "remix",
|
|
33431
|
-
gatsby: "gatsby",
|
|
33432
33430
|
vite: "vite",
|
|
33433
33431
|
"react-scripts": "cra",
|
|
33432
|
+
"@remix-run/react": "remix",
|
|
33433
|
+
gatsby: "gatsby",
|
|
33434
33434
|
expo: "expo",
|
|
33435
33435
|
"react-native": "react-native"
|
|
33436
33436
|
};
|
|
@@ -33957,6 +33957,19 @@ const getPreactVersion = (packageJson) => {
|
|
|
33957
33957
|
...packageJson.devDependencies
|
|
33958
33958
|
}.preact ?? null;
|
|
33959
33959
|
};
|
|
33960
|
+
const TANSTACK_QUERY_PACKAGES = new Set([
|
|
33961
|
+
"@tanstack/react-query",
|
|
33962
|
+
"@tanstack/query-core",
|
|
33963
|
+
"react-query"
|
|
33964
|
+
]);
|
|
33965
|
+
const hasTanStackQuery = (packageJson) => {
|
|
33966
|
+
const allDependencies = {
|
|
33967
|
+
...packageJson.peerDependencies,
|
|
33968
|
+
...packageJson.dependencies,
|
|
33969
|
+
...packageJson.devDependencies
|
|
33970
|
+
};
|
|
33971
|
+
return Object.keys(allDependencies).some((packageName) => TANSTACK_QUERY_PACKAGES.has(packageName));
|
|
33972
|
+
};
|
|
33960
33973
|
const resolveCatalogBackedDependencyVersion = ({ rootDirectory, rootPackageJson, packageName, version }) => {
|
|
33961
33974
|
if (version === null || !isCatalogReference(version)) return version;
|
|
33962
33975
|
const catalogName = extractCatalogName(version);
|
|
@@ -34159,55 +34172,6 @@ const listWorkspacePackages = (rootDirectory) => {
|
|
|
34159
34172
|
}
|
|
34160
34173
|
return packages;
|
|
34161
34174
|
};
|
|
34162
|
-
const getPreferredDependencyVersion = ({ packageJson, packageNames }) => {
|
|
34163
|
-
const allDependencies = {
|
|
34164
|
-
...packageJson.devDependencies,
|
|
34165
|
-
...packageJson.peerDependencies,
|
|
34166
|
-
...packageJson.dependencies
|
|
34167
|
-
};
|
|
34168
|
-
for (const packageName of packageNames) {
|
|
34169
|
-
const version = allDependencies[packageName];
|
|
34170
|
-
if (version !== void 0) return version;
|
|
34171
|
-
}
|
|
34172
|
-
return null;
|
|
34173
|
-
};
|
|
34174
|
-
const TANSTACK_REACT_QUERY_PACKAGES = ["@tanstack/react-query", "react-query"];
|
|
34175
|
-
const getTanStackQueryVersion = (packageJson) => {
|
|
34176
|
-
return getPreferredDependencyVersion({
|
|
34177
|
-
packageJson,
|
|
34178
|
-
packageNames: TANSTACK_REACT_QUERY_PACKAGES
|
|
34179
|
-
});
|
|
34180
|
-
};
|
|
34181
|
-
const STYLED_COMPONENTS_PACKAGES = ["styled-components"];
|
|
34182
|
-
const getStyledComponentsVersion = (packageJson) => {
|
|
34183
|
-
return getPreferredDependencyVersion({
|
|
34184
|
-
packageJson,
|
|
34185
|
-
packageNames: STYLED_COMPONENTS_PACKAGES
|
|
34186
|
-
});
|
|
34187
|
-
};
|
|
34188
|
-
const I18N_PACKAGES = [
|
|
34189
|
-
"i18next",
|
|
34190
|
-
"react-i18next",
|
|
34191
|
-
"next-i18next",
|
|
34192
|
-
"react-intl",
|
|
34193
|
-
"next-intl",
|
|
34194
|
-
"use-intl",
|
|
34195
|
-
"@formatjs/intl",
|
|
34196
|
-
"@lingui/core",
|
|
34197
|
-
"@lingui/react",
|
|
34198
|
-
"typesafe-i18n",
|
|
34199
|
-
"@tolgee/react",
|
|
34200
|
-
"react-intl-universal"
|
|
34201
|
-
];
|
|
34202
|
-
const hasI18nDependency = (packageJson) => {
|
|
34203
|
-
const allDependencies = {
|
|
34204
|
-
...packageJson.peerDependencies,
|
|
34205
|
-
...packageJson.dependencies,
|
|
34206
|
-
...packageJson.devDependencies,
|
|
34207
|
-
...packageJson.optionalDependencies
|
|
34208
|
-
};
|
|
34209
|
-
return I18N_PACKAGES.some((packageName) => allDependencies[packageName] !== void 0);
|
|
34210
|
-
};
|
|
34211
34175
|
const REANIMATED_DEPENDENCY_NAME = "react-native-reanimated";
|
|
34212
34176
|
const MOBX_REACT_PACKAGE_NAME = "mobx-react";
|
|
34213
34177
|
const MOBX_REACT_LITE_PACKAGE_NAME = "mobx-react-lite";
|
|
@@ -34242,14 +34206,6 @@ const shouldReplaceSupportedDependencyFact = (currentFact, nextFact, latestSuppo
|
|
|
34242
34206
|
if (nextMajor > latestSupportedMajor) return true;
|
|
34243
34207
|
return nextMajor < currentMajor;
|
|
34244
34208
|
};
|
|
34245
|
-
const shouldReplaceStyledComponentsVersion = (currentVersion, nextVersion) => {
|
|
34246
|
-
if (!currentVersion) return true;
|
|
34247
|
-
const currentMajor = getLowestDependencyMajor(currentVersion);
|
|
34248
|
-
const nextMajor = getLowestDependencyMajor(nextVersion);
|
|
34249
|
-
if (currentMajor === null) return nextMajor !== null && nextMajor < 6;
|
|
34250
|
-
if (nextMajor === null) return currentMajor >= 6;
|
|
34251
|
-
return nextMajor < currentMajor;
|
|
34252
|
-
};
|
|
34253
34209
|
const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, rootPackageJson) => {
|
|
34254
34210
|
if (facts.expo.version === null) {
|
|
34255
34211
|
const spec = getDependencySpec(packageJson, "expo");
|
|
@@ -34310,15 +34266,6 @@ const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, roo
|
|
|
34310
34266
|
const spec = getDependencySpec(packageJson, "valtio");
|
|
34311
34267
|
if (spec !== null) facts.valtioVersion = spec;
|
|
34312
34268
|
}
|
|
34313
|
-
facts.tanstackQueryVersion ??= getTanStackQueryVersion(packageJson);
|
|
34314
|
-
const styledComponentsVersion = resolveCatalogBackedDependencyVersion({
|
|
34315
|
-
rootDirectory: directory,
|
|
34316
|
-
rootPackageJson: packageJson,
|
|
34317
|
-
packageName: "styled-components",
|
|
34318
|
-
version: getStyledComponentsVersion(packageJson)
|
|
34319
|
-
});
|
|
34320
|
-
if (styledComponentsVersion && shouldReplaceStyledComponentsVersion(facts.styledComponentsVersion, styledComponentsVersion)) facts.styledComponentsVersion = styledComponentsVersion;
|
|
34321
|
-
facts.hasI18nLibrary = facts.hasI18nLibrary || hasI18nDependency(packageJson);
|
|
34322
34269
|
facts.hasReactNativeAwarePackage = facts.hasReactNativeAwarePackage || isPackageJsonReactNativeAware(packageJson);
|
|
34323
34270
|
facts.hasReanimatedAwarePackage = facts.hasReanimatedAwarePackage || isPackageJsonReanimatedAware(packageJson);
|
|
34324
34271
|
facts.hasSsrDependency = facts.hasSsrDependency || isPackageJsonSsrAware(packageJson);
|
|
@@ -34372,9 +34319,6 @@ const collectWorkspaceFacts = (rootDirectory, rootPackageJson, { collectReactGro
|
|
|
34372
34319
|
version: null,
|
|
34373
34320
|
sourceDirectory: null
|
|
34374
34321
|
},
|
|
34375
|
-
tanstackQueryVersion: null,
|
|
34376
|
-
styledComponentsVersion: null,
|
|
34377
|
-
hasI18nLibrary: false,
|
|
34378
34322
|
hasReactNativeAwarePackage: false,
|
|
34379
34323
|
hasReanimatedAwarePackage: false,
|
|
34380
34324
|
hasSsrDependency: false,
|
|
@@ -34634,9 +34578,6 @@ const discoverProjectWithoutPackageJson = (directory) => {
|
|
|
34634
34578
|
hasRemotion: false,
|
|
34635
34579
|
remotionVersion: null,
|
|
34636
34580
|
remotionMajorVersion: null,
|
|
34637
|
-
hasI18nLibrary: false,
|
|
34638
|
-
tanstackQueryVersion: null,
|
|
34639
|
-
styledComponentsVersion: null,
|
|
34640
34581
|
hasSsrDependency: false,
|
|
34641
34582
|
preactVersion: null,
|
|
34642
34583
|
preactMajorVersion: null,
|
|
@@ -34763,7 +34704,6 @@ const discoverProject = (directory) => {
|
|
|
34763
34704
|
});
|
|
34764
34705
|
const preactVersion = getPreactVersion(packageJson);
|
|
34765
34706
|
const remotionVersion = workspaceFacts.remotionVersion;
|
|
34766
|
-
const tanstackQueryVersion = getTanStackQueryVersion(packageJson) ?? workspaceFacts.tanstackQueryVersion;
|
|
34767
34707
|
const isPreES2023Target = hasTypeScript && detectPreES2023Target(directory);
|
|
34768
34708
|
const projectInfo = {
|
|
34769
34709
|
rootDirectory: directory,
|
|
@@ -34785,10 +34725,7 @@ const discoverProject = (directory) => {
|
|
|
34785
34725
|
hasTypeScript,
|
|
34786
34726
|
hasReactCompiler: detectReactCompiler(directory, packageJson),
|
|
34787
34727
|
hasReactCompilerLintPlugin: detectReactCompilerLintPlugin(directory, packageJson),
|
|
34788
|
-
hasTanStackQuery:
|
|
34789
|
-
hasI18nLibrary: workspaceFacts.hasI18nLibrary,
|
|
34790
|
-
tanstackQueryVersion,
|
|
34791
|
-
styledComponentsVersion: workspaceFacts.styledComponentsVersion,
|
|
34728
|
+
hasTanStackQuery: hasTanStackQuery(packageJson),
|
|
34792
34729
|
valtioVersion,
|
|
34793
34730
|
valtioMajorVersion: valtioVersion === null ? null : getLowestDependencyMajor(valtioVersion),
|
|
34794
34731
|
hasRemotion: workspaceFacts.hasRemotionDependency,
|
|
@@ -38010,7 +37947,6 @@ const buildCapabilities = (project) => {
|
|
|
38010
37947
|
if (CLIENT_ONLY_FRAMEWORKS.has(project.framework)) capabilities.add("client-only");
|
|
38011
37948
|
if (project.isStaticExport) capabilities.add("nextjs:static-export");
|
|
38012
37949
|
if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 15) capabilities.add("nextjs:15");
|
|
38013
|
-
if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 16) capabilities.add("nextjs:16");
|
|
38014
37950
|
addMajorLadder(capabilities, "react", project.reactMajorVersion, 17, 30);
|
|
38015
37951
|
if (project.reactMajorVersion !== null && project.reactMajorVersion >= 19 && isMajorMinorAtLeast(parseReactMajorMinor(project.reactVersion), {
|
|
38016
37952
|
major: 19,
|
|
@@ -38034,13 +37970,7 @@ const buildCapabilities = (project) => {
|
|
|
38034
37970
|
if (project.zustandMajorVersion !== void 0 && project.zustandMajorVersion !== null && project.zustandMajorVersion >= 1 && project.zustandMajorVersion <= 5) addMajorLadder(capabilities, "zustand", project.zustandMajorVersion, 1, 5);
|
|
38035
37971
|
if (project.isPreES2023Target) capabilities.add("pre-es2023");
|
|
38036
37972
|
if (project.hasReactCompiler) capabilities.add("react-compiler");
|
|
38037
|
-
if (
|
|
38038
|
-
if (project.styledComponentsVersion) {
|
|
38039
|
-
capabilities.add("styled-components");
|
|
38040
|
-
const styledComponentsMajor = getLowestDependencyMajor(project.styledComponentsVersion);
|
|
38041
|
-
if (styledComponentsMajor !== null && styledComponentsMajor >= 6) capabilities.add("styled-components:6");
|
|
38042
|
-
}
|
|
38043
|
-
if (project.hasI18nLibrary) capabilities.add("i18n");
|
|
37973
|
+
if (project.hasTanStackQuery) capabilities.add("tanstack-query");
|
|
38044
37974
|
if (project.valtioVersion !== null) capabilities.add("valtio");
|
|
38045
37975
|
addMajorLadder(capabilities, "valtio", project.valtioMajorVersion, 1, 10);
|
|
38046
37976
|
if (project.hasRemotion) {
|
|
@@ -40315,19 +40245,6 @@ const createSidecarLintCache = (cacheDirectory, rulesetHash) => {
|
|
|
40315
40245
|
}
|
|
40316
40246
|
};
|
|
40317
40247
|
};
|
|
40318
|
-
const fingerprintCacheByFilePath = /* @__PURE__ */ new Map();
|
|
40319
|
-
const fingerprintFileContents = (filePath, fingerprintLength) => {
|
|
40320
|
-
const fileStats = NFS.statSync(filePath, { bigint: true });
|
|
40321
|
-
const cachedFingerprint = fingerprintCacheByFilePath.get(filePath);
|
|
40322
|
-
if (cachedFingerprint?.modifiedTimeNanoseconds === fileStats.mtimeNs && cachedFingerprint.sizeBytes === fileStats.size) return cachedFingerprint.fingerprint;
|
|
40323
|
-
const fingerprint = crypto.createHash("sha256").update(NFS.readFileSync(filePath)).digest("hex").slice(0, fingerprintLength);
|
|
40324
|
-
fingerprintCacheByFilePath.set(filePath, {
|
|
40325
|
-
fingerprint,
|
|
40326
|
-
modifiedTimeNanoseconds: fileStats.mtimeNs,
|
|
40327
|
-
sizeBytes: fileStats.size
|
|
40328
|
-
});
|
|
40329
|
-
return fingerprint;
|
|
40330
|
-
};
|
|
40331
40248
|
const bundledRequire = createRequire(import.meta.url);
|
|
40332
40249
|
const childNodeVersionByBinaryPath = /* @__PURE__ */ new Map();
|
|
40333
40250
|
const resolveChildNodeVersion = (nodeBinaryPath) => {
|
|
@@ -40351,13 +40268,6 @@ const TOOLCHAIN_PACKAGE_SPECIFIERS = [
|
|
|
40351
40268
|
"oxlint-plugin-react-doctor/package.json",
|
|
40352
40269
|
"eslint-plugin-react-hooks/package.json"
|
|
40353
40270
|
];
|
|
40354
|
-
const resolvePluginFingerprint = () => {
|
|
40355
|
-
try {
|
|
40356
|
-
return fingerprintFileContents(bundledRequire.resolve("oxlint-plugin-react-doctor"), 16);
|
|
40357
|
-
} catch {
|
|
40358
|
-
return "unresolved";
|
|
40359
|
-
}
|
|
40360
|
-
};
|
|
40361
40271
|
const resolveOxlintToolchainVersions = (nodeBinaryPath = process.execPath) => {
|
|
40362
40272
|
const versions = [`node=${resolveChildNodeVersion(nodeBinaryPath)}`];
|
|
40363
40273
|
for (const specifier of TOOLCHAIN_PACKAGE_SPECIFIERS) try {
|
|
@@ -40367,7 +40277,6 @@ const resolveOxlintToolchainVersions = (nodeBinaryPath = process.execPath) => {
|
|
|
40367
40277
|
} catch {
|
|
40368
40278
|
versions.push(`${specifier}=missing`);
|
|
40369
40279
|
}
|
|
40370
|
-
versions.push(`oxlint-plugin-react-doctor#fingerprint=${resolvePluginFingerprint()}`);
|
|
40371
40280
|
return versions;
|
|
40372
40281
|
};
|
|
40373
40282
|
const esmRequire = createRequire(import.meta.url);
|
|
@@ -45693,5 +45602,5 @@ const startLanguageServer = () => {
|
|
|
45693
45602
|
};
|
|
45694
45603
|
//#endregion
|
|
45695
45604
|
export { startLanguageServer };
|
|
45696
|
-
!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]="
|
|
45697
|
-
//# debugId=
|
|
45605
|
+
!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]="f2369b82-a22a-50e5-b71b-2ceb30eaee9f")}catch(e){}}();
|
|
45606
|
+
//# debugId=f2369b82-a22a-50e5-b71b-2ceb30eaee9f
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-doctor",
|
|
3
|
-
"version": "0.8.1-dev.
|
|
3
|
+
"version": "0.8.1-dev.e6a1557",
|
|
4
4
|
"description": "Your agent writes bad React. This catches it",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"accessibility",
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"vscode-languageserver-textdocument": "^1.0.12",
|
|
66
66
|
"vscode-uri": "^3.1.0",
|
|
67
67
|
"yaml": "^2.9.0",
|
|
68
|
-
"
|
|
69
|
-
"
|
|
68
|
+
"oxlint-plugin-react-doctor": "0.8.1-dev.e6a1557",
|
|
69
|
+
"deslop-js": "0.8.1"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@types/babel__code-frame": "^7.27.0",
|
|
@@ -74,9 +74,9 @@
|
|
|
74
74
|
"@xterm/headless": "^6.0.0",
|
|
75
75
|
"commander": "^14.0.3",
|
|
76
76
|
"ora": "^9.4.0",
|
|
77
|
+
"@react-doctor/core": "0.8.1",
|
|
77
78
|
"@react-doctor/api": "0.8.1",
|
|
78
|
-
"@react-doctor/language-server": "0.8.1"
|
|
79
|
-
"@react-doctor/core": "0.8.1"
|
|
79
|
+
"@react-doctor/language-server": "0.8.1"
|
|
80
80
|
},
|
|
81
81
|
"engines": {
|
|
82
82
|
"node": "^20.19.0 || >=22.13.0"
|