@mitre/hdf-schema 3.1.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.
Files changed (38) hide show
  1. package/README.md +20 -14
  2. package/dist/go/go.mod +2 -2
  3. package/dist/go/hdf.go +570 -210
  4. package/dist/helpers.d.ts +5 -1
  5. package/dist/index.d.ts +27 -52
  6. package/dist/index.js +30 -48
  7. package/dist/schemas/hdf-amendments.schema.json +565 -45
  8. package/dist/schemas/hdf-baseline.schema.json +570 -50
  9. package/dist/schemas/hdf-comparison.schema.json +820 -103
  10. package/dist/schemas/hdf-evidence-package.schema.json +564 -44
  11. package/dist/schemas/hdf-plan.schema.json +571 -50
  12. package/dist/schemas/hdf-results.schema.json +777 -80
  13. package/dist/schemas/hdf-system.schema.json +596 -59
  14. package/dist/ts/hdf.d.ts +3562 -0
  15. package/dist/ts/hdf.js +564 -0
  16. package/dist/ts/hdf.ts +3623 -0
  17. package/package.json +18 -17
  18. package/dist/ts/hdf-amendments.d.ts +0 -474
  19. package/dist/ts/hdf-amendments.js +0 -88
  20. package/dist/ts/hdf-amendments.ts +0 -486
  21. package/dist/ts/hdf-baseline.d.ts +0 -472
  22. package/dist/ts/hdf-baseline.js +0 -58
  23. package/dist/ts/hdf-baseline.ts +0 -483
  24. package/dist/ts/hdf-comparison.d.ts +0 -1185
  25. package/dist/ts/hdf-comparison.js +0 -216
  26. package/dist/ts/hdf-comparison.ts +0 -1210
  27. package/dist/ts/hdf-evidence-package.d.ts +0 -348
  28. package/dist/ts/hdf-evidence-package.js +0 -39
  29. package/dist/ts/hdf-evidence-package.ts +0 -356
  30. package/dist/ts/hdf-plan.d.ts +0 -204
  31. package/dist/ts/hdf-plan.js +0 -23
  32. package/dist/ts/hdf-plan.ts +0 -205
  33. package/dist/ts/hdf-results.d.ts +0 -1511
  34. package/dist/ts/hdf-results.js +0 -194
  35. package/dist/ts/hdf-results.ts +0 -1536
  36. package/dist/ts/hdf-system.d.ts +0 -609
  37. package/dist/ts/hdf-system.js +0 -102
  38. package/dist/ts/hdf-system.ts +0 -617
package/dist/ts/hdf.js ADDED
@@ -0,0 +1,564 @@
1
+ /**
2
+ * The comparison operator used when evaluating this input against observed values.
3
+ *
4
+ * Comparison operator for evaluating the input value against observed values. Numeric:
5
+ * eq/ne/lt/le/gt/ge. String: eq/ne/contains/matches. Collection: in/notIn.
6
+ */
7
+ export var ComparisonOperator;
8
+ (function (ComparisonOperator) {
9
+ ComparisonOperator["Contains"] = "contains";
10
+ ComparisonOperator["Eq"] = "eq";
11
+ ComparisonOperator["Ge"] = "ge";
12
+ ComparisonOperator["Gt"] = "gt";
13
+ ComparisonOperator["In"] = "in";
14
+ ComparisonOperator["LE"] = "le";
15
+ ComparisonOperator["Lt"] = "lt";
16
+ ComparisonOperator["Matches"] = "matches";
17
+ ComparisonOperator["Ne"] = "ne";
18
+ ComparisonOperator["NotIn"] = "notIn";
19
+ })(ComparisonOperator || (ComparisonOperator = {}));
20
+ /**
21
+ * The data type of this input.
22
+ *
23
+ * The data type of the input value. Aligns with InSpec input types.
24
+ */
25
+ export var InputType;
26
+ (function (InputType) {
27
+ InputType["Array"] = "Array";
28
+ InputType["Boolean"] = "Boolean";
29
+ InputType["Hash"] = "Hash";
30
+ InputType["Numeric"] = "Numeric";
31
+ InputType["Regexp"] = "Regexp";
32
+ InputType["String"] = "String";
33
+ })(InputType || (InputType = {}));
34
+ /**
35
+ * The hash algorithm used for the checksum.
36
+ *
37
+ * Supported cryptographic hash algorithms for checksums and integrity verification.
38
+ */
39
+ export var HashAlgorithm;
40
+ (function (HashAlgorithm) {
41
+ HashAlgorithm["Sha256"] = "sha256";
42
+ HashAlgorithm["Sha384"] = "sha384";
43
+ HashAlgorithm["Sha512"] = "sha512";
44
+ })(HashAlgorithm || (HashAlgorithm = {}));
45
+ /**
46
+ * The packaging ecosystem the package belongs to. Use 'generic' for hardware, firmware, or
47
+ * anything outside the listed language/OS package managers.
48
+ */
49
+ export var Ecosystem;
50
+ (function (Ecosystem) {
51
+ Ecosystem["Cargo"] = "cargo";
52
+ Ecosystem["Deb"] = "deb";
53
+ Ecosystem["Gem"] = "gem";
54
+ Ecosystem["Generic"] = "generic";
55
+ Ecosystem["Go"] = "go";
56
+ Ecosystem["Maven"] = "maven";
57
+ Ecosystem["Npm"] = "npm";
58
+ Ecosystem["Nuget"] = "nuget";
59
+ Ecosystem["Pypi"] = "pypi";
60
+ Ecosystem["RPM"] = "rpm";
61
+ })(Ecosystem || (Ecosystem = {}));
62
+ /**
63
+ * Whether the requirement is mandatory within its baseline. Distinct from severity (risk
64
+ * weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
65
+ * FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
66
+ * memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
67
+ * Optional: when omitted, consumers should treat the requirement as 'required' by
68
+ * convention.
69
+ */
70
+ export var Applicability;
71
+ (function (Applicability) {
72
+ Applicability["Advisory"] = "advisory";
73
+ Applicability["Optional"] = "optional";
74
+ Applicability["Required"] = "required";
75
+ })(Applicability || (Applicability = {}));
76
+ /**
77
+ * Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
78
+ * categories. 'policy' = an authored governance statement; 'procedure' = a documented
79
+ * process; 'technical' = an enforced technical configuration; 'management' = a
80
+ * programmatic/management activity; 'operational' = a recurring operational activity (e.g.
81
+ * AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
82
+ * family/id but should not assume a default.
83
+ */
84
+ export var ControlType;
85
+ (function (ControlType) {
86
+ ControlType["Management"] = "management";
87
+ ControlType["Operational"] = "operational";
88
+ ControlType["Policy"] = "policy";
89
+ ControlType["Procedure"] = "procedure";
90
+ ControlType["Technical"] = "technical";
91
+ })(ControlType || (ControlType = {}));
92
+ /**
93
+ * Qualitative severity band corresponding to baseScore. CVSS 2.0 does not natively use
94
+ * 'none' or 'critical' bands; map accordingly when populating.
95
+ *
96
+ * Qualitative CVSS severity band. Aligns with FIRST/NVD bands: none=0.0, low=0.1-3.9,
97
+ * medium=4.0-6.9, high=7.0-8.9, critical=9.0-10.0. Distinct from the broader Severity enum
98
+ * used on Requirement_Core (which includes 'informational').
99
+ *
100
+ * Qualitative severity band corresponding to computedScore. Same band convention as
101
+ * baseSeverity.
102
+ */
103
+ export var CVSSSeverity;
104
+ (function (CVSSSeverity) {
105
+ CVSSSeverity["Critical"] = "critical";
106
+ CVSSSeverity["High"] = "high";
107
+ CVSSSeverity["Low"] = "low";
108
+ CVSSSeverity["Medium"] = "medium";
109
+ CVSSSeverity["None"] = "none";
110
+ })(CVSSSeverity || (CVSSSeverity = {}));
111
+ /**
112
+ * The CVSS specification version this entry conforms to. Vendor scanners typically emit 3.1
113
+ * or 4.0; legacy data may use 2.0 or 3.0.
114
+ */
115
+ export var Version;
116
+ (function (Version) {
117
+ Version["The20"] = "2.0";
118
+ Version["The30"] = "3.0";
119
+ Version["The31"] = "3.1";
120
+ Version["The40"] = "4.0";
121
+ })(Version || (Version = {}));
122
+ /**
123
+ * The type of the most recent non-expired override or POAM governing this requirement.
124
+ * Indicates why the requirement is in its current state (e.g., waiver, falsePositive,
125
+ * riskAdjustment) or what remediation is being tracked (poam). Absent when no overrides or
126
+ * POAMs apply.
127
+ *
128
+ * The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk
129
+ * accepted by Authorizing Official. 'attestation': manually verified by assessor. 'poam':
130
+ * remediation tracked (no status change). 'inherited': control provided by another
131
+ * component or system. 'falsePositive': scanner incorrectly identified a finding — for
132
+ * compliance scans (STIG, CIS), the check actually passes, so status is typically set to
133
+ * 'passed'; for vulnerability scans (CVE, SCA), the flagged vulnerability does not apply to
134
+ * this system, so status is typically set to 'notApplicable'. The disposition field on the
135
+ * requirement distinguishes false positives from genuinely not-applicable findings.
136
+ * 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
137
+ * Adjustment); does not change pass/fail status, only impact via the impact field.
138
+ * 'operationalRequirement': deviation required by operational constraints (FedRAMP
139
+ * Operational Requirement); the finding cannot be remediated because the system requires
140
+ * the affected functionality. Remains an open risk. Migration note: 'exception' was removed
141
+ * in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
142
+ *
143
+ * The type of override applied to this requirement.
144
+ *
145
+ * The type of amendment.
146
+ */
147
+ export var OverrideType;
148
+ (function (OverrideType) {
149
+ OverrideType["Attestation"] = "attestation";
150
+ OverrideType["FalsePositive"] = "falsePositive";
151
+ OverrideType["Inherited"] = "inherited";
152
+ OverrideType["OperationalRequirement"] = "operationalRequirement";
153
+ OverrideType["Poam"] = "poam";
154
+ OverrideType["RiskAdjustment"] = "riskAdjustment";
155
+ OverrideType["Waiver"] = "waiver";
156
+ })(OverrideType || (OverrideType = {}));
157
+ /**
158
+ * The current effective compliance status of this requirement after applying the most
159
+ * recent non-expired override with a status field, or computed from results (worst-wins) if
160
+ * no status-bearing overrides exist.
161
+ *
162
+ * The status of an individual test result. 'notApplicable' indicates the requirement does
163
+ * not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
164
+ * requires manual verification).
165
+ *
166
+ * The status of this test within the requirement. Example: 'failed'.
167
+ *
168
+ * The new status this override sets for the requirement. Optional when only impact is being
169
+ * overridden.
170
+ *
171
+ * The new status this amendment sets. Optional when only impact is being overridden.
172
+ */
173
+ export var ResultStatus;
174
+ (function (ResultStatus) {
175
+ ResultStatus["Error"] = "error";
176
+ ResultStatus["Failed"] = "failed";
177
+ ResultStatus["NotApplicable"] = "notApplicable";
178
+ ResultStatus["NotReviewed"] = "notReviewed";
179
+ ResultStatus["Passed"] = "passed";
180
+ })(ResultStatus || (ResultStatus = {}));
181
+ /**
182
+ * The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
183
+ * 'system' for automated systems, 'simple' for basic string identifiers without additional
184
+ * classification, or 'other' for custom identity systems.
185
+ */
186
+ export var IdentityType;
187
+ (function (IdentityType) {
188
+ IdentityType["Email"] = "email";
189
+ IdentityType["Other"] = "other";
190
+ IdentityType["Simple"] = "simple";
191
+ IdentityType["System"] = "system";
192
+ IdentityType["Username"] = "username";
193
+ })(IdentityType || (IdentityType = {}));
194
+ /**
195
+ * The type of evidence being provided.
196
+ */
197
+ export var EvidenceType;
198
+ (function (EvidenceType) {
199
+ EvidenceType["Code"] = "code";
200
+ EvidenceType["File"] = "file";
201
+ EvidenceType["Log"] = "log";
202
+ EvidenceType["Other"] = "other";
203
+ EvidenceType["Screenshot"] = "screenshot";
204
+ EvidenceType["URL"] = "url";
205
+ })(EvidenceType || (EvidenceType = {}));
206
+ /**
207
+ * Current status of this milestone.
208
+ */
209
+ export var MilestoneStatus;
210
+ (function (MilestoneStatus) {
211
+ MilestoneStatus["Completed"] = "completed";
212
+ MilestoneStatus["InProgress"] = "inProgress";
213
+ MilestoneStatus["Pending"] = "pending";
214
+ })(MilestoneStatus || (MilestoneStatus = {}));
215
+ /**
216
+ * The type of POA&M. 'remediation' fixes root cause. 'mitigation' reduces risk via
217
+ * compensating controls. 'riskAcceptance' documents decision to accept risk.
218
+ * 'vendorDependency' tracks a fix that depends on a vendor releasing a patch or update.
219
+ */
220
+ export var POAMType;
221
+ (function (POAMType) {
222
+ POAMType["Mitigation"] = "mitigation";
223
+ POAMType["Remediation"] = "remediation";
224
+ POAMType["RiskAcceptance"] = "riskAcceptance";
225
+ POAMType["VendorDependency"] = "vendorDependency";
226
+ })(POAMType || (POAMType = {}));
227
+ /**
228
+ * Explicit severity rating. Typically derived from impact score but provided explicitly for
229
+ * clarity.
230
+ *
231
+ * Severity rating for a requirement. Typically derived from the numeric impact score.
232
+ */
233
+ export var Severity;
234
+ (function (Severity) {
235
+ Severity["Critical"] = "critical";
236
+ Severity["High"] = "high";
237
+ Severity["Informational"] = "informational";
238
+ Severity["Low"] = "low";
239
+ Severity["Medium"] = "medium";
240
+ })(Severity || (Severity = {}));
241
+ /**
242
+ * Structured controlled-vocabulary classification for why this override applies.
243
+ * Complements (does not replace) the free-text 'reason' field. Most useful on falsePositive
244
+ * and attestation overrides where the structured category enables filtering and lossless
245
+ * round-trip with VEX / OSCAL / FedRAMP DR. See the Justification primitive for the
246
+ * precedent vocabulary and rationale.
247
+ *
248
+ * Structured controlled-vocabulary reason for an override, complementing the free-text
249
+ * 'reason' field. 'reason' carries the human-readable rationale an auditor reads;
250
+ * 'justification' carries the machine-readable category enabling filtering, aggregation,
251
+ * and lossless round-trip with structured ecosystems (VEX, OSCAL, FedRAMP DR). Both fields
252
+ * may be present simultaneously and are NOT redundant: 'reason' explains the specific
253
+ * circumstance; 'justification' classifies it. Authors SHOULD populate both when a
254
+ * controlled-vocabulary value applies — the enum value alone is not self-explanatory to an
255
+ * auditor. The vocabulary is drawn from the VEX ecosystem: the first five values are common
256
+ * across OpenVEX, CSAF VEX, and CycloneDX VEX; the remaining six (requires_configuration /
257
+ * requires_dependency / requires_environment / protected_by_compiler / protected_at_runtime
258
+ * / protected_at_perimeter) are CycloneDX-specific and describe why the vulnerable code
259
+ * path is unreachable in the deployed configuration. The enum is extended additively across
260
+ * schema versions as other ecosystems' controlled vocabularies are integrated; documents
261
+ * using values added in a newer schema version will fail validation against an older
262
+ * schema. Consumers SHOULD validate against the schema version declared by the document
263
+ * ($schema) rather than assume a fixed vocabulary.
264
+ */
265
+ export var Justification;
266
+ (function (Justification) {
267
+ Justification["ComponentNotPresent"] = "component_not_present";
268
+ Justification["InlineMitigationsAlreadyExist"] = "inline_mitigations_already_exist";
269
+ Justification["ProtectedAtPerimeter"] = "protected_at_perimeter";
270
+ Justification["ProtectedAtRuntime"] = "protected_at_runtime";
271
+ Justification["ProtectedByCompiler"] = "protected_by_compiler";
272
+ Justification["RequiresConfiguration"] = "requires_configuration";
273
+ Justification["RequiresDependency"] = "requires_dependency";
274
+ Justification["RequiresEnvironment"] = "requires_environment";
275
+ Justification["VulnerableCodeCannotBeControlledByAdversary"] = "vulnerable_code_cannot_be_controlled_by_adversary";
276
+ Justification["VulnerableCodeNotInExecutePath"] = "vulnerable_code_not_in_execute_path";
277
+ Justification["VulnerableCodeNotPresent"] = "vulnerable_code_not_present";
278
+ })(Justification || (Justification = {}));
279
+ /**
280
+ * How this requirement is intended to be verified. Disambiguates the two cases that null
281
+ * 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
282
+ * to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
283
+ * exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
284
+ * runs without operator action; 'hybrid' = part automated, part manual. Optional: when
285
+ * omitted, consumers should not infer a default.
286
+ *
287
+ * How a requirement is intended to be verified. Disambiguates the two cases that null
288
+ * 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
289
+ * to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
290
+ * exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
291
+ * runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
292
+ * disambiguate from the unrelated Verification_Method DID-context struct.
293
+ */
294
+ export var VerificationMethodEnum;
295
+ (function (VerificationMethodEnum) {
296
+ VerificationMethodEnum["Automated"] = "automated";
297
+ VerificationMethodEnum["Hybrid"] = "hybrid";
298
+ VerificationMethodEnum["ManualByDesign"] = "manual-by-design";
299
+ VerificationMethodEnum["ManualPendingAutomation"] = "manual-pending-automation";
300
+ })(VerificationMethodEnum || (VerificationMethodEnum = {}));
301
+ export var CloudProvider;
302
+ (function (CloudProvider) {
303
+ CloudProvider["Aws"] = "aws";
304
+ CloudProvider["Azure"] = "azure";
305
+ CloudProvider["Gcp"] = "gcp";
306
+ CloudProvider["Oci"] = "oci";
307
+ CloudProvider["Other"] = "other";
308
+ })(CloudProvider || (CloudProvider = {}));
309
+ /**
310
+ * Format of the SBOM (embedded or referenced). Required when sbom or sbomRef is present.
311
+ */
312
+ export var SBOMFormat;
313
+ (function (SBOMFormat) {
314
+ SBOMFormat["Cyclonedx"] = "cyclonedx";
315
+ SBOMFormat["Spdx"] = "spdx";
316
+ })(SBOMFormat || (SBOMFormat = {}));
317
+ /**
318
+ * Component type discriminator. Same values as Target types.
319
+ */
320
+ export var TargetType;
321
+ (function (TargetType) {
322
+ TargetType["Application"] = "application";
323
+ TargetType["Artifact"] = "artifact";
324
+ TargetType["CloudAccount"] = "cloudAccount";
325
+ TargetType["CloudResource"] = "cloudResource";
326
+ TargetType["ContainerImage"] = "containerImage";
327
+ TargetType["ContainerInstance"] = "containerInstance";
328
+ TargetType["ContainerPlatform"] = "containerPlatform";
329
+ TargetType["Database"] = "database";
330
+ TargetType["Host"] = "host";
331
+ TargetType["Network"] = "network";
332
+ TargetType["Repository"] = "repository";
333
+ })(TargetType || (TargetType = {}));
334
+ /**
335
+ * The category of this annotation.
336
+ *
337
+ * The category of an annotation attached to a comparison.
338
+ */
339
+ export var AnnotationCategory;
340
+ (function (AnnotationCategory) {
341
+ AnnotationCategory["BaselineChange"] = "baselineChange";
342
+ AnnotationCategory["Drift"] = "drift";
343
+ AnnotationCategory["Remediation"] = "remediation";
344
+ AnnotationCategory["ScannerNote"] = "scannerNote";
345
+ AnnotationCategory["Waiver"] = "waiver";
346
+ })(AnnotationCategory || (AnnotationCategory = {}));
347
+ /**
348
+ * The state of this baseline in the comparison.
349
+ *
350
+ * The state of this component in the comparison.
351
+ */
352
+ export var BaselineDiffState;
353
+ (function (BaselineDiffState) {
354
+ BaselineDiffState["Absent"] = "absent";
355
+ BaselineDiffState["New"] = "new";
356
+ BaselineDiffState["Unchanged"] = "unchanged";
357
+ BaselineDiffState["Updated"] = "updated";
358
+ })(BaselineDiffState || (BaselineDiffState = {}));
359
+ /**
360
+ * The mode of comparison being performed.
361
+ *
362
+ * The mode of comparison. 'temporal' compares the same target over time. 'baseline'
363
+ * compares against a golden reference. 'fleet' compares across multiple systems.
364
+ * 'multiSource' compares outputs from different scanners. 'baselineEvolution' compares two
365
+ * baseline documents to detect requirement changes between versions. 'systemDrift' compares
366
+ * two system documents to detect component-level changes.
367
+ */
368
+ export var ComparisonMode;
369
+ (function (ComparisonMode) {
370
+ ComparisonMode["Baseline"] = "baseline";
371
+ ComparisonMode["BaselineEvolution"] = "baselineEvolution";
372
+ ComparisonMode["Fleet"] = "fleet";
373
+ ComparisonMode["MultiSource"] = "multiSource";
374
+ ComparisonMode["SystemDrift"] = "systemDrift";
375
+ ComparisonMode["Temporal"] = "temporal";
376
+ })(ComparisonMode || (ComparisonMode = {}));
377
+ /**
378
+ * The type of change operation.
379
+ */
380
+ export var Op;
381
+ (function (Op) {
382
+ Op["Add"] = "add";
383
+ Op["Remove"] = "remove";
384
+ Op["Replace"] = "replace";
385
+ })(Op || (Op = {}));
386
+ /**
387
+ * The reason a requirement's state changed between sources.
388
+ */
389
+ export var ChangeReason;
390
+ (function (ChangeReason) {
391
+ ChangeReason["BaselineUpgraded"] = "baselineUpgraded";
392
+ ChangeReason["ConfigChanged"] = "configChanged";
393
+ ChangeReason["ControlMapped"] = "controlMapped";
394
+ ChangeReason["ImpactChanged"] = "impactChanged";
395
+ ChangeReason["MetadataChanged"] = "metadataChanged";
396
+ ChangeReason["OverrideAdded"] = "overrideAdded";
397
+ ChangeReason["OverrideExpired"] = "overrideExpired";
398
+ ChangeReason["OverrideModified"] = "overrideModified";
399
+ ChangeReason["OverrideRemoved"] = "overrideRemoved";
400
+ ChangeReason["ResultChanged"] = "resultChanged";
401
+ ChangeReason["ScannerChanged"] = "scannerChanged";
402
+ ChangeReason["TargetChanged"] = "targetChanged";
403
+ })(ChangeReason || (ChangeReason = {}));
404
+ /**
405
+ * How the conflict was resolved.
406
+ *
407
+ * How a conflict between multiple scanner results was resolved.
408
+ */
409
+ export var ConflictResolution;
410
+ (function (ConflictResolution) {
411
+ ConflictResolution["Manual"] = "manual";
412
+ ConflictResolution["MostRecent"] = "mostRecent";
413
+ ConflictResolution["MostSevere"] = "mostSevere";
414
+ ConflictResolution["Unresolved"] = "unresolved";
415
+ })(ConflictResolution || (ConflictResolution = {}));
416
+ /**
417
+ * The strategy that was used to match this requirement across sources.
418
+ *
419
+ * The strategy used to match requirements across sources. 'exactId' matches by identical
420
+ * IDs. 'mappedId' uses an ID mapping table. 'cciMatch'/'nistMatch' match by framework
421
+ * identifiers. 'fuzzyTitle'/'fuzzyContent' use text similarity.
422
+ *
423
+ * The primary strategy used to match requirements across sources.
424
+ */
425
+ export var MatchStrategy;
426
+ (function (MatchStrategy) {
427
+ MatchStrategy["CciMatch"] = "cciMatch";
428
+ MatchStrategy["ExactID"] = "exactId";
429
+ MatchStrategy["FuzzyContent"] = "fuzzyContent";
430
+ MatchStrategy["FuzzyTitle"] = "fuzzyTitle";
431
+ MatchStrategy["MappedID"] = "mappedId";
432
+ MatchStrategy["NISTMatch"] = "nistMatch";
433
+ })(MatchStrategy || (MatchStrategy = {}));
434
+ /**
435
+ * The state of this requirement in the comparison.
436
+ *
437
+ * SARIF-compatible vocabulary extended for security. 'new' = present only in new source,
438
+ * 'absent' = present only in old, 'unchanged' = same effective status, 'updated' = status
439
+ * changed (generic), 'fixed' = was failing now passing, 'regressed' = was passing now
440
+ * failing, 'moved' = reorganized same content, 'split'/'merged' = reserved for v1.1.
441
+ */
442
+ export var RequirementState;
443
+ (function (RequirementState) {
444
+ RequirementState["Absent"] = "absent";
445
+ RequirementState["Fixed"] = "fixed";
446
+ RequirementState["Merged"] = "merged";
447
+ RequirementState["Moved"] = "moved";
448
+ RequirementState["New"] = "new";
449
+ RequirementState["Regressed"] = "regressed";
450
+ RequirementState["Split"] = "split";
451
+ RequirementState["Unchanged"] = "unchanged";
452
+ RequirementState["Updated"] = "updated";
453
+ })(RequirementState || (RequirementState = {}));
454
+ export var FormatVersion;
455
+ (function (FormatVersion) {
456
+ FormatVersion["The100"] = "1.0.0";
457
+ })(FormatVersion || (FormatVersion = {}));
458
+ /**
459
+ * The state of this package: added (new in new SBOM), removed (absent from new SBOM),
460
+ * updated (version changed), unchanged.
461
+ */
462
+ export var PackageDiffState;
463
+ (function (PackageDiffState) {
464
+ PackageDiffState["Added"] = "added";
465
+ PackageDiffState["Removed"] = "removed";
466
+ PackageDiffState["Unchanged"] = "unchanged";
467
+ PackageDiffState["Updated"] = "updated";
468
+ })(PackageDiffState || (PackageDiffState = {}));
469
+ /**
470
+ * The original format of the source document before conversion to HDF.
471
+ */
472
+ export var OriginalFormat;
473
+ (function (OriginalFormat) {
474
+ OriginalFormat["HdfV2"] = "hdf-v2";
475
+ OriginalFormat["InspecV1"] = "inspec-v1";
476
+ OriginalFormat["OscalAr"] = "oscal-ar";
477
+ OriginalFormat["Sarif"] = "sarif";
478
+ OriginalFormat["Xccdf"] = "xccdf";
479
+ })(OriginalFormat || (OriginalFormat = {}));
480
+ /**
481
+ * The role of this source in the comparison.
482
+ *
483
+ * The role of a source document in the comparison.
484
+ */
485
+ export var SourceRole;
486
+ (function (SourceRole) {
487
+ SourceRole["Golden"] = "golden";
488
+ SourceRole["New"] = "new";
489
+ SourceRole["Old"] = "old";
490
+ SourceRole["Reference"] = "reference";
491
+ SourceRole["System"] = "system";
492
+ })(SourceRole || (SourceRole = {}));
493
+ /**
494
+ * Current Authorization to Operate (ATO) status.
495
+ *
496
+ * Authorization to Operate (ATO) status for the system.
497
+ */
498
+ export var AuthorizationStatus;
499
+ (function (AuthorizationStatus) {
500
+ AuthorizationStatus["Authorized"] = "authorized";
501
+ AuthorizationStatus["ConditionallyAuthorized"] = "conditionallyAuthorized";
502
+ AuthorizationStatus["Denied"] = "denied";
503
+ AuthorizationStatus["NotYetRequested"] = "notYetRequested";
504
+ AuthorizationStatus["PendingAuthorization"] = "pendingAuthorization";
505
+ AuthorizationStatus["Revoked"] = "revoked";
506
+ })(AuthorizationStatus || (AuthorizationStatus = {}));
507
+ /**
508
+ * FIPS 199 security categorization (impact level).
509
+ *
510
+ * FIPS 199 security categorization level (impact level).
511
+ */
512
+ export var CategorizationLevel;
513
+ (function (CategorizationLevel) {
514
+ CategorizationLevel["High"] = "high";
515
+ CategorizationLevel["Low"] = "low";
516
+ CategorizationLevel["Moderate"] = "moderate";
517
+ })(CategorizationLevel || (CategorizationLevel = {}));
518
+ /**
519
+ * NIST SP 800-53 control designation. 'common': fully provided by another component or
520
+ * system. 'system-specific': implemented by the inheriting component(s) only. 'hybrid':
521
+ * shared responsibility between provider and inheritor.
522
+ */
523
+ export var Designation;
524
+ (function (Designation) {
525
+ Designation["Common"] = "common";
526
+ Designation["Hybrid"] = "hybrid";
527
+ Designation["SystemSpecific"] = "system-specific";
528
+ })(Designation || (Designation = {}));
529
+ /**
530
+ * Data flow direction. 'unidirectional' means data flows from→to only. 'bidirectional'
531
+ * means data flows in both directions (e.g., request/response).
532
+ */
533
+ export var Direction;
534
+ (function (Direction) {
535
+ Direction["Bidirectional"] = "bidirectional";
536
+ Direction["Unidirectional"] = "unidirectional";
537
+ })(Direction || (Direction = {}));
538
+ /**
539
+ * The type of assessment plan.
540
+ *
541
+ * The type of assessment. 'automated' for scanner-driven, 'manual' for human-performed,
542
+ * 'hybrid' for both.
543
+ */
544
+ export var PlanType;
545
+ (function (PlanType) {
546
+ PlanType["Automated"] = "automated";
547
+ PlanType["Hybrid"] = "hybrid";
548
+ PlanType["Manual"] = "manual";
549
+ })(PlanType || (PlanType = {}));
550
+ /**
551
+ * The type of HDF document being referenced.
552
+ *
553
+ * The type of document referenced in the evidence package.
554
+ */
555
+ export var ContentType;
556
+ (function (ContentType) {
557
+ ContentType["HdfAmendments"] = "hdf-amendments";
558
+ ContentType["HdfBaseline"] = "hdf-baseline";
559
+ ContentType["HdfComparison"] = "hdf-comparison";
560
+ ContentType["HdfPlan"] = "hdf-plan";
561
+ ContentType["HdfResults"] = "hdf-results";
562
+ ContentType["HdfSystem"] = "hdf-system";
563
+ ContentType["Sbom"] = "sbom";
564
+ })(ContentType || (ContentType = {}));