mcp-react-toolkit 1.0.0 → 1.2.0
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 +146 -42
- package/package.json +13 -5
- package/server.json +20 -0
- package/tools/accessibility-checker/build/index.js +9 -5
- package/tools/accessibility-checker/build/index.js.map +1 -1
- package/tools/accessibility-checker/build/rules.d.ts.map +1 -1
- package/tools/accessibility-checker/build/rules.js +325 -94
- package/tools/accessibility-checker/build/rules.js.map +1 -1
- package/tools/code-modernizer/build/tools/01-convert-to-typescript.d.ts.map +1 -1
- package/tools/code-modernizer/build/tools/01-convert-to-typescript.js +65 -50
- package/tools/code-modernizer/build/tools/01-convert-to-typescript.js.map +1 -1
- package/tools/code-modernizer/build/types.d.ts +1 -0
- package/tools/code-modernizer/build/types.d.ts.map +1 -1
- package/tools/code-modernizer/build/utils/ast-parser.d.ts.map +1 -1
- package/tools/code-modernizer/build/utils/ast-parser.js +30 -14
- package/tools/code-modernizer/build/utils/ast-parser.js.map +1 -1
- package/tools/code-modernizer/build/utils/type-generator.d.ts +1 -1
- package/tools/code-modernizer/build/utils/type-generator.d.ts.map +1 -1
- package/tools/code-modernizer/build/utils/type-generator.js +72 -23
- package/tools/code-modernizer/build/utils/type-generator.js.map +1 -1
- package/tools/component-factory/build/index.js +59 -7
- package/tools/component-factory/build/index.js.map +1 -1
- package/tools/component-fixer/README.md +44 -0
- package/tools/component-fixer/build/index.d.ts +3 -0
- package/tools/component-fixer/build/index.d.ts.map +1 -0
- package/tools/component-fixer/build/index.js +647 -0
- package/tools/component-fixer/build/index.js.map +1 -0
- package/tools/component-fixer/build/index.test.d.ts +2 -0
- package/tools/component-fixer/build/index.test.d.ts.map +1 -0
- package/tools/component-fixer/build/index.test.js.map +1 -0
- package/tools/component-fixer/package.json +20 -0
- package/tools/component-reviewer/README.md +54 -0
- package/tools/component-reviewer/build/index.d.ts +39 -0
- package/tools/component-reviewer/build/index.d.ts.map +1 -0
- package/tools/component-reviewer/build/index.js +946 -0
- package/tools/component-reviewer/build/index.js.map +1 -0
- package/tools/component-reviewer/build/index.test.d.ts +2 -0
- package/tools/component-reviewer/build/index.test.d.ts.map +1 -0
- package/tools/component-reviewer/build/index.test.js.map +1 -0
- package/tools/component-reviewer/package.json +20 -0
- package/tools/dep-auditor/build/index.d.ts +1 -0
- package/tools/dep-auditor/build/index.d.ts.map +1 -1
- package/tools/dep-auditor/build/index.js +71 -16
- package/tools/dep-auditor/build/index.js.map +1 -1
- package/tools/generate-tests/build/analyzer.d.ts +14 -0
- package/tools/generate-tests/build/analyzer.d.ts.map +1 -1
- package/tools/generate-tests/build/analyzer.js +96 -42
- package/tools/generate-tests/build/analyzer.js.map +1 -1
- package/tools/generate-tests/build/generators.d.ts.map +1 -1
- package/tools/generate-tests/build/generators.js +304 -79
- package/tools/generate-tests/build/generators.js.map +1 -1
- package/tools/generate-tests/build/index.js +29 -10
- package/tools/generate-tests/build/index.js.map +1 -1
- package/tools/json-viewer/build/index.js +29 -6
- package/tools/json-viewer/build/index.js.map +1 -1
- package/tools/legacy-analyzer/README.md +66 -0
- package/tools/legacy-analyzer/build/index.d.ts +3 -0
- package/tools/legacy-analyzer/build/index.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/index.js +209 -0
- package/tools/legacy-analyzer/build/index.js.map +1 -0
- package/tools/legacy-analyzer/build/index.test.d.ts +2 -0
- package/tools/legacy-analyzer/build/index.test.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/index.test.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/01-detect-project-tech.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/01-detect-project-tech.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/01-detect-project-tech.js +115 -0
- package/tools/legacy-analyzer/build/tools/01-detect-project-tech.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/02-analyze-folder-structure.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/02-analyze-folder-structure.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/02-analyze-folder-structure.js +85 -0
- package/tools/legacy-analyzer/build/tools/02-analyze-folder-structure.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/03-analyze-components.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/03-analyze-components.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/03-analyze-components.js +87 -0
- package/tools/legacy-analyzer/build/tools/03-analyze-components.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/04-analyze-state-management.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/04-analyze-state-management.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/04-analyze-state-management.js +133 -0
- package/tools/legacy-analyzer/build/tools/04-analyze-state-management.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/05-analyze-api-layer.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/05-analyze-api-layer.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/05-analyze-api-layer.js +160 -0
- package/tools/legacy-analyzer/build/tools/05-analyze-api-layer.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/06-analyze-routing.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/06-analyze-routing.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/06-analyze-routing.js +150 -0
- package/tools/legacy-analyzer/build/tools/06-analyze-routing.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/07-analyze-styling.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/07-analyze-styling.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/07-analyze-styling.js +131 -0
- package/tools/legacy-analyzer/build/tools/07-analyze-styling.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/08-analyze-assets.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/08-analyze-assets.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/08-analyze-assets.js +85 -0
- package/tools/legacy-analyzer/build/tools/08-analyze-assets.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/09-detect-anti-patterns.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/09-detect-anti-patterns.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/09-detect-anti-patterns.js +329 -0
- package/tools/legacy-analyzer/build/tools/09-detect-anti-patterns.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/10-detect-duplication.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/10-detect-duplication.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/10-detect-duplication.js +192 -0
- package/tools/legacy-analyzer/build/tools/10-detect-duplication.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/11-analyze-dependencies-usage.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/11-analyze-dependencies-usage.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/11-analyze-dependencies-usage.js +232 -0
- package/tools/legacy-analyzer/build/tools/11-analyze-dependencies-usage.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/12-analyze-legacy-app.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/12-analyze-legacy-app.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/12-analyze-legacy-app.js +247 -0
- package/tools/legacy-analyzer/build/tools/12-analyze-legacy-app.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/13-detect-features.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/13-detect-features.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/13-detect-features.js +141 -0
- package/tools/legacy-analyzer/build/tools/13-detect-features.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/14-classify-files.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/14-classify-files.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/14-classify-files.js +76 -0
- package/tools/legacy-analyzer/build/tools/14-classify-files.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/15-detect-shared-modules.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/15-detect-shared-modules.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/15-detect-shared-modules.js +70 -0
- package/tools/legacy-analyzer/build/tools/15-detect-shared-modules.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/16-design-target-structure.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/16-design-target-structure.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/16-design-target-structure.js +26 -0
- package/tools/legacy-analyzer/build/tools/16-design-target-structure.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/17-map-files-to-target.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/17-map-files-to-target.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/17-map-files-to-target.js +108 -0
- package/tools/legacy-analyzer/build/tools/17-map-files-to-target.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/18-detect-boundary-violations.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/18-detect-boundary-violations.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/18-detect-boundary-violations.js +137 -0
- package/tools/legacy-analyzer/build/tools/18-detect-boundary-violations.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/19-suggest-module-splitting.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/19-suggest-module-splitting.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/19-suggest-module-splitting.js +160 -0
- package/tools/legacy-analyzer/build/tools/19-suggest-module-splitting.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/20-naming-standardizer.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/20-naming-standardizer.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/20-naming-standardizer.js +162 -0
- package/tools/legacy-analyzer/build/tools/20-naming-standardizer.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/21-generate-refactor-plan.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/21-generate-refactor-plan.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/21-generate-refactor-plan.js +108 -0
- package/tools/legacy-analyzer/build/tools/21-generate-refactor-plan.js.map +1 -0
- package/tools/legacy-analyzer/build/tools/22-refactor-folder-structure.d.ts +3 -0
- package/tools/legacy-analyzer/build/tools/22-refactor-folder-structure.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/tools/22-refactor-folder-structure.js +98 -0
- package/tools/legacy-analyzer/build/tools/22-refactor-folder-structure.js.map +1 -0
- package/tools/legacy-analyzer/build/types.d.ts +413 -0
- package/tools/legacy-analyzer/build/types.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/types.js +12 -0
- package/tools/legacy-analyzer/build/types.js.map +1 -0
- package/tools/legacy-analyzer/build/utils/ast-parser.d.ts +34 -0
- package/tools/legacy-analyzer/build/utils/ast-parser.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/utils/ast-parser.js +394 -0
- package/tools/legacy-analyzer/build/utils/ast-parser.js.map +1 -0
- package/tools/legacy-analyzer/build/utils/file-scanner.d.ts +51 -0
- package/tools/legacy-analyzer/build/utils/file-scanner.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/utils/file-scanner.js +174 -0
- package/tools/legacy-analyzer/build/utils/file-scanner.js.map +1 -0
- package/tools/legacy-analyzer/build/utils/import-tracker.d.ts +38 -0
- package/tools/legacy-analyzer/build/utils/import-tracker.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/utils/import-tracker.js +194 -0
- package/tools/legacy-analyzer/build/utils/import-tracker.js.map +1 -0
- package/tools/legacy-analyzer/build/utils/refactor-helpers.d.ts +88 -0
- package/tools/legacy-analyzer/build/utils/refactor-helpers.d.ts.map +1 -0
- package/tools/legacy-analyzer/build/utils/refactor-helpers.js +538 -0
- package/tools/legacy-analyzer/build/utils/refactor-helpers.js.map +1 -0
- package/tools/legacy-analyzer/package.json +20 -0
- package/tools/lighthouse-runner/README.md +45 -0
- package/tools/lighthouse-runner/build/index.d.ts +6 -0
- package/tools/lighthouse-runner/build/index.d.ts.map +1 -0
- package/tools/lighthouse-runner/build/index.js +295 -0
- package/tools/lighthouse-runner/build/index.js.map +1 -0
- package/tools/lighthouse-runner/build/index.test.d.ts +2 -0
- package/tools/lighthouse-runner/build/index.test.d.ts.map +1 -0
- package/tools/lighthouse-runner/build/index.test.js.map +1 -0
- package/tools/lighthouse-runner/package.json +20 -0
- package/tools/monorepo-manager/build/utils.d.ts.map +1 -1
- package/tools/monorepo-manager/build/utils.js +12 -9
- package/tools/monorepo-manager/build/utils.js.map +1 -1
- package/tools/performance-audit/README.md +37 -0
- package/tools/performance-audit/build/index.d.ts +13 -0
- package/tools/performance-audit/build/index.d.ts.map +1 -0
- package/tools/performance-audit/build/index.js +311 -0
- package/tools/performance-audit/build/index.js.map +1 -0
- package/tools/performance-audit/build/index.test.d.ts +2 -0
- package/tools/performance-audit/build/index.test.d.ts.map +1 -0
- package/tools/performance-audit/build/index.test.js.map +1 -0
- package/tools/performance-audit/package.json +20 -0
- package/tools/quality-pipeline/build/index.js +55 -15
- package/tools/quality-pipeline/build/index.js.map +1 -1
- package/tools/render-analyzer/README.md +43 -0
- package/tools/render-analyzer/build/index.d.ts +25 -0
- package/tools/render-analyzer/build/index.d.ts.map +1 -0
- package/tools/render-analyzer/build/index.js +342 -0
- package/tools/render-analyzer/build/index.js.map +1 -0
- package/tools/render-analyzer/build/index.test.d.ts +2 -0
- package/tools/render-analyzer/build/index.test.d.ts.map +1 -0
- package/tools/render-analyzer/build/index.test.js.map +1 -0
- package/tools/render-analyzer/package.json +20 -0
- package/tools/shared/build/fs.d.ts +8 -0
- package/tools/shared/build/fs.d.ts.map +1 -0
- package/tools/shared/build/fs.js +45 -0
- package/tools/shared/build/fs.js.map +1 -0
- package/tools/shared/build/index.d.ts +1 -0
- package/tools/shared/build/index.d.ts.map +1 -1
- package/tools/shared/build/index.js +1 -0
- package/tools/shared/build/index.js.map +1 -1
- package/tools/storybook-generator/README.md +39 -0
- package/tools/storybook-generator/build/index.d.ts +13 -0
- package/tools/storybook-generator/build/index.d.ts.map +1 -0
- package/tools/storybook-generator/build/index.js +478 -0
- package/tools/storybook-generator/build/index.js.map +1 -0
- package/tools/storybook-generator/build/index.test.d.ts +2 -0
- package/tools/storybook-generator/build/index.test.d.ts.map +1 -0
- package/tools/storybook-generator/build/index.test.js.map +1 -0
- package/tools/storybook-generator/package.json +20 -0
- package/tools/test-gap-analyzer/README.md +41 -0
- package/tools/test-gap-analyzer/build/index.d.ts +20 -0
- package/tools/test-gap-analyzer/build/index.d.ts.map +1 -0
- package/tools/test-gap-analyzer/build/index.js +371 -0
- package/tools/test-gap-analyzer/build/index.js.map +1 -0
- package/tools/test-gap-analyzer/build/index.test.d.ts +2 -0
- package/tools/test-gap-analyzer/build/index.test.d.ts.map +1 -0
- package/tools/test-gap-analyzer/build/index.test.js.map +1 -0
- package/tools/test-gap-analyzer/package.json +20 -0
- package/tools/typescript-enforcer/build/scanner.d.ts.map +1 -1
- package/tools/typescript-enforcer/build/scanner.js +13 -1
- package/tools/typescript-enforcer/build/scanner.js.map +1 -1
- package/tools/typescript-enforcer/build/types.d.ts +1 -0
- package/tools/typescript-enforcer/build/types.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -5,14 +5,14 @@ MCP servers for React + TypeScript development automation. Works with Claude Des
|
|
|
5
5
|
[](https://github.com/Nishant-Chaudhary5338/mcp-toolkit/actions/workflows/ci.yml)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](https://github.com/modelcontextprotocol/typescript-sdk)
|
|
8
|
-
[](#testing)
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
## What's here
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
tools/
|
|
15
|
+
tools/ 17 MCP server packages — each independently buildable and runnable
|
|
16
16
|
server/ Express bridge (port 3002) — proxies calls from the UI to MCP servers
|
|
17
17
|
client/ React 19 showcase SPA — tool catalog, workflow demos, animated flowcharts
|
|
18
18
|
```
|
|
@@ -21,34 +21,39 @@ client/ React 19 showcase SPA — tool catalog, workflow demos, animated flo
|
|
|
21
21
|
|
|
22
22
|
## Tools
|
|
23
23
|
|
|
24
|
-
All
|
|
24
|
+
All 17 tools are production-ready: built, tested, and CI-verified on Node 20 + 22.
|
|
25
|
+
|
|
26
|
+
### Component Development
|
|
25
27
|
|
|
26
28
|
| Tool | What it does | MCP tools exposed |
|
|
27
29
|
|---|---|---|
|
|
28
30
|
| `component-factory` | Scaffold React components from 41 shadcn/ui templates — with tests + Storybook | 6 |
|
|
31
|
+
| `component-reviewer` | Audit TypeScript errors, a11y issues, test coverage — graded A+ to F | 3 |
|
|
32
|
+
| `component-fixer` | Auto-fix broken imports, missing deps, inline style refactors | 3 |
|
|
33
|
+
| `storybook-generator` | Auto-generate Storybook stories — Default, variants, sizes, callbacks, play functions | 2 |
|
|
34
|
+
|
|
35
|
+
### Code Quality & Modernisation
|
|
36
|
+
|
|
37
|
+
| Tool | What it does | MCP tools exposed |
|
|
38
|
+
|---|---|---|
|
|
29
39
|
| `code-modernizer` | AST-based JS/JSX → TypeScript conversion, PropTypes → interfaces | 1 |
|
|
30
|
-
| `
|
|
31
|
-
| `json-viewer` | Generate an interactive HTML JSON viewer — collapsible, searchable, dark/light | 3 |
|
|
32
|
-
| `dep-auditor` | Unused deps, duplicate versions, circular imports, bundle impact analysis | 4 |
|
|
40
|
+
| `typescript-enforcer` | Scan for `any` types, unsafe casts, missing modifiers — 7 rules, scored 0–10 | 4 |
|
|
33
41
|
| `accessibility-checker` | WCAG 2.1 audit — alt text, label associations, ARIA roles, keyboard navigation | 3 |
|
|
34
42
|
| `generate-tests` | Analyze a TypeScript/React source file and generate a Vitest test suite | 2 |
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
43
|
+
| `quality-pipeline` | 5-stage audit (tests · types · perf · a11y · design tokens) graded A–F | 2 |
|
|
44
|
+
| `render-analyzer` | Detect unnecessary re-renders, missing memo, inline objects/functions | 3 |
|
|
45
|
+
| `performance-audit` | Memory leaks, heavy imports, unoptimized images, deep nesting | 3 |
|
|
46
|
+
| `test-gap-analyzer` | Find unimplemented functions, uncovered branches, missing edge cases | 3 |
|
|
47
|
+
| `legacy-analyzer` | 22-tool health audit for any React/Next.js/Remix app — scores 0–100, migration hints | 22 |
|
|
37
48
|
|
|
38
|
-
###
|
|
49
|
+
### Monorepo & Infrastructure
|
|
39
50
|
|
|
40
|
-
| Tool |
|
|
51
|
+
| Tool | What it does | MCP tools exposed |
|
|
41
52
|
|---|---|---|
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
| `performance-audit` | Bundle size analysis, memory leaks, slow component detection | 📋 Planned |
|
|
47
|
-
| `lighthouse-runner` | Web Vitals / Lighthouse audit via CLI | 📋 Planned |
|
|
48
|
-
| `component-reviewer` | Audit TypeScript errors, test coverage gaps, a11y issues | 📋 Planned |
|
|
49
|
-
| `component-fixer` | Auto-fix broken imports, missing dependencies, export corrections | 📋 Planned |
|
|
50
|
-
|
|
51
|
-
Want to implement one of these? See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
53
|
+
| `dep-auditor` | Unused deps, duplicate versions, circular imports, bundle impact analysis | 4 |
|
|
54
|
+
| `monorepo-manager` | Workspace listing, dependency graph, health check, shared dep finder | 6 |
|
|
55
|
+
| `lighthouse-runner` | Static HTML audit — meta tags, a11y, OG/Twitter cards, canonical, JSON-LD | 4 |
|
|
56
|
+
| `json-viewer` | Generate an interactive HTML JSON viewer — collapsible, searchable, dark/light | 3 |
|
|
52
57
|
|
|
53
58
|
---
|
|
54
59
|
|
|
@@ -60,23 +65,29 @@ legacy-analyzer → code-modernizer → typescript-enforcer → generate-tests
|
|
|
60
65
|
```
|
|
61
66
|
Migrate a JS codebase to strict TypeScript with auto-generated test coverage.
|
|
62
67
|
|
|
63
|
-
### 2 ·
|
|
68
|
+
### 2 · Component Quality Pipeline
|
|
64
69
|
```
|
|
65
|
-
|
|
70
|
+
component-factory → component-reviewer → accessibility-checker → storybook-generator
|
|
66
71
|
```
|
|
67
|
-
|
|
72
|
+
Generate a production-ready component, review it, fix a11y issues, and add full story coverage.
|
|
68
73
|
|
|
69
|
-
### 3 ·
|
|
74
|
+
### 3 · Render Performance Audit
|
|
70
75
|
```
|
|
71
|
-
|
|
76
|
+
render-analyzer → performance-audit → quality-pipeline
|
|
72
77
|
```
|
|
73
|
-
|
|
78
|
+
Find unnecessary re-renders, memory leaks, and heavy imports — graded A–F.
|
|
74
79
|
|
|
75
|
-
### 4 ·
|
|
80
|
+
### 4 · App Health Check
|
|
76
81
|
```
|
|
77
|
-
|
|
82
|
+
legacy-analyzer [analyze-legacy-app] → component-reviewer → generate-tests
|
|
78
83
|
```
|
|
79
|
-
Full
|
|
84
|
+
Full health score (0–100) with prioritized migration hints, then fix the top issues.
|
|
85
|
+
|
|
86
|
+
### 5 · Dependency Health
|
|
87
|
+
```
|
|
88
|
+
dep-auditor [unused] → dep-auditor [duplicates] → dep-auditor [bundle-impact] → monorepo-manager
|
|
89
|
+
```
|
|
90
|
+
Audit and clean up a monorepo's dependency graph end-to-end.
|
|
80
91
|
|
|
81
92
|
---
|
|
82
93
|
|
|
@@ -127,7 +138,7 @@ git clone https://github.com/Nishant-Chaudhary5338/mcp-toolkit.git
|
|
|
127
138
|
cd mcp-toolkit
|
|
128
139
|
npm install
|
|
129
140
|
npm run build
|
|
130
|
-
npm test #
|
|
141
|
+
npm test # 450 tests across all 17 tools
|
|
131
142
|
npm run dev # server on :3002, client on :5173
|
|
132
143
|
```
|
|
133
144
|
|
|
@@ -141,17 +152,37 @@ npm run dev # server on :3002, client on :5173
|
|
|
141
152
|
"command": "node",
|
|
142
153
|
"args": ["/path/to/mcp-toolkit/tools/component-factory/build/index.js"]
|
|
143
154
|
},
|
|
144
|
-
"
|
|
155
|
+
"component-reviewer": {
|
|
145
156
|
"command": "node",
|
|
146
|
-
"args": ["/path/to/mcp-toolkit/tools/
|
|
157
|
+
"args": ["/path/to/mcp-toolkit/tools/component-reviewer/build/index.js"]
|
|
147
158
|
},
|
|
148
|
-
"
|
|
159
|
+
"component-fixer": {
|
|
149
160
|
"command": "node",
|
|
150
|
-
"args": ["/path/to/mcp-toolkit/tools/
|
|
161
|
+
"args": ["/path/to/mcp-toolkit/tools/component-fixer/build/index.js"]
|
|
151
162
|
},
|
|
152
|
-
"
|
|
163
|
+
"storybook-generator": {
|
|
153
164
|
"command": "node",
|
|
154
|
-
"args": ["/path/to/mcp-toolkit/tools/
|
|
165
|
+
"args": ["/path/to/mcp-toolkit/tools/storybook-generator/build/index.js"]
|
|
166
|
+
},
|
|
167
|
+
"render-analyzer": {
|
|
168
|
+
"command": "node",
|
|
169
|
+
"args": ["/path/to/mcp-toolkit/tools/render-analyzer/build/index.js"]
|
|
170
|
+
},
|
|
171
|
+
"performance-audit": {
|
|
172
|
+
"command": "node",
|
|
173
|
+
"args": ["/path/to/mcp-toolkit/tools/performance-audit/build/index.js"]
|
|
174
|
+
},
|
|
175
|
+
"legacy-analyzer": {
|
|
176
|
+
"command": "node",
|
|
177
|
+
"args": ["/path/to/mcp-toolkit/tools/legacy-analyzer/build/index.js"]
|
|
178
|
+
},
|
|
179
|
+
"test-gap-analyzer": {
|
|
180
|
+
"command": "node",
|
|
181
|
+
"args": ["/path/to/mcp-toolkit/tools/test-gap-analyzer/build/index.js"]
|
|
182
|
+
},
|
|
183
|
+
"lighthouse-runner": {
|
|
184
|
+
"command": "node",
|
|
185
|
+
"args": ["/path/to/mcp-toolkit/tools/lighthouse-runner/build/index.js"]
|
|
155
186
|
},
|
|
156
187
|
"dep-auditor": {
|
|
157
188
|
"command": "node",
|
|
@@ -169,9 +200,21 @@ npm run dev # server on :3002, client on :5173
|
|
|
169
200
|
"command": "node",
|
|
170
201
|
"args": ["/path/to/mcp-toolkit/tools/typescript-enforcer/build/index.js"]
|
|
171
202
|
},
|
|
203
|
+
"code-modernizer": {
|
|
204
|
+
"command": "node",
|
|
205
|
+
"args": ["/path/to/mcp-toolkit/tools/code-modernizer/build/index.js"]
|
|
206
|
+
},
|
|
207
|
+
"quality-pipeline": {
|
|
208
|
+
"command": "node",
|
|
209
|
+
"args": ["/path/to/mcp-toolkit/tools/quality-pipeline/build/index.js"]
|
|
210
|
+
},
|
|
172
211
|
"monorepo-manager": {
|
|
173
212
|
"command": "node",
|
|
174
213
|
"args": ["/path/to/mcp-toolkit/tools/monorepo-manager/build/index.js"]
|
|
214
|
+
},
|
|
215
|
+
"json-viewer": {
|
|
216
|
+
"command": "node",
|
|
217
|
+
"args": ["/path/to/mcp-toolkit/tools/json-viewer/build/index.js"]
|
|
175
218
|
}
|
|
176
219
|
}
|
|
177
220
|
}
|
|
@@ -179,14 +222,58 @@ npm run dev # server on :3002, client on :5173
|
|
|
179
222
|
|
|
180
223
|
### Use as a CLI / in CI
|
|
181
224
|
|
|
225
|
+
Every tool's `build/index.js` has a `#!/usr/bin/env node` shebang and is `chmod +x` — pipe a JSON-RPC message to it on stdin and it writes the result to stdout.
|
|
226
|
+
|
|
182
227
|
```sh
|
|
183
|
-
#
|
|
184
|
-
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"
|
|
185
|
-
| node tools/
|
|
228
|
+
# Analyze a full React/Next.js/Vite app — health score 0–100 + migration hints
|
|
229
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"analyze-legacy-app","arguments":{"path":"/path/to/app"}}}' \
|
|
230
|
+
| node tools/legacy-analyzer/build/index.js
|
|
231
|
+
|
|
232
|
+
# Detect unnecessary re-renders (missing memo, inline objects)
|
|
233
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"detect_rerenders","arguments":{"path":"src/components"}}}' \
|
|
234
|
+
| node tools/render-analyzer/build/index.js
|
|
235
|
+
|
|
236
|
+
# Audit for memory leaks and heavy imports
|
|
237
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"audit_bundle","arguments":{"path":"src"}}}' \
|
|
238
|
+
| node tools/performance-audit/build/index.js
|
|
239
|
+
|
|
240
|
+
# Review a component — grade A+ to F
|
|
241
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"review","arguments":{"path":"src/components/Button.tsx"}}}' \
|
|
242
|
+
| node tools/component-reviewer/build/index.js
|
|
243
|
+
|
|
244
|
+
# Auto-fix a component
|
|
245
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"fix","arguments":{"path":"src/components/Button.tsx"}}}' \
|
|
246
|
+
| node tools/component-fixer/build/index.js
|
|
186
247
|
|
|
187
|
-
#
|
|
248
|
+
# Find untested exports
|
|
249
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"analyze_test_gaps","arguments":{"path":"src"}}}' \
|
|
250
|
+
| node tools/test-gap-analyzer/build/index.js
|
|
251
|
+
|
|
252
|
+
# Generate Storybook stories for all components in a directory
|
|
253
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"generate_stories","arguments":{"path":"src/components"}}}' \
|
|
254
|
+
| node tools/storybook-generator/build/index.js
|
|
255
|
+
|
|
256
|
+
# Audit an HTML file — SEO, a11y, OG tags, canonical
|
|
257
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"static_audit","arguments":{"path":"public/index.html"}}}' \
|
|
258
|
+
| node tools/lighthouse-runner/build/index.js
|
|
259
|
+
|
|
260
|
+
# Run a WCAG audit
|
|
188
261
|
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_accessibility","arguments":{"path":"src/components"}}}' \
|
|
189
262
|
| node tools/accessibility-checker/build/index.js
|
|
263
|
+
|
|
264
|
+
# Scan for TypeScript violations
|
|
265
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"scan_directory","arguments":{"path":"src"}}}' \
|
|
266
|
+
| node tools/typescript-enforcer/build/index.js
|
|
267
|
+
|
|
268
|
+
# Find unused and outdated dependencies
|
|
269
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"find_unused_deps","arguments":{"root":"."}}}' \
|
|
270
|
+
| node tools/dep-auditor/build/index.js
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
#### List a tool's available commands
|
|
274
|
+
|
|
275
|
+
```sh
|
|
276
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node tools/legacy-analyzer/build/index.js
|
|
190
277
|
```
|
|
191
278
|
|
|
192
279
|
---
|
|
@@ -197,11 +284,19 @@ Each tool has a dedicated test file covering its core logic directly — no MCP
|
|
|
197
284
|
|
|
198
285
|
```sh
|
|
199
286
|
npm test # all tools
|
|
200
|
-
npm run test -w tools/
|
|
287
|
+
npm run test -w tools/legacy-analyzer # single tool
|
|
201
288
|
```
|
|
202
289
|
|
|
203
290
|
| Tool | Tests |
|
|
204
291
|
|---|---|
|
|
292
|
+
| render-analyzer | 11 |
|
|
293
|
+
| storybook-generator | 20 |
|
|
294
|
+
| performance-audit | 15 |
|
|
295
|
+
| lighthouse-runner | 13 |
|
|
296
|
+
| test-gap-analyzer | 15 |
|
|
297
|
+
| component-reviewer | 19 |
|
|
298
|
+
| component-fixer | 10 |
|
|
299
|
+
| legacy-analyzer | 14 |
|
|
205
300
|
| json-viewer | 16 |
|
|
206
301
|
| quality-pipeline | 8 |
|
|
207
302
|
| component-factory | 6 |
|
|
@@ -211,6 +306,7 @@ npm run test -w tools/typescript-enforcer # single tool
|
|
|
211
306
|
| generate-tests | 14 |
|
|
212
307
|
| typescript-enforcer | 22 |
|
|
213
308
|
| monorepo-manager | 30 |
|
|
309
|
+
| **Total** | **450** |
|
|
214
310
|
|
|
215
311
|
CI runs on every push and PR against Node 20 and 22.
|
|
216
312
|
|
|
@@ -222,14 +318,22 @@ CI runs on every push and PR against Node 20 and 22.
|
|
|
222
318
|
tools/
|
|
223
319
|
shared/ McpServerBase, ToolRegistry, shared types
|
|
224
320
|
component-factory/ 41 shadcn/ui templates
|
|
321
|
+
component-reviewer/ Review rules engine (7 categories)
|
|
322
|
+
component-fixer/ Fix strategies per issue type
|
|
323
|
+
storybook-generator/ Story generator (Default, variants, play functions)
|
|
324
|
+
render-analyzer/ Re-render profile + memo checker
|
|
325
|
+
performance-audit/ Memory leak + heavy import detector
|
|
326
|
+
legacy-analyzer/ 22-tool analysis engine + health scorer
|
|
327
|
+
test-gap-analyzer/ Export extractor + edge case detector
|
|
328
|
+
lighthouse-runner/ Static HTML auditor
|
|
225
329
|
code-modernizer/ AST-based TS conversion
|
|
226
330
|
quality-pipeline/ 5-stage grading system
|
|
227
|
-
json-viewer/ HTML generation
|
|
228
331
|
dep-auditor/ Dependency graph analysis
|
|
229
332
|
accessibility-checker/ WCAG rule engine (9 rules)
|
|
230
333
|
generate-tests/ Source analyzer + test generator
|
|
231
334
|
typescript-enforcer/ 7-rule type safety scanner
|
|
232
335
|
monorepo-manager/ Workspace operations
|
|
336
|
+
json-viewer/ HTML generation
|
|
233
337
|
|
|
234
338
|
server/ Express bridge — spawns tools as child processes
|
|
235
339
|
client/ React 19 SPA — tool catalog and live demos
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-react-toolkit",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"mcpName": "io.github.
|
|
5
|
-
"description": "
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"mcpName": "io.github.Nishant-Chaudhary5338/mcp-react-toolkit",
|
|
5
|
+
"description": "17 MCP servers for React + TypeScript development automation — component scaffolding, dep auditing, WCAG checking, test generation, TypeScript enforcement, render analysis, performance audit, Lighthouse, Storybook generation, legacy app analysis, component review/fix, and monorepo management.",
|
|
6
6
|
"keywords": ["mcp", "mcp-server", "model-context-protocol", "react", "typescript", "developer-tools", "claude", "ai-tools"],
|
|
7
7
|
"author": "Nishant Chaudhary <nishantchaudhary.dev@gmail.com>",
|
|
8
8
|
"license": "MIT",
|
|
@@ -24,13 +24,21 @@
|
|
|
24
24
|
"tools/generate-tests",
|
|
25
25
|
"tools/typescript-enforcer",
|
|
26
26
|
"tools/monorepo-manager",
|
|
27
|
+
"tools/render-analyzer",
|
|
28
|
+
"tools/storybook-generator",
|
|
29
|
+
"tools/performance-audit",
|
|
30
|
+
"tools/lighthouse-runner",
|
|
31
|
+
"tools/test-gap-analyzer",
|
|
32
|
+
"tools/component-reviewer",
|
|
33
|
+
"tools/component-fixer",
|
|
34
|
+
"tools/legacy-analyzer",
|
|
27
35
|
"server",
|
|
28
36
|
"client"
|
|
29
37
|
],
|
|
30
38
|
"scripts": {
|
|
31
|
-
"build": "npm run build -w tools/shared && npm run build -w tools/json-viewer && npm run build -w tools/component-factory && npm run build -w tools/code-modernizer && npm run build -w tools/quality-pipeline && npm run build -w tools/dep-auditor && npm run build -w tools/accessibility-checker && npm run build -w tools/generate-tests && npm run build -w tools/typescript-enforcer && npm run build -w tools/monorepo-manager && npm run build -w server",
|
|
39
|
+
"build": "npm run build -w tools/shared && npm run build -w tools/json-viewer && npm run build -w tools/component-factory && npm run build -w tools/code-modernizer && npm run build -w tools/quality-pipeline && npm run build -w tools/dep-auditor && npm run build -w tools/accessibility-checker && npm run build -w tools/generate-tests && npm run build -w tools/typescript-enforcer && npm run build -w tools/monorepo-manager && npm run build -w tools/render-analyzer && npm run build -w tools/storybook-generator && npm run build -w tools/performance-audit && npm run build -w tools/lighthouse-runner && npm run build -w tools/test-gap-analyzer && npm run build -w tools/component-reviewer && npm run build -w tools/component-fixer && npm run build -w tools/legacy-analyzer && npm run build -w server",
|
|
32
40
|
"dev": "concurrently \"npm run dev -w server\" \"npm run dev -w client\"",
|
|
33
|
-
"test": "npm run test -w tools/json-viewer && npm run test -w tools/quality-pipeline && npm run test -w tools/component-factory && npm run test -w tools/code-modernizer && npm run test -w tools/dep-auditor && npm run test -w tools/accessibility-checker && npm run test -w tools/generate-tests && npm run test -w tools/typescript-enforcer && npm run test -w tools/monorepo-manager",
|
|
41
|
+
"test": "npm run test -w tools/json-viewer && npm run test -w tools/quality-pipeline && npm run test -w tools/component-factory && npm run test -w tools/code-modernizer && npm run test -w tools/dep-auditor && npm run test -w tools/accessibility-checker && npm run test -w tools/generate-tests && npm run test -w tools/typescript-enforcer && npm run test -w tools/monorepo-manager && npm run test -w tools/render-analyzer && npm run test -w tools/storybook-generator && npm run test -w tools/performance-audit && npm run test -w tools/lighthouse-runner && npm run test -w tools/test-gap-analyzer && npm run test -w tools/component-reviewer && npm run test -w tools/component-fixer && npm run test -w tools/legacy-analyzer",
|
|
34
42
|
"install:all": "npm install"
|
|
35
43
|
},
|
|
36
44
|
"devDependencies": {
|
package/server.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.Nishant-Chaudhary5338/mcp-react-toolkit",
|
|
4
|
+
"description": "9 MCP servers for React/TypeScript — dep auditing, a11y, test gen, and TypeScript enforcement.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"url": "https://github.com/Nishant-Chaudhary5338/mcp-toolkit",
|
|
7
|
+
"source": "github"
|
|
8
|
+
},
|
|
9
|
+
"version": "1.0.1",
|
|
10
|
+
"packages": [
|
|
11
|
+
{
|
|
12
|
+
"registryType": "npm",
|
|
13
|
+
"identifier": "mcp-react-toolkit",
|
|
14
|
+
"version": "1.0.1",
|
|
15
|
+
"transport": {
|
|
16
|
+
"type": "stdio"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { McpServerBase } from '@mcp-showcase/shared';
|
|
2
|
+
import { McpServerBase, safeReadFile } from '@mcp-showcase/shared';
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import * as path from 'path';
|
|
5
5
|
import { analyzeFile, filterByImpact } from './rules.js';
|
|
@@ -7,8 +7,10 @@ function scanDirectory(dir, exts = ['.tsx', '.jsx', '.html']) {
|
|
|
7
7
|
const files = [];
|
|
8
8
|
if (!fs.existsSync(dir))
|
|
9
9
|
return files;
|
|
10
|
-
const SKIP = new Set(['node_modules', 'build', 'dist', '.next', '__tests__']);
|
|
10
|
+
const SKIP = new Set(['node_modules', 'build', 'dist', '.next', '.turbo', '__tests__', '.git', 'coverage', 'out']);
|
|
11
11
|
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
12
|
+
if (entry.isSymbolicLink())
|
|
13
|
+
continue;
|
|
12
14
|
const fullPath = path.join(dir, entry.name);
|
|
13
15
|
if (entry.isDirectory()) {
|
|
14
16
|
if (SKIP.has(entry.name))
|
|
@@ -17,8 +19,7 @@ function scanDirectory(dir, exts = ['.tsx', '.jsx', '.html']) {
|
|
|
17
19
|
}
|
|
18
20
|
else if (exts.some(e => entry.name.endsWith(e)) &&
|
|
19
21
|
!entry.name.includes('.test.') &&
|
|
20
|
-
!entry.name.includes('.spec.')
|
|
21
|
-
!entry.name.includes('.stories.')) {
|
|
22
|
+
!entry.name.includes('.spec.')) {
|
|
22
23
|
files.push(fullPath);
|
|
23
24
|
}
|
|
24
25
|
}
|
|
@@ -29,7 +30,10 @@ function readAndAnalyze(targetPath) {
|
|
|
29
30
|
const files = stat.isDirectory() ? scanDirectory(targetPath) : [targetPath];
|
|
30
31
|
const issues = [];
|
|
31
32
|
for (const file of files) {
|
|
32
|
-
|
|
33
|
+
const content = safeReadFile(file);
|
|
34
|
+
if (content === null)
|
|
35
|
+
continue;
|
|
36
|
+
issues.push(...analyzeFile(file, content));
|
|
33
37
|
}
|
|
34
38
|
return { files, issues };
|
|
35
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;AAEhE,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;AAEhE,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CAClB;AAuCD,eAAO,MAAM,SAAS,EAAE,OAAO,EAga9B,CAAC;AAMF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAQ1E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS,EAAE,CAE/F"}
|