@mitre/hdf-validators 3.7.2 → 3.8.0-next.42533588944.1

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 CHANGED
@@ -1,4 +1,3 @@
1
- //#region typescript/index.d.ts
2
1
  /**
3
2
  * Validation error details
4
3
  */
@@ -65,5 +64,4 @@ export declare function validateEvidencePackage(data: unknown): ValidationResult
65
64
  * Validate HDF document (auto-detect type based on structure)
66
65
  */
67
66
  export declare function validate(data: unknown): ValidationResult;
68
- //#endregion
69
67
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../typescript/index.ts"],"mappings":";;;;iBA8CiB;EACf;EACA;EACA;;;;;;EAMA;;EAEA;;;;;iBAMe;EACf;EACA,QAAQ;EACR;;;;;wBAmNc,gBAAgB,gBAAgB;;;;;;wBAuBhC,iBAAiB,gBAAgB;;;;wBAOjC,iBAAiB,gBAAgB;;;;wBAQjC,mBAAmB,gBAAgB;;;;wBAQnC,+BAA+B,gBAAgB;;;;wBAQ/C,eAAe,gBAAgB;;;;wBAQ/B,aAAa,gBAAgB;;;;wBAQ7B,mBAAmB,gBAAgB;;;;wBAQnC,wBAAwB,gBAAgB;;;;wBAQxC,SAAS,gBAAgB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../typescript/index.ts"],"mappings":";;;iBA8CiB;EACf;EACA;EACA;;;;;;EAMA;;EAEA;;;;;iBAMe;EACf;EACA,QAAQ;EACR;;;;;wBAmNc,gBAAgB,gBAAgB;;;;;;wBAuBhC,iBAAiB,gBAAgB;;;;wBAOjC,iBAAiB,gBAAgB;;;;wBAQjC,mBAAmB,gBAAgB;;;;wBAQnC,+BAA+B,gBAAgB;;;;wBAQ/C,eAAe,gBAAgB;;;;wBAQ/B,aAAa,gBAAgB;;;;wBAQ7B,mBAAmB,gBAAgB;;;;wBAQnC,wBAAwB,gBAAgB;;;;wBAQxC,SAAS,gBAAgB"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import Ajv from "ajv";
2
2
  import addFormats from "ajv-formats";
3
3
  import { affectedPackageSchema, amendmentsSchema, bomSchema, commonSchema, comparisonSchema, componentSchema, cvssSchema, dataFlowSchema, epssSchema, eventsSchema, extensionsSchema, hdfAmendmentsSchema, hdfBaselineSchema, hdfComparisonSchema, hdfEvidencePackageSchema, hdfPlanSchema, hdfRequirementChangeEventSchema, hdfResultsSchema, hdfSystemSchema, kevSchema, parameterSchema, planSchema, platformSchema, resultSchema, runnerSchema, statisticsSchema, systemSchema, targetSchema } from "@mitre/hdf-schema";
4
- //#region typescript/legacy-exec-json.schema.json
4
+ // typescript/legacy-exec-json.schema.json
5
5
  var legacy_exec_json_schema_default = {
6
6
  type: "object",
7
7
  additionalProperties: true,
@@ -560,8 +560,7 @@ var legacy_exec_json_schema_default = {
560
560
  }
561
561
  }
562
562
  };
563
- //#endregion
564
- //#region typescript/index.ts
563
+ // typescript/index.ts
565
564
  /**
566
565
  * Create and configure Ajv instance with all HDF schemas
567
566
  */
@@ -788,7 +787,6 @@ function validate(data) {
788
787
  if (baselineResult.valid) return baselineResult;
789
788
  return resultsResult;
790
789
  }
791
- //#endregion
792
790
  export { validate, validateAmendments, validateBaseline, validateComparison, validateEvidencePackage, validateLegacyV2, validatePlan, validateRequirementChangeEvent, validateResults, validateSystem };
793
791
 
794
792
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["legacyV2Schema"],"sources":["../typescript/legacy-exec-json.schema.json","../typescript/index.ts"],"sourcesContent":["","import Ajv, { type ValidateFunction, type ErrorObject } from 'ajv';\nimport addFormats from 'ajv-formats';\n\n// Pinned HDF v2 (Heimdall/InSpec exec-json) schema — sourced from heimdall2\n// inspecjs (see ../go/legacy/PROVENANCE.md). Byte-identical to the Go-embedded\n// copy at ../go/legacy/exec-json.schema.json, pinned by a parity test.\nimport legacyV2Schema from './legacy-exec-json.schema.json';\n\n// Named JS-object schema imports — the schemas are inlined into\n// @mitre/hdf-schema's dist/index.js at build time, so downstream consumers\n// never see raw JSON imports. Works uniformly in raw Node ESM, Vite/Nuxt,\n// webpack, esbuild — no consumer-side noExternal configuration required.\nimport {\n hdfResultsSchema,\n hdfBaselineSchema,\n hdfComparisonSchema,\n hdfSystemSchema,\n hdfPlanSchema,\n hdfAmendmentsSchema,\n hdfEvidencePackageSchema,\n hdfRequirementChangeEventSchema,\n commonSchema,\n eventsSchema,\n extensionsSchema,\n platformSchema,\n resultSchema,\n runnerSchema,\n statisticsSchema,\n targetSchema,\n parameterSchema,\n systemSchema,\n planSchema,\n amendmentsSchema,\n comparisonSchema,\n componentSchema,\n dataFlowSchema,\n cvssSchema,\n epssSchema,\n kevSchema,\n affectedPackageSchema,\n bomSchema,\n} from '@mitre/hdf-schema';\n\n/**\n * Validation error details\n */\nexport interface ValidationError {\n field: string;\n message: string;\n value?: unknown;\n /**\n * The JSON Schema keyword that failed ('type', 'required', 'format', ...).\n * Surfaced so a caller can act on the KIND of violation — the converters\n * reject a wrongly-typed field without rejecting a merely sparse document.\n */\n keyword?: string;\n /** For a failed `format`, which format was expected. */\n format?: string;\n}\n\n/**\n * Result of schema validation\n */\nexport interface ValidationResult {\n valid: boolean;\n errors: ValidationError[];\n getErrorMessage(): string;\n}\n\n/**\n * Create and configure Ajv instance with all HDF schemas\n */\nfunction createValidator(): Ajv {\n const ajv = new Ajv({\n allErrors: true,\n verbose: true,\n strict: false,\n validateFormats: true,\n validateSchema: false // Skip meta-schema validation for performance\n });\n\n // Add format validators (date-time, uri, etc.)\n addFormats(ajv);\n // ajv-formats follows the RFC 3339 note allowing a space where the T belongs;\n // HDF's canonical timestamp does not, and the Go peer rejects it. Requiring the\n // separator keeps the shipped validators on one answer — both languages' verdicts\n // are pinned by ../testdata/shipped-format-cases.json.\n const registeredDateTime = ajv.formats['date-time'] as { validate: (v: string) => boolean };\n ajv.addFormat('date-time', {\n type: 'string',\n validate: (v: string) => /^\\d{4}-\\d{2}-\\d{2}[Tt]/.test(v) && registeredDateTime.validate(v),\n });\n\n // Add all primitive schemas so they can be referenced via $ref\n ajv.addSchema(commonSchema);\n ajv.addSchema(platformSchema);\n ajv.addSchema(resultSchema);\n ajv.addSchema(runnerSchema);\n ajv.addSchema(statisticsSchema);\n ajv.addSchema(targetSchema);\n ajv.addSchema(parameterSchema);\n ajv.addSchema(cvssSchema); // CVE-ecosystem primitives: referenced by Evaluated_Requirement + overrides\n ajv.addSchema(epssSchema);\n ajv.addSchema(kevSchema);\n ajv.addSchema(affectedPackageSchema);\n ajv.addSchema(bomSchema); // referenced by Base_Component.boms[]\n ajv.addSchema(amendmentsSchema); // before extensions (extensions $refs amendments Override_Type)\n ajv.addSchema(extensionsSchema);\n ajv.addSchema(systemSchema);\n ajv.addSchema(planSchema);\n ajv.addSchema(comparisonSchema);\n ajv.addSchema(eventsSchema); // change-event envelope (referenced by hdf-requirement-change-event)\n ajv.addSchema(componentSchema);\n ajv.addSchema(dataFlowSchema);\n\n // Register top-level schemas so cross-schema $refs resolve.\n // The comparison primitive references hdf-results#/$defs/Evaluated_Requirement,\n // so hdf-results must be registered before compiling comparison.\n // Schemas are compiled lazily (in getXxxValidator) for performance.\n ajv.addSchema(hdfResultsSchema);\n ajv.addSchema(hdfBaselineSchema);\n ajv.addSchema(hdfComparisonSchema);\n ajv.addSchema(hdfSystemSchema);\n ajv.addSchema(hdfPlanSchema);\n ajv.addSchema(hdfAmendmentsSchema);\n ajv.addSchema(hdfRequirementChangeEventSchema);\n ajv.addSchema(hdfEvidencePackageSchema);\n\n return ajv;\n}\n\n// Singleton Ajv instance\nconst ajv = createValidator();\n\n// Compile schemas once (lazy initialization)\nlet resultsValidator: ValidateFunction | null = null;\nlet baselineValidator: ValidateFunction | null = null;\nlet comparisonValidator: ValidateFunction | null = null;\nlet systemValidator: ValidateFunction | null = null;\nlet planValidator: ValidateFunction | null = null;\nlet amendmentsValidator: ValidateFunction | null = null;\nlet evidencePackageValidator: ValidateFunction | null = null;\nlet requirementChangeEventValidator: ValidateFunction | null = null;\n\nfunction getResultsValidator(): ValidateFunction {\n if (!resultsValidator) {\n resultsValidator = ajv.compile(hdfResultsSchema);\n }\n return resultsValidator;\n}\n\nfunction getBaselineValidator(): ValidateFunction {\n if (!baselineValidator) {\n baselineValidator = ajv.compile(hdfBaselineSchema);\n }\n return baselineValidator;\n}\n\nfunction getComparisonValidator(): ValidateFunction {\n if (!comparisonValidator) {\n comparisonValidator = ajv.compile(hdfComparisonSchema);\n }\n return comparisonValidator;\n}\n\nfunction getRequirementChangeEventValidator(): ValidateFunction {\n if (!requirementChangeEventValidator) {\n requirementChangeEventValidator = ajv.compile(hdfRequirementChangeEventSchema);\n }\n return requirementChangeEventValidator;\n}\n\nfunction getSystemValidator(): ValidateFunction {\n if (!systemValidator) {\n systemValidator = ajv.compile(hdfSystemSchema);\n }\n return systemValidator;\n}\n\nfunction getPlanValidator(): ValidateFunction {\n if (!planValidator) {\n planValidator = ajv.compile(hdfPlanSchema);\n }\n return planValidator;\n}\n\nfunction getAmendmentsValidator(): ValidateFunction {\n if (!amendmentsValidator) {\n amendmentsValidator = ajv.compile(hdfAmendmentsSchema);\n }\n return amendmentsValidator;\n}\n\nfunction getEvidencePackageValidator(): ValidateFunction {\n if (!evidencePackageValidator) {\n evidencePackageValidator = ajv.compile(hdfEvidencePackageSchema);\n }\n return evidencePackageValidator;\n}\n\n/**\n * Convert Ajv errors to ValidationError format\n */\nfunction formatErrors(errors: ErrorObject[] | null | undefined): ValidationError[] {\n if (!errors || errors.length === 0) {\n return [];\n }\n\n return errors.map(err => {\n // Clean up field path (remove leading slash, use dot notation)\n let field = err.instancePath\n .replace(/^\\//, '')\n .replace(/\\//g, '.');\n\n // If field is empty, use the data path from the error\n if (!field && err.schemaPath) {\n const pathParts = err.schemaPath.split('/');\n field = pathParts[pathParts.length - 1] || '(root)';\n }\n\n // Build message\n let message = err.message || 'validation failed';\n if (err.params) {\n // Add parameter info for more context\n if ('missingProperty' in err.params) {\n field = field ? `${field}.${err.params.missingProperty}` : err.params.missingProperty;\n message = 'is required';\n } else if ('additionalProperty' in err.params) {\n field = field ? `${field}.${err.params.additionalProperty}` : err.params.additionalProperty;\n message = 'is not allowed';\n } else if ('limit' in err.params) {\n message = `${message} (limit: ${err.params.limit})`;\n }\n }\n\n return {\n field: field || '(root)',\n keyword: err.keyword,\n ...(err.keyword === 'format' && err.params && 'format' in err.params\n ? { format: String((err.params as { format: unknown }).format) }\n : {}),\n message,\n value: err.data\n };\n });\n}\n\n/**\n * Create ValidationResult from validator output\n */\nfunction createResult(validator: ValidateFunction, data: unknown): ValidationResult {\n const valid = validator(data);\n\n const errors = formatErrors(validator.errors);\n\n return {\n valid: valid === true,\n errors,\n getErrorMessage(): string {\n if (this.valid) {\n return '';\n }\n return this.errors\n .map(e => {\n if (e.field === '(root)') {\n return e.message;\n }\n return `${e.field}: ${e.message}`;\n })\n .join('; ');\n }\n };\n}\n\n/**\n * Validate HDF Results document against schema\n */\nexport function validateResults(data: unknown): ValidationResult {\n const validator = getResultsValidator();\n return createResult(validator, data);\n}\n\n// Legacy HDF v2 (Heimdall/InSpec exec-json) uses its own Ajv instance: the pinned\n// exec-json schema is self-contained and unrelated to the HDF v3 schemas, so it\n// stays isolated from the shared HDF validator.\nlet legacyV2Validator: ValidateFunction | null = null;\nfunction getLegacyV2Validator(): ValidateFunction {\n if (!legacyV2Validator) {\n const v2ajv = new Ajv({ allErrors: true, verbose: true, strict: false, validateSchema: false });\n addFormats(v2ajv);\n legacyV2Validator = v2ajv.compile(legacyV2Schema);\n }\n return legacyV2Validator;\n}\n\n/**\n * Validate a legacy HDF v2 document — the Heimdall/InSpec exec-json shape\n * (profiles[] + platform) SAF converters emit — against the pinned exec-json\n * schema, at the same Ajv rigor as the v3 validators.\n */\nexport function validateLegacyV2(data: unknown): ValidationResult {\n return createResult(getLegacyV2Validator(), data);\n}\n\n/**\n * Validate HDF Baseline document against schema\n */\nexport function validateBaseline(data: unknown): ValidationResult {\n const validator = getBaselineValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF Comparison document against schema\n */\nexport function validateComparison(data: unknown): ValidationResult {\n const validator = getComparisonValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate an HDF Requirement Change Event (one continuous-monitoring wire event) against schema\n */\nexport function validateRequirementChangeEvent(data: unknown): ValidationResult {\n const validator = getRequirementChangeEventValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF System document against schema\n */\nexport function validateSystem(data: unknown): ValidationResult {\n const validator = getSystemValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF Plan document against schema\n */\nexport function validatePlan(data: unknown): ValidationResult {\n const validator = getPlanValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF Amendments document against schema\n */\nexport function validateAmendments(data: unknown): ValidationResult {\n const validator = getAmendmentsValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF Evidence Package document against schema\n */\nexport function validateEvidencePackage(data: unknown): ValidationResult {\n const validator = getEvidencePackageValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF document (auto-detect type based on structure)\n */\nexport function validate(data: unknown): ValidationResult {\n if (typeof data === 'object' && data !== null) {\n const obj = data as Record<string, unknown>;\n\n // HDF Results has 'baselines' array at root\n if ('baselines' in obj) {\n return validateResults(data);\n }\n\n // HDF Baseline has 'name' and 'requirements' at root\n if ('name' in obj && 'requirements' in obj) {\n return validateBaseline(data);\n }\n\n // HDF System has 'name' and 'components' at root\n if ('name' in obj && 'components' in obj) {\n return validateSystem(data);\n }\n\n // HDF Plan has 'name' and 'assessments' at root\n if ('name' in obj && 'assessments' in obj) {\n return validatePlan(data);\n }\n\n // HDF Amendments has 'name' and 'overrides' at root\n if ('name' in obj && 'overrides' in obj) {\n return validateAmendments(data);\n }\n\n // HDF Comparison has 'requirementDiffs' at root (unique discriminator)\n if ('requirementDiffs' in obj) {\n return validateComparison(data);\n }\n\n // HDF Evidence Package has 'name' and 'contents' at root\n if ('name' in obj && 'contents' in obj) {\n return validateEvidencePackage(data);\n }\n }\n\n // Cannot determine type, try results first (most common)\n const resultsResult = validateResults(data);\n if (resultsResult.valid) {\n return resultsResult;\n }\n\n const baselineResult = validateBaseline(data);\n if (baselineResult.valid) {\n return baselineResult;\n }\n\n return resultsResult;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["legacyV2Schema"],"sources":["../typescript/legacy-exec-json.schema.json","../typescript/index.ts"],"sourcesContent":["","import Ajv, { type ValidateFunction, type ErrorObject } from 'ajv';\nimport addFormats from 'ajv-formats';\n\n// Pinned HDF v2 (Heimdall/InSpec exec-json) schema — sourced from heimdall2\n// inspecjs (see ../go/legacy/PROVENANCE.md). Byte-identical to the Go-embedded\n// copy at ../go/legacy/exec-json.schema.json, pinned by a parity test.\nimport legacyV2Schema from './legacy-exec-json.schema.json';\n\n// Named JS-object schema imports — the schemas are inlined into\n// @mitre/hdf-schema's dist/index.js at build time, so downstream consumers\n// never see raw JSON imports. Works uniformly in raw Node ESM, Vite/Nuxt,\n// webpack, esbuild — no consumer-side noExternal configuration required.\nimport {\n hdfResultsSchema,\n hdfBaselineSchema,\n hdfComparisonSchema,\n hdfSystemSchema,\n hdfPlanSchema,\n hdfAmendmentsSchema,\n hdfEvidencePackageSchema,\n hdfRequirementChangeEventSchema,\n commonSchema,\n eventsSchema,\n extensionsSchema,\n platformSchema,\n resultSchema,\n runnerSchema,\n statisticsSchema,\n targetSchema,\n parameterSchema,\n systemSchema,\n planSchema,\n amendmentsSchema,\n comparisonSchema,\n componentSchema,\n dataFlowSchema,\n cvssSchema,\n epssSchema,\n kevSchema,\n affectedPackageSchema,\n bomSchema,\n} from '@mitre/hdf-schema';\n\n/**\n * Validation error details\n */\nexport interface ValidationError {\n field: string;\n message: string;\n value?: unknown;\n /**\n * The JSON Schema keyword that failed ('type', 'required', 'format', ...).\n * Surfaced so a caller can act on the KIND of violation — the converters\n * reject a wrongly-typed field without rejecting a merely sparse document.\n */\n keyword?: string;\n /** For a failed `format`, which format was expected. */\n format?: string;\n}\n\n/**\n * Result of schema validation\n */\nexport interface ValidationResult {\n valid: boolean;\n errors: ValidationError[];\n getErrorMessage(): string;\n}\n\n/**\n * Create and configure Ajv instance with all HDF schemas\n */\nfunction createValidator(): Ajv {\n const ajv = new Ajv({\n allErrors: true,\n verbose: true,\n strict: false,\n validateFormats: true,\n validateSchema: false // Skip meta-schema validation for performance\n });\n\n // Add format validators (date-time, uri, etc.)\n addFormats(ajv);\n // ajv-formats follows the RFC 3339 note allowing a space where the T belongs;\n // HDF's canonical timestamp does not, and the Go peer rejects it. Requiring the\n // separator keeps the shipped validators on one answer — both languages' verdicts\n // are pinned by ../testdata/shipped-format-cases.json.\n const registeredDateTime = ajv.formats['date-time'] as { validate: (v: string) => boolean };\n ajv.addFormat('date-time', {\n type: 'string',\n validate: (v: string) => /^\\d{4}-\\d{2}-\\d{2}[Tt]/.test(v) && registeredDateTime.validate(v),\n });\n\n // Add all primitive schemas so they can be referenced via $ref\n ajv.addSchema(commonSchema);\n ajv.addSchema(platformSchema);\n ajv.addSchema(resultSchema);\n ajv.addSchema(runnerSchema);\n ajv.addSchema(statisticsSchema);\n ajv.addSchema(targetSchema);\n ajv.addSchema(parameterSchema);\n ajv.addSchema(cvssSchema); // CVE-ecosystem primitives: referenced by Evaluated_Requirement + overrides\n ajv.addSchema(epssSchema);\n ajv.addSchema(kevSchema);\n ajv.addSchema(affectedPackageSchema);\n ajv.addSchema(bomSchema); // referenced by Base_Component.boms[]\n ajv.addSchema(amendmentsSchema); // before extensions (extensions $refs amendments Override_Type)\n ajv.addSchema(extensionsSchema);\n ajv.addSchema(systemSchema);\n ajv.addSchema(planSchema);\n ajv.addSchema(comparisonSchema);\n ajv.addSchema(eventsSchema); // change-event envelope (referenced by hdf-requirement-change-event)\n ajv.addSchema(componentSchema);\n ajv.addSchema(dataFlowSchema);\n\n // Register top-level schemas so cross-schema $refs resolve.\n // The comparison primitive references hdf-results#/$defs/Evaluated_Requirement,\n // so hdf-results must be registered before compiling comparison.\n // Schemas are compiled lazily (in getXxxValidator) for performance.\n ajv.addSchema(hdfResultsSchema);\n ajv.addSchema(hdfBaselineSchema);\n ajv.addSchema(hdfComparisonSchema);\n ajv.addSchema(hdfSystemSchema);\n ajv.addSchema(hdfPlanSchema);\n ajv.addSchema(hdfAmendmentsSchema);\n ajv.addSchema(hdfRequirementChangeEventSchema);\n ajv.addSchema(hdfEvidencePackageSchema);\n\n return ajv;\n}\n\n// Singleton Ajv instance\nconst ajv = createValidator();\n\n// Compile schemas once (lazy initialization)\nlet resultsValidator: ValidateFunction | null = null;\nlet baselineValidator: ValidateFunction | null = null;\nlet comparisonValidator: ValidateFunction | null = null;\nlet systemValidator: ValidateFunction | null = null;\nlet planValidator: ValidateFunction | null = null;\nlet amendmentsValidator: ValidateFunction | null = null;\nlet evidencePackageValidator: ValidateFunction | null = null;\nlet requirementChangeEventValidator: ValidateFunction | null = null;\n\nfunction getResultsValidator(): ValidateFunction {\n if (!resultsValidator) {\n resultsValidator = ajv.compile(hdfResultsSchema);\n }\n return resultsValidator;\n}\n\nfunction getBaselineValidator(): ValidateFunction {\n if (!baselineValidator) {\n baselineValidator = ajv.compile(hdfBaselineSchema);\n }\n return baselineValidator;\n}\n\nfunction getComparisonValidator(): ValidateFunction {\n if (!comparisonValidator) {\n comparisonValidator = ajv.compile(hdfComparisonSchema);\n }\n return comparisonValidator;\n}\n\nfunction getRequirementChangeEventValidator(): ValidateFunction {\n if (!requirementChangeEventValidator) {\n requirementChangeEventValidator = ajv.compile(hdfRequirementChangeEventSchema);\n }\n return requirementChangeEventValidator;\n}\n\nfunction getSystemValidator(): ValidateFunction {\n if (!systemValidator) {\n systemValidator = ajv.compile(hdfSystemSchema);\n }\n return systemValidator;\n}\n\nfunction getPlanValidator(): ValidateFunction {\n if (!planValidator) {\n planValidator = ajv.compile(hdfPlanSchema);\n }\n return planValidator;\n}\n\nfunction getAmendmentsValidator(): ValidateFunction {\n if (!amendmentsValidator) {\n amendmentsValidator = ajv.compile(hdfAmendmentsSchema);\n }\n return amendmentsValidator;\n}\n\nfunction getEvidencePackageValidator(): ValidateFunction {\n if (!evidencePackageValidator) {\n evidencePackageValidator = ajv.compile(hdfEvidencePackageSchema);\n }\n return evidencePackageValidator;\n}\n\n/**\n * Convert Ajv errors to ValidationError format\n */\nfunction formatErrors(errors: ErrorObject[] | null | undefined): ValidationError[] {\n if (!errors || errors.length === 0) {\n return [];\n }\n\n return errors.map(err => {\n // Clean up field path (remove leading slash, use dot notation)\n let field = err.instancePath\n .replace(/^\\//, '')\n .replace(/\\//g, '.');\n\n // If field is empty, use the data path from the error\n if (!field && err.schemaPath) {\n const pathParts = err.schemaPath.split('/');\n field = pathParts[pathParts.length - 1] || '(root)';\n }\n\n // Build message\n let message = err.message || 'validation failed';\n if (err.params) {\n // Add parameter info for more context\n if ('missingProperty' in err.params) {\n field = field ? `${field}.${err.params.missingProperty}` : err.params.missingProperty;\n message = 'is required';\n } else if ('additionalProperty' in err.params) {\n field = field ? `${field}.${err.params.additionalProperty}` : err.params.additionalProperty;\n message = 'is not allowed';\n } else if ('limit' in err.params) {\n message = `${message} (limit: ${err.params.limit})`;\n }\n }\n\n return {\n field: field || '(root)',\n keyword: err.keyword,\n ...(err.keyword === 'format' && err.params && 'format' in err.params\n ? { format: String((err.params as { format: unknown }).format) }\n : {}),\n message,\n value: err.data\n };\n });\n}\n\n/**\n * Create ValidationResult from validator output\n */\nfunction createResult(validator: ValidateFunction, data: unknown): ValidationResult {\n const valid = validator(data);\n\n const errors = formatErrors(validator.errors);\n\n return {\n valid: valid === true,\n errors,\n getErrorMessage(): string {\n if (this.valid) {\n return '';\n }\n return this.errors\n .map(e => {\n if (e.field === '(root)') {\n return e.message;\n }\n return `${e.field}: ${e.message}`;\n })\n .join('; ');\n }\n };\n}\n\n/**\n * Validate HDF Results document against schema\n */\nexport function validateResults(data: unknown): ValidationResult {\n const validator = getResultsValidator();\n return createResult(validator, data);\n}\n\n// Legacy HDF v2 (Heimdall/InSpec exec-json) uses its own Ajv instance: the pinned\n// exec-json schema is self-contained and unrelated to the HDF v3 schemas, so it\n// stays isolated from the shared HDF validator.\nlet legacyV2Validator: ValidateFunction | null = null;\nfunction getLegacyV2Validator(): ValidateFunction {\n if (!legacyV2Validator) {\n const v2ajv = new Ajv({ allErrors: true, verbose: true, strict: false, validateSchema: false });\n addFormats(v2ajv);\n legacyV2Validator = v2ajv.compile(legacyV2Schema);\n }\n return legacyV2Validator;\n}\n\n/**\n * Validate a legacy HDF v2 document — the Heimdall/InSpec exec-json shape\n * (profiles[] + platform) SAF converters emit — against the pinned exec-json\n * schema, at the same Ajv rigor as the v3 validators.\n */\nexport function validateLegacyV2(data: unknown): ValidationResult {\n return createResult(getLegacyV2Validator(), data);\n}\n\n/**\n * Validate HDF Baseline document against schema\n */\nexport function validateBaseline(data: unknown): ValidationResult {\n const validator = getBaselineValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF Comparison document against schema\n */\nexport function validateComparison(data: unknown): ValidationResult {\n const validator = getComparisonValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate an HDF Requirement Change Event (one continuous-monitoring wire event) against schema\n */\nexport function validateRequirementChangeEvent(data: unknown): ValidationResult {\n const validator = getRequirementChangeEventValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF System document against schema\n */\nexport function validateSystem(data: unknown): ValidationResult {\n const validator = getSystemValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF Plan document against schema\n */\nexport function validatePlan(data: unknown): ValidationResult {\n const validator = getPlanValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF Amendments document against schema\n */\nexport function validateAmendments(data: unknown): ValidationResult {\n const validator = getAmendmentsValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF Evidence Package document against schema\n */\nexport function validateEvidencePackage(data: unknown): ValidationResult {\n const validator = getEvidencePackageValidator();\n return createResult(validator, data);\n}\n\n/**\n * Validate HDF document (auto-detect type based on structure)\n */\nexport function validate(data: unknown): ValidationResult {\n if (typeof data === 'object' && data !== null) {\n const obj = data as Record<string, unknown>;\n\n // HDF Results has 'baselines' array at root\n if ('baselines' in obj) {\n return validateResults(data);\n }\n\n // HDF Baseline has 'name' and 'requirements' at root\n if ('name' in obj && 'requirements' in obj) {\n return validateBaseline(data);\n }\n\n // HDF System has 'name' and 'components' at root\n if ('name' in obj && 'components' in obj) {\n return validateSystem(data);\n }\n\n // HDF Plan has 'name' and 'assessments' at root\n if ('name' in obj && 'assessments' in obj) {\n return validatePlan(data);\n }\n\n // HDF Amendments has 'name' and 'overrides' at root\n if ('name' in obj && 'overrides' in obj) {\n return validateAmendments(data);\n }\n\n // HDF Comparison has 'requirementDiffs' at root (unique discriminator)\n if ('requirementDiffs' in obj) {\n return validateComparison(data);\n }\n\n // HDF Evidence Package has 'name' and 'contents' at root\n if ('name' in obj && 'contents' in obj) {\n return validateEvidencePackage(data);\n }\n }\n\n // Cannot determine type, try results first (most common)\n const resultsResult = validateResults(data);\n if (resultsResult.valid) {\n return resultsResult;\n }\n\n const baselineResult = validateBaseline(data);\n if (baselineResult.valid) {\n return baselineResult;\n }\n\n return resultsResult;\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mitre/hdf-validators",
3
- "version": "3.7.2",
3
+ "version": "3.8.0-next.42533588944.1",
4
4
  "description": "JSON Schema validation for HDF documents (Results and Baselines)",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -25,9 +25,9 @@
25
25
  "author": "MITRE Corporation",
26
26
  "license": "Apache-2.0",
27
27
  "dependencies": {
28
+ "@mitre/hdf-schema": "3.8.0-next.42533588944.1",
28
29
  "ajv": "^8.17.1",
29
- "ajv-formats": "^3.0.1",
30
- "@mitre/hdf-schema": "^3.7.2"
30
+ "ajv-formats": "^3.0.1"
31
31
  },
32
32
  "engines": {
33
33
  "node": ">=24.0.0"
@@ -41,7 +41,7 @@
41
41
  "devDependencies": {
42
42
  "@stryker-mutator/core": "^9.5.1",
43
43
  "@stryker-mutator/vitest-runner": "^9.5.1",
44
- "@mitre/hdf-fixtures": "^3.7.2"
44
+ "@mitre/hdf-fixtures": "^3.8.0-next.42533588944.1"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "tsdown",