snyk-nuget-plugin 1.27.0 → 1.29.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ![Snyk logo](https://snyk.io/style/asset/logo/snyk-print.svg)
2
2
 
3
- [![CircleCI](https://dl.circleci.com/status-badge/img/gh/snyk/snyk-nuget-plugin/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/snyk/snyk-nuget-plugin/tree/master)
3
+ [![CircleCI](https://dl.circleci.com/status-badge/img/gh/snyk/snyk-nuget-plugin/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/snyk/snyk-nuget-plugin/tree/main)
4
4
 
5
5
  ***
6
6
 
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.inspect = void 0;
4
- const path = require("path");
5
4
  const nugetParser = require("./nuget-parser");
5
+ const path = require("path");
6
6
  const paketParser = require("snyk-paket-parser");
7
- const errors_1 = require("./errors");
8
7
  const types_1 = require("./nuget-parser/types");
8
+ const errors_1 = require("./errors");
9
9
  function determineManifestType(filename) {
10
10
  switch (true) {
11
11
  case /project.json$/.test(filename): {
@@ -56,9 +56,11 @@ async function inspect(root, targetFile, options) {
56
56
  }
57
57
  if (options['dotnet-runtime-resolution']) {
58
58
  if (manifestType !== types_1.ManifestType.DOTNET_CORE) {
59
- return Promise.reject(new Error('runtime resolution beta flag is currently only applicable for .net core projects'));
59
+ return Promise.reject(new errors_1.FileNotProcessableError(`runtime resolution flag is currently only supported for: .NET versions 5 and higher, all versions of .NET Core and all versions of .NET Standard projects. Supplied project type was parsed as ${manifestType}.`));
60
60
  }
61
- const result = await nugetParser.buildDepGraphFromFiles(root, targetFile, manifestType, options['assets-project-name'], options['project-name-prefix']);
61
+ // TODO: Replaced by a CLI argument when project is stabilized
62
+ const useRuntimeDependencies = true;
63
+ const result = await nugetParser.buildDepGraphFromFiles(root, targetFile, manifestType, options['assets-project-name'], useRuntimeDependencies, options['project-name-prefix']);
62
64
  return {
63
65
  dependencyGraph: result.dependencyGraph,
64
66
  package: 'n/a',
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ async function validate() {
36
36
  }
37
37
  exports.validate = validate;
38
38
  async function restore(projectPath) {
39
- const command = `dotnet restore ${projectPath}`;
39
+ const command = `dotnet restore --no-cache ${projectPath}`;
40
40
  await handle('restore', command);
41
41
  return;
42
42
  }
@@ -64,12 +64,12 @@ async function publish(projectPath) {
64
64
  const publishDirLine = response.stdout
65
65
  .split(/[\r\n]+/)
66
66
  // TODO: For multiple target frameworks, replace `find` with a map or something of that kind to return more than the first.
67
- // The first thing to get published ought to be the project's own .dll.
67
+ // The first thing to get published ought to be the project's own .dll or .exe file, depending on the architecture.
68
68
  // E.g., something like:
69
69
  // dotnet_6 -> /foo/bar/project/bin/Debug/net6.0/osx-arm64/project_name.dll
70
70
  // Either way, since we're forcing a publish of a self-contained project, all .dlls should be placed there.
71
71
  // This logic does seem a bit popsicle and duct-tape ish, but I have yet to find a more stable solution. PRs welcome!
72
- .find((line) => line.endsWith('.dll'));
72
+ .find((line) => line.endsWith('.dll') || line.endsWith('.exe'));
73
73
  if (!publishDirLine) {
74
74
  const err = `Could not find a valid publish path while reading stdout: ${response.stdout}`;
75
75
  debug(err);
@@ -1 +1 @@
1
- {"version":3,"file":"dotnet.js","sourceRoot":"","sources":["../../../lib/nuget-parser/cli/dotnet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dotnet.js","sourceRoot":"","sources":["../../../lib/nuget-parser/cli/dotnet.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,qCAAqC;AACrC,8CAA8C;AAC9C,yCAA+C;AAC/C,6BAA6B;AAE7B,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAElC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAO/C,KAAK,UAAU,MAAM,CAAC,SAAiB,EAAE,OAAe;IACtD,KAAK,CAAC,2BAA2B,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;IAE1D,IAAI;QACF,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;IAAC,OAAO,KAAc,EAAE;QACvB,IACE,CAAC,CACC,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,QAAQ,IAAI,KAAK;YACjB,QAAQ,IAAI,KAAK,CAClB,EACD;YACA,MAAM,IAAI,wBAAe,CACvB,UAAU,SAAS,uBAAuB,KAAK,EAAE,CAClD,CAAC;SACH;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QAC7C,MAAM,IAAI,wBAAe,CACvB,UAAU,SAAS,uBAAuB,OAAO,EAAE,CACpD,CAAC;KACH;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ;IAC5B,MAAM,OAAO,GAAG,kBAAkB,CAAC;IAEnC,IAAI;QACF,MAAM,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KAClC;IAAC,OAAO,KAAc,EAAE;QACvB,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC7D,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AATD,4BASC;AAEM,KAAK,UAAU,OAAO,CAAC,WAAmB;IAC/C,MAAM,OAAO,GAAG,6BAA6B,WAAW,EAAE,CAAC;IAC3D,MAAM,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO;AACT,CAAC;AAJD,0BAIC;AAEM,KAAK,UAAU,OAAO,CAAC,WAAmB;;IAC/C,IAAI,OAAO,GAAG,0BAA0B,CAAC;IACzC,sGAAsG;IACtG,OAAO,IAAI,OAAO,CAAC;IACnB,0EAA0E;IAC1E,oFAAoF;IACpF,OAAO,IAAI,WAAW,CAAC;IAEvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAElD,wGAAwG;IACxG,0GAA0G;IAC1G,8GAA8G;IAC9G,eAAe;IACf,kHAAkH;IAClH,6GAA6G;IAC7G,6GAA6G;IAC7G,yCAAyC;IAEzC,sHAAsH;IACtH,iHAAiH;IACjH,gEAAgE;IAChE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM;SACnC,KAAK,CAAC,SAAS,CAAC;QACjB,2HAA2H;QAC3H,mHAAmH;QACnH,wBAAwB;QACxB,2EAA2E;QAC3E,2GAA2G;QAC3G,qHAAqH;SACpH,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAElE,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,GAAG,GAAG,6DAA6D,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3F,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,IAAI,wBAAe,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;KACnE;IAED,kHAAkH;IAClH,MAAM,CAAC,EAAE,gBAAgB,CAAC,GAAG,MAAA,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;IAC9D,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,GAAG,GAAG,gEAAgE,cAAc,EAAE,CAAC;QAC7F,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,IAAI,wBAAe,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;KACnE;IAED,+GAA+G;IAC/G,uDAAuD;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC;AAlDD,0BAkDC"}
@@ -12,6 +12,8 @@ const projectJsonParser = require("./parsers/project-json-parser");
12
12
  const packagesConfigParser = require("./parsers/packages-config-parser");
13
13
  const errors_1 = require("../errors");
14
14
  const types_1 = require("./types");
15
+ const dotnet = require("./cli/dotnet");
16
+ const runtimeAssembly = require("./runtime-assembly");
15
17
  const debug = debugModule('snyk');
16
18
  const PARSERS = {
17
19
  'dotnet-core': {
@@ -53,7 +55,7 @@ function getFileContents(fileContentPath) {
53
55
  throw new errors_1.FileNotProcessableError(error);
54
56
  }
55
57
  }
56
- async function buildDepGraphFromFiles(root, targetFile, manifestType, useProjectNameFromAssetsFile, projectNamePrefix) {
58
+ async function buildDepGraphFromFiles(root, targetFile, manifestType, useProjectNameFromAssetsFile, useRuntimeDependencies, projectNamePrefix) {
57
59
  var _a, _b;
58
60
  const safeRoot = root || '.';
59
61
  const safeTargetFile = targetFile || '.';
@@ -61,21 +63,36 @@ async function buildDepGraphFromFiles(root, targetFile, manifestType, useProject
61
63
  const fileContent = getFileContents(fileContentPath);
62
64
  const projectRootFolder = path.resolve(fileContentPath, '../../');
63
65
  const targetFramework = await csProjParser.getTargetFrameworksFromProjFile(projectRootFolder);
66
+ if (!targetFramework) {
67
+ throw new errors_1.FileNotProcessableError(`unable to detect a target framework in ${projectRootFolder}, a valid one is needed to continue down this path.`);
68
+ }
64
69
  const parser = PARSERS['dotnet-core-v2'];
65
70
  const manifest = await parser.fileContentParser.parse(fileContent);
66
71
  let resolvedProjectName = getRootName(root, projectRootFolder, projectNamePrefix);
72
+ const projectNameFromManifestFile = (_b = (_a = manifest === null || manifest === void 0 ? void 0 : manifest.project) === null || _a === void 0 ? void 0 : _a.restore) === null || _b === void 0 ? void 0 : _b.projectName;
67
73
  if (manifestType === types_1.ManifestType.DOTNET_CORE &&
68
74
  useProjectNameFromAssetsFile) {
69
- const projectName = (_b = (_a = manifest === null || manifest === void 0 ? void 0 : manifest.project) === null || _a === void 0 ? void 0 : _a.restore) === null || _b === void 0 ? void 0 : _b.projectName;
70
- if (projectName) {
71
- resolvedProjectName = projectName;
75
+ if (projectNameFromManifestFile) {
76
+ resolvedProjectName = projectNameFromManifestFile;
72
77
  }
73
78
  else {
74
- debug("project.assets.json file doesn't contain a value for 'projectName'. Using default value: " +
75
- resolvedProjectName);
79
+ debug(`project.assets.json file doesn't contain a value for 'projectName'. Using default value: ${resolvedProjectName}`);
80
+ }
81
+ }
82
+ let assemblyVersions = {};
83
+ if (useRuntimeDependencies) {
84
+ if (!runtimeAssembly.isSupported(targetFramework)) {
85
+ throw new errors_1.FileNotProcessableError(`runtime resolution flag is currently only supported for: .NET versions 5 and higher, all versions of .NET Core and all versions of .NET Standard projects. Supplied versions was parsed as: ${targetFramework === null || targetFramework === void 0 ? void 0 : targetFramework.framework}.`);
76
86
  }
87
+ // Ensure `dotnet` is installed on the system or fail trying.
88
+ await dotnet.validate();
89
+ // Run `dotnet publish` to create a self-contained publishable binary with included .dlls for assembly version inspection.
90
+ const publishDir = await dotnet.publish(projectRootFolder);
91
+ // Then inspect the dependency graph for the runtimepackage's assembly versions.
92
+ const depsFile = path.resolve(publishDir, `${projectNameFromManifestFile}.deps.json`);
93
+ assemblyVersions = runtimeAssembly.generateRuntimeAssemblies(depsFile);
77
94
  }
78
- const depGraph = parser.depParser.parse(resolvedProjectName, manifest);
95
+ const depGraph = parser.depParser.parse(resolvedProjectName, manifest, assemblyVersions);
79
96
  return {
80
97
  dependencyGraph: depGraph,
81
98
  targetFramework: targetFramework === null || targetFramework === void 0 ? void 0 : targetFramework.original,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/nuget-parser/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/nuget-parser/index.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,19 @@ const parseXML = require("xml2js");
8
8
  const debugModule = require("debug");
9
9
  const framework_1 = require("../framework");
10
10
  const debug = debugModule('snyk');
11
+ function findFile(rootDir, filter) {
12
+ if (!fs.existsSync(rootDir)) {
13
+ throw new errors_1.FileNotFoundError('No such path: ' + rootDir);
14
+ }
15
+ const files = fs.readdirSync(rootDir);
16
+ for (const file of files) {
17
+ const filename = path.resolve(rootDir, file);
18
+ if (filter.test(filename)) {
19
+ return filename;
20
+ }
21
+ }
22
+ return;
23
+ }
11
24
  async function getTargetFrameworksFromProjFile(rootDir) {
12
25
  return new Promise((resolve, reject) => {
13
26
  debug('Looking for your .csproj file in ' + rootDir);
@@ -53,16 +66,4 @@ async function getTargetFrameworksFromProjFile(rootDir) {
53
66
  });
54
67
  }
55
68
  exports.getTargetFrameworksFromProjFile = getTargetFrameworksFromProjFile;
56
- function findFile(rootDir, filter) {
57
- if (!fs.existsSync(rootDir)) {
58
- throw new errors_1.FileNotFoundError('No such path: ' + rootDir);
59
- }
60
- const files = fs.readdirSync(rootDir);
61
- for (const file of files) {
62
- const filename = path.resolve(rootDir, file);
63
- if (filter.test(filename)) {
64
- return filename;
65
- }
66
- }
67
- }
68
69
  //# sourceMappingURL=csproj-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"csproj-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/csproj-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"csproj-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/csproj-parser.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,13 @@ function initFreqDepsDict() {
17
17
  freqDeps['System.Reflection'] = false;
18
18
  freqDeps['System.Globalization'] = false;
19
19
  }
20
+ function isScanned(nodes, pkg) {
21
+ const node = nodes.find((elem) => elem.name === pkg.name && elem.version === pkg.version);
22
+ return !!node;
23
+ }
24
+ function isFreqDep(packageName) {
25
+ return packageName in freqDeps;
26
+ }
20
27
  function pick(obj, keys) {
21
28
  const pickedObj = {};
22
29
  Object.keys(obj).forEach((k) => {
@@ -31,46 +38,6 @@ function convertFromPathSyntax(path) {
31
38
  name = name.split('\\').join('@'); // windows
32
39
  return name;
33
40
  }
34
- function collectFlatList(targetObj) {
35
- const names = Object.keys(targetObj);
36
- return names.map((name) => {
37
- name = convertFromPathSyntax(name);
38
- return name;
39
- });
40
- }
41
- function buildBfsTree(targetDeps, roots) {
42
- let queue = [...roots];
43
- const nodes = [];
44
- const links = [];
45
- while (queue.length > 0) {
46
- const dep = queue.shift();
47
- const foundPackage = findPackage(targetDeps, dep);
48
- if (foundPackage && !isScanned(nodes, foundPackage)) {
49
- nodes.push(foundPackage);
50
- if (foundPackage.dependencies) {
51
- addPackageDepLinks(links, foundPackage);
52
- queue = queue.concat(Object.keys(foundPackage.dependencies));
53
- }
54
- }
55
- }
56
- return constructTree(roots, nodes, links);
57
- }
58
- function isScanned(nodes, pkg) {
59
- const node = nodes.find((elem) => elem.name === pkg.name && elem.version === pkg.version);
60
- return !!node;
61
- }
62
- function isFreqDep(packageName) {
63
- return packageName in freqDeps;
64
- }
65
- function addPackageDepLinks(links, pkg) {
66
- if (pkg && pkg.dependencies) {
67
- const from = { name: pkg.name, version: pkg.version };
68
- for (const name of Object.keys(pkg.dependencies)) {
69
- const to = { name, version: pkg.dependencies[name] };
70
- links.push({ from, to });
71
- }
72
- }
73
- }
74
41
  function findPackage(targetDeps, depName) {
75
42
  debug(`Looking for ${depName}`);
76
43
  const depNameLowerCase = depName.toLowerCase();
@@ -101,7 +68,9 @@ function constructTree(roots, nodes, links) {
101
68
  const parentNode = treeMap[parentName];
102
69
  const childNode = treeMap[childName];
103
70
  if (!isFreqDep(childName)) {
104
- parentNode.dependencies[childName] = Object.assign({}, childNode);
71
+ parentNode.dependencies[childName] = {
72
+ ...childNode,
73
+ };
105
74
  }
106
75
  }
107
76
  const tree = pick(treeMap, roots);
@@ -115,6 +84,39 @@ function constructTree(roots, nodes, links) {
115
84
  }
116
85
  return tree;
117
86
  }
87
+ function collectFlatList(targetObj) {
88
+ const names = Object.keys(targetObj);
89
+ return names.map((name) => {
90
+ name = convertFromPathSyntax(name);
91
+ return name;
92
+ });
93
+ }
94
+ function addPackageDepLinks(links, pkg) {
95
+ if (pkg && pkg.dependencies) {
96
+ const from = { name: pkg.name, version: pkg.version };
97
+ for (const name of Object.keys(pkg.dependencies)) {
98
+ const to = { name, version: pkg.dependencies[name] };
99
+ links.push({ from, to });
100
+ }
101
+ }
102
+ }
103
+ function buildBfsTree(targetDeps, roots) {
104
+ let queue = [...roots];
105
+ const nodes = [];
106
+ const links = [];
107
+ while (queue.length > 0) {
108
+ const dep = queue.shift();
109
+ const foundPackage = findPackage(targetDeps, dep);
110
+ if (foundPackage && !isScanned(nodes, foundPackage)) {
111
+ nodes.push(foundPackage);
112
+ if (foundPackage.dependencies) {
113
+ addPackageDepLinks(links, foundPackage);
114
+ queue = queue.concat(Object.keys(foundPackage.dependencies));
115
+ }
116
+ }
117
+ }
118
+ return constructTree(roots, nodes, links);
119
+ }
118
120
  function getFrameworkToRun(manifest) {
119
121
  var _a;
120
122
  const frameworks = (_a = manifest === null || manifest === void 0 ? void 0 : manifest.project) === null || _a === void 0 ? void 0 : _a.frameworks;
@@ -1 +1 @@
1
- {"version":3,"file":"dotnet-core-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/dotnet-core-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dotnet-core-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/dotnet-core-parser.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parse = void 0;
4
4
  const debugModule = require("debug");
5
5
  const dep_graph_1 = require("@snyk/dep-graph");
6
+ const errors_1 = require("../../errors");
6
7
  const debug = debugModule('snyk');
7
8
  // Dependencies that starts with these are discarded
8
9
  const FILTERED_DEPENDENCY_PREFIX = ['runtime'];
@@ -11,22 +12,33 @@ function recursivelyPopulateNodes(depGraphBuilder, targetDeps, node, runtimeAsse
11
12
  for (const depNode of Object.entries(node.dependencies || {})) {
12
13
  const localVisited = visited || new Set();
13
14
  const name = depNode[0];
14
- let version = depNode[1];
15
- if (runtimeAssembly && name in runtimeAssembly) {
16
- version = runtimeAssembly[name];
17
- }
18
- const childNode = Object.assign(Object.assign({}, targetDeps[`${name}/${version}`]), { name,
19
- version });
15
+ const version = depNode[1];
16
+ const childNode = {
17
+ ...targetDeps[`${name}/${version}`],
18
+ name,
19
+ version,
20
+ };
20
21
  const childId = `${childNode.name}@${childNode.version}`;
22
+ // If we've supplied runtime assembly versions for self-contained dlls, overwrite the dependency version
23
+ // we've found in the graph with those from the runtime assembly, as they take precedence.
24
+ let assemblyVersion = version;
25
+ if (runtimeAssembly) {
26
+ // The RuntimeAssembly type contains the name with a .dll suffix, as this is how .NET represents them in the
27
+ // dependency file. This must be stripped in order to match the elements during depGraph construction.
28
+ const dll = `${name}.dll`;
29
+ if (dll in runtimeAssembly) {
30
+ assemblyVersion = runtimeAssembly[dll];
31
+ }
32
+ }
21
33
  if (localVisited.has(childId)) {
22
34
  const prunedId = `${childId}:pruned`;
23
- depGraphBuilder.addPkgNode({ name: childNode.name, version: childNode.version }, prunedId, {
35
+ depGraphBuilder.addPkgNode({ name: childNode.name, version: assemblyVersion }, prunedId, {
24
36
  labels: { pruned: 'true' },
25
37
  });
26
38
  depGraphBuilder.connectDep(parentId, prunedId);
27
39
  continue;
28
40
  }
29
- depGraphBuilder.addPkgNode({ name: childNode.name, version: childNode.version }, childId);
41
+ depGraphBuilder.addPkgNode({ name: childNode.name, version: assemblyVersion }, childId);
30
42
  depGraphBuilder.connectDep(parentId, childId);
31
43
  localVisited.add(childId);
32
44
  recursivelyPopulateNodes(depGraphBuilder, targetDeps, childNode, runtimeAssembly, localVisited);
@@ -37,16 +49,27 @@ function buildGraph(projectName, projectAssets, runtimeAssembly) {
37
49
  name: projectName,
38
50
  version: projectAssets.project.version,
39
51
  });
40
- // FIXME: Multiple frameworks
41
- const key = Object.keys(projectAssets.project.frameworks)[0];
42
- const topLevelDeps = Object.keys(projectAssets.project.frameworks[key].dependencies);
43
- // The project.assets.json file is already structured quite decently, so we just use that file directly
44
- const targetDeps = Object.entries(projectAssets.targets[key]).reduce((acc, entry) => {
52
+ if (Object.keys(projectAssets.project.frameworks).length <= 0) {
53
+ throw new errors_1.FileNotProcessableError('no target frameworks found in assets file');
54
+ }
55
+ const targetFramework = Object.keys(projectAssets.project.frameworks)[0]; // FIXME: Multiple frameworks
56
+ const topLevelDeps = Object.keys(projectAssets.project.frameworks[targetFramework].dependencies);
57
+ // The list of targets gets decorated differently depending on version of the TargetFramework, (.NET 5+ versions
58
+ // just have their key as the target (net6.0), but .NET Standard append a version, such as .NETStandard,Version=VN.N.N).
59
+ if (Object.keys(projectAssets.targets).length <= 0) {
60
+ throw new errors_1.FileNotProcessableError('no target dependencies in found in assets file');
61
+ }
62
+ // FIXME: As mentioned all over the place, we just access the first target framework we come across. There should be
63
+ // at least one, regardless.
64
+ const targetFrameworkDependencies = Object.values(projectAssets.targets)[0];
65
+ // Iterate over all the dependencies found in the target dependency list, and build the depGraph based off of that.
66
+ const targetDeps = Object.entries(targetFrameworkDependencies).reduce((acc, entry) => {
45
67
  const [nameWithVersion, pkg] = entry;
68
+ // Ignore packages with specific prefixes, which for one reason or the other are no interesting and pollutes the graph.
46
69
  if (FILTERED_DEPENDENCY_PREFIX.some((prefix) => nameWithVersion.startsWith(prefix))) {
47
70
  return acc;
48
71
  }
49
- return Object.assign(Object.assign({}, acc), { [nameWithVersion]: pkg });
72
+ return { ...acc, [nameWithVersion]: pkg };
50
73
  }, {});
51
74
  const topLevelDepPackages = topLevelDeps.reduce((acc, topLevelDepName) => {
52
75
  const nameWithVersion = Object.keys(targetDeps).find((targetDep) => targetDep.startsWith(topLevelDepName));
@@ -54,7 +77,7 @@ function buildGraph(projectName, projectAssets, runtimeAssembly) {
54
77
  throw new Error("cant find a name and a version in assets file, something's very malformed");
55
78
  }
56
79
  const [name, version] = nameWithVersion.split('/');
57
- return Object.assign(Object.assign({}, acc), { [name]: version });
80
+ return { ...acc, [name]: version };
58
81
  }, {});
59
82
  const rootNode = {
60
83
  type: 'root',
@@ -1 +1 @@
1
- {"version":3,"file":"dotnet-core-v2-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/dotnet-core-v2-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dotnet-core-v2-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/dotnet-core-v2-parser.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parse = exports.fromFolderName = exports.cloneShallow = void 0;
4
4
  const fs = require("fs");
5
5
  const path = require("path");
6
- const nuspec_parser_1 = require("./nuspec-parser");
7
6
  const debugModule = require("debug");
7
+ const nuspec_parser_1 = require("./nuspec-parser");
8
8
  const invalid_folder_format_error_1 = require("../../errors/invalid-folder-format-error");
9
9
  const debug = debugModule('snyk');
10
10
  function cloneShallow(dep) {
@@ -64,9 +64,10 @@ function scanInstalled(installedPackages, packagesFolder) {
64
64
  try {
65
65
  return fromFolderName(folderName);
66
66
  }
67
- catch (err) {
67
+ catch (error) {
68
68
  debug('Unable to parse dependency from folder');
69
- debug(err);
69
+ debug(error);
70
+ return;
70
71
  }
71
72
  })
72
73
  .forEach((dep) => {
@@ -89,9 +90,9 @@ function scanInstalled(installedPackages, packagesFolder) {
89
90
  }
90
91
  });
91
92
  }
92
- catch (err) {
93
+ catch (error) {
93
94
  debug('Could not complete packages folder scanning');
94
- debug(err);
95
+ debug(error);
95
96
  }
96
97
  return flattenedPackageList;
97
98
  }
@@ -109,8 +110,8 @@ async function fetchNugetInformationFromPackages(flattenedPackageList, targetFra
109
110
  catch (e) {
110
111
  debug('Failed parsing nuspec file');
111
112
  debug(e);
112
- //log but make sure to rethrow the error
113
- //why? if we cannot parse nuspec file, we got nothing to do!
113
+ // log but make sure to rethrow the error
114
+ // why? if we cannot parse nuspec file, we got nothing to do!
114
115
  throw e;
115
116
  }
116
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dotnet-framework-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/dotnet-framework-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dotnet-framework-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/dotnet-framework-parser.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parse = exports.parseNuspec = void 0;
3
+ exports.parseNuspec = exports.parse = void 0;
4
4
  const JSZip = require("jszip");
5
5
  const fs = require("fs");
6
6
  const path = require("path");
@@ -8,100 +8,33 @@ const parseXML = require("xml2js");
8
8
  const debugModule = require("debug");
9
9
  const debug = debugModule('snyk');
10
10
  const targetFrameworkRegex = /([.a-zA-Z]+)([.0-9]+)/;
11
- async function parseNuspec(dep, targetFramework) {
12
- //precaution
13
- if (!dep) {
14
- throw new Error('expected DependencyInfo parameter to have value but found it undefined');
15
- }
16
- //another precaution
17
- if (!targetFramework) {
18
- throw new Error('expected TargetFramework parameter to have value but found it undefined');
19
- }
20
- const nuspecContent = await loadNuspecFromAsync(dep);
21
- if (nuspecContent === null) {
22
- debug('failed to load nuspec content');
23
- return null;
24
- }
25
- return await parse(nuspecContent, targetFramework, dep.name);
26
- }
27
- exports.parseNuspec = parseNuspec;
28
- async function loadNuspecFromAsync(dep) {
29
- const nupkgPath = path.resolve(dep.path, dep.name + '.' + dep.version + '.nupkg');
30
- let nupkgData;
31
- try {
32
- nupkgData = fs.readFileSync(nupkgPath);
33
- }
34
- catch (err) {
35
- if (err.code == 'ENOENT') {
36
- debug('No nupkg file found at ' + nupkgPath);
37
- return null; //this is needed not to break existing code flow
38
- }
39
- else {
40
- throw err;
41
- }
11
+ var SupportedEncodings;
12
+ (function (SupportedEncodings) {
13
+ SupportedEncodings["UTF8"] = "utf-8";
14
+ SupportedEncodings["UTF16LE"] = "utf-16le";
15
+ })(SupportedEncodings || (SupportedEncodings = {}));
16
+ function extractDepsForPlainGroups(rawDependency) {
17
+ if (!rawDependency.group) {
18
+ return [];
42
19
  }
43
- const nuspecZipData = await JSZip.loadAsync(nupkgData);
44
- const nuspecFile = Object.keys(nuspecZipData.files).find((file) => {
45
- return path.extname(file) === '.nuspec';
20
+ return rawDependency.group.filter((group) => {
21
+ // valid group with no attributes or no `targetFramework` attribute
22
+ return group && !(group.$ && group.$.targetFramework);
46
23
  });
47
- if (!nuspecFile) {
48
- throw new Error('`failed to read nupkg file from: ${nupkgPath}`');
49
- }
50
- if (!nuspecZipData) {
51
- throw new Error(`failed to open nupkg file as an archive from: ${nupkgPath}`);
52
- }
53
- const rawNuspecContent = await nuspecZipData.files[nuspecFile].async('text');
54
- const encoding = detectNuspecContentEncoding(rawNuspecContent);
55
- const encoder = new TextEncoder();
56
- const encoded = encoder.encode(rawNuspecContent);
57
- const decoder = new TextDecoder(encoding);
58
- const encodedNuspecContent = decoder.decode(encoded);
59
- return removePotentialUtf16Characters(encodedNuspecContent);
60
24
  }
61
- async function parse(nuspecContent, targetFramework, depName) {
62
- var _a;
63
- const parsedNuspec = await parseXML.parseStringPromise(nuspecContent);
64
- let ownDeps = [];
65
- //note: this will throw if assertion fails
66
- assertNuspecSchema(nuspecContent, parsedNuspec);
67
- for (const metadata of parsedNuspec.package.metadata) {
68
- (_a = metadata.dependencies) === null || _a === void 0 ? void 0 : _a.forEach((rawDependency) => {
69
- // Find and add target framework version specific dependencies
70
- const depsForTargetFramework = extractDepsForTargetFramework(rawDependency, targetFramework);
71
- if (depsForTargetFramework && depsForTargetFramework.group) {
72
- ownDeps = ownDeps.concat(extractDepsFromRaw(depsForTargetFramework.group.dependency));
73
- }
74
- // Find all groups with no targetFramework attribute
75
- // add their deps
76
- const depsFromPlainGroups = extractDepsForPlainGroups(rawDependency);
77
- if (depsFromPlainGroups) {
78
- depsFromPlainGroups.forEach((depGroup) => {
79
- ownDeps = ownDeps.concat(extractDepsFromRaw(depGroup.dependency));
80
- });
81
- }
82
- // Add the default dependencies
83
- ownDeps = ownDeps.concat(extractDepsFromRaw(rawDependency.dependency));
84
- });
85
- }
86
- return {
87
- children: ownDeps,
88
- name: depName,
89
- };
90
- }
91
- exports.parse = parse;
92
25
  function assertNuspecSchema(nuspecContent, parsedNuspec) {
93
26
  var _a;
94
27
  if (!((_a = parsedNuspec.package) === null || _a === void 0 ? void 0 : _a.metadata)) {
95
28
  throw new Error('This is an invalid nuspec file. Package or Metadata xml section is missing. This is a required element. See https://docs.microsoft.com/en-us/nuget/reference/nuspec. The nuspec in question: ' +
96
29
  nuspecContent);
97
30
  }
98
- //just in case, this should *not* happen
31
+ // just in case, this should *not* happen
99
32
  if (!Array.isArray(parsedNuspec.package.metadata)) {
100
33
  throw new Error('This is an invalid nuspec file; the metadata tag is supposed to be a collection of objects but it is not! The nuspec in question: ' +
101
34
  nuspecContent);
102
35
  }
103
36
  for (const metadata of parsedNuspec.package.metadata) {
104
- //just in case, this shouldn't happen as this would indicate invalid/malformed nuspec file
37
+ // just in case, this shouldn't happen as this would indicate invalid/malformed nuspec file
105
38
  if (metadata == null || typeof metadata !== 'object') {
106
39
  throw new Error('Expected elements in a "metadata" tag to be objects, but they were ' +
107
40
  typeof metadata +
@@ -109,7 +42,7 @@ function assertNuspecSchema(nuspecContent, parsedNuspec) {
109
42
  nuspecContent);
110
43
  }
111
44
  if (metadata.dependencies) {
112
- //just in case, error would indicate malformed nuspec
45
+ // just in case, error would indicate malformed nuspec
113
46
  if (!Array.isArray(metadata.dependencies)) {
114
47
  throw new Error('Expected that "dependencies" tag would be an array but it isn\'t. This is not supposed to happen and is likely due to malformed nuspec file! The nuspec in question: ' +
115
48
  nuspecContent);
@@ -117,15 +50,6 @@ function assertNuspecSchema(nuspecContent, parsedNuspec) {
117
50
  }
118
51
  }
119
52
  }
120
- function extractDepsForPlainGroups(rawDependency) {
121
- if (!rawDependency.group) {
122
- return [];
123
- }
124
- return rawDependency.group.filter((group) => {
125
- // valid group with no attributes or no `targetFramework` attribute
126
- return group && !(group.$ && group.$.targetFramework);
127
- });
128
- }
129
53
  function extractDepsForTargetFramework(rawDependency, targetFramework) {
130
54
  if (!rawDependency || !rawDependency.group) {
131
55
  return;
@@ -171,11 +95,6 @@ function extractDepsFromRaw(rawDependencies) {
171
95
  });
172
96
  return deps;
173
97
  }
174
- var SupportedEncodings;
175
- (function (SupportedEncodings) {
176
- SupportedEncodings["UTF8"] = "utf-8";
177
- SupportedEncodings["UTF16LE"] = "utf-16le";
178
- })(SupportedEncodings || (SupportedEncodings = {}));
179
98
  function detectNuspecContentEncoding(nuspecContent) {
180
99
  // 65533 is a code for replacement character that is unique to UTF-16
181
100
  // https://www.unicodepedia.com/unicode/specials/fffd/replacement-character/
@@ -191,4 +110,83 @@ function removePotentialUtf16Characters(input) {
191
110
  .replace(/\uBDBF/g, '')
192
111
  .replace(/\uEFBD/g, '');
193
112
  }
113
+ async function parse(nuspecContent, targetFramework, depName) {
114
+ var _a;
115
+ const parsedNuspec = await parseXML.parseStringPromise(nuspecContent);
116
+ let ownDeps = [];
117
+ // note: this will throw if assertion fails
118
+ assertNuspecSchema(nuspecContent, parsedNuspec);
119
+ for (const metadata of parsedNuspec.package.metadata) {
120
+ (_a = metadata.dependencies) === null || _a === void 0 ? void 0 : _a.forEach((rawDependency) => {
121
+ // Find and add target framework version specific dependencies
122
+ const depsForTargetFramework = extractDepsForTargetFramework(rawDependency, targetFramework);
123
+ if (depsForTargetFramework && depsForTargetFramework.group) {
124
+ ownDeps = ownDeps.concat(extractDepsFromRaw(depsForTargetFramework.group.dependency));
125
+ }
126
+ // Find all groups with no targetFramework attribute
127
+ // add their deps
128
+ const depsFromPlainGroups = extractDepsForPlainGroups(rawDependency);
129
+ if (depsFromPlainGroups) {
130
+ depsFromPlainGroups.forEach((depGroup) => {
131
+ ownDeps = ownDeps.concat(extractDepsFromRaw(depGroup.dependency));
132
+ });
133
+ }
134
+ // Add the default dependencies
135
+ ownDeps = ownDeps.concat(extractDepsFromRaw(rawDependency.dependency));
136
+ });
137
+ }
138
+ return {
139
+ children: ownDeps,
140
+ name: depName,
141
+ };
142
+ }
143
+ exports.parse = parse;
144
+ async function loadNuspecFromAsync(dep) {
145
+ const nupkgPath = path.resolve(dep.path, dep.name + '.' + dep.version + '.nupkg');
146
+ let nupkgData;
147
+ try {
148
+ nupkgData = fs.readFileSync(nupkgPath);
149
+ }
150
+ catch (error) {
151
+ if (error.code == 'ENOENT') {
152
+ debug('No nupkg file found at ' + nupkgPath);
153
+ return null; // this is needed not to break existing code flow
154
+ }
155
+ throw error;
156
+ }
157
+ const nuspecZipData = await JSZip.loadAsync(nupkgData);
158
+ const nuspecFile = Object.keys(nuspecZipData.files).find((file) => {
159
+ return path.extname(file) === '.nuspec';
160
+ });
161
+ if (!nuspecFile) {
162
+ throw new Error(`failed to read nupkg file from: ${nupkgPath}`);
163
+ }
164
+ if (!nuspecZipData) {
165
+ throw new Error(`failed to open nupkg file as an archive from: ${nupkgPath}`);
166
+ }
167
+ const rawNuspecContent = await nuspecZipData.files[nuspecFile].async('text');
168
+ const encoding = detectNuspecContentEncoding(rawNuspecContent);
169
+ const encoder = new TextEncoder();
170
+ const encoded = encoder.encode(rawNuspecContent);
171
+ const decoder = new TextDecoder(encoding);
172
+ const encodedNuspecContent = decoder.decode(encoded);
173
+ return removePotentialUtf16Characters(encodedNuspecContent);
174
+ }
175
+ async function parseNuspec(dep, targetFramework) {
176
+ // precaution
177
+ if (!dep) {
178
+ throw new Error('expected DependencyInfo parameter to have value but found it undefined');
179
+ }
180
+ // another precaution
181
+ if (!targetFramework) {
182
+ throw new Error('expected TargetFramework parameter to have value but found it undefined');
183
+ }
184
+ const nuspecContent = await loadNuspecFromAsync(dep);
185
+ if (nuspecContent === null) {
186
+ debug('failed to load nuspec content');
187
+ return null;
188
+ }
189
+ return await parse(nuspecContent, targetFramework, dep.name);
190
+ }
191
+ exports.parseNuspec = parseNuspec;
194
192
  //# sourceMappingURL=nuspec-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nuspec-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/nuspec-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nuspec-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/nuspec-parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-json-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/project-json-parser.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAGrC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAElC,SAAS,mBAAmB,CAAC,GAAG,EAAE,IAAI;IACpC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,IAAI,CAAC;KACb;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAClC,IAAI,GAAG,KAAK,cAAc,EAAE;YAC1B,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC3C,MAAM,OAAO,GAAG,GAAG,CAAC;gBACpB,IAAI,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;oBAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;iBAC3B;gBACD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;oBAClC,OAAO,GAAG,SAAS,CAAC;iBACrB;qBAAM;oBACL,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;iBAC9B;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;aACzB;SACF;aAAM;YACL,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;SACrC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAUD,SAAS,iBAAiB,CAAC,WAAW;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,MAAM,GAA6B;QACvC,YAAY,EAAE,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC;KAClD,CAAC;IACF,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QACxD,MAAM,CAAC,OAAO,GAAG;YACf,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO;YACjC,IAAI;SACL,CAAC;KACH;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,KAAK,CAAC,WAAW,EAAE,IAAI;IACrC,MAAM,iBAAiB,GAAiB,EAAE,CAAC;IAC3C,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC;IACjD,KAAK,CAAC,eAAe,CAAC,CAAC;IACvB,IAAI,eAAe,EAAE;QACnB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAC/C,sCAAsC;YACtC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACtC,iBAAiB,CAAC,IAAI,CAAC;gBACrB,YAAY,EAAE,EAAE;gBAChB,IAAI;gBACJ,OAAO;aACR,CAAC,CAAC;SACJ;KACF;IACD,IAAI,WAAW,CAAC,OAAO,EAAE;QACvB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;KAC5C;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAtBD,sBAsBC"}
1
+ {"version":3,"file":"project-json-parser.js","sourceRoot":"","sources":["../../../lib/nuget-parser/parsers/project-json-parser.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAGrC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAUlC,SAAS,mBAAmB,CAAC,GAAG,EAAE,IAAI;IACpC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,IAAI,CAAC;KACb;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAClC,IAAI,GAAG,KAAK,cAAc,EAAE;YAC1B,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC3C,MAAM,OAAO,GAAG,GAAG,CAAC;gBACpB,IAAI,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;oBAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;iBAC3B;gBACD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;oBAClC,OAAO,GAAG,SAAS,CAAC;iBACrB;qBAAM;oBACL,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;iBAC9B;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;aACzB;SACF;aAAM;YACL,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;SACrC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAW;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,MAAM,GAA6B;QACvC,YAAY,EAAE,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC;KAClD,CAAC;IACF,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QACxD,MAAM,CAAC,OAAO,GAAG;YACf,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO;YACjC,IAAI;SACL,CAAC;KACH;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,KAAK,CAAC,WAAW,EAAE,IAAI;IACrC,MAAM,iBAAiB,GAAiB,EAAE,CAAC;IAC3C,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC;IACjD,KAAK,CAAC,eAAe,CAAC,CAAC;IACvB,IAAI,eAAe,EAAE;QACnB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAC/C,sCAAsC;YACtC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACtC,iBAAiB,CAAC,IAAI,CAAC;gBACrB,YAAY,EAAE,EAAE;gBAChB,IAAI;gBACJ,OAAO;aACR,CAAC,CAAC;SACJ;KACF;IACD,IAAI,WAAW,CAAC,OAAO,EAAE;QACvB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;KAC5C;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAtBD,sBAsBC"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateRuntimeAssemblies = exports.isSupported = void 0;
4
+ const errors = require("../errors/");
5
+ const fs = require("fs");
6
+ const lodash_1 = require("lodash");
7
+ const path = require("path");
8
+ const debugModule = require("debug");
9
+ const debug = debugModule('snyk');
10
+ // At least to keep project development iterative, don't support needle and haystack'ing dependency JSON
11
+ // for target frameworks other than .NET 5+ and .NET Core, as other frameworks generates vastly other types of
12
+ // .json graphs, requiring a whole other parsing strategy to extract tne runtime dependencies.
13
+ // For a list of version naming currently available, see
14
+ // https://learn.microsoft.com/en-us/dotnet/standard/frameworks#supported-target-frameworks
15
+ function isSupported(targetFramework) {
16
+ if (!('original' in targetFramework)) {
17
+ return false;
18
+ }
19
+ // Everything that does not start with 'net' is already game over. E.g. Windows Phone (wp) or silverlight (sl) etc.
20
+ if (!targetFramework.original.startsWith('net')) {
21
+ return false;
22
+ }
23
+ // What's left is:
24
+ // - .NET Core: netcoreappN.N,
25
+ // - .NET 5+ netN.N,
26
+ // - .NET Standard: netstandardN.N and
27
+ // - .NET Framework: netNNN, all of which we support except the latter.
28
+ // So if there's a dot, we're good.
29
+ if (targetFramework.original.includes('.')) {
30
+ return true;
31
+ }
32
+ // Otherwise it's something before .NET 5 and we're out
33
+ return false;
34
+ }
35
+ exports.isSupported = isSupported;
36
+ // The Nuget dependency resolution rule of lowest applicable version
37
+ // (see https://learn.microsoft.com/en-us/nuget/concepts/dependency-resolution#lowest-applicable-version)
38
+ // does not apply to runtime dependencies. If you resolve a dependency graph of some package, that depends on
39
+ // System.Http.Net 4.0.0, you might still very well end up using System.Http.Net 7.0.0 if you are running your
40
+ // executable on .net7.0.
41
+ // The `dotnet publish` will give a good estimate of what runtime dependencies are going to be used, so we inspect
42
+ // that for information.
43
+ // See https://natemcmaster.com/blog/2017/12/21/netcore-primitives/ for a good overview.
44
+ function generateRuntimeAssemblies(filePath) {
45
+ debug('extracting runtime assemblies from ' + filePath);
46
+ const depsFile = fs.readFileSync(filePath);
47
+ const deps = JSON.parse(depsFile.toString('utf-8'));
48
+ if (!deps.targets) {
49
+ throw new errors.FileNotProcessableError('could not find any targets in deps file');
50
+ }
51
+ // Run through all TargetFrameworks, indexed for example
52
+ // .NETCoreApp,Version=v6.0/osx-arm64,
53
+ // .NETCoreApp,Version=v6.0/alpine-armv6
54
+ // ... etc.
55
+ // See all: https://github.com/dotnet/runtime/blob/bd83e17052d3c09022bad1d91dca860ca6b27ab9/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json
56
+ const runtimeAssemblyVersions = {};
57
+ Object.entries(deps.targets).forEach(([target, dependencies]) => {
58
+ // Ignore target frameworks without dependencies, as they hold no dlls and thus no assembly versions to gauge.
59
+ if ((0, lodash_1.isEmpty)(dependencies)) {
60
+ return;
61
+ }
62
+ // The RuntimeIdentifier's (RID) dependencies are located as `runtime` objects under dependencies.
63
+ // Depending on the TargetFramework, they can be located different places, so we need to iterate the whole
64
+ // list of targets for their `runtime` objects
65
+ // E.g., find the first entry in the list of targets as:
66
+ // "your-top-level-project/1.0.0": {...},
67
+ // "Castle.Core/4.4.1": {...},
68
+ // "runtimepack.Microsoft.NETCore.App.Runtime.osx-arm64/6.0.16": { runtime: {...} },
69
+ // ... etc.
70
+ const runtimes = {};
71
+ let name;
72
+ let runtime;
73
+ for (const packageInfo of Object.values(dependencies)) {
74
+ if (!('runtime' in packageInfo)) {
75
+ continue;
76
+ }
77
+ // This can be either one or more runtime deps nested under a single leaf.
78
+ runtime = packageInfo.runtime;
79
+ if (runtime && Object.keys(runtime).length > 0) {
80
+ for (const [fullName, version] of Object.entries(runtime)) {
81
+ if ((0, lodash_1.isEmpty)(version)) {
82
+ continue;
83
+ }
84
+ // For some versions of .NET, the dependency version generated can be more than just the System.* name, but a
85
+ // full path-like structure, such as lib/netstandard2.0/System.Buffers.dll, so extract as needed:
86
+ name = path.basename(fullName);
87
+ runtimes[name] = version;
88
+ }
89
+ }
90
+ }
91
+ if (!runtimes) {
92
+ throw new errors.FileNotProcessableError(`could not find any runtime dependencies in the ${target} dependency`);
93
+ }
94
+ // Dig down into the specific runtimepack which contains all the assembly versions of
95
+ // the bundled DLLs for the given runtime, as:
96
+ // "runtimepack.Microsoft.NETCore.App.Runtime.osx-arm64/6.0.16": {
97
+ // "runtime": {
98
+ // "Microsoft.CSharp.dll": {
99
+ // "assemblyVersion": "6.0.0.0",
100
+ // "fileVersion": "6.0.1623.17311"
101
+ // },
102
+ // "Microsoft.VisualBasic.Core.dll": {
103
+ // "assemblyVersion": "11.0.0.0",
104
+ // "fileVersion": "11.100.1623.17311"
105
+ // },
106
+ // (...)
107
+ // We currently only address assemblyVersions. FileVersion might become relevant, depending
108
+ // on how vulnerabilities are reported in the future.
109
+ runtimeAssemblyVersions[target] = Object.entries(runtimes).reduce((acc, [dll, versions]) => {
110
+ // Take the version number (N.N.N.N) and remove the last element, in order for vulndb to understand anything.
111
+ acc[dll] = versions.assemblyVersion.split('.').slice(0, -1).join('.');
112
+ return acc;
113
+ }, {});
114
+ });
115
+ if ((0, lodash_1.isEmpty)(runtimeAssemblyVersions)) {
116
+ throw new errors.FileNotProcessableError('collection of runtime assembly versions was empty, that should not happen');
117
+ }
118
+ debug('finished extracting runtime assemblies from ' + filePath);
119
+ // FIXME: This has been done to make the future easier, as we probably soon will need to support multiple
120
+ // RIDs. Currently, we are only looking at the first one.
121
+ return Object.values(runtimeAssemblyVersions)[0];
122
+ }
123
+ exports.generateRuntimeAssemblies = generateRuntimeAssemblies;
124
+ //# sourceMappingURL=runtime-assembly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-assembly.js","sourceRoot":"","sources":["../../lib/nuget-parser/runtime-assembly.ts"],"names":[],"mappings":";;;AAKA,qCAAqC;AACrC,yBAAyB;AACzB,mCAAiC;AACjC,6BAA6B;AAC7B,qCAAqC;AAErC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAWlC,wGAAwG;AACxG,8GAA8G;AAC9G,8FAA8F;AAC9F,wDAAwD;AACxD,2FAA2F;AAC3F,SAAgB,WAAW,CAAC,eAAgC;IAC1D,IAAI,CAAC,CAAC,UAAU,IAAI,eAAe,CAAC,EAAE;QACpC,OAAO,KAAK,CAAC;KACd;IAED,mHAAmH;IACnH,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QAC/C,OAAO,KAAK,CAAC;KACd;IAED,kBAAkB;IAClB,8BAA8B;IAC9B,oBAAoB;IACpB,sCAAsC;IACtC,uEAAuE;IACvE,mCAAmC;IACnC,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC1C,OAAO,IAAI,CAAC;KACb;IAED,uDAAuD;IACvD,OAAO,KAAK,CAAC;AACf,CAAC;AAtBD,kCAsBC;AAED,oEAAoE;AACpE,yGAAyG;AACzG,6GAA6G;AAC7G,8GAA8G;AAC9G,yBAAyB;AACzB,kHAAkH;AAClH,wBAAwB;AACxB,wFAAwF;AACxF,SAAgB,yBAAyB,CAAC,QAAgB;IACxD,KAAK,CAAC,qCAAqC,GAAG,QAAQ,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACjB,MAAM,IAAI,MAAM,CAAC,uBAAuB,CACtC,yCAAyC,CAC1C,CAAC;KACH;IAED,wDAAwD;IACxD,sCAAsC;IACtC,wCAAwC;IACxC,WAAW;IACX,sJAAsJ;IACtJ,MAAM,uBAAuB,GAA4B,EAAE,CAAC;IAC5D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE;QACzE,8GAA8G;QAC9G,IAAI,IAAA,gBAAO,EAAC,YAAY,CAAC,EAAE;YACzB,OAAO;SACR;QAED,kGAAkG;QAClG,0GAA0G;QAC1G,8CAA8C;QAC9C,wDAAwD;QACxD,0CAA0C;QAC1C,+BAA+B;QAC/B,qFAAqF;QACrF,WAAW;QACX,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,IAAY,CAAC;QACjB,IAAI,OAAiC,CAAC;QACtC,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;YACrD,IAAI,CAAC,CAAC,SAAS,IAAI,WAAW,CAAC,EAAE;gBAC/B,SAAS;aACV;YAED,0EAA0E;YAC1E,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;YAE9B,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9C,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACzD,IAAI,IAAA,gBAAO,EAAC,OAAO,CAAC,EAAE;wBACpB,SAAS;qBACV;oBAED,6GAA6G;oBAC7G,iGAAiG;oBACjG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;iBAC1B;aACF;SACF;QAED,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,MAAM,CAAC,uBAAuB,CACtC,kDAAkD,MAAM,aAAa,CACtE,CAAC;SACH;QAED,qFAAqF;QACrF,8CAA8C;QAC9C,kEAAkE;QAClE,iBAAiB;QACjB,gCAAgC;QAChC,sCAAsC;QACtC,wCAAwC;QACxC,SAAS;QACT,0CAA0C;QAC1C,uCAAuC;QACvC,2CAA2C;QAC3C,SAAS;QACT,SAAS;QACT,2FAA2F;QAC3F,qDAAqD;QACrD,uBAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAC9C,QAAoB,CACrB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE;YAChC,6GAA6G;YAC7G,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtE,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,IAAI,IAAA,gBAAO,EAAC,uBAAuB,CAAC,EAAE;QACpC,MAAM,IAAI,MAAM,CAAC,uBAAuB,CACtC,2EAA2E,CAC5E,CAAC;KACH;IAED,KAAK,CAAC,8CAA8C,GAAG,QAAQ,CAAC,CAAC;IAEjE,yGAAyG;IACzG,0DAA0D;IAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAlGD,8DAkGC"}
@@ -7,5 +7,5 @@ var ManifestType;
7
7
  ManifestType["DOTNET_CORE"] = "dotnet-core";
8
8
  ManifestType["PACKAGES_CONFIG"] = "packages.config";
9
9
  ManifestType["PAKET"] = "paket";
10
- })(ManifestType = exports.ManifestType || (exports.ManifestType = {}));
10
+ })(ManifestType || (exports.ManifestType = ManifestType = {}));
11
11
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/nuget-parser/types.ts"],"names":[],"mappings":";;;AAgDA,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6CAA6B,CAAA;IAC7B,2CAA2B,CAAA;IAC3B,mDAAmC,CAAA;IACnC,+BAAe,CAAA;AACjB,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/nuget-parser/types.ts"],"names":[],"mappings":";;;AAgDA,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6CAA6B,CAAA;IAC7B,2CAA2B,CAAA;IAC3B,mDAAmC,CAAA;IACnC,+BAAe,CAAA;AACjB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB"}
package/package.json CHANGED
@@ -4,9 +4,11 @@
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "npm run test:unit",
7
- "test:unit": "jest --coverage",
8
- "lint": "prettier --check \"./lib/**/*.ts\" && eslint -c .eslintrc.js \"./lib/**/*\"",
9
- "lint:fix": "prettier --write \"./lib/**/*.ts\" && eslint -c .eslintrc.js --fix \"./lib/**/*\"",
7
+ "test:unit": "jest --coverage --runInBand",
8
+ "lint": "npm run lint:prettier && npm run lint:eslint",
9
+ "lint:eslint": "eslint . --ext .ts",
10
+ "lint:prettier": "prettier --check '{lib,test}/**/*.{ts,csproj,json}' --log-level 'warn'",
11
+ "lint:fix": "prettier --write '{lib,test}/**/*.{ts,csproj,json}' && eslint -c .eslintrc --fix '{lib,test}/**/*.ts'",
10
12
  "build": "tsc",
11
13
  "build:watch": "tsc -w",
12
14
  "prepare": "npm run build"
@@ -23,7 +25,7 @@
23
25
  "author": "snyk.io",
24
26
  "license": "Apache-2.0",
25
27
  "engines": {
26
- "node": ">=10"
28
+ "node": ">=16"
27
29
  },
28
30
  "files": [
29
31
  "bin",
@@ -34,25 +36,25 @@
34
36
  },
35
37
  "homepage": "https://github.com/snyk/snyk-nuget-plugin#readme",
36
38
  "dependencies": {
37
- "@snyk/dep-graph": "^2.7.0",
39
+ "@snyk/dep-graph": "^2.7.1",
38
40
  "debug": "^4.3.4",
39
41
  "dotnet-deps-parser": "5.3.0",
40
42
  "jszip": "3.10.1",
41
43
  "lodash": "^4.17.21",
42
44
  "snyk-paket-parser": "1.6.0",
43
- "tslib": "^2.6.0",
44
- "xml2js": "^0.6.0"
45
+ "tslib": "^2.6.1",
46
+ "xml2js": "^0.6.2"
45
47
  },
46
48
  "devDependencies": {
47
- "@types/jest": "^28.1.8",
48
- "@types/node": "^20",
49
- "@typescript-eslint/eslint-plugin": "^5.62.0",
50
- "@typescript-eslint/parser": "^5.62.0",
51
- "eslint": "^8.45.0",
52
- "jest": "^28.1.3",
53
- "prettier": "^2.8.8",
54
- "ts-jest": "^28.0.8",
55
- "typescript": "^4.9.5"
49
+ "@types/jest": "^29.5.3",
50
+ "@types/node": "^20.4.5",
51
+ "@typescript-eslint/eslint-plugin": "^6.2.1",
52
+ "@typescript-eslint/parser": "^6.2.1",
53
+ "eslint": "^8.46.0",
54
+ "jest": "^29.6.2",
55
+ "prettier": "^3.0.0",
56
+ "ts-jest": "^29.1.1",
57
+ "typescript": "^5.1.6"
56
58
  },
57
- "version": "1.27.0"
59
+ "version": "1.29.0"
58
60
  }