UNPKG

snyk-docker-plugin

Version:
69 lines 2.51 kB
"use strict"; 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