scanoss 0.2.19 → 0.2.22
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/.cspell.json +2 -1
- package/build/main/bin/cli-bin.js +4 -2
- package/build/main/commands/dep.js +19 -7
- package/build/main/commands/helpers.d.ts +1 -0
- package/build/main/commands/helpers.js +22 -0
- package/build/main/commands/scan.js +3 -15
- package/build/main/index.d.ts +2 -1
- package/build/main/index.js +3 -2
- package/build/main/lib/dependencies/DependencyScanner.d.ts +6 -5
- package/build/main/lib/dependencies/DependencyScanner.js +34 -50
- package/build/main/lib/dependencies/DependencyScannerCfg.d.ts +4 -0
- package/build/main/lib/dependencies/DependencyScannerCfg.js +11 -0
- package/build/main/lib/dependencies/DependencyTypes.d.ts +10 -8
- package/build/main/lib/dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
- package/build/main/lib/dependencies/LocalDependency/DependencyTypes.js +3 -0
- package/build/main/lib/dependencies/LocalDependency/LocalDependency.d.ts +6 -0
- package/build/main/lib/dependencies/LocalDependency/LocalDependency.js +51 -0
- package/build/main/lib/dependencies/LocalDependency/parsers/golangParser.d.ts +2 -0
- package/build/main/lib/dependencies/LocalDependency/parsers/golangParser.js +63 -0
- package/build/main/lib/dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
- package/build/main/lib/dependencies/LocalDependency/parsers/mavenParser.js +57 -0
- package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.d.ts +3 -3
- package/build/main/lib/dependencies/LocalDependency/parsers/npmParser.js +50 -0
- package/build/main/lib/dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
- package/build/main/lib/dependencies/LocalDependency/parsers/pyParser.js +65 -0
- package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.d.ts +3 -3
- package/build/main/lib/dependencies/LocalDependency/parsers/rubyParser.js +133 -0
- package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/utils.d.ts +0 -0
- package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/utils.js +1 -1
- package/build/main/lib/grpc/GrpcDependencyService.d.ts +4 -5
- package/build/main/lib/grpc/GrpcDependencyService.js +19 -13
- package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +22 -23
- package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +5 -5
- package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +90 -48
- package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +4 -5
- package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +5 -6
- package/build/main/lib/scanner/Scanner.js +1 -1
- package/build/module/bin/cli-bin.js +4 -2
- package/build/module/commands/dep.js +19 -7
- package/build/module/commands/helpers.d.ts +1 -0
- package/build/module/commands/helpers.js +15 -0
- package/build/module/commands/scan.js +2 -14
- package/build/module/index.d.ts +2 -1
- package/build/module/index.js +3 -2
- package/build/module/lib/dependencies/DependencyScanner.d.ts +6 -5
- package/build/module/lib/dependencies/DependencyScanner.js +35 -47
- package/build/module/lib/dependencies/DependencyScannerCfg.d.ts +4 -0
- package/build/module/lib/dependencies/DependencyScannerCfg.js +5 -0
- package/build/module/lib/dependencies/DependencyTypes.d.ts +10 -8
- package/build/module/lib/dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
- package/build/module/lib/dependencies/LocalDependency/DependencyTypes.js +2 -0
- package/build/module/lib/dependencies/LocalDependency/LocalDependency.d.ts +6 -0
- package/build/module/lib/dependencies/LocalDependency/LocalDependency.js +45 -0
- package/build/module/lib/dependencies/LocalDependency/parsers/golangParser.d.ts +2 -0
- package/build/module/lib/dependencies/LocalDependency/parsers/golangParser.js +55 -0
- package/build/module/lib/dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
- package/build/module/lib/dependencies/LocalDependency/parsers/mavenParser.js +50 -0
- package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.d.ts +3 -3
- package/build/module/lib/dependencies/LocalDependency/parsers/npmParser.js +42 -0
- package/build/module/lib/dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
- package/build/module/lib/dependencies/LocalDependency/parsers/pyParser.js +57 -0
- package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.d.ts +3 -3
- package/build/module/lib/dependencies/LocalDependency/parsers/rubyParser.js +130 -0
- package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/utils.d.ts +0 -0
- package/build/module/lib/dependencies/LocalDependency/parsers/utils.js +15 -0
- package/build/module/lib/grpc/GrpcDependencyService.d.ts +4 -5
- package/build/module/lib/grpc/GrpcDependencyService.js +20 -14
- package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +22 -23
- package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +5 -5
- package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +90 -48
- package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +4 -5
- package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +5 -6
- package/build/module/lib/scanner/Scanner.js +1 -1
- package/build/tsconfig.module.tsbuildinfo +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -1
- package/src/bin/cli-bin.ts +4 -1
- package/src/commands/dep.ts +18 -6
- package/src/commands/helpers.ts +14 -0
- package/src/commands/scan.ts +3 -12
- package/src/index.ts +5 -1
- package/src/lib/dependencies/DependencyScanner.ts +79 -0
- package/src/lib/dependencies/DependencyScannerCfg.ts +7 -0
- package/src/lib/dependencies/DependencyTypes.ts +16 -14
- package/src/lib/dependencies/LocalDependency/DependencyTypes.ts +21 -0
- package/src/lib/dependencies/LocalDependency/LocalDependency.ts +48 -0
- package/src/lib/dependencies/{parsers → LocalDependency/parsers}/golangParser.ts +4 -6
- package/src/lib/dependencies/{parsers → LocalDependency/parsers}/mavenParser.ts +10 -6
- package/src/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.ts +14 -8
- package/src/lib/dependencies/LocalDependency/parsers/pyParser.ts +58 -0
- package/src/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.ts +21 -29
- package/src/lib/dependencies/{parsers → LocalDependency/parsers}/utils.ts +0 -1
- package/src/lib/grpc/GrpcDependencyService.ts +72 -0
- package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +1 -0
- package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +1 -0
- package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +79 -0
- package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +482 -0
- package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +30 -0
- package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +109 -0
- package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +206 -0
- package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1489 -0
- package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +25 -0
- package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +73 -0
- package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +6 -0
- package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
- package/src/lib/scanner/Scanner.ts +2 -1
- package/tsconfig.json +5 -22
- package/yarn.lock +5252 -5213
- package/build/main/lib/dependencies/Dependency.d.ts +0 -9
- package/build/main/lib/dependencies/Dependency.js +0 -52
- package/build/main/lib/dependencies/PurlGenerator.d.ts +0 -2
- package/build/main/lib/dependencies/PurlGenerator.js +0 -46
- package/build/main/lib/dependencies/parsers/golangParser.d.ts +0 -2
- package/build/main/lib/dependencies/parsers/golangParser.js +0 -63
- package/build/main/lib/dependencies/parsers/mavenParser.d.ts +0 -2
- package/build/main/lib/dependencies/parsers/mavenParser.js +0 -54
- package/build/main/lib/dependencies/parsers/npmParser.js +0 -46
- package/build/main/lib/dependencies/parsers/pyParser.d.ts +0 -2
- package/build/main/lib/dependencies/parsers/pyParser.js +0 -51
- package/build/main/lib/dependencies/parsers/rubyParser.js +0 -135
- package/build/main/lib/dependencies/parsers/types.d.ts +0 -15
- package/build/main/lib/dependencies/parsers/types.js +0 -3
- package/build/main/lib/grpc/GrpcConfig.d.ts +0 -4
- package/build/main/lib/grpc/GrpcConfig.js +0 -11
- package/build/main/old/Dependency.d.ts +0 -9
- package/build/main/old/Dependency.js +0 -96
- package/build/main/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
- package/build/main/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
- package/build/main/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
- package/build/main/scanoss/api/common/v2/scanoss-common_pb.js +0 -405
- package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -42
- package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
- package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
- package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1156
- package/build/main/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -21
- package/build/main/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -67
- package/build/main/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
- package/build/main/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -15
- package/build/module/lib/dependencies/Dependency.d.ts +0 -9
- package/build/module/lib/dependencies/Dependency.js +0 -47
- package/build/module/lib/dependencies/PurlGenerator.d.ts +0 -2
- package/build/module/lib/dependencies/PurlGenerator.js +0 -39
- package/build/module/lib/dependencies/parsers/golangParser.d.ts +0 -2
- package/build/module/lib/dependencies/parsers/golangParser.js +0 -55
- package/build/module/lib/dependencies/parsers/mavenParser.d.ts +0 -2
- package/build/module/lib/dependencies/parsers/mavenParser.js +0 -47
- package/build/module/lib/dependencies/parsers/npmParser.js +0 -38
- package/build/module/lib/dependencies/parsers/pyParser.d.ts +0 -2
- package/build/module/lib/dependencies/parsers/pyParser.js +0 -44
- package/build/module/lib/dependencies/parsers/rubyParser.js +0 -132
- package/build/module/lib/dependencies/parsers/types.d.ts +0 -15
- package/build/module/lib/dependencies/parsers/types.js +0 -2
- package/build/module/lib/dependencies/parsers/utils.js +0 -15
- package/build/module/lib/grpc/GrpcConfig.d.ts +0 -4
- package/build/module/lib/grpc/GrpcConfig.js +0 -5
- package/build/module/old/Dependency.d.ts +0 -9
- package/build/module/old/Dependency.js +0 -72
- package/build/module/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
- package/build/module/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
- package/build/module/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
- package/build/module/scanoss/api/common/v2/scanoss-common_pb.js +0 -405
- package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -42
- package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
- package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
- package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1156
- package/build/module/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -21
- package/build/module/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -67
- package/build/module/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
- package/build/module/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -15
- package/package-lock.json +0 -18589
- package/src/lib/dependencies/Dependency.ts +0 -60
- package/src/lib/dependencies/PurlGenerator.ts +0 -45
- package/src/lib/dependencies/parsers/pyParser.ts +0 -46
- package/src/lib/dependencies/parsers/types.ts +0 -19
package/.cspell.json
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/master/cspell.schema.json",
|
|
4
4
|
"language": "en",
|
|
5
5
|
"words": [
|
|
6
|
-
"bitjson",
|
|
7
6
|
"bitauth",
|
|
7
|
+
"bitjson",
|
|
8
8
|
"cimg",
|
|
9
9
|
"circleci",
|
|
10
10
|
"codecov",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"globby",
|
|
18
18
|
"libauth",
|
|
19
19
|
"mkdir",
|
|
20
|
+
"packagelock",
|
|
20
21
|
"prettierignore",
|
|
21
22
|
"sandboxed",
|
|
22
23
|
"transpiled",
|
|
@@ -11,7 +11,7 @@ function CLIErrorHandler(e) {
|
|
|
11
11
|
}
|
|
12
12
|
async function main() {
|
|
13
13
|
commander_1.program
|
|
14
|
-
.version("0.2.
|
|
14
|
+
.version("0.2.21")
|
|
15
15
|
.description('The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.');
|
|
16
16
|
commander_1.program
|
|
17
17
|
.command('scan <source>')
|
|
@@ -35,6 +35,8 @@ async function main() {
|
|
|
35
35
|
.command('dep <source>')
|
|
36
36
|
.description('Scan for dependencies [ BETA ]')
|
|
37
37
|
.option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
|
|
38
|
+
.option('-a, --grpc-host <host>', 'SCANOSS GRPC HOST (optional - default: scanoss.com)')
|
|
39
|
+
.option('-p, --grpc-port <port>', 'SCANOSS GRPC PORT (optional - default: 443)')
|
|
38
40
|
.action((source, options) => { (0, dep_1.depHandler)(source, options).catch((e) => { CLIErrorHandler(e); }); });
|
|
39
41
|
await commander_1.program.parseAsync(process.argv);
|
|
40
42
|
}
|
|
@@ -45,4 +47,4 @@ catch (e) {
|
|
|
45
47
|
console.error(e);
|
|
46
48
|
process.exit(1);
|
|
47
49
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vY2xpLWJpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx5Q0FBb0M7QUFDcEMseUNBQTZDO0FBQzdDLDJDQUErQztBQUUvQyxTQUFTLGVBQWUsQ0FBQyxDQUFRO0lBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFLRCxLQUFLLFVBQVUsSUFBSTtJQUNqQixtQkFBTztTQUNKLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDakIsV0FBVyxDQUFDLDRHQUE0RyxDQUFDLENBQUE7SUFFNUgsbUJBQU87U0FDSixPQUFPLENBQUMsZUFBZSxDQUFDO1NBQ3hCLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztRQUNsQyw2RUFBNkU7U0FDNUUsTUFBTSxDQUFDLDRCQUE0QixFQUFFLCtFQUErRSxDQUFDO1NBQ3JILE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSx5Q0FBeUMsQ0FBQztTQUNwRSxNQUFNLENBQUMseUJBQXlCLEVBQUUscURBQXFELENBQUM7U0FDeEYsTUFBTSxDQUFDLHFCQUFxQixFQUFFLG1SQUFtUixDQUFDO1NBQ2xULE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSxpRkFBaUYsQ0FBQztTQUN2SCxNQUFNLENBQUMseUJBQXlCLEVBQUUsMkRBQTJELENBQUM7U0FDOUYsTUFBTSxDQUFDLHlCQUF5QixFQUFFLG9FQUFvRSxDQUFDO1NBQ3ZHLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSx5RUFBeUUsQ0FBQztTQUMxRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsdUVBQXVFLENBQUM7U0FDbEcsTUFBTSxDQUFDLGVBQWUsRUFBRSw4QkFBOEIsQ0FBQztTQUN2RCxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRSxJQUFBLGtCQUFXLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUM7U0FDOUYsV0FBVyxDQUFDLE9BQU8sRUFBRTs7MERBRWdDLENBQ3JELENBQUM7SUFFRixtQkFBTztTQUNOLE9BQU8sQ0FBQyxjQUFjLENBQUM7U0FDdkIsV0FBVyxDQUFDLGdDQUFnQyxDQUFDO1NBQzdDLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxxREFBcUQsQ0FBQztTQUN4RixNQUFNLENBQUMsd0JBQXdCLEVBQUUscURBQXFELENBQUM7U0FDdkYsTUFBTSxDQUFDLHdCQUF3QixFQUFFLDhDQUE4QyxDQUFDO1NBRWhGLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFFLElBQUEsZ0JBQVUsRUFBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBO0lBRTlGLE1BQU0sbUJBQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFHRCxJQUFJO0lBQ0YsSUFBSSxFQUFFLENBQUM7Q0FDUjtBQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2pCIn0=
|
|
@@ -5,16 +5,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.depHandler = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const
|
|
8
|
+
const DependencyScanner_1 = require("../lib/dependencies/DependencyScanner");
|
|
9
|
+
const DependencyScannerCfg_1 = require("../lib/dependencies/DependencyScannerCfg");
|
|
9
10
|
const Tree_1 = require("../lib/tree/Tree");
|
|
11
|
+
const helpers_1 = require("./helpers");
|
|
10
12
|
async function depHandler(rootPath, options) {
|
|
11
13
|
rootPath = rootPath.replace(/\/$/, ''); // Remove trailing slash if exists
|
|
12
14
|
rootPath = rootPath.replace(/^\./, process.env.PWD); // Convert relative path to absolute path.
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const pathIsFolder = await (0, helpers_1.isFolder)(rootPath);
|
|
16
|
+
const dependencyScannerCfg = new DependencyScannerCfg_1.DependencyScannerCfg();
|
|
17
|
+
if (options.grpcHost)
|
|
18
|
+
dependencyScannerCfg.DEFAULT_GRPC_HOST = options.grpcHost;
|
|
19
|
+
if (options.grpcPort)
|
|
20
|
+
dependencyScannerCfg.DEFAULT_GRPC_PORT = options.grpcPort;
|
|
21
|
+
const dependencyScanner = new DependencyScanner_1.DependencyScanner(dependencyScannerCfg);
|
|
22
|
+
let fileList = [];
|
|
23
|
+
fileList.push(rootPath);
|
|
24
|
+
if (pathIsFolder) {
|
|
25
|
+
const tree = new Tree_1.Tree(rootPath);
|
|
26
|
+
tree.buildTree();
|
|
27
|
+
fileList = tree.getRootFolder().getFiles().map((path) => { return rootPath + path; });
|
|
28
|
+
}
|
|
29
|
+
const results = await dependencyScanner.scan(fileList);
|
|
18
30
|
if (options.output) {
|
|
19
31
|
fs_1.default.promises.writeFile(options.output, JSON.stringify(results, null, 2));
|
|
20
32
|
}
|
|
@@ -23,4 +35,4 @@ async function depHandler(rootPath, options) {
|
|
|
23
35
|
}
|
|
24
36
|
}
|
|
25
37
|
exports.depHandler = depHandler;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsNkVBQTBFO0FBQzFFLG1GQUFnRjtBQUNoRiwyQ0FBd0M7QUFDeEMsdUNBQXFDO0FBRTlCLEtBQUssVUFBVSxVQUFVLENBQUMsUUFBZ0IsRUFBRSxPQUFZO0lBRTdELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGtDQUFrQztJQUMzRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLDBDQUEwQztJQUNoRyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUEsa0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxNQUFNLG9CQUFvQixHQUFHLElBQUksMkNBQW9CLEVBQUUsQ0FBQztJQUN4RCxJQUFHLE9BQU8sQ0FBQyxRQUFRO1FBQUUsb0JBQW9CLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvRSxJQUFHLE9BQU8sQ0FBQyxRQUFRO1FBQUUsb0JBQW9CLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUUvRSxNQUFNLGlCQUFpQixHQUFHLElBQUkscUNBQWlCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUV0RSxJQUFJLFFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFeEIsSUFBSSxZQUFZLEVBQUU7UUFDaEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRSxPQUFPLFFBQVEsR0FBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQztLQUNsRjtJQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0saUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXZELElBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNqQixZQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3pFO1NBQU07UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9DO0FBRUgsQ0FBQztBQTVCRCxnQ0E0QkMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isFolder: (path: string) => Promise<boolean>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isFolder = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
// Async function that verify if a path is a folder. If the path is not valid the promise will be rejected
|
|
9
|
+
const isFolder = (path) => {
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
fs_1.default.stat(path, (err, stats) => {
|
|
12
|
+
if (err) {
|
|
13
|
+
reject(err);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
resolve(stats.isDirectory());
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
exports.isFolder = isFolder;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDRDQUFvQjtBQUVwQiwwR0FBMEc7QUFDbkcsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFZLEVBQW9CLEVBQUU7SUFDekQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxZQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMzQixJQUFJLEdBQUcsRUFBRTtnQkFDUCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7YUFDOUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFBO0FBVlksUUFBQSxRQUFRLFlBVXBCIn0=
|
|
@@ -11,25 +11,13 @@ const Tree_1 = require("../lib/tree/Tree");
|
|
|
11
11
|
const cli_progress_1 = __importDefault(require("cli-progress"));
|
|
12
12
|
const defaultFilter_1 = require("../lib/filters/defaultFilter");
|
|
13
13
|
const filtering_1 = require("../lib/filters/filtering");
|
|
14
|
+
const helpers_1 = require("./helpers");
|
|
14
15
|
const fs_1 = __importDefault(require("fs"));
|
|
15
|
-
// Async function that verify if a path is a folder. If the path is not valid the promise will be rejected
|
|
16
|
-
const isFolder = (path) => {
|
|
17
|
-
return new Promise((resolve, reject) => {
|
|
18
|
-
fs_1.default.stat(path, (err, stats) => {
|
|
19
|
-
if (err) {
|
|
20
|
-
reject(err);
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
resolve(stats.isDirectory());
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
16
|
async function scanHandler(rootPath, options) {
|
|
29
17
|
let scannerInput = { fileList: [] };
|
|
30
18
|
rootPath = rootPath.replace(/\/$/, ''); // Remove trailing slash if exists
|
|
31
19
|
rootPath = rootPath.replace(/^\./, process.env.PWD); // Convert relative path to absolute path.
|
|
32
|
-
const pathIsFolder = await isFolder(rootPath);
|
|
20
|
+
const pathIsFolder = await (0, helpers_1.isFolder)(rootPath);
|
|
33
21
|
// Create scanner and set connections parameters
|
|
34
22
|
const scannerCfg = new ScannerCfg_1.ScannerCfg();
|
|
35
23
|
if (options.concurrency)
|
|
@@ -97,4 +85,4 @@ async function scanHandler(rootPath, options) {
|
|
|
97
85
|
await scanner.scan([scannerInput]);
|
|
98
86
|
}
|
|
99
87
|
exports.scanHandler = scanHandler;
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUFpRDtBQUNqRCw4REFBMEU7QUFDMUUsMERBQXVEO0FBQ3ZELDJDQUF3QztBQUV4QyxnRUFBdUM7QUFFdkMsZ0VBQTZEO0FBQzdELHdEQUFzRDtBQUV0RCx1Q0FBcUM7QUFFckMsNENBQW9CO0FBSWIsS0FBSyxVQUFVLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE9BQVk7SUFFOUQsSUFBSSxZQUFZLEdBQWlCLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBRWhELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGtDQUFrQztJQUMzRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLDBDQUEwQztJQUNoRyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUEsa0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxnREFBZ0Q7SUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxFQUFFLENBQUM7SUFDcEMsSUFBRyxPQUFPLENBQUMsV0FBVztRQUFFLFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JGLElBQUcsT0FBTyxDQUFDLFFBQVE7UUFBRSxVQUFVLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDdEYsSUFBRyxPQUFPLENBQUMsTUFBTTtRQUFFLFVBQVUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUN2RCxJQUFHLE9BQU8sQ0FBQyxHQUFHO1FBQUUsVUFBVSxD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
|
package/build/main/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export * from './lib/scanner/ScannerTypes';
|
|
|
2
2
|
export * from './lib/scanner/ScannerCfg';
|
|
3
3
|
export * from './lib/scanner/Scanner';
|
|
4
4
|
export * from './lib/dependencies/DependencyTypes';
|
|
5
|
-
export * from './lib/dependencies/
|
|
5
|
+
export * from './lib/dependencies/DependencyScannerCfg';
|
|
6
|
+
export * from './lib/dependencies/DependencyScanner';
|
package/build/main/index.js
CHANGED
|
@@ -14,5 +14,6 @@ __exportStar(require("./lib/scanner/ScannerTypes"), exports);
|
|
|
14
14
|
__exportStar(require("./lib/scanner/ScannerCfg"), exports);
|
|
15
15
|
__exportStar(require("./lib/scanner/Scanner"), exports);
|
|
16
16
|
__exportStar(require("./lib/dependencies/DependencyTypes"), exports);
|
|
17
|
-
__exportStar(require("./lib/dependencies/
|
|
18
|
-
|
|
17
|
+
__exportStar(require("./lib/dependencies/DependencyScannerCfg"), exports);
|
|
18
|
+
__exportStar(require("./lib/dependencies/DependencyScanner"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTJDO0FBQzNDLDJEQUF3QztBQUN4Qyx3REFBcUM7QUFDckMscUVBQW1EO0FBQ25ELDBFQUF3RDtBQUN4RCx1RUFBcUQifQ==
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { DependencyScannerCfg } from "./DependencyScannerCfg";
|
|
2
|
+
import { IDependencyResponse } from "./DependencyTypes";
|
|
3
3
|
export declare class DependencyScanner {
|
|
4
|
+
private localDependency;
|
|
4
5
|
private grpcDependencyService;
|
|
5
|
-
constructor();
|
|
6
|
-
scan(files: Array<string>): Promise<
|
|
6
|
+
constructor(cfg?: DependencyScannerCfg);
|
|
7
|
+
scan(files: Array<string>): Promise<IDependencyResponse>;
|
|
7
8
|
private buildRequest;
|
|
8
|
-
|
|
9
|
+
private mergeScopeField;
|
|
9
10
|
}
|
|
@@ -1,54 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.DependencyScanner = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const fs_1 = __importDefault(require("fs"));
|
|
9
|
-
const mavenParser_1 = require("./parsers/mavenParser");
|
|
10
|
-
const npmParser_1 = require("./parsers/npmParser");
|
|
11
|
-
const pyParser_1 = require("./parsers/pyParser");
|
|
12
|
-
const rubyParser_1 = require("./parsers/rubyParser");
|
|
13
4
|
const GrpcDependencyService_1 = require("../grpc/GrpcDependencyService");
|
|
14
5
|
const scanoss_dependencies_pb_1 = require("../grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb");
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Any parser function must return a ILocalDependencies object (See DependencyTypes.ts)
|
|
18
|
-
*/
|
|
19
|
-
const Parser = {
|
|
20
|
-
'requirements.txt': pyParser_1.requirementsParser,
|
|
21
|
-
'pom.xml': mavenParser_1.pomParser,
|
|
22
|
-
'package.json': npmParser_1.packageParser,
|
|
23
|
-
'package-lock.json': npmParser_1.packagelockParser,
|
|
24
|
-
'Gemfile': rubyParser_1.gemfileParser,
|
|
25
|
-
'Gemfile.lock': rubyParser_1.gemfilelockParser
|
|
26
|
-
};
|
|
6
|
+
const LocalDependency_1 = require("./LocalDependency/LocalDependency");
|
|
7
|
+
const DependencyScannerCfg_1 = require("./DependencyScannerCfg");
|
|
27
8
|
class DependencyScanner {
|
|
28
|
-
constructor() {
|
|
29
|
-
this.grpcDependencyService = new GrpcDependencyService_1.GrpcDependencyService();
|
|
9
|
+
constructor(cfg = new DependencyScannerCfg_1.DependencyScannerCfg()) {
|
|
10
|
+
this.grpcDependencyService = new GrpcDependencyService_1.GrpcDependencyService(cfg.DEFAULT_GRPC_HOST, cfg.DEFAULT_GRPC_PORT);
|
|
11
|
+
this.localDependency = new LocalDependency_1.LocalDependencies();
|
|
30
12
|
}
|
|
31
13
|
async scan(files) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
14
|
+
const localDependencies = await this.localDependency.search(files);
|
|
15
|
+
if (localDependencies.files.length === 0)
|
|
16
|
+
return { filesList: [] };
|
|
17
|
+
const request = this.buildRequest(localDependencies);
|
|
18
|
+
const grpcResponse = await this.grpcDependencyService.get(request);
|
|
19
|
+
const response = grpcResponse.toObject();
|
|
20
|
+
// Extract scope from localDependencies and add it to response
|
|
21
|
+
this.mergeScopeField(localDependencies, response);
|
|
22
|
+
return response;
|
|
41
23
|
}
|
|
42
24
|
buildRequest(localDependencies) {
|
|
43
25
|
try {
|
|
44
26
|
const depRequest = new scanoss_dependencies_pb_1.DependencyRequest();
|
|
27
|
+
depRequest.setDepth(1);
|
|
45
28
|
for (const file of localDependencies.files) {
|
|
46
29
|
const fileMsg = new scanoss_dependencies_pb_1.DependencyRequest.Files();
|
|
47
30
|
fileMsg.setFile(file.file);
|
|
48
31
|
for (const purl of file.purls) {
|
|
49
32
|
const purlMsg = new scanoss_dependencies_pb_1.DependencyRequest.Purls();
|
|
50
33
|
purlMsg.setPurl(purl.purl);
|
|
51
|
-
|
|
34
|
+
if (purl === null || purl === void 0 ? void 0 : purl.requirement)
|
|
35
|
+
purlMsg.setRequirement(purl.requirement);
|
|
52
36
|
fileMsg.addPurls(purlMsg);
|
|
53
37
|
}
|
|
54
38
|
depRequest.addFiles(fileMsg);
|
|
@@ -60,25 +44,25 @@ class DependencyScanner {
|
|
|
60
44
|
return null;
|
|
61
45
|
}
|
|
62
46
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
for (const
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
47
|
+
mergeScopeField(localdependency, serverResponse) {
|
|
48
|
+
const scopeHashMap = {};
|
|
49
|
+
for (const file of localdependency.files) {
|
|
50
|
+
const filename = file.file;
|
|
51
|
+
for (const dependency of file.purls) {
|
|
52
|
+
if (dependency === null || dependency === void 0 ? void 0 : dependency.scope)
|
|
53
|
+
scopeHashMap[filename + dependency.purl] = dependency.scope;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
for (const file of serverResponse.filesList) {
|
|
57
|
+
const filename = file.file;
|
|
58
|
+
for (const dependency of file.dependenciesList) {
|
|
59
|
+
const scope = scopeHashMap[filename + dependency.purl];
|
|
60
|
+
if (scope)
|
|
61
|
+
dependency['scope'] = scope;
|
|
78
62
|
}
|
|
79
63
|
}
|
|
80
|
-
return
|
|
64
|
+
return serverResponse;
|
|
81
65
|
}
|
|
82
66
|
}
|
|
83
67
|
exports.DependencyScanner = DependencyScanner;
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5RUFBc0U7QUFDdEUseUdBQW9IO0FBQ3BILHVFQUFzRTtBQUN0RSxpRUFBOEQ7QUFHOUQsTUFBYSxpQkFBaUI7SUFNNUIsWUFBWSxHQUFHLEdBQUcsSUFBSSwyQ0FBb0IsRUFBRTtRQUMxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSw2Q0FBcUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLG1DQUFpQixFQUFFLENBQUM7SUFDakQsQ0FBQztJQUdNLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxFQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUNqRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckQsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUd6Qyw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBR08sWUFBWSxDQUFDLGlCQUFxQztRQUN4RCxJQUFJO1lBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQ0FBaUIsRUFBRSxDQUFDO1lBQzNDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsS0FBSyxNQUFNLElBQUksSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7Z0JBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksMkNBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksMkNBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMzQixJQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxXQUFXO3dCQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUMvRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMzQjtnQkFDRCxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsZUFBbUMsRUFBRSxjQUEyQztRQUd0RyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFeEIsS0FBSyxNQUFNLElBQUksSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFO1lBQ3hDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7WUFDMUIsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNuQyxJQUFJLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxLQUFLO29CQUFFLFlBQVksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7YUFDcEY7U0FDRjtRQUVELEtBQUssTUFBTSxJQUFJLElBQUksY0FBYyxDQUFDLFNBQVMsRUFBRTtZQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1lBQzFCLEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUM5QyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxLQUFLO29CQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDeEM7U0FDRjtRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7Q0FFRjtBQXZFRCw4Q0F1RUMifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DependencyScannerCfg = void 0;
|
|
4
|
+
class DependencyScannerCfg {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.DEFAULT_GRPC_PORT = '443';
|
|
7
|
+
this.DEFAULT_GRPC_HOST = 'scanoss.com';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.DependencyScannerCfg = DependencyScannerCfg;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXJDZmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lckNmZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLG9CQUFvQjtJQUFqQztRQUVFLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUxQixzQkFBaUIsR0FBRyxhQUFhLENBQUM7SUFFcEMsQ0FBQztDQUFBO0FBTkQsb0RBTUMifQ==
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
interface
|
|
1
|
+
export interface LicensesList {
|
|
2
2
|
name: string;
|
|
3
|
+
spdxId: string;
|
|
4
|
+
isSpdxApproved: boolean;
|
|
3
5
|
}
|
|
4
|
-
export interface
|
|
6
|
+
export interface DependenciesList {
|
|
5
7
|
component: string;
|
|
6
8
|
purl: string;
|
|
7
|
-
version
|
|
8
|
-
|
|
9
|
+
version?: string;
|
|
10
|
+
scope?: string;
|
|
11
|
+
licensesList: LicensesList[];
|
|
9
12
|
}
|
|
10
|
-
export interface
|
|
13
|
+
export interface FilesList {
|
|
11
14
|
file: string;
|
|
12
15
|
id: string;
|
|
13
16
|
status: string;
|
|
14
|
-
|
|
17
|
+
dependenciesList: DependenciesList[];
|
|
15
18
|
}
|
|
16
19
|
export interface IDependencyResponse {
|
|
17
|
-
|
|
20
|
+
filesList: FilesList[];
|
|
18
21
|
}
|
|
19
|
-
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ILocalPurl {
|
|
2
|
+
purl: string;
|
|
3
|
+
requirement?: string;
|
|
4
|
+
scope?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ILocalDependency {
|
|
7
|
+
file: string;
|
|
8
|
+
purls: Array<ILocalPurl>;
|
|
9
|
+
}
|
|
10
|
+
export interface ILocalDependencies {
|
|
11
|
+
files: Array<ILocalDependency>;
|
|
12
|
+
}
|
|
13
|
+
export declare type ParserFuncType = (fileContent: string, filePath: string) => ILocalDependency;
|
|
14
|
+
export interface ParserDefinitions {
|
|
15
|
+
[key: string]: ParserFuncType;
|
|
16
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L0RlcGVuZGVuY3lUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LocalDependencies = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const pyParser_1 = require("./parsers/pyParser");
|
|
10
|
+
const mavenParser_1 = require("./parsers/mavenParser");
|
|
11
|
+
const npmParser_1 = require("./parsers/npmParser");
|
|
12
|
+
const rubyParser_1 = require("./parsers/rubyParser");
|
|
13
|
+
const golangParser_1 = require("./parsers/golangParser");
|
|
14
|
+
class LocalDependencies {
|
|
15
|
+
constructor() {
|
|
16
|
+
/*
|
|
17
|
+
This is a hash map that connect a filename with it's own parser function
|
|
18
|
+
Any parser function must return a ILocalDependencies object (See DependencyTypes.ts)
|
|
19
|
+
*/
|
|
20
|
+
this.parserMap = {
|
|
21
|
+
'requirements.txt': pyParser_1.requirementsParser,
|
|
22
|
+
'pom.xml': mavenParser_1.pomParser,
|
|
23
|
+
'package.json': npmParser_1.packageParser,
|
|
24
|
+
'package-lock.json': npmParser_1.packagelockParser,
|
|
25
|
+
'Gemfile': rubyParser_1.gemfileParser,
|
|
26
|
+
'Gemfile.lock': rubyParser_1.gemfilelockParser,
|
|
27
|
+
'go.mod': golangParser_1.goModParser,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
async search(files) {
|
|
31
|
+
let results = { files: [] };
|
|
32
|
+
for (const filePath of files) {
|
|
33
|
+
const fileName = path_1.default.basename(filePath);
|
|
34
|
+
if (this.parserMap[fileName] != null) {
|
|
35
|
+
try {
|
|
36
|
+
const fileContent = await fs_1.default.promises.readFile(filePath, 'utf8');
|
|
37
|
+
const dependency = this.parserMap[fileName](fileContent, filePath);
|
|
38
|
+
if (dependency.purls.length != 0)
|
|
39
|
+
results.files.push(dependency);
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
console.error(e);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return results;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.LocalDependencies = LocalDependencies;
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxEZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L0xvY2FsRGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQW9CO0FBRXBCLGlEQUF3RDtBQUN4RCx1REFBa0Q7QUFDbEQsbURBQXVFO0FBQ3ZFLHFEQUF3RTtBQUN4RSx5REFBcUQ7QUFFckQsTUFBYSxpQkFBaUI7SUFJNUI7UUFDSTs7O1VBR0U7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2Ysa0JBQWtCLEVBQUUsNkJBQWtCO1lBQ3RDLFNBQVMsRUFBRSx1QkFBUztZQUNwQixjQUFjLEVBQUUseUJBQWE7WUFDN0IsbUJBQW1CLEVBQUUsNkJBQWlCO1lBQ3RDLFNBQVMsRUFBRSwwQkFBYTtZQUN4QixjQUFjLEVBQUUsOEJBQWlCO1lBQ2pDLFFBQVEsRUFBRSwwQkFBVztTQUN0QixDQUFDO0lBQ04sQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxPQUFPLEdBQXVCLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1FBQzlDLEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxFQUFFO1lBQzFCLE1BQU0sUUFBUSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsSUFBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDbkMsSUFBRztvQkFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQ25FLElBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQzt3QkFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3BDO2dCQUFDLE9BQU0sQ0FBQyxFQUFFO29CQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pCLFNBQVM7aUJBQ1Y7YUFDRjtTQUNKO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBdENELDhDQXNDQyJ9
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.goModParser = void 0;
|
|
7
|
+
const packageurl_js_1 = require("packageurl-js");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
function parseModule(str) {
|
|
10
|
+
const res = /(?<type>[^\s]+)(?:\s)+(?<ns_name>[^\s]+)\s?(?<version>(.*))/.exec(str);
|
|
11
|
+
return {
|
|
12
|
+
type: res.groups.type,
|
|
13
|
+
ns_name: res.groups.ns_name,
|
|
14
|
+
version: res.groups.version
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function parseDepLink(str) {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
const res = /.*?(?<ns_name>[^\s]+)\s+(?<version>(.*))/.exec(str);
|
|
20
|
+
return {
|
|
21
|
+
ns_name: (_a = res === null || res === void 0 ? void 0 : res.groups) === null || _a === void 0 ? void 0 : _a.ns_name,
|
|
22
|
+
version: (_b = res === null || res === void 0 ? void 0 : res.groups) === null || _b === void 0 ? void 0 : _b.version
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
// Removes comments and spaces
|
|
26
|
+
function preprocessLine(line) {
|
|
27
|
+
if (line.includes("//"))
|
|
28
|
+
line = line.substring(0, line.indexOf("//"));
|
|
29
|
+
return line.trim();
|
|
30
|
+
}
|
|
31
|
+
const PURL_TYPE = 'golang';
|
|
32
|
+
// See reference on: https://go.dev/ref/mod#go-mod-file
|
|
33
|
+
const MANIFEST_FILE = 'go.mod';
|
|
34
|
+
function goModParser(fileContent, filePath) {
|
|
35
|
+
// If the file is not a go.mod manifest file, return an empty results
|
|
36
|
+
const results = { file: filePath, purls: [] };
|
|
37
|
+
if (path_1.default.basename(filePath) != MANIFEST_FILE)
|
|
38
|
+
return results;
|
|
39
|
+
const lines = fileContent.split('\n');
|
|
40
|
+
const require = [];
|
|
41
|
+
const exclude = [];
|
|
42
|
+
for (let num = 0; num < lines.length; num += 1) {
|
|
43
|
+
let line = preprocessLine(lines[num]);
|
|
44
|
+
if (line.includes('require') && line.includes('(')) {
|
|
45
|
+
num += 1;
|
|
46
|
+
line = preprocessLine(lines[num]);
|
|
47
|
+
while (num < lines.length && line !== ')') {
|
|
48
|
+
const { ns_name, version } = parseDepLink(line);
|
|
49
|
+
const index = ns_name.lastIndexOf('/');
|
|
50
|
+
const namespace = ns_name.substring(0, index);
|
|
51
|
+
const name = ns_name.substring(index + 1);
|
|
52
|
+
const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, namespace, name, version, undefined, undefined).toString();
|
|
53
|
+
results.purls.push({ purl: purlString });
|
|
54
|
+
require.push(line);
|
|
55
|
+
num += 1;
|
|
56
|
+
line = preprocessLine(lines[num]);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return results;
|
|
61
|
+
}
|
|
62
|
+
exports.goModParser = goModParser;
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29sYW5nUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L3BhcnNlcnMvZ29sYW5nUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLGlEQUEyQztBQUMzQyxnREFBd0I7QUFFeEIsU0FBUyxXQUFXLENBQUUsR0FBVztJQUMvQixNQUFNLEdBQUcsR0FBRyw2REFBNkQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEYsT0FBTztRQUNMLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDckIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztRQUMzQixPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPO0tBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUUsR0FBVzs7SUFDaEMsTUFBTSxHQUFHLEdBQUcsMENBQTBDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFLE9BQU87UUFDTCxPQUFPLEVBQUUsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSwwQ0FBRSxPQUFPO1FBQzdCLE9BQU8sRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLDBDQUFFLE9BQU87S0FDOUIsQ0FBQztBQUNKLENBQUM7QUFFRCw4QkFBOEI7QUFDOUIsU0FBUyxjQUFjLENBQUMsSUFBWTtJQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3JCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdkIsQ0FBQztBQUtELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQztBQUczQix1REFBdUQ7QUFDdkQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDO0FBQy9CLFNBQWdCLFdBQVcsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRS9ELHFFQUFxRTtJQUNyRSxNQUFNLE9BQU8sR0FBcUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM5RCxJQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUVuQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNuQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFFbEIsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUcsR0FBRyxJQUFFLENBQUMsRUFBRTtRQUU5QyxJQUFJLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFHdEMsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakQsR0FBRyxJQUFFLENBQUMsQ0FBQztZQUNQLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLEtBQUcsR0FBRyxFQUFFO2dCQUV2QyxNQUFNLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFOUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUUxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLDBCQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztnQkFFdkMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFbkIsR0FBRyxJQUFFLENBQUMsQ0FBQztnQkFDUCxJQUFJLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ25DO1NBQ0Y7S0FDRjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUF4Q0Qsa0NBd0NDIn0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.pomParser = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const packageurl_js_1 = require("packageurl-js");
|
|
9
|
+
const PURL_TYPE = 'maven';
|
|
10
|
+
// Parse a pom.txt file from maven manifest file
|
|
11
|
+
// See reference on: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html
|
|
12
|
+
// and https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
|
|
13
|
+
const MANIFEST_FILE = 'pom.xml';
|
|
14
|
+
function pomParser(fileContent, filePath) {
|
|
15
|
+
// If the file is not a python manifest file, return an empty results
|
|
16
|
+
const results = { file: filePath, purls: [] };
|
|
17
|
+
if (path_1.default.basename(filePath) != MANIFEST_FILE)
|
|
18
|
+
return results;
|
|
19
|
+
const dependencies = fileContent.match(/<dependency>((?:.|\n)*?)<\/dependency>/gm);
|
|
20
|
+
if (dependencies) {
|
|
21
|
+
// TODO: classifier are not supported yet
|
|
22
|
+
dependencies.forEach(dependency => {
|
|
23
|
+
// Extract groupId. It's the purl namespace
|
|
24
|
+
const groupId = dependency.match(/<groupId>([^<]*)<\/groupId>/);
|
|
25
|
+
const namespace = groupId ? groupId[1] : '';
|
|
26
|
+
// Extract artifact id. It's the purl name
|
|
27
|
+
const artifactId = dependency.match(/<artifactId>([^<]*)<\/artifactId>/);
|
|
28
|
+
const name = artifactId ? artifactId[1] : '';
|
|
29
|
+
const versionReg = dependency.match(/<version>([^<]*)<\/version>/);
|
|
30
|
+
let version = versionReg ? versionReg[1] : '';
|
|
31
|
+
const ver = version.match(/\${(.*?)}/);
|
|
32
|
+
if (ver && ver.length >= 1) {
|
|
33
|
+
if (ver[1] === 'project.version') { // TODO: Add support for project.version
|
|
34
|
+
version = undefined;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
const res = fileContent.match(new RegExp(`<${ver[1]}>([^<]*)<\/${ver[1]}>`));
|
|
38
|
+
version = res.length >= 1 ? res[1] : '';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
let purlQualifiers;
|
|
42
|
+
const type = dependency.match(/<type>([^<]*)<\/type>/);
|
|
43
|
+
if (type) {
|
|
44
|
+
purlQualifiers = {};
|
|
45
|
+
purlQualifiers['type'] = type[1];
|
|
46
|
+
}
|
|
47
|
+
// Extract scope.
|
|
48
|
+
const scopeRes = dependency.match(/<scope>([^<]*)<\/scope>/);
|
|
49
|
+
const scope = scopeRes ? scopeRes[1] : undefined;
|
|
50
|
+
const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, namespace, name, version, purlQualifiers, undefined).toString();
|
|
51
|
+
results.purls.push({ purl: purlString, scope: scope });
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return results;
|
|
55
|
+
}
|
|
56
|
+
exports.pomParser = pomParser;
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW5QYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy9tYXZlblBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsaURBQTJDO0FBRzNDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUkxQixnREFBZ0Q7QUFDaEQsOEZBQThGO0FBQzlGLDZGQUE2RjtBQUM3RixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDaEMsU0FBZ0IsU0FBUyxDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7SUFFM0QscUVBQXFFO0lBQ3JFLE1BQU0sT0FBTyxHQUFxQixFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzlELElBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxhQUFhO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDO0lBRW5CLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUNuRixJQUFHLFlBQVksRUFBRTtRQUVmLHlDQUF5QztRQUN6QyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hDLDJDQUEyQztZQUMzQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDaEUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU1QywwQ0FBMEM7WUFDMUMsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFN0MsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ25FLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFOUMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2QyxJQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDekIsSUFBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLEVBQUUsRUFBRSx3Q0FBd0M7b0JBQ3pFLE9BQU8sR0FBRyxTQUFTLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNMLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM3RSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUN6QzthQUNGO1lBRUQsSUFBSSxjQUFjLENBQUM7WUFDbkIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3ZELElBQUcsSUFBSSxFQUFFO2dCQUNMLGNBQWMsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDbkM7WUFFRCxpQkFBaUI7WUFDakIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQzdELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFakQsTUFBTSxVQUFVLEdBQUcsSUFBSSwwQkFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0csT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBakRELDhCQWlEQyJ9
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function packageParser(fileContent: string, filePath: string):
|
|
3
|
-
export declare function packagelockParser(fileContent: string, filePath: string):
|
|
1
|
+
import { ILocalDependency } from "../DependencyTypes";
|
|
2
|
+
export declare function packageParser(fileContent: string, filePath: string): ILocalDependency;
|
|
3
|
+
export declare function packagelockParser(fileContent: string, filePath: string): ILocalDependency;
|