snyk 1.1121.0 → 1.1122.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.
@@ -180909,10 +180909,10 @@ const manifest = __webpack_require__(91314);
180909
180909
  const lockFile = __webpack_require__(95531);
180910
180910
  const poetryDepGraphBuilder = __webpack_require__(42393);
180911
180911
  function buildDepGraph(manifestFileContents, lockFileContents, includeDevDependencies = false) {
180912
- const dependencyNames = manifest.getDependencyNamesFrom(manifestFileContents, includeDevDependencies);
180912
+ const dependencies = manifest.getDependenciesFrom(manifestFileContents, includeDevDependencies);
180913
180913
  const pkgDetails = manifest.pkgInfoFrom(manifestFileContents);
180914
180914
  const pkgSpecs = lockFile.packageSpecsFrom(lockFileContents);
180915
- return poetryDepGraphBuilder.build(pkgDetails, dependencyNames, pkgSpecs);
180915
+ return poetryDepGraphBuilder.build(pkgDetails, dependencies, pkgSpecs);
180916
180916
  }
180917
180917
  exports.buildDepGraph = buildDepGraph;
180918
180918
  //# sourceMappingURL=index.js.map
@@ -180958,7 +180958,7 @@ exports.LockFileNotValid = LockFileNotValid;
180958
180958
  "use strict";
180959
180959
 
180960
180960
  Object.defineProperty(exports, "__esModule", ({ value: true }));
180961
- exports.ManifestFileNotValid = exports.getDependencyNamesFrom = exports.pkgInfoFrom = void 0;
180961
+ exports.ManifestFileNotValid = exports.getDependenciesFrom = exports.pkgInfoFrom = void 0;
180962
180962
  const toml = __webpack_require__(5022);
180963
180963
  function pkgInfoFrom(manifestFileContents) {
180964
180964
  let manifest;
@@ -180974,21 +180974,44 @@ function pkgInfoFrom(manifestFileContents) {
180974
180974
  }
180975
180975
  }
180976
180976
  exports.pkgInfoFrom = pkgInfoFrom;
180977
- function getDependencyNamesFrom(manifestFileContents, includeDevDependencies) {
180977
+ function getDependenciesFrom(manifestFileContents, includeDevDependencies) {
180978
180978
  var _a;
180979
180979
  const manifest = toml.parse(manifestFileContents);
180980
180980
  if (!((_a = manifest.tool) === null || _a === void 0 ? void 0 : _a.poetry)) {
180981
180981
  throw new ManifestFileNotValid();
180982
180982
  }
180983
- const dependencies = dependenciesFrom(manifest);
180984
- const devDependencies = includeDevDependencies
180985
- ? devDependenciesFrom(manifest)
180983
+ const dependencies = dependenciesFrom(manifest).map((dep) => ({
180984
+ name: dep,
180985
+ isDev: false,
180986
+ }));
180987
+ const devDependencies = (includeDevDependencies ? devDependenciesFrom(manifest) : []).map((devDep) => ({
180988
+ name: devDep,
180989
+ isDev: true,
180990
+ }));
180991
+ return [...dependencies, ...devDependencies].filter((pkg) => pkg.name != 'python');
180992
+ }
180993
+ exports.getDependenciesFrom = getDependenciesFrom;
180994
+ const getGroupDevDepNames = (obj) => {
180995
+ const groupDevDepNames = Object.values(obj)
180996
+ .map((group) => group.dependencies)
180997
+ .map((depsObj) => Object.keys(depsObj))
180998
+ .reduce((acc, curr) => [...acc, ...curr], []);
180999
+ return groupDevDepNames;
181000
+ };
181001
+ function getAllDevDependencyNames(manifest) {
181002
+ var _a;
181003
+ // pre-v1.2.0 naming convention
181004
+ const devDepsProperty = Object.keys((_a = manifest.tool.poetry['dev-dependencies']) !== null && _a !== void 0 ? _a : []);
181005
+ // post-v1.2.0 dependency groups
181006
+ // https://python-poetry.org/docs/master/managing-dependencies
181007
+ // we will handle all tool.poetry.group.<group> as dev-deps
181008
+ const groupDevDepsProperty = manifest.tool.poetry.group
181009
+ ? getGroupDevDepNames(manifest.tool.poetry.group)
180986
181010
  : [];
180987
- return [...dependencies, ...devDependencies].filter((pkgName) => pkgName != 'python');
181011
+ return [...devDepsProperty, ...groupDevDepsProperty];
180988
181012
  }
180989
- exports.getDependencyNamesFrom = getDependencyNamesFrom;
180990
181013
  function devDependenciesFrom(manifest) {
180991
- return Object.keys(manifest.tool.poetry['dev-dependencies'] || []);
181014
+ return getAllDevDependencyNames(manifest);
180992
181015
  }
180993
181016
  function dependenciesFrom(manifest) {
180994
181017
  return Object.keys(manifest.tool.poetry.dependencies || []);
@@ -181021,18 +181044,19 @@ const IGNORED_DEPENDENCIES = [
181021
181044
  'pip',
181022
181045
  'wheel',
181023
181046
  ];
181024
- function build(pkgDetails, pkgDependencyNames, pkgSpecs) {
181047
+ function build(pkgDetails, dependencies, pkgSpecs) {
181025
181048
  const builder = new dep_graph_1.DepGraphBuilder({ name: 'poetry' }, pkgDetails);
181026
- addDependenciesToGraph(pkgDependencyNames, pkgSpecs, builder.rootNodeId, builder);
181049
+ addDependenciesToGraph(dependencies, pkgSpecs, builder.rootNodeId, builder);
181027
181050
  return builder.build();
181028
181051
  }
181029
181052
  exports.build = build;
181030
- function addDependenciesToGraph(pkgNames, pkgSpecs, parentNodeId, builder) {
181031
- for (const pkgName of pkgNames) {
181032
- addDependenciesForPkg(pkgName, pkgSpecs, parentNodeId, builder);
181053
+ function addDependenciesToGraph(dependencies, pkgSpecs, parentNodeId, builder) {
181054
+ for (const dep of dependencies) {
181055
+ addDependenciesForPkg(dep, pkgSpecs, parentNodeId, builder);
181033
181056
  }
181034
181057
  }
181035
- function addDependenciesForPkg(pkgName, pkgSpecs, parentNodeId, builder) {
181058
+ function addDependenciesForPkg(dependency, pkgSpecs, parentNodeId, builder) {
181059
+ const pkgName = dependency.name;
181036
181060
  if (IGNORED_DEPENDENCIES.includes(pkgName)) {
181037
181061
  return;
181038
181062
  }
@@ -181045,8 +181069,15 @@ function addDependenciesForPkg(pkgName, pkgSpecs, parentNodeId, builder) {
181045
181069
  return;
181046
181070
  }
181047
181071
  const pkgInfo = { name: pkg.name, version: pkg.version };
181048
- builder.addPkgNode(pkgInfo, pkg.name).connectDep(parentNodeId, pkg.name);
181049
- addDependenciesToGraph(pkg.dependencies, pkgSpecs, pkg.name, builder);
181072
+ builder
181073
+ .addPkgNode(pkgInfo, pkg.name, {
181074
+ labels: { scope: dependency.isDev ? 'dev' : 'prod' },
181075
+ })
181076
+ .connectDep(parentNodeId, pkg.name);
181077
+ addDependenciesToGraph(pkg.dependencies.map((dep) => ({
181078
+ name: dep,
181079
+ isDev: dependency.isDev,
181080
+ })), pkgSpecs, pkg.name, builder);
181050
181081
  }
181051
181082
  function isPkgAlreadyInGraph(pkg, builder) {
181052
181083
  return builder
@@ -181223,6 +181254,18 @@ function createAssets() {
181223
181254
  path.join(__dirname, '../../pysrc/pytoml/core.py'),
181224
181255
  path.join(__dirname, '../../pysrc/pytoml/parser.py'),
181225
181256
  path.join(__dirname, '../../pysrc/pytoml/writer.py'),
181257
+ path.join(__dirname, '../../pysrc/packaging/tags.py'),
181258
+ path.join(__dirname, '../../pysrc/packaging/_typing.py'),
181259
+ path.join(__dirname, '../../pysrc/packaging/version.py'),
181260
+ path.join(__dirname, '../../pysrc/packaging/__init__.py'),
181261
+ path.join(__dirname, '../../pysrc/packaging/utils.py'),
181262
+ path.join(__dirname, '../../pysrc/packaging/requirements.py'),
181263
+ path.join(__dirname, '../../pysrc/packaging/_structures.py'),
181264
+ path.join(__dirname, '../../pysrc/packaging/markers.py'),
181265
+ path.join(__dirname, '../../pysrc/packaging/__about__.py'),
181266
+ path.join(__dirname, '../../pysrc/packaging/_compat.py'),
181267
+ path.join(__dirname, '../../pysrc/packaging/specifiers.py'),
181268
+ path.join(__dirname, '../../pysrc/pyparsing.py'),
181226
181269
  ];
181227
181270
  }
181228
181271
  function writeFile(writeFilePath, contents) {