claude-skill-lint 0.4.0 → 0.5.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 +32 -31
- package/dist/validate-graph.d.ts.map +1 -1
- package/dist/validate-graph.js +130 -28
- package/dist/validate-graph.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,42 +16,16 @@ Caught in under two seconds. No LLM calls. Deterministic.
|
|
|
16
16
|
|
|
17
17
|
"Tolerate" is not "work correctly."
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Companion: /te-review
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|-|-------------|-------------|
|
|
23
|
-
| **What** | Structural validation | Token efficiency audit |
|
|
24
|
-
| **Speed** | <2s, every PR | ~60s, on demand |
|
|
25
|
-
| **Approach** | Deterministic CI — no LLM | LLM-powered deep analysis |
|
|
26
|
-
| **Catches** | Broken refs, orphans, cycles, collisions, parse errors, size violations, quality regressions | Redundant content, output format waste, instruction bloat, model routing, architecture-level optimization |
|
|
21
|
+
This repo also includes [`/te-review`](skills/te-review.md), an LLM-powered deep audit skill that goes beyond structural validation — analyzing token efficiency, redundancy, output constraints, and instruction quality. It produces a scored assessment (0-24) with estimated token savings per fix.
|
|
27
22
|
|
|
28
|
-
claude-skill-lint
|
|
29
|
-
|
|
30
|
-
We ran te-review against itself. It scored 20/24. The main finding: the skill didn't constrain its own output the way it tells others to. After adding "top 5 findings per category" and "each subagent returns top 10 findings only," estimated output token savings on large suite reviews dropped by ~50%. The tool practices what it preaches.
|
|
31
|
-
|
|
32
|
-
Install the deep audit skill from the [repository](https://github.com/shinytoyrobots/claude-skills-linter/blob/main/skills/te-review.md):
|
|
23
|
+
claude-skill-lint catches structural bugs deterministically in CI. `/te-review` is an on-demand complement for deeper optimization.
|
|
33
24
|
|
|
34
25
|
```bash
|
|
35
26
|
curl -o ~/.claude/commands/te-review.md https://raw.githubusercontent.com/shinytoyrobots/claude-skills-linter/main/skills/te-review.md
|
|
36
27
|
```
|
|
37
28
|
|
|
38
|
-
Then in any Claude Code session:
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
/te-review suite # Full suite audit (scored 0-24)
|
|
42
|
-
/te-review audit my-skill # Single skill deep dive
|
|
43
|
-
/te-review compare old.md new.md # Before/after token impact
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### What te-review checks
|
|
47
|
-
|
|
48
|
-
Four sequential passes, each producing up to 5 findings per severity level:
|
|
49
|
-
|
|
50
|
-
1. **Structural Audit** — CLAUDE.md bloat, unused tool declarations, reference depth, subagent model routing, file size
|
|
51
|
-
2. **Redundancy Detection** — skill-context overlap, cross-skill duplication, CLAUDE.md-skill overlap. High-fanout context files are flagged as highest-ROI optimization targets.
|
|
52
|
-
3. **Output Efficiency** — missing format constraints, missing conciseness directives, unbounded output sections, prose where structured would suffice. Output tokens cost 5x input — this pass often finds the biggest savings.
|
|
53
|
-
4. **Instruction Quality** — motivational fluff, politeness tokens, filler phrases, default-behavior instructions, conflicting constraints, emphasis overuse
|
|
54
|
-
|
|
55
29
|
## What It Actually Found
|
|
56
30
|
|
|
57
31
|
### Against a 139-file shared skill suite
|
|
@@ -67,10 +41,10 @@ The headline: `inv-output-conventions.md` was renamed to `inv-output-patterns.md
|
|
|
67
41
|
|
|
68
42
|
```
|
|
69
43
|
$ claude-skill-lint graph ~/Development/anthropic-skills/
|
|
70
|
-
✖
|
|
44
|
+
✖ 14 errors and 24 warnings in 37 files (72 files checked)
|
|
71
45
|
```
|
|
72
46
|
|
|
73
|
-
Name
|
|
47
|
+
Name collisions in the `claude-api` skill — five language-specific `claude-api.md` files (PHP, Java, Ruby, Go, C#) all resolve to the same canonical name, plus Python/TypeScript duplicates for `tool-use.md`, `streaming.md`, `files-api.md`, and `batches.md`. One genuinely broken `./README.md` reference. Orphaned theme files in `theme-factory` (loaded dynamically, not via static references) and shared context files referenced only from other context files. All legitimate structural findings.
|
|
74
48
|
|
|
75
49
|
### Against a multi-plugin production repo
|
|
76
50
|
|
|
@@ -336,6 +310,16 @@ graph:
|
|
|
336
310
|
|
|
337
311
|
## CI Integration
|
|
338
312
|
|
|
313
|
+
### Exit Codes
|
|
314
|
+
|
|
315
|
+
| Code | Meaning |
|
|
316
|
+
|------|---------|
|
|
317
|
+
| `0` | Clean — no errors (warnings don't fail by default) |
|
|
318
|
+
| `1` | Errors found (or warnings with `--strict`) |
|
|
319
|
+
| `2` | Configuration or git error |
|
|
320
|
+
|
|
321
|
+
By default, **warnings are informational** — orphaned files and minor issues appear as annotations but don't fail the build. Add `--strict` to treat warnings as errors and fail on any finding.
|
|
322
|
+
|
|
339
323
|
### GitHub Actions
|
|
340
324
|
|
|
341
325
|
```yaml
|
|
@@ -366,6 +350,13 @@ jobs:
|
|
|
366
350
|
run: claude-skill-lint lint . --ratchet --base origin/${{ github.base_ref }} --format github
|
|
367
351
|
```
|
|
368
352
|
|
|
353
|
+
To fail on warnings too, add `--strict` to any step:
|
|
354
|
+
|
|
355
|
+
```yaml
|
|
356
|
+
- name: Graph validation (strict)
|
|
357
|
+
run: claude-skill-lint graph . --format github --strict
|
|
358
|
+
```
|
|
359
|
+
|
|
369
360
|
`--format github` produces annotations that appear inline on PR diffs.
|
|
370
361
|
|
|
371
362
|
### Pre-commit Hook
|
|
@@ -378,6 +369,16 @@ if [ -n "$STAGED" ]; then
|
|
|
378
369
|
fi
|
|
379
370
|
```
|
|
380
371
|
|
|
372
|
+
## Programmatic API
|
|
373
|
+
|
|
374
|
+
All core functions are exported for integration into custom tooling:
|
|
375
|
+
|
|
376
|
+
```ts
|
|
377
|
+
import { runLint, runGraph, loadConfig, validateFrontmatter, extractFile } from 'claude-skill-lint';
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
See the [package exports](src/index.ts) for the full API surface.
|
|
381
|
+
|
|
381
382
|
## License
|
|
382
383
|
|
|
383
384
|
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-graph.d.ts","sourceRoot":"","sources":["../src/validate-graph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-graph.d.ts","sourceRoot":"","sources":["../src/validate-graph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA0OtF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAcxF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAa5E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAaxE;AAsiBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB,EAAE,CAoCpB"}
|
package/dist/validate-graph.js
CHANGED
|
@@ -148,6 +148,50 @@ function buildPathToFile(files) {
|
|
|
148
148
|
}
|
|
149
149
|
return map;
|
|
150
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Build a set of skill root directories by scanning for SKILL.md on disk.
|
|
153
|
+
*
|
|
154
|
+
* In plugin/multi-plugin format, each skill lives under a directory containing
|
|
155
|
+
* SKILL.md (e.g., `skills/claude-api/SKILL.md`). Bare references like
|
|
156
|
+
* `shared/prompt-caching.md` are written relative to this skill root, not
|
|
157
|
+
* relative to the referencing file's own directory.
|
|
158
|
+
*
|
|
159
|
+
* We scan disk rather than the error-free file set because SKILL.md may have
|
|
160
|
+
* parse errors but still marks the skill root directory.
|
|
161
|
+
*/
|
|
162
|
+
function buildSkillRoots(files) {
|
|
163
|
+
const roots = new Set();
|
|
164
|
+
// First: add directories of all SKILL.md files found in the extract results
|
|
165
|
+
// (regardless of errors — the file still marks a skill root).
|
|
166
|
+
for (const file of files) {
|
|
167
|
+
if (basename(file.filePath) === 'SKILL.md') {
|
|
168
|
+
roots.add(dirname(file.filePath));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return roots;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Find the skill root directory for a given file by walking up to a known root.
|
|
175
|
+
*
|
|
176
|
+
* Returns the directory containing SKILL.md, or undefined if not found
|
|
177
|
+
* before reaching rootDir.
|
|
178
|
+
*/
|
|
179
|
+
function findSkillRoot(filePath, skillRoots, rootDir) {
|
|
180
|
+
let dir = dirname(filePath);
|
|
181
|
+
while (true) {
|
|
182
|
+
if (skillRoots.has(dir)) {
|
|
183
|
+
return dir;
|
|
184
|
+
}
|
|
185
|
+
const parent = dirname(dir);
|
|
186
|
+
if (parent === dir)
|
|
187
|
+
break;
|
|
188
|
+
// Don't walk above rootDir.
|
|
189
|
+
if (dir === rootDir)
|
|
190
|
+
break;
|
|
191
|
+
dir = parent;
|
|
192
|
+
}
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
151
195
|
/**
|
|
152
196
|
* Extract canonical (non-relative) references from a single file's body text.
|
|
153
197
|
* Returns an array of { raw, normalized } reference objects.
|
|
@@ -219,7 +263,7 @@ function escapesRepo(resolvedPath, rootDir) {
|
|
|
219
263
|
* For legacy-commands: canonical name resolution only.
|
|
220
264
|
* For plugin/multi-plugin: relative path resolution first, then canonical fallback.
|
|
221
265
|
*/
|
|
222
|
-
function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet, pathToFile, index) {
|
|
266
|
+
function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet, pathToFile, index, skillRoots) {
|
|
223
267
|
const resolved = [];
|
|
224
268
|
const seenNormalized = new Set();
|
|
225
269
|
const isPluginFormat = format === 'plugin' || format === 'multi-plugin';
|
|
@@ -256,13 +300,31 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
|
|
|
256
300
|
seenNormalized.add(cn);
|
|
257
301
|
}
|
|
258
302
|
else {
|
|
259
|
-
//
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
303
|
+
// File-relative didn't resolve — try skill-root-relative.
|
|
304
|
+
const skillRoot = findSkillRoot(sourceFilePath, skillRoots, rootDir);
|
|
305
|
+
const absFromSkillRoot = skillRoot ? resolve(skillRoot, ref.raw) : undefined;
|
|
306
|
+
if (absFromSkillRoot && !escapesRepo(absFromSkillRoot, rootDir) && filePathSet.has(absFromSkillRoot)) {
|
|
307
|
+
const targetFile = pathToFile.get(absFromSkillRoot);
|
|
308
|
+
const cn = targetFile
|
|
309
|
+
? canonicalName(targetFile.filePath, targetFile.fileType)
|
|
310
|
+
: ref.raw;
|
|
311
|
+
resolved.push({
|
|
312
|
+
raw: ref.raw,
|
|
313
|
+
normalized: cn,
|
|
314
|
+
isRelative: true,
|
|
315
|
+
resolvedPath: absFromSkillRoot,
|
|
316
|
+
});
|
|
317
|
+
seenNormalized.add(cn);
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
// Neither file-relative nor skill-root-relative resolved — broken.
|
|
321
|
+
resolved.push({
|
|
322
|
+
raw: ref.raw,
|
|
323
|
+
normalized: ref.raw,
|
|
324
|
+
isRelative: true,
|
|
325
|
+
});
|
|
326
|
+
seenNormalized.add(ref.raw);
|
|
327
|
+
}
|
|
266
328
|
}
|
|
267
329
|
}
|
|
268
330
|
}
|
|
@@ -274,7 +336,7 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
|
|
|
274
336
|
// Skip if already seen (e.g., matched by RELATIVE_REF_PATTERN).
|
|
275
337
|
if (seenNormalized.has(ref.raw))
|
|
276
338
|
continue;
|
|
277
|
-
// Try relative resolution first.
|
|
339
|
+
// Try file-relative resolution first.
|
|
278
340
|
const absPath = resolve(sourceDir, ref.raw);
|
|
279
341
|
if (!escapesRepo(absPath, rootDir) && filePathSet.has(absPath)) {
|
|
280
342
|
const targetFile = pathToFile.get(absPath);
|
|
@@ -290,8 +352,24 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
|
|
|
290
352
|
seenNormalized.add(cn);
|
|
291
353
|
}
|
|
292
354
|
else {
|
|
293
|
-
//
|
|
294
|
-
|
|
355
|
+
// File-relative didn't resolve — try skill-root-relative.
|
|
356
|
+
const skillRoot = findSkillRoot(sourceFilePath, skillRoots, rootDir);
|
|
357
|
+
const absFromSkillRoot = skillRoot ? resolve(skillRoot, ref.raw) : undefined;
|
|
358
|
+
if (absFromSkillRoot && !escapesRepo(absFromSkillRoot, rootDir) && filePathSet.has(absFromSkillRoot)) {
|
|
359
|
+
const targetFile = pathToFile.get(absFromSkillRoot);
|
|
360
|
+
const cn = targetFile
|
|
361
|
+
? canonicalName(targetFile.filePath, targetFile.fileType)
|
|
362
|
+
: ref.raw;
|
|
363
|
+
resolved.push({
|
|
364
|
+
raw: ref.raw,
|
|
365
|
+
normalized: cn,
|
|
366
|
+
isRelative: true,
|
|
367
|
+
resolvedPath: absFromSkillRoot,
|
|
368
|
+
});
|
|
369
|
+
seenNormalized.add(cn);
|
|
370
|
+
}
|
|
371
|
+
else if (index.nameToPath.has(ref.raw)) {
|
|
372
|
+
// Canonical fallback.
|
|
295
373
|
resolved.push({
|
|
296
374
|
raw: ref.raw,
|
|
297
375
|
normalized: ref.raw,
|
|
@@ -300,7 +378,7 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
|
|
|
300
378
|
seenNormalized.add(ref.raw);
|
|
301
379
|
}
|
|
302
380
|
else {
|
|
303
|
-
//
|
|
381
|
+
// No resolution strategy worked — broken ref.
|
|
304
382
|
resolved.push({
|
|
305
383
|
raw: ref.raw,
|
|
306
384
|
normalized: ref.raw,
|
|
@@ -341,13 +419,35 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
|
|
|
341
419
|
seenNormalized.add(ref.normalized);
|
|
342
420
|
}
|
|
343
421
|
else {
|
|
344
|
-
//
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
422
|
+
// File-relative didn't resolve — try skill-root-relative.
|
|
423
|
+
const rawPath = ref.raw.startsWith(INSTALLED_PREFIX)
|
|
424
|
+
? ref.raw.slice(INSTALLED_PREFIX.length)
|
|
425
|
+
: ref.raw;
|
|
426
|
+
const skillRoot = findSkillRoot(sourceFilePath, skillRoots, rootDir);
|
|
427
|
+
const absFromSkillRoot = skillRoot ? resolve(skillRoot, rawPath) : undefined;
|
|
428
|
+
if (absFromSkillRoot && !escapesRepo(absFromSkillRoot, rootDir) && filePathSet.has(absFromSkillRoot)) {
|
|
429
|
+
const targetFile = pathToFile.get(absFromSkillRoot);
|
|
430
|
+
const cn = targetFile
|
|
431
|
+
? canonicalName(targetFile.filePath, targetFile.fileType)
|
|
432
|
+
: ref.normalized;
|
|
433
|
+
resolved.push({
|
|
434
|
+
raw: ref.raw,
|
|
435
|
+
normalized: cn,
|
|
436
|
+
isRelative: true,
|
|
437
|
+
resolvedPath: absFromSkillRoot,
|
|
438
|
+
});
|
|
439
|
+
seenNormalized.add(cn);
|
|
440
|
+
seenNormalized.add(ref.normalized);
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
// Fall through to canonical resolution.
|
|
444
|
+
seenNormalized.add(ref.normalized);
|
|
445
|
+
resolved.push({
|
|
446
|
+
raw: ref.raw,
|
|
447
|
+
normalized: ref.normalized,
|
|
448
|
+
isRelative: false,
|
|
449
|
+
});
|
|
450
|
+
}
|
|
351
451
|
}
|
|
352
452
|
}
|
|
353
453
|
}
|
|
@@ -371,13 +471,13 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
|
|
|
371
471
|
* Detect broken references: references that don't resolve to any file
|
|
372
472
|
* via canonical name lookup or relative path resolution.
|
|
373
473
|
*/
|
|
374
|
-
function detectBrokenRefs(files, index, format, rootDir, filePathSet, pathToFile) {
|
|
474
|
+
function detectBrokenRefs(files, index, format, rootDir, filePathSet, pathToFile, skillRoots) {
|
|
375
475
|
const results = [];
|
|
376
476
|
for (const file of files) {
|
|
377
477
|
if (file.errors.length > 0)
|
|
378
478
|
continue;
|
|
379
479
|
const bodyText = file.data['___body_text'] ?? '';
|
|
380
|
-
const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index);
|
|
480
|
+
const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index, skillRoots);
|
|
381
481
|
for (const ref of refs) {
|
|
382
482
|
if (ref.resolvedPath)
|
|
383
483
|
continue; // Successfully resolved via relative path.
|
|
@@ -423,7 +523,7 @@ function detectBrokenRefs(files, index, format, rootDir, filePathSet, pathToFile
|
|
|
423
523
|
* For legacy-commands: only command files are referencing entities.
|
|
424
524
|
* For plugin/multi-plugin: both command and skill files are referencing entities.
|
|
425
525
|
*/
|
|
426
|
-
function detectOrphans(files, format, rootDir, filePathSet, pathToFile, index) {
|
|
526
|
+
function detectOrphans(files, format, rootDir, filePathSet, pathToFile, index, skillRoots) {
|
|
427
527
|
const results = [];
|
|
428
528
|
const isPluginFormat = format === 'plugin' || format === 'multi-plugin';
|
|
429
529
|
// Collect all canonical names referenced from command (and skill) files.
|
|
@@ -439,7 +539,7 @@ function detectOrphans(files, format, rootDir, filePathSet, pathToFile, index) {
|
|
|
439
539
|
if (!referencingTypes.has(file.fileType))
|
|
440
540
|
continue;
|
|
441
541
|
const bodyText = file.data['___body_text'] ?? '';
|
|
442
|
-
const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index);
|
|
542
|
+
const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index, skillRoots);
|
|
443
543
|
for (const ref of refs) {
|
|
444
544
|
referencedCanonical.add(ref.normalized);
|
|
445
545
|
// AC-6: If resolved via relative path, also add the canonical name of the target.
|
|
@@ -514,7 +614,7 @@ function detectDuplicates(files) {
|
|
|
514
614
|
* AC-9: For plugin format, adjacency uses canonical names derived from resolved
|
|
515
615
|
* relative paths.
|
|
516
616
|
*/
|
|
517
|
-
function detectCycles(files, index, format, rootDir, filePathSet, pathToFile) {
|
|
617
|
+
function detectCycles(files, index, format, rootDir, filePathSet, pathToFile, skillRoots) {
|
|
518
618
|
const results = [];
|
|
519
619
|
// Build adjacency list using canonical names.
|
|
520
620
|
const adjacency = new Map();
|
|
@@ -525,7 +625,7 @@ function detectCycles(files, index, format, rootDir, filePathSet, pathToFile) {
|
|
|
525
625
|
const key = canonicalName(file.filePath, file.fileType);
|
|
526
626
|
keyToFilePath.set(key, file.filePath);
|
|
527
627
|
const bodyText = file.data['___body_text'] ?? '';
|
|
528
|
-
const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index);
|
|
628
|
+
const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index, skillRoots);
|
|
529
629
|
const targets = refs
|
|
530
630
|
.map((r) => r.normalized)
|
|
531
631
|
.filter((t) => index.nameToPath.has(t));
|
|
@@ -630,13 +730,15 @@ export function validateGraph(files, config, rootDir) {
|
|
|
630
730
|
// Build file path set and reverse index for relative path resolution.
|
|
631
731
|
const filePathSet = buildFilePathSet(files);
|
|
632
732
|
const pathToFile = buildPathToFile(files);
|
|
733
|
+
// Build skill root directories for skill-root-relative reference resolution.
|
|
734
|
+
const skillRoots = buildSkillRoots(files);
|
|
633
735
|
// Name collisions (always checked — these are install-time bugs).
|
|
634
736
|
results.push(...detectNameCollisions(index));
|
|
635
737
|
// Broken references.
|
|
636
|
-
results.push(...detectBrokenRefs(files, index, format, rootDir, filePathSet, pathToFile));
|
|
738
|
+
results.push(...detectBrokenRefs(files, index, format, rootDir, filePathSet, pathToFile, skillRoots));
|
|
637
739
|
// Orphaned files (only if enabled).
|
|
638
740
|
if (config.graph.warn_orphans) {
|
|
639
|
-
results.push(...detectOrphans(files, format, rootDir, filePathSet, pathToFile, index));
|
|
741
|
+
results.push(...detectOrphans(files, format, rootDir, filePathSet, pathToFile, index, skillRoots));
|
|
640
742
|
}
|
|
641
743
|
// Duplicate content (only if enabled).
|
|
642
744
|
if (config.graph.detect_duplicates) {
|
|
@@ -644,7 +746,7 @@ export function validateGraph(files, config, rootDir) {
|
|
|
644
746
|
}
|
|
645
747
|
// Cycle detection (only if enabled).
|
|
646
748
|
if (config.graph.detect_cycles) {
|
|
647
|
-
results.push(...detectCycles(files, index, format, rootDir, filePathSet, pathToFile));
|
|
749
|
+
results.push(...detectCycles(files, index, format, rootDir, filePathSet, pathToFile, skillRoots));
|
|
648
750
|
}
|
|
649
751
|
return results;
|
|
650
752
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-graph.js","sourceRoot":"","sources":["../src/validate-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGjE;;;GAGG;AACH,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,GACf,+FAA+F,CAAC;AAElG;;;;;;;;;;GAUG;AACH,MAAM,oBAAoB,GACxB,qBAAqB,CAAC;AAExB;;;GAGG;AACH,MAAM,0BAA0B,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAE9F;;;;;;;;;;GAUG;AACH,MAAM,gBAAgB,GAAG,IAAI,MAAM,CACjC,uBAAuB,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,EACtF,GAAG,CACJ,CAAC;AAEF;;;;;GAKG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,MAAc;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,mCAAmC;IACnC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,QAAgB,EAAE,QAAgB;IACvD,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO;QAC/B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvB,kEAAkE;IAClE,MAAM,OAAO,GACX,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACrC,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACpC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACjC,QAAQ,CAAC,CAAC,kDAAkD;IAC9D,OAAO,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;AAC9B,CAAC;AAaD,SAAS,mBAAmB,CAAC,KAAsB;IACjD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACrC,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,gCAAgC;YAChC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,KAAsB;IAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,KAAsB;IAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACrC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,IAAI,GAA+C,EAAE,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,YAAoB,EAAE,OAAe;IACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC5C,4DAA4D;IAC5D,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,QAAgB,EAChB,cAAsB,EACtB,MAA8B,EAC9B,OAA2B,EAC3B,WAAwB,EACxB,UAAsC,EACtC,KAAqB;IAErB,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,MAAM,cAAc,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,cAAc,CAAC;IAExE,6DAA6D;IAC7D,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAE5C,+BAA+B;YAC/B,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,UAAU,EAAE,GAAG,CAAC,GAAG;oBACnB,UAAU,EAAE,IAAI;oBAChB,mEAAmE;iBACpE,CAAC,CAAC;gBACH,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,qDAAqD;YACrD,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,iDAAiD;gBACjD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC3C,MAAM,EAAE,GAAG,UAAU;oBACnB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;oBACzD,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBAEZ,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,OAAO;iBACtB,CAAC,CAAC;gBACH,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,4DAA4D;gBAC5D,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,UAAU,EAAE,GAAG,CAAC,GAAG;oBACnB,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;gBACH,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,gEAAgE;YAChE,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAE1C,iCAAiC;YACjC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAE5C,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/D,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC3C,MAAM,EAAE,GAAG,UAAU;oBACnB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;oBACzD,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBAEZ,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,OAAO;iBACtB,CAAC,CAAC;gBACH,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,qEAAqE;gBACrE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,QAAQ,CAAC,IAAI,CAAC;wBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,UAAU,EAAE,GAAG,CAAC,GAAG;wBACnB,UAAU,EAAE,KAAK;qBAClB,CAAC,CAAC;oBACH,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,wDAAwD;oBACxD,QAAQ,CAAC,IAAI,CAAC;wBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,UAAU,EAAE,GAAG,CAAC,GAAG;wBACnB,UAAU,EAAE,IAAI;qBACjB,CAAC,CAAC;oBACH,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,2EAA2E;IAC3E,+CAA+C;IAC/C,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,qDAAqD;YACrD,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,SAAS;YAEjD,iCAAiC;YACjC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC;gBACrE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;gBACxC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEb,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/D,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC3C,MAAM,EAAE,GAAG,UAAU;oBACnB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;oBACzD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;gBAEnB,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,OAAO;iBACtB,CAAC,CAAC;gBACH,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvB,4EAA4E;gBAC5E,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACnC,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,0DAA0D;QAC1D,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACnC,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACvB,KAAsB,EACtB,KAAqB,EACrB,MAA8B,EAC9B,OAA2B,EAC3B,WAAwB,EACxB,UAAsC;IAEtC,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAErC,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAY,IAAI,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,cAAc,CACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CACzE,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,YAAY;gBAAE,SAAS,CAAC,2CAA2C;YAE3E,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACnB,oCAAoC;gBACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,OAAO;oBACrB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;oBAC1C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACjE,MAAM,OAAO,GAAG,QAAQ;oBACtB,CAAC,CAAC,wBAAwB,GAAG,CAAC,GAAG,sCAAsC;oBACvE,CAAC,CAAC,wBAAwB,GAAG,CAAC,GAAG,GAAG,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,kBAAkB;oBACxB,QAAQ,EAAE,OAAO;oBACjB,OAAO;oBACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,uCAAuC;gBACvC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;oBACzC,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,IAAI,EAAE,kBAAkB;wBACxB,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,wBAAwB,GAAG,CAAC,UAAU,GAAG;wBAClD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACxC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CACpB,KAAsB,EACtB,MAA8B,EAC9B,OAA2B,EAC3B,WAAwB,EACxB,UAAsC,EACtC,KAAqB;IAErB,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,MAAM,cAAc,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,cAAc,CAAC;IAExE,yEAAyE;IACzE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE9C,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,IAAI,cAAc,EAAE,CAAC;QACnB,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACrC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEnD,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAY,IAAI,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,cAAc,CACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CACzE,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxC,kFAAkF;YAClF,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACpD,IAAI,UAAU,EAAE,CAAC;oBACf,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACrC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO;YAAE,SAAS;QAEvE,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,iCAAiC,WAAW,EAAE;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAsB;IAC9C,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,yBAAyB;IAEpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAErC,iDAAiD;QACjD,iDAAiD;QACjD,qFAAqF;QACrF,+EAA+E;QAC/E,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAY,IAAI,EAAE,CAAC;QAC7D,MAAM,YAAY,GAA4B,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC;QAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,mBAAmB;gBACzB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,qCAAqC,QAAQ,GAAG;aAC1D,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AASD;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,KAAsB,EACtB,KAAqB,EACrB,MAA8B,EAC9B,OAA2B,EAC3B,WAAwB,EACxB,UAAsC;IAEtC,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,8CAA8C;IAC9C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAErC,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtC,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAY,IAAI,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,cAAc,CACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CACzE,CAAC;QACF,MAAM,OAAO,GAAG,IAAI;aACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1C,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,uBAAuB;IACvB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;IACvC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,KAAK,CAAC,GAAG,CAAC,GAAG,sBAAc,CAAC;IAC9B,CAAC;IAED,SAAS,GAAG,CAAC,IAAY,EAAE,IAAc;QACvC,KAAK,CAAC,GAAG,CAAC,IAAI,qBAAa,CAAC;QAE5B,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE1C,IAAI,aAAa,uBAAe,EAAE,CAAC;gBACjC,0CAA0C;gBAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC1C,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC;oBAC/B,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;oBACvC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,yCAAyC;gBAE/D,uBAAuB;gBACvB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,MAAM,QAAQ,GAAG,GAAG,QAAQ,EAAE,CAAC;oBAC/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAClC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAC7B,OAAO,CAAC,IAAI,CAAC;4BACX,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ;4BACjD,IAAI,EAAE,iBAAiB;4BACvB,QAAQ,EAAE,OAAO;4BACjB,OAAO,EAAE,6BAA6B,QAAQ,MAAM,QAAQ,EAAE;yBAC/D,CAAC,CAAC;oBACL,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,2DAA2D;gBAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC7B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACxC,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;wBACzD,IAAI,EAAE,iBAAiB;wBACvB,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,6BAA6B,SAAS,EAAE;qBAClD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,aAAa,wBAAgB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBACxE,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,yCAAyC;QAC3C,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,IAAI,sBAAc,CAAC;IAC/B,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAgB,EAAE,CAAC;YACnC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAAqB;IACjD,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QAC3C,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC;gBACX,QAAQ;gBACR,IAAI,EAAE,gBAAgB;gBACtB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,qBAAqB,EAAE,iCAAiC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACpF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAsB,EACtB,MAAc,EACd,OAAgB;IAEhB,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAE7B,uDAAuD;IACvD,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAEzC,sEAAsE;IACtE,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAE1C,kEAAkE;IAClE,OAAO,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7C,qBAAqB;IACrB,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1F,oCAAoC;IACpC,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,uCAAuC;IACvC,IAAI,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,qCAAqC;IACrC,IAAI,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"validate-graph.js","sourceRoot":"","sources":["../src/validate-graph.ts"],"names":[],"mappings":"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"}
|