autodocs-engine 0.9.9 → 0.10.1
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 +123 -117
- package/dist/anti-pattern-detector.js +22 -0
- package/dist/anti-pattern-detector.js.map +1 -1
- package/dist/ast-parser.js +141 -61
- package/dist/ast-parser.js.map +1 -1
- package/dist/benchmark/scorer.js +3 -1
- package/dist/benchmark/scorer.js.map +1 -1
- package/dist/bin/autodocs-engine.js +7 -0
- package/dist/bin/autodocs-engine.js.map +1 -1
- package/dist/bin/init.js +0 -7
- package/dist/bin/init.js.map +1 -1
- package/dist/bin/serve.d.ts +1 -0
- package/dist/bin/serve.js +5 -1
- package/dist/bin/serve.js.map +1 -1
- package/dist/bin/setup-hooks.d.ts +1 -0
- package/dist/bin/setup-hooks.js +59 -0
- package/dist/bin/setup-hooks.js.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -1
- package/dist/convention-extractor.js +10 -0
- package/dist/convention-extractor.js.map +1 -1
- package/dist/detectors/api-patterns.d.ts +2 -0
- package/dist/detectors/api-patterns.js +101 -0
- package/dist/detectors/api-patterns.js.map +1 -0
- package/dist/detectors/async-patterns.d.ts +2 -0
- package/dist/detectors/async-patterns.js +79 -0
- package/dist/detectors/async-patterns.js.map +1 -0
- package/dist/detectors/error-handling.js +82 -30
- package/dist/detectors/error-handling.js.map +1 -1
- package/dist/detectors/state-management.d.ts +2 -0
- package/dist/detectors/state-management.js +75 -0
- package/dist/detectors/state-management.js.map +1 -0
- package/dist/execution-flow.d.ts +23 -0
- package/dist/execution-flow.js +286 -0
- package/dist/execution-flow.js.map +1 -0
- package/dist/git-history.js +17 -7
- package/dist/git-history.js.map +1 -1
- package/dist/implicit-coupling.d.ts +7 -0
- package/dist/implicit-coupling.js +40 -0
- package/dist/implicit-coupling.js.map +1 -0
- package/dist/import-chain.js +12 -3
- package/dist/import-chain.js.map +1 -1
- package/dist/index.js +20 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/serializer.js +8 -6
- package/dist/llm/serializer.js.map +1 -1
- package/dist/mcp/cache.d.ts +11 -1
- package/dist/mcp/cache.js +49 -7
- package/dist/mcp/cache.js.map +1 -1
- package/dist/mcp/queries.d.ts +19 -3
- package/dist/mcp/queries.js +342 -62
- package/dist/mcp/queries.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +42 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts +1 -0
- package/dist/mcp/tools.js +162 -20
- package/dist/mcp/tools.js.map +1 -1
- package/dist/output-validator.js +73 -0
- package/dist/output-validator.js.map +1 -1
- package/dist/pipeline.js +37 -0
- package/dist/pipeline.js.map +1 -1
- package/dist/symbol-graph.js +4 -0
- package/dist/symbol-graph.js.map +1 -1
- package/dist/type-enricher.d.ts +17 -0
- package/dist/type-enricher.js +127 -0
- package/dist/type-enricher.js.map +1 -0
- package/dist/type-resolver.d.ts +13 -0
- package/dist/type-resolver.js +75 -0
- package/dist/type-resolver.js.map +1 -0
- package/dist/types.d.ts +36 -3
- package/dist/types.js +5 -1
- package/dist/types.js.map +1 -1
- package/hooks/autodocs-hook.cjs +244 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# autodocs-engine
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Codebase intelligence for AI coding agents. Analyzes TypeScript/JavaScript codebases and serves actionable intelligence via MCP.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/autodocs-engine)
|
|
6
6
|
[](LICENSE)
|
|
@@ -8,172 +8,176 @@ Deterministic codebase intelligence for AI coding tools.
|
|
|
8
8
|
|
|
9
9
|
## What It Does
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Gives AI coding agents deep understanding of your codebase — not just what files exist, but how they connect, what conventions to follow, and what breaks when you change something. Combines AST analysis, git history mining, and import graph intelligence to answer questions no other tool can:
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
- **"What files should I also check when modifying `src/types.ts`?"** → Import dependents, co-change partners from git history, implicit coupling (files that change together without import relationships), and affected execution flows.
|
|
14
|
+
- **"Which specific files import `Convention` from `src/types.ts`?"** → 25 files (not all 98 importers of the file — only the ones using that symbol).
|
|
15
|
+
- **"What caused this test failure?"** → Ranked suspect files with confidence assessment, validated on 95 real bug-fix commits across 10 repos.
|
|
16
|
+
- **"What patterns should I follow?"** → 13 convention detectors covering error handling, async patterns, state management, API patterns, hooks, testing, and more.
|
|
17
17
|
|
|
18
18
|
## Quick Start
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
#
|
|
22
|
-
npx autodocs-engine
|
|
23
|
-
|
|
24
|
-
# Or start the MCP server for live queries
|
|
25
|
-
npx autodocs-engine serve
|
|
26
|
-
```
|
|
21
|
+
# MCP server for Claude Code
|
|
22
|
+
claude mcp add autodocs -- npx autodocs-engine serve
|
|
27
23
|
|
|
28
|
-
|
|
24
|
+
# Install Claude Code hooks (automatic search augmentation)
|
|
25
|
+
npx autodocs-engine setup-hooks
|
|
29
26
|
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
# Or generate a focused AGENTS.md (no API key needed)
|
|
28
|
+
npx autodocs-engine init
|
|
32
29
|
```
|
|
33
30
|
|
|
34
|
-
|
|
31
|
+
## MCP Tools (13)
|
|
35
32
|
|
|
36
33
|
| Tool | What It Returns |
|
|
37
34
|
|------|----------------|
|
|
38
35
|
| `get_commands` | Build, test, lint commands with exact flags |
|
|
39
|
-
| `get_architecture` | Directory structure, entry points,
|
|
40
|
-
| `get_conventions` | DO/DON'T rules
|
|
41
|
-
| `get_workflow_rules` | File coupling and co-change patterns
|
|
42
|
-
| `get_contribution_guide` | How to add
|
|
43
|
-
| `get_exports` | Public API with
|
|
44
|
-
| `analyze_impact` | Blast radius
|
|
36
|
+
| `get_architecture` | Directory structure, entry points, execution flows |
|
|
37
|
+
| `get_conventions` | DO/DON'T rules from 13 detectors (error handling, async, state management, API patterns, hooks, testing, file naming, import ordering, frameworks, databases, data fetching, build tools) |
|
|
38
|
+
| `get_workflow_rules` | File coupling and co-change patterns |
|
|
39
|
+
| `get_contribution_guide` | How to add code, with inline examples and registration steps |
|
|
40
|
+
| `get_exports` | Public API with resolved TypeScript types (parameter types, return types) |
|
|
41
|
+
| `analyze_impact` | Blast radius: importers, callers, co-change partners |
|
|
42
|
+
| `plan_change` | Full change plan: dependents, co-changes, implicit coupling, execution flows, registration/barrel updates, tests. **With optional `symbols` parameter: narrows dependents to files importing specific symbols.** |
|
|
43
|
+
| `get_test_info` | Test file path + exact per-file run command |
|
|
44
|
+
| `auto_register` | Exact code insertions for registration + barrel updates |
|
|
45
|
+
| `review_changes` | Pattern compliance: suffix, imports, registration, barrel, tests |
|
|
46
|
+
| `diagnose` | Root cause analysis with confidence level (high/medium/low), import path traces, and 7 scoring signals |
|
|
45
47
|
| `list_packages` | Monorepo package inventory |
|
|
46
|
-
| `plan_change` | Full change plan: dependents, co-changes, registrations, tests, checklist |
|
|
47
|
-
| `get_test_info` | Test file path + exact per-file run command for any source file |
|
|
48
|
-
| `auto_register` | Exact code insertions for registration files + barrel updates |
|
|
49
|
-
| `review_changes` | Pattern compliance check: suffix, imports, registration, barrel, tests |
|
|
50
|
-
| **`diagnose`** | **Root cause analysis: traces test failures to suspect files via import graph, git co-change, and call graph** |
|
|
51
|
-
|
|
52
|
-
## Why Minimal Mode?
|
|
53
48
|
|
|
54
|
-
|
|
49
|
+
Every tool response includes **next-step hints** guiding the agent to the logical next action.
|
|
55
50
|
|
|
56
|
-
|
|
57
|
-
- Developer-written focused AGENTS.md: **+4%** accuracy, **-29% runtime** ([arxiv 2601.20404](https://arxiv.org/abs/2601.20404))
|
|
51
|
+
## What Makes It Different
|
|
58
52
|
|
|
59
|
-
|
|
53
|
+
### Git Co-Change Intelligence
|
|
54
|
+
Mines commit history using Jaccard similarity to find files that frequently change together. Produces workflow rules ("when modifying X, also check Y") and **implicit coupling** — file pairs that co-change but have no import relationship. This catches the "forgotten file" that static analysis misses.
|
|
60
55
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
## How It Works
|
|
56
|
+
### Convention Detection (13 Detectors)
|
|
57
|
+
Extracts real coding patterns from AST analysis, not configured rules:
|
|
58
|
+
- Error handling: custom error classes, Result/Either patterns, typed error hierarchies
|
|
59
|
+
- Async patterns: Promise.all usage, sequential-await-in-loops detection, AbortController
|
|
60
|
+
- State management: Redux, Zustand, Jotai, MobX, Signals, Context API (reports all, not just dominant)
|
|
61
|
+
- API patterns: Express, Fastify, Hono, NestJS, tRPC, GraphQL (framework-aware, not directory heuristics)
|
|
62
|
+
- Plus: hooks, testing, file naming, import ordering, web frameworks, databases, data fetching, build tools
|
|
70
63
|
|
|
71
|
-
|
|
64
|
+
### Symbol-Level Filtering
|
|
65
|
+
```
|
|
66
|
+
plan_change({ files: ["src/types.ts"], symbols: ["Convention"] })
|
|
67
|
+
```
|
|
68
|
+
Narrows 98 dependents to 25 — only files that actually import `Convention`. Every other tool shows all dependents regardless of which symbol you're changing.
|
|
72
69
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
70
|
+
### Type-Aware Analysis
|
|
71
|
+
Opt-in `--type-checking` creates a TypeScript Program for resolved parameter types and return types:
|
|
72
|
+
```
|
|
73
|
+
analyze(options: Partial<ResolvedConfig> & { packages: string[] }): Promise<StructuredAnalysis>
|
|
74
|
+
```
|
|
75
|
+
Not text extraction — actual TypeChecker resolution through re-export chains.
|
|
79
76
|
|
|
80
|
-
|
|
77
|
+
### Execution Flow Tracing
|
|
78
|
+
Detects execution paths from entry points through the call graph:
|
|
79
|
+
```
|
|
80
|
+
runPipeline → analyzePackage → buildSymbolGraph → computeImpactRadius (4 steps, 4 files)
|
|
81
|
+
```
|
|
82
|
+
Scored by co-change confidence — flows through files that frequently change together are higher confidence.
|
|
81
83
|
|
|
82
|
-
|
|
84
|
+
### Validated Diagnose Tool
|
|
85
|
+
Tested against **95 real bug-fix commits across 10 repos**:
|
|
86
|
+
- Unit-test repos: **83% recall@3** (root cause in top 3 suspects)
|
|
87
|
+
- All repos: **47% recall@3**, **33% precision@1**
|
|
88
|
+
- Confidence assessment based on signal quality and score discrimination
|
|
83
89
|
|
|
90
|
+
### Claude Code Hooks
|
|
84
91
|
```bash
|
|
85
|
-
npx autodocs-engine
|
|
86
|
-
npx autodocs-engine init --full # Comprehensive AGENTS.md (needs API key)
|
|
87
|
-
npx autodocs-engine analyze . --format json # Raw analysis JSON
|
|
88
|
-
npx autodocs-engine analyze . --format claude.md # CLAUDE.md format
|
|
89
|
-
npx autodocs-engine analyze . --format cursorrules # .cursorrules format
|
|
92
|
+
npx autodocs-engine setup-hooks
|
|
90
93
|
```
|
|
94
|
+
Installs PreToolUse + PostToolUse hooks:
|
|
95
|
+
- **PreToolUse**: When you grep for "validateUser", automatically shows callers, co-change partners, and execution flows alongside results
|
|
96
|
+
- **PostToolUse**: After `git commit`, detects when analysis cache is stale
|
|
91
97
|
|
|
92
|
-
##
|
|
93
|
-
|
|
94
|
-
Auto-detects workspace packages from `pnpm-workspace.yaml`, `workspaces` field in package.json, `turbo.json`, or `nx.json`:
|
|
98
|
+
## Claude Code Setup
|
|
95
99
|
|
|
96
100
|
```bash
|
|
97
|
-
|
|
98
|
-
|
|
101
|
+
# Add MCP server
|
|
102
|
+
claude mcp add autodocs -- npx autodocs-engine serve
|
|
99
103
|
|
|
100
|
-
|
|
104
|
+
# Install hooks for automatic search augmentation
|
|
105
|
+
npx autodocs-engine setup-hooks
|
|
106
|
+
```
|
|
101
107
|
|
|
108
|
+
With `--type-checking` for resolved TypeScript types:
|
|
102
109
|
```bash
|
|
103
|
-
npx autodocs-engine
|
|
104
|
-
--format agents.md --hierarchical --root .
|
|
110
|
+
claude mcp add autodocs -- npx autodocs-engine serve --type-checking
|
|
105
111
|
```
|
|
106
112
|
|
|
107
|
-
##
|
|
113
|
+
## AGENTS.md Generation
|
|
108
114
|
|
|
109
|
-
|
|
115
|
+
For tools without MCP support:
|
|
110
116
|
|
|
111
117
|
```bash
|
|
112
|
-
npx autodocs-engine
|
|
118
|
+
npx autodocs-engine init # Focused (~300 tokens, no API key)
|
|
119
|
+
npx autodocs-engine init --full # Comprehensive (needs API key)
|
|
113
120
|
```
|
|
114
121
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
## Tested On
|
|
118
|
-
|
|
119
|
-
| Repo | Files | Time | Token Count (minimal) |
|
|
120
|
-
|------|------:|-----:|:-----:|
|
|
121
|
-
| autodocs-engine | 115 | 450ms | ~443 |
|
|
122
|
-
| vitest | 1,200+ | 1.2s | ~307 |
|
|
123
|
-
| nitro | 469 | 220ms | ~121 |
|
|
124
|
-
| sanity | 3,746 | 1.6s | — |
|
|
125
|
-
| medusa | 720 | 316ms | — |
|
|
122
|
+
Research-backed: focused context files improve AI accuracy by +4% and reduce runtime by 29%. LLM-generated comprehensive files hurt by -2%.
|
|
126
123
|
|
|
127
|
-
|
|
124
|
+
## CLI Reference
|
|
128
125
|
|
|
129
|
-
|
|
126
|
+
```
|
|
127
|
+
autodocs-engine init [--full] Generate AGENTS.md
|
|
128
|
+
autodocs-engine serve [path] [options] Start MCP server
|
|
129
|
+
autodocs-engine setup-hooks Install Claude Code hooks
|
|
130
|
+
autodocs-engine check Staleness detection for CI
|
|
131
|
+
autodocs-engine analyze [paths...] [options] Analyze specific packages
|
|
130
132
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
+
Options:
|
|
134
|
+
--type-checking Enable resolved TypeScript types (requires tsconfig.json)
|
|
135
|
+
--minimal Focused output (<500 tokens, default for init)
|
|
136
|
+
--full Comprehensive output (requires ANTHROPIC_API_KEY)
|
|
137
|
+
--format, -f json | agents.md | claude.md | cursorrules
|
|
138
|
+
--verbose, -v Timing and analysis details
|
|
139
|
+
--dry-run Print to stdout (no file writes)
|
|
140
|
+
```
|
|
133
141
|
|
|
134
|
-
|
|
135
|
-
const analysis = await analyze({ packages: ['./packages/my-pkg'] });
|
|
142
|
+
## How It Works
|
|
136
143
|
|
|
137
|
-
|
|
138
|
-
const minimal = generateMinimalAgentsMd(analysis);
|
|
144
|
+
18-stage analysis pipeline:
|
|
139
145
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
146
|
+
1. **File Discovery** → git ls-files with .gitignore respect
|
|
147
|
+
2. **AST Parsing** → TypeScript Compiler API for exports, imports, call references
|
|
148
|
+
3. **Symbol Graph** → barrel resolution, re-export chains, call graph construction
|
|
149
|
+
4. **Import Chain** → file-to-file coupling with confidence scores
|
|
150
|
+
5. **Tier Classification** → public API (T1), internal (T2), test/generated (T3)
|
|
151
|
+
6. **Type Enrichment** → optional ts.Program for resolved parameter/return types
|
|
152
|
+
7. **Convention Extraction** → 13 detectors with structured confidence metrics
|
|
153
|
+
8. **Git History Mining** → co-change mining with Jaccard similarity, adaptive thresholds
|
|
154
|
+
9. **Implicit Coupling** → co-change pairs with no import relationship
|
|
155
|
+
10. **Execution Flow Tracing** → entry point scoring, spine-first BFS, co-change validation
|
|
156
|
+
11. **Impact Classification** → high/medium/low impact scoring on conventions
|
|
157
|
+
12. **Workspace Auto-Detection** → monorepo roots expand to workspace packages
|
|
144
158
|
|
|
145
|
-
|
|
159
|
+
5 production dependencies. No native bindings, no graph database, no WASM. Installs instantly.
|
|
146
160
|
|
|
147
|
-
|
|
161
|
+
## Stats
|
|
148
162
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
163
|
+
- 713 tests across 53 files
|
|
164
|
+
- 13 MCP tools with next-step hints
|
|
165
|
+
- 13 convention detectors
|
|
166
|
+
- 95-commit diagnose validation corpus (10 repos)
|
|
167
|
+
- 10 execution flows detected on medium codebases
|
|
168
|
+
- Zero type errors, zero technology hallucinations
|
|
155
169
|
|
|
156
|
-
|
|
170
|
+
## Library API
|
|
157
171
|
|
|
158
|
-
|
|
172
|
+
```typescript
|
|
173
|
+
import { analyze, generateMinimalAgentsMd } from 'autodocs-engine';
|
|
159
174
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
autodocs-engine analyze [paths...] [options]
|
|
175
|
+
const analysis = await analyze({
|
|
176
|
+
packages: ['./'],
|
|
177
|
+
typeChecking: true, // optional: resolved TypeScript types
|
|
178
|
+
});
|
|
165
179
|
|
|
166
|
-
|
|
167
|
-
--full Comprehensive output (requires ANTHROPIC_API_KEY)
|
|
168
|
-
--minimal Focused output (<500 tokens, no API key needed — default for init)
|
|
169
|
-
--telemetry Enable session telemetry (writes to ~/.autodocs/telemetry/)
|
|
170
|
-
--format, -f json | agents.md | claude.md | cursorrules
|
|
171
|
-
--output, -o Output directory (default: .)
|
|
172
|
-
--root Monorepo root directory
|
|
173
|
-
--hierarchical Root + per-package output
|
|
174
|
-
--merge Preserve human-written sections when regenerating
|
|
175
|
-
--verbose, -v Timing details
|
|
176
|
-
--dry-run Print to stdout (no file writes)
|
|
180
|
+
const agentsMd = generateMinimalAgentsMd(analysis);
|
|
177
181
|
```
|
|
178
182
|
|
|
179
183
|
## Contributing
|
|
@@ -182,11 +186,13 @@ Options:
|
|
|
182
186
|
git clone https://github.com/msiric/autodocs-engine.git
|
|
183
187
|
cd autodocs-engine
|
|
184
188
|
npm install
|
|
185
|
-
npm test #
|
|
189
|
+
npm test # 713 tests
|
|
186
190
|
npm run typecheck # Zero errors
|
|
187
191
|
npm run build
|
|
188
192
|
```
|
|
189
193
|
|
|
194
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development workflow.
|
|
195
|
+
|
|
190
196
|
## License
|
|
191
197
|
|
|
192
198
|
[MIT](LICENSE)
|
|
@@ -23,6 +23,28 @@ const INVERSION_RULES = [
|
|
|
23
23
|
rule: () => "Do NOT return arrays from hooks (use { value, setter } not [value, setter])",
|
|
24
24
|
reason: (c) => `${c.confidence.description} return objects from hooks`,
|
|
25
25
|
},
|
|
26
|
+
// Phase 1A: Error handling inversions (project-relative, not prescriptive)
|
|
27
|
+
{
|
|
28
|
+
match: /typed error class hierarchy/i,
|
|
29
|
+
rule: (c) => `Do NOT use inline new Error() for domain errors — use typed error subclasses (${c.examples?.[0] ?? "see existing error classes"})`,
|
|
30
|
+
reason: (c) => `${c.confidence.description} define typed error class hierarchies`,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
match: /Result\/Either pattern|Custom Result type/i,
|
|
34
|
+
rule: () => "Do NOT throw exceptions for expected failures — use Result types",
|
|
35
|
+
reason: (c) => `${c.confidence.description} use Result/Either types for error handling`,
|
|
36
|
+
},
|
|
37
|
+
// Phase 1B: Async pattern inversions
|
|
38
|
+
{
|
|
39
|
+
match: /Promise\.all concurrent/i,
|
|
40
|
+
rule: () => "Do NOT await independent async operations sequentially — use Promise.all/allSettled",
|
|
41
|
+
reason: (c) => `${c.confidence.description} use Promise.all for concurrent operations`,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
match: /Sequential await in loops/i,
|
|
45
|
+
rule: () => "Do NOT use await inside loops for independent operations — batch with Promise.all",
|
|
46
|
+
reason: (c) => `${c.confidence.description} contain sequential await in loops`,
|
|
47
|
+
},
|
|
26
48
|
];
|
|
27
49
|
/**
|
|
28
50
|
* Derive anti-patterns from conventions.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anti-pattern-detector.js","sourceRoot":"","sources":["../src/anti-pattern-detector.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0DAA0D;AAI1D,sFAAsF;AACtF,wFAAwF;AACxF,MAAM,eAAe,GAIf;IACJ;QACE,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,GAAG,EAAE,CAAC,kDAAkD;QAC9D,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,sEAAsE;KACjH;IACD;QACE,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,GAAG,EAAE,CAAC,mDAAmD;QAC/D,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,oEAAoE;KAC/G;IACD;QACE,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,GAAG,EAAE,CAAC,kFAAkF;QAC9F,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,uCAAuC;KAClF;IACD;QACE,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,GAAG,EAAE,CAAC,6EAA6E;QACzF,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,4BAA4B;KACvE;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAyB;IAC1D,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QACvC,IAAI,GAAG,GAAG,EAAE;YAAE,SAAS,CAAC,sCAAsC;QAE9D,MAAM,UAAU,GAAsB,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEpE,0BAA0B;QAC1B,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,YAAY,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACzB,UAAU;oBACV,WAAW,EAAE,IAAI,CAAC,IAAI;iBACvB,CAAC,CAAC;gBACH,MAAM,CAAC,oCAAoC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,iBAA+B;IACtE,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"anti-pattern-detector.js","sourceRoot":"","sources":["../src/anti-pattern-detector.ts"],"names":[],"mappings":"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"}
|