@descent-vtt/spec-guard 0.16.0 → 0.18.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 +89 -4
- package/README.md +478 -512
- package/dist/cites.d.ts.map +1 -1
- package/dist/cites.js +5 -1
- package/dist/cites.js.map +1 -1
- package/dist/cli.d.ts +3 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -4
- package/dist/cli.js.map +1 -1
- package/dist/glob.d.ts +25 -18
- package/dist/glob.d.ts.map +1 -1
- package/dist/glob.js +127 -136
- package/dist/glob.js.map +1 -1
- package/dist/impact.d.ts.map +1 -1
- package/dist/impact.js +12 -2
- package/dist/impact.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +5 -3
- package/dist/mcp.js.map +1 -1
- package/dist/parser.d.ts +11 -9
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +128 -32
- package/dist/parser.js.map +1 -1
- package/dist/prove.d.ts.map +1 -1
- package/dist/prove.js +2 -1
- package/dist/prove.js.map +1 -1
- package/dist/reporter.d.ts +12 -4
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +199 -48
- package/dist/reporter.js.map +1 -1
- package/dist/runner.d.ts +12 -2
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +13 -4
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +24 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vendor/spec-core/markdown/frontmatter.d.ts +11 -1
- package/dist/vendor/spec-core/markdown/frontmatter.d.ts.map +1 -1
- package/dist/vendor/spec-core/markdown/frontmatter.js +20 -3
- package/dist/vendor/spec-core/markdown/frontmatter.js.map +1 -1
- package/dist/vendor/spec-core/pattern/glob.d.ts +85 -0
- package/dist/vendor/spec-core/pattern/glob.d.ts.map +1 -1
- package/dist/vendor/spec-core/pattern/glob.js +207 -17
- package/dist/vendor/spec-core/pattern/glob.js.map +1 -1
- package/dist/vendor/spec-core/pattern/index.d.ts +2 -2
- package/dist/vendor/spec-core/pattern/index.d.ts.map +1 -1
- package/dist/vendor/spec-core/pattern/index.js +1 -1
- package/dist/vendor/spec-core/pattern/index.js.map +1 -1
- package/dist/vendor/spec-core/text/index.d.ts +1 -0
- package/dist/vendor/spec-core/text/index.d.ts.map +1 -1
- package/dist/vendor/spec-core/text/index.js +1 -0
- package/dist/vendor/spec-core/text/index.js.map +1 -1
- package/dist/vendor/spec-core/text/width.d.ts +31 -0
- package/dist/vendor/spec-core/text/width.d.ts.map +1 -0
- package/dist/vendor/spec-core/text/width.js +113 -0
- package/dist/vendor/spec-core/text/width.js.map +1 -0
- package/package.json +1 -1
package/dist/prove.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prove.js","sourceRoot":"","sources":["../src/prove.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prove.js","sourceRoot":"","sources":["../src/prove.ts"],"names":[],"mappings":"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"}
|
package/dist/reporter.d.ts
CHANGED
|
@@ -168,16 +168,24 @@ export interface Annotation {
|
|
|
168
168
|
/** 1-based; a finding about a whole file is placed on its first line. */
|
|
169
169
|
line: number;
|
|
170
170
|
message: string;
|
|
171
|
+
/**
|
|
172
|
+
* What to do next, where the message does not already say it. The family
|
|
173
|
+
* contract gives every finding one (spec-core's ADR-0005), and both formats
|
|
174
|
+
* write it after the message: GitLab's description, GitHub's message.
|
|
175
|
+
*/
|
|
176
|
+
hint?: string;
|
|
171
177
|
}
|
|
172
178
|
/**
|
|
173
|
-
* A finding as GitLab Code Quality reads it
|
|
179
|
+
* A finding as GitLab Code Quality reads it: its description is the message
|
|
180
|
+
* and the hint, the next action.
|
|
174
181
|
*
|
|
175
182
|
* The fingerprint is what GitLab compares between a merge request and its
|
|
176
183
|
* target to tell a finding that is new from one that was already there. It is
|
|
177
184
|
* the SHA-256 of the annotation's identity - the rule, the document or file,
|
|
178
|
-
* the subject - and never of its message: a message holds the
|
|
179
|
-
* matches and the directive's line, so one more match, or a line
|
|
180
|
-
* the directive, made every open issue look fixed and a new one
|
|
185
|
+
* the subject - and never of its message or its hint: a message holds the
|
|
186
|
+
* count of matches and the directive's line, so one more match, or a line
|
|
187
|
+
* added above the directive, made every open issue look fixed and a new one
|
|
188
|
+
* appear. Two
|
|
181
189
|
* findings with one identity, one ghost cited on two lines, are told apart by
|
|
182
190
|
* the order they come in, each a finding of its own.
|
|
183
191
|
*/
|
package/dist/reporter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAEV,WAAW,EACX,SAAS,EAMT,WAAW,EAGZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,QAAA,MAAM,IAAI;aACR,KAAK;aACL,IAAI;aACJ,GAAG;aACH,GAAG;aACH,KAAK;aACL,MAAM;aACN,IAAI;aACJ,OAAO;aACP,IAAI;aACJ,IAAI;CACI,CAAC;AAEX,KAAK,KAAK,GAAG,MAAM,OAAO,IAAI,CAAC;AAE/B,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,MAAM,CAI1F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3B,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAKT;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,QAAQ,kBAAmB,GAAG,OAAO,CAGzG;
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
|
package/dist/reporter.js
CHANGED
|
@@ -52,6 +52,20 @@ function symbols(ascii) {
|
|
|
52
52
|
? { pass: '+', fail: 'x', warn: '!', skip: 'o', more: '...' }
|
|
53
53
|
: { pass: '✔', fail: '✖', warn: '⚠', skip: '○', more: '…' };
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* What a report says when no rule ran, written once so that the human report
|
|
57
|
+
* and every format that places findings say it in the same words.
|
|
58
|
+
*/
|
|
59
|
+
const NOTHING_VERIFIED = 'no assertion was executed, so nothing was verified';
|
|
60
|
+
const NOTHING_PROVED = 'no rule was proved, so nothing was shown';
|
|
61
|
+
const NOTHING_LOOKED_FOR = 'no citation was looked for, so nothing was checked';
|
|
62
|
+
const NOTHING_READ = 'no source file was read, so nothing was checked';
|
|
63
|
+
/**
|
|
64
|
+
* What `--strict` adds, where it fails a run or a proof that verified nothing
|
|
65
|
+
* over the specs it matched: the family contract's "nothing measured is not
|
|
66
|
+
* clean" (spec-core's ADR-0005, and ADR-0010 here).
|
|
67
|
+
*/
|
|
68
|
+
const STRICT_REFUSES = 'which --strict refuses';
|
|
55
69
|
function formatDuration(ms) {
|
|
56
70
|
return ms < 1000 ? `${Math.round(ms)}ms` : `${(ms / 1000).toFixed(2)}s`;
|
|
57
71
|
}
|
|
@@ -325,7 +339,12 @@ export function formatReport(report, options, maxSnippets = 5) {
|
|
|
325
339
|
// being enforced. A run that verified nothing has to say so instead.
|
|
326
340
|
lines.push(report.summary.total > 0
|
|
327
341
|
? paint(`${glyphs.pass} every spec assertion holds`, 'green')
|
|
328
|
-
: paint(`${glyphs.warn}
|
|
342
|
+
: paint(`${glyphs.warn} ${NOTHING_VERIFIED}`, 'yellow'));
|
|
343
|
+
}
|
|
344
|
+
else if (report.nothingVerified === true) {
|
|
345
|
+
// Under --strict the same sentence is why the run failed, and a failed
|
|
346
|
+
// run with no failure and no invalid directive in it says nothing else.
|
|
347
|
+
lines.push(paint(`${glyphs.fail} ${NOTHING_VERIFIED}, ${STRICT_REFUSES}`, 'red', 'bold'));
|
|
329
348
|
}
|
|
330
349
|
return lines.join('\n');
|
|
331
350
|
}
|
|
@@ -376,6 +395,9 @@ export function formatJson(report) {
|
|
|
376
395
|
return JSON.stringify({
|
|
377
396
|
formatVersion: RUN_FORMAT_VERSION,
|
|
378
397
|
ok: report.ok,
|
|
398
|
+
// Present only when it is why `ok` is false, as `config` is present
|
|
399
|
+
// only when something came from a configuration.
|
|
400
|
+
...(report.nothingVerified === true ? { nothingVerified: true } : {}),
|
|
379
401
|
root: report.root,
|
|
380
402
|
engine: report.engine,
|
|
381
403
|
durationMs: Math.round(report.durationMs * 1000) / 1000,
|
|
@@ -471,6 +493,7 @@ const SARIF_RULES = [
|
|
|
471
493
|
{ id: 'assert-layers', text: 'A file importing from a layer the architecture places above it.' },
|
|
472
494
|
{ id: 'assert-structure', text: 'A file or directory that breaks a naming or layout convention.' },
|
|
473
495
|
{ id: 'invalid-directive', text: 'A directive that could not be parsed, so nothing was checked.' },
|
|
496
|
+
{ id: 'nothing-verified', text: 'A run under --strict whose specs state no rule in force: it verified nothing.' },
|
|
474
497
|
];
|
|
475
498
|
/**
|
|
476
499
|
* SARIF's slot for "something happened during this run that is not a finding".
|
|
@@ -549,7 +572,8 @@ export function formatSarif(report, options = {}) {
|
|
|
549
572
|
partialFingerprints: { specGuardAssertion: fingerprint(assertionIdentity(result)) },
|
|
550
573
|
});
|
|
551
574
|
}
|
|
552
|
-
|
|
575
|
+
const invalid = invalidFingerprints(report.errors);
|
|
576
|
+
report.errors.forEach((error, index) => {
|
|
553
577
|
results.push({
|
|
554
578
|
ruleId: 'invalid-directive',
|
|
555
579
|
level: SARIF_LEVEL,
|
|
@@ -558,11 +582,10 @@ export function formatSarif(report, options = {}) {
|
|
|
558
582
|
sarifLocation(error.location.relativeFile, error.location.line, error.location.column),
|
|
559
583
|
],
|
|
560
584
|
relatedLocations: [],
|
|
561
|
-
partialFingerprints: {
|
|
562
|
-
specGuardAssertion: fingerprint([error.location.relativeFile, 'invalid', error.message]),
|
|
563
|
-
},
|
|
585
|
+
partialFingerprints: { specGuardAssertion: invalid[index] },
|
|
564
586
|
});
|
|
565
|
-
}
|
|
587
|
+
});
|
|
588
|
+
results.push(...nothingVerifiedResults(report, NOTHING_VERIFIED));
|
|
566
589
|
return JSON.stringify({
|
|
567
590
|
$schema: 'https://json.schemastore.org/sarif-2.1.0.json',
|
|
568
591
|
version: '2.1.0',
|
|
@@ -594,6 +617,31 @@ export function formatSarif(report, options = {}) {
|
|
|
594
617
|
],
|
|
595
618
|
}, null, 2);
|
|
596
619
|
}
|
|
620
|
+
/**
|
|
621
|
+
* The SARIF fingerprint of each directive that could not be read: of what GitLab's
|
|
622
|
+
* is made of - the rule, the file and the directive as written, with a count
|
|
623
|
+
* for a second copy of one - and so the first 32 characters of GitLab's. Never
|
|
624
|
+
* of the message, which a release may word differently: that closed each such
|
|
625
|
+
* alert and opened a new one.
|
|
626
|
+
*/
|
|
627
|
+
function invalidFingerprints(errors) {
|
|
628
|
+
return occurrences(errorAnnotations(errors)).map(fingerprint);
|
|
629
|
+
}
|
|
630
|
+
/**
|
|
631
|
+
* The result for a run or a proof that verified nothing under `--strict`, as
|
|
632
|
+
* its annotation places it, for a code-scanning page that would otherwise show
|
|
633
|
+
* a failed run with nothing on it.
|
|
634
|
+
*/
|
|
635
|
+
function nothingVerifiedResults(report, said) {
|
|
636
|
+
return nothingVerifiedAnnotations(report, said).map((annotation) => ({
|
|
637
|
+
ruleId: annotation.rule,
|
|
638
|
+
level: SARIF_LEVEL,
|
|
639
|
+
message: { text: described(annotation) },
|
|
640
|
+
locations: [sarifLocation(annotation.file, annotation.line, 1)],
|
|
641
|
+
relatedLocations: [],
|
|
642
|
+
partialFingerprints: { specGuardAssertion: fingerprint(annotation.identity) },
|
|
643
|
+
}));
|
|
644
|
+
}
|
|
597
645
|
/* -------------------------------------------------------------------- prove */
|
|
598
646
|
/** What each outcome is called where a person reads it. */
|
|
599
647
|
const PROVE_WORDS = {
|
|
@@ -671,8 +719,11 @@ export function formatProve(report, options) {
|
|
|
671
719
|
const them = summary.survived === 1 ? 'itself' : 'themselves';
|
|
672
720
|
lines.push(paint(`${glyphs.fail} ${countLabel(summary.survived, 'rule')} passed with a violation of ${them} in place`, 'red', 'bold'));
|
|
673
721
|
}
|
|
722
|
+
else if (report.nothingVerified === true) {
|
|
723
|
+
lines.push(paint(`${glyphs.fail} ${NOTHING_PROVED}, ${STRICT_REFUSES}`, 'red', 'bold'));
|
|
724
|
+
}
|
|
674
725
|
else if (summary.total === 0) {
|
|
675
|
-
lines.push(paint(`${glyphs.warn}
|
|
726
|
+
lines.push(paint(`${glyphs.warn} ${NOTHING_PROVED}`, 'yellow'));
|
|
676
727
|
}
|
|
677
728
|
else if (summary.killed === summary.total) {
|
|
678
729
|
lines.push(paint(`${glyphs.pass} every rule in force was seen to fail`, 'green'));
|
|
@@ -689,6 +740,7 @@ export function formatProveJson(report) {
|
|
|
689
740
|
return JSON.stringify({
|
|
690
741
|
formatVersion: PROVE_FORMAT_VERSION,
|
|
691
742
|
ok: report.ok,
|
|
743
|
+
...(report.nothingVerified === true ? { nothingVerified: true } : {}),
|
|
692
744
|
root: report.root,
|
|
693
745
|
durationMs: Math.round(report.durationMs * 1000) / 1000,
|
|
694
746
|
summary: report.summary,
|
|
@@ -720,6 +772,7 @@ const PROVE_RULES = [
|
|
|
720
772
|
{ id: 'rule-cannot-fail', text: 'A rule that passed with a violation of itself in place.' },
|
|
721
773
|
{ id: 'rule-unprovable', text: 'A rule no violation could be made for.' },
|
|
722
774
|
{ id: 'invalid-directive', text: 'A directive that could not be parsed, so nothing was checked.' },
|
|
775
|
+
{ id: 'nothing-verified', text: 'A proof under --strict whose specs state no rule in force: it showed nothing.' },
|
|
723
776
|
];
|
|
724
777
|
/**
|
|
725
778
|
* What `spec-guard prove` found, for code scanning.
|
|
@@ -751,15 +804,17 @@ export function formatProveSarif(report, options = {}) {
|
|
|
751
804
|
},
|
|
752
805
|
};
|
|
753
806
|
});
|
|
754
|
-
|
|
807
|
+
const invalid = invalidFingerprints(report.errors);
|
|
808
|
+
report.errors.forEach((error, index) => {
|
|
755
809
|
results.push({
|
|
756
810
|
ruleId: 'invalid-directive',
|
|
757
811
|
level: SARIF_LEVEL,
|
|
758
812
|
message: { text: error.message },
|
|
759
813
|
locations: [sarifLocation(error.location.relativeFile, error.location.line, error.location.column)],
|
|
760
|
-
partialFingerprints: { specGuardAssertion:
|
|
814
|
+
partialFingerprints: { specGuardAssertion: invalid[index] },
|
|
761
815
|
});
|
|
762
|
-
}
|
|
816
|
+
});
|
|
817
|
+
results.push(...nothingVerifiedResults(report, NOTHING_PROVED));
|
|
763
818
|
return JSON.stringify({
|
|
764
819
|
$schema: 'https://json.schemastore.org/sarif-2.1.0.json',
|
|
765
820
|
version: '2.1.0',
|
|
@@ -778,38 +833,50 @@ export function formatProveSarif(report, options = {}) {
|
|
|
778
833
|
],
|
|
779
834
|
}, null, 2);
|
|
780
835
|
}
|
|
836
|
+
/** A finding's message, and its hint after it when it has one. */
|
|
837
|
+
function described(annotation) {
|
|
838
|
+
return annotation.hint === undefined ? annotation.message : `${annotation.message}. ${annotation.hint}`;
|
|
839
|
+
}
|
|
781
840
|
/**
|
|
782
|
-
* A finding as GitLab Code Quality reads it
|
|
841
|
+
* A finding as GitLab Code Quality reads it: its description is the message
|
|
842
|
+
* and the hint, the next action.
|
|
783
843
|
*
|
|
784
844
|
* The fingerprint is what GitLab compares between a merge request and its
|
|
785
845
|
* target to tell a finding that is new from one that was already there. It is
|
|
786
846
|
* the SHA-256 of the annotation's identity - the rule, the document or file,
|
|
787
|
-
* the subject - and never of its message: a message holds the
|
|
788
|
-
* matches and the directive's line, so one more match, or a line
|
|
789
|
-
* the directive, made every open issue look fixed and a new one
|
|
847
|
+
* the subject - and never of its message or its hint: a message holds the
|
|
848
|
+
* count of matches and the directive's line, so one more match, or a line
|
|
849
|
+
* added above the directive, made every open issue look fixed and a new one
|
|
850
|
+
* appear. Two
|
|
790
851
|
* findings with one identity, one ghost cited on two lines, are told apart by
|
|
791
852
|
* the order they come in, each a finding of its own.
|
|
792
853
|
*/
|
|
793
854
|
export function formatGitlab(annotations) {
|
|
794
|
-
const
|
|
795
|
-
const issues =
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
description: annotation.message,
|
|
805
|
-
check_name: annotation.rule,
|
|
806
|
-
fingerprint,
|
|
807
|
-
severity: annotation.severity,
|
|
808
|
-
location: { path: annotation.file, lines: { begin: Math.max(annotation.line, 1) } },
|
|
809
|
-
});
|
|
810
|
-
}
|
|
855
|
+
const identities = occurrences(annotations);
|
|
856
|
+
const issues = annotations.map((annotation, index) => ({
|
|
857
|
+
description: described(annotation),
|
|
858
|
+
check_name: annotation.rule,
|
|
859
|
+
fingerprint: createHash('sha256')
|
|
860
|
+
.update(identities[index].join('\u0000'))
|
|
861
|
+
.digest('hex'),
|
|
862
|
+
severity: annotation.severity,
|
|
863
|
+
location: { path: annotation.file, lines: { begin: Math.max(annotation.line, 1) } },
|
|
864
|
+
}));
|
|
811
865
|
return JSON.stringify(issues, null, 2);
|
|
812
866
|
}
|
|
867
|
+
/**
|
|
868
|
+
* Each finding's identity, and for the second and later of those that share
|
|
869
|
+
* one, the count of those before it: what a fingerprint is made of.
|
|
870
|
+
*/
|
|
871
|
+
function occurrences(annotations) {
|
|
872
|
+
const seen = new Map();
|
|
873
|
+
return annotations.map(({ identity }) => {
|
|
874
|
+
const key = identity.join('\u0000');
|
|
875
|
+
const repeat = seen.get(key) ?? 0;
|
|
876
|
+
seen.set(key, repeat + 1);
|
|
877
|
+
return repeat === 0 ? identity : [...identity, String(repeat)];
|
|
878
|
+
});
|
|
879
|
+
}
|
|
813
880
|
/** A workflow command's message: `%`, and the line breaks that would end the command. */
|
|
814
881
|
function escapeData(text) {
|
|
815
882
|
return text.replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A');
|
|
@@ -825,7 +892,7 @@ function escapeProperty(text) {
|
|
|
825
892
|
*/
|
|
826
893
|
export function formatGithub(annotations) {
|
|
827
894
|
return annotations
|
|
828
|
-
.map((annotation) => `::${annotation.level} file=${escapeProperty(annotation.file)},line=${Math.max(annotation.line, 1)},title=${escapeProperty(annotation.rule)}::${escapeData(annotation
|
|
895
|
+
.map((annotation) => `::${annotation.level} file=${escapeProperty(annotation.file)},line=${Math.max(annotation.line, 1)},title=${escapeProperty(annotation.rule)}::${escapeData(described(annotation))}`)
|
|
829
896
|
.join('\n');
|
|
830
897
|
}
|
|
831
898
|
/** Where a document that is not in force is named, in a format with no room for a note beside the findings. */
|
|
@@ -837,9 +904,18 @@ function inactiveAnnotations(inactive, what, done) {
|
|
|
837
904
|
severity: 'info',
|
|
838
905
|
file: spec.file,
|
|
839
906
|
line: 1,
|
|
840
|
-
message: `${spec.file} is ${spec.label}, so ${spec.directives === 1 ? `its 1 ${what} was` : `its ${spec.directives} ${what}s were`} not ${done}
|
|
907
|
+
message: `${spec.file} is ${spec.label}, so ${spec.directives === 1 ? `its 1 ${what} was` : `its ${spec.directives} ${what}s were`} not ${done}`,
|
|
908
|
+
hint: `--ignore-status ${done === 'executed' ? 'executes' : 'proves'} the rules of a document not in force`,
|
|
841
909
|
}));
|
|
842
910
|
}
|
|
911
|
+
/**
|
|
912
|
+
* What to do about a warning, by its kind, where neither the warning's own
|
|
913
|
+
* `hint` nor its message says: a status that cannot be read carries its hint,
|
|
914
|
+
* and the one for front matter never closed ends with how to close it.
|
|
915
|
+
*/
|
|
916
|
+
const WARNING_HINTS = {
|
|
917
|
+
'unclosed-block': 'close it, and the directives after it run',
|
|
918
|
+
};
|
|
843
919
|
/** What changed how a document was read, on the line it happened: a warning, which fails nothing. */
|
|
844
920
|
function warningAnnotations(warnings) {
|
|
845
921
|
return (warnings ?? []).map((warning) => ({
|
|
@@ -850,18 +926,48 @@ function warningAnnotations(warnings) {
|
|
|
850
926
|
file: warning.location.relativeFile,
|
|
851
927
|
line: warning.location.line,
|
|
852
928
|
message: warning.message,
|
|
929
|
+
hint: warning.hint ?? WARNING_HINTS[warning.kind],
|
|
853
930
|
}));
|
|
854
931
|
}
|
|
855
|
-
/**
|
|
932
|
+
/**
|
|
933
|
+
* A run or a proof under `--strict` that verified nothing, which fails it: one
|
|
934
|
+
* finding, placed on the first spec's first line, since it is about the specs
|
|
935
|
+
* matched and no line of them. Its identity is its rule alone: there is one to
|
|
936
|
+
* a run, and the spec it is shown on is where it is shown, not what it is about.
|
|
937
|
+
*/
|
|
938
|
+
function nothingVerifiedAnnotations(report, said) {
|
|
939
|
+
if (report.nothingVerified !== true)
|
|
940
|
+
return [];
|
|
941
|
+
return [
|
|
942
|
+
{
|
|
943
|
+
rule: 'nothing-verified',
|
|
944
|
+
identity: ['nothing-verified'],
|
|
945
|
+
level: 'error',
|
|
946
|
+
severity: 'major',
|
|
947
|
+
file: report.specFiles[0],
|
|
948
|
+
line: 1,
|
|
949
|
+
message: `${said}, ${STRICT_REFUSES}`,
|
|
950
|
+
hint: 'put a rule in force, or point the spec patterns at the documents that state the rules; --ignore-status also runs those of documents not in force',
|
|
951
|
+
},
|
|
952
|
+
];
|
|
953
|
+
}
|
|
954
|
+
/**
|
|
955
|
+
* A directive that could not be read: nothing it states was checked. It is
|
|
956
|
+
* known by the directive as written, never by the message, which a release
|
|
957
|
+
* may word differently and which names attributes and values the directive
|
|
958
|
+
* already holds; a spec that could not be read has none written, and is one
|
|
959
|
+
* finding to its file.
|
|
960
|
+
*/
|
|
856
961
|
function errorAnnotations(errors) {
|
|
857
962
|
return errors.map((error) => ({
|
|
858
963
|
rule: 'invalid-directive',
|
|
859
|
-
identity: ['invalid-directive', error.location.relativeFile, error.
|
|
964
|
+
identity: ['invalid-directive', error.location.relativeFile, error.raw],
|
|
860
965
|
level: 'error',
|
|
861
966
|
severity: 'major',
|
|
862
967
|
file: error.location.relativeFile,
|
|
863
968
|
line: error.location.line,
|
|
864
969
|
message: error.message,
|
|
970
|
+
hint: 'fix the directive: nothing it states is checked until it can be read',
|
|
865
971
|
}));
|
|
866
972
|
}
|
|
867
973
|
/**
|
|
@@ -888,11 +994,13 @@ export function runAnnotations(report) {
|
|
|
888
994
|
file: match?.file ?? result.location.relativeFile,
|
|
889
995
|
line: match?.line ?? result.location.line,
|
|
890
996
|
message: `${result.description}: ${result.message} (${result.location.relativeFile}:${result.location.line})`,
|
|
997
|
+
hint: 'fix the code, or the rule if the decision it records has changed',
|
|
891
998
|
};
|
|
892
999
|
});
|
|
893
1000
|
return [
|
|
894
1001
|
...failed,
|
|
895
1002
|
...errorAnnotations(report.errors),
|
|
1003
|
+
...nothingVerifiedAnnotations(report, NOTHING_VERIFIED),
|
|
896
1004
|
...warningAnnotations(report.specWarnings),
|
|
897
1005
|
...inactiveAnnotations(report.inactiveSpecs, 'assertion', 'executed'),
|
|
898
1006
|
];
|
|
@@ -923,11 +1031,15 @@ export function proveAnnotations(report) {
|
|
|
923
1031
|
file: result.location.relativeFile,
|
|
924
1032
|
line: result.location.line,
|
|
925
1033
|
message: `${result.description}: ${detail}`,
|
|
1034
|
+
hint: survived
|
|
1035
|
+
? 'narrow the rule until a violation fails it: a target that reaches the code, a glob that names its files, a bound that can be crossed'
|
|
1036
|
+
: "check that the rule's target and glob reach the files it is about",
|
|
926
1037
|
};
|
|
927
1038
|
});
|
|
928
1039
|
return [
|
|
929
1040
|
...results,
|
|
930
1041
|
...errorAnnotations(report.errors),
|
|
1042
|
+
...nothingVerifiedAnnotations(report, NOTHING_PROVED),
|
|
931
1043
|
...warningAnnotations(report.specWarnings),
|
|
932
1044
|
...inactiveAnnotations(report.inactiveSpecs, 'rule', 'proved'),
|
|
933
1045
|
];
|
|
@@ -993,11 +1105,12 @@ export function formatCites(report, options) {
|
|
|
993
1105
|
if (summary.ghosts > 0) {
|
|
994
1106
|
lines.push(paint(`${glyphs.fail} ${names(summary.ghosts)} a document that does not exist`, 'red', 'bold'));
|
|
995
1107
|
}
|
|
996
|
-
else if (report.families.length === 0) {
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1108
|
+
else if (report.families.length === 0 || summary.files === 0) {
|
|
1109
|
+
const said = report.families.length === 0 ? NOTHING_LOOKED_FOR : NOTHING_READ;
|
|
1110
|
+
// Under --strict the same sentence is why the check failed.
|
|
1111
|
+
lines.push(report.nothingRead === undefined
|
|
1112
|
+
? paint(`${glyphs.warn} ${said}`, 'yellow')
|
|
1113
|
+
: paint(`${glyphs.fail} ${said}, ${STRICT_REFUSES}`, 'red', 'bold'));
|
|
1001
1114
|
}
|
|
1002
1115
|
else if (summary.stale > 0) {
|
|
1003
1116
|
lines.push(paint(`${report.ok ? glyphs.warn : glyphs.fail} ${names(summary.stale)} a document no longer in force`, 'yellow', 'bold'));
|
|
@@ -1017,6 +1130,7 @@ export function formatCitesJson(report) {
|
|
|
1017
1130
|
return JSON.stringify({
|
|
1018
1131
|
formatVersion: CITES_FORMAT_VERSION,
|
|
1019
1132
|
ok: report.ok,
|
|
1133
|
+
...(report.nothingRead === undefined ? {} : { nothingRead: true }),
|
|
1020
1134
|
root: report.root,
|
|
1021
1135
|
durationMs: Math.round(report.durationMs * 1000) / 1000,
|
|
1022
1136
|
families: report.families,
|
|
@@ -1032,6 +1146,7 @@ export function formatCitesJson(report) {
|
|
|
1032
1146
|
const CITE_SARIF_RULES = [
|
|
1033
1147
|
{ id: 'ghost-citation', text: 'A comment cites a document that does not exist.' },
|
|
1034
1148
|
{ id: 'stale-citation', text: 'A comment cites a document that is no longer in force.' },
|
|
1149
|
+
{ id: 'nothing-read', text: 'A check under --strict that read no source file for citations.' },
|
|
1035
1150
|
];
|
|
1036
1151
|
/**
|
|
1037
1152
|
* What `spec-guard cites` found, for code scanning: each finding on the line
|
|
@@ -1058,13 +1173,22 @@ export function formatCitesSarif(report, options = {}) {
|
|
|
1058
1173
|
rules: CITE_SARIF_RULES.map((rule) => ({ id: rule.id, name: rule.id, shortDescription: { text: rule.text } })),
|
|
1059
1174
|
},
|
|
1060
1175
|
},
|
|
1061
|
-
results:
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1176
|
+
results: [
|
|
1177
|
+
...report.findings.map((finding) => ({
|
|
1178
|
+
ruleId: finding.rule,
|
|
1179
|
+
level: finding.severity,
|
|
1180
|
+
message: { text: `${finding.message}\n${finding.hint}` },
|
|
1181
|
+
locations: [sarifLocation(finding.file, finding.line, finding.column)],
|
|
1182
|
+
partialFingerprints: { specGuardCitation: fingerprint([finding.file, finding.rule, finding.cited]) },
|
|
1183
|
+
})),
|
|
1184
|
+
...nothingReadAnnotations(report).map((annotation) => ({
|
|
1185
|
+
ruleId: annotation.rule,
|
|
1186
|
+
level: SARIF_LEVEL,
|
|
1187
|
+
message: { text: `${annotation.message}\n${annotation.hint}` },
|
|
1188
|
+
locations: [sarifLocation(annotation.file, annotation.line, 1)],
|
|
1189
|
+
partialFingerprints: { specGuardCitation: fingerprint(annotation.identity) },
|
|
1190
|
+
})),
|
|
1191
|
+
],
|
|
1068
1192
|
},
|
|
1069
1193
|
],
|
|
1070
1194
|
}, null, 2);
|
|
@@ -1085,7 +1209,8 @@ export function citesAnnotations(report) {
|
|
|
1085
1209
|
severity: finding.severity === 'error' ? 'critical' : 'minor',
|
|
1086
1210
|
file: finding.file,
|
|
1087
1211
|
line: finding.line,
|
|
1088
|
-
message:
|
|
1212
|
+
message: finding.message,
|
|
1213
|
+
hint: finding.hint,
|
|
1089
1214
|
})),
|
|
1090
1215
|
...report.gaps.map((gap) => ({
|
|
1091
1216
|
rule: 'unread-comments',
|
|
@@ -1096,6 +1221,32 @@ export function citesAnnotations(report) {
|
|
|
1096
1221
|
line: 1,
|
|
1097
1222
|
message: `${gap.file} ${gap.detail}, so a citation in it may have been missed`,
|
|
1098
1223
|
})),
|
|
1224
|
+
...nothingReadAnnotations(report),
|
|
1225
|
+
];
|
|
1226
|
+
}
|
|
1227
|
+
/**
|
|
1228
|
+
* A `cites` check under `--strict` that read no source file, which fails it:
|
|
1229
|
+
* one finding, as a run that verified nothing has - an error and `major`, on
|
|
1230
|
+
* the file `nothingRead` names, known by its rule alone - with what to do,
|
|
1231
|
+
* whether it looked for nothing or found nothing to read.
|
|
1232
|
+
*/
|
|
1233
|
+
function nothingReadAnnotations(report) {
|
|
1234
|
+
if (report.nothingRead === undefined)
|
|
1235
|
+
return [];
|
|
1236
|
+
const lookedFor = report.families.length > 0;
|
|
1237
|
+
return [
|
|
1238
|
+
{
|
|
1239
|
+
rule: 'nothing-read',
|
|
1240
|
+
identity: ['nothing-read'],
|
|
1241
|
+
level: 'error',
|
|
1242
|
+
severity: 'major',
|
|
1243
|
+
file: report.nothingRead.file,
|
|
1244
|
+
line: 1,
|
|
1245
|
+
message: `${lookedFor ? NOTHING_READ : NOTHING_LOOKED_FOR}, ${STRICT_REFUSES}`,
|
|
1246
|
+
hint: lookedFor
|
|
1247
|
+
? 'point the paths at source files whose comments spec-guard reads, or check what the exclusions leave out'
|
|
1248
|
+
: 'name the documents comments cite in "cites", or title numbered specs with an id such as ADR-0001',
|
|
1249
|
+
},
|
|
1099
1250
|
];
|
|
1100
1251
|
}
|
|
1101
1252
|
//# sourceMappingURL=reporter.js.map
|