scanoss 0.2.16 → 0.2.19
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/CHANGELOG.md +2 -0
- package/build/main/bin/cli-bin.js +1 -1
- package/build/main/lib/dependencies/Dependency.js +4 -2
- package/build/main/lib/dependencies/DependencyScanner.d.ts +9 -0
- package/build/main/lib/dependencies/DependencyScanner.js +84 -0
- package/build/main/lib/dependencies/PurlGenerator.js +13 -6
- package/build/main/lib/dependencies/parsers/golangParser.d.ts +2 -0
- package/build/main/lib/dependencies/parsers/golangParser.js +63 -3
- package/build/main/lib/dependencies/parsers/mavenParser.js +2 -3
- package/build/main/lib/dependencies/parsers/types.js +1 -31
- package/build/main/lib/grpc/GrpcConfig.d.ts +4 -0
- package/build/main/lib/grpc/GrpcConfig.js +11 -0
- package/build/main/lib/grpc/GrpcDependencyService.d.ts +12 -0
- package/build/main/lib/grpc/GrpcDependencyService.js +81 -0
- package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
- package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
- package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
- package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +405 -0
- package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +42 -0
- package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
- package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
- package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1155 -0
- package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +21 -0
- package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +67 -0
- package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
- package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
- package/build/main/old/Dependency.d.ts +9 -0
- package/build/main/old/Dependency.js +96 -0
- 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 +2 -0
- package/build/main/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
- package/build/main/scanoss/api/common/v2/scanoss-common_pb.js +405 -0
- package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +42 -0
- package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
- package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
- package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1156 -0
- package/build/main/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +21 -0
- package/build/main/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +67 -0
- package/build/main/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
- package/build/main/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
- package/build/module/bin/cli-bin.js +1 -1
- package/build/module/lib/dependencies/Dependency.js +4 -2
- package/build/module/lib/dependencies/DependencyScanner.d.ts +9 -0
- package/build/module/lib/dependencies/DependencyScanner.js +78 -0
- package/build/module/lib/dependencies/PurlGenerator.js +13 -6
- package/build/module/lib/dependencies/parsers/golangParser.d.ts +2 -0
- package/build/module/lib/dependencies/parsers/golangParser.js +55 -3
- package/build/module/lib/dependencies/parsers/mavenParser.js +2 -3
- package/build/module/lib/dependencies/parsers/types.js +1 -31
- package/build/module/lib/grpc/GrpcConfig.d.ts +4 -0
- package/build/module/lib/grpc/GrpcConfig.js +5 -0
- package/build/module/lib/grpc/GrpcDependencyService.d.ts +12 -0
- package/build/module/lib/grpc/GrpcDependencyService.js +60 -0
- package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
- package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
- package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
- package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +405 -0
- package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +42 -0
- package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
- package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
- package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1155 -0
- package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +21 -0
- package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +67 -0
- package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
- package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
- package/build/module/old/Dependency.d.ts +9 -0
- package/build/module/old/Dependency.js +72 -0
- 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 +2 -0
- package/build/module/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
- package/build/module/scanoss/api/common/v2/scanoss-common_pb.js +405 -0
- package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +42 -0
- package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
- package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
- package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1156 -0
- package/build/module/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +21 -0
- package/build/module/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +67 -0
- package/build/module/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
- package/build/module/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
- package/build/tsconfig.module.tsbuildinfo +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package-lock.json +18589 -0
- package/package.json +1 -1
- package/src/bin/cli-bin.ts +1 -1
- package/src/lib/dependencies/Dependency.ts +4 -4
- package/src/lib/dependencies/PurlGenerator.ts +7 -3
- package/src/lib/dependencies/parsers/golangParser.ts +78 -2
- package/src/lib/dependencies/parsers/mavenParser.ts +1 -2
- package/src/lib/dependencies/parsers/types.ts +0 -31
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.2.18](https://github.com/scanoss/scanoss.js/compare/v0.2.16...v0.2.18) (2022-02-23)
|
|
6
|
+
|
|
5
7
|
### [0.2.16](https://github.com/scanoss/scanoss.js/compare/v0.2.14...v0.2.16) (2022-02-14)
|
|
6
8
|
|
|
7
9
|
### [0.2.14](https://github.com/scanoss/scanoss.js/compare/v0.2.10...v0.2.14) (2022-02-09)
|
|
@@ -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.19")
|
|
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>')
|
|
@@ -7,6 +7,7 @@ exports.Dependency = void 0;
|
|
|
7
7
|
const os_1 = __importDefault(require("os"));
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const PurlGenerator_1 = require("./PurlGenerator");
|
|
10
|
+
const packageurl_js_1 = require("packageurl-js");
|
|
10
11
|
class Dependency {
|
|
11
12
|
constructor() {
|
|
12
13
|
this.setWorkDirectory(`${os_1.default.tmpdir()}/depscanner-${new Date().getTime()}`);
|
|
@@ -27,10 +28,11 @@ class Dependency {
|
|
|
27
28
|
for (const dependency of dependencies.files) {
|
|
28
29
|
let depArr = [];
|
|
29
30
|
for (const purl of dependency.purls) {
|
|
31
|
+
const pkg = packageurl_js_1.PackageURL.fromString(purl.purl);
|
|
30
32
|
depArr.push({
|
|
31
33
|
component: null,
|
|
32
34
|
purl: purl.purl,
|
|
33
|
-
version:
|
|
35
|
+
version: pkg.version,
|
|
34
36
|
licenses: [{ name: null }]
|
|
35
37
|
});
|
|
36
38
|
}
|
|
@@ -47,4 +49,4 @@ class Dependency {
|
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
exports.Dependency = Dependency;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL0RlcGVuZGVuY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDRDQUFvQjtBQUlwQixtREFBNEQ7QUFDNUQsaURBQTJDO0FBRTNDLE1BQWEsVUFBVTtJQU1yQjtRQUNFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFlBQUUsQ0FBQyxNQUFNLEVBQUUsZUFBZSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBRSxRQUF1QjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEseUNBQXlCLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQseUNBQXlDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxhQUFxQjtRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsb0JBQW9CLENBQUM7UUFFaEUsSUFBSSxDQUFDLFlBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUFFLFlBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTywyQkFBMkIsQ0FBRSxZQUFnQztRQUNuRSxNQUFNLE9BQU8sR0FBd0IsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFFakQsS0FBSyxNQUFNLFVBQVUsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFDO1lBQzFDLElBQUksTUFBTSxHQUF1QixFQUFFLENBQUM7WUFDcEMsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFO2dCQUNuQyxNQUFNLEdBQUcsR0FBRywwQkFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRTdDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ1YsU0FBUyxFQUFFLElBQUk7b0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDcEIsUUFBUSxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7aUJBQ3pCLENBQUMsQ0FBQzthQUNKO1lBRUQsSUFBSSxPQUFPLEdBQVUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxDQUFDO2dCQUNULElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixZQUFZLEVBQUUsTUFBTTthQUNyQixDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7Q0FDRjtBQW5ERCxnQ0FtREMifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ILocalDependencies } from "./DependencyTypes";
|
|
2
|
+
import { DependencyResponse } from "../grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb";
|
|
3
|
+
export declare class DependencyScanner {
|
|
4
|
+
private grpcDependencyService;
|
|
5
|
+
constructor();
|
|
6
|
+
scan(files: Array<string>): Promise<DependencyResponse>;
|
|
7
|
+
private buildRequest;
|
|
8
|
+
localDependencySearch(files: Array<string>): Promise<ILocalDependencies>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
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.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
|
+
const GrpcDependencyService_1 = require("../grpc/GrpcDependencyService");
|
|
14
|
+
const scanoss_dependencies_pb_1 = require("../grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb");
|
|
15
|
+
/*
|
|
16
|
+
This is a hash map that connect a filename with it's own parser function
|
|
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
|
+
};
|
|
27
|
+
class DependencyScanner {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.grpcDependencyService = new GrpcDependencyService_1.GrpcDependencyService();
|
|
30
|
+
}
|
|
31
|
+
async scan(files) {
|
|
32
|
+
try {
|
|
33
|
+
const localDependencies = await this.localDependencySearch(files);
|
|
34
|
+
const request = this.buildRequest(localDependencies);
|
|
35
|
+
return await this.grpcDependencyService.get(request);
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
console.error(e);
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
buildRequest(localDependencies) {
|
|
43
|
+
try {
|
|
44
|
+
const depRequest = new scanoss_dependencies_pb_1.DependencyRequest();
|
|
45
|
+
for (const file of localDependencies.files) {
|
|
46
|
+
const fileMsg = new scanoss_dependencies_pb_1.DependencyRequest.Files();
|
|
47
|
+
fileMsg.setFile(file.file);
|
|
48
|
+
for (const purl of file.purls) {
|
|
49
|
+
const purlMsg = new scanoss_dependencies_pb_1.DependencyRequest.Purls();
|
|
50
|
+
purlMsg.setPurl(purl.purl);
|
|
51
|
+
purlMsg.setRequirement(purl.requirements);
|
|
52
|
+
fileMsg.addPurls(purlMsg);
|
|
53
|
+
}
|
|
54
|
+
depRequest.addFiles(fileMsg);
|
|
55
|
+
}
|
|
56
|
+
return depRequest;
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
console.error(e);
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async localDependencySearch(files) {
|
|
64
|
+
let results = { files: [] };
|
|
65
|
+
for (const filePath of files) {
|
|
66
|
+
const fileName = path_1.default.basename(filePath);
|
|
67
|
+
if (Parser[fileName] != null) {
|
|
68
|
+
try {
|
|
69
|
+
const fileContent = await fs_1.default.promises.readFile(filePath, 'utf8');
|
|
70
|
+
const dependency = Parser[fileName](fileContent, filePath);
|
|
71
|
+
if (dependency.purls.length != 0)
|
|
72
|
+
results.files.push(dependency);
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
console.error(e);
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return results;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.DependencyScanner = DependencyScanner;
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQW9CO0FBR3BCLHVEQUFrRDtBQUNsRCxtREFBdUU7QUFDdkUsaURBQXdEO0FBQ3hELHFEQUF3RTtBQUN4RSx5RUFBc0U7QUFDdEUseUdBQW9IO0FBRXBIOzs7RUFHRTtBQUNGLE1BQU0sTUFBTSxHQUFzQjtJQUNoQyxrQkFBa0IsRUFBRSw2QkFBa0I7SUFDdEMsU0FBUyxFQUFFLHVCQUFTO0lBQ3BCLGNBQWMsRUFBRSx5QkFBYTtJQUM3QixtQkFBbUIsRUFBRSw2QkFBaUI7SUFDdEMsU0FBUyxFQUFFLDBCQUFhO0lBQ3hCLGNBQWMsRUFBRSw4QkFBaUI7Q0FDbEMsQ0FBQztBQUdGLE1BQWEsaUJBQWlCO0lBSTVCO1FBQ0UsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksNkNBQXFCLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBR00sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFvQjtRQUNwQyxJQUFJO1lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDckQsT0FBTyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEQ7UUFBQyxPQUFNLENBQUMsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFHTyxZQUFZLENBQUMsaUJBQXFDO1FBQ3hELElBQUk7WUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLDJDQUFpQixFQUFFLENBQUM7WUFDM0MsS0FBSyxNQUFNLElBQUksSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7Z0JBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksMkNBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksMkNBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMzQixPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDM0I7Z0JBQ0QsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM5QjtZQUNELE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLHFCQUFxQixDQUFDLEtBQW9CO1FBQ3JELElBQUksT0FBTyxHQUF1QixFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUM5QyxLQUFLLE1BQU0sUUFBUSxJQUFJLEtBQUssRUFBRTtZQUMxQixNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLElBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDM0IsSUFBRztvQkFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDakUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDM0QsSUFBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO3dCQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDcEM7Z0JBQUMsT0FBTSxDQUFDLEVBQUU7b0JBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDakIsU0FBUztpQkFDVjthQUNGO1NBQ0o7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUY7QUE3REQsOENBNkRDIn0=
|
|
@@ -10,6 +10,7 @@ const mavenParser_1 = require("./parsers/mavenParser");
|
|
|
10
10
|
const npmParser_1 = require("./parsers/npmParser");
|
|
11
11
|
const pyParser_1 = require("./parsers/pyParser");
|
|
12
12
|
const rubyParser_1 = require("./parsers/rubyParser");
|
|
13
|
+
const golangParser_1 = require("./parsers/golangParser");
|
|
13
14
|
/*
|
|
14
15
|
This is a hash map that connect a filename with it's own parser function
|
|
15
16
|
Any parser function must return a FileDependency object (See type.ts file in src/parser
|
|
@@ -20,20 +21,26 @@ const Parser = {
|
|
|
20
21
|
'package.json': npmParser_1.packageParser,
|
|
21
22
|
'package-lock.json': npmParser_1.packagelockParser,
|
|
22
23
|
'Gemfile': rubyParser_1.gemfileParser,
|
|
23
|
-
'Gemfile.lock': rubyParser_1.gemfilelockParser
|
|
24
|
+
'Gemfile.lock': rubyParser_1.gemfilelockParser,
|
|
25
|
+
'go.mod': golangParser_1.goModParser,
|
|
24
26
|
};
|
|
25
27
|
async function generateDependenciesPurls(files) {
|
|
26
28
|
let results = { files: [] };
|
|
27
29
|
for (const filePath of files) {
|
|
28
30
|
const fileName = path_1.default.basename(filePath);
|
|
29
31
|
if (Parser[fileName] != null) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
try {
|
|
33
|
+
const fileContent = await fs_1.default.promises.readFile(filePath, 'utf8');
|
|
34
|
+
const dependency = Parser[fileName](fileContent, filePath);
|
|
35
|
+
if (dependency.purls.length != 0)
|
|
36
|
+
results.files.push(dependency);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error(`Error parsing file: ${filePath}\n`, error);
|
|
40
|
+
}
|
|
34
41
|
}
|
|
35
42
|
}
|
|
36
43
|
return results;
|
|
37
44
|
}
|
|
38
45
|
exports.generateDependenciesPurls = generateDependenciesPurls;
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVybEdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL1B1cmxHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUl4Qix1REFBa0Q7QUFDbEQsbURBQXVFO0FBQ3ZFLGlEQUF3RDtBQUN4RCxxREFBd0U7QUFDeEUseURBQXFEO0FBR3JEOzs7RUFHRTtBQUNGLE1BQU0sTUFBTSxHQUFzQjtJQUM5QixrQkFBa0IsRUFBRSw2QkFBa0I7SUFDdEMsU0FBUyxFQUFFLHVCQUFTO0lBQ3BCLGNBQWMsRUFBRSx5QkFBYTtJQUM3QixtQkFBbUIsRUFBRSw2QkFBaUI7SUFDdEMsU0FBUyxFQUFFLDBCQUFhO0lBQ3hCLGNBQWMsRUFBRSw4QkFBaUI7SUFDakMsUUFBUSxFQUFFLDBCQUFXO0NBQ3hCLENBQUM7QUFHSyxLQUFLLFVBQVUseUJBQXlCLENBQUMsS0FBb0I7SUFDaEUsSUFBSSxPQUFPLEdBQXVCLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzlDLEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxFQUFFO1FBQzFCLE1BQU0sUUFBUSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsSUFBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzNCLElBQUk7Z0JBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2pFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzNELElBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDcEM7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixRQUFRLElBQUksRUFBQyxLQUFLLENBQUMsQ0FBQzthQUMxRDtTQUNGO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBaEJELDhEQWdCQyJ9
|
|
@@ -1,3 +1,63 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29sYW5nUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcGFyc2Vycy9nb2xhbmdQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaURBQTJDO0FBQzNDLGdEQUF3QjtBQUd4QixTQUFTLFdBQVcsQ0FBRSxHQUFXO0lBQy9CLE1BQU0sR0FBRyxHQUFHLDZEQUE2RCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwRixPQUFPO1FBQ0wsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSTtRQUNyQixPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQzNCLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU87S0FDNUIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBRSxHQUFXOztJQUNoQyxNQUFNLEdBQUcsR0FBRywwQ0FBMEMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakUsT0FBTztRQUNMLE9BQU8sRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLDBDQUFFLE9BQU87UUFDN0IsT0FBTyxFQUFFLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sMENBQUUsT0FBTztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVELDhCQUE4QjtBQUM5QixTQUFTLGNBQWMsQ0FBQyxJQUFZO0lBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN2QixDQUFDO0FBS0QsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDO0FBRzNCLHVEQUF1RDtBQUN2RCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUM7QUFDL0IsU0FBZ0IsV0FBVyxDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7SUFFL0QscUVBQXFFO0lBQ3JFLE1BQU0sT0FBTyxHQUFtQixFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzVELElBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxhQUFhO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDO0lBRW5CLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ25CLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUVsQixLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRyxHQUFHLElBQUUsQ0FBQyxFQUFFO1FBRTlDLElBQUksSUFBSSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUd0QyxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqRCxHQUFHLElBQUUsQ0FBQyxDQUFDO1lBQ1AsSUFBSSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNsQyxPQUFPLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksS0FBRyxHQUFHLEVBQUU7Z0JBRXZDLE1BQU0sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUU5QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBRTFDLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO2dCQUV2QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVuQixHQUFHLElBQUUsQ0FBQyxDQUFDO2dCQUNQLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDbkM7U0FDRjtLQUNGO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQXhDRCxrQ0F3Q0MifQ==
|
|
@@ -29,8 +29,7 @@ function pomParser(fileContent, filePath) {
|
|
|
29
29
|
const versionReg = dependency.match(/<version>([^<]*)<\/version>/);
|
|
30
30
|
let version = versionReg ? versionReg[1] : '';
|
|
31
31
|
const ver = version.match(/\${(.*?)}/);
|
|
32
|
-
|
|
33
|
-
if (!ver || ver.length != 0) {
|
|
32
|
+
if (ver && ver.length >= 1) {
|
|
34
33
|
if (ver[1] === 'project.version') { // TODO: Add support for project.version
|
|
35
34
|
version = undefined;
|
|
36
35
|
}
|
|
@@ -52,4 +51,4 @@ function pomParser(fileContent, filePath) {
|
|
|
52
51
|
return results;
|
|
53
52
|
}
|
|
54
53
|
exports.pomParser = pomParser;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW5QYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL21hdmVuUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF3QjtBQUN4QixpREFBMkM7QUFJM0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDO0FBRzFCLGdEQUFnRDtBQUNoRCw4RkFBOEY7QUFDOUYsNkZBQTZGO0FBQzdGLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUNoQyxTQUFnQixTQUFTLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUUzRCxxRUFBcUU7SUFDckUsTUFBTSxPQUFPLEdBQW1CLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDNUQsSUFBRyxjQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFFbkIsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQ25GLElBQUcsWUFBWSxFQUFFO1FBRWYseUNBQXlDO1FBQ3pDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDaEMsMkNBQTJDO1lBQzNDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNoRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTVDLDBDQUEwQztZQUMxQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7WUFDekUsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU3QyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDbkUsSUFBSSxPQUFPLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU5QyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFHO2dCQUMxQixJQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsRUFBRSxFQUFFLHdDQUF3QztvQkFDekUsT0FBTyxHQUFHLFNBQVMsQ0FBQztpQkFDckI7cUJBQU07b0JBQ0wsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzdFLE9BQU8sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7aUJBQ3pDO2FBQ0Y7WUFFRCxJQUFJLGNBQWMsQ0FBQztZQUNuQixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDdkQsSUFBRyxJQUFJLEVBQUU7Z0JBQ0wsY0FBYyxHQUFHLEVBQUUsQ0FBQztnQkFDcEIsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNuQztZQUVELE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUE3Q0QsOEJBNkNDIn0=
|
|
@@ -1,33 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
EXAMPLE
|
|
5
|
-
{
|
|
6
|
-
"files": [
|
|
7
|
-
{
|
|
8
|
-
"file": "./test/data/requirements.txt",
|
|
9
|
-
"purls": [
|
|
10
|
-
{
|
|
11
|
-
"purl": "pkg:pypi/requests"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"purl": "pkg:pypi/crc32c@2.2"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"purl": "pkg:pypi/binaryornot"
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"purl": "pkg:pypi/progress"
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"purl": "pkg:pypi/grpcio"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"purl": "pkg:pypi/protobuf"
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
}
|
|
32
|
-
*/
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBb0JBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTZCRSJ9
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GrpcConfig = void 0;
|
|
4
|
+
class GrpcConfig {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.DEFAULT_GRPC_PORT = 50051;
|
|
7
|
+
this.DEFAULT_GRPC_HOST = 'localhost';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.GrpcConfig = GrpcConfig;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY0NvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZ3JwYy9HcnBjQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQWEsVUFBVTtJQUF2QjtRQUVFLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUxQixzQkFBaUIsR0FBRyxXQUFXLENBQUM7SUFFbEMsQ0FBQztDQUFBO0FBTkQsZ0NBTUMifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GrpcConfig } from './GrpcConfig';
|
|
2
|
+
import * as DependenciesMessages from './scanoss/api/dependencies/v2/scanoss-dependencies_pb.js';
|
|
3
|
+
import * as CommonMessages from './scanoss/api/common/v2/scanoss-common_pb';
|
|
4
|
+
export declare class GrpcDependencyService {
|
|
5
|
+
private client;
|
|
6
|
+
private config;
|
|
7
|
+
constructor(cfg?: GrpcConfig);
|
|
8
|
+
get(req: DependenciesMessages.DependencyRequest): Promise<DependenciesMessages.DependencyResponse>;
|
|
9
|
+
private buildDepRequestFromPlainObject;
|
|
10
|
+
echo(req: CommonMessages.EchoRequest): Promise<CommonMessages.EchoResponse>;
|
|
11
|
+
private buildEchoRequestFromPlainObject;
|
|
12
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.GrpcDependencyService = void 0;
|
|
23
|
+
const grpc = __importStar(require("@grpc/grpc-js"));
|
|
24
|
+
const GrpcConfig_1 = require("./GrpcConfig");
|
|
25
|
+
const scanoss_dependencies_grpc_pb_1 = require("./scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb");
|
|
26
|
+
const DependenciesMessages = __importStar(require("./scanoss/api/dependencies/v2/scanoss-dependencies_pb.js"));
|
|
27
|
+
const CommonMessages = __importStar(require("./scanoss/api/common/v2/scanoss-common_pb"));
|
|
28
|
+
class GrpcDependencyService {
|
|
29
|
+
constructor(cfg = new GrpcConfig_1.GrpcConfig()) {
|
|
30
|
+
this.config = cfg;
|
|
31
|
+
this.client = new scanoss_dependencies_grpc_pb_1.DependenciesClient(this.config.DEFAULT_GRPC_HOST + ':' + this.config.DEFAULT_GRPC_PORT, grpc.credentials.createInsecure());
|
|
32
|
+
}
|
|
33
|
+
async get(req) {
|
|
34
|
+
//const msg = this.buildDepRequestFromPlainObject(request);
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
this.client.getDependencies(req, (err, response) => {
|
|
37
|
+
if (err)
|
|
38
|
+
reject(err);
|
|
39
|
+
resolve(response);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
buildDepRequestFromPlainObject(plainObj) {
|
|
44
|
+
try {
|
|
45
|
+
const depMessage = new DependenciesMessages.DependencyRequest();
|
|
46
|
+
for (const dependency of plainObj.filesList) {
|
|
47
|
+
const fileMsg = new DependenciesMessages.DependencyRequest.Files();
|
|
48
|
+
fileMsg.setFile(dependency.file);
|
|
49
|
+
for (const purl of dependency.purlsList) {
|
|
50
|
+
const purlMsg = new DependenciesMessages.DependencyRequest.Purls();
|
|
51
|
+
purlMsg.setPurl(purl.purl);
|
|
52
|
+
purlMsg.setRequirement(purl.requirement);
|
|
53
|
+
fileMsg.addPurls(purlMsg);
|
|
54
|
+
}
|
|
55
|
+
depMessage.addFiles(fileMsg);
|
|
56
|
+
}
|
|
57
|
+
return depMessage;
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
console.error(e);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async echo(req) {
|
|
65
|
+
//const msg = this.buildEchoRequestFromPlainObject(request);
|
|
66
|
+
return new Promise((resolve, reject) => {
|
|
67
|
+
this.client.echo(req, (err, response) => {
|
|
68
|
+
if (err)
|
|
69
|
+
reject(err);
|
|
70
|
+
resolve(response);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
buildEchoRequestFromPlainObject(plainObj) {
|
|
75
|
+
const echoMessage = new CommonMessages.EchoRequest();
|
|
76
|
+
echoMessage.setMessage(plainObj.message);
|
|
77
|
+
return echoMessage;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.GrpcDependencyService = GrpcDependencyService;
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY0RlcGVuZGVuY3lTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9ncnBjL0dycGNEZXBlbmRlbmN5U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXNDO0FBQ3RDLDZDQUEwQztBQUMxQyw2R0FBZ0c7QUFDaEcsK0dBQWlHO0FBRWpHLDBGQUEyRTtBQUUzRSxNQUFhLHFCQUFxQjtJQU1oQyxZQUFZLEdBQUcsR0FBRyxJQUFJLHVCQUFVLEVBQUU7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFFbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlEQUFrQixDQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixHQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBMkM7UUFDMUQsMkRBQTJEO1FBQzNELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUNqRCxJQUFJLEdBQUc7b0JBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyw4QkFBOEIsQ0FBQyxRQUF5RDtRQUM5RixJQUFJO1lBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2hFLEtBQUssTUFBTSxVQUFVLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRTtvQkFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzNCLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN6QyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMzQjtnQkFDRCxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFHTSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQStCO1FBQy9DLDREQUE0RDtRQUM1RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxHQUFHO29CQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR08sK0JBQStCLENBQUMsUUFBNkM7UUFDakYsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckQsV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztDQUVGO0FBL0RELHNEQStEQyJ9
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// GENERATED CODE -- NO SERVICES IN PROTO
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1jb21tb25fZ3JwY19wYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZ3JwYy9zY2Fub3NzL2FwaS9jb21tb24vdjIvc2Nhbm9zcy1jb21tb25fZ3JwY19wYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|