scanoss 0.10.5 → 0.11.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/README.md +1 -1
- package/build/main/cli/bin/cli-bin.js +55 -54
- package/build/main/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +2 -2
- package/build/main/sdk/Dependencies/LocalDependency/LocalDependency.js +21 -19
- package/build/main/sdk/Dependencies/LocalDependency/LocalDependency.spec.d.ts +1 -0
- package/build/main/sdk/Dependencies/LocalDependency/LocalDependency.spec.js +33 -0
- package/build/main/sdk/Dependencies/LocalDependency/parsers/npmParser.js +19 -18
- package/build/main/sdk/Dependencies/LocalDependency/parsers/parser.spec.d.ts +1 -0
- package/build/main/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +234 -0
- package/build/main/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.d.ts +3 -0
- package/build/main/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.js +40 -0
- package/build/main/tsconfig.tsbuildinfo +65 -11
- package/build/module/cli/bin/cli-bin.js +57 -56
- package/build/module/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +2 -2
- package/build/module/sdk/Dependencies/LocalDependency/LocalDependency.js +25 -23
- package/build/module/sdk/Dependencies/LocalDependency/LocalDependency.spec.d.ts +1 -0
- package/build/module/sdk/Dependencies/LocalDependency/LocalDependency.spec.js +32 -0
- package/build/module/sdk/Dependencies/LocalDependency/parsers/npmParser.js +19 -18
- package/build/module/sdk/Dependencies/LocalDependency/parsers/parser.spec.d.ts +1 -0
- package/build/module/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +230 -0
- package/build/module/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.d.ts +3 -0
- package/build/module/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.js +42 -0
- package/build/module/tsconfig.module.tsbuildinfo +65 -11
- package/package.json +6 -9
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import { PackageURL } from "packageurl-js";
|
|
3
|
-
const PURL_TYPE =
|
|
3
|
+
const PURL_TYPE = "npm";
|
|
4
4
|
// Parse a package.json file from node projects
|
|
5
5
|
// See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
|
|
6
|
-
const MANIFEST_FILE =
|
|
6
|
+
const MANIFEST_FILE = "package.json";
|
|
7
7
|
export function packageParser(fileContent, filePath) {
|
|
8
8
|
// If the file is not manifest file, return an empty results
|
|
9
9
|
const results = { file: filePath, purls: [] };
|
|
@@ -24,9 +24,10 @@ export function packageParser(fileContent, filePath) {
|
|
|
24
24
|
}
|
|
25
25
|
// Parse a package-lock.json file from node projects
|
|
26
26
|
// See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
|
|
27
|
+
const dRegex = new RegExp(/.*node_modules\/((?<scope>@.*)\/)?(?<p_name>.*)$/);
|
|
27
28
|
export function packagelockParser(fileContent, filePath) {
|
|
28
29
|
const results = { file: filePath, purls: [] };
|
|
29
|
-
if (path.basename(filePath) !=
|
|
30
|
+
if (path.basename(filePath) != "package-lock.json")
|
|
30
31
|
return Promise.resolve(results);
|
|
31
32
|
const packages = JSON.parse(fileContent)?.packages;
|
|
32
33
|
if (!packages)
|
|
@@ -34,17 +35,16 @@ export function packagelockParser(fileContent, filePath) {
|
|
|
34
35
|
for (const [key, value] of Object.entries(packages)) {
|
|
35
36
|
if (!key)
|
|
36
37
|
continue;
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
let
|
|
40
|
-
let req = value['version'];
|
|
38
|
+
const dep = key.match(dRegex);
|
|
39
|
+
let purl = new PackageURL(PURL_TYPE, dep.groups.scope, dep.groups.p_name, undefined, undefined, undefined).toString();
|
|
40
|
+
let req = value["version"];
|
|
41
41
|
results.purls.push({ purl: purl, requirement: req });
|
|
42
42
|
}
|
|
43
43
|
return Promise.resolve(results);
|
|
44
44
|
}
|
|
45
45
|
export function yarnLockParser(fileContent, filePath) {
|
|
46
46
|
const results = { file: filePath, purls: [] };
|
|
47
|
-
if (path.basename(filePath) !=
|
|
47
|
+
if (path.basename(filePath) != "yarn.lock")
|
|
48
48
|
return Promise.resolve(results);
|
|
49
49
|
const yarnVersion = yarnLockRecognizeVersion(fileContent);
|
|
50
50
|
if (yarnVersion === YarnLockVersionEnum.V1)
|
|
@@ -73,9 +73,9 @@ var YarnLockVersionEnum;
|
|
|
73
73
|
export function yarnLockRecognizeVersion(fileContent) {
|
|
74
74
|
const yarn = fileContent.split("\n", 10); //Check only the first 10 lines;
|
|
75
75
|
for (const line of yarn) {
|
|
76
|
-
if (line.includes(
|
|
76
|
+
if (line.includes("__metadata:"))
|
|
77
77
|
return YarnLockVersionEnum.V2;
|
|
78
|
-
if (line.includes(
|
|
78
|
+
if (line.includes("yarn lockfile v1"))
|
|
79
79
|
return YarnLockVersionEnum.V1;
|
|
80
80
|
}
|
|
81
81
|
return YarnLockVersionEnum.UnknownYarnLockFormat;
|
|
@@ -104,18 +104,19 @@ export function yarnLockV1Parser(fileContent, filePath) {
|
|
|
104
104
|
for (const dep_line of dep_lines) {
|
|
105
105
|
// Clean comments and empty lines
|
|
106
106
|
const trimmed = dep_line.trim();
|
|
107
|
-
const comment = trimmed.startsWith(
|
|
107
|
+
const comment = trimmed.startsWith("#");
|
|
108
108
|
if (!trimmed || comment)
|
|
109
109
|
continue;
|
|
110
110
|
// Do nothing with it's own dependencies
|
|
111
111
|
// "@babel/code-frame" "^7.0.0"
|
|
112
112
|
// "@babel/generator" "^7.3.4"
|
|
113
|
-
if (dep_line.startsWith(
|
|
113
|
+
if (dep_line.startsWith(" ".repeat(4))) {
|
|
114
|
+
}
|
|
114
115
|
// version "7.3.4"
|
|
115
116
|
// resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b"
|
|
116
117
|
// integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==
|
|
117
118
|
// dependencies:
|
|
118
|
-
else if (dep_line.startsWith(
|
|
119
|
+
else if (dep_line.startsWith(" ".repeat(2))) {
|
|
119
120
|
const dep = trimmed.split(" ");
|
|
120
121
|
const key = dep[0].trim();
|
|
121
122
|
if (key !== "dependencies:" && key !== "optionalDependencies:") {
|
|
@@ -124,7 +125,7 @@ export function yarnLockV1Parser(fileContent, filePath) {
|
|
|
124
125
|
}
|
|
125
126
|
// the first line of a dependency has the name and requirements
|
|
126
127
|
//"@babel/core@^7.1.0", "@babel/core@^7.3.4":
|
|
127
|
-
else if (!dep_line.startsWith(
|
|
128
|
+
else if (!dep_line.startsWith(" ")) {
|
|
128
129
|
const dep = dep_line.replace(/:/g, "").split(",");
|
|
129
130
|
const requirements = dep.map(line => line.trim().replace(/"|'/g, ""));
|
|
130
131
|
for (const req of requirements) {
|
|
@@ -132,7 +133,7 @@ export function yarnLockV1Parser(fileContent, filePath) {
|
|
|
132
133
|
let constraint = req.slice(atIndex + 1); // gets ^7.1.0
|
|
133
134
|
constraint = constraint.replace(/"|'/g, "");
|
|
134
135
|
const ns_name = req.slice(0, atIndex);
|
|
135
|
-
let ns =
|
|
136
|
+
let ns = "";
|
|
136
137
|
let name = ns_name;
|
|
137
138
|
if (ns_name.includes("/")) {
|
|
138
139
|
const slashIndex = req.lastIndexOf("/");
|
|
@@ -154,9 +155,9 @@ export function yarnLockV1Parser(fileContent, filePath) {
|
|
|
154
155
|
const topRequirement = topRequirements[0];
|
|
155
156
|
const namespace = topRequirement.ns;
|
|
156
157
|
const name = topRequirement.name;
|
|
157
|
-
const version = dependencyData[
|
|
158
|
+
const version = dependencyData["version"];
|
|
158
159
|
const purl = new PackageURL(PURL_TYPE, namespace, name, version, undefined, undefined).toString();
|
|
159
|
-
let requirement =
|
|
160
|
+
let requirement = "";
|
|
160
161
|
for (const topRequirement of topRequirements) {
|
|
161
162
|
requirement += topRequirement.constraint + ", ";
|
|
162
163
|
}
|
|
@@ -172,4 +173,4 @@ export function yarnLockV2Parser(fileContent, filePath) {
|
|
|
172
173
|
const results = { file: filePath, purls: [] };
|
|
173
174
|
return Promise.resolve(results);
|
|
174
175
|
}
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9EZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L3BhcnNlcnMvbnBtUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQztBQUd4QiwrQ0FBK0M7QUFDL0MsK0VBQStFO0FBQy9FLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQztBQUVyQyxNQUFNLFVBQVUsYUFBYSxDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7SUFDakUsNERBQTREO0lBQzVELE1BQU0sT0FBTyxHQUFxQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2hFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxhQUFhO1FBQzFDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVsQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRCxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7SUFFN0MsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUU7UUFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|