UNPKG

@neuralegion/cvss

Version:

The Common Vulnerability Scoring System ([CVSS](https://www.first.org/cvss/)) [score](https://www.first.org/cvss/specification-document#1-2-Scoring) calculator and validator library written in [TypeScript](https://www.typescriptlang.org/).

24 lines (23 loc) 954 B
import { baseMetricValues, baseMetrics, environmentalMetricValues, environmentalMetrics, temporalMetricValues, temporalMetrics } from './models'; import { humanizeMetric, humanizeMetricValue } from './humanizer'; import { validateByKnownMaps } from '../validator'; export const validateVersion = (versionStr) => { if (!versionStr) { throw new Error('Invalid CVSS string. Example: CVSS:3.0/AV:A/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L'); } if (versionStr !== '3.0' && versionStr !== '3.1') { throw new Error(`Unsupported CVSS version: ${versionStr}. Only 3.0 and 3.1 are supported by this validator.`); } }; export const validate = (cvssStr) => validateByKnownMaps(cvssStr, validateVersion, { base: baseMetrics, temporal: temporalMetrics, environmental: environmentalMetrics }, { ...baseMetricValues, ...temporalMetricValues, ...environmentalMetricValues }, { humanizeMetric, humanizeMetricValue });