@mitre/hdf-diff 3.2.0 → 3.3.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/index.d.ts +39 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +498 -44
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -81,12 +81,26 @@ type RequirementState = 'new' | 'absent' | 'unchanged' | 'updated' | 'fixed' | '
|
|
|
81
81
|
interface FieldChange {
|
|
82
82
|
/** The operation type: add, remove, or replace */
|
|
83
83
|
op: 'add' | 'remove' | 'replace';
|
|
84
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* Dot-notation path to the changed field. For CVE-ecosystem types the path
|
|
86
|
+
* uses bracket notation to identify matched entries by their natural key,
|
|
87
|
+
* e.g.:
|
|
88
|
+
* - `cvss[CVE-2024-1234].baseScore`
|
|
89
|
+
* - `cvss[CVE-2024-1234].baseVector.AV`
|
|
90
|
+
* - `affectedPackages[openssl@1.1.1].fixedInVersion`
|
|
91
|
+
* - `cwe`, `epss`, `epss.score`, `kev`, `kev.inKev`
|
|
92
|
+
*/
|
|
85
93
|
path: string;
|
|
86
94
|
/** Value in the old evaluation (undefined for 'add' operations) */
|
|
87
95
|
oldValue?: unknown;
|
|
88
96
|
/** Value in the new evaluation (undefined for 'remove' operations) */
|
|
89
97
|
newValue?: unknown;
|
|
98
|
+
/**
|
|
99
|
+
* Optional human-readable annotation for changes that need extra context
|
|
100
|
+
* beyond raw old/new values (e.g., "Newly added to CISA KEV catalog as
|
|
101
|
+
* of 2024-01-20"). Renderers should surface this prominently when present.
|
|
102
|
+
*/
|
|
103
|
+
message?: string;
|
|
90
104
|
}
|
|
91
105
|
/**
|
|
92
106
|
* The diff for a single requirement across two evaluations.
|
|
@@ -204,7 +218,7 @@ interface Annotation {
|
|
|
204
218
|
/**
|
|
205
219
|
* The top-level comparison result comparing two or more HDF evaluations.
|
|
206
220
|
*/
|
|
207
|
-
interface
|
|
221
|
+
interface HDFComparison {
|
|
208
222
|
/** Schema version for the comparison format */
|
|
209
223
|
formatVersion: '1.0.0';
|
|
210
224
|
/** The mode of comparison */
|
|
@@ -247,8 +261,10 @@ interface MatchingConfig {
|
|
|
247
261
|
type DiffStatus = RequirementState;
|
|
248
262
|
/** @deprecated Use ComparisonSummary instead */
|
|
249
263
|
type DiffSummary = ComparisonSummary;
|
|
250
|
-
/** @deprecated Use
|
|
251
|
-
type
|
|
264
|
+
/** @deprecated Use HDFComparison instead */
|
|
265
|
+
type HdfComparison = HDFComparison;
|
|
266
|
+
/** @deprecated Use HDFComparison instead */
|
|
267
|
+
type HdfDiff = HDFComparison;
|
|
252
268
|
//#endregion
|
|
253
269
|
//#region src/diff.d.ts
|
|
254
270
|
/**
|
|
@@ -279,7 +295,7 @@ interface DiffOptions {
|
|
|
279
295
|
* For fleet mode, `newResults` can be an array of documents, each compared
|
|
280
296
|
* pairwise against `oldResults` (the reference).
|
|
281
297
|
*/
|
|
282
|
-
declare function diffHdf(oldResults: Record<string, unknown>, newResults: Record<string, unknown> | Record<string, unknown>[], options?: DiffOptions):
|
|
298
|
+
declare function diffHdf(oldResults: Record<string, unknown>, newResults: Record<string, unknown> | Record<string, unknown>[], options?: DiffOptions): HDFComparison;
|
|
283
299
|
/**
|
|
284
300
|
* Compare two HDF baseline documents and produce a structured comparison
|
|
285
301
|
* showing requirement changes between baseline versions.
|
|
@@ -288,7 +304,7 @@ declare function diffHdf(oldResults: Record<string, unknown>, newResults: Record
|
|
|
288
304
|
* definitions — requirements without results. There is no status-based classification
|
|
289
305
|
* (fixed/regressed); only metadata changes (title, impact, descriptions, tags) are tracked.
|
|
290
306
|
*/
|
|
291
|
-
declare function diffBaselines(oldBaseline: Record<string, unknown>, newBaseline: Record<string, unknown>, options?: DiffOptions):
|
|
307
|
+
declare function diffBaselines(oldBaseline: Record<string, unknown>, newBaseline: Record<string, unknown>, options?: DiffOptions): HDFComparison;
|
|
292
308
|
/**
|
|
293
309
|
* Compare two HDF system documents and produce a structured comparison
|
|
294
310
|
* showing component-level changes between system versions.
|
|
@@ -297,7 +313,7 @@ declare function diffBaselines(oldBaseline: Record<string, unknown>, newBaseline
|
|
|
297
313
|
* to exact name matching. Top-level system fields, data flows, and embedded
|
|
298
314
|
* SBOMs are also compared.
|
|
299
315
|
*/
|
|
300
|
-
declare function diffSystems(oldSystem: Record<string, unknown>, newSystem: Record<string, unknown>, options?: DiffOptions):
|
|
316
|
+
declare function diffSystems(oldSystem: Record<string, unknown>, newSystem: Record<string, unknown>, options?: DiffOptions): HDFComparison;
|
|
301
317
|
//#endregion
|
|
302
318
|
//#region src/status.d.ts
|
|
303
319
|
/**
|
|
@@ -422,7 +438,11 @@ declare function createMappedIdStrategy(mapping: Record<string, string>): MatchS
|
|
|
422
438
|
* by multiple old or multiple new requirements) are skipped, and those
|
|
423
439
|
* requirements are left unmatched.
|
|
424
440
|
*
|
|
425
|
-
*
|
|
441
|
+
* As a fallback, also pairs unambiguous CWE matches (preferring the
|
|
442
|
+
* structured `req.cwe[]` field over the legacy `tags.cwe`). This catches
|
|
443
|
+
* CVE-ecosystem findings where CCI is absent but CWE is present.
|
|
444
|
+
*
|
|
445
|
+
* Confidence is 0.8 for CCI matches and 0.6 for CWE-fallback matches.
|
|
426
446
|
*/
|
|
427
447
|
declare function createCciMatchStrategy(): MatchStrategy;
|
|
428
448
|
//#endregion
|
|
@@ -613,7 +633,7 @@ interface RenderOptions {
|
|
|
613
633
|
//#endregion
|
|
614
634
|
//#region src/renderers/json.d.ts
|
|
615
635
|
/**
|
|
616
|
-
* Render an
|
|
636
|
+
* Render an HDFComparison as a JSON string.
|
|
617
637
|
*
|
|
618
638
|
* - `detail: 'summary'` -- only `{ formatVersion, comparisonMode, summary }`
|
|
619
639
|
* - `detail: 'control'` -- full document but `before`/`after` stripped from requirementDiffs
|
|
@@ -621,11 +641,11 @@ interface RenderOptions {
|
|
|
621
641
|
*
|
|
622
642
|
* Default detail level: `'control'`.
|
|
623
643
|
*/
|
|
624
|
-
declare function renderJson(comparison:
|
|
644
|
+
declare function renderJson(comparison: HDFComparison, options?: RenderOptions): string;
|
|
625
645
|
//#endregion
|
|
626
646
|
//#region src/renderers/markdown.d.ts
|
|
627
647
|
/**
|
|
628
|
-
* Render an
|
|
648
|
+
* Render an HDFComparison as a Markdown string.
|
|
629
649
|
*
|
|
630
650
|
* - `detail: 'summary'` -- summary table only
|
|
631
651
|
* - `detail: 'control'` -- summary + per-requirement tables by state
|
|
@@ -633,11 +653,11 @@ declare function renderJson(comparison: HdfComparison, options?: RenderOptions):
|
|
|
633
653
|
*
|
|
634
654
|
* Default detail level: `'control'`.
|
|
635
655
|
*/
|
|
636
|
-
declare function renderMarkdown(comparison:
|
|
656
|
+
declare function renderMarkdown(comparison: HDFComparison, options?: RenderOptions): string;
|
|
637
657
|
//#endregion
|
|
638
658
|
//#region src/renderers/terminal.d.ts
|
|
639
659
|
/**
|
|
640
|
-
* Render an
|
|
660
|
+
* Render an HDFComparison for terminal display with optional ANSI colors.
|
|
641
661
|
*
|
|
642
662
|
* - `detail: 'summary'` -- just the summary line
|
|
643
663
|
* - `detail: 'control'` -- requirement list + summary (excludes unchanged)
|
|
@@ -646,11 +666,11 @@ declare function renderMarkdown(comparison: HdfComparison, options?: RenderOptio
|
|
|
646
666
|
* When `color: false`, no ANSI escape codes are emitted.
|
|
647
667
|
* Default detail level: `'control'`. Default color: `true`.
|
|
648
668
|
*/
|
|
649
|
-
declare function renderTerminal(comparison:
|
|
669
|
+
declare function renderTerminal(comparison: HDFComparison, options?: RenderOptions): string;
|
|
650
670
|
//#endregion
|
|
651
671
|
//#region src/renderers/csv.d.ts
|
|
652
672
|
/**
|
|
653
|
-
* Render an
|
|
673
|
+
* Render an HDFComparison as a CSV string.
|
|
654
674
|
*
|
|
655
675
|
* One row per requirement. Columns:
|
|
656
676
|
* - ID, Title, State, Old Status, New Status, Impact (Old), Impact (New), Change Reasons
|
|
@@ -660,18 +680,18 @@ declare function renderTerminal(comparison: HdfComparison, options?: RenderOptio
|
|
|
660
680
|
* Header row is always included. Standard CSV escaping (RFC 4180).
|
|
661
681
|
* Default detail level: `'control'`.
|
|
662
682
|
*/
|
|
663
|
-
declare function renderCsv(comparison:
|
|
683
|
+
declare function renderCsv(comparison: HDFComparison, options?: RenderOptions): string;
|
|
664
684
|
//#endregion
|
|
665
685
|
//#region src/renderers/index.d.ts
|
|
666
686
|
/**
|
|
667
687
|
* Convenience function to render a comparison in any supported format.
|
|
668
688
|
*
|
|
669
|
-
* @param comparison - The
|
|
689
|
+
* @param comparison - The HDFComparison document to render
|
|
670
690
|
* @param format - Output format: 'json', 'markdown', 'terminal', or 'csv'
|
|
671
691
|
* @param options - Rendering options (detail level, filters, color)
|
|
672
692
|
* @returns The rendered string
|
|
673
693
|
*/
|
|
674
|
-
declare function render(comparison:
|
|
694
|
+
declare function render(comparison: HDFComparison, format: 'json' | 'markdown' | 'terminal' | 'csv', options?: RenderOptions): string;
|
|
675
695
|
//#endregion
|
|
676
|
-
export { type Annotation, type BaselineDiff, type ChangeReason, type ComparisonSummary, type ComponentDiff, type DetailLevel, type DiffOptions, type DiffStatus, type DiffSummary, EXIT_DETAILED_BASELINE_CHANGED, EXIT_DETAILED_DRIFT_ONLY, EXIT_DETAILED_ERROR, EXIT_DETAILED_FIXES_ONLY, EXIT_DETAILED_IDENTICAL, EXIT_DETAILED_MIXED, EXIT_DETAILED_REGRESSIONS_ONLY, EXIT_DIFFERENCES, EXIT_ERROR, EXIT_IDENTICAL, type FieldChange, type HdfComparison, type HdfDiff, type MatchOptions, type MatchPair, type MatchResult, type MatchStrategy, type MatchingConfig, type PackageDiff, type RenderOptions, type RequirementDiff, type RequirementState, type SbomDiffResult, type Source, type ValidationResult, classifyChangeReasons, classifyDiffStatus, computeDetailedExitCode, computeEffectiveStatus, computeExitCode, computeSummary, createCciMatchStrategy, createExactIdStrategy, createFuzzyTitleStrategy, createMappedIdStrategy, createSrgCciTiebreakStrategy, createSrgDeterministicStrategy, createVendorFuzzyTitleStrategy, diffBaselines, diffHdf, diffSboms, diffSystems, isV1Format, jaccardSimilarity, levenshteinDistance, matchRequirements, normalizeToV2, normalizedLevenshtein, render, renderCsv, renderJson, renderMarkdown, renderTerminal, tokenize, validateComparison };
|
|
696
|
+
export { type Annotation, type BaselineDiff, type ChangeReason, type ComparisonSummary, type ComponentDiff, type DetailLevel, type DiffOptions, type DiffStatus, type DiffSummary, EXIT_DETAILED_BASELINE_CHANGED, EXIT_DETAILED_DRIFT_ONLY, EXIT_DETAILED_ERROR, EXIT_DETAILED_FIXES_ONLY, EXIT_DETAILED_IDENTICAL, EXIT_DETAILED_MIXED, EXIT_DETAILED_REGRESSIONS_ONLY, EXIT_DIFFERENCES, EXIT_ERROR, EXIT_IDENTICAL, type FieldChange, type HDFComparison, type HdfComparison, type HdfDiff, type MatchOptions, type MatchPair, type MatchResult, type MatchStrategy, type MatchingConfig, type PackageDiff, type RenderOptions, type RequirementDiff, type RequirementState, type SbomDiffResult, type Source, type ValidationResult, classifyChangeReasons, classifyDiffStatus, computeDetailedExitCode, computeEffectiveStatus, computeExitCode, computeSummary, createCciMatchStrategy, createExactIdStrategy, createFuzzyTitleStrategy, createMappedIdStrategy, createSrgCciTiebreakStrategy, createSrgDeterministicStrategy, createVendorFuzzyTitleStrategy, diffBaselines, diffHdf, diffSboms, diffSystems, isV1Format, jaccardSimilarity, levenshteinDistance, matchRequirements, normalizeToV2, normalizedLevenshtein, render, renderCsv, renderJson, renderMarkdown, renderTerminal, tokenize, validateComparison };
|
|
677
697
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/sbom.ts","../src/types.ts","../src/diff.ts","../src/status.ts","../src/summary.ts","../src/normalize.ts","../src/matching/types.ts","../src/matching/exact-id.ts","../src/matching/mapped-id.ts","../src/matching/cci-match.ts","../src/matching/fuzzy-match.ts","../src/matching/srg-deterministic.ts","../src/matching/srg-cci-tiebreak.ts","../src/matching/vendor-fuzzy-title.ts","../src/matching/index.ts","../src/validate.ts","../src/exit-codes.ts","../src/renderers/types.ts","../src/renderers/json.ts","../src/renderers/markdown.ts","../src/renderers/terminal.ts","../src/renderers/csv.ts","../src/renderers/index.ts"],"mappings":";;AAcA;;;;;;;;;;;AAMU;UANO,WAAA;EACf,IAAA;EACA,IAAA;EACA,KAAA;EACA,UAAA;EACA,UAAA;EACA,QAAA;AAAA;;;;UAMe,cAAA;EACf,YAAA,EAAc,WAAW;EACzB,KAAA;EACA,OAAA;EACA,OAAA;EACA,SAAA;AAAA;;;AAsByE;;;;ACpC3E;;;iBDoCgB,SAAA,CAAU,OAAA,UAAiB,OAAA,WAAkB,cAAc;;;;AAvC3E;;;;;;;;;;;AAMU;AAMV;;;;KCTY,YAAA;;;;;;;ADcD;AAsBX;;;;;;;KCNY,gBAAA;ADM+D;;;AAAA,UCQ1D,WAAA;EA5CL;EA8CV,EAAA;;EAEA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/sbom.ts","../src/types.ts","../src/diff.ts","../src/status.ts","../src/summary.ts","../src/normalize.ts","../src/matching/types.ts","../src/matching/exact-id.ts","../src/matching/mapped-id.ts","../src/matching/cci-match.ts","../src/matching/fuzzy-match.ts","../src/matching/srg-deterministic.ts","../src/matching/srg-cci-tiebreak.ts","../src/matching/vendor-fuzzy-title.ts","../src/matching/index.ts","../src/validate.ts","../src/exit-codes.ts","../src/renderers/types.ts","../src/renderers/json.ts","../src/renderers/markdown.ts","../src/renderers/terminal.ts","../src/renderers/csv.ts","../src/renderers/index.ts"],"mappings":"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"}
|