snyk-nuget-plugin 1.19.3 → 1.21.1
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/errors/index.js.map +1 -1
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/nuget-parser/csproj-parser.js +30 -26
- package/dist/nuget-parser/csproj-parser.js.map +1 -1
- package/dist/nuget-parser/dependency.js +5 -4
- package/dist/nuget-parser/dependency.js.map +1 -1
- package/dist/nuget-parser/dotnet-core-parser.js +29 -13
- package/dist/nuget-parser/dotnet-core-parser.js.map +1 -1
- package/dist/nuget-parser/dotnet-framework-parser.js +15 -12
- package/dist/nuget-parser/dotnet-framework-parser.js.map +1 -1
- package/dist/nuget-parser/framework.js.map +1 -1
- package/dist/nuget-parser/index.js +13 -5
- package/dist/nuget-parser/index.js.map +1 -1
- package/dist/nuget-parser/nuspec-parser.js +38 -25
- package/dist/nuget-parser/nuspec-parser.js.map +1 -1
- package/dist/nuget-parser/packages-config-parser.js.map +1 -1
- package/dist/nuget-parser/project-json-parser.js +1 -1
- package/dist/nuget-parser/project-json-parser.js.map +1 -1
- package/package.json +8 -6
package/dist/errors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/errors/index.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/errors/index.ts"],"names":[],"mappings":";;AAAA,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AACrB,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA;AAC1B,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA;AAC7B,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA"}
|
package/dist/index.js
CHANGED
|
@@ -33,9 +33,11 @@ async function inspect(root, targetFile, options) {
|
|
|
33
33
|
catch (error) {
|
|
34
34
|
return Promise.reject(error);
|
|
35
35
|
}
|
|
36
|
-
const createPackageTree =
|
|
36
|
+
const createPackageTree = depTree => {
|
|
37
37
|
// TODO implement for paket and more than one framework
|
|
38
|
-
const targetFramework = depTree.meta
|
|
38
|
+
const targetFramework = depTree.meta
|
|
39
|
+
? depTree.meta.targetFramework
|
|
40
|
+
: undefined;
|
|
39
41
|
delete depTree.meta;
|
|
40
42
|
return {
|
|
41
43
|
package: depTree,
|
|
@@ -47,10 +49,14 @@ async function inspect(root, targetFile, options) {
|
|
|
47
49
|
};
|
|
48
50
|
};
|
|
49
51
|
if (manifestType === 'paket') {
|
|
50
|
-
return paketParser
|
|
51
|
-
|
|
52
|
+
return paketParser
|
|
53
|
+
.buildDepTreeFromFiles(root, targetFile, path.join(path.dirname(targetFile), 'paket.lock'), options['include-dev'] || options.dev, // TODO: remove include-dev when no longer used.
|
|
54
|
+
options.strict)
|
|
55
|
+
.then(createPackageTree);
|
|
52
56
|
}
|
|
53
|
-
return nugetParser
|
|
57
|
+
return nugetParser
|
|
58
|
+
.buildDepTreeFromFiles(root, targetFile, options.packagesFolder, manifestType, options['assets-project-name'], options['project-name-prefix'])
|
|
59
|
+
.then(createPackageTree);
|
|
54
60
|
}
|
|
55
61
|
exports.inspect = inspect;
|
|
56
62
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,8CAA8C;AAC9C,iDAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,8CAA8C;AAC9C,iDAAiD;AACjD,qCAA6C;AAE7C,SAAS,qBAAqB,CAAC,QAAQ;IACrC,QAAQ,IAAI,EAAE;QACZ,KAAK,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnC,OAAO,cAAc,CAAC;SACvB;QACD,KAAK,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1C,OAAO,aAAa,CAAC;SACtB;QACD,KAAK,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtC,OAAO,iBAAiB,CAAC;SAC1B;QACD,KAAK,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,CAAC,CAAC;YACP,MAAM,IAAI,0BAAiB,CACzB,wCAAwC,GAAG,QAAQ,CACpD,CAAC;SACH;KACF;AACH,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAQ;IACtD,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IACxB,IAAI,YAAY,CAAC;IACjB,IAAI;QACF,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;KACzE;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,EAAE;QAClC,uDAAuD;QACvD,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI;YAClC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe;YAC9B,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE;gBACN,IAAI,EAAE,mBAAmB;gBACzB,UAAU;gBACV,aAAa,EAAE,eAAe;aAC/B;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,YAAY,KAAK,OAAO,EAAE;QAC5B,OAAO,WAAW;aACf,qBAAqB,CACpB,IAAI,EACJ,UAAU,EACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,EACjD,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,gDAAgD;QACvF,OAAO,CAAC,MAAM,CACf;aACA,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC5B;IAED,OAAO,WAAW;SACf,qBAAqB,CACpB,IAAI,EACJ,UAAU,EACV,OAAO,CAAC,cAAc,EACtB,YAAY,EACZ,OAAO,CAAC,qBAAqB,CAAC,EAC9B,OAAO,CAAC,qBAAqB,CAAC,CAC/B;SACA,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC7B,CAAC;AA/CD,0BA+CC"}
|
|
@@ -5,7 +5,6 @@ const errors_1 = require("../errors");
|
|
|
5
5
|
const fs = require("fs");
|
|
6
6
|
const path = require("path");
|
|
7
7
|
const parseXML = require("xml2js");
|
|
8
|
-
const _ = require("lodash");
|
|
9
8
|
const debugModule = require("debug");
|
|
10
9
|
const framework_1 = require("./framework");
|
|
11
10
|
const debug = debugModule('snyk');
|
|
@@ -13,32 +12,37 @@ async function getTargetFrameworksFromProjFile(rootDir) {
|
|
|
13
12
|
return new Promise((resolve, reject) => {
|
|
14
13
|
debug('Looking for your .csproj file in ' + rootDir);
|
|
15
14
|
const csprojPath = findFile(rootDir, /.*\.csproj$/);
|
|
16
|
-
if (csprojPath) {
|
|
17
|
-
debug('
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
parseXML.parseString(csprojContents, (err, parsedCsprojContents) => {
|
|
21
|
-
if (err) {
|
|
22
|
-
reject(new errors_1.FileNotProcessableError(err));
|
|
23
|
-
}
|
|
24
|
-
const versionLoc = _.get(parsedCsprojContents, 'Project.PropertyGroup[0]');
|
|
25
|
-
const versions = _.compact(_.concat([], _.get(versionLoc, 'TargetFrameworkVersion[0]') ||
|
|
26
|
-
_.get(versionLoc, 'TargetFramework[0]') ||
|
|
27
|
-
_.get(versionLoc, 'TargetFrameworks[0]', '').split(';')));
|
|
28
|
-
if (versions.length < 1) {
|
|
29
|
-
debug('Could not find TargetFrameworkVersion/TargetFramework' +
|
|
30
|
-
'/TargetFrameworks defined in the Project.PropertyGroup field of ' +
|
|
31
|
-
'your .csproj file');
|
|
32
|
-
}
|
|
33
|
-
frameworks = _.compact(_.map(versions, framework_1.toReadableFramework));
|
|
34
|
-
if (versions.length > 1 && frameworks.length < 1) {
|
|
35
|
-
debug('Could not find valid/supported .NET version in csproj file located at' + csprojPath);
|
|
36
|
-
}
|
|
37
|
-
resolve(frameworks[0]);
|
|
38
|
-
});
|
|
15
|
+
if (!csprojPath) {
|
|
16
|
+
debug('.csproj file not found in ' + rootDir + '.');
|
|
17
|
+
resolve(undefined);
|
|
18
|
+
return;
|
|
39
19
|
}
|
|
40
|
-
debug('.
|
|
41
|
-
|
|
20
|
+
debug('Checking .net framework version in .csproj file ' + csprojPath);
|
|
21
|
+
const csprojContents = fs.readFileSync(csprojPath);
|
|
22
|
+
let frameworks = [];
|
|
23
|
+
parseXML.parseString(csprojContents, (err, parsedCsprojContents) => {
|
|
24
|
+
var _a, _b, _c, _d, _e;
|
|
25
|
+
if (err) {
|
|
26
|
+
reject(new errors_1.FileNotProcessableError(err));
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const versionLoc = (_b = (_a = parsedCsprojContents === null || parsedCsprojContents === void 0 ? void 0 : parsedCsprojContents.Project) === null || _a === void 0 ? void 0 : _a.PropertyGroup) === null || _b === void 0 ? void 0 : _b[0];
|
|
30
|
+
const versions = []
|
|
31
|
+
.concat((((_c = versionLoc === null || versionLoc === void 0 ? void 0 : versionLoc.TargetFrameworkVersion) === null || _c === void 0 ? void 0 : _c[0]) || ((_d = versionLoc === null || versionLoc === void 0 ? void 0 : versionLoc.TargetFramework) === null || _d === void 0 ? void 0 : _d[0]) || ((_e = versionLoc === null || versionLoc === void 0 ? void 0 : versionLoc.TargetFrameworks) === null || _e === void 0 ? void 0 : _e[0]) ||
|
|
32
|
+
'').split(';'))
|
|
33
|
+
.filter(Boolean);
|
|
34
|
+
if (versions.length < 1) {
|
|
35
|
+
debug('Could not find TargetFrameworkVersion/TargetFramework' +
|
|
36
|
+
'/TargetFrameworks defined in the Project.PropertyGroup field of ' +
|
|
37
|
+
'your .csproj file');
|
|
38
|
+
}
|
|
39
|
+
frameworks = versions.map(framework_1.toReadableFramework).filter(Boolean);
|
|
40
|
+
if (versions.length > 1 && frameworks.length < 1) {
|
|
41
|
+
debug('Could not find valid/supported .NET version in csproj file located at' +
|
|
42
|
+
csprojPath);
|
|
43
|
+
}
|
|
44
|
+
resolve(frameworks[0]);
|
|
45
|
+
});
|
|
42
46
|
});
|
|
43
47
|
}
|
|
44
48
|
exports.getTargetFrameworksFromProjFile = getTargetFrameworksFromProjFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csproj-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/csproj-parser.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"csproj-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/csproj-parser.ts"],"names":[],"mappings":";;;AAAA,sCAAuE;AAEvE,yBAAyB;AACzB,6BAA6B;AAC7B,mCAAmC;AACnC,qCAAqC;AAErC,2CAAkD;AAClD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAE3B,KAAK,UAAU,+BAA+B,CACnD,OAAe;IAEf,OAAO,IAAI,OAAO,CAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAClE,KAAK,CAAC,mCAAmC,GAAG,OAAO,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,EAAE;YACf,KAAK,CAAC,4BAA4B,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;YACpD,OAAO,CAAC,SAAS,CAAC,CAAC;YACnB,OAAO;SACR;QAED,KAAK,CAAC,kDAAkD,GAAG,UAAU,CAAC,CAAC;QAEvE,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,UAAU,GAAoC,EAAE,CAAC;QACrD,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE;;YACjE,IAAI,GAAG,EAAE;gBACP,MAAM,CAAC,IAAI,gCAAuB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,OAAO;aACR;YACD,MAAM,UAAU,eAAG,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,OAAO,0CAAE,aAAa,0CAAG,CAAC,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,EAAE;iBAChB,MAAM,CACL,CACE,OAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,sBAAsB,0CAAG,CAAC,aACtC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,eAAe,0CAAG,CAAC,EAAC,WAChC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,gBAAgB,0CAAG,CAAC,EAAC;gBACjC,EAAE,CACH,CAAC,KAAK,CAAC,GAAG,CAAC,CACb;iBACA,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,KAAK,CACH,uDAAuD;oBACrD,kEAAkE;oBAClE,mBAAmB,CACtB,CAAC;aACH;YACD,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,+BAAmB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChD,KAAK,CACH,uEAAuE;oBACrE,UAAU,CACb,CAAC;aACH;YACD,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAnDD,0EAmDC;AAED,SAAS,QAAQ,CAAC,OAAO,EAAE,MAAM;IAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,IAAI,0BAAiB,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAC;KACzD;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE7C,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACzB,OAAO,QAAQ,CAAC;SACjB;KACF;AACH,CAAC"}
|
|
@@ -13,8 +13,7 @@ function cloneShallow(dep) {
|
|
|
13
13
|
}
|
|
14
14
|
exports.cloneShallow = cloneShallow;
|
|
15
15
|
function extractFromDotVersionNotation(expression) {
|
|
16
|
-
const versionRef = /(?=\S+)(?=\.{1})((\.\d+)+((-?\w+\.?\d*)|(\+?[0-9a-f]{5,40}))?)
|
|
17
|
-
.exec(expression)[0];
|
|
16
|
+
const versionRef = /(?=\S+)(?=\.{1})((\.\d+)+((-?\w+\.?\d*)|(\+?[0-9a-f]{5,40}))?)/.exec(expression)[0];
|
|
18
17
|
const name = expression.split(versionRef)[0];
|
|
19
18
|
return {
|
|
20
19
|
name,
|
|
@@ -33,8 +32,10 @@ function fromFolderName(folderName) {
|
|
|
33
32
|
exports.fromFolderName = fromFolderName;
|
|
34
33
|
function fromPackagesConfigEntry(manifest) {
|
|
35
34
|
debug('Extracting by packages.config entry:' +
|
|
36
|
-
' name = ' +
|
|
37
|
-
|
|
35
|
+
' name = ' +
|
|
36
|
+
manifest.$.id +
|
|
37
|
+
' version = ' +
|
|
38
|
+
manifest.$.version);
|
|
38
39
|
return {
|
|
39
40
|
dependencies: {},
|
|
40
41
|
name: manifest.$.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency.js","sourceRoot":"","sources":["../../lib/nuget-parser/dependency.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAQlC,SAAgB,YAAY,CAAC,GAAe;IAC1C,kCAAkC;IAClC,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;AACJ,CAAC;AAPD,oCAOC;AAED,SAAS,6BAA6B,CAAC,UAAU;IAC/C,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"dependency.js","sourceRoot":"","sources":["../../lib/nuget-parser/dependency.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAQlC,SAAgB,YAAY,CAAC,GAAe;IAC1C,kCAAkC;IAClC,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;AACJ,CAAC;AAPD,oCAOC;AAED,SAAS,6BAA6B,CAAC,UAAU;IAC/C,MAAM,UAAU,GAAG,gEAAgE,CAAC,IAAI,CACtF,UAAU,CACV,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,UAAU;IACvC,KAAK,CAAC,4BAA4B,GAAG,UAAU,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;IACvD,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC;AARD,wCAQC;AAED,SAAgB,uBAAuB,CAAC,QAAQ;IAC9C,KAAK,CACH,sCAAsC;QACpC,UAAU;QACV,QAAQ,CAAC,CAAC,CAAC,EAAE;QACb,aAAa;QACb,QAAQ,CAAC,CAAC,CAAC,OAAO,CACrB,CAAC;IACF,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;QACnB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO;KAC5B,CAAC;AACJ,CAAC;AAbD,0DAaC"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parse = void 0;
|
|
4
4
|
const errors_1 = require("../errors");
|
|
5
|
-
const _ = require("lodash");
|
|
6
5
|
const debugModule = require("debug");
|
|
7
6
|
const debug = debugModule('snyk');
|
|
8
7
|
const PACKAGE_DELIMITER = '@';
|
|
@@ -17,6 +16,15 @@ function initFreqDepsDict() {
|
|
|
17
16
|
freqDeps['System.Reflection'] = false;
|
|
18
17
|
freqDeps['System.Globalization'] = false;
|
|
19
18
|
}
|
|
19
|
+
function pick(obj, keys) {
|
|
20
|
+
const pickedObj = {};
|
|
21
|
+
Object.keys(obj).forEach(k => {
|
|
22
|
+
if (keys.includes(k)) {
|
|
23
|
+
pickedObj[k] = obj[k];
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return pickedObj;
|
|
27
|
+
}
|
|
20
28
|
function convertFromPathSyntax(path) {
|
|
21
29
|
let name = path.split('/').join('@'); // posix
|
|
22
30
|
name = name.split('\\').join('@'); // windows
|
|
@@ -24,7 +32,7 @@ function convertFromPathSyntax(path) {
|
|
|
24
32
|
}
|
|
25
33
|
function collectFlatList(targetObj) {
|
|
26
34
|
const names = Object.keys(targetObj);
|
|
27
|
-
return names.map(
|
|
35
|
+
return names.map(name => {
|
|
28
36
|
name = convertFromPathSyntax(name);
|
|
29
37
|
return name;
|
|
30
38
|
});
|
|
@@ -47,7 +55,7 @@ function buildBfsTree(targetDeps, roots) {
|
|
|
47
55
|
return constructTree(roots, nodes, links);
|
|
48
56
|
}
|
|
49
57
|
function isScanned(nodes, pkg) {
|
|
50
|
-
const node = nodes.find(
|
|
58
|
+
const node = nodes.find(elem => elem.name === pkg.name && elem.version === pkg.version);
|
|
51
59
|
return !!node;
|
|
52
60
|
}
|
|
53
61
|
function isFreqDep(packageName) {
|
|
@@ -72,7 +80,7 @@ function findPackage(targetDeps, depName) {
|
|
|
72
80
|
return {
|
|
73
81
|
name: depName,
|
|
74
82
|
version: currentDepVersion,
|
|
75
|
-
dependencies: targetDeps[currentDep].dependencies
|
|
83
|
+
dependencies: targetDeps[currentDep].dependencies,
|
|
76
84
|
};
|
|
77
85
|
}
|
|
78
86
|
}
|
|
@@ -95,19 +103,20 @@ function constructTree(roots, nodes, links) {
|
|
|
95
103
|
parentNode.dependencies[childName] = Object.assign({}, childNode);
|
|
96
104
|
}
|
|
97
105
|
}
|
|
98
|
-
const tree =
|
|
99
|
-
const freqSysDeps =
|
|
100
|
-
if (
|
|
106
|
+
const tree = pick(treeMap, roots);
|
|
107
|
+
const freqSysDeps = pick(treeMap, Object.keys(freqDeps));
|
|
108
|
+
if (Object.keys(freqSysDeps).length > 0) {
|
|
101
109
|
tree['freqSystemDependencies'] = {
|
|
102
110
|
name: 'freqSystemDependencies',
|
|
103
111
|
version: '0.0.0',
|
|
104
|
-
dependencies: freqSysDeps
|
|
112
|
+
dependencies: freqSysDeps,
|
|
105
113
|
};
|
|
106
114
|
}
|
|
107
115
|
return tree;
|
|
108
116
|
}
|
|
109
117
|
function getFrameworkToRun(manifest) {
|
|
110
|
-
|
|
118
|
+
var _a;
|
|
119
|
+
const frameworks = (_a = manifest === null || manifest === void 0 ? void 0 : manifest.project) === null || _a === void 0 ? void 0 : _a.frameworks;
|
|
111
120
|
debug(`Available frameworks: '${Object.keys(frameworks)}'`);
|
|
112
121
|
// not yet supporting multiple frameworks in the same assets file ->
|
|
113
122
|
// taking only the first 1
|
|
@@ -130,13 +139,14 @@ function validateManifest(manifest) {
|
|
|
130
139
|
if (!manifest.project.frameworks) {
|
|
131
140
|
throw new errors_1.InvalidManifestError('No frameworks were found in project.assets.json');
|
|
132
141
|
}
|
|
133
|
-
if (
|
|
142
|
+
if (!manifest.project.frameworks ||
|
|
143
|
+
Object.keys(manifest.project.frameworks).length === 0) {
|
|
134
144
|
throw new errors_1.InvalidManifestError('0 frameworks were found in project.assets.json');
|
|
135
145
|
}
|
|
136
146
|
if (!manifest.targets) {
|
|
137
147
|
throw new errors_1.InvalidManifestError('No targets were found in project.assets.json');
|
|
138
148
|
}
|
|
139
|
-
if (
|
|
149
|
+
if (!manifest.targets || Object.keys(manifest.targets).length === 0) {
|
|
140
150
|
throw new errors_1.InvalidManifestError('0 targets were found in project.assets.json');
|
|
141
151
|
}
|
|
142
152
|
}
|
|
@@ -147,14 +157,20 @@ async function parse(tree, manifest) {
|
|
|
147
157
|
tree.version = manifest.project.version;
|
|
148
158
|
}
|
|
149
159
|
// If a targetFramework was not found in the proj file, we will extract it from the lock file
|
|
150
|
-
|
|
160
|
+
// OR
|
|
161
|
+
// If the targetFramework is undefined, extract it from the lock file
|
|
162
|
+
// Fix for https://github.com/snyk/snyk-nuget-plugin/issues/75
|
|
163
|
+
if (!tree.meta.targetFramework ||
|
|
164
|
+
manifest.project.frameworks[tree.meta.targetFramework] === undefined) {
|
|
151
165
|
tree.meta.targetFramework = getFrameworkToRun(manifest);
|
|
152
166
|
}
|
|
153
167
|
const selectedFrameworkObj = manifest.project.frameworks[tree.meta.targetFramework];
|
|
154
168
|
// We currently ignore the found targetFramework when looking for target dependencies
|
|
155
169
|
const selectedTargetObj = getTargetObjToRun(manifest);
|
|
156
170
|
initFreqDepsDict();
|
|
157
|
-
const directDependencies = selectedFrameworkObj.dependencies
|
|
171
|
+
const directDependencies = selectedFrameworkObj.dependencies
|
|
172
|
+
? collectFlatList(selectedFrameworkObj.dependencies)
|
|
173
|
+
: [];
|
|
158
174
|
debug(`directDependencies: '${directDependencies}'`);
|
|
159
175
|
tree.dependencies = buildBfsTree(selectedTargetObj, directDependencies);
|
|
160
176
|
// to disconnect the object references inside the tree
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dotnet-core-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/dotnet-core-parser.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"dotnet-core-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/dotnet-core-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ const nuspec_parser_1 = require("./nuspec-parser");
|
|
|
8
8
|
const debugModule = require("debug");
|
|
9
9
|
const debug = debugModule('snyk');
|
|
10
10
|
function injectPath(dep, packagesFolder) {
|
|
11
|
-
dep.path = dep.localPath
|
|
12
|
-
path.resolve(packagesFolder, dep.localPath)
|
|
11
|
+
dep.path = dep.localPath
|
|
12
|
+
? path.resolve(packagesFolder, dep.localPath)
|
|
13
13
|
: path.resolve(packagesFolder, dep.name + '.' + dep.version);
|
|
14
14
|
if (dep.localPath) {
|
|
15
15
|
delete dep.localPath;
|
|
@@ -18,7 +18,7 @@ function injectPath(dep, packagesFolder) {
|
|
|
18
18
|
function scanInstalled(installedPackages, packagesFolder) {
|
|
19
19
|
const flattenedPackageList = {};
|
|
20
20
|
debug('Located ' + installedPackages.length + ' packages in manifest');
|
|
21
|
-
installedPackages.forEach(
|
|
21
|
+
installedPackages.forEach(entry => {
|
|
22
22
|
injectPath(entry, packagesFolder);
|
|
23
23
|
flattenedPackageList[entry.name] =
|
|
24
24
|
flattenedPackageList[entry.name] || entry;
|
|
@@ -28,7 +28,7 @@ function scanInstalled(installedPackages, packagesFolder) {
|
|
|
28
28
|
debug('Scanning local installed folders');
|
|
29
29
|
debug('Trying to read from installed packages folder: ' + packagesFolder);
|
|
30
30
|
fs.readdirSync(packagesFolder)
|
|
31
|
-
.map(
|
|
31
|
+
.map(folderName => {
|
|
32
32
|
try {
|
|
33
33
|
return dependency_1.fromFolderName(folderName);
|
|
34
34
|
}
|
|
@@ -37,17 +37,20 @@ function scanInstalled(installedPackages, packagesFolder) {
|
|
|
37
37
|
debug(err);
|
|
38
38
|
}
|
|
39
39
|
})
|
|
40
|
-
.forEach(
|
|
40
|
+
.forEach(dep => {
|
|
41
41
|
if (dep) {
|
|
42
42
|
injectPath(dep, packagesFolder);
|
|
43
43
|
// only add a package from packages folder if version is different
|
|
44
44
|
if (flattenedPackageList[dep.name] &&
|
|
45
45
|
flattenedPackageList[dep.name].version !== dep.version) {
|
|
46
46
|
// prefer found from packages folder (dep) over existing
|
|
47
|
-
debug('For package ' +
|
|
47
|
+
debug('For package ' +
|
|
48
|
+
dep.name +
|
|
49
|
+
' the version ' +
|
|
48
50
|
flattenedPackageList[dep.name].version +
|
|
49
51
|
' was extracted from manifest file.' +
|
|
50
|
-
'\nWe are overwriting it with version ' +
|
|
52
|
+
'\nWe are overwriting it with version ' +
|
|
53
|
+
dep.version +
|
|
51
54
|
' from the packages folder');
|
|
52
55
|
flattenedPackageList[dep.name] = dep;
|
|
53
56
|
}
|
|
@@ -73,7 +76,7 @@ async function fetchNugetInformationFromPackages(flattenedPackageList, targetFra
|
|
|
73
76
|
}
|
|
74
77
|
function processNugetInformation(nuspecResolutionChain) {
|
|
75
78
|
const nuspecResolutions = {};
|
|
76
|
-
nuspecResolutionChain.forEach(
|
|
79
|
+
nuspecResolutionChain.forEach(resolution => {
|
|
77
80
|
if (!resolution) {
|
|
78
81
|
return;
|
|
79
82
|
} // jscs:ignore
|
|
@@ -98,7 +101,8 @@ function buildTree(node, requiredChildren, flattenedPackageList, nuspecResolutio
|
|
|
98
101
|
};
|
|
99
102
|
}
|
|
100
103
|
const transitiveChildren = (nuspecResolutions[transitiveDependency.name] &&
|
|
101
|
-
nuspecResolutions[transitiveDependency.name].children) ||
|
|
104
|
+
nuspecResolutions[transitiveDependency.name].children) ||
|
|
105
|
+
[];
|
|
102
106
|
buildTree(transitiveDependency, transitiveChildren, flattenedPackageList, nuspecResolutions);
|
|
103
107
|
node.dependencies[transitiveDependency.name] = transitiveDependency;
|
|
104
108
|
}
|
|
@@ -114,9 +118,8 @@ async function parse(tree, manifest, targetFramework, packagesFolder) {
|
|
|
114
118
|
// now the flat list should be rebuilt as a tree
|
|
115
119
|
debug('Building dependency tree');
|
|
116
120
|
const nugetKeys = Object.keys(nuspecResolutions);
|
|
117
|
-
Object.keys(flattenedPackageList).forEach(
|
|
118
|
-
tree.dependencies[packageName] =
|
|
119
|
-
dependency_1.cloneShallow(flattenedPackageList[packageName]);
|
|
121
|
+
Object.keys(flattenedPackageList).forEach(packageName => {
|
|
122
|
+
tree.dependencies[packageName] = dependency_1.cloneShallow(flattenedPackageList[packageName]);
|
|
120
123
|
});
|
|
121
124
|
if (nugetKeys.length > 0) {
|
|
122
125
|
// local folders scanned, build list from .nuspec
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dotnet-framework-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/dotnet-framework-parser.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"dotnet-framework-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/dotnet-framework-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../lib/nuget-parser/framework.ts"],"names":[],"mappings":";;;AAEA,SAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../lib/nuget-parser/framework.ts"],"names":[],"mappings":";;;AAEA,SAAgB,mBAAmB,CACjC,eAAuB;IAEvB,MAAM,WAAW,GAAG;QAClB,GAAG,EAAE,eAAe;QACpB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,cAAc;QAC3B,CAAC,EAAE,eAAe;KACnB,CAAC;IAEF,gEAAgE;IAChE,4CAA4C;IAC5C,IAAI,eAAe,KAAK,MAAM,EAAE;QAC9B,OAAO;YACL,SAAS,EAAE,WAAW,CAAC,GAAG;YAC1B,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,GAAG;SACb,CAAC;KACH;IAED,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC9B,IAAI,IAAI,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YACpE,OAAO;gBACL,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC;gBAC5B,QAAQ,EAAE,eAAe;gBACzB,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACxC,CAAC;SACH;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AA/BD,kDA+BC"}
|
|
@@ -4,7 +4,6 @@ exports.getMinimumTargetFrameworkFromPackagesConfig = exports.buildDepTreeFromFi
|
|
|
4
4
|
const fs = require("fs");
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const csproj_parser_1 = require("./csproj-parser");
|
|
7
|
-
const _ = require("lodash");
|
|
8
7
|
const debugModule = require("debug");
|
|
9
8
|
const debug = debugModule('snyk');
|
|
10
9
|
const dotnetCoreParser = require("./dotnet-core-parser");
|
|
@@ -34,7 +33,15 @@ function getPackagesFolder(packagesFolder, projectRootFolder) {
|
|
|
34
33
|
}
|
|
35
34
|
return path.resolve(projectRootFolder, 'packages');
|
|
36
35
|
}
|
|
37
|
-
|
|
36
|
+
function getRootName(root, projectRootFolder, projectNamePrefix) {
|
|
37
|
+
const defaultRootName = path.basename(root || projectRootFolder || '');
|
|
38
|
+
if (projectNamePrefix) {
|
|
39
|
+
return projectNamePrefix + defaultRootName;
|
|
40
|
+
}
|
|
41
|
+
return defaultRootName;
|
|
42
|
+
}
|
|
43
|
+
async function buildDepTreeFromFiles(root, targetFile, packagesFolderPath, manifestType, useProjectNameFromAssetsFile, projectNamePrefix) {
|
|
44
|
+
var _a, _b;
|
|
38
45
|
const safeRoot = root || '.';
|
|
39
46
|
const safeTargetFile = targetFile || '.';
|
|
40
47
|
const fileContentPath = path.resolve(safeRoot, safeTargetFile);
|
|
@@ -51,7 +58,7 @@ async function buildDepTreeFromFiles(root, targetFile, packagesFolderPath, manif
|
|
|
51
58
|
const tree = {
|
|
52
59
|
dependencies: {},
|
|
53
60
|
meta: {},
|
|
54
|
-
name:
|
|
61
|
+
name: getRootName(root, projectRootFolder, projectNamePrefix),
|
|
55
62
|
packageFormatVersion: 'nuget:0.0.0',
|
|
56
63
|
version: '0.0.0',
|
|
57
64
|
};
|
|
@@ -82,12 +89,13 @@ async function buildDepTreeFromFiles(root, targetFile, packagesFolderPath, manif
|
|
|
82
89
|
const parser = PARSERS[manifestType];
|
|
83
90
|
const manifest = await parser.fileContentParser.parse(fileContent, tree);
|
|
84
91
|
if (manifestType === 'dotnet-core' && useProjectNameFromAssetsFile) {
|
|
85
|
-
const projectName =
|
|
92
|
+
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;
|
|
86
93
|
if (projectName) {
|
|
87
94
|
tree.name = projectName;
|
|
88
95
|
}
|
|
89
96
|
else {
|
|
90
|
-
debug("project.assets.json file doesn't contain a value for 'projectName'. Using default value: " +
|
|
97
|
+
debug("project.assets.json file doesn't contain a value for 'projectName'. Using default value: " +
|
|
98
|
+
tree.name);
|
|
91
99
|
}
|
|
92
100
|
}
|
|
93
101
|
return parser.depParser.parse(tree, manifest, targetFramework, packagesFolder);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/nuget-parser/index.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/nuget-parser/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ const JSZip = require("jszip");
|
|
|
5
5
|
const fs = require("fs");
|
|
6
6
|
const path = require("path");
|
|
7
7
|
const parseXML = require("xml2js");
|
|
8
|
-
const _ = require("lodash");
|
|
9
8
|
const debugModule = require("debug");
|
|
10
9
|
const debug = debugModule('snyk');
|
|
11
10
|
const targetFrameworkRegex = /([.a-zA-Z]+)([.0-9]+)/;
|
|
@@ -16,13 +15,13 @@ async function parseNuspec(dep, targetFramework) {
|
|
|
16
15
|
const nupkgData = fs.readFileSync(nupkgPath);
|
|
17
16
|
return JSZip.loadAsync(nupkgData);
|
|
18
17
|
})
|
|
19
|
-
.then(
|
|
20
|
-
const nuspecFiles = Object.keys(nuspecZipData.files).filter(
|
|
21
|
-
return
|
|
18
|
+
.then(nuspecZipData => {
|
|
19
|
+
const nuspecFiles = Object.keys(nuspecZipData.files).filter(file => {
|
|
20
|
+
return path.extname(file) === '.nuspec';
|
|
22
21
|
});
|
|
23
22
|
return nuspecZipData.files[nuspecFiles[0]].async('text');
|
|
24
23
|
})
|
|
25
|
-
.then(
|
|
24
|
+
.then(nuspecContent => {
|
|
26
25
|
return new Promise((resolve, reject) => {
|
|
27
26
|
parseXML.parseString(nuspecContent, (err, result) => {
|
|
28
27
|
if (err) {
|
|
@@ -32,23 +31,23 @@ async function parseNuspec(dep, targetFramework) {
|
|
|
32
31
|
// We are only going to check the first targetFramework we encounter
|
|
33
32
|
// in the future we may want to support multiple, but only once
|
|
34
33
|
// we have dependency version conflict resolution implemented
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
result.package.metadata.forEach(metadata => {
|
|
35
|
+
metadata.dependencies.forEach(rawDependency => {
|
|
37
36
|
// Find and add target framework version specific dependencies
|
|
38
37
|
const depsForTargetFramework = extractDepsForTargetFramework(rawDependency, targetFramework);
|
|
39
38
|
if (depsForTargetFramework && depsForTargetFramework.group) {
|
|
40
|
-
ownDeps =
|
|
39
|
+
ownDeps = ownDeps.concat(extractDepsFromRaw(depsForTargetFramework.group.dependency));
|
|
41
40
|
}
|
|
42
41
|
// Find all groups with no targetFramework attribute
|
|
43
42
|
// add their deps
|
|
44
43
|
const depsFromPlainGroups = extractDepsForPlainGroups(rawDependency);
|
|
45
44
|
if (depsFromPlainGroups) {
|
|
46
|
-
depsFromPlainGroups.forEach(
|
|
47
|
-
ownDeps =
|
|
45
|
+
depsFromPlainGroups.forEach(depGroup => {
|
|
46
|
+
ownDeps = ownDeps.concat(extractDepsFromRaw(depGroup.dependency));
|
|
48
47
|
});
|
|
49
48
|
}
|
|
50
49
|
// Add the default dependencies
|
|
51
|
-
ownDeps =
|
|
50
|
+
ownDeps = ownDeps.concat(extractDepsFromRaw(rawDependency.dependency));
|
|
52
51
|
});
|
|
53
52
|
});
|
|
54
53
|
return resolve({
|
|
@@ -58,7 +57,7 @@ async function parseNuspec(dep, targetFramework) {
|
|
|
58
57
|
});
|
|
59
58
|
});
|
|
60
59
|
})
|
|
61
|
-
.catch(
|
|
60
|
+
.catch(err => {
|
|
62
61
|
// parsing problems are coerced into an empty nuspec
|
|
63
62
|
debug('Error parsing dependency', JSON.stringify(dep), err);
|
|
64
63
|
return null;
|
|
@@ -66,35 +65,49 @@ async function parseNuspec(dep, targetFramework) {
|
|
|
66
65
|
}
|
|
67
66
|
exports.parseNuspec = parseNuspec;
|
|
68
67
|
function extractDepsForPlainGroups(rawDependency) {
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
if (!rawDependency.group) {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
return rawDependency.group.filter(group => {
|
|
71
72
|
// valid group with no attributes or no `targetFramework` attribute
|
|
72
73
|
return group && !(group.$ && group.$.targetFramework);
|
|
73
74
|
});
|
|
74
75
|
}
|
|
75
76
|
function extractDepsForTargetFramework(rawDependency, targetFramework) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
if (!rawDependency || !rawDependency.group) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
return rawDependency.group
|
|
81
|
+
.filter(group => {
|
|
82
|
+
var _a;
|
|
83
|
+
return (((_a = group === null || group === void 0 ? void 0 : group.$) === null || _a === void 0 ? void 0 : _a.targetFramework) &&
|
|
84
|
+
targetFrameworkRegex.test(group.$.targetFramework));
|
|
80
85
|
})
|
|
81
|
-
.map(
|
|
82
|
-
const parts =
|
|
86
|
+
.map(group => {
|
|
87
|
+
const parts = group.$.targetFramework.split(targetFrameworkRegex);
|
|
83
88
|
return {
|
|
84
89
|
framework: parts[1],
|
|
85
90
|
group,
|
|
86
91
|
version: parts[2],
|
|
87
92
|
};
|
|
88
93
|
})
|
|
89
|
-
.
|
|
90
|
-
.
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
.sort((a, b) => {
|
|
95
|
+
if (a.framework === b.framework) {
|
|
96
|
+
return Number(b.version) - Number(a.version);
|
|
97
|
+
}
|
|
98
|
+
return a.framework > b.framework ? -1 : 1;
|
|
99
|
+
})
|
|
100
|
+
.find(group => {
|
|
101
|
+
return (targetFramework.framework === group.framework &&
|
|
102
|
+
targetFramework.version >= group.version);
|
|
93
103
|
});
|
|
94
104
|
}
|
|
95
105
|
function extractDepsFromRaw(rawDependencies) {
|
|
106
|
+
if (!rawDependencies) {
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
96
109
|
const deps = [];
|
|
97
|
-
|
|
110
|
+
rawDependencies.forEach(dep => {
|
|
98
111
|
if (dep && dep.$) {
|
|
99
112
|
deps.push({
|
|
100
113
|
dependencies: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nuspec-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/nuspec-parser.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,yBAAyB;AACzB,6BAA6B;AAC7B,mCAAmC;AAEnC,
|
|
1
|
+
{"version":3,"file":"nuspec-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/nuspec-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packages-config-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/packages-config-parser.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,qCAAqC;AACrC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAClC,
|
|
1
|
+
{"version":3,"file":"packages-config-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/packages-config-parser.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,qCAAqC;AACrC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAClC,6CAAmE;AAEnE,SAAgB,KAAK,CAAC,WAAW;IAC/B,MAAM,iBAAiB,GAAiB,EAAE,CAAC;IAC3C,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAClD,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAChD,IAAI,GAAG,EAAE;YACP,MAAM,GAAG,CAAC;SACX;aAAM;YACL,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;YAE/C,QAAQ,CAAC,OAAO,CAAC,SAAS,sBAAsB,CAAC,IAAI;gBACnD,MAAM,mBAAmB,GAAG,oCAAuB,CAAC,IAAI,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IACH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAhBD,sBAgBC"}
|
|
@@ -39,7 +39,7 @@ function parseJsonManifest(fileContent) {
|
|
|
39
39
|
};
|
|
40
40
|
if (typeof rawContent.project === 'object') {
|
|
41
41
|
const pData = rawContent.project;
|
|
42
|
-
const name =
|
|
42
|
+
const name = pData.restore && pData.restore.projectName;
|
|
43
43
|
result.project = {
|
|
44
44
|
version: pData.version || '0.0.0',
|
|
45
45
|
name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-json-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/project-json-parser.ts"],"names":[],"mappings":";;;AACA,qCAAqC;AACrC,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,
|
|
1
|
+
{"version":3,"file":"project-json-parser.js","sourceRoot":"","sources":["../../lib/nuget-parser/project-json-parser.ts"],"names":[],"mappings":";;;AACA,qCAAqC;AACrC,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,GAA4B,EAAE,CAAC;IACtD,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"}
|
package/package.json
CHANGED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
"description": "Snyk CLI NuGet plugin",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
|
-
"test": "npm run
|
|
6
|
+
"test": "npm run lint && npm run unit-test",
|
|
7
7
|
"unit-test": "tap --no-coverage test/*.test.ts --timeout=300",
|
|
8
|
-
"
|
|
8
|
+
"lint": "prettier --check \"./lib/**/*.ts\" && eslint -c .eslintrc.js \"./lib/**/*\"",
|
|
9
|
+
"lint:fix": "prettier --write \"./lib/**/*.ts\" && eslint -c .eslintrc.js --fix \"./lib/**/*\"",
|
|
9
10
|
"build": "tsc",
|
|
10
11
|
"build-watch": "tsc -w",
|
|
11
12
|
"prepare": "npm run build"
|
|
@@ -33,7 +34,6 @@
|
|
|
33
34
|
},
|
|
34
35
|
"homepage": "https://github.com/snyk/snyk-nuget-plugin#readme",
|
|
35
36
|
"dependencies": {
|
|
36
|
-
"lodash": "^4.17.20",
|
|
37
37
|
"debug": "^4.1.1",
|
|
38
38
|
"dotnet-deps-parser": "5.0.0",
|
|
39
39
|
"jszip": "3.4.0",
|
|
@@ -42,12 +42,14 @@
|
|
|
42
42
|
"xml2js": "^0.4.17"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
+
"@types/node": "^8.10.60",
|
|
45
46
|
"@typescript-eslint/eslint-plugin": "^2.31.0",
|
|
46
47
|
"@typescript-eslint/parser": "^2.31.0",
|
|
47
|
-
"@types/node": "^8.10.60",
|
|
48
|
-
"tap": "^14.10.7",
|
|
49
48
|
"eslint": "^6.8.0",
|
|
49
|
+
"eslint-config-prettier": "^6.15.0",
|
|
50
|
+
"prettier": "^1.19.1",
|
|
51
|
+
"tap": "^14.10.7",
|
|
50
52
|
"typescript": "^3.8.3"
|
|
51
53
|
},
|
|
52
|
-
"version": "1.
|
|
54
|
+
"version": "1.21.1"
|
|
53
55
|
}
|