@descent-vtt/spec-graph 0.9.9 → 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.
Files changed (43) hide show
  1. package/CHANGELOG.md +132 -2
  2. package/README.md +523 -308
  3. package/dist/cli.d.ts +2 -2
  4. package/dist/cli.js +112 -67
  5. package/dist/cli.js.map +1 -1
  6. package/dist/extract.d.ts +14 -1
  7. package/dist/extract.js +114 -10
  8. package/dist/extract.js.map +1 -1
  9. package/dist/glob.d.ts +17 -2
  10. package/dist/glob.js +137 -34
  11. package/dist/glob.js.map +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/lifecycle.d.ts +11 -1
  16. package/dist/lifecycle.js +187 -28
  17. package/dist/lifecycle.js.map +1 -1
  18. package/dist/report.d.ts +22 -0
  19. package/dist/report.js +50 -3
  20. package/dist/report.js.map +1 -1
  21. package/dist/sections.d.ts +7 -1
  22. package/dist/sections.js +10 -2
  23. package/dist/sections.js.map +1 -1
  24. package/dist/state.js +19 -3
  25. package/dist/state.js.map +1 -1
  26. package/dist/vendor/spec-core/markdown/frontmatter.d.ts +11 -1
  27. package/dist/vendor/spec-core/markdown/frontmatter.js +20 -3
  28. package/dist/vendor/spec-core/markdown/frontmatter.js.map +1 -1
  29. package/dist/vendor/spec-core/pattern/glob.d.ts +88 -2
  30. package/dist/vendor/spec-core/pattern/glob.js +234 -32
  31. package/dist/vendor/spec-core/pattern/glob.js.map +1 -1
  32. package/dist/vendor/spec-core/pattern/index.d.ts +2 -2
  33. package/dist/vendor/spec-core/pattern/index.js +1 -1
  34. package/dist/vendor/spec-core/pattern/index.js.map +1 -1
  35. package/dist/vendor/spec-core/text/index.d.ts +1 -0
  36. package/dist/vendor/spec-core/text/index.js +1 -0
  37. package/dist/vendor/spec-core/text/index.js.map +1 -1
  38. package/dist/vendor/spec-core/text/width.d.ts +30 -0
  39. package/dist/vendor/spec-core/text/width.js +113 -0
  40. package/dist/vendor/spec-core/text/width.js.map +1 -0
  41. package/dist/yaml.js +6 -2
  42. package/dist/yaml.js.map +1 -1
  43. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,7 +1,137 @@
1
1
  # Changelog
2
2
 
3
- Notable changes, newest first. Versions follow [semver](https://semver.org):
4
- a patch fixes behaviour without asking anything of a repository that upgrades.
3
+ Notable changes, newest first. Before 1.0, anything that can turn a passing
4
+ run red or change what a script reads - a new finding, a changed exit code,
5
+ input refused that was accepted, a renamed flag or JSON field - comes in a
6
+ minor release, 0.9 to 0.10, with new features; a patch only reports less,
7
+ fixes a crash, runs faster or corrects the documentation, so `^0.10.0` takes
8
+ no release that can fail a build that passed. A flag, key or field is
9
+ deprecated with a warning for at least one minor release before it goes, as
10
+ the family's
11
+ [versioning policy](https://github.com/DescentVTT/spec-core/blob/main/docs/adr/0009-versions-before-1-0.md)
12
+ records.
13
+
14
+ ## 0.10.0
15
+
16
+ Statuses, status tables, relations, obligations and markers written in
17
+ Chinese are read, and `check` writes GitHub annotations. Over this
18
+ repository, its fixtures and the rest of the family, which write neither,
19
+ every `check` format and graph export is byte for byte what 0.9.10 wrote.
20
+ spec-core is at 5666c96.
21
+
22
+ ### Added
23
+
24
+ - `check --format github` writes one GitHub Actions workflow command per
25
+ finding, with the hint in the message; severities as spec-guard's.
26
+
27
+ ### Changed
28
+
29
+ - A status written in Chinese, Traditional or Simplified, is read as the
30
+ English word it translates (`已接受` accepted, `延後` deferred, `封存`
31
+ archived, `已被 ADR-0003 取代` superseded by ADR-0003), from front matter
32
+ (`狀態:`), a `## 狀態` section or a register label (ADR-0002). Upgrading:
33
+ run `check`; fix what a rule now finds on a Chinese document, or baseline
34
+ it with `--record-baseline <file>`.
35
+ - A two-column table above the first `##`, `| 狀態 | 已接受 |` or
36
+ `| Status | Accepted |`, gives the status, after a `## Status` section and
37
+ never over front matter (ADR-0002). Upgrading: as above.
38
+ - Hand-off phrases (`延後至`, `移交給`, `留待`, `交由`, `併入`), obligation
39
+ and bookkeeping sections (`待辦事項`, `未決問題`, `參考資料`, `附錄`) and
40
+ markers (`已解決:`, `已決定:`, `**技術債**`) written in Chinese are read,
41
+ not after a negation (ADR-0003, ADR-0006). Upgrading: as above.
42
+ - A pattern typed below the root is rebased alternative by alternative:
43
+ `{/docs,x}` in `sub` is `/docs` or `sub/x`, `!/docs` stays rooted, and
44
+ `{../a,b}` in `sub/deep` works; a `..` past the root, an empty pattern, a
45
+ directory name holding glob syntax and `{/,x}` exit 2 (ADR-0018,
46
+ ADR-0022). Upgrading: write `{docs,x}` for what `{/docs,x}` read in a
47
+ subdirectory.
48
+ - `.//docs` reads as `./docs`, where it was rooted and matched nothing
49
+ (ADR-0022). Upgrading: nothing to change.
50
+
51
+ ### Fixed
52
+
53
+ - A statement ends at `。?!;`, so a Chinese phrase no longer governs a
54
+ reference in the next sentence.
55
+ - A front-matter key in any script is read, where it was counted as a
56
+ problem line on every run.
57
+ - A bare `--history` name typed below the root is read from where it was
58
+ typed (ADR-0018).
59
+ - The `--record-baseline` hint names the file as typed where the run was
60
+ (ADR-0018).
61
+ - The terminal report lines up paths in Chinese, and the caret under a
62
+ selector that does not parse.
63
+ - The README's SARIF example uses `upload-sarif@v4` and the
64
+ `security-events: write` permission it needs.
65
+
66
+ ### Documentation
67
+
68
+ - The README is reorganised into lists and tables with nothing left out,
69
+ links the family's glossary and tutorial, and SECURITY.md says how to
70
+ report a vulnerability privately.
71
+
72
+ ## 0.9.10
73
+
74
+ A `!` before a bare `--ignore` name gives the name back, as `.gitignore`
75
+ does, where it did nothing; a refused `--ignore-ref` pattern is advised as it
76
+ was typed; a followed link back into a directory the walk is inside is not
77
+ walked again; and spec-core is at 7e41240, so a leading `/` on a brace
78
+ alternative roots it as it roots a pattern alone. A repository with none of
79
+ these sees nothing change.
80
+
81
+ ### Fixed
82
+
83
+ - **spec-core 7e41240: a leading `/` on a brace alternative means what it
84
+ means on the pattern written alone.** It was dropped, so `{/docs,x}` read
85
+ `docs`. As a pattern to check, `{/docs/*.md,x/*.md}` read every file in
86
+ `docs` where `/docs/*.md` reads none, and `{/dist,docs}` read the `dist`
87
+ the walk skips; as an `--ignore` or a `--history` pattern, `{/docs,x}` took
88
+ out, or made records of, what is in `docs` where `/docs` takes out
89
+ nothing; and `--ignore-ref "{/docs/a.md,x}"` passed over the target
90
+ `docs/a.md` and not `/docs/a.md`. Each such alternative now reads as the
91
+ text alone does, from the configuration as from the command line: rooted
92
+ at the filesystem's root, which nothing under the root is, and for
93
+ `--ignore-ref` the target `/docs/a.md`. `globBase("{/docs/*.md}")` is
94
+ `/docs`, as `globBase("/docs/*.md")` is. A `/` before the braces,
95
+ `/{docs,x}`, and one after a segment, `docs/{/adr,x}`, read as they did.
96
+ Typed in a directory below the root, the pattern is re-anchored whole, as
97
+ before, so `{/docs,x}` typed in `sub` still reads `sub/docs` (ADR-0022).
98
+ No configuration in this repository, its fixtures or the rest of the
99
+ family writes such a pattern, and over them every `check` format and every
100
+ graph export is byte for byte what 0.9.9 wrote.
101
+ - **A `!` before a bare `--ignore` name gives the name back.**
102
+ `--ignore docs --ignore "!docs"` pruned every `docs` and said nothing, and
103
+ `--ignore "!vendor"` read no `vendor`: a name without a slash was read as a
104
+ bare name, so `!docs` pruned a directory called `!docs`. The bare names are
105
+ now read in order, the last to name a directory deciding, and a `!` before
106
+ one gives back a directory an earlier bare name or the default list prunes,
107
+ at any depth and where a pattern starts inside it; the rest of the default
108
+ list is still pruned inside it. A `!` before a path is unchanged, and a `!`
109
+ alone or before another `!` is refused, where it pruned a directory of that
110
+ name. A directory whose name begins with `!` is named in braces,
111
+ `**/{!drafts}` (ADR-0022). No configuration in this repository, its
112
+ fixtures or the rest of the family writes such an ignore, and over them
113
+ every `check` format and every graph export is byte for byte what 0.9.9
114
+ wrote.
115
+ - **A refused `--ignore-ref` pattern is advised as it was typed.**
116
+ `--ignore-ref "../notes/**.md"` stopped the run with
117
+ `write "\.\./notes/**/*.md" for any depth, or "\.\./notes/*.md" for one level`:
118
+ the backslashes were the ones the filter adds to read a `.` or `..` as
119
+ text. It now says `write "../notes/**/*.md" for any depth, or
120
+ "../notes/*.md" for one level`, inside braces as outside. The exit `2`, the
121
+ pattern the message names, and what every pattern matches are as they were
122
+ (ADR-0022): over this repository, its fixtures and the rest of the family
123
+ every `check` format and every graph export is byte for byte what 0.9.9
124
+ wrote.
125
+ - **With `followSymlinks` on, a link back into a directory the walk is
126
+ inside is not followed.** A link to a directory above it, such as
127
+ `docs/sub/up` to `docs`, was walked round and round, reading the same
128
+ files under a longer path each time until the host refused the path: on
129
+ Windows, 64 copies of each file, and with two such links, minutes of
130
+ walking. Such a link is now passed over as silently as every link is when
131
+ links are not followed, so each file is read once, and a pattern that
132
+ starts beyond one finds nothing. A link to a sibling or to a directory
133
+ outside the tree is followed as before (ADR-0022). The command line never
134
+ follows a link, so it sees nothing change.
5
135
 
6
136
  ## 0.9.9
7
137