Assessor_2.0/scripts/update-mitre-asset.mts

11 lines
704 B
TypeScript

import { readFile, writeFile } from 'node:fs/promises';
import { resolve } from 'node:path';
import { convertEnterpriseStix } from '../src/features/mitre-graph/mitre-stix.ts';
const input = process.argv[2];
if (!input) throw new Error('Usage: node --experimental-strip-types scripts/update-mitre-asset.mts <official Enterprise ATT&CK STIX JSON>');
const graph = convertEnterpriseStix(JSON.parse(await readFile(input, 'utf8')));
const output = resolve(`src/assets/data/mitre-enterprise-v${graph.version}.json`);
await writeFile(output, JSON.stringify(graph) + '\n');
console.log(`${output}: ${graph.tacticOrder.length} tactics, ${graph.techniques.length} techniques, ${graph.entities.length} entities`);