renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
48 lines (47 loc) • 1.99 kB
JavaScript
//#region lib/util/vulnerability/utils.ts
/**
* Ecosystems/datasources that use Maven-style inclusive ranges for fixed versions: `[version,)`
*/
const mavenStyleFixedEcosystems = new Set(["maven", "nuget"]);
/**
* Ecosystems/datasources that use Maven-style exclusive ranges for last-affected versions: `(version,)`
*/
const mavenStyleLastAffectedEcosystems = new Set(["maven"]);
/**
* Formats a fixed version as an allowed-version constraint appropriate for the ecosystem.
*
* @param fixedVersion - The first version that contains the fix
* @param ecosystem - Ecosystem or datasource name (e.g., 'maven', 'npm', 'nuget'). Checked in a case-insensitive manner.
*/
function getFixedVersionConstraint(fixedVersion, ecosystem) {
if (mavenStyleFixedEcosystems.has(ecosystem.toLowerCase())) return `[${fixedVersion},)`;
return `>= ${fixedVersion}`;
}
/**
* Formats a last-affected version as an allowed-version constraint appropriate for the ecosystem.
*
* @param lastAffected - The last version known to be affected
* @param ecosystem - Ecosystem or datasource name. Checked in a case-insensitive manner.
*/
function getLastAffectedVersionConstraint(lastAffected, ecosystem) {
if (mavenStyleLastAffectedEcosystems.has(ecosystem.toLowerCase())) return `(${lastAffected},)`;
return `> ${lastAffected}`;
}
const severityOrder = {
LOW: 1,
MEDIUM: 2,
MODERATE: 2,
HIGH: 3,
CRITICAL: 4,
UNKNOWN: 5
};
function getHighestVulnerabilitySeverity(parent, child) {
const parentVulSeverity = parent.vulnerabilitySeverity?.toUpperCase();
const childVulSeverity = child?.vulnerabilitySeverity?.toUpperCase();
if (childVulSeverity === void 0) return parentVulSeverity;
if (parentVulSeverity === void 0) return childVulSeverity;
return severityOrder[parentVulSeverity] >= severityOrder[childVulSeverity] ? parentVulSeverity : childVulSeverity;
}
//#endregion
export { getFixedVersionConstraint, getHighestVulnerabilitySeverity, getLastAffectedVersionConstraint };
//# sourceMappingURL=utils.js.map