scripts/standalone.js (45 lines of code) (raw):
// Copyright (c) 2018 Chandan B N. All rights reserved.
// Generate the standalone static Vulnogram client side only page
// usage:
// $ node scripts/standalone.js
// to load a customized overide schema in 'custom/cve/conf.js':
// $ node scripts/standalone.js custom
const fs = require('fs');
const pug = require('pug');
const conf = require('../config/conf-standalone');
const optSet = require('../models/set');
// Compile the template to a function string
var editTemplate = fs.existsSync('custom/cve5/edit.pug') ? 'custom/cve5/edit.pug' : 'default/cve5/edit.pug';
/*var renderTemplate = fs.existsSync('custom/cve/render.pug') ? 'custom/cve/render.pug' : 'default/cve/render.pug';*/
var cveEdit = pug.compileFile(editTemplate, {compileDebug: false});
confOpts = {
cve: optSet('cve5', ['default'].concat(process.argv.slice(2))),
cvss4: optSet('cvss4', ['default'].concat(process.argv.slice(2)))
}
confOpts.cve.conf.uri = '/';
confOpts.cve.conf.name = 'CVE';
confOpts.cvss4.conf.uri = '/cvss4';
var cd = confOpts.cve.schema?.definitions;
if (cd && cd.CNA_private) {
delete cd.CNA_private;
}
cd = confOpts.cve.schema.oneOf[0]?.properties;
if (cd && cd.CNA_private) {
delete cd.CNA_private;
}
fs.writeFileSync("standalone/index.html", cveEdit({
title: 'Vulnogram CVE Editor',
idpath: 'cveMetadata.cveId',
min: true,
doc: null,
pugLib: pug,
conf: conf,
confOpts: confOpts,
opts: confOpts.cve,
schemaName: 'cve',
allowAjax: false,
}));
fs.writeFileSync("standalone/cvss4.html", pug.compileFile('default/cvss4/edit.pug', {compileDebug: false})({
title: 'Vulnogram CVSS Calculator',
idpath: 'vectorString',
min: true,
doc: null,
pugLib: pug,
conf: conf,
confOpts: confOpts,
opts: confOpts.cvss4,
schemaName: 'cvss4',
allowAjax: false,
}));