@descent-vtt/spec-guard 0.9.2 → 0.10.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/CHANGELOG.md +45 -0
- package/README.md +42 -5
- package/dist/cli.d.ts +3 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +31 -12
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +23 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +89 -31
- package/dist/config.js.map +1 -1
- package/dist/graph.d.ts +4 -2
- package/dist/graph.d.ts.map +1 -1
- package/dist/graph.js +6 -2
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +1 -0
- package/dist/mcp.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +3 -1
- package/dist/parser.js.map +1 -1
- package/dist/query.d.ts +2 -0
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +1 -0
- package/dist/query.js.map +1 -1
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +4 -6
- package/dist/reporter.js.map +1 -1
- package/dist/rules.d.ts +2 -0
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +3 -2
- package/dist/rules.js.map +1 -1
- package/dist/runner.d.ts +23 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +28 -14
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/watch.d.ts +1 -1
- package/dist/watch.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,51 @@ All notable changes to this project are documented here. Versions follow
|
|
|
5
5
|
may change in a minor release — each such change is listed under **Changed**
|
|
6
6
|
with the flag that restores the previous behaviour.
|
|
7
7
|
|
|
8
|
+
## 0.10.0
|
|
9
|
+
|
|
10
|
+
Improvements from running 0.9.2 over a large polyglot monorepo: a
|
|
11
|
+
configuration a Rust, Go or .NET root can hold, exclusions a whole project
|
|
12
|
+
shares, and a cycle rule that can leave lazy loading out.
|
|
13
|
+
[ADR-0014](docs/adr/0014-configuration-and-watch.md),
|
|
14
|
+
[ADR-0011](docs/adr/0011-layers-and-cycles.md).
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **`.spec-guard.json`**, for a root with no `package.json`. It holds the same
|
|
19
|
+
options, at the top level, with the same validation and exit 2 on any mistake.
|
|
20
|
+
Options in both it and `package.json` are exit 2 too, rather than one file
|
|
21
|
+
being silently ignored. A `package.json` with no `"specGuard"` beside it is
|
|
22
|
+
fine.
|
|
23
|
+
- **`exclude` in the configuration, and `--exclude <globs>`**: paths no
|
|
24
|
+
assertion looks at, such as build output (`target`, `bin`, `obj`, `dist`).
|
|
25
|
+
- They are added to each directive's own `exclude`, under both engines, for
|
|
26
|
+
text, import, layer, cycle and structure rules alike. `query`, the MCP
|
|
27
|
+
server and watch mode apply them too.
|
|
28
|
+
- `@assert-present`, which names its files, is unaffected.
|
|
29
|
+
- A rule's description names only its own exclusions; the report's options
|
|
30
|
+
line names the project's.
|
|
31
|
+
- `--exclude` is repeatable, replaces the configuration's list, and
|
|
32
|
+
`--exclude=` clears it.
|
|
33
|
+
- **`@assert-import-cycle dynamic="ignore"`** leaves `import('x')` out of the
|
|
34
|
+
graph, so a loop closed only by lazy loading is not reported. A static import
|
|
35
|
+
between the same files keeps the loop. It cannot tell a top-level
|
|
36
|
+
`await import()`, which runs at load and can deadlock, from one inside a
|
|
37
|
+
function, and ignores both. The default is `include`, and the description says
|
|
38
|
+
`(dynamic imports ignored)`.
|
|
39
|
+
- `findConfig`, `parseStandaloneConfig` and `CONFIG_FILE` in the programmatic
|
|
40
|
+
API.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- **`spec-guard query` accepts `--no-color`.** Its output never has colour, and
|
|
45
|
+
scripts pass the flag to every command they run. `--color` is still refused.
|
|
46
|
+
- **A blank line now separates a passing assertion's warnings** from the summary
|
|
47
|
+
or a failure that follows them.
|
|
48
|
+
- **API:** `ImportQuery` has a required `includeDynamic`. `buildGraph` takes an
|
|
49
|
+
optional fourth argument, `includeDynamic`, which defaults to `true`.
|
|
50
|
+
`RunOptions`, `RuleSetOptions` and `ResolveContext` take `exclude`.
|
|
51
|
+
`loadConfig` reads `.spec-guard.json` as well as `package.json`.
|
|
52
|
+
|
|
8
53
|
## 0.9.2
|
|
9
54
|
|
|
10
55
|
### Fixed
|
package/README.md
CHANGED
|
@@ -408,6 +408,16 @@ on a codebase that already has two, and fails on the third.
|
|
|
408
408
|
cycle - and the default asks the coupling one. This repository needs both: its
|
|
409
409
|
`src/` has exactly one cycle, and it is type-only.
|
|
410
410
|
|
|
411
|
+
`dynamic="ignore"` asks it about `import()` too. A plugin that `configuration.ts`
|
|
412
|
+
loads with `import('./tier-boot.ts')` can import `configuration.ts` back without
|
|
413
|
+
any module waiting on another to load, so a loop closed only by `import()` is
|
|
414
|
+
left out. A static import between the same two files keeps the loop. The one
|
|
415
|
+
case this lets through is a **top-level `await import()`**, which does run while
|
|
416
|
+
its module loads and can deadlock a cycle. It looks the same to a tokenizer as
|
|
417
|
+
an `await import()` inside a function, so ignoring dynamic imports ignores both.
|
|
418
|
+
`require()` always counts: whether it runs at load depends on where it is
|
|
419
|
+
called.
|
|
420
|
+
|
|
411
421
|
**Cycles are JavaScript and TypeScript only**, because a cycle needs to know that
|
|
412
422
|
`./b.js` *is* `src/b.ts`, and in the other four languages an import names a
|
|
413
423
|
module, package or namespace rather than a file. A scope with no JavaScript or
|
|
@@ -549,6 +559,7 @@ Passes when every listed path exists relative to `--root`. Directories count.
|
|
|
549
559
|
| `dirs` | structure, with `required` | Which directories below each target: `*` for children, `**` for all |
|
|
550
560
|
| `partner` | structure | Partner templates, any one of which must exist: `[name].test.[ext]` |
|
|
551
561
|
| `types` | import assertions, layers, cycles | `include` (default) or `ignore` for `import type` |
|
|
562
|
+
| `dynamic` | cycles | `include` (default) or `ignore` for `import('x')` |
|
|
552
563
|
| `allow-empty` | all but present | Tolerate a scope that holds no files, a layer that matches none, or no chosen directories. Off by default - see below |
|
|
553
564
|
| `baseline` | absence, import-absence, layers, structure | Known violations that do not count: `path` or `path:count` |
|
|
554
565
|
| `ratchet` | absence, import-absence, layers, structure | `two-sided` (default) or `one-way` - see below |
|
|
@@ -781,6 +792,7 @@ spec-guard mcp [options] # serve the rules over MCP on stdio
|
|
|
781
792
|
| `--allow-empty-scope` / `--no-allow-empty-scope` | Warn instead of failing when an assertion inspects no files |
|
|
782
793
|
| `--print-baseline` | Print the `baseline="..."` that would exempt today's violations, and exit |
|
|
783
794
|
| `--no-default-skips` / `--default-skips` | Search `.git`, `.hg`, `.svn` and `node_modules` too |
|
|
795
|
+
| `--exclude <globs>` | Paths no assertion looks at, beside each directive's own `exclude`. Repeatable; replaces the configuration's list, and `--exclude=` clears it |
|
|
784
796
|
| `--ignore-status` / `--no-ignore-status` | Execute directives in draft, proposed and superseded documents too |
|
|
785
797
|
| `--include-specs` / `--no-include-specs` | Also count matches inside the spec files themselves |
|
|
786
798
|
| `--max-snippets <n>` | Failure snippets per assertion (default 5) |
|
|
@@ -792,6 +804,11 @@ Patterns are expanded by spec-guard itself, so quoted globs behave identically
|
|
|
792
804
|
on Windows, macOS and Linux. A directory expands to the Markdown files in it.
|
|
793
805
|
The second form of each on/off option exists to override a configuration.
|
|
794
806
|
|
|
807
|
+
An option that means nothing to a command is refused rather than ignored, so
|
|
808
|
+
`spec-guard query --strict` does not look like a strict query. `query` does take
|
|
809
|
+
`--no-color`: its output never has colour, and scripts pass the flag to every
|
|
810
|
+
command they run.
|
|
811
|
+
|
|
795
812
|
### Configuration
|
|
796
813
|
|
|
797
814
|
The options that are a project's policy can live in `package.json`, under
|
|
@@ -807,18 +824,38 @@ hold the same rules the same way:
|
|
|
807
824
|
}
|
|
808
825
|
```
|
|
809
826
|
|
|
827
|
+
A root with no `package.json` - a Rust, Go or .NET repository, say - keeps the
|
|
828
|
+
same options, at the top level, in `.spec-guard.json`:
|
|
829
|
+
|
|
830
|
+
```json
|
|
831
|
+
{
|
|
832
|
+
"specs": ["docs/**/*.md"],
|
|
833
|
+
"exclude": ["target", "bin", "obj"]
|
|
834
|
+
}
|
|
835
|
+
```
|
|
836
|
+
|
|
810
837
|
| Key | Command line | Value |
|
|
811
838
|
| --- | --- | --- |
|
|
812
839
|
| `specs` | patterns, `--spec` | a non-empty array of globs |
|
|
840
|
+
| `exclude` | `--exclude` | an array of paths, gitignore-style, left out of every assertion that takes `exclude` |
|
|
813
841
|
| `engine` | `--engine` | `"auto"`, `"rg"` or `"js"` |
|
|
814
842
|
| `strict`, `allowMissingTargets`, `allowEmptyScope`, `ignoreStatus`, `includeSpecs`, `defaultSkips` | the flag of that name | `true` or `false` |
|
|
815
843
|
| `maxSnippets` | `--max-snippets` | an integer, 0 or more |
|
|
816
844
|
| `concurrency` | `--concurrency` | an integer, 1 or more |
|
|
817
845
|
|
|
818
|
-
- **Only the root's
|
|
819
|
-
|
|
820
|
-
- **
|
|
821
|
-
|
|
846
|
+
- **Only the root's files** are read: the `--root` directory, or the working
|
|
847
|
+
directory. Nothing is inherited from a parent directory.
|
|
848
|
+
- **One of the two, not both.** Options in `package.json` and in
|
|
849
|
+
`.spec-guard.json` are exit 2, since whichever lost would be options somebody
|
|
850
|
+
wrote and nothing reads. A `package.json` with no `"specGuard"` is fine beside
|
|
851
|
+
a `.spec-guard.json`.
|
|
852
|
+
- **The command line wins, both ways.** Patterns replace `specs`, `--exclude`
|
|
853
|
+
replaces `exclude`, and `--no-strict` beats `"strict": true`.
|
|
854
|
+
- **`exclude` is for what no rule should read**, such as build output, which can
|
|
855
|
+
turn a scan of 3,000 files into one of 37,000. It is added to each directive's
|
|
856
|
+
own `exclude`, and applies to a query as it does to a run. `@assert-present`
|
|
857
|
+
names its files and is unaffected. A rule's description names only its own
|
|
858
|
+
exclusions; the project's appear in the options line below.
|
|
822
859
|
- **A malformed configuration is exit 2, before anything runs**, naming the file
|
|
823
860
|
and the key: an unknown key, `"true"` where `true` goes, or an option that
|
|
824
861
|
belongs to one invocation, such as `format` or `verbose`.
|
|
@@ -1208,7 +1245,7 @@ prebuilt binary and is never a runtime dependency.
|
|
|
1208
1245
|
|
|
1209
1246
|
Coverage says a line ran. It does not say an assertion would notice if the line
|
|
1210
1247
|
behaved differently. This repository measures the difference: line coverage is
|
|
1211
|
-
**100%**, and **98.
|
|
1248
|
+
**100%**, and **98.91%** of 7,907 mutants are killed in CI, with 83 survivors and
|
|
1212
1249
|
no file below 95%. The second number is the one worth reading, and what was done
|
|
1213
1250
|
about the survivors matters more than the score. At 0.5.1 every surviving mutant
|
|
1214
1251
|
was checked individually, and the 101 left then produced byte-identical output.
|
package/dist/cli.d.ts
CHANGED
|
@@ -50,6 +50,8 @@ export interface CliOptions {
|
|
|
50
50
|
engine: EnginePreference;
|
|
51
51
|
allowMissingTargets: boolean;
|
|
52
52
|
defaultSkips: boolean;
|
|
53
|
+
/** Paths no assertion looks at, beside each directive's own exclude. */
|
|
54
|
+
exclude: string[];
|
|
53
55
|
ignoreStatus: boolean;
|
|
54
56
|
strictTargets: boolean;
|
|
55
57
|
allowEmptyScope: boolean;
|
|
@@ -82,7 +84,7 @@ export declare class UsageError extends Error {
|
|
|
82
84
|
* fallback nobody knows still works.
|
|
83
85
|
*/
|
|
84
86
|
export declare function version(manifest?: string): string;
|
|
85
|
-
export declare const HELP = "spec-guard - Executable architecture assertions for Markdown specs & ADRs\n\nUsage\n spec-guard [patterns...] [options] execute the directives in the specs\n spec-guard query <paths...> [options] list the rules in force for files or directories\n spec-guard mcp [options] serve the rules to an AI agent over MCP on stdio\n\nPatterns\n Globs or paths to the Markdown specs to execute. A directory expands to the\n Markdown files inside it. Defaults to \"docs/**/*.md\" when omitted. query and\n mcp take theirs from --spec.\n\nOptions\n -r, --root <path> Codebase root that assertions are resolved against (default: cwd)\n --spec <pattern> A spec glob or path; repeatable (default: \"docs/**/*.md\")\n -v, --verbose Print passing assertions too\n --watch Run again as the tree changes, until Ctrl+C (human output only)\n --fail-fast Stop at the first failing assertion\n --json Emit a machine-readable JSON report (same as --format json)\n --format <name> human | json | sarif (sarif uploads to GitHub code scanning)\n --engine <name> auto | rg | js (default: auto - scanner for small trees, ripgrep for big ones)\n --strict Treat analysis that could not be completed as a failure\n --allow-missing-targets\n Tolerate target paths that do not exist (they fail by default)\n --allow-empty-scope Tolerate assertions whose scope holds no files (they fail by default)\n --print-baseline Print the baseline=\"...\" that would exempt today's violations, and exit\n --no-default-skips Search .git, .hg, .svn and node_modules too\n --ignore-status Execute directives in draft, proposed and superseded documents too\n --include-specs Also count matches inside the spec files themselves\n --max-snippets <n> Failure snippets per assertion (default: 5)\n --concurrency <n> Assertions executed in parallel (default: 8)\n --allow-empty Exit 0 when no spec files matched (about the run, not an assertion)\n --color/--no-color Force colour on or off (NO_COLOR is honoured)\n -h, --help Show this help\n --version Print the version\n\nConfiguration\n package.json in the root can hold specs, engine, strict
|
|
87
|
+
export declare const HELP = "spec-guard - Executable architecture assertions for Markdown specs & ADRs\n\nUsage\n spec-guard [patterns...] [options] execute the directives in the specs\n spec-guard query <paths...> [options] list the rules in force for files or directories\n spec-guard mcp [options] serve the rules to an AI agent over MCP on stdio\n\nPatterns\n Globs or paths to the Markdown specs to execute. A directory expands to the\n Markdown files inside it. Defaults to \"docs/**/*.md\" when omitted. query and\n mcp take theirs from --spec.\n\nOptions\n -r, --root <path> Codebase root that assertions are resolved against (default: cwd)\n --spec <pattern> A spec glob or path; repeatable (default: \"docs/**/*.md\")\n -v, --verbose Print passing assertions too\n --watch Run again as the tree changes, until Ctrl+C (human output only)\n --fail-fast Stop at the first failing assertion\n --json Emit a machine-readable JSON report (same as --format json)\n --format <name> human | json | sarif (sarif uploads to GitHub code scanning)\n --engine <name> auto | rg | js (default: auto - scanner for small trees, ripgrep for big ones)\n --strict Treat analysis that could not be completed as a failure\n --allow-missing-targets\n Tolerate target paths that do not exist (they fail by default)\n --allow-empty-scope Tolerate assertions whose scope holds no files (they fail by default)\n --print-baseline Print the baseline=\"...\" that would exempt today's violations, and exit\n --no-default-skips Search .git, .hg, .svn and node_modules too\n --exclude <globs> Paths no assertion looks at, beside each directive's exclude; repeatable\n --ignore-status Execute directives in draft, proposed and superseded documents too\n --include-specs Also count matches inside the spec files themselves\n --max-snippets <n> Failure snippets per assertion (default: 5)\n --concurrency <n> Assertions executed in parallel (default: 8)\n --allow-empty Exit 0 when no spec files matched (about the run, not an assertion)\n --color/--no-color Force colour on or off (NO_COLOR is honoured)\n -h, --help Show this help\n --version Print the version\n\nConfiguration\n package.json in the root can hold specs, exclude, engine, strict,\n allowMissingTargets, allowEmptyScope, ignoreStatus, includeSpecs, defaultSkips,\n maxSnippets and concurrency under \"specGuard\"; a root with no package.json can\n keep them in .spec-guard.json instead, but not in both. A flag wins over the\n file, every on/off option there also takes its opposite (--no-strict,\n --default-skips, ...), and --exclude= with nothing clears exclude.\n\nDirectives\n <!-- @assert-absence target=\"src/\" symbol=\"LegacyGateway\" exclude=\"src/legacy/**\" -->\n <!-- @assert-count target=\"src/\" symbol=\"SessionManager\" expected=\"1\" -->\n <!-- @assert-present file=\"SECURITY.md\" -->\n <!-- @assert-import-cycle target=\"src/\" types=\"ignore\" -->\n <!-- @assert-layers target=\"src/\" order=\"domain, application, infrastructure\" -->\n <!-- @assert-structure target=\"src/\" exclude=\"*.test.ts\" partner=\"[name].test.ts\" -->\n\n Matches inside comments do not count; add comments=\"include\" to count them.\n An assertion whose scope holds no files fails; add allow-empty=\"true\" to allow it.\n A document whose status is draft, proposed, rejected, deprecated or superseded\n is reported and not executed; --ignore-status runs it anyway.\n\nquery answers from the specs alone, without reading the codebase, so it works\nfor a file that does not exist yet. mcp offers the same answer, and a check,\nas the tools get_architectural_rules and check_architecture.\n\nExit codes\n 0 all assertions passed 1 an assertion failed 2 spec-guard could not run\n 130 a --watch session was stopped";
|
|
86
88
|
/** Minimal, dependency-free argv parser. Supports `--flag value` and `--flag=value`. */
|
|
87
89
|
export declare function parseArgs(argv: readonly string[], cwd: string): CliOptions;
|
|
88
90
|
/**
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAqD,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAoB,SAAS,EAAE,MAAM,SAAS,CAAC;AAMtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,iFAAiF;IACjF,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC;IACzB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CACnD;AAED,oEAAoE;AACpE,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAEhD,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,4EAA4E;IAC5E,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;CACjC;AAED,qBAAa,UAAW,SAAQ,KAAK;CAAG;AAExC;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,QAAQ,SAAoB,GAAG,MAAM,CAQ5D;AAED,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { createRequire } from 'node:module';
|
|
10
10
|
import path from 'node:path';
|
|
11
|
-
import { CONFIG_KEYS, ConfigError, engineNamed,
|
|
11
|
+
import { CONFIG_KEYS, ConfigError, engineNamed, findConfig } from './config.js';
|
|
12
12
|
import { nodeIo, readText, watchTree } from './io.js';
|
|
13
13
|
import { createMcpHandler, serveStdio } from './mcp.js';
|
|
14
14
|
import { formatQuery, formatQueryJson, queryRules } from './query.js';
|
|
15
15
|
import { formatBaselines, formatJson, formatReport, formatSarif, shouldUseAscii, shouldUseColor } from './reporter.js';
|
|
16
|
-
import { DEFAULT_CONCURRENCY, DEFAULT_MAX_SNIPPETS, runSpecGuard } from './runner.js';
|
|
16
|
+
import { DEFAULT_CONCURRENCY, DEFAULT_MAX_SNIPPETS, runSpecGuard, splitList } from './runner.js';
|
|
17
17
|
import { createSession, runWatch } from './watch.js';
|
|
18
18
|
export const EXIT_OK = 0;
|
|
19
19
|
export const EXIT_FAILED = 1;
|
|
@@ -64,6 +64,7 @@ Options
|
|
|
64
64
|
--allow-empty-scope Tolerate assertions whose scope holds no files (they fail by default)
|
|
65
65
|
--print-baseline Print the baseline="..." that would exempt today's violations, and exit
|
|
66
66
|
--no-default-skips Search .git, .hg, .svn and node_modules too
|
|
67
|
+
--exclude <globs> Paths no assertion looks at, beside each directive's exclude; repeatable
|
|
67
68
|
--ignore-status Execute directives in draft, proposed and superseded documents too
|
|
68
69
|
--include-specs Also count matches inside the spec files themselves
|
|
69
70
|
--max-snippets <n> Failure snippets per assertion (default: ${DEFAULT_MAX_SNIPPETS})
|
|
@@ -74,10 +75,12 @@ Options
|
|
|
74
75
|
--version Print the version
|
|
75
76
|
|
|
76
77
|
Configuration
|
|
77
|
-
package.json in the root can hold specs, engine, strict,
|
|
78
|
-
allowEmptyScope, ignoreStatus, includeSpecs, defaultSkips,
|
|
79
|
-
concurrency under "specGuard"
|
|
80
|
-
|
|
78
|
+
package.json in the root can hold specs, exclude, engine, strict,
|
|
79
|
+
allowMissingTargets, allowEmptyScope, ignoreStatus, includeSpecs, defaultSkips,
|
|
80
|
+
maxSnippets and concurrency under "specGuard"; a root with no package.json can
|
|
81
|
+
keep them in .spec-guard.json instead, but not in both. A flag wins over the
|
|
82
|
+
file, every on/off option there also takes its opposite (--no-strict,
|
|
83
|
+
--default-skips, ...), and --exclude= with nothing clears exclude.
|
|
81
84
|
|
|
82
85
|
Directives
|
|
83
86
|
<!-- @assert-absence target="src/" symbol="LegacyGateway" exclude="src/legacy/**" -->
|
|
@@ -123,7 +126,10 @@ function positiveInteger(name, value) {
|
|
|
123
126
|
* Options that mean nothing to a command, by command.
|
|
124
127
|
*
|
|
125
128
|
* Refused rather than ignored: `spec-guard query --strict` accepting the flag
|
|
126
|
-
* and doing nothing with it would tell someone their query was strict.
|
|
129
|
+
* and doing nothing with it would tell someone their query was strict. A query
|
|
130
|
+
* takes `--no-color`, which is true of its output already and is what a script
|
|
131
|
+
* passes to every command it runs; `--color` it refuses, since it would promise
|
|
132
|
+
* colour a query never prints.
|
|
127
133
|
*/
|
|
128
134
|
const NOT_FOR = {
|
|
129
135
|
query: new Set([
|
|
@@ -142,7 +148,6 @@ const NOT_FOR = {
|
|
|
142
148
|
'--max-snippets',
|
|
143
149
|
'--concurrency',
|
|
144
150
|
'--color',
|
|
145
|
-
'--no-color',
|
|
146
151
|
]),
|
|
147
152
|
mcp: new Set(['--verbose', '--watch', '--fail-fast', '--json', '--format', '--print-baseline', '--allow-empty', '--color', '--no-color']),
|
|
148
153
|
};
|
|
@@ -179,6 +184,7 @@ export function parseArgs(argv, cwd) {
|
|
|
179
184
|
engine: 'auto',
|
|
180
185
|
allowMissingTargets: false,
|
|
181
186
|
defaultSkips: true,
|
|
187
|
+
exclude: [],
|
|
182
188
|
ignoreStatus: false,
|
|
183
189
|
strictTargets: false,
|
|
184
190
|
allowEmptyScope: false,
|
|
@@ -278,6 +284,12 @@ export function parseArgs(argv, cwd) {
|
|
|
278
284
|
options.defaultSkips = name === '--default-skips';
|
|
279
285
|
set.add('defaultSkips');
|
|
280
286
|
break;
|
|
287
|
+
// Repeatable, each value a list as exclude="..." takes one. Given at all, it
|
|
288
|
+
// replaces the configuration's list, and --exclude= with nothing clears it.
|
|
289
|
+
case '--exclude':
|
|
290
|
+
options.exclude.push(...splitList(nextValue()));
|
|
291
|
+
set.add('exclude');
|
|
292
|
+
break;
|
|
281
293
|
case '--ignore-status':
|
|
282
294
|
case '--no-ignore-status':
|
|
283
295
|
options.ignoreStatus = name === '--ignore-status';
|
|
@@ -345,12 +357,15 @@ export function parseArgs(argv, cwd) {
|
|
|
345
357
|
return options;
|
|
346
358
|
}
|
|
347
359
|
/** The configurable options a query reads; the rest are about running rules. */
|
|
348
|
-
const QUERY_KEYS = new Set(['specs', 'ignoreStatus', 'includeSpecs', 'defaultSkips']);
|
|
360
|
+
const QUERY_KEYS = new Set(['specs', 'exclude', 'ignoreStatus', 'includeSpecs', 'defaultSkips']);
|
|
349
361
|
/** Where each key of a configuration lands on the command line's options. */
|
|
350
362
|
const SETTERS = {
|
|
351
363
|
specs: (options, value) => {
|
|
352
364
|
options.patterns = [...value];
|
|
353
365
|
},
|
|
366
|
+
exclude: (options, value) => {
|
|
367
|
+
options.exclude = [...value];
|
|
368
|
+
},
|
|
354
369
|
engine: (options, value) => {
|
|
355
370
|
options.engine = value;
|
|
356
371
|
},
|
|
@@ -410,7 +425,8 @@ export function applyConfig(options, config, file = 'package.json') {
|
|
|
410
425
|
/** Reads the root's configuration from disk and applies it, or says why it cannot. */
|
|
411
426
|
async function configure(options, io) {
|
|
412
427
|
try {
|
|
413
|
-
|
|
428
|
+
const found = await findConfig(options.root, (file) => readText(nodeIo, file));
|
|
429
|
+
return { use: applyConfig(options, found.config, found.file) };
|
|
414
430
|
}
|
|
415
431
|
catch (error) {
|
|
416
432
|
// Everything loadConfig throws is a ConfigError: a read that fails is turned
|
|
@@ -428,6 +444,7 @@ function runOptionsOf(options) {
|
|
|
428
444
|
allowMissingTargets: options.allowMissingTargets,
|
|
429
445
|
allowEmptyScope: options.allowEmptyScope,
|
|
430
446
|
defaultSkips: options.defaultSkips,
|
|
447
|
+
exclude: options.exclude,
|
|
431
448
|
ignoreStatus: options.ignoreStatus,
|
|
432
449
|
strictTargets: options.strictTargets,
|
|
433
450
|
includeSpecs: options.includeSpecs,
|
|
@@ -470,7 +487,8 @@ async function runWatchSession(commandLine, io) {
|
|
|
470
487
|
root: commandLine.root,
|
|
471
488
|
settings: async (door) => {
|
|
472
489
|
const options = { ...commandLine, patterns: [...commandLine.patterns] };
|
|
473
|
-
const
|
|
490
|
+
const found = await findConfig(commandLine.root, (file) => readText(door, file));
|
|
491
|
+
const config = applyConfig(options, found.config, found.file);
|
|
474
492
|
return { patterns: options.patterns, run: runOptionsOf(options), config };
|
|
475
493
|
},
|
|
476
494
|
});
|
|
@@ -518,6 +536,7 @@ async function runQuery(options, io, use) {
|
|
|
518
536
|
includeInactive: options.ignoreStatus,
|
|
519
537
|
includeSpecs: options.includeSpecs,
|
|
520
538
|
defaultSkips: options.defaultSkips,
|
|
539
|
+
exclude: options.exclude,
|
|
521
540
|
})),
|
|
522
541
|
config: use,
|
|
523
542
|
};
|
|
@@ -556,7 +575,7 @@ async function runMcp(options, commandLine, io, use) {
|
|
|
556
575
|
run: runOptionsOf(options),
|
|
557
576
|
settings: async () => {
|
|
558
577
|
const fresh = { ...commandLine, patterns: [...commandLine.patterns] };
|
|
559
|
-
applyConfig(fresh, await
|
|
578
|
+
applyConfig(fresh, (await findConfig(options.root, (file) => readText(nodeIo, file))).config);
|
|
560
579
|
return { patterns: fresh.patterns, run: runOptionsOf(fresh) };
|
|
561
580
|
},
|
|
562
581
|
});
|
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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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The options a project keeps in its `package.json`, under `"specGuard"
|
|
2
|
+
* The options a project keeps in its `package.json`, under `"specGuard"`, or
|
|
3
|
+
* in a `.spec-guard.json` of their own.
|
|
3
4
|
*
|
|
4
5
|
* Validated from a value, never read from a file: the command line reads the
|
|
5
6
|
* file, and every malformed option can then be tested on a plain object. The
|
|
@@ -10,9 +11,15 @@
|
|
|
10
11
|
import type { EnginePreference } from './engine.js';
|
|
11
12
|
/** The name the options sit under in `package.json`. */
|
|
12
13
|
export declare const CONFIG_KEY = "specGuard";
|
|
14
|
+
/**
|
|
15
|
+
* The file that holds the options on its own, for a root with no `package.json`
|
|
16
|
+
* to put them in - a Rust, Go or .NET repository, say.
|
|
17
|
+
*/
|
|
18
|
+
export declare const CONFIG_FILE = ".spec-guard.json";
|
|
13
19
|
/** What a project's configuration can set, each under its own name. */
|
|
14
20
|
export interface ProjectConfig {
|
|
15
21
|
specs?: string[];
|
|
22
|
+
exclude?: string[];
|
|
16
23
|
engine?: EnginePreference;
|
|
17
24
|
strict?: boolean;
|
|
18
25
|
allowMissingTargets?: boolean;
|
|
@@ -44,16 +51,24 @@ export declare class ConfigError extends Error {
|
|
|
44
51
|
* words. Case is ignored, as the flag always has.
|
|
45
52
|
*/
|
|
46
53
|
export declare function engineNamed(name: string): EnginePreference;
|
|
54
|
+
/** Where a configuration came from: the file a report names, and what it said. */
|
|
55
|
+
export interface FoundConfig {
|
|
56
|
+
config: ProjectConfig;
|
|
57
|
+
file: string;
|
|
58
|
+
}
|
|
47
59
|
/**
|
|
48
|
-
* The configuration
|
|
60
|
+
* The configuration of a root, from `package.json` or `.spec-guard.json`.
|
|
49
61
|
*
|
|
50
62
|
* The reader is a parameter because this module reads nothing itself: the
|
|
51
63
|
* command line passes the filesystem, and a watch session passes the door that
|
|
52
|
-
* records what it read, so an edit to
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
64
|
+
* records what it read, so an edit to either file reaches the session like an
|
|
65
|
+
* edit to any other file.
|
|
66
|
+
*
|
|
67
|
+
* Options in both files are an error rather than one file winning: whichever
|
|
68
|
+
* lost would be a configuration somebody wrote and nothing reads.
|
|
56
69
|
*/
|
|
70
|
+
export declare function findConfig(root: string, read: (file: string) => Promise<string>): Promise<FoundConfig>;
|
|
71
|
+
/** The configuration of a root, wherever it is kept. See `findConfig`. */
|
|
57
72
|
export declare function loadConfig(root: string, read: (file: string) => Promise<string>): Promise<ProjectConfig>;
|
|
58
73
|
/**
|
|
59
74
|
* The configuration in a `package.json`'s text, or none.
|
|
@@ -63,4 +78,6 @@ export declare function loadConfig(root: string, read: (file: string) => Promise
|
|
|
63
78
|
* file and the key, so a run never starts under options nobody meant.
|
|
64
79
|
*/
|
|
65
80
|
export declare function parseConfig(text: string, file?: string): ProjectConfig;
|
|
81
|
+
/** The configuration in a `.spec-guard.json`'s text: the options, at the top level. */
|
|
82
|
+
export declare function parseStandaloneConfig(text: string, file?: string): ProjectConfig;
|
|
66
83
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wDAAwD;AACxD,eAAO,MAAM,UAAU,cAAc,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC;AAE5C,4DAA4D;AAC5D,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAY3C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAUjD,CAAC;AAEH,sEAAsE;AACtE,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAWzC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAI1D;AAwCD,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAmBD;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAmB5G;AAED,0EAA0E;AAC1E,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAE9G;AA6CD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAiB,GAAG,aAAa,CAG9E;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAc,GAAG,aAAa,CAQrF"}
|