snyk-docker-plugin
Version:
Snyk CLI docker plugin
69 lines • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mapRpmSqlitePackages = exports.analyze = void 0;
const rpm_parser_1 = require("@snyk/rpm-parser");
const packageurl_js_1 = require("packageurl-js");
const types_1 = require("../types");
function analyze(targetImage, pkgs, repositories, osRelease) {
return Promise.resolve({
Image: targetImage,
AnalyzeType: types_1.AnalysisType.Rpm,
Analysis: pkgs.map((pkgInfo) => {
return {
Name: pkgInfo.name,
Version: (0, rpm_parser_1.formatRpmPackageVersion)(pkgInfo),
Source: undefined,
Provides: [],
Deps: {},
AutoInstalled: undefined,
Purl: purl(pkgInfo, repositories, osRelease),
};
}),
});
}
exports.analyze = analyze;
function purl(pkg, repos, osRelease) {
let vendor = "";
const qualifiers = {};
if (pkg.module) {
const [modName, modVersion] = pkg.module.split(":");
qualifiers.module = modName + ":" + modVersion;
}
if (repos.length > 0) {
qualifiers.repositories = repos.join(",");
}
if (pkg.epoch) {
qualifiers.epoch = String(pkg.epoch);
}
if (osRelease) {
qualifiers.distro = `${osRelease.name}-${osRelease.version}`;
vendor = osRelease.name;
}
return new packageurl_js_1.PackageURL(types_1.AnalysisType.Rpm.toLowerCase(), vendor, pkg.name, (0, rpm_parser_1.formatRpmPackageVersion)(pkg),
// make sure that we pass in undefined if there are no qualifiers, because
// the packageurl-js library doesn't handle that properly...
Object.keys(qualifiers).length !== 0 ? qualifiers : undefined, undefined).toString();
}
function mapRpmSqlitePackages(targetImage, rpmPackages, repositories, osRelease) {
let analysis = [];
if (rpmPackages) {
analysis = rpmPackages.map((pkg) => {
return {
Name: pkg.name,
Version: (0, rpm_parser_1.formatRpmPackageVersion)(pkg),
Source: undefined,
Provides: [],
Deps: {},
AutoInstalled: undefined,
Purl: purl(pkg, repositories, osRelease),
};
});
}
return {
Image: targetImage,
AnalyzeType: types_1.AnalysisType.Rpm,
Analysis: analysis,
};
}
exports.mapRpmSqlitePackages = mapRpmSqlitePackages;
//# sourceMappingURL=rpm.js.map