@xenos1996/usa 2.26.2 → 2.27.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/dist/engine/audit-config.d.ts +66 -0
- package/dist/engine/audit-config.d.ts.map +1 -0
- package/dist/engine/audit-config.js +148 -0
- package/dist/engine/audit-config.js.map +1 -0
- package/dist/engine/audit-types.d.ts +44 -0
- package/dist/engine/audit-types.d.ts.map +1 -0
- package/dist/engine/audit-types.js +2 -0
- package/dist/engine/audit-types.js.map +1 -0
- package/dist/engine/audit-warnings.d.ts +56 -0
- package/dist/engine/audit-warnings.d.ts.map +1 -0
- package/dist/engine/audit-warnings.js +116 -0
- package/dist/engine/audit-warnings.js.map +1 -0
- package/dist/engine/audit.d.ts +14 -38
- package/dist/engine/audit.d.ts.map +1 -1
- package/dist/engine/audit.js +9 -500
- package/dist/engine/audit.js.map +1 -1
- package/dist/engine/evaluate-packs.d.ts +37 -0
- package/dist/engine/evaluate-packs.d.ts.map +1 -0
- package/dist/engine/evaluate-packs.js +144 -0
- package/dist/engine/evaluate-packs.js.map +1 -0
- package/dist/engine/invariants.d.ts +8 -0
- package/dist/engine/invariants.d.ts.map +1 -1
- package/dist/engine/invariants.js +11 -0
- package/dist/engine/invariants.js.map +1 -1
- package/dist/engine/pack-selection.d.ts +21 -0
- package/dist/engine/pack-selection.d.ts.map +1 -0
- package/dist/engine/pack-selection.js +63 -0
- package/dist/engine/pack-selection.js.map +1 -0
- package/dist/engine/report-build.d.ts +22 -0
- package/dist/engine/report-build.d.ts.map +1 -0
- package/dist/engine/report-build.js +67 -0
- package/dist/engine/report-build.js.map +1 -0
- package/dist/foundation/interview.d.ts.map +1 -1
- package/dist/foundation/interview.js +16 -5
- package/dist/foundation/interview.js.map +1 -1
- package/package.json +9 -8
- package/rules/core/code-quality.yaml +12 -2
- package/rules/core/provenance-attestation.yaml +5 -0
- package/rules/core/testing-assurance.yaml +19 -4
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { applySuppressionToFinding, evaluateRule, ruleApplies, } from './evaluate.js';
|
|
2
|
+
import { evaluateInvariant, invariantLocations } from './invariants.js';
|
|
3
|
+
import { ruleAutomatability } from './automatability.js';
|
|
4
|
+
import { dampen } from './maturity.js';
|
|
5
|
+
import { docFindings, runDocAudit } from './docs-audit.js';
|
|
6
|
+
import { loadDocTaxonomy } from './docs-taxonomy.js';
|
|
7
|
+
/**
|
|
8
|
+
* Scoring a pack set into findings.
|
|
9
|
+
*
|
|
10
|
+
* Two passes: file rules first, then invariants over the conclusions those
|
|
11
|
+
* rules reached. Invariants cannot run in the first pass — they have nothing
|
|
12
|
+
* to read until every file rule has reported.
|
|
13
|
+
*/
|
|
14
|
+
export function evaluatePacks(activePacks, facts, depth, include, ctx, profile) {
|
|
15
|
+
const evaluated = [];
|
|
16
|
+
const invariants = [];
|
|
17
|
+
for (const pack of activePacks) {
|
|
18
|
+
for (const rule of pack.rules) {
|
|
19
|
+
if (!ruleApplies(rule, facts, depth, include.has(pack.id)))
|
|
20
|
+
continue;
|
|
21
|
+
// Invariants read conclusions, not files: second pass, after every
|
|
22
|
+
// file rule has reported. Collect now, evaluate below.
|
|
23
|
+
if (rule.check.kind === 'invariant') {
|
|
24
|
+
invariants.push(rule);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
evaluated.push(scoreFinding(rule, ctx, profile));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
for (const rule of invariants) {
|
|
31
|
+
evaluated.push(scoreInvariant(rule, ctx, profile, evaluated));
|
|
32
|
+
}
|
|
33
|
+
return evaluated;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Appends the documentation-universe findings to the evaluated set. The
|
|
37
|
+
* findings come from `docFindings` — the exact function the standalone
|
|
38
|
+
* `usa docs audit` report uses — with the main audit's maturity profile for
|
|
39
|
+
* dampening and the already-evaluated rule ids for alias suppression (an
|
|
40
|
+
* absence an existing rule already reports, e.g. DOC-006 vs the getting
|
|
41
|
+
* started artifact, is scored once, not twice).
|
|
42
|
+
*/
|
|
43
|
+
export function appendDocUniverseFindings(evaluated, ctx) {
|
|
44
|
+
const { taxonomy, warnings: taxWarnings } = loadDocTaxonomy(ctx.rulesDir);
|
|
45
|
+
ctx.warnings.push(...taxWarnings);
|
|
46
|
+
if (!taxonomy)
|
|
47
|
+
return; // already warned: universe unavailable, audit continues
|
|
48
|
+
const result = runDocAudit({
|
|
49
|
+
project: ctx.project,
|
|
50
|
+
facts: ctx.facts,
|
|
51
|
+
taxonomy,
|
|
52
|
+
maturity: ctx.maturity,
|
|
53
|
+
usaVersion: ctx.usaVersion,
|
|
54
|
+
target: ctx.target,
|
|
55
|
+
commit: ctx.git.commit,
|
|
56
|
+
gitTags: ctx.project.gitTags(),
|
|
57
|
+
});
|
|
58
|
+
const knownRules = new Set(evaluated.map((e) => e.finding.ruleId));
|
|
59
|
+
for (const f of docFindings(result, {
|
|
60
|
+
suppressAliasedRules: knownRules,
|
|
61
|
+
dampen: (base) => dampen(base, 'documentation', ctx.profile),
|
|
62
|
+
})) {
|
|
63
|
+
evaluated.push({ rule: syntheticDocRule(f), finding: f });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** DOCU findings have no YAML rule; the minimal Rule shape keeps scoring intact. */
|
|
67
|
+
export function syntheticDocRule(f) {
|
|
68
|
+
return {
|
|
69
|
+
id: f.ruleId,
|
|
70
|
+
title: f.title,
|
|
71
|
+
section: f.section,
|
|
72
|
+
sectionTitle: f.sectionTitle,
|
|
73
|
+
severity: f.baseSeverity,
|
|
74
|
+
ruleClass: f.ruleClass,
|
|
75
|
+
check: { kind: 'info' },
|
|
76
|
+
tags: f.tags,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export function scoreInvariant(rule, ctx, profile, evaluated) {
|
|
80
|
+
const check = rule.check;
|
|
81
|
+
if (check.kind !== 'invariant') {
|
|
82
|
+
throw new Error(`scoreInvariant called on non-invariant rule ${rule.id}`);
|
|
83
|
+
}
|
|
84
|
+
const byId = new Map(evaluated.map((e) => [e.finding.ruleId, e.finding.status]));
|
|
85
|
+
const findings = evaluated.map((e) => e.finding);
|
|
86
|
+
const outcome = evaluateInvariant(check.when, check.assert, byId);
|
|
87
|
+
const base = {
|
|
88
|
+
ruleId: rule.id,
|
|
89
|
+
title: rule.title,
|
|
90
|
+
section: rule.section,
|
|
91
|
+
sectionTitle: rule.sectionTitle ?? rule.section,
|
|
92
|
+
baseSeverity: rule.severity,
|
|
93
|
+
ruleClass: rule.ruleClass,
|
|
94
|
+
why: rule.why,
|
|
95
|
+
evidenceHint: rule.evidence,
|
|
96
|
+
remediation: rule.remediation,
|
|
97
|
+
references: rule.references,
|
|
98
|
+
automatability: ruleAutomatability(rule),
|
|
99
|
+
tags: rule.tags,
|
|
100
|
+
};
|
|
101
|
+
if (!outcome.applicable) {
|
|
102
|
+
return {
|
|
103
|
+
rule,
|
|
104
|
+
finding: {
|
|
105
|
+
...base,
|
|
106
|
+
status: 'NOT_APPLICABLE',
|
|
107
|
+
severity: rule.severity,
|
|
108
|
+
dampened: false,
|
|
109
|
+
message: `Invariant inapplicable — ${outcome.detail}.`,
|
|
110
|
+
locations: [],
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const finding = {
|
|
115
|
+
...base,
|
|
116
|
+
status: outcome.passed ? 'PASS' : 'FAIL',
|
|
117
|
+
severity: rule.severity,
|
|
118
|
+
dampened: false,
|
|
119
|
+
message: outcome.passed
|
|
120
|
+
? `Combination holds and ${check.assert.rule} agrees — ${outcome.detail}.`
|
|
121
|
+
: `Dangerous combination: ${outcome.detail}.`,
|
|
122
|
+
locations: outcome.passed ? [] : invariantLocations(check.when, findings),
|
|
123
|
+
};
|
|
124
|
+
if (!outcome.passed) {
|
|
125
|
+
applySuppressionToFinding(ctx.suppressions, rule.id, finding);
|
|
126
|
+
if (finding.status !== 'PASS') {
|
|
127
|
+
const { severity, dampened } = dampen(rule.severity, rule.ruleClass, profile);
|
|
128
|
+
finding.severity = severity;
|
|
129
|
+
finding.dampened = dampened;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return { rule, finding };
|
|
133
|
+
}
|
|
134
|
+
export function scoreFinding(rule, ctx, profile) {
|
|
135
|
+
const finding = evaluateRule(rule, ctx);
|
|
136
|
+
if (finding.status === 'PASS' || finding.status === 'NOT_APPLICABLE') {
|
|
137
|
+
return { rule, finding };
|
|
138
|
+
}
|
|
139
|
+
const { severity, dampened } = dampen(rule.severity, rule.ruleClass, profile);
|
|
140
|
+
finding.severity = severity;
|
|
141
|
+
finding.dampened = dampened;
|
|
142
|
+
return { rule, finding };
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=evaluate-packs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate-packs.js","sourceRoot":"","sources":["../../src/engine/evaluate-packs.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,14 @@ export interface InvariantOutcome {
|
|
|
24
24
|
* project access. Missing rule ids read as NOT_APPLICABLE (a rule that
|
|
25
25
|
* did not run cannot satisfy a precondition — fail closed toward silent,
|
|
26
26
|
* never toward firing on absent evidence).
|
|
27
|
+
*
|
|
28
|
+
* The same rule governs the assertion. An asserted rule that is
|
|
29
|
+
* NOT_APPLICABLE has no surface to judge: demanding PASS from it turns
|
|
30
|
+
* every project without that surface into a false positive (INV-SEC-003
|
|
31
|
+
* fired HIGH on this CLI because SEC-009 — output encoding for a web
|
|
32
|
+
* frontend — does not apply to a program that renders no HTML). An
|
|
33
|
+
* invariant is a claim about a *combination*; when one half of the
|
|
34
|
+
* combination does not exist, there is no claim to make.
|
|
27
35
|
*/
|
|
28
36
|
export declare function evaluateInvariant(when: InvariantCondition, assert: InvariantAssertion, byId: FindingStatusById): InvariantOutcome;
|
|
29
37
|
/** Evidence locations for a fired invariant: the matched findings' locations. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invariants.d.ts","sourceRoot":"","sources":["../../src/engine/invariants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAElB,kBAAkB,EAClB,MAAM,EACP,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAiBpD,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED
|
|
1
|
+
{"version":3,"file":"invariants.d.ts","sourceRoot":"","sources":["../../src/engine/invariants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAElB,kBAAkB,EAClB,MAAM,EACP,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAiBpD,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,iBAAiB,GACtB,gBAAgB,CAkBlB;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,WAAW,CAAC,CAStB"}
|
|
@@ -18,12 +18,23 @@ function assertHolds(assert, byId) {
|
|
|
18
18
|
* project access. Missing rule ids read as NOT_APPLICABLE (a rule that
|
|
19
19
|
* did not run cannot satisfy a precondition — fail closed toward silent,
|
|
20
20
|
* never toward firing on absent evidence).
|
|
21
|
+
*
|
|
22
|
+
* The same rule governs the assertion. An asserted rule that is
|
|
23
|
+
* NOT_APPLICABLE has no surface to judge: demanding PASS from it turns
|
|
24
|
+
* every project without that surface into a false positive (INV-SEC-003
|
|
25
|
+
* fired HIGH on this CLI because SEC-009 — output encoding for a web
|
|
26
|
+
* frontend — does not apply to a program that renders no HTML). An
|
|
27
|
+
* invariant is a claim about a *combination*; when one half of the
|
|
28
|
+
* combination does not exist, there is no claim to make.
|
|
21
29
|
*/
|
|
22
30
|
export function evaluateInvariant(when, assert, byId) {
|
|
23
31
|
if (!whenMatches(when, byId)) {
|
|
24
32
|
return { applicable: false, passed: true, detail: 'precondition not met' };
|
|
25
33
|
}
|
|
26
34
|
const actual = byId.get(assert.rule) ?? 'NOT_APPLICABLE';
|
|
35
|
+
if (actual === 'NOT_APPLICABLE') {
|
|
36
|
+
return { applicable: false, passed: true, detail: `${assert.rule} is not applicable` };
|
|
37
|
+
}
|
|
27
38
|
if (assertHolds(assert, byId)) {
|
|
28
39
|
return { applicable: true, passed: true, detail: `${assert.rule} is ${actual}` };
|
|
29
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invariants.js","sourceRoot":"","sources":["../../src/engine/invariants.ts"],"names":[],"mappings":"AAwBA,SAAS,WAAW,CAAC,MAAuB,EAAE,IAAuB;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,WAAW,CAAC,IAAwB,EAAE,IAAuB;IACpE,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACzF,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACxF,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACvF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,MAA0B,EAAE,IAAuB;IACtE,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,CAAC;AAC3E,CAAC;AASD
|
|
1
|
+
{"version":3,"file":"invariants.js","sourceRoot":"","sources":["../../src/engine/invariants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Facts, RulePack } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Pack selection: which rule packs apply to this project, resolved to a
|
|
4
|
+
* fixed point because a pack may assert facts that make another pack apply.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Merges an additional capability set into the loaded packs for a single run.
|
|
8
|
+
* A pack id already present in the base registry wins (the registry is the
|
|
9
|
+
* source of truth); duplicate ids from `extraPacks` are dropped silently so a
|
|
10
|
+
* released capability cannot shadow a shipped one.
|
|
11
|
+
*/
|
|
12
|
+
export declare function mergeExtraPacks(packs: RulePack[], extra: RulePack[] | undefined): void;
|
|
13
|
+
export interface PackSelection {
|
|
14
|
+
activePacks: RulePack[];
|
|
15
|
+
packsLoaded: string[];
|
|
16
|
+
packsSkipped: string[];
|
|
17
|
+
}
|
|
18
|
+
export declare function selectInitialPacks(packs: RulePack[], facts: Facts, include: Set<string>, exclude: Set<string>): PackSelection;
|
|
19
|
+
export declare function selectPack(pack: RulePack, facts: Facts, include: Set<string>, exclude: Set<string>, selection: PackSelection): boolean;
|
|
20
|
+
export declare function resolvePackFacts(packs: RulePack[], facts: Facts, include: Set<string>, exclude: Set<string>, selection: PackSelection): void;
|
|
21
|
+
//# sourceMappingURL=pack-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-selection.d.ts","sourceRoot":"","sources":["../../src/engine/pack-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGnD;;;GAGG;AACH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,GAAG,IAAI,CAStF;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,EAAE,EACjB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB,aAAa,CAIf;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,SAAS,EAAE,aAAa,GACvB,OAAO,CAiBT;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,EAAE,EACjB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,SAAS,EAAE,aAAa,GACvB,IAAI,CAaN"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { packApplies } from './evaluate.js';
|
|
2
|
+
/**
|
|
3
|
+
* Pack selection: which rule packs apply to this project, resolved to a
|
|
4
|
+
* fixed point because a pack may assert facts that make another pack apply.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Merges an additional capability set into the loaded packs for a single run.
|
|
8
|
+
* A pack id already present in the base registry wins (the registry is the
|
|
9
|
+
* source of truth); duplicate ids from `extraPacks` are dropped silently so a
|
|
10
|
+
* released capability cannot shadow a shipped one.
|
|
11
|
+
*/
|
|
12
|
+
export function mergeExtraPacks(packs, extra) {
|
|
13
|
+
if (!extra || extra.length === 0)
|
|
14
|
+
return;
|
|
15
|
+
const seen = new Set(packs.map((p) => p.id));
|
|
16
|
+
for (const p of extra) {
|
|
17
|
+
if (!seen.has(p.id)) {
|
|
18
|
+
seen.add(p.id);
|
|
19
|
+
packs.push(p);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function selectInitialPacks(packs, facts, include, exclude) {
|
|
24
|
+
const selection = { activePacks: [], packsLoaded: [], packsSkipped: [] };
|
|
25
|
+
selection.activePacks = packs.filter((p) => selectPack(p, facts, include, exclude, selection));
|
|
26
|
+
return selection;
|
|
27
|
+
}
|
|
28
|
+
export function selectPack(pack, facts, include, exclude, selection) {
|
|
29
|
+
if (exclude.has(pack.id)) {
|
|
30
|
+
selection.packsSkipped.push(pack.id);
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (include.has(pack.id)) {
|
|
34
|
+
selection.packsLoaded.push(pack.id);
|
|
35
|
+
pack.provides?.forEach((f) => facts.flags.add(f));
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
if (!packApplies(pack, facts)) {
|
|
39
|
+
selection.packsSkipped.push(pack.id);
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
selection.packsLoaded.push(pack.id);
|
|
43
|
+
pack.provides?.forEach((f) => facts.flags.add(f));
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
export function resolvePackFacts(packs, facts, include, exclude, selection) {
|
|
47
|
+
for (let pass = 0; pass < 3; pass++) {
|
|
48
|
+
let changed = false;
|
|
49
|
+
for (const p of packs) {
|
|
50
|
+
if (selection.packsLoaded.includes(p.id) || exclude.has(p.id) || include.has(p.id))
|
|
51
|
+
continue;
|
|
52
|
+
if (!packApplies(p, facts))
|
|
53
|
+
continue;
|
|
54
|
+
selection.packsLoaded.push(p.id);
|
|
55
|
+
p.provides?.forEach((f) => facts.flags.add(f));
|
|
56
|
+
selection.activePacks.push(p);
|
|
57
|
+
changed = true;
|
|
58
|
+
}
|
|
59
|
+
if (!changed)
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=pack-selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-selection.js","sourceRoot":"","sources":["../../src/engine/pack-selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AuditReport, Depth, Facts, Finding, Maturity } from '../types.js';
|
|
2
|
+
import type { Project } from '../util/project.js';
|
|
3
|
+
import type { detect } from '../detect/index.js';
|
|
4
|
+
import type { ScoredRule } from './score.js';
|
|
5
|
+
/**
|
|
6
|
+
* Assembling the machine-readable report from scored findings.
|
|
7
|
+
*
|
|
8
|
+
* Deterministic by construction: the only non-deterministic field is
|
|
9
|
+
* `generatedAt`, and findings are sorted by a total order (severity, section,
|
|
10
|
+
* rule id) so two runs over the same tree diff cleanly.
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildReport(opts: {
|
|
13
|
+
target: string;
|
|
14
|
+
depth: Depth;
|
|
15
|
+
profile: Maturity | 'auto';
|
|
16
|
+
rulesDir: string;
|
|
17
|
+
usaVersion: string;
|
|
18
|
+
}, git: ReturnType<Project['gitInfo']>, detection: ReturnType<typeof detect>, facts: Facts, maturity: Maturity, card: AuditReport['score'], evaluated: ScoredRule[], packsLoaded: string[], packsSkipped: string[]): AuditReport;
|
|
19
|
+
export declare function pick(facts: Facts, prefix: string): string[];
|
|
20
|
+
export declare const ORDER: Record<string, number>;
|
|
21
|
+
export declare function bySeverityThenSection(a: Finding, b: Finding): number;
|
|
22
|
+
//# sourceMappingURL=report-build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-build.d.ts","sourceRoot":"","sources":["../../src/engine/report-build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,EACD,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EACnC,SAAS,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,EACpC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAC1B,SAAS,EAAE,UAAU,EAAE,EACvB,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EAAE,GACrB,WAAW,CAsCb;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAM3D;AAED,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAA0D,CAAC;AAEpG,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAOpE"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { fingerprintRulesDir } from './ruleset.js';
|
|
3
|
+
/**
|
|
4
|
+
* Assembling the machine-readable report from scored findings.
|
|
5
|
+
*
|
|
6
|
+
* Deterministic by construction: the only non-deterministic field is
|
|
7
|
+
* `generatedAt`, and findings are sorted by a total order (severity, section,
|
|
8
|
+
* rule id) so two runs over the same tree diff cleanly.
|
|
9
|
+
*/
|
|
10
|
+
export function buildReport(opts, git, detection, facts, maturity, card, evaluated, packsLoaded, packsSkipped) {
|
|
11
|
+
return {
|
|
12
|
+
schema: 'usa-report-v1',
|
|
13
|
+
generatedAt: new Date().toISOString(),
|
|
14
|
+
usaVersion: opts.usaVersion,
|
|
15
|
+
ruleset: fingerprintRulesDir(opts.rulesDir),
|
|
16
|
+
target: {
|
|
17
|
+
path: path.resolve(opts.target),
|
|
18
|
+
name: path.basename(path.resolve(opts.target)) || opts.target,
|
|
19
|
+
commit: git.commit,
|
|
20
|
+
ref: git.ref,
|
|
21
|
+
repoUrl: git.repoUrl,
|
|
22
|
+
},
|
|
23
|
+
detection: {
|
|
24
|
+
maturity,
|
|
25
|
+
maturitySignals: detection.maturitySignals,
|
|
26
|
+
projectTypes: pick(facts, 'project'),
|
|
27
|
+
platforms: pick(facts, 'platform'),
|
|
28
|
+
languages: pick(facts, 'lang'),
|
|
29
|
+
frameworks: pick(facts, 'fw'),
|
|
30
|
+
packageManagers: pick(facts, 'pm'),
|
|
31
|
+
databases: pick(facts, 'db'),
|
|
32
|
+
flags: [...facts.flags].filter((f) => f.startsWith('has:')).sort(),
|
|
33
|
+
metrics: facts.metrics,
|
|
34
|
+
},
|
|
35
|
+
options: {
|
|
36
|
+
depth: opts.depth,
|
|
37
|
+
profile: opts.profile,
|
|
38
|
+
rulesDir: opts.rulesDir,
|
|
39
|
+
packsLoaded,
|
|
40
|
+
packsSkipped,
|
|
41
|
+
},
|
|
42
|
+
score: card,
|
|
43
|
+
findings: evaluated
|
|
44
|
+
.map((e) => e.finding)
|
|
45
|
+
.filter((f) => f.status !== 'NOT_APPLICABLE')
|
|
46
|
+
.sort(bySeverityThenSection),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function pick(facts, prefix) {
|
|
50
|
+
const out = [];
|
|
51
|
+
for (const f of facts.flags) {
|
|
52
|
+
if (f.startsWith(`${prefix}:`))
|
|
53
|
+
out.push(f.slice(prefix.length + 1));
|
|
54
|
+
}
|
|
55
|
+
return out.sort();
|
|
56
|
+
}
|
|
57
|
+
export const ORDER = { CRITICAL: 0, HIGH: 1, MEDIUM: 2, LOW: 3, FUTURE: 4 };
|
|
58
|
+
export function bySeverityThenSection(a, b) {
|
|
59
|
+
const sa = ORDER[a.severity] ?? 9;
|
|
60
|
+
const sb = ORDER[b.severity] ?? 9;
|
|
61
|
+
if (sa !== sb)
|
|
62
|
+
return sa - sb;
|
|
63
|
+
if (a.section !== b.section)
|
|
64
|
+
return a.section.localeCompare(b.section, undefined, { numeric: true });
|
|
65
|
+
return a.ruleId.localeCompare(b.ruleId);
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=report-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-build.js","sourceRoot":"","sources":["../../src/engine/report-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interview.d.ts","sourceRoot":"","sources":["../../src/foundation/interview.ts"],"names":[],"mappings":"AAgBA,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAMpB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9F,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,IAAI,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,MAAM,CAAC;CAC5C;AAOD,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAmH3D,CAAC;AAyBF;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAKtC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,gBAAgB,EACxB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,GACV,gBAAgB,CAKlB;
|
|
1
|
+
{"version":3,"file":"interview.d.ts","sourceRoot":"","sources":["../../src/foundation/interview.ts"],"names":[],"mappings":"AAgBA,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAMpB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9F,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,IAAI,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,MAAM,CAAC;CAC5C;AAOD,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAmH3D,CAAC;AAyBF;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAKtC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,gBAAgB,EACxB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,GACV,gBAAgB,CAKlB;AAwFD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,WAAW,SAAY,GACtB,gBAAgB,CAOlB;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,gBAAgB,GACvB,MAAM,CAQR;AAgBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAgDrE;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAEpE;AAsDD,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;AACtD,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,MAAM,GAAG,IAAI,EACzB,QAAQ,SAAuB,GAC9B,MAAM,GAAG,IAAI,CAcf;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,EAAE,SAAI,EACN,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAA2C,GACnE,KAAK,CASP;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAgDD,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CA6BrE;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAgBrE"}
|
|
@@ -237,15 +237,26 @@ const ANSWER_HANDLERS = {
|
|
|
237
237
|
* setter itself stays a dumb path walk with no per-field branches.
|
|
238
238
|
*/
|
|
239
239
|
const KNOWN_IDS = new Set(INTERVIEW_QUESTIONS.map((q) => q.id));
|
|
240
|
+
/**
|
|
241
|
+
* One view of a config node as a writable map. The cast follows a runtime
|
|
242
|
+
* object check, so it is a narrowing, not an escape: a non-object segment is
|
|
243
|
+
* a loud error naming the question instead of a TypeError on `undefined`.
|
|
244
|
+
*/
|
|
245
|
+
function objectView(node, id) {
|
|
246
|
+
if (typeof node !== 'object' || node === null) {
|
|
247
|
+
throw new Error(`interview question path is not an object: ${JSON.stringify(id)}`);
|
|
248
|
+
}
|
|
249
|
+
return node;
|
|
250
|
+
}
|
|
240
251
|
function setPath(config, id, value) {
|
|
241
252
|
if (!KNOWN_IDS.has(id))
|
|
242
253
|
throw new Error(`unknown interview question: ${JSON.stringify(id)}`);
|
|
243
254
|
const keys = id.split('.');
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
node[
|
|
255
|
+
const last = keys.pop();
|
|
256
|
+
let node = objectView(config, id);
|
|
257
|
+
for (const key of keys)
|
|
258
|
+
node = objectView(node[key], id);
|
|
259
|
+
node[last] = value;
|
|
249
260
|
}
|
|
250
261
|
/**
|
|
251
262
|
* Builds a FoundationConfig from a `{ [questionId]: rawAnswer }` map, in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interview.js","sourceRoot":"","sources":["../../src/foundation/interview.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interview.js","sourceRoot":"","sources":["../../src/foundation/interview.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xenos1996/usa",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.27.0",
|
|
4
4
|
"description": "Universal Software Auditor — an open-source, self-adapting audit framework for any project, any stack, any stage",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -71,17 +71,18 @@
|
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@changesets/changelog-github": "^1.0.1",
|
|
73
73
|
"@changesets/cli": "^3.0.3",
|
|
74
|
-
"@commitlint/cli": "^21.2.
|
|
75
|
-
"@commitlint/config-conventional": "^21.2.
|
|
74
|
+
"@commitlint/cli": "^21.2.3",
|
|
75
|
+
"@commitlint/config-conventional": "^21.2.3",
|
|
76
76
|
"@eslint/js": "^10.0.1",
|
|
77
|
-
"@types/node": "^26.
|
|
77
|
+
"@types/node": "^26.6.4",
|
|
78
78
|
"@vitest/coverage-v8": "^5.0.0",
|
|
79
|
-
"eslint": "^10.
|
|
79
|
+
"eslint": "^10.12.0",
|
|
80
80
|
"husky": "^9.1.7",
|
|
81
|
-
"lint-staged": "^17.
|
|
82
|
-
"prettier": "^3.
|
|
81
|
+
"lint-staged": "^17.6.0",
|
|
82
|
+
"prettier": "^3.9.9",
|
|
83
83
|
"typescript": "^5.7.3",
|
|
84
|
-
"typescript-eslint": "^8.
|
|
84
|
+
"typescript-eslint": "^8.71.0",
|
|
85
|
+
"vite": "^8.3.3",
|
|
85
86
|
"vitest": "^5.0.0"
|
|
86
87
|
},
|
|
87
88
|
"scripts": {
|
|
@@ -100,7 +100,12 @@ rules:
|
|
|
100
100
|
applies_when: { fact: 'lang:typescript' }
|
|
101
101
|
check:
|
|
102
102
|
kind: grep_absent
|
|
103
|
-
|
|
103
|
+
# `:\s*any\b` alone matched prose — "Degraded-never-empty: any fetch
|
|
104
|
+
# failure" in a doc comment — so the type-escape branch now requires a
|
|
105
|
+
# type position after the keyword (`: any,` `: any)` `: any[]` `: any =`).
|
|
106
|
+
# Masking comments instead is not an option here: `@ts-ignore` lives in a
|
|
107
|
+
# comment, and the rule exists to catch it.
|
|
108
|
+
pattern: '(@ts-ignore|@ts-expect-error|:\s*any\b(?=\s*[,;)\]}>=]|$)|\bas any\b|as unknown as)'
|
|
104
109
|
include: ['**/*.{ts,tsx}']
|
|
105
110
|
exclude: ['**/*.test.*', '**/*.spec.*', '**/*.d.ts']
|
|
106
111
|
why: 'Every `any` is a place the type system was told to stop helping. A few are fine; a pattern is a problem.'
|
|
@@ -204,7 +209,12 @@ rules:
|
|
|
204
209
|
kind: grep_wrong
|
|
205
210
|
pattern: '(TODO|FIXME|XXX|HACK|WORKAROUND)\b'
|
|
206
211
|
include: ['**/*.{ts,tsx,js,jsx,py,go,rs,java,kt,rb,php,cs,yml,yaml}']
|
|
207
|
-
|
|
212
|
+
# A fixture is a *sample of bad code*, not debt: CQ-010.yaml contains a
|
|
213
|
+
# TODO precisely so this rule has something to flag. Excluding them here
|
|
214
|
+
# (rather than from the audit index) keeps the fixtures visible to the
|
|
215
|
+
# rules that need to see them, e.g. TAS-011.
|
|
216
|
+
exclude:
|
|
217
|
+
['**/*.md', '**/docs/**', '**/node_modules/**', '**/fixtures/**', '**/__fixtures__/**']
|
|
208
218
|
why: 'A TODO with no owner and no ticket is a lie the codebase tells itself.'
|
|
209
219
|
remediation: 'Convert each one to a tracked issue with a link in the comment, or delete it if it no longer applies.'
|
|
210
220
|
|
|
@@ -58,6 +58,11 @@ rules:
|
|
|
58
58
|
# An empty signature file signs nothing — presence alone is not evidence.
|
|
59
59
|
non_empty: true
|
|
60
60
|
files:
|
|
61
|
+
# cosign's own default bundle name is `<artifact>.sigstore.json`
|
|
62
|
+
# (`cosign sign-blob --bundle x.sigstore.json`), which `*.sigstore`
|
|
63
|
+
# does not match — that gap made every cosign-signed repo fail this
|
|
64
|
+
# rule. `*.sigstore` stays for legacy bundles written with that suffix.
|
|
65
|
+
- '**/*.sigstore.json'
|
|
61
66
|
- '**/*.sigstore'
|
|
62
67
|
- '**/*.bundle'
|
|
63
68
|
- '**/*.sig'
|