prepare-catalog-sources.mjs (747B)
1 // One-time extraction keeps existing IDs and authored content intact. 2 import { readFileSync, writeFileSync, existsSync } from 'node:fs'; 3 import { curatedAdditions } from './curated-additions.mjs'; 4 const rows = JSON.parse(readFileSync('src/data/techniques.json', 'utf8')); 5 if (!existsSync('src/data/sources/wadcoms-additions.json')) { 6 const additions = rows.filter(t => t.source === 'DAEMON' && t.toolId.startsWith('wadcoms:')); 7 if (additions.length !== 134) throw new Error(`Expected 134 existing additions, found ${additions.length}`); 8 writeFileSync('src/data/sources/wadcoms-additions.json', JSON.stringify(additions, null, 2) + '\n'); 9 } 10 writeFileSync('src/data/catalog-additions.json', JSON.stringify(curatedAdditions, null, 2) + '\n');