snyk 1.1121.0 → 1.1123.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/95.index.js +88 -31
- package/dist/cli/95.index.js.map +1 -1
- package/dist/cli/thirdPartyNotice.json +6 -6
- package/package.json +1 -1
- package/pysrc/packaging/LICENSE +3 -0
- package/pysrc/packaging/LICENSE.APACHE +177 -0
- package/pysrc/packaging/LICENSE.BSD +23 -0
- package/pysrc/packaging/__about__.py +27 -0
- package/pysrc/packaging/__init__.py +26 -0
- package/pysrc/packaging/_compat.py +38 -0
- package/pysrc/packaging/_structures.py +86 -0
- package/pysrc/packaging/_typing.py +48 -0
- package/pysrc/packaging/markers.py +336 -0
- package/pysrc/packaging/py.typed +0 -0
- package/pysrc/packaging/requirements.py +160 -0
- package/pysrc/packaging/specifiers.py +864 -0
- package/pysrc/packaging/tags.py +866 -0
- package/pysrc/packaging/utils.py +138 -0
- package/pysrc/packaging/version.py +556 -0
- package/pysrc/pyparsing.py +7107 -0
- package/pysrc/requirements/requirement.py +21 -5
- package/src/generated/sha256sums.txt +10 -10
- package/src/generated/version +1 -1
- package/wrapper_dist/generated/sha256sums.txt +10 -10
- package/wrapper_dist/generated/version +1 -1
package/dist/cli/95.index.js
CHANGED
|
@@ -132618,6 +132618,7 @@ exports.isSupportedSize = exports.DECOMPRESSING_IGNORE_DIR = exports.DECOMPRESSI
|
|
|
132618
132618
|
const os = __webpack_require__(12087);
|
|
132619
132619
|
const process_1 = __webpack_require__(61765);
|
|
132620
132620
|
exports.isWin = process_1.platform === 'win32';
|
|
132621
|
+
// Current implementation supports up to 2GB per file
|
|
132621
132622
|
exports.MAX_SUPPORTED_FILE_SIZE = 2 * 1024 * 1024 * 1024 - 1;
|
|
132622
132623
|
exports.HASHING_CONCURRENCY_LEVEL = os.cpus().length;
|
|
132623
132624
|
exports.DECOMPRESSING_CONCURRENCY_LEVEL = os.cpus().length * 8;
|
|
@@ -132742,20 +132743,14 @@ function displayIssues(depGraph, issues, issuesData) {
|
|
|
132742
132743
|
const issuesCount = issues.length == 1 ? '1 issue' : `${issues.length} issues`;
|
|
132743
132744
|
const hasIssues = issues.length > 0;
|
|
132744
132745
|
if (hasIssues) {
|
|
132745
|
-
|
|
132746
|
-
|
|
132747
|
-
|
|
132748
|
-
|
|
132749
|
-
|
|
132750
|
-
|
|
132751
|
-
|
|
132752
|
-
const introducedThrough = common_1.leftPad(`Introduced through: ${dependencyName}`);
|
|
132753
|
-
const urlText = common_1.leftPad(`URL: ${vulnDetailsUrl}`);
|
|
132754
|
-
result.push(severityAndTitle);
|
|
132755
|
-
result.push(introducedThrough);
|
|
132756
|
-
result.push(urlText);
|
|
132746
|
+
const vulnerabilityIssues = issues.filter((issue) => issue.type === 'vulnerability');
|
|
132747
|
+
if (vulnerabilityIssues.length > 0) {
|
|
132748
|
+
prepareResults(result, vulnerabilityIssues, issuesData, 'Issues:');
|
|
132749
|
+
}
|
|
132750
|
+
const licenseIssues = issues.filter((issue) => issue.type === 'license');
|
|
132751
|
+
if (licenseIssues.length > 0) {
|
|
132752
|
+
prepareResults(result, licenseIssues, issuesData, 'License issues:');
|
|
132757
132753
|
}
|
|
132758
|
-
result.push('');
|
|
132759
132754
|
}
|
|
132760
132755
|
const issuesFound = hasIssues
|
|
132761
132756
|
? chalk.redBright(issuesCount)
|
|
@@ -132767,6 +132762,22 @@ function displayIssues(depGraph, issues, issuesData) {
|
|
|
132767
132762
|
return result;
|
|
132768
132763
|
}
|
|
132769
132764
|
exports.displayIssues = displayIssues;
|
|
132765
|
+
function prepareResults(result, issues, issuesData, typeTitle) {
|
|
132766
|
+
result.push(chalk.bold(typeTitle));
|
|
132767
|
+
for (const { pkgName: name, pkgVersion: version, issueId: vulnId, } of issues) {
|
|
132768
|
+
const { title, severity } = issuesData[vulnId];
|
|
132769
|
+
const color = common_1.getColorBySeverity(severity);
|
|
132770
|
+
const severityAndTitle = color.bold(`\n ✗ [${common_1.capitalize(severity)}] ${title}`);
|
|
132771
|
+
const dependencyName = computeDependencyName(name, version);
|
|
132772
|
+
const vulnDetailsUrl = `https://security.snyk.io/vuln/${vulnId}`;
|
|
132773
|
+
const introducedThrough = common_1.leftPad(`Introduced through: ${dependencyName}`, 3);
|
|
132774
|
+
const urlText = common_1.leftPad(`URL: ${vulnDetailsUrl}`, 3);
|
|
132775
|
+
result.push(severityAndTitle);
|
|
132776
|
+
result.push(introducedThrough);
|
|
132777
|
+
result.push(urlText);
|
|
132778
|
+
}
|
|
132779
|
+
result.push('');
|
|
132780
|
+
}
|
|
132770
132781
|
function displayErrors(errors) {
|
|
132771
132782
|
const result = [];
|
|
132772
132783
|
if (errors.length) {
|
|
@@ -132813,6 +132824,9 @@ async function display(scanResults, testResults, errors, options) {
|
|
|
132813
132824
|
result = result.concat(display_1.displaySignatures(scanResults));
|
|
132814
132825
|
}
|
|
132815
132826
|
for (const testResult of testResults) {
|
|
132827
|
+
testResult.issues.forEach((issue) => (issue.type = issue.issueId.startsWith('snyk:lic:unmanaged:')
|
|
132828
|
+
? 'license'
|
|
132829
|
+
: 'vulnerability'));
|
|
132816
132830
|
const depGraph = dep_graph_1.createFromJSON(testResult.depGraphData);
|
|
132817
132831
|
const [dependencies, issues] = display_1.selectDisplayStrategy(options, depGraph, testResult);
|
|
132818
132832
|
if (testResult.depGraphData.pkgs.length > 1) {
|
|
@@ -180909,10 +180923,10 @@ const manifest = __webpack_require__(91314);
|
|
|
180909
180923
|
const lockFile = __webpack_require__(95531);
|
|
180910
180924
|
const poetryDepGraphBuilder = __webpack_require__(42393);
|
|
180911
180925
|
function buildDepGraph(manifestFileContents, lockFileContents, includeDevDependencies = false) {
|
|
180912
|
-
const
|
|
180926
|
+
const dependencies = manifest.getDependenciesFrom(manifestFileContents, includeDevDependencies);
|
|
180913
180927
|
const pkgDetails = manifest.pkgInfoFrom(manifestFileContents);
|
|
180914
180928
|
const pkgSpecs = lockFile.packageSpecsFrom(lockFileContents);
|
|
180915
|
-
return poetryDepGraphBuilder.build(pkgDetails,
|
|
180929
|
+
return poetryDepGraphBuilder.build(pkgDetails, dependencies, pkgSpecs);
|
|
180916
180930
|
}
|
|
180917
180931
|
exports.buildDepGraph = buildDepGraph;
|
|
180918
180932
|
//# sourceMappingURL=index.js.map
|
|
@@ -180958,7 +180972,7 @@ exports.LockFileNotValid = LockFileNotValid;
|
|
|
180958
180972
|
"use strict";
|
|
180959
180973
|
|
|
180960
180974
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
180961
|
-
exports.ManifestFileNotValid = exports.
|
|
180975
|
+
exports.ManifestFileNotValid = exports.getDependenciesFrom = exports.pkgInfoFrom = void 0;
|
|
180962
180976
|
const toml = __webpack_require__(5022);
|
|
180963
180977
|
function pkgInfoFrom(manifestFileContents) {
|
|
180964
180978
|
let manifest;
|
|
@@ -180974,21 +180988,44 @@ function pkgInfoFrom(manifestFileContents) {
|
|
|
180974
180988
|
}
|
|
180975
180989
|
}
|
|
180976
180990
|
exports.pkgInfoFrom = pkgInfoFrom;
|
|
180977
|
-
function
|
|
180991
|
+
function getDependenciesFrom(manifestFileContents, includeDevDependencies) {
|
|
180978
180992
|
var _a;
|
|
180979
180993
|
const manifest = toml.parse(manifestFileContents);
|
|
180980
180994
|
if (!((_a = manifest.tool) === null || _a === void 0 ? void 0 : _a.poetry)) {
|
|
180981
180995
|
throw new ManifestFileNotValid();
|
|
180982
180996
|
}
|
|
180983
|
-
const dependencies = dependenciesFrom(manifest)
|
|
180984
|
-
|
|
180985
|
-
|
|
180997
|
+
const dependencies = dependenciesFrom(manifest).map((dep) => ({
|
|
180998
|
+
name: dep,
|
|
180999
|
+
isDev: false,
|
|
181000
|
+
}));
|
|
181001
|
+
const devDependencies = (includeDevDependencies ? devDependenciesFrom(manifest) : []).map((devDep) => ({
|
|
181002
|
+
name: devDep,
|
|
181003
|
+
isDev: true,
|
|
181004
|
+
}));
|
|
181005
|
+
return [...dependencies, ...devDependencies].filter((pkg) => pkg.name != 'python');
|
|
181006
|
+
}
|
|
181007
|
+
exports.getDependenciesFrom = getDependenciesFrom;
|
|
181008
|
+
const getGroupDevDepNames = (obj) => {
|
|
181009
|
+
const groupDevDepNames = Object.values(obj)
|
|
181010
|
+
.map((group) => group.dependencies)
|
|
181011
|
+
.map((depsObj) => Object.keys(depsObj))
|
|
181012
|
+
.reduce((acc, curr) => [...acc, ...curr], []);
|
|
181013
|
+
return groupDevDepNames;
|
|
181014
|
+
};
|
|
181015
|
+
function getAllDevDependencyNames(manifest) {
|
|
181016
|
+
var _a;
|
|
181017
|
+
// pre-v1.2.0 naming convention
|
|
181018
|
+
const devDepsProperty = Object.keys((_a = manifest.tool.poetry['dev-dependencies']) !== null && _a !== void 0 ? _a : []);
|
|
181019
|
+
// post-v1.2.0 dependency groups
|
|
181020
|
+
// https://python-poetry.org/docs/master/managing-dependencies
|
|
181021
|
+
// we will handle all tool.poetry.group.<group> as dev-deps
|
|
181022
|
+
const groupDevDepsProperty = manifest.tool.poetry.group
|
|
181023
|
+
? getGroupDevDepNames(manifest.tool.poetry.group)
|
|
180986
181024
|
: [];
|
|
180987
|
-
return [...
|
|
181025
|
+
return [...devDepsProperty, ...groupDevDepsProperty];
|
|
180988
181026
|
}
|
|
180989
|
-
exports.getDependencyNamesFrom = getDependencyNamesFrom;
|
|
180990
181027
|
function devDependenciesFrom(manifest) {
|
|
180991
|
-
return
|
|
181028
|
+
return getAllDevDependencyNames(manifest);
|
|
180992
181029
|
}
|
|
180993
181030
|
function dependenciesFrom(manifest) {
|
|
180994
181031
|
return Object.keys(manifest.tool.poetry.dependencies || []);
|
|
@@ -181021,18 +181058,19 @@ const IGNORED_DEPENDENCIES = [
|
|
|
181021
181058
|
'pip',
|
|
181022
181059
|
'wheel',
|
|
181023
181060
|
];
|
|
181024
|
-
function build(pkgDetails,
|
|
181061
|
+
function build(pkgDetails, dependencies, pkgSpecs) {
|
|
181025
181062
|
const builder = new dep_graph_1.DepGraphBuilder({ name: 'poetry' }, pkgDetails);
|
|
181026
|
-
addDependenciesToGraph(
|
|
181063
|
+
addDependenciesToGraph(dependencies, pkgSpecs, builder.rootNodeId, builder);
|
|
181027
181064
|
return builder.build();
|
|
181028
181065
|
}
|
|
181029
181066
|
exports.build = build;
|
|
181030
|
-
function addDependenciesToGraph(
|
|
181031
|
-
for (const
|
|
181032
|
-
addDependenciesForPkg(
|
|
181067
|
+
function addDependenciesToGraph(dependencies, pkgSpecs, parentNodeId, builder) {
|
|
181068
|
+
for (const dep of dependencies) {
|
|
181069
|
+
addDependenciesForPkg(dep, pkgSpecs, parentNodeId, builder);
|
|
181033
181070
|
}
|
|
181034
181071
|
}
|
|
181035
|
-
function addDependenciesForPkg(
|
|
181072
|
+
function addDependenciesForPkg(dependency, pkgSpecs, parentNodeId, builder) {
|
|
181073
|
+
const pkgName = dependency.name;
|
|
181036
181074
|
if (IGNORED_DEPENDENCIES.includes(pkgName)) {
|
|
181037
181075
|
return;
|
|
181038
181076
|
}
|
|
@@ -181045,8 +181083,15 @@ function addDependenciesForPkg(pkgName, pkgSpecs, parentNodeId, builder) {
|
|
|
181045
181083
|
return;
|
|
181046
181084
|
}
|
|
181047
181085
|
const pkgInfo = { name: pkg.name, version: pkg.version };
|
|
181048
|
-
builder
|
|
181049
|
-
|
|
181086
|
+
builder
|
|
181087
|
+
.addPkgNode(pkgInfo, pkg.name, {
|
|
181088
|
+
labels: { scope: dependency.isDev ? 'dev' : 'prod' },
|
|
181089
|
+
})
|
|
181090
|
+
.connectDep(parentNodeId, pkg.name);
|
|
181091
|
+
addDependenciesToGraph(pkg.dependencies.map((dep) => ({
|
|
181092
|
+
name: dep,
|
|
181093
|
+
isDev: dependency.isDev,
|
|
181094
|
+
})), pkgSpecs, pkg.name, builder);
|
|
181050
181095
|
}
|
|
181051
181096
|
function isPkgAlreadyInGraph(pkg, builder) {
|
|
181052
181097
|
return builder
|
|
@@ -181223,6 +181268,18 @@ function createAssets() {
|
|
|
181223
181268
|
path.join(__dirname, '../../pysrc/pytoml/core.py'),
|
|
181224
181269
|
path.join(__dirname, '../../pysrc/pytoml/parser.py'),
|
|
181225
181270
|
path.join(__dirname, '../../pysrc/pytoml/writer.py'),
|
|
181271
|
+
path.join(__dirname, '../../pysrc/packaging/tags.py'),
|
|
181272
|
+
path.join(__dirname, '../../pysrc/packaging/_typing.py'),
|
|
181273
|
+
path.join(__dirname, '../../pysrc/packaging/version.py'),
|
|
181274
|
+
path.join(__dirname, '../../pysrc/packaging/__init__.py'),
|
|
181275
|
+
path.join(__dirname, '../../pysrc/packaging/utils.py'),
|
|
181276
|
+
path.join(__dirname, '../../pysrc/packaging/requirements.py'),
|
|
181277
|
+
path.join(__dirname, '../../pysrc/packaging/_structures.py'),
|
|
181278
|
+
path.join(__dirname, '../../pysrc/packaging/markers.py'),
|
|
181279
|
+
path.join(__dirname, '../../pysrc/packaging/__about__.py'),
|
|
181280
|
+
path.join(__dirname, '../../pysrc/packaging/_compat.py'),
|
|
181281
|
+
path.join(__dirname, '../../pysrc/packaging/specifiers.py'),
|
|
181282
|
+
path.join(__dirname, '../../pysrc/pyparsing.py'),
|
|
181226
181283
|
];
|
|
181227
181284
|
}
|
|
181228
181285
|
function writeFile(writeFilePath, contents) {
|