Assessor_2.0/server/reference-data/reference-catalogs.ts

12 lines
750 B
TypeScript

import { createHash } from 'node:crypto';
import attack from '../../src/assets/data/attack-reference-v19.2.json';
import d3fend from '../../src/assets/data/d3fend-reference-v1.6.0.json';
import type { ReferenceCatalog, ReferenceCatalogSnapshot } from '../../src/domain/reference-recognition';
import { canonicalJson } from '../../src/shared/canonical-json';
export const referenceHash = (value: unknown): string => createHash('sha256').update(canonicalJson(value)).digest('hex');
export function referenceSnapshot(catalog: ReferenceCatalog): ReferenceCatalogSnapshot {
return { ...catalog, sha256: referenceHash(catalog) };
}
export const bundledReferenceCatalogs = [attack, d3fend].map(catalog => referenceSnapshot(catalog as ReferenceCatalog));