UNPKG

snyk-docker-plugin

Version:
56 lines 2.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.analyzeStatically = void 0; const analyzer = require("./analyzer"); const dependency_tree_1 = require("./dependency-tree"); const image_1 = require("./extractor/image"); const oci_distribution_metadata_1 = require("./extractor/oci-distribution-metadata"); const option_utils_1 = require("./option-utils"); const parser_1 = require("./parser"); const response_builder_1 = require("./response-builder"); async function analyzeStatically(targetImage, dockerfileAnalysis, imageType, imagePath, globsToFind, options, imageName) { var _a, _b; const totalStart = Date.now(); const staticAnalysis = await analyzer.analyzeStatically(targetImage, dockerfileAnalysis, imageType, imagePath, globsToFind, options); const depTreeStart = Date.now(); const parsedAnalysisResult = (0, parser_1.parseAnalysisResults)(targetImage, staticAnalysis); /** @deprecated Should try to build a dependency graph instead. */ const dependenciesTree = (0, dependency_tree_1.buildTree)(targetImage, parsedAnalysisResult.packageFormat, parsedAnalysisResult.depInfosList, parsedAnalysisResult.targetOS); const analysis = { ...staticAnalysis, depTree: dependenciesTree, imageId: parsedAnalysisResult.imageId, imageLayers: parsedAnalysisResult.imageLayers, packageFormat: parsedAnalysisResult.packageFormat, }; const excludeBaseImageVulns = (0, option_utils_1.isTrue)(options["exclude-base-image-vulns"]); const names = (0, image_1.getImageNames)(options, imageName); let ociDistributionMetadata; if (options.imageNameAndTag && ((_a = options.digests) === null || _a === void 0 ? void 0 : _a.manifest)) { ociDistributionMetadata = (0, oci_distribution_metadata_1.constructOCIDisributionMetadata)({ imageName: options.imageNameAndTag, manifestDigest: options.digests.manifest, indexDigest: options.digests.index, }); } const response = await (0, response_builder_1.buildResponse)(analysis, dockerfileAnalysis, excludeBaseImageVulns, names, ociDistributionMetadata, options); const depTreeBuildingMs = Date.now() - depTreeStart; const totalMs = Date.now() - totalStart; const timings = { ...staticAnalysis.timings, depTreeBuildingMs, totalMs, }; return { ...response, analytics: [ ...((_b = response.analytics) !== null && _b !== void 0 ? _b : []), { name: "containerPluginTimings", data: timings, }, ], }; } exports.analyzeStatically = analyzeStatically; //# sourceMappingURL=static.js.map