react-doctor 0.8.2 → 0.8.3
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 +3 -21
- package/dist/cli.js +6 -6
- package/dist/index.js +3 -3
- package/dist/lsp.js +4 -4
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -27,17 +27,7 @@ npx react-doctor@latest
|
|
|
27
27
|
|
|
28
28
|
https://github.com/user-attachments/assets/07cc88d9-9589-44c3-aa73-5d603cb1c570
|
|
29
29
|
|
|
30
|
-
### 2.
|
|
31
|
-
|
|
32
|
-
Use the design command when you only want UI composition, typography, interaction, accessibility, and motion findings:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
npx react-doctor@latest design
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
This activates the complete design rule family, including focused rules that stay opt-in during a general health scan, and skips unrelated dead-code, supply-chain, custom-plugin, and health-score passes. It accepts the normal scan flags, including `--scope`, `--project`, `--verbose`, and `--json`.
|
|
39
|
-
|
|
40
|
-
### 3. Install for agents
|
|
30
|
+
### 2. Install for agents
|
|
41
31
|
|
|
42
32
|
Once you have an audit, you can install the skill for your coding agent to learn from the issues and fix them in the future.
|
|
43
33
|
|
|
@@ -47,7 +37,7 @@ npx react-doctor@latest install
|
|
|
47
37
|
|
|
48
38
|
Works with Claude Code, Cursor, Codex, OpenCode, and many more.
|
|
49
39
|
|
|
50
|
-
###
|
|
40
|
+
### 3. Run in CI
|
|
51
41
|
|
|
52
42
|
React Doctor reviews every pull request and reports only the issues your change introduced, not your existing backlog. Set it up with one command:
|
|
53
43
|
|
|
@@ -59,20 +49,12 @@ This adds the workflow, scans every pull request, and posts a summary comment. C
|
|
|
59
49
|
|
|
60
50
|
[CI docs →](https://react.doctor/ci)
|
|
61
51
|
|
|
62
|
-
###
|
|
52
|
+
### 4. Configure rules
|
|
63
53
|
|
|
64
54
|
You can configure which rules to run and how to run them in `doctor.config.ts`.
|
|
65
55
|
|
|
66
56
|
[Learn more →](https://react.doctor/docs/configuration/config-files)
|
|
67
57
|
|
|
68
|
-
### 6. Consume JSON
|
|
69
|
-
|
|
70
|
-
Use `--json` for stdout or `--json-out <path>` for a file. The default
|
|
71
|
-
`schemaVersion: 3` report includes deterministic diagnostic IDs and exact
|
|
72
|
-
per-project scan coverage.
|
|
73
|
-
|
|
74
|
-
[JSON report contract →](./docs/json-report.md)
|
|
75
|
-
|
|
76
58
|
## Telemetry
|
|
77
59
|
|
|
78
60
|
The CLI reports crashes, basic run traces, and anonymous usage counters to [Sentry](https://sentry.io/) to help us fix bugs and prioritize work.
|
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]="0dac14aa-8d32-5d22-8e5e-1d8d793e05c0")}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";
|
|
@@ -64979,7 +64979,7 @@ const SOCKET_FREE_USER_AGENT = "react-doctor-supply-chain";
|
|
|
64979
64979
|
const FILE_LINT_CACHE_FILENAME = "file-lint-cache.json";
|
|
64980
64980
|
const FILE_LINT_CACHE_MAX_FILE_COUNT = 5e4;
|
|
64981
64981
|
const SIDECAR_LINT_CACHE_FILENAME = "sidecar-lint-cache.json";
|
|
64982
|
-
const CORE_PACKAGE_VERSION = "0.8.
|
|
64982
|
+
const CORE_PACKAGE_VERSION = "0.8.3";
|
|
64983
64983
|
const DEAD_CODE_CACHE_FILENAME = "dead-code-cache.json";
|
|
64984
64984
|
const DEAD_CODE_SUMMARY_CACHE_FILENAME = "dead-code-summaries.json";
|
|
64985
64985
|
const SUPPLY_CHAIN_PLUGIN = "socket";
|
|
@@ -77391,7 +77391,7 @@ const makeNoopConsole = () => ({
|
|
|
77391
77391
|
});
|
|
77392
77392
|
//#endregion
|
|
77393
77393
|
//#region src/cli/utils/version.ts
|
|
77394
|
-
const VERSION = "0.8.
|
|
77394
|
+
const VERSION = "0.8.3";
|
|
77395
77395
|
//#endregion
|
|
77396
77396
|
//#region src/cli/utils/json-mode.ts
|
|
77397
77397
|
let context = null;
|
|
@@ -77749,13 +77749,13 @@ const isDevVersion = (version) => version === "0.0.0" || version.includes("-");
|
|
|
77749
77749
|
* uploads source-map artifacts under, so stack frames symbolicate. Honors the
|
|
77750
77750
|
* standard `SENTRY_RELEASE` override.
|
|
77751
77751
|
*/
|
|
77752
|
-
const resolveSentryRelease = () => process.env.SENTRY_RELEASE || `react-doctor@0.8.
|
|
77752
|
+
const resolveSentryRelease = () => process.env.SENTRY_RELEASE || `react-doctor@0.8.3`;
|
|
77753
77753
|
/**
|
|
77754
77754
|
* Deployment environment shown in Sentry's environment filter. Defaults to
|
|
77755
77755
|
* `production` for tagged releases and `development` for dev/unbuilt versions,
|
|
77756
77756
|
* overridable via the standard `SENTRY_ENVIRONMENT` env var.
|
|
77757
77757
|
*/
|
|
77758
|
-
const resolveSentryEnvironment = () => process.env.SENTRY_ENVIRONMENT || (isDevVersion("0.8.
|
|
77758
|
+
const resolveSentryEnvironment = () => process.env.SENTRY_ENVIRONMENT || (isDevVersion("0.8.3") ? "development" : "production");
|
|
77759
77759
|
/**
|
|
77760
77760
|
* Performance-tracing sample rate in `[0, 1]`. Reads `SENTRY_TRACES_SAMPLE_RATE`
|
|
77761
77761
|
* (set to `0` to disable tracing) and falls back to
|
|
@@ -96476,4 +96476,4 @@ Promise.resolve().then(() => assertNoRemovedFlags(process.argv)).then(() => prog
|
|
|
96476
96476
|
export {};
|
|
96477
96477
|
|
|
96478
96478
|
//# sourceMappingURL=cli.js.map
|
|
96479
|
-
//# debugId=
|
|
96479
|
+
//# debugId=0dac14aa-8d32-5d22-8e5e-1d8d793e05c0
|
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]="7220ef23-bb78-5d51-b8a0-e8a54b69181e")}catch(e){}}();
|
|
3
3
|
import { i as __toESM$1, r as __require, t as __commonJSMin$1 } from "./chunk-ChKA3wi6.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";
|
|
@@ -61777,7 +61777,7 @@ const SOCKET_FREE_USER_AGENT = "react-doctor-supply-chain";
|
|
|
61777
61777
|
const FILE_LINT_CACHE_FILENAME = "file-lint-cache.json";
|
|
61778
61778
|
const FILE_LINT_CACHE_MAX_FILE_COUNT = 5e4;
|
|
61779
61779
|
const SIDECAR_LINT_CACHE_FILENAME = "sidecar-lint-cache.json";
|
|
61780
|
-
const CORE_PACKAGE_VERSION = "0.8.
|
|
61780
|
+
const CORE_PACKAGE_VERSION = "0.8.3";
|
|
61781
61781
|
const DEAD_CODE_CACHE_FILENAME = "dead-code-cache.json";
|
|
61782
61782
|
const DEAD_CODE_SUMMARY_CACHE_FILENAME = "dead-code-summaries.json";
|
|
61783
61783
|
const SUPPLY_CHAIN_PLUGIN = "socket";
|
|
@@ -73867,4 +73867,4 @@ const toJsonReport = (result, options) => buildJsonReport({
|
|
|
73867
73867
|
export { AmbiguousProjectError, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, ProjectNotFoundError, ReactDoctorError, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, hasReactRuntime, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
|
|
73868
73868
|
|
|
73869
73869
|
//# sourceMappingURL=index.js.map
|
|
73870
|
-
//# debugId=
|
|
73870
|
+
//# debugId=7220ef23-bb78-5d51-b8a0-e8a54b69181e
|
package/dist/lsp.js
CHANGED
|
@@ -61830,7 +61830,7 @@ const SOCKET_FREE_USER_AGENT = "react-doctor-supply-chain";
|
|
|
61830
61830
|
const FILE_LINT_CACHE_FILENAME = "file-lint-cache.json";
|
|
61831
61831
|
const FILE_LINT_CACHE_MAX_FILE_COUNT = 5e4;
|
|
61832
61832
|
const SIDECAR_LINT_CACHE_FILENAME = "sidecar-lint-cache.json";
|
|
61833
|
-
const CORE_PACKAGE_VERSION = "0.8.
|
|
61833
|
+
const CORE_PACKAGE_VERSION = "0.8.3";
|
|
61834
61834
|
const DEAD_CODE_CACHE_FILENAME = "dead-code-cache.json";
|
|
61835
61835
|
const DEAD_CODE_SUMMARY_CACHE_FILENAME = "dead-code-summaries.json";
|
|
61836
61836
|
const SUPPLY_CHAIN_PLUGIN = "socket";
|
|
@@ -73458,7 +73458,7 @@ const computeConfigFingerprint = (projectDirectory, version) => {
|
|
|
73458
73458
|
/** Display name used in client-facing messages and progress titles. */
|
|
73459
73459
|
const SERVER_DISPLAY_NAME = "React Doctor";
|
|
73460
73460
|
/** Server version reported in `serverInfo`; injected at build, `dev` from source. */
|
|
73461
|
-
const SERVER_VERSION = "0.8.
|
|
73461
|
+
const SERVER_VERSION = "0.8.3";
|
|
73462
73462
|
/** `Diagnostic.source` shown next to every published diagnostic. */
|
|
73463
73463
|
const DIAGNOSTIC_SOURCE = "react-doctor";
|
|
73464
73464
|
/**
|
|
@@ -75488,5 +75488,5 @@ const startLanguageServer = () => {
|
|
|
75488
75488
|
};
|
|
75489
75489
|
//#endregion
|
|
75490
75490
|
export { startLanguageServer };
|
|
75491
|
-
!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]="
|
|
75492
|
-
//# debugId=
|
|
75491
|
+
!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]="7b9f03d7-bc77-5d7b-8b09-8ec7a5264956")}catch(e){}}();
|
|
75492
|
+
//# debugId=7b9f03d7-bc77-5d7b-8b09-8ec7a5264956
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-doctor",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
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
|
-
"deslop-js": "0.8.
|
|
69
|
-
"oxlint-plugin-react-doctor": "0.8.
|
|
68
|
+
"deslop-js": "0.8.3",
|
|
69
|
+
"oxlint-plugin-react-doctor": "0.8.3"
|
|
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/api": "0.8.
|
|
78
|
-
"@react-doctor/core": "0.8.
|
|
79
|
-
"@react-doctor/language-server": "0.8.
|
|
77
|
+
"@react-doctor/api": "0.8.3",
|
|
78
|
+
"@react-doctor/core": "0.8.3",
|
|
79
|
+
"@react-doctor/language-server": "0.8.3"
|
|
80
80
|
},
|
|
81
81
|
"engines": {
|
|
82
82
|
"node": "^20.19.0 || >=22.13.0"
|