architecture-linter 0.1.5 → 0.1.6
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 +127 -0
- package/dist/baseline.d.ts +29 -0
- package/dist/baseline.d.ts.map +1 -0
- package/dist/baseline.js +54 -0
- package/dist/baseline.js.map +1 -0
- package/dist/circularDetector.d.ts +16 -0
- package/dist/circularDetector.d.ts.map +1 -0
- package/dist/circularDetector.js +78 -0
- package/dist/circularDetector.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +198 -20
- package/dist/cli.js.map +1 -1
- package/dist/monorepo.d.ts +18 -0
- package/dist/monorepo.d.ts.map +1 -0
- package/dist/monorepo.js +61 -0
- package/dist/monorepo.js.map +1 -0
- package/dist/ruleEngine.js +1 -1
- package/dist/ruleEngine.js.map +1 -1
- package/dist/sarifFormatter.d.ts +51 -0
- package/dist/sarifFormatter.d.ts.map +1 -0
- package/dist/sarifFormatter.js +67 -0
- package/dist/sarifFormatter.js.map +1 -0
- package/dist/types.d.ts +18 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -356,6 +356,133 @@ Architecture Health Score
|
|
|
356
356
|
|
|
357
357
|
The score is also included in `scan --format json` output under the `score` key.
|
|
358
358
|
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
### `badge`
|
|
362
|
+
|
|
363
|
+
Generates a [shields.io](https://shields.io) badge URL for the architecture health score. Drop it in your README to show the current grade at a glance.
|
|
364
|
+
|
|
365
|
+
```
|
|
366
|
+
architecture-linter badge [options]
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
| Option | Description | Default |
|
|
370
|
+
|---|---|---|
|
|
371
|
+
| `-c, --context <path>` | Path to `.context.yml` | auto-detect |
|
|
372
|
+
| `-p, --project <path>` | Project root directory | `.` |
|
|
373
|
+
| `-f, --format <format>` | Output format: `url` or `markdown` | `url` |
|
|
374
|
+
| `-o, --output <path>` | Write badge to a file instead of stdout | — |
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
# Print a shields.io URL
|
|
378
|
+
npx architecture-linter badge
|
|
379
|
+
|
|
380
|
+
# Print a Markdown image tag ready to paste into your README
|
|
381
|
+
npx architecture-linter badge --format markdown
|
|
382
|
+
|
|
383
|
+
# Write the badge URL to a file (useful in CI)
|
|
384
|
+
npx architecture-linter badge --output .badge-url.txt
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
Badge colours: **A** = bright green, **B** = green, **C** = yellow, **D** = orange, **F** = red.
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
### `scan --format sarif`
|
|
392
|
+
|
|
393
|
+
Outputs a [SARIF 2.1.0](https://sarifweb.azurewebsites.net/) document — the standard format for GitHub Code Scanning. Upload it with the `github/codeql-action/upload-sarif` action to get violations as native PR annotations.
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
npx architecture-linter scan --format sarif > results.sarif
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
Example GitHub Actions step:
|
|
400
|
+
|
|
401
|
+
```yaml
|
|
402
|
+
- name: Run architecture linter (SARIF)
|
|
403
|
+
run: npx architecture-linter scan --format sarif > arch.sarif
|
|
404
|
+
|
|
405
|
+
- name: Upload SARIF to GitHub Code Scanning
|
|
406
|
+
uses: github/codeql-action/upload-sarif@v3
|
|
407
|
+
with:
|
|
408
|
+
sarif_file: arch.sarif
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
### `scan --baseline` — ratchet mode
|
|
414
|
+
|
|
415
|
+
Saves the current violation count and fails only when violations **increase**. Perfect for adopting the linter on an existing codebase without having to fix everything at once.
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
# First run: creates .arch-baseline.json and exits 0
|
|
419
|
+
npx architecture-linter scan --baseline
|
|
420
|
+
|
|
421
|
+
# Subsequent runs: fails only if violations exceeded the saved baseline
|
|
422
|
+
npx architecture-linter scan --baseline
|
|
423
|
+
|
|
424
|
+
# Explicitly update the baseline after cleaning up violations
|
|
425
|
+
npx architecture-linter scan --baseline --update-baseline
|
|
426
|
+
|
|
427
|
+
# Use a custom baseline file path
|
|
428
|
+
npx architecture-linter scan --baseline baselines/prod.json
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
The baseline file (default `.arch-baseline.json`) records the violation count, timestamp, and tool version. Commit it to track regression over time.
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
### `scan --detect-circular`
|
|
436
|
+
|
|
437
|
+
Detects **circular dependencies between architectural layers** using Tarjan's SCC algorithm. A cycle exists when layer A (transitively) imports layer B which imports back into layer A.
|
|
438
|
+
|
|
439
|
+
```bash
|
|
440
|
+
npx architecture-linter scan --detect-circular
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
Text output example:
|
|
444
|
+
|
|
445
|
+
```
|
|
446
|
+
↻ Circular dependencies detected between layers:
|
|
447
|
+
|
|
448
|
+
controller → service → controller
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
Circular dependencies are also included in `--format json` output under the `circularDeps` key:
|
|
452
|
+
|
|
453
|
+
```json
|
|
454
|
+
{
|
|
455
|
+
"circularDeps": [
|
|
456
|
+
{ "cycle": ["controller", "service", "controller"] }
|
|
457
|
+
]
|
|
458
|
+
}
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
### `scan --monorepo`
|
|
464
|
+
|
|
465
|
+
Scans **all workspace packages** defined in the root `package.json` `workspaces` field. Each package uses its own `.context.yml` if one is present; otherwise falls back to the root config.
|
|
466
|
+
|
|
467
|
+
```bash
|
|
468
|
+
npx architecture-linter scan --monorepo
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
Each package is scanned independently and prefixed in the output:
|
|
472
|
+
|
|
473
|
+
```
|
|
474
|
+
Scanning @myorg/api-gateway...
|
|
475
|
+
✅ No architecture violations found. (12 file(s) scanned)
|
|
476
|
+
|
|
477
|
+
Scanning @myorg/user-service...
|
|
478
|
+
❌ Architecture violation detected
|
|
479
|
+
...
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
The command exits `1` if any package has violations.
|
|
483
|
+
|
|
484
|
+
---
|
|
485
|
+
|
|
359
486
|
### Exit codes
|
|
360
487
|
|
|
361
488
|
| Code | Meaning |
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface BaselineData {
|
|
2
|
+
/** Number of violations recorded when the baseline was saved. */
|
|
3
|
+
violationCount: number;
|
|
4
|
+
/** ISO timestamp of when the baseline was last written. */
|
|
5
|
+
timestamp: string;
|
|
6
|
+
/** Tool version that produced this baseline. */
|
|
7
|
+
version: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Resolves the baseline file path.
|
|
11
|
+
* `basePath` may be absolute or project-relative; defaults to `.arch-baseline.json`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveBaselinePath(basePath: string | undefined, projectDir: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Reads and parses an existing baseline file.
|
|
16
|
+
* Returns `null` if the file does not exist or cannot be parsed.
|
|
17
|
+
*/
|
|
18
|
+
export declare function loadBaseline(baselinePath: string): BaselineData | null;
|
|
19
|
+
/**
|
|
20
|
+
* Writes a baseline file with the current violation count.
|
|
21
|
+
*/
|
|
22
|
+
export declare function saveBaseline(baselinePath: string, violationCount: number, toolVersion: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* Returns `true` when the ratchet should fail — i.e. the current violation
|
|
25
|
+
* count has INCREASED beyond the saved baseline.
|
|
26
|
+
* Returns `false` when violations stayed the same or decreased.
|
|
27
|
+
*/
|
|
28
|
+
export declare function hasRatchetFailed(currentCount: number, baseline: BaselineData): boolean;
|
|
29
|
+
//# sourceMappingURL=baseline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../src/baseline.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAG5F;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAOtE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB,IAAI,CAON;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAEtF"}
|
package/dist/baseline.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.resolveBaselinePath = resolveBaselinePath;
|
|
7
|
+
exports.loadBaseline = loadBaseline;
|
|
8
|
+
exports.saveBaseline = saveBaseline;
|
|
9
|
+
exports.hasRatchetFailed = hasRatchetFailed;
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const DEFAULT_BASELINE_FILE = '.arch-baseline.json';
|
|
13
|
+
/**
|
|
14
|
+
* Resolves the baseline file path.
|
|
15
|
+
* `basePath` may be absolute or project-relative; defaults to `.arch-baseline.json`.
|
|
16
|
+
*/
|
|
17
|
+
function resolveBaselinePath(basePath, projectDir) {
|
|
18
|
+
const p = basePath ?? DEFAULT_BASELINE_FILE;
|
|
19
|
+
return path_1.default.isAbsolute(p) ? p : path_1.default.join(projectDir, p);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Reads and parses an existing baseline file.
|
|
23
|
+
* Returns `null` if the file does not exist or cannot be parsed.
|
|
24
|
+
*/
|
|
25
|
+
function loadBaseline(baselinePath) {
|
|
26
|
+
if (!fs_1.default.existsSync(baselinePath))
|
|
27
|
+
return null;
|
|
28
|
+
try {
|
|
29
|
+
return JSON.parse(fs_1.default.readFileSync(baselinePath, 'utf-8'));
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Writes a baseline file with the current violation count.
|
|
37
|
+
*/
|
|
38
|
+
function saveBaseline(baselinePath, violationCount, toolVersion) {
|
|
39
|
+
const data = {
|
|
40
|
+
violationCount,
|
|
41
|
+
timestamp: new Date().toISOString(),
|
|
42
|
+
version: toolVersion,
|
|
43
|
+
};
|
|
44
|
+
fs_1.default.writeFileSync(baselinePath, JSON.stringify(data, null, 2) + '\n', 'utf-8');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Returns `true` when the ratchet should fail — i.e. the current violation
|
|
48
|
+
* count has INCREASED beyond the saved baseline.
|
|
49
|
+
* Returns `false` when violations stayed the same or decreased.
|
|
50
|
+
*/
|
|
51
|
+
function hasRatchetFailed(currentCount, baseline) {
|
|
52
|
+
return currentCount > baseline.violationCount;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=baseline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../src/baseline.ts"],"names":[],"mappings":";;;;;AAkBA,kDAGC;AAMD,oCAOC;AAKD,oCAWC;AAOD,4CAEC;AA3DD,4CAAoB;AACpB,gDAAwB;AAWxB,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAEpD;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,QAA4B,EAAE,UAAkB;IAClF,MAAM,CAAC,GAAG,QAAQ,IAAI,qBAAqB,CAAC;IAC5C,OAAO,cAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,YAAoB;IAC/C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAiB,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAC1B,YAAoB,EACpB,cAAsB,EACtB,WAAmB;IAEnB,MAAM,IAAI,GAAiB;QACzB,cAAc;QACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,WAAW;KACrB,CAAC;IACF,YAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,YAAoB,EAAE,QAAsB;IAC3E,OAAO,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CircularDep, FileScan } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Detects circular dependencies between architectural layers using Tarjan's
|
|
4
|
+
* Strongly Connected Components (SCC) algorithm.
|
|
5
|
+
*
|
|
6
|
+
* A cycle exists when layer A (transitively) imports layer B which imports
|
|
7
|
+
* back into layer A — e.g. controller → service → controller.
|
|
8
|
+
*
|
|
9
|
+
* Each SCC with more than one node is reported as a circular dependency.
|
|
10
|
+
* Self-loops (a file importing its own layer) are intentionally ignored.
|
|
11
|
+
*
|
|
12
|
+
* @param scans File scan results produced by `scanProject`.
|
|
13
|
+
* @param layers Declared layer names from the architecture config.
|
|
14
|
+
*/
|
|
15
|
+
export declare function detectCircularDependencies(scans: FileScan[], layers: string[]): CircularDep[];
|
|
16
|
+
//# sourceMappingURL=circularDetector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circularDetector.d.ts","sourceRoot":"","sources":["../src/circularDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,MAAM,EAAE,GACf,WAAW,EAAE,CA+Df"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectCircularDependencies = detectCircularDependencies;
|
|
4
|
+
const ruleEngine_1 = require("./ruleEngine");
|
|
5
|
+
/**
|
|
6
|
+
* Detects circular dependencies between architectural layers using Tarjan's
|
|
7
|
+
* Strongly Connected Components (SCC) algorithm.
|
|
8
|
+
*
|
|
9
|
+
* A cycle exists when layer A (transitively) imports layer B which imports
|
|
10
|
+
* back into layer A — e.g. controller → service → controller.
|
|
11
|
+
*
|
|
12
|
+
* Each SCC with more than one node is reported as a circular dependency.
|
|
13
|
+
* Self-loops (a file importing its own layer) are intentionally ignored.
|
|
14
|
+
*
|
|
15
|
+
* @param scans File scan results produced by `scanProject`.
|
|
16
|
+
* @param layers Declared layer names from the architecture config.
|
|
17
|
+
*/
|
|
18
|
+
function detectCircularDependencies(scans, layers) {
|
|
19
|
+
// Build directed adjacency list: layer → set of layers it imports.
|
|
20
|
+
const adj = new Map();
|
|
21
|
+
for (const layer of layers)
|
|
22
|
+
adj.set(layer, new Set());
|
|
23
|
+
for (const scan of scans) {
|
|
24
|
+
const src = (0, ruleEngine_1.detectLayer)(scan.file, layers);
|
|
25
|
+
if (!src)
|
|
26
|
+
continue;
|
|
27
|
+
for (const imp of scan.imports) {
|
|
28
|
+
const tgt = (0, ruleEngine_1.detectLayer)(imp.importPath, layers);
|
|
29
|
+
if (tgt && tgt !== src) {
|
|
30
|
+
adj.get(src).add(tgt);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// ── Tarjan's SCC ────────────────────────────────────────────────────────────
|
|
35
|
+
const index = new Map();
|
|
36
|
+
const lowlink = new Map();
|
|
37
|
+
const onStack = new Set();
|
|
38
|
+
const stack = [];
|
|
39
|
+
const cycles = [];
|
|
40
|
+
let counter = 0;
|
|
41
|
+
const strongconnect = (v) => {
|
|
42
|
+
index.set(v, counter);
|
|
43
|
+
lowlink.set(v, counter);
|
|
44
|
+
counter++;
|
|
45
|
+
stack.push(v);
|
|
46
|
+
onStack.add(v);
|
|
47
|
+
for (const w of adj.get(v)) {
|
|
48
|
+
if (!index.has(w)) {
|
|
49
|
+
strongconnect(w);
|
|
50
|
+
lowlink.set(v, Math.min(lowlink.get(v), lowlink.get(w)));
|
|
51
|
+
}
|
|
52
|
+
else if (onStack.has(w)) {
|
|
53
|
+
lowlink.set(v, Math.min(lowlink.get(v), index.get(w)));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Root of an SCC
|
|
57
|
+
if (lowlink.get(v) === index.get(v)) {
|
|
58
|
+
const scc = [];
|
|
59
|
+
let w;
|
|
60
|
+
do {
|
|
61
|
+
w = stack.pop();
|
|
62
|
+
onStack.delete(w);
|
|
63
|
+
scc.push(w);
|
|
64
|
+
} while (w !== v);
|
|
65
|
+
if (scc.length > 1) {
|
|
66
|
+
// Reverse to restore natural discovery order, then close the cycle.
|
|
67
|
+
const ordered = scc.reverse();
|
|
68
|
+
cycles.push({ cycle: [...ordered, ordered[0]] });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
for (const layer of layers) {
|
|
73
|
+
if (!index.has(layer))
|
|
74
|
+
strongconnect(layer);
|
|
75
|
+
}
|
|
76
|
+
return cycles;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=circularDetector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circularDetector.js","sourceRoot":"","sources":["../src/circularDetector.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* scan Scan the project for architecture violations
|
|
7
7
|
* init Generate a starter .context.yml from the project's folder structure
|
|
8
8
|
* ci Generate a CI workflow file for architecture linting
|
|
9
|
+
* score Calculate architecture health score
|
|
10
|
+
* badge Generate a shields.io badge for the health score
|
|
9
11
|
*/
|
|
10
12
|
export {};
|
|
11
13
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}
|
package/dist/cli.js
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
* scan Scan the project for architecture violations
|
|
8
8
|
* init Generate a starter .context.yml from the project's folder structure
|
|
9
9
|
* ci Generate a CI workflow file for architecture linting
|
|
10
|
+
* score Calculate architecture health score
|
|
11
|
+
* badge Generate a shields.io badge for the health score
|
|
10
12
|
*/
|
|
11
13
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
14
|
if (k2 === undefined) k2 = k;
|
|
@@ -54,27 +56,48 @@ const dependencyScanner_1 = require("./dependencyScanner");
|
|
|
54
56
|
const explainer_1 = require("./explainer");
|
|
55
57
|
const ruleEngine_1 = require("./ruleEngine");
|
|
56
58
|
const scorer_1 = require("./scorer");
|
|
59
|
+
const sarifFormatter_1 = require("./sarifFormatter");
|
|
60
|
+
const circularDetector_1 = require("./circularDetector");
|
|
61
|
+
const baseline_1 = require("./baseline");
|
|
62
|
+
const monorepo_1 = require("./monorepo");
|
|
57
63
|
const aliasResolver_1 = require("./aliasResolver");
|
|
64
|
+
// Tool version — kept in sync with package.json at build time via the version() call below.
|
|
65
|
+
const TOOL_VERSION = (() => {
|
|
66
|
+
try {
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
68
|
+
return require('../package.json').version;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return '0.0.0';
|
|
72
|
+
}
|
|
73
|
+
})();
|
|
58
74
|
const program = new commander_1.Command();
|
|
59
75
|
program
|
|
60
76
|
.name('architecture-linter')
|
|
61
77
|
.description('Enforce architecture rules in TypeScript projects')
|
|
62
|
-
.version(
|
|
78
|
+
.version(TOOL_VERSION);
|
|
63
79
|
// ── scan ──────────────────────────────────────────────────────────────────────
|
|
64
80
|
program
|
|
65
81
|
.command('scan')
|
|
66
82
|
.description('Scan the project for architecture violations')
|
|
67
83
|
.option('-c, --context <path>', 'path to the .context.yml config file (auto-detected if omitted)')
|
|
68
84
|
.option('-p, --project <path>', 'root directory of the project to scan', '.')
|
|
69
|
-
.option('-f, --format <format>', 'output format: text or
|
|
85
|
+
.option('-f, --format <format>', 'output format: text, json, or sarif', 'text')
|
|
70
86
|
.option('-s, --strict', 'report files that do not belong to any declared layer', false)
|
|
71
87
|
.option('-q, --quiet', 'suppress informational output; only print violations', false)
|
|
72
88
|
.option('-e, --explain', 'print why/impact/fix explanation for each violation', false)
|
|
73
89
|
.option('-x, --fix', 'show a suggested fix for each violation', false)
|
|
74
90
|
.option('-w, --watch', 'watch for file changes and re-run the scan automatically', false)
|
|
91
|
+
.option('--baseline [path]', 'enable ratchet mode: fail only when violations increase beyond the saved baseline')
|
|
92
|
+
.option('--update-baseline', 'write current violation count to the baseline file and exit 0', false)
|
|
93
|
+
.option('--detect-circular', 'detect circular dependencies between layers', false)
|
|
94
|
+
.option('--monorepo', 'scan all workspace packages defined in package.json workspaces', false)
|
|
75
95
|
.action(async (options) => {
|
|
76
96
|
const projectDir = path_1.default.resolve(options.project);
|
|
77
|
-
const
|
|
97
|
+
const rawFormat = options.format.toLowerCase();
|
|
98
|
+
const format = (rawFormat === 'json' ? 'json' : rawFormat === 'sarif' ? 'sarif' : 'text');
|
|
99
|
+
// --baseline alone (no value) defaults to true; coerce to undefined so resolveBaselinePath uses default filename
|
|
100
|
+
const baselineArg = options.baseline === true ? undefined : options.baseline;
|
|
78
101
|
const opts = {
|
|
79
102
|
format,
|
|
80
103
|
strict: options.strict,
|
|
@@ -82,6 +105,10 @@ program
|
|
|
82
105
|
explain: options.explain,
|
|
83
106
|
fix: options.fix,
|
|
84
107
|
watch: options.watch,
|
|
108
|
+
useBaseline: options.baseline !== undefined,
|
|
109
|
+
baseline: baselineArg,
|
|
110
|
+
updateBaseline: options.updateBaseline,
|
|
111
|
+
detectCircular: options.detectCircular,
|
|
85
112
|
};
|
|
86
113
|
// Resolve config: explicit flag → auto-detect walking up from project dir → error
|
|
87
114
|
let contextPath;
|
|
@@ -109,11 +136,15 @@ program
|
|
|
109
136
|
// Build alias map: tsconfig.json paths + manual aliases from .context.yml
|
|
110
137
|
const tsconfigAliases = (0, aliasResolver_1.loadTsConfigAliases)(projectDir);
|
|
111
138
|
const aliases = (0, aliasResolver_1.mergeAliases)(tsconfigAliases, config.aliases, projectDir);
|
|
112
|
-
/**
|
|
113
|
-
|
|
139
|
+
/**
|
|
140
|
+
* Execute one full scan pass for a single package.
|
|
141
|
+
* `pkgLabel` is shown as a prefix in monorepo mode.
|
|
142
|
+
* Returns true if the result should cause CI to exit 1.
|
|
143
|
+
*/
|
|
144
|
+
const runPackageScan = async (scanDir, pkgConfig, pkgAliases, pkgLabel) => {
|
|
114
145
|
let scans;
|
|
115
146
|
try {
|
|
116
|
-
scans = await (0, dependencyScanner_1.scanProject)(
|
|
147
|
+
scans = await (0, dependencyScanner_1.scanProject)(scanDir, pkgConfig.exclude ?? [], pkgAliases);
|
|
117
148
|
}
|
|
118
149
|
catch (err) {
|
|
119
150
|
console.error(chalk_1.default.red(`Error scanning project: ${err.message}`));
|
|
@@ -121,41 +152,110 @@ program
|
|
|
121
152
|
}
|
|
122
153
|
if (scans.length === 0) {
|
|
123
154
|
if (format === 'json') {
|
|
124
|
-
console.log(JSON.stringify({ filesScanned: 0, violations: [], unclassifiedFiles: [], violationsByLayer: {} }, null, 2));
|
|
155
|
+
console.log(JSON.stringify({ filesScanned: 0, violations: [], unclassifiedFiles: [], violationsByLayer: {}, circularDeps: [] }, null, 2));
|
|
125
156
|
}
|
|
126
|
-
else {
|
|
127
|
-
console.log(
|
|
157
|
+
else if (format === 'text') {
|
|
158
|
+
console.log(pkgLabel
|
|
159
|
+
? `[${pkgLabel}] No TypeScript files found.`
|
|
160
|
+
: 'No TypeScript files found in the specified directory.');
|
|
128
161
|
}
|
|
129
162
|
return false;
|
|
130
163
|
}
|
|
131
164
|
if (!opts.quiet && format === 'text') {
|
|
132
|
-
console.log(chalk_1.default.bold('Scanning project...\n'));
|
|
165
|
+
console.log(chalk_1.default.bold(pkgLabel ? `Scanning ${pkgLabel}...\n` : 'Scanning project...\n'));
|
|
166
|
+
}
|
|
167
|
+
const result = (0, ruleEngine_1.checkRules)(scans, pkgConfig, opts.strict, opts.fix);
|
|
168
|
+
// Circular detection (mutates circularDeps on the result object)
|
|
169
|
+
if (opts.detectCircular) {
|
|
170
|
+
result.circularDeps = (0, circularDetector_1.detectCircularDependencies)(scans, pkgConfig.architecture.layers);
|
|
171
|
+
}
|
|
172
|
+
// Output
|
|
173
|
+
if (format === 'sarif') {
|
|
174
|
+
console.log(JSON.stringify((0, sarifFormatter_1.toSarif)(result.violations, TOOL_VERSION), null, 2));
|
|
133
175
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
printJson(result, scans.length, opts, scans, config);
|
|
176
|
+
else if (format === 'json') {
|
|
177
|
+
printJson(result, scans.length, opts, scans, pkgConfig);
|
|
137
178
|
}
|
|
138
179
|
else {
|
|
139
180
|
printText(result, scans.length, opts);
|
|
181
|
+
if (opts.detectCircular && result.circularDeps.length > 0) {
|
|
182
|
+
printCircularDeps(result.circularDeps);
|
|
183
|
+
}
|
|
140
184
|
}
|
|
141
|
-
|
|
185
|
+
const violationCount = result.violations.length;
|
|
186
|
+
const hasUnclassified = opts.strict && result.unclassifiedFiles.length > 0;
|
|
187
|
+
const hasCircular = opts.detectCircular && result.circularDeps.length > 0;
|
|
188
|
+
// ── Baseline / ratchet mode ────────────────────────────────────────────
|
|
189
|
+
if (opts.useBaseline || opts.updateBaseline) {
|
|
190
|
+
const bPath = (0, baseline_1.resolveBaselinePath)(opts.baseline, scanDir);
|
|
191
|
+
const existing = (0, baseline_1.loadBaseline)(bPath);
|
|
192
|
+
if (opts.updateBaseline || !existing) {
|
|
193
|
+
(0, baseline_1.saveBaseline)(bPath, violationCount, TOOL_VERSION);
|
|
194
|
+
if (!opts.quiet && format === 'text') {
|
|
195
|
+
const label = pkgLabel ? `[${pkgLabel}] ` : '';
|
|
196
|
+
console.log(chalk_1.default.dim(`${label}Baseline saved: ${violationCount} violation(s) → ${bPath}`));
|
|
197
|
+
}
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
if ((0, baseline_1.hasRatchetFailed)(violationCount, existing)) {
|
|
201
|
+
if (!opts.quiet && format === 'text') {
|
|
202
|
+
console.log(chalk_1.default.red(`Ratchet failed: ${violationCount} violations (was ${existing.violationCount} in baseline)`));
|
|
203
|
+
}
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
if (!opts.quiet && format === 'text') {
|
|
207
|
+
const delta = existing.violationCount - violationCount;
|
|
208
|
+
const note = delta > 0 ? `↓${delta} fewer than baseline` : 'same as baseline';
|
|
209
|
+
console.log(chalk_1.default.green(`Ratchet passed: ${violationCount} violations (${note})`));
|
|
210
|
+
}
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
return violationCount > 0 || hasUnclassified || hasCircular;
|
|
142
214
|
};
|
|
215
|
+
// ── Monorepo mode ─────────────────────────────────────────────────────────
|
|
216
|
+
if (options.monorepo) {
|
|
217
|
+
const packages = (0, monorepo_1.discoverWorkspacePackages)(projectDir);
|
|
218
|
+
if (packages.length === 0) {
|
|
219
|
+
console.error(chalk_1.default.yellow('No workspace packages found. Make sure your root package.json has a "workspaces" field.'));
|
|
220
|
+
process.exit(1);
|
|
221
|
+
}
|
|
222
|
+
let anyIssues = false;
|
|
223
|
+
for (const pkg of packages) {
|
|
224
|
+
const pkgContextFile = (0, contextParser_1.findContextFile)(pkg.dir) ?? contextPath;
|
|
225
|
+
let pkgConfig;
|
|
226
|
+
try {
|
|
227
|
+
pkgConfig = (0, contextParser_1.loadContextConfig)(pkgContextFile);
|
|
228
|
+
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
console.error(chalk_1.default.red(`[${pkg.name}] Error loading config: ${err.message}`));
|
|
231
|
+
anyIssues = true;
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
const pkgTscAliases = (0, aliasResolver_1.loadTsConfigAliases)(pkg.dir);
|
|
235
|
+
const pkgAliases = (0, aliasResolver_1.mergeAliases)(pkgTscAliases, pkgConfig.aliases, pkg.dir);
|
|
236
|
+
const pkgIssues = await runPackageScan(pkg.dir, pkgConfig, pkgAliases, pkg.name);
|
|
237
|
+
if (pkgIssues)
|
|
238
|
+
anyIssues = true;
|
|
239
|
+
}
|
|
240
|
+
process.exit(anyIssues ? 1 : 0);
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
// ── Single-package scan ───────────────────────────────────────────────────
|
|
143
244
|
if (opts.watch) {
|
|
144
|
-
// Dynamic import keeps chokidar out of the startup path for non-watch runs
|
|
145
245
|
const chokidar = await Promise.resolve().then(() => __importStar(require('chokidar')));
|
|
146
246
|
console.log(chalk_1.default.dim('Watching for file changes… (press Ctrl+C to stop)\n'));
|
|
147
247
|
let running = false;
|
|
148
248
|
const onChange = async (changedPath) => {
|
|
149
249
|
if (running)
|
|
150
|
-
return;
|
|
250
|
+
return;
|
|
151
251
|
running = true;
|
|
152
252
|
if (format === 'text') {
|
|
153
|
-
process.stdout.write('\x1Bc');
|
|
253
|
+
process.stdout.write('\x1Bc');
|
|
154
254
|
if (changedPath) {
|
|
155
255
|
console.log(chalk_1.default.dim(`Change detected: ${path_1.default.relative(projectDir, changedPath)}\n`));
|
|
156
256
|
}
|
|
157
257
|
}
|
|
158
|
-
await
|
|
258
|
+
await runPackageScan(projectDir, config, aliases);
|
|
159
259
|
running = false;
|
|
160
260
|
};
|
|
161
261
|
const watcher = chokidar.watch('**/*.ts', {
|
|
@@ -168,11 +268,10 @@ program
|
|
|
168
268
|
watcher.on('change', (p) => onChange(path_1.default.join(projectDir, p)));
|
|
169
269
|
watcher.on('add', (p) => onChange(path_1.default.join(projectDir, p)));
|
|
170
270
|
watcher.on('unlink', () => onChange());
|
|
171
|
-
// Keep process alive
|
|
172
271
|
process.stdin.resume();
|
|
173
272
|
}
|
|
174
273
|
else {
|
|
175
|
-
const hasIssues = await
|
|
274
|
+
const hasIssues = await runPackageScan(projectDir, config, aliases);
|
|
176
275
|
process.exit(hasIssues ? 1 : 0);
|
|
177
276
|
}
|
|
178
277
|
});
|
|
@@ -395,6 +494,76 @@ program
|
|
|
395
494
|
}
|
|
396
495
|
process.exit(0);
|
|
397
496
|
});
|
|
497
|
+
// ── badge ─────────────────────────────────────────────────────────────────────
|
|
498
|
+
const BADGE_COLOURS = {
|
|
499
|
+
A: 'brightgreen',
|
|
500
|
+
B: 'green',
|
|
501
|
+
C: 'yellow',
|
|
502
|
+
D: 'orange',
|
|
503
|
+
F: 'red',
|
|
504
|
+
};
|
|
505
|
+
program
|
|
506
|
+
.command('badge')
|
|
507
|
+
.description('Generate a shields.io badge URL for the architecture health score')
|
|
508
|
+
.option('-c, --context <path>', 'path to the .context.yml config file (auto-detected if omitted)')
|
|
509
|
+
.option('-p, --project <path>', 'root directory of the project to scan', '.')
|
|
510
|
+
.option('-f, --format <format>', 'output format: url or markdown', 'url')
|
|
511
|
+
.option('-o, --output <path>', 'write output to a file instead of stdout')
|
|
512
|
+
.action(async (options) => {
|
|
513
|
+
const projectDir = path_1.default.resolve(options.project);
|
|
514
|
+
let contextPath;
|
|
515
|
+
if (options.context) {
|
|
516
|
+
contextPath = path_1.default.resolve(options.context);
|
|
517
|
+
}
|
|
518
|
+
else {
|
|
519
|
+
const found = (0, contextParser_1.findContextFile)(projectDir);
|
|
520
|
+
if (!found) {
|
|
521
|
+
console.error(chalk_1.default.red('Error: No .context.yml found. Run "architecture-linter init" to generate one.'));
|
|
522
|
+
process.exit(1);
|
|
523
|
+
}
|
|
524
|
+
contextPath = found;
|
|
525
|
+
}
|
|
526
|
+
let config;
|
|
527
|
+
try {
|
|
528
|
+
config = (0, contextParser_1.loadContextConfig)(contextPath);
|
|
529
|
+
}
|
|
530
|
+
catch (err) {
|
|
531
|
+
console.error(chalk_1.default.red(`Error loading config: ${err.message}`));
|
|
532
|
+
process.exit(1);
|
|
533
|
+
}
|
|
534
|
+
const tsconfigAliases = (0, aliasResolver_1.loadTsConfigAliases)(projectDir);
|
|
535
|
+
const aliases = (0, aliasResolver_1.mergeAliases)(tsconfigAliases, config.aliases, projectDir);
|
|
536
|
+
let scans;
|
|
537
|
+
try {
|
|
538
|
+
scans = await (0, dependencyScanner_1.scanProject)(projectDir, config.exclude ?? [], aliases);
|
|
539
|
+
}
|
|
540
|
+
catch (err) {
|
|
541
|
+
console.error(chalk_1.default.red(`Error scanning project: ${err.message}`));
|
|
542
|
+
process.exit(1);
|
|
543
|
+
}
|
|
544
|
+
const result = (0, ruleEngine_1.checkRules)(scans, config, true, false);
|
|
545
|
+
const archScore = (0, scorer_1.calculateScore)(scans, result, config);
|
|
546
|
+
const colour = BADGE_COLOURS[archScore.grade] ?? 'lightgrey';
|
|
547
|
+
const label = encodeURIComponent('arch score');
|
|
548
|
+
const message = encodeURIComponent(`${archScore.grade} (${archScore.score}/100)`);
|
|
549
|
+
const url = `https://img.shields.io/badge/${label}-${message}-${colour}`;
|
|
550
|
+
const fmt = options.format.toLowerCase();
|
|
551
|
+
let output;
|
|
552
|
+
if (fmt === 'markdown') {
|
|
553
|
+
output = ``;
|
|
554
|
+
}
|
|
555
|
+
else {
|
|
556
|
+
output = url;
|
|
557
|
+
}
|
|
558
|
+
if (options.output) {
|
|
559
|
+
fs_1.default.writeFileSync(path_1.default.resolve(options.output), output + '\n', 'utf-8');
|
|
560
|
+
console.log(chalk_1.default.green(`Badge written to: ${options.output}`));
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
console.log(output);
|
|
564
|
+
}
|
|
565
|
+
process.exit(0);
|
|
566
|
+
});
|
|
398
567
|
program.parse(process.argv);
|
|
399
568
|
// ── output helpers ────────────────────────────────────────────────────────────
|
|
400
569
|
function printJson(result, filesScanned, opts, scans, config) {
|
|
@@ -410,6 +579,7 @@ function printJson(result, filesScanned, opts, scans, config) {
|
|
|
410
579
|
violations,
|
|
411
580
|
unclassifiedFiles: result.unclassifiedFiles,
|
|
412
581
|
violationsByLayer: result.violationsByLayer,
|
|
582
|
+
circularDeps: result.circularDeps,
|
|
413
583
|
...(scans && config ? { score: (0, scorer_1.calculateScore)(scans, result, config) } : {}),
|
|
414
584
|
}, null, 2));
|
|
415
585
|
}
|
|
@@ -510,4 +680,12 @@ function wordWrap(text, maxWidth, indent) {
|
|
|
510
680
|
lines.push(current);
|
|
511
681
|
return lines.join('\n');
|
|
512
682
|
}
|
|
683
|
+
function printCircularDeps(cycles) {
|
|
684
|
+
console.log();
|
|
685
|
+
console.log(chalk_1.default.magenta.bold('⟳ Circular dependencies detected between layers:\n'));
|
|
686
|
+
for (const { cycle } of cycles) {
|
|
687
|
+
console.log(` ${chalk_1.default.magenta(cycle.join(' → '))}`);
|
|
688
|
+
}
|
|
689
|
+
console.log();
|
|
690
|
+
}
|
|
513
691
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface WorkspacePackage {
|
|
2
|
+
/** Display name (from package.json `name` or directory basename). */
|
|
3
|
+
name: string;
|
|
4
|
+
/** Absolute path to the package directory. */
|
|
5
|
+
dir: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Discovers workspace packages from the root `package.json` `workspaces` field.
|
|
9
|
+
*
|
|
10
|
+
* Supports both the flat array form and the Yarn/npm workspaces object form:
|
|
11
|
+
* workspaces: ["packages/*"]
|
|
12
|
+
* workspaces: { packages: ["packages/*"] }
|
|
13
|
+
*
|
|
14
|
+
* Returns an empty array when no workspaces are configured or `package.json`
|
|
15
|
+
* is absent/unparseable.
|
|
16
|
+
*/
|
|
17
|
+
export declare function discoverWorkspacePackages(rootDir: string): WorkspacePackage[];
|
|
18
|
+
//# sourceMappingURL=monorepo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo.d.ts","sourceRoot":"","sources":["../src/monorepo.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;CACb;AAOD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAyC7E"}
|
package/dist/monorepo.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.discoverWorkspacePackages = discoverWorkspacePackages;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
10
|
+
/**
|
|
11
|
+
* Discovers workspace packages from the root `package.json` `workspaces` field.
|
|
12
|
+
*
|
|
13
|
+
* Supports both the flat array form and the Yarn/npm workspaces object form:
|
|
14
|
+
* workspaces: ["packages/*"]
|
|
15
|
+
* workspaces: { packages: ["packages/*"] }
|
|
16
|
+
*
|
|
17
|
+
* Returns an empty array when no workspaces are configured or `package.json`
|
|
18
|
+
* is absent/unparseable.
|
|
19
|
+
*/
|
|
20
|
+
function discoverWorkspacePackages(rootDir) {
|
|
21
|
+
const pkgPath = path_1.default.join(rootDir, 'package.json');
|
|
22
|
+
if (!fs_1.default.existsSync(pkgPath))
|
|
23
|
+
return [];
|
|
24
|
+
let pkg;
|
|
25
|
+
try {
|
|
26
|
+
pkg = JSON.parse(fs_1.default.readFileSync(pkgPath, 'utf-8'));
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
const { workspaces } = pkg;
|
|
32
|
+
const patterns = Array.isArray(workspaces)
|
|
33
|
+
? workspaces
|
|
34
|
+
: Array.isArray(workspaces?.packages)
|
|
35
|
+
? workspaces.packages
|
|
36
|
+
: [];
|
|
37
|
+
if (patterns.length === 0)
|
|
38
|
+
return [];
|
|
39
|
+
// Resolve each pattern to a glob that matches `package.json` inside each workspace dir.
|
|
40
|
+
const pkgJsonGlobs = patterns.map(p => {
|
|
41
|
+
const stripped = p.replace(/\/$/, '');
|
|
42
|
+
return `${stripped}/package.json`;
|
|
43
|
+
});
|
|
44
|
+
const found = fast_glob_1.default.sync(pkgJsonGlobs, {
|
|
45
|
+
cwd: rootDir,
|
|
46
|
+
absolute: true,
|
|
47
|
+
onlyFiles: true,
|
|
48
|
+
});
|
|
49
|
+
return found.map(pkgJsonPath => {
|
|
50
|
+
const dir = path_1.default.dirname(pkgJsonPath);
|
|
51
|
+
let name = path_1.default.basename(dir);
|
|
52
|
+
try {
|
|
53
|
+
const subPkg = JSON.parse(fs_1.default.readFileSync(pkgJsonPath, 'utf-8'));
|
|
54
|
+
if (subPkg.name)
|
|
55
|
+
name = subPkg.name;
|
|
56
|
+
}
|
|
57
|
+
catch { /* keep basename */ }
|
|
58
|
+
return { name, dir };
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=monorepo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo.js","sourceRoot":"","sources":["../src/monorepo.ts"],"names":[],"mappings":";;;;;AA0BA,8DAyCC;AAnED,4CAAoB;AACpB,gDAAwB;AACxB,0DAA2B;AAc3B;;;;;;;;;GASG;AACH,SAAgB,yBAAyB,CAAC,OAAe;IACvD,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACnD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAY,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;IAC3B,MAAM,QAAQ,GAAa,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAClD,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;YACnC,CAAC,CAAC,UAAU,CAAC,QAAQ;YACrB,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,wFAAwF;IACxF,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO,GAAG,QAAQ,eAAe,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,mBAAE,CAAC,IAAI,CAAC,YAAY,EAAE;QAClC,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAC7B,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,IAAI,GAAG,cAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAY,CAAC;YAC5E,IAAI,MAAM,CAAC,IAAI;gBAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/ruleEngine.js
CHANGED
|
@@ -139,6 +139,6 @@ function checkRules(scans, config, strict = false, generateFix = false) {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
-
return { violations, unclassifiedFiles, violationsByLayer };
|
|
142
|
+
return { violations, unclassifiedFiles, violationsByLayer, circularDeps: [] };
|
|
143
143
|
}
|
|
144
144
|
//# sourceMappingURL=ruleEngine.js.map
|
package/dist/ruleEngine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruleEngine.js","sourceRoot":"","sources":["../src/ruleEngine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ruleEngine.js","sourceRoot":"","sources":["../src/ruleEngine.ts"],"names":[],"mappings":";;AA4BA,kCAaC;AA0DD,gCA6EC;AAhLD,yCAAsC;AAGtC;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,QAAgB,EAAE,MAAgB;IAC5D,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAErD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC3C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CACzB,WAAmB,EACnB,WAAmB,EACnB,MAAqB;IAErB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;IAE7C,IAAI,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CACL,yBAAyB,WAAW,uCAAuC;gBAC3E,uBAAuB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAClE,CAAC;QACJ,CAAC;QACD,OAAO,sBAAsB,WAAW,kBAAkB,WAAW,IAAI,CAAC;IAC5E,CAAC;IAED,uHAAuH;IACvH,IAAI,IAAI,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,CACL,IAAI,WAAW,0BAA0B;gBACzC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACzD,4CAA4C,CAC7C,CAAC;QACJ,CAAC;QACD,OAAO,CACL,IAAI,WAAW,qDAAqD;YACpE,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,uHAAuH;IACvH,OAAO,mEAAmE,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CACxB,KAAiB,EACjB,MAAqB,EACrB,MAAM,GAAG,KAAK,EACd,WAAW,GAAG,KAAK;IAEnB,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAA2B,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;IAE1C,uEAAuE;IACvE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEnD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,MAAM;gBAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS;YAAE,SAAS;QAEzB,2EAA2E;QAC3E,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,IAAA,qBAAS,EAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,WAAW;gBAAE,SAAS;YAE3B,MAAM,UAAU,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAEzF,6DAA6D;YAC7D,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC1E,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,kBAAkB;YAClB,IAAI,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnD,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YAED,8EAA8E;YAC9E,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBACzD,QAAQ,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC9D,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,SAAS,GAAc;oBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,YAAY,EAAE,UAAU,CAAC,YAAY;oBACrC,WAAW;oBACX,WAAW;oBACX,IAAI,EAAE,UAAU;iBACjB,CAAC;gBAEF,IAAI,WAAW,EAAE,CAAC;oBAChB,SAAS,CAAC,GAAG,GAAG,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBACvE,CAAC;gBAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,iFAAiF;gBACjF,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Violation } from './types';
|
|
2
|
+
export interface SarifRule {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
shortDescription: {
|
|
6
|
+
text: string;
|
|
7
|
+
};
|
|
8
|
+
helpUri: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SarifResult {
|
|
11
|
+
ruleId: string;
|
|
12
|
+
level: 'error' | 'warning' | 'note';
|
|
13
|
+
message: {
|
|
14
|
+
text: string;
|
|
15
|
+
};
|
|
16
|
+
locations: Array<{
|
|
17
|
+
physicalLocation: {
|
|
18
|
+
artifactLocation: {
|
|
19
|
+
uri: string;
|
|
20
|
+
uriBaseId: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
}>;
|
|
24
|
+
}
|
|
25
|
+
export interface SarifDocument {
|
|
26
|
+
$schema: string;
|
|
27
|
+
version: '2.1.0';
|
|
28
|
+
runs: Array<{
|
|
29
|
+
tool: {
|
|
30
|
+
driver: {
|
|
31
|
+
name: string;
|
|
32
|
+
version: string;
|
|
33
|
+
informationUri: string;
|
|
34
|
+
rules: SarifRule[];
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
results: SarifResult[];
|
|
38
|
+
}>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Converts architecture violations to a SARIF 2.1.0 document.
|
|
42
|
+
*
|
|
43
|
+
* Compatible with GitHub Code Scanning — upload via the `github/codeql-action/upload-sarif` action.
|
|
44
|
+
* Each unique rule string (e.g. "Controller cannot import Repository") is registered as a
|
|
45
|
+
* distinct rule in the driver's rule list, with a stable ARCH### ID.
|
|
46
|
+
*
|
|
47
|
+
* @param violations List of violations from the rule engine.
|
|
48
|
+
* @param toolVersion Semver string for the running tool version (e.g. "0.1.5").
|
|
49
|
+
*/
|
|
50
|
+
export declare function toSarif(violations: Violation[], toolVersion: string): SarifDocument;
|
|
51
|
+
//# sourceMappingURL=sarifFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sarifFormatter.d.ts","sourceRoot":"","sources":["../src/sarifFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,SAAS,EAAE,KAAK,CAAC;QACf,gBAAgB,EAAE;YAChB,gBAAgB,EAAE;gBAChB,GAAG,EAAE,MAAM,CAAC;gBACZ,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,KAAK,CAAC;QACV,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC;gBACb,OAAO,EAAE,MAAM,CAAC;gBAChB,cAAc,EAAE,MAAM,CAAC;gBACvB,KAAK,EAAE,SAAS,EAAE,CAAC;aACpB,CAAC;SACH,CAAC;QACF,OAAO,EAAE,WAAW,EAAE,CAAC;KACxB,CAAC,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,CAyDnF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSarif = toSarif;
|
|
4
|
+
/**
|
|
5
|
+
* Converts architecture violations to a SARIF 2.1.0 document.
|
|
6
|
+
*
|
|
7
|
+
* Compatible with GitHub Code Scanning — upload via the `github/codeql-action/upload-sarif` action.
|
|
8
|
+
* Each unique rule string (e.g. "Controller cannot import Repository") is registered as a
|
|
9
|
+
* distinct rule in the driver's rule list, with a stable ARCH### ID.
|
|
10
|
+
*
|
|
11
|
+
* @param violations List of violations from the rule engine.
|
|
12
|
+
* @param toolVersion Semver string for the running tool version (e.g. "0.1.5").
|
|
13
|
+
*/
|
|
14
|
+
function toSarif(violations, toolVersion) {
|
|
15
|
+
// Build a registry of unique rules encountered, preserving insertion order.
|
|
16
|
+
const ruleMap = new Map();
|
|
17
|
+
for (const v of violations) {
|
|
18
|
+
if (!ruleMap.has(v.rule)) {
|
|
19
|
+
const idx = ruleMap.size + 1;
|
|
20
|
+
ruleMap.set(v.rule, {
|
|
21
|
+
id: `ARCH${String(idx).padStart(3, '0')}`,
|
|
22
|
+
name: 'LayerViolation',
|
|
23
|
+
shortDescription: { text: v.rule },
|
|
24
|
+
helpUri: 'https://github.com/cvalingam/architecture-linter#rules',
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const rules = [...ruleMap.values()];
|
|
29
|
+
const results = violations.map(v => {
|
|
30
|
+
const rule = ruleMap.get(v.rule);
|
|
31
|
+
return {
|
|
32
|
+
ruleId: rule.id,
|
|
33
|
+
level: 'error',
|
|
34
|
+
message: {
|
|
35
|
+
text: `${v.rule}: '${v.file}' imports '${v.importPath}' (${v.rawSpecifier})`,
|
|
36
|
+
},
|
|
37
|
+
locations: [
|
|
38
|
+
{
|
|
39
|
+
physicalLocation: {
|
|
40
|
+
artifactLocation: {
|
|
41
|
+
uri: v.file,
|
|
42
|
+
uriBaseId: '%SRCROOT%',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
$schema: 'https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json',
|
|
51
|
+
version: '2.1.0',
|
|
52
|
+
runs: [
|
|
53
|
+
{
|
|
54
|
+
tool: {
|
|
55
|
+
driver: {
|
|
56
|
+
name: 'architecture-linter',
|
|
57
|
+
version: toolVersion,
|
|
58
|
+
informationUri: 'https://github.com/cvalingam/architecture-linter',
|
|
59
|
+
rules,
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
results,
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=sarifFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sarifFormatter.js","sourceRoot":"","sources":["../src/sarifFormatter.ts"],"names":[],"mappings":";;AAiDA,0BAyDC;AAnED;;;;;;;;;GASG;AACH,SAAgB,OAAO,CAAC,UAAuB,EAAE,WAAmB;IAClE,4EAA4E;IAC5E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE7C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;gBAClB,EAAE,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;gBACzC,IAAI,EAAE,gBAAgB;gBACtB,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBAClC,OAAO,EAAE,wDAAwD;aAClE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAkB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAChD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC;QAClC,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,KAAK,EAAE,OAAO;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,YAAY,GAAG;aAC7E;YACD,SAAS,EAAE;gBACT;oBACE,gBAAgB,EAAE;wBAChB,gBAAgB,EAAE;4BAChB,GAAG,EAAE,CAAC,CAAC,IAAI;4BACX,SAAS,EAAE,WAAW;yBACvB;qBACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EACL,gGAAgG;QAClG,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE;oBACJ,MAAM,EAAE;wBACN,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,WAAW;wBACpB,cAAc,EAAE,kDAAkD;wBAClE,KAAK;qBACN;iBACF;gBACD,OAAO;aACR;SACF;KACF,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -95,9 +95,16 @@ export interface ArchScore {
|
|
|
95
95
|
totalLayers: number;
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* A circular dependency detected between architectural layers.
|
|
100
|
+
* The `cycle` array traces the path, e.g. ['controller', 'service', 'controller'].
|
|
101
|
+
*/
|
|
102
|
+
export interface CircularDep {
|
|
103
|
+
cycle: string[];
|
|
104
|
+
}
|
|
98
105
|
/** Options passed from the CLI to the scan pipeline. */
|
|
99
106
|
export interface ScanOptions {
|
|
100
|
-
format: 'text' | 'json';
|
|
107
|
+
format: 'text' | 'json' | 'sarif';
|
|
101
108
|
/** Fail and report files that do not belong to any declared layer. */
|
|
102
109
|
strict: boolean;
|
|
103
110
|
/** Suppress informational output; only print violations. */
|
|
@@ -108,6 +115,14 @@ export interface ScanOptions {
|
|
|
108
115
|
watch: boolean;
|
|
109
116
|
/** Show a suggested fix for each violation. */
|
|
110
117
|
fix: boolean;
|
|
118
|
+
/** True when --baseline flag was passed (enables ratchet mode). */
|
|
119
|
+
useBaseline: boolean;
|
|
120
|
+
/** Explicit path to baseline file; when absent the default (.arch-baseline.json) is used. */
|
|
121
|
+
baseline?: string;
|
|
122
|
+
/** When true, overwrite the baseline file with the current violation count. */
|
|
123
|
+
updateBaseline: boolean;
|
|
124
|
+
/** Detect circular dependencies between layers and include them in output. */
|
|
125
|
+
detectCircular: boolean;
|
|
111
126
|
}
|
|
112
127
|
/** Aggregated result returned by the rule engine. */
|
|
113
128
|
export interface RuleCheckResult {
|
|
@@ -116,5 +131,7 @@ export interface RuleCheckResult {
|
|
|
116
131
|
unclassifiedFiles: string[];
|
|
117
132
|
/** Number of violations per layer name. */
|
|
118
133
|
violationsByLayer: Record<string, number>;
|
|
134
|
+
/** Circular dependencies detected between layers (populated when detectCircular is enabled). */
|
|
135
|
+
circularDeps: CircularDep[];
|
|
119
136
|
}
|
|
120
137
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uGAAuG;IACvG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,sGAAsG;IACtG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACnC,2CAA2C;IAC3C,SAAS,EAAE;QACT,+CAA+C;QAC/C,UAAU,EAAE,MAAM,CAAC;QACnB,4CAA4C;QAC5C,QAAQ,EAAE,MAAM,CAAC;QACjB,+CAA+C;QAC/C,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,+CAA+C;IAC/C,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uGAAuG;IACvG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,sGAAsG;IACtG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACnC,2CAA2C;IAC3C,SAAS,EAAE;QACT,+CAA+C;QAC/C,UAAU,EAAE,MAAM,CAAC;QACnB,4CAA4C;QAC5C,QAAQ,EAAE,MAAM,CAAC;QACjB,+CAA+C;QAC/C,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,+CAA+C;IAC/C,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,sEAAsE;IACtE,MAAM,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,KAAK,EAAE,OAAO,CAAC;IACf,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,KAAK,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,GAAG,EAAE,OAAO,CAAC;IACb,mEAAmE;IACnE,WAAW,EAAE,OAAO,CAAC;IACrB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,cAAc,EAAE,OAAO,CAAC;IACxB,8EAA8E;IAC9E,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,6EAA6E;IAC7E,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,2CAA2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,gGAAgG;IAChG,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B"}
|