@descent-vtt/spec-guard 0.10.0 → 0.10.2
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 +150 -0
- package/README.md +144 -25
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -6
- package/dist/cli.js.map +1 -1
- package/dist/comments.d.ts +6 -0
- package/dist/comments.d.ts.map +1 -1
- package/dist/comments.js +24 -4
- package/dist/comments.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -6
- package/dist/config.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +7 -3
- package/dist/engine.js.map +1 -1
- package/dist/glob.d.ts +38 -0
- package/dist/glob.d.ts.map +1 -1
- package/dist/glob.js +65 -7
- package/dist/glob.js.map +1 -1
- package/dist/imports.d.ts +29 -0
- package/dist/imports.d.ts.map +1 -1
- package/dist/imports.js +32 -1
- package/dist/imports.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/layers.d.ts +27 -7
- package/dist/layers.d.ts.map +1 -1
- package/dist/layers.js +40 -13
- package/dist/layers.js.map +1 -1
- package/dist/mcp.d.ts +5 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +4 -2
- package/dist/mcp.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +9 -1
- package/dist/parser.js.map +1 -1
- package/dist/polyglot.d.ts +17 -1
- package/dist/polyglot.d.ts.map +1 -1
- package/dist/polyglot.js +90 -11
- package/dist/polyglot.js.map +1 -1
- package/dist/query.d.ts +22 -1
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +39 -10
- package/dist/query.js.map +1 -1
- package/dist/reporter.d.ts +13 -1
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +32 -7
- package/dist/reporter.js.map +1 -1
- package/dist/rules.d.ts +16 -0
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +22 -0
- package/dist/rules.js.map +1 -1
- package/dist/runner.d.ts +10 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +62 -15
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,156 @@ 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.2
|
|
9
|
+
|
|
10
|
+
Fixes from running 0.10.1 over a .NET solution, where a layer rule passed while
|
|
11
|
+
the domain imported the application, and from reading C# as it is written in
|
|
12
|
+
2026 while fixing that.
|
|
13
|
+
[ADR-0011](docs/adr/0011-layers-and-cycles.md),
|
|
14
|
+
[ADR-0008](docs/adr/0008-polyglot-imports.md).
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- **A dotted module pattern did not cover what sits beneath it.**
|
|
19
|
+
`module="Shop.Application"` missed `using Shop.Application.Catalog;`, while
|
|
20
|
+
`module="Shop/Application"` caught it. A layer named `Shop.Application` had
|
|
21
|
+
the same gap, so `order="Shop.Domain, Shop.Application"` passed over a domain
|
|
22
|
+
that imported the application. Each reference in C#, Python and Rust now also
|
|
23
|
+
goes by every module it sits under, in its own notation, so `Shop.Application`
|
|
24
|
+
covers `Shop.Application.Catalog` and not `Shop.ApplicationServices`,
|
|
25
|
+
`app.db` covers `app.db.client`, and `crate::db` covers `crate::db::pool`.
|
|
26
|
+
An `@assert-import-count` over those languages can count more files than
|
|
27
|
+
before, and each is a file that depends on the module.
|
|
28
|
+
- **Three kinds of C# using were read under a name no pattern matched.**
|
|
29
|
+
- `using global::Shop.Application;` read as `global.Shop.Application`, and
|
|
30
|
+
`using Legacy::Shop.Application;` (an extern alias) as
|
|
31
|
+
`Legacy.Shop.Application`. The qualifier is now left off.
|
|
32
|
+
- A using inside a namespace may be relative to it: in `namespace
|
|
33
|
+
Shop.Domain`, `using Application.Catalog;` can be
|
|
34
|
+
`Shop.Application.Catalog`. It now counts under each name it can resolve to
|
|
35
|
+
there.
|
|
36
|
+
- **Two kinds of C# string lost the scan.** A raw string literal (C# 11) that
|
|
37
|
+
held a quote, or that opened with four quotes to hold three, and an
|
|
38
|
+
interpolated verbatim string written `@$"C:\"`, were misread. Every using after
|
|
39
|
+
one could go unread, and a text rule could count a comment as code. Both are
|
|
40
|
+
now read as strings.
|
|
41
|
+
- **A backslash in a directive attribute was dropped.** Every backslash escaped
|
|
42
|
+
the character after it, so `symbol="Shop\.(Application|Web)\b" regex="true"`
|
|
43
|
+
searched for `Shop.(Application|Web)b`, matched nothing and passed, and
|
|
44
|
+
`exclude="src\gen"` excluded `srcgen`. Only `\"`, `\'` and `\\` are escapes
|
|
45
|
+
now; any other backslash is kept. Found by running this release's README
|
|
46
|
+
example against a project file. A pattern written with doubled backslashes to
|
|
47
|
+
get past the old behaviour, `\\b`, still reads as `\b`.
|
|
48
|
+
- **`.csproj`, `.fsproj`, `.vbproj`, `.props`, `.targets`, `.slnx`, `.nuspec`,
|
|
49
|
+
`.resx` and `.xaml` were unclassified,** so a text rule over a project file
|
|
50
|
+
counted a `<ProjectReference>` inside `<!-- -->`. They are now read as XML.
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
|
|
54
|
+
- **A layer rule that could not have failed now fails** (`allow-empty="true"`,
|
|
55
|
+
or `--allow-empty-scope`, makes each a warning again):
|
|
56
|
+
- **A layer no C# using can reach.** A layer named by its folder,
|
|
57
|
+
`src/Shop.Application`, holds the right files, but a using names a
|
|
58
|
+
namespace, never a path. When a layer after the first matches none of the
|
|
59
|
+
namespaces its own files declare, the rule fails:
|
|
60
|
+
`no C# using can reach layer "src/Shop.Application": it matches none of the
|
|
61
|
+
namespaces its files declare, such as Shop.Application.Catalog, so a
|
|
62
|
+
dependency on it is never seen`. Name a C# layer by its namespace,
|
|
63
|
+
`Shop.Application`, which matches the folder as well.
|
|
64
|
+
- **A scope in which no import reaches another layer.** Such a rule would
|
|
65
|
+
pass with its layers in any order: `no import in scope reaches a layer other
|
|
66
|
+
than its own file's, so these layers would pass in any order`. This is how
|
|
67
|
+
a layer named in a way no reference can match shows up in every language.
|
|
68
|
+
- **The files an import rule could not read are named by kind**, as in
|
|
69
|
+
`analysed 5 of 7 files; 2 are in a language whose imports spec-guard cannot
|
|
70
|
+
read (.csproj, .razor)`. In a .NET project, the count alone hid the Razor
|
|
71
|
+
page among project files, and a Razor page can hold an `@using`.
|
|
72
|
+
- **README:** a section on C# and .NET solutions - layers by namespace, what an
|
|
73
|
+
import rule cannot see and the text rule for each, and the `exclude` list for
|
|
74
|
+
build output (`bin`, `obj`, `artifacts`, `TestResults`, `.vs`).
|
|
75
|
+
- **API:**
|
|
76
|
+
- `ModuleReference` has an optional `namespace`, the namespace a C# using sits
|
|
77
|
+
in.
|
|
78
|
+
- `FileImports` and `LayerInput` have an optional `namespaces`, those a C#
|
|
79
|
+
file declares.
|
|
80
|
+
- `LayerReport` has `crossed` and `unreachable`.
|
|
81
|
+
- New: `moduleNames` and `enclosingModules`.
|
|
82
|
+
|
|
83
|
+
## 0.10.1
|
|
84
|
+
|
|
85
|
+
Fixes from running 0.10.0 over a large monorepo, and from testing each exclude
|
|
86
|
+
shape under both engines while making them.
|
|
87
|
+
[ADR-0014](docs/adr/0014-configuration-and-watch.md).
|
|
88
|
+
|
|
89
|
+
### Fixed
|
|
90
|
+
|
|
91
|
+
- **The two engines disagreed about five shapes of exclude pattern.** Before
|
|
92
|
+
this release, ripgrep was given each pattern as written, while the scanner
|
|
93
|
+
normalised it first. Because `auto` picks ripgrep only for a large tree, the
|
|
94
|
+
same rule could give a different count once the tree grew past that size.
|
|
95
|
+
- `/target` excluded the root's `target` under ripgrep, and nothing under the
|
|
96
|
+
scanner.
|
|
97
|
+
- `/**/tests` excluded every `tests` under ripgrep, and nothing under the
|
|
98
|
+
scanner.
|
|
99
|
+
- `./build` excluded nothing under ripgrep, and every `build` under the
|
|
100
|
+
scanner.
|
|
101
|
+
- `src\gen` excluded nothing under ripgrep, and `src/gen` under the scanner.
|
|
102
|
+
- `tests/` excluded only directories under ripgrep, and a file named `tests`
|
|
103
|
+
too under the scanner.
|
|
104
|
+
|
|
105
|
+
Both engines are now given one normalised pattern, and a leading `/` anchors
|
|
106
|
+
to the root under both, as in `.gitignore`. Include globs had the same gap:
|
|
107
|
+
`glob="./src/*.ts"` and `glob="src/"` matched nothing under ripgrep, and now
|
|
108
|
+
match under both. Every one of these shapes is in the parity matrix. Layer
|
|
109
|
+
`order` and import `module` patterns are read by the same matcher, so a
|
|
110
|
+
leading `/` anchors there too, where it used to match nothing.
|
|
111
|
+
- **An exclude pattern that could never exclude anything was accepted
|
|
112
|
+
silently.** Such patterns are now refused: exit 2 in the configuration or
|
|
113
|
+
`--exclude`, and an invalid directive in `exclude="..."`.
|
|
114
|
+
- `!`, which `.gitignore` uses to re-include a path. In
|
|
115
|
+
`["build", "!build/generated/needed.ts"]`, `build` excluded the whole
|
|
116
|
+
directory and the `!` line was ignored, so the exclusion was wider than it
|
|
117
|
+
read.
|
|
118
|
+
- `..`, which leads out of the root, where nothing is searched.
|
|
119
|
+
- A drive path, such as `C:/repo/dist`.
|
|
120
|
+
- `.` or `/`, which name the root itself.
|
|
121
|
+
|
|
122
|
+
The message is `invalid exclude pattern "!build/generated/needed.ts":
|
|
123
|
+
negation patterns are not supported in exclude`, after the file and key, the
|
|
124
|
+
option or the attribute. A caller of the API gets the same message thrown.
|
|
125
|
+
|
|
126
|
+
### Changed
|
|
127
|
+
|
|
128
|
+
- **Reports name the exclusions in force.** The options line lists `exclude`
|
|
129
|
+
with its patterns, as `options from .spec-guard.json: exclude (target, bin,
|
|
130
|
+
obj, dist)`, applied or overridden. `--exclude=` shows as `exclude (none)`.
|
|
131
|
+
Exclusions given only on the command line used to leave no trace, and now get
|
|
132
|
+
a line of their own: `exclude from the command line: dist`.
|
|
133
|
+
- **JSON reports carry `exclude`**, the patterns in force, always present and
|
|
134
|
+
empty when there are none, beside `config`, which says whether they came from
|
|
135
|
+
a file.
|
|
136
|
+
- **`query` says why no rule governs a path** when an exclusion is the reason,
|
|
137
|
+
rather than only `no rules in force govern this path`.
|
|
138
|
+
- The project's exclude: `no rules in force govern this path: the project's
|
|
139
|
+
exclude leaves it out (target)`.
|
|
140
|
+
- A rule's own exclude, where the project's does not already leave the path
|
|
141
|
+
out: `exclude="..." leaves it out of 2 rules`, followed by those rules.
|
|
142
|
+
- A path an `@assert-present` still governs gets a note that the project's
|
|
143
|
+
exclude leaves it out of every other rule.
|
|
144
|
+
- In JSON, each path has `excluded: { project, rules }`, and the report has
|
|
145
|
+
`exclude`.
|
|
146
|
+
- **The MCP server's answers carry the options line**, and both tools'
|
|
147
|
+
structured content carries `exclude` and `config`. Its startup line names the
|
|
148
|
+
patterns too.
|
|
149
|
+
- **API:**
|
|
150
|
+
- `RunReport`, `RunPlan`, `RuleSet` and `QueryReport` have a required
|
|
151
|
+
`exclude`, and `PathRules` a required `excluded`.
|
|
152
|
+
- `formatConfigUse` takes the patterns as an optional second argument.
|
|
153
|
+
- New: `formatOptionLines`, `normalizeExclude`, `normalizeGlob`,
|
|
154
|
+
`excludePatternError`, `excludeListError`, `checkProjectExcludes` and
|
|
155
|
+
`leftOutByOwnExclude`.
|
|
156
|
+
- `McpServerOptions.settings` may return `config`.
|
|
157
|
+
|
|
8
158
|
## 0.10.0
|
|
9
159
|
|
|
10
160
|
Improvements from running 0.9.2 over a large polyglot monorepo: a
|
package/README.md
CHANGED
|
@@ -107,7 +107,9 @@ Exit code 1. The ADR is now a test.
|
|
|
107
107
|
## Directives
|
|
108
108
|
|
|
109
109
|
Every directive is an HTML comment. It may span multiple lines. Attribute values
|
|
110
|
-
may use double or single quotes, and a bare attribute means `="true"`.
|
|
110
|
+
may use double or single quotes, and a bare attribute means `="true"`. Inside a
|
|
111
|
+
value, `\"`, `\'` and `\\` are escapes and any other backslash is kept, so a
|
|
112
|
+
regular expression is written as it reads: `symbol="\bTODO\b" regex="true"`.
|
|
111
113
|
|
|
112
114
|
### `@assert-absence` - this symbol is gone
|
|
113
115
|
|
|
@@ -137,6 +139,7 @@ hand-maintained list of every directory that is not `src/config`.
|
|
|
137
139
|
| Pattern | Excludes |
|
|
138
140
|
| --- | --- |
|
|
139
141
|
| `tests` | any directory or file named `tests`, at any depth, and everything under it |
|
|
142
|
+
| `/tests` | only the `tests` at the root, and everything under it |
|
|
140
143
|
| `src/config` | that directory and everything under it |
|
|
141
144
|
| `src/config/**` | the same, written explicitly |
|
|
142
145
|
| `*.test.ts` | any file with that name shape, at any depth |
|
|
@@ -146,6 +149,18 @@ is what you want; `exclude="tests"` means the directory, because that is what
|
|
|
146
149
|
people mean when they write it - and it is what `rg -g '!tests'` does. Both
|
|
147
150
|
engines implement the same rule, and a parity matrix asserts they agree on it.
|
|
148
151
|
|
|
152
|
+
A leading `./` and a trailing `/` are dropped, so `./tests` and `tests/` are
|
|
153
|
+
`tests`, and a backslash is a separator. Four shapes are refused, because they
|
|
154
|
+
can never exclude anything:
|
|
155
|
+
- **`!`**, which in `.gitignore` re-includes a path. Pasted from one, it was
|
|
156
|
+
silently dropped and the exclusion left wider than it read.
|
|
157
|
+
- **`..`**, since nothing outside the root is searched.
|
|
158
|
+
- **a drive path** such as `C:/repo/dist`.
|
|
159
|
+
- **`.` or `/`**, the root itself.
|
|
160
|
+
|
|
161
|
+
In a directive a refused pattern is an invalid directive; in the configuration
|
|
162
|
+
or `--exclude` it is exit 2.
|
|
163
|
+
|
|
149
164
|
List attributes accept commas or whitespace, so both of these work:
|
|
150
165
|
|
|
151
166
|
```md
|
|
@@ -191,9 +206,9 @@ touching code, a run that passed this way says so:
|
|
|
191
206
|
✔ every spec assertion holds
|
|
192
207
|
```
|
|
193
208
|
|
|
194
|
-
Comment syntax is known for around
|
|
195
|
-
C#, Rust, Go, Python-style `#`, SQL-style `--`, markup
|
|
196
|
-
comments at all). Strings are tracked too, because `//` inside a URL is not a
|
|
209
|
+
Comment syntax is known for around 68 extensions across 9 families (JS/TS, C,
|
|
210
|
+
C#, Rust, Go, Python-style `#`, SQL-style `--`, markup - MSBuild project files
|
|
211
|
+
included - and formats with no comments at all). Strings are tracked too, because `//` inside a URL is not a
|
|
197
212
|
comment and reading it as one would hide real code. Where spec-guard is unsure —
|
|
198
213
|
an unknown extension, an unterminated literal — the text counts as code, and the
|
|
199
214
|
report says which files it could not classify. A match wrongly kept is a visible
|
|
@@ -289,7 +304,7 @@ These read the dependency rather than the text, in **five languages**:
|
|
|
289
304
|
| Python | `.py .pyi` | `import a.b`, `from .rel import x`, `importlib.import_module("x")` |
|
|
290
305
|
| Go | `.go` | `import "x"` and grouped `import ( ... )`, including aliases and `_` |
|
|
291
306
|
| Rust | `.rs` | `use a::{b, c}` with nested groups, `pub use`, `extern crate` |
|
|
292
|
-
| C# | `.cs .csx` | `using`, `using static`, `global using`, `using X = A.B` |
|
|
307
|
+
| C# | `.cs .csx` | `using`, `using static`, `global using`, `using X = A.B`, `global::` and extern-alias qualifiers, and a using relative to its namespace |
|
|
293
308
|
|
|
294
309
|
No parser and no new dependency. JavaScript gets a full tokenizer because a
|
|
295
310
|
module reference can appear anywhere in an expression; the other four are read
|
|
@@ -302,9 +317,12 @@ this does not.
|
|
|
302
317
|
|
|
303
318
|
Module patterns are matched against the resolved `/`-separated path *and*
|
|
304
319
|
against the specifier as written, so `module="System.Text.Json"` and
|
|
305
|
-
`module="System/Text/Json"` both work.
|
|
306
|
-
|
|
307
|
-
`
|
|
320
|
+
`module="System/Text/Json"` both work. Either form covers what sits beneath it,
|
|
321
|
+
as `module="lodash"` covers `lodash/fp`: `module="Shop.Application"` matches
|
|
322
|
+
`using Shop.Application.Catalog;` and not `using Shop.ApplicationServices;`,
|
|
323
|
+
`module="app.db"` matches `import app.db.client`, and `module="crate::db"`
|
|
324
|
+
matches `use crate::db::pool`. Matching is case-sensitive, so a rule spanning C#
|
|
325
|
+
and Go needs both conventions: `module="app/db/** App/Db/**"`.
|
|
308
326
|
|
|
309
327
|
The unit counted is **files** that depend on the module. For JavaScript and
|
|
310
328
|
TypeScript it understands:
|
|
@@ -341,7 +359,7 @@ stops it being mistaken for a complete answer. A passing rule prints it without
|
|
|
341
359
|
`--verbose` too, since a green run is when it would otherwise go unread.
|
|
342
360
|
`--strict` turns those warnings into failures. Files in scope that are not JavaScript or TypeScript are counted
|
|
343
361
|
and reported too, so a rule pointed at the wrong tree says "analysed 2 of 3
|
|
344
|
-
files" rather than quietly passing - and if *none* of them can be read, the
|
|
362
|
+
files; 1 is in a language whose imports spec-guard cannot read (.razor)" rather than quietly passing - and if *none* of them can be read, the
|
|
345
363
|
assertion fails rather than passing on an empty analysis.
|
|
346
364
|
|
|
347
365
|
[ADR-0005](docs/adr/0005-import-assertions.md) has the measurements and the
|
|
@@ -374,15 +392,89 @@ why this works in all five languages above: `src/domain` is anchored at the
|
|
|
374
392
|
root, and a bare `domain` matches that segment anywhere - in `src/domain/user.ts`,
|
|
375
393
|
in Python's `app.domain.user`, in Rust's `crate::domain::user`. A layer may also
|
|
376
394
|
be a single file; `order="src/parser.ts, src/cli.ts"` understands that
|
|
377
|
-
`./parser.js` is `src/parser.ts`.
|
|
395
|
+
`./parser.js` is `src/parser.ts`. C# is layered by namespace, and has
|
|
396
|
+
[a section of its own](#c-and-net-solutions).
|
|
378
397
|
|
|
379
398
|
The unit is files, and `max`, `types`, `exclude` and `baseline` mean what they
|
|
380
|
-
mean on `@assert-import-absence`.
|
|
381
|
-
each is a rule that would otherwise check less than it says:
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
399
|
+
mean on `@assert-import-absence`. Five things fail rather than pass, because
|
|
400
|
+
each is a rule that would otherwise check less than it says:
|
|
401
|
+
|
|
402
|
+
- a layer that matches no file (`order="domain, aplication"`);
|
|
403
|
+
- a file two layers both claim;
|
|
404
|
+
- a target that does not exist;
|
|
405
|
+
- a layer no C# `using` can reach, because it matches none of the namespaces its
|
|
406
|
+
own files declare - `src/Shop.Application` rather than `Shop.Application`;
|
|
407
|
+
- a scope in which no import reaches a layer other than its own file's, since
|
|
408
|
+
that rule passes whatever order its layers are listed in:
|
|
409
|
+
|
|
410
|
+
```text
|
|
411
|
+
✖ docs/architecture.md:12 @assert-layers
|
|
412
|
+
src must keep its layers in order, src/domain < src/application < src/infrastructure
|
|
413
|
+
no import in scope reaches a layer other than its own file's, so these layers would pass in any order (add allow-empty="true" if that is expected)
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
`allow-empty="true"` turns the first and the last two into warnings. Files that
|
|
417
|
+
no layer claims are left alone and counted, so a directory nobody assigned shows
|
|
418
|
+
up as a number rather than as silence.
|
|
419
|
+
|
|
420
|
+
### C# and .NET solutions
|
|
421
|
+
|
|
422
|
+
A .NET project has three names: its folder, its project file and its root
|
|
423
|
+
namespace. `dotnet new` gives all three the same one, and that is what lets a
|
|
424
|
+
single pattern do both halves of a layer rule - hold the files under
|
|
425
|
+
`src/Shop.Domain`, and reach `using Shop.Domain.Orders;` from anywhere else:
|
|
426
|
+
|
|
427
|
+
```md
|
|
428
|
+
<!-- @assert-layers target="src" order="Shop.Domain, Shop.Application, Shop.Infrastructure, Shop.Web" reason="dependencies point inward" -->
|
|
429
|
+
<!-- @assert-import-absence target="src/Shop.Application" module="Microsoft.EntityFrameworkCore" reason="persistence is infrastructure's" -->
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
- **Name a C# layer by its namespace.** `Shop.Domain` matches the folder as a
|
|
433
|
+
path segment, and the namespace with everything under it - `Shop.Domain.Orders`,
|
|
434
|
+
but not `Shop.DomainEvents`. A folder path such as `src/Shop.Domain` holds the
|
|
435
|
+
right files, but a using names a namespace, never a path, so nothing can reach
|
|
436
|
+
it: such a rule fails, and names a namespace the layer's files declare. Where
|
|
437
|
+
folders and namespaces differ, as when `src/Domain` holds
|
|
438
|
+
`Acme.Clean.Domain.Entities`, the name they share - `Domain` - does both.
|
|
439
|
+
- **`module=` is a namespace too**, as above: `module="Shop.Infrastructure"`
|
|
440
|
+
covers `using Shop.Infrastructure.Persistence;`.
|
|
441
|
+
- **What is read**: `using`, `global using`, `using static` and aliases, with
|
|
442
|
+
any `global::` or extern-alias qualifier left off the name. A using inside a
|
|
443
|
+
namespace may be relative to it, so `using Application.Orders;` inside
|
|
444
|
+
`namespace Shop.Domain` also counts as `Shop.Application.Orders`. Nothing in a
|
|
445
|
+
comment, a verbatim string or a raw string literal is read.
|
|
446
|
+
|
|
447
|
+
What it cannot see, and the text rule that covers each - a text rule reads a
|
|
448
|
+
name wherever it is written:
|
|
449
|
+
|
|
450
|
+
| Not seen by an import rule | Held by |
|
|
451
|
+
| --- | --- |
|
|
452
|
+
| A fully qualified name with no using: `new Shop.Infrastructure.Db()` | `@assert-absence target="src/Shop.Domain" glob="*.cs" symbol="Shop.Infrastructure" word="true"` |
|
|
453
|
+
| A `<ProjectReference>`, or a `<Using Include>` in a project file | the same rule with `glob="*.csproj,*.props"` |
|
|
454
|
+
| `@using` in `.razor` and `.cshtml`, which import rules count as files they could not read | the same rule with `glob="*.razor,*.cshtml"` |
|
|
455
|
+
| Code a source generator writes | nothing: it is not in the tree |
|
|
456
|
+
|
|
457
|
+
In a solution of projects, the project references are the layering the
|
|
458
|
+
compiler enforces - a using of a project that is not referenced does not build -
|
|
459
|
+
so a rule over the project files is worth having beside the layer rule:
|
|
460
|
+
|
|
461
|
+
```md
|
|
462
|
+
<!-- @assert-absence target="src/Shop.Domain" glob="*.csproj" regex="true" symbol="Shop\.(Application|Infrastructure|Web)\b" reason="the domain references no outer project" -->
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
Keep build output out of every rule in `.spec-guard.json`:
|
|
466
|
+
|
|
467
|
+
```json
|
|
468
|
+
{
|
|
469
|
+
"specs": ["docs/**/*.md"],
|
|
470
|
+
"exclude": ["bin", "obj", "artifacts", "TestResults", ".vs"]
|
|
471
|
+
}
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
`bin` and `obj` are MSBuild's output, `artifacts` is where the output goes with
|
|
475
|
+
`UseArtifactsOutput` (.NET 8 and later), `TestResults` is where `dotnet test`
|
|
476
|
+
writes, and `.vs` holds Visual Studio's caches. A front end in the same tree
|
|
477
|
+
adds its own, such as Nuxt's `.output`; `node_modules` is skipped already.
|
|
386
478
|
|
|
387
479
|
### `@assert-import-cycle` - no file depends on itself
|
|
388
480
|
|
|
@@ -560,7 +652,7 @@ Passes when every listed path exists relative to `--root`. Directories count.
|
|
|
560
652
|
| `partner` | structure | Partner templates, any one of which must exist: `[name].test.[ext]` |
|
|
561
653
|
| `types` | import assertions, layers, cycles | `include` (default) or `ignore` for `import type` |
|
|
562
654
|
| `dynamic` | cycles | `include` (default) or `ignore` for `import('x')` |
|
|
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 |
|
|
655
|
+
| `allow-empty` | all but present | Tolerate a scope that holds no files, a layer that matches none, a layer no C# using can reach, layers no import crosses between, or no chosen directories. Off by default - see below |
|
|
564
656
|
| `baseline` | absence, import-absence, layers, structure | Known violations that do not count: `path` or `path:count` |
|
|
565
657
|
| `ratchet` | absence, import-absence, layers, structure | `two-sided` (default) or `one-way` - see below |
|
|
566
658
|
| `reason` | all | Human-readable justification, printed on failure |
|
|
@@ -720,6 +812,24 @@ a file that does not exist yet. A directory lists every rule that could reach a
|
|
|
720
812
|
file under it. `--json` is the same answer for a script. Rules in documents that
|
|
721
813
|
are not in force are counted and named, never silently left out.
|
|
722
814
|
|
|
815
|
+
A path that no rule governs because something excluded it says so, since
|
|
816
|
+
"nobody wrote a rule" and "somebody set this aside" call for different things:
|
|
817
|
+
|
|
818
|
+
```text
|
|
819
|
+
target/debug/build.rs
|
|
820
|
+
no rules in force govern this path: the project's exclude leaves it out (target)
|
|
821
|
+
|
|
822
|
+
src/legacy/generated/api.ts
|
|
823
|
+
no rules in force govern this path: exclude="..." leaves it out of 1 rule
|
|
824
|
+
|
|
825
|
+
left out by exclude="...":
|
|
826
|
+
docs/adr/0004-legacy.md:12 @assert-absence "LegacyClient" must not appear in src (excluding src/legacy)
|
|
827
|
+
```
|
|
828
|
+
|
|
829
|
+
In JSON, each path carries `excluded.project`, the project patterns that match
|
|
830
|
+
it, and `excluded.rules`, the rules whose own `exclude` leaves it out where the
|
|
831
|
+
project's does not.
|
|
832
|
+
|
|
723
833
|
The arithmetic that decides whether a rule governs a path is tested against the
|
|
724
834
|
walk a real run makes, file for file, under both engines and on randomly
|
|
725
835
|
generated trees. [ADR-0012](docs/adr/0012-query-and-mcp.md) lists the three
|
|
@@ -837,7 +947,7 @@ same options, at the top level, in `.spec-guard.json`:
|
|
|
837
947
|
| Key | Command line | Value |
|
|
838
948
|
| --- | --- | --- |
|
|
839
949
|
| `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
|
|
950
|
+
| `exclude` | `--exclude` | an array of paths, gitignore-style, left out of every assertion that takes `exclude`; no `!`, `..`, drive path or root |
|
|
841
951
|
| `engine` | `--engine` | `"auto"`, `"rg"` or `"js"` |
|
|
842
952
|
| `strict`, `allowMissingTargets`, `allowEmptyScope`, `ignoreStatus`, `includeSpecs`, `defaultSkips` | the flag of that name | `true` or `false` |
|
|
843
953
|
| `maxSnippets` | `--max-snippets` | an integer, 0 or more |
|
|
@@ -857,14 +967,23 @@ same options, at the top level, in `.spec-guard.json`:
|
|
|
857
967
|
names its files and is unaffected. A rule's description names only its own
|
|
858
968
|
exclusions; the project's appear in the options line below.
|
|
859
969
|
- **A malformed configuration is exit 2, before anything runs**, naming the file
|
|
860
|
-
and the key: an unknown key, `"true"` where `true` goes,
|
|
861
|
-
belongs to one invocation, such as `format` or `verbose
|
|
970
|
+
and the key: an unknown key, `"true"` where `true` goes, an option that
|
|
971
|
+
belongs to one invocation, such as `format` or `verbose`, or an exclude
|
|
972
|
+
pattern that can never exclude anything:
|
|
973
|
+
|
|
974
|
+
```text
|
|
975
|
+
spec-guard: .spec-guard.json: "exclude" has an invalid exclude pattern "!build/generated/needed.ts": negation patterns are not supported in exclude.
|
|
976
|
+
```
|
|
862
977
|
- **Every report says what it took from the file**: a line above the summary
|
|
863
|
-
such as `options from
|
|
864
|
-
JSON.
|
|
865
|
-
|
|
978
|
+
such as `options from .spec-guard.json: specs, exclude (target, bin, obj)`,
|
|
979
|
+
and a `config` field in JSON. `exclude` is named with its patterns, and
|
|
980
|
+
exclusions given only on the command line get a line of their own,
|
|
981
|
+
`exclude from the command line: dist`. JSON always carries the patterns in
|
|
982
|
+
force as `exclude`, an empty list when there are none. An option nobody can see
|
|
983
|
+
should never decide a result.
|
|
866
984
|
- `query` applies what a query reads, and the MCP server reads the file again
|
|
867
|
-
for every request.
|
|
985
|
+
for every request. Both tools' answers carry the options line, and their
|
|
986
|
+
structured content carries `exclude` and `config`.
|
|
868
987
|
|
|
869
988
|
### Watch mode
|
|
870
989
|
|
|
@@ -1245,7 +1364,7 @@ prebuilt binary and is never a runtime dependency.
|
|
|
1245
1364
|
|
|
1246
1365
|
Coverage says a line ran. It does not say an assertion would notice if the line
|
|
1247
1366
|
behaved differently. This repository measures the difference: line coverage is
|
|
1248
|
-
**100%**, and **98.
|
|
1367
|
+
**100%**, and **98.96%** of 8,283 mutants are killed in CI, with 83 survivors and
|
|
1249
1368
|
no file below 95%. The second number is the one worth reading, and what was done
|
|
1250
1369
|
about the survivors matters more than the score. At 0.5.1 every surviving mutant
|
|
1251
1370
|
was checked individually, and the 101 left then produced byte-identical output.
|
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;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
import { createRequire } from 'node:module';
|
|
10
10
|
import path from 'node:path';
|
|
11
11
|
import { CONFIG_KEYS, ConfigError, engineNamed, findConfig } from './config.js';
|
|
12
|
+
import { excludeListError } from './glob.js';
|
|
12
13
|
import { nodeIo, readText, watchTree } from './io.js';
|
|
13
14
|
import { createMcpHandler, serveStdio } from './mcp.js';
|
|
14
15
|
import { formatQuery, formatQueryJson, queryRules } from './query.js';
|
|
15
|
-
import { formatBaselines, formatJson, formatReport, formatSarif, shouldUseAscii, shouldUseColor } from './reporter.js';
|
|
16
|
+
import { formatBaselines, formatConfigUse, formatJson, formatReport, formatSarif, shouldUseAscii, shouldUseColor } from './reporter.js';
|
|
16
17
|
import { DEFAULT_CONCURRENCY, DEFAULT_MAX_SNIPPETS, runSpecGuard, splitList } from './runner.js';
|
|
17
18
|
import { createSession, runWatch } from './watch.js';
|
|
18
19
|
export const EXIT_OK = 0;
|
|
@@ -286,10 +287,15 @@ export function parseArgs(argv, cwd) {
|
|
|
286
287
|
break;
|
|
287
288
|
// Repeatable, each value a list as exclude="..." takes one. Given at all, it
|
|
288
289
|
// replaces the configuration's list, and --exclude= with nothing clears it.
|
|
289
|
-
case '--exclude':
|
|
290
|
-
|
|
290
|
+
case '--exclude': {
|
|
291
|
+
const patterns = splitList(nextValue());
|
|
292
|
+
const error = excludeListError(patterns);
|
|
293
|
+
if (error !== null)
|
|
294
|
+
throw new UsageError(`Option --exclude has an ${error}.`);
|
|
295
|
+
options.exclude.push(...patterns);
|
|
291
296
|
set.add('exclude');
|
|
292
297
|
break;
|
|
298
|
+
}
|
|
293
299
|
case '--ignore-status':
|
|
294
300
|
case '--no-ignore-status':
|
|
295
301
|
options.ignoreStatus = name === '--ignore-status';
|
|
@@ -575,12 +581,13 @@ async function runMcp(options, commandLine, io, use) {
|
|
|
575
581
|
run: runOptionsOf(options),
|
|
576
582
|
settings: async () => {
|
|
577
583
|
const fresh = { ...commandLine, patterns: [...commandLine.patterns] };
|
|
578
|
-
|
|
579
|
-
|
|
584
|
+
const found = await findConfig(options.root, (file) => readText(nodeIo, file));
|
|
585
|
+
const config = applyConfig(fresh, found.config, found.file);
|
|
586
|
+
return { patterns: fresh.patterns, run: runOptionsOf(fresh), config };
|
|
580
587
|
},
|
|
581
588
|
});
|
|
582
589
|
// stderr is the one channel the stdio binding leaves free for people.
|
|
583
|
-
const from = use === undefined || use.applied.length === 0 ? '' : `,
|
|
590
|
+
const from = use === undefined || use.applied.length === 0 ? '' : `, ${formatConfigUse({ ...use, overridden: [] }, options.exclude)}`;
|
|
584
591
|
io.stderr(`spec-guard ${version()}: MCP server on stdio, rules from ${options.patterns.join(', ')} under ${options.root}${from}`);
|
|
585
592
|
await serveStdio(io.stdin, io.stdout, handler);
|
|
586
593
|
return EXIT_OK;
|
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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAsC,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACxI,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,YAAY,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAC;AAClH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIrD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AACzB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAkE5B,MAAM,OAAO,UAAW,SAAQ,KAAK;CAAG;AAExC;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,QAAQ,GAAG,iBAAiB;IAClD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAyB,CAAC;QACtD,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEA8BiD,oBAAoB;sEACnB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAiCrD,CAAC;AAErC;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,KAAyB;IAC3D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,UAAU,CAAC,UAAU,IAAI,oBAAoB,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,KAAa;IAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,UAAU,IAAI,yCAAyC,KAAK,IAAI,CAAC,CAAC;IACjH,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,GAA2D;IACtE,KAAK,EAAE,IAAI,GAAG,CAAC;QACb,WAAW;QACX,SAAS;QACT,aAAa;QACb,UAAU;QACV,UAAU;QACV,aAAa;QACb,yBAAyB;QACzB,4BAA4B;QAC5B,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,SAAS;KACV,CAAC;IACF,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;CAC1I,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,cAAc,GAAoD;IACtE,CAAC,QAAQ,EAAE,yDAAyD,CAAC;IACrE,CAAC,UAAU,EAAE,yDAAyD,CAAC;IACvE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;IAChD,CAAC,aAAa,EAAE,yEAAyE,CAAC;IAC1F,CAAC,eAAe,EAAE,qCAAqC,CAAC;IACxD,CAAC,UAAU,EAAE,0EAA0E,CAAC;CACzF,CAAC;AAEF,gEAAgE;AAChE,MAAM,UAAU,GAAqC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAE3E,wFAAwF;AACxF,MAAM,UAAU,SAAS,CAAC,IAAuB,EAAE,GAAW;IAC5D,MAAM,OAAO,GAAY,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACtF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAe;QAC1B,OAAO;QACP,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,MAAM;QACd,mBAAmB,EAAE,KAAK;QAC1B,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,KAAK;QACtB,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,mBAAmB;QAChC,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,IAAI,GAAG,EAAE;KAC3B,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;IACpC,4FAA4F;IAC5F,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,KAAK,IAAI,KAAK,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAW,CAAC;QAEvC,IAAI,cAAc,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YACpE,IAAI,OAAO,KAAK,KAAK;gBAAE,MAAM,IAAI,UAAU,CAAC,2CAA2C,QAAQ,4BAA4B,CAAC,CAAC;YAC7H,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxE,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,cAAc,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,GAAW,EAAE;YAC7B,IAAI,WAAW,KAAK,SAAS;gBAAE,OAAO,WAAW,CAAC;YAClD,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC;QAEF,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,UAAU,CAAC,UAAU,IAAI,iCAAiC,OAAO,GAAG,CAAC,CAAC;QAClF,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAEpC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACX,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;gBACpB,MAAM;YACR,KAAK,WAAW;gBACd,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,MAAM;YACR,KAAK,IAAI,CAAC;YACV,KAAK,WAAW;gBACd,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;gBACrB,MAAM;YACR,KAAK,aAAa;gBAChB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACxB,MAAM;YACR,KAAK,QAAQ;gBACX,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;gBACpB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;gBACxB,MAAM;YACR,KAAK,UAAU,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,OAAO,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC7C,MAAM,IAAI,UAAU,CAAC,4FAA4F,CAAC,CAAC;gBACrH,CAAC;gBACD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC/D,MAAM,IAAI,UAAU,CAAC,mBAAmB,KAAK,mCAAmC,CAAC,CAAC;gBACpF,CAAC;gBACD,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;gBACvB,OAAO,CAAC,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC;gBAChC,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC;YAChB,KAAK,aAAa;gBAChB,OAAO,CAAC,aAAa,GAAG,IAAI,KAAK,UAAU,CAAC;gBAC5C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClB,MAAM;YACR,KAAK,yBAAyB,CAAC;YAC/B,KAAK,4BAA4B;gBAC/B,OAAO,CAAC,mBAAmB,GAAG,IAAI,KAAK,yBAAyB,CAAC;gBACjE,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,qBAAqB,CAAC;YAC3B,KAAK,wBAAwB;gBAC3B,OAAO,CAAC,eAAe,GAAG,IAAI,KAAK,qBAAqB,CAAC;gBACzD,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC3B,MAAM;YACR,KAAK,kBAAkB;gBACrB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC7B,MAAM;YACR,KAAK,iBAAiB,CAAC;YACvB,KAAK,oBAAoB;gBACvB,OAAO,CAAC,YAAY,GAAG,IAAI,KAAK,iBAAiB,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACxB,MAAM;YACR,6EAA6E;YAC7E,4EAA4E;YAC5E,KAAK,WAAW,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;gBACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,KAAK,KAAK,IAAI;oBAAE,MAAM,IAAI,UAAU,CAAC,2BAA2B,KAAK,GAAG,CAAC,CAAC;gBAC9E,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAClC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnB,MAAM;YACR,CAAC;YACD,KAAK,iBAAiB,CAAC;YACvB,KAAK,oBAAoB;gBACvB,OAAO,CAAC,YAAY,GAAG,IAAI,KAAK,iBAAiB,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,iBAAiB,CAAC;YACvB,KAAK,oBAAoB;gBACvB,OAAO,CAAC,YAAY,GAAG,IAAI,KAAK,iBAAiB,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,eAAe;gBAClB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;gBACrB,MAAM;YACR,KAAK,YAAY;gBACf,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBACtB,MAAM;YACR,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACX,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC9C,MAAM;YACR,KAAK,QAAQ;gBACX,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,UAAU,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,UAAU,CAAE,KAAqB,CAAC,OAAO,CAAC,CAAC;gBACvD,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClB,MAAM;YACR,CAAC;YACD,KAAK,gBAAgB;gBACnB,OAAO,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACzD,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,eAAe;gBAClB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBACtE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACvB,MAAM;YACR;gBACE,MAAM,IAAI,UAAU,CAAC,mBAAmB,IAAI,2BAA2B,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE,CAAC;gBAChF,MAAM,IAAI,UAAU,CAAC,UAAU,MAAM,0CAA0C,MAAM,GAAG,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,cAAc,CAAC,CAAC;IACvE,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3F,MAAM,IAAI,UAAU,CAAC,uFAAuF,CAAC,CAAC;IAChH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,GAA2B,IAAI,GAAG,CAAY,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;AAEpI,6EAA6E;AAC7E,MAAM,OAAO,GAAoG;IAC/G,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACxB,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC1B,OAAO,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACzB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACzB,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;IAChC,CAAC;IACD,mBAAmB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtC,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACtC,CAAC;IACD,eAAe,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAClC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;IAClC,CAAC;IACD,YAAY,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC/B,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,YAAY,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC/B,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,YAAY,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC/B,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,WAAW,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC9B,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,WAAW,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC9B,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;IAC9B,CAAC;CACF,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,OAAmB,EAAE,MAAqB,EAAE,IAAI,GAAG,cAAc;IAC3F,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,KAAK,QAAQ;YAAE,SAAS;QACrG,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACA,OAAO,CAAC,GAAG,CAAkD,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9F,CAAC;AAED,sFAAsF;AACtF,KAAK,UAAU,SAAS,CAAC,OAAmB,EAAE,EAAS;IACrD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/E,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,6EAA6E;QAC7E,0EAA0E;QAC1E,wDAAwD;QACxD,EAAE,CAAC,MAAM,CAAC,eAAgB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,SAAS,YAAY,CAAC,OAAmB;IACvC,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;QACnD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;QACnD,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3C,KAAK,EAAE,SAAS;QAChB,uEAAuE;QACvE,yDAAyD;QACzD,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;YACvB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/B,OAAO,GAAG,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAClC,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe,CAAC,WAAuB,EAAE,EAAS;IAC/D,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAe,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpF,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACjF,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9D,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5E,CAAC;KACF,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IACvB,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,OAAO;QACP,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC;QAClI,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACjE,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,QAAQ,EAAE;YACR,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC;YACrE,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC;SAC9B;QACD,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;QAC/C,GAAG,CAAC,KAAK,KAAK,SAAS;YACrB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,MAAM,EAAE,CAAC,OAAmB,EAAE,EAAE;oBAC9B,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAQ,EAAE;wBAChD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAAE,OAAO,EAAE,CAAC;oBAC9C,CAAC,CAAC;oBACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBAC3B,OAAO,GAAG,EAAE;wBACV,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBAC5B,kEAAkE;wBAClE,iCAAiC;wBACjC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,CAAC,CAAC;gBACJ,CAAC;aACF,CAAC;KACP,CAAC,CAAC;AACL,CAAC;AAED,gEAAgE;AAChE,KAAK,UAAU,QAAQ,CAAC,OAAmB,EAAE,EAAS,EAAE,GAA0B;IAChF,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG;YACP,GAAG,CAAC,MAAM,UAAU,CAAC;gBACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,eAAe,EAAE,OAAO,CAAC,YAAY;gBACrC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YACH,MAAM,EAAE,GAAG;SACZ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;YAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;;YAC7D,EAAE,CAAC,MAAM,CAAC,qCAAqC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxG,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,MAAM,CAAC,OAAmB,EAAE,WAAuB,EAAE,EAAS,EAAE,GAA0B;IACvG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACd,EAAE,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;QACrD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC;QAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,EAAE;QAClB,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC;QAC1B,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnB,MAAM,KAAK,GAAe,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClF,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5D,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACxE,CAAC;KACF,CAAC,CAAC;IACH,sEAAsE;IACtE,MAAM,IAAI,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IACtI,EAAE,CAAC,MAAM,CAAC,cAAc,OAAO,EAAE,qCAAqC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IAClI,MAAM,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAI,GAAsB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAU,SAAS,EAAE;IACjG,IAAI,OAAmB,CAAC;IACxB,IAAI,CAAC;QACH,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACd,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACrB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,sEAAsE;IACtE,gEAAgE;IAChE,MAAM,WAAW,GAAe,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChF,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,UAAU,CAAC;IAC3C,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;IAE3B,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;QAAE,OAAO,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE3D,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG;YACP,GAAG,CAAC,MAAM,YAAY,CAAC,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACrG,uEAAuE;YACvE,8CAA8C;YAC9C,MAAM,EAAE,GAAG;SACZ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC/B,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,MAAM,CAAC,qCAAqC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;IACnD,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,0EAA0E;QAC1E,8CAA8C;QAC9C,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC/B,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACrC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,MAAM,CACP,YAAY,CACV,MAAM,EACN;YACE,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC;YACjE,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC;SAC9B,EACD,OAAO,CAAC,WAAW,CACpB,CACF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;AAC3C,CAAC"}
|
package/dist/comments.d.ts
CHANGED
|
@@ -31,6 +31,12 @@ interface StringRule {
|
|
|
31
31
|
close: string;
|
|
32
32
|
/** Backslash escapes apply inside. */
|
|
33
33
|
escape: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* The opener is a run of its character at least `open` long, and only a run
|
|
36
|
+
* of the same length closes it: C#'s raw strings, which take `"""` or as many
|
|
37
|
+
* more quotes as their text needs to hold a `"""` of its own.
|
|
38
|
+
*/
|
|
39
|
+
run?: boolean;
|
|
34
40
|
}
|
|
35
41
|
export interface CommentSyntax {
|
|
36
42
|
name: string;
|
package/dist/comments.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../src/comments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../src/comments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,0CAA0C;IAC1C,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;CAChC;AA4JD,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAEhE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAE9D;AAED,4DAA4D;AAC5D,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AA8CrD,oFAAoF;AACpF,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gEAAgE;IAChE,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB;;;;;;;OAOG;IACH,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,SAAS,CA2C1E;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,YAAY,EAAE,CAEnF;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;CACpC;AAQD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAqB/E"}
|