scanoss 0.2.19 → 0.2.20
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/build/main/bin/cli-bin.js +3 -1
- 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 +1 -2
- package/build/main/index.js +2 -3
- package/build/main/lib/dependencies/DependencyScanner.d.ts +6 -5
- package/build/main/lib/dependencies/DependencyScanner.js +31 -49
- 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 +61 -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 +3 -5
- package/build/main/lib/grpc/GrpcDependencyService.js +15 -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 +3 -1
- 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 +1 -2
- package/build/module/index.js +2 -3
- package/build/module/lib/dependencies/DependencyScanner.d.ts +6 -5
- package/build/module/lib/dependencies/DependencyScanner.js +32 -46
- 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 +53 -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 +3 -5
- package/build/module/lib/grpc/GrpcDependencyService.js +15 -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 +2 -2
- package/src/lib/dependencies/DependencyScanner.ts +77 -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 +55 -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 +66 -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
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export namespace ScanningService {
|
|
2
|
-
namespace echo {
|
|
3
|
-
export const path: string;
|
|
4
|
-
export const requestStream: boolean;
|
|
5
|
-
export const responseStream: boolean;
|
|
6
|
-
export const requestType: typeof scanoss_api_common_v2_scanoss$common_pb.EchoRequest;
|
|
7
|
-
export const responseType: typeof scanoss_api_common_v2_scanoss$common_pb.EchoResponse;
|
|
8
|
-
export { serialize_scanoss_api_common_v2_EchoRequest as requestSerialize };
|
|
9
|
-
export { deserialize_scanoss_api_common_v2_EchoRequest as requestDeserialize };
|
|
10
|
-
export { serialize_scanoss_api_common_v2_EchoResponse as responseSerialize };
|
|
11
|
-
export { deserialize_scanoss_api_common_v2_EchoResponse as responseDeserialize };
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export var ScanningClient: grpc.ServiceClientConstructor;
|
|
15
|
-
import scanoss_api_common_v2_scanoss$common_pb = require("../../../../scanoss/api/common/v2/scanoss-common_pb.js");
|
|
16
|
-
declare function serialize_scanoss_api_common_v2_EchoRequest(arg: any): Buffer;
|
|
17
|
-
declare function deserialize_scanoss_api_common_v2_EchoRequest(buffer_arg: any): scanoss_api_common_v2_scanoss$common_pb.EchoRequest;
|
|
18
|
-
declare function serialize_scanoss_api_common_v2_EchoResponse(arg: any): Buffer;
|
|
19
|
-
declare function deserialize_scanoss_api_common_v2_EchoResponse(buffer_arg: any): scanoss_api_common_v2_scanoss$common_pb.EchoResponse;
|
|
20
|
-
import grpc = require("@grpc/grpc-js");
|
|
21
|
-
export {};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
// GENERATED CODE -- DO NOT EDIT!
|
|
3
|
-
// Original file comments:
|
|
4
|
-
//
|
|
5
|
-
// SPDX-License-Identifier: MIT
|
|
6
|
-
//
|
|
7
|
-
// Copyright (c) 2021, SCANOSS
|
|
8
|
-
//
|
|
9
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
11
|
-
// in the Software without restriction, including without limitation the rights
|
|
12
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
14
|
-
// furnished to do so, subject to the following conditions:
|
|
15
|
-
//
|
|
16
|
-
// The above copyright notice and this permission notice shall be included in
|
|
17
|
-
// all copies or substantial portions of the Software.
|
|
18
|
-
//
|
|
19
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
25
|
-
// THE SOFTWARE.
|
|
26
|
-
//
|
|
27
|
-
// **
|
|
28
|
-
// Scanning definition details
|
|
29
|
-
// *
|
|
30
|
-
'use strict';
|
|
31
|
-
const grpc = require('@grpc/grpc-js');
|
|
32
|
-
const scanoss_api_common_v2_scanoss$common_pb = require('../../../../scanoss/api/common/v2/scanoss-common_pb.js');
|
|
33
|
-
function serialize_scanoss_api_common_v2_EchoRequest(arg) {
|
|
34
|
-
if (!(arg instanceof scanoss_api_common_v2_scanoss$common_pb.EchoRequest)) {
|
|
35
|
-
throw new Error('Expected argument of type scanoss.api.common.v2.EchoRequest');
|
|
36
|
-
}
|
|
37
|
-
return Buffer.from(arg.serializeBinary());
|
|
38
|
-
}
|
|
39
|
-
function deserialize_scanoss_api_common_v2_EchoRequest(buffer_arg) {
|
|
40
|
-
return scanoss_api_common_v2_scanoss$common_pb.EchoRequest.deserializeBinary(new Uint8Array(buffer_arg));
|
|
41
|
-
}
|
|
42
|
-
function serialize_scanoss_api_common_v2_EchoResponse(arg) {
|
|
43
|
-
if (!(arg instanceof scanoss_api_common_v2_scanoss$common_pb.EchoResponse)) {
|
|
44
|
-
throw new Error('Expected argument of type scanoss.api.common.v2.EchoResponse');
|
|
45
|
-
}
|
|
46
|
-
return Buffer.from(arg.serializeBinary());
|
|
47
|
-
}
|
|
48
|
-
function deserialize_scanoss_api_common_v2_EchoResponse(buffer_arg) {
|
|
49
|
-
return scanoss_api_common_v2_scanoss$common_pb.EchoResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
|
50
|
-
}
|
|
51
|
-
// Expose all of the SCANOSS Scanning RPCs here
|
|
52
|
-
const ScanningService = exports.ScanningService = {
|
|
53
|
-
// Standard echo
|
|
54
|
-
echo: {
|
|
55
|
-
path: '/scanoss.api.scanning.v2.Scanning/Echo',
|
|
56
|
-
requestStream: false,
|
|
57
|
-
responseStream: false,
|
|
58
|
-
requestType: scanoss_api_common_v2_scanoss$common_pb.EchoRequest,
|
|
59
|
-
responseType: scanoss_api_common_v2_scanoss$common_pb.EchoResponse,
|
|
60
|
-
requestSerialize: serialize_scanoss_api_common_v2_EchoRequest,
|
|
61
|
-
requestDeserialize: deserialize_scanoss_api_common_v2_EchoRequest,
|
|
62
|
-
responseSerialize: serialize_scanoss_api_common_v2_EchoResponse,
|
|
63
|
-
responseDeserialize: deserialize_scanoss_api_common_v2_EchoResponse,
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
exports.ScanningClient = grpc.makeGenericClientConstructor(ScanningService);
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1zY2FubmluZ19ncnBjX3BiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjYW5vc3MvYXBpL3NjYW5uaW5nL3YyL3NjYW5vc3Mtc2Nhbm5pbmdfZ3JwY19wYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjO0FBQ2QsaUNBQWlDO0FBRWpDLDBCQUEwQjtBQUMxQixFQUFFO0FBQ0YsK0JBQStCO0FBQy9CLEVBQUU7QUFDRiw4QkFBOEI7QUFDOUIsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSxnRkFBZ0Y7QUFDaEYsK0VBQStFO0FBQy9FLDRFQUE0RTtBQUM1RSx3RUFBd0U7QUFDeEUsMkRBQTJEO0FBQzNELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0Usc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsMkVBQTJFO0FBQzNFLDhFQUE4RTtBQUM5RSx5RUFBeUU7QUFDekUsZ0ZBQWdGO0FBQ2hGLDRFQUE0RTtBQUM1RSxnQkFBZ0I7QUFDaEIsRUFBRTtBQUNGLEtBQUs7QUFDTCw4QkFBOEI7QUFDOUIsSUFBSTtBQUNKLFlBQVksQ0FBQztBQUNiLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUN0QyxNQUFNLHVDQUF1QyxHQUFHLE9BQU8sQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0FBRWxILFNBQVMsMkNBQTJDLENBQUMsR0FBRztJQUN0RCxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksdUNBQXVDLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDekUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0tBQ2hGO0lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxTQUFTLDZDQUE2QyxDQUFDLFVBQVU7SUFDL0QsT0FBTyx1Q0FBdUMsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUMzRyxDQUFDO0FBRUQsU0FBUyw0Q0FBNEMsQ0FBQyxHQUFHO0lBQ3ZELElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSx1Q0FBdUMsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUMxRSxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7S0FDakY7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELFNBQVMsOENBQThDLENBQUMsVUFBVTtJQUNoRSxPQUFPLHVDQUF1QyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzVHLENBQUM7QUFHRCwrQ0FBK0M7QUFDL0MsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsR0FBRztJQUNoRCxnQkFBZ0I7SUFDaEIsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLHdDQUF3QztRQUM5QyxhQUFhLEVBQUUsS0FBSztRQUNwQixjQUFjLEVBQUUsS0FBSztRQUNyQixXQUFXLEVBQUUsdUNBQXVDLENBQUMsV0FBVztRQUNoRSxZQUFZLEVBQUUsdUNBQXVDLENBQUMsWUFBWTtRQUNsRSxnQkFBZ0IsRUFBRSwyQ0FBMkM7UUFDN0Qsa0JBQWtCLEVBQUUsNkNBQTZDO1FBQ2pFLGlCQUFpQixFQUFFLDRDQUE0QztRQUMvRCxtQkFBbUIsRUFBRSw4Q0FBOEM7S0FDcEU7Q0FDRixDQUFDO0FBRUYsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsZUFBZSxDQUFDLENBQUMifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/**
|
|
3
|
-
* @fileoverview
|
|
4
|
-
* @enhanceable
|
|
5
|
-
* @suppress {messageConventions} JS Compiler reports an error if a variable or
|
|
6
|
-
* field starts with 'MSG_' and isn't a translatable message.
|
|
7
|
-
* @public
|
|
8
|
-
*/
|
|
9
|
-
// GENERATED CODE -- DO NOT EDIT!
|
|
10
|
-
const jspb = require('google-protobuf');
|
|
11
|
-
const goog = jspb;
|
|
12
|
-
const global = Function('return this')();
|
|
13
|
-
const scanoss_api_common_v2_scanoss$common_pb = require('../../../../scanoss/api/common/v2/scanoss-common_pb.js');
|
|
14
|
-
goog.object.extend(exports, proto.scanoss.api.scanning.v2);
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1zY2FubmluZ19wYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zY2Fub3NzL2FwaS9zY2FubmluZy92Mi9zY2Fub3NzLXNjYW5uaW5nX3BiLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZDs7Ozs7O0dBTUc7QUFDSCxpQ0FBaUM7QUFFakMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0FBRXpDLE1BQU0sdUNBQXVDLEdBQUcsT0FBTyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7QUFDbEgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyJ9
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { IDependencyResponse } from "./DependencyTypes";
|
|
2
|
-
export declare class Dependency {
|
|
3
|
-
private workDirectory;
|
|
4
|
-
private resultFilePath;
|
|
5
|
-
constructor();
|
|
6
|
-
scan(fileList: Array<string>): Promise<IDependencyResponse>;
|
|
7
|
-
setWorkDirectory(workDirectory: string): void;
|
|
8
|
-
private adapterToDependencyResponse;
|
|
9
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import os from "os";
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
import { generateDependenciesPurls } from "./PurlGenerator";
|
|
4
|
-
import { PackageURL } from "packageurl-js";
|
|
5
|
-
export class Dependency {
|
|
6
|
-
workDirectory;
|
|
7
|
-
resultFilePath;
|
|
8
|
-
constructor() {
|
|
9
|
-
this.setWorkDirectory(`${os.tmpdir()}/depscanner-${new Date().getTime()}`);
|
|
10
|
-
}
|
|
11
|
-
async scan(fileList) {
|
|
12
|
-
const toGrpc = await generateDependenciesPurls(fileList);
|
|
13
|
-
// Here we should call to the grpc server
|
|
14
|
-
return this.adapterToDependencyResponse(toGrpc);
|
|
15
|
-
}
|
|
16
|
-
setWorkDirectory(workDirectory) {
|
|
17
|
-
this.workDirectory = workDirectory;
|
|
18
|
-
this.resultFilePath = `${this.workDirectory}/dependencies.json`;
|
|
19
|
-
if (!fs.existsSync(this.workDirectory))
|
|
20
|
-
fs.mkdirSync(this.workDirectory);
|
|
21
|
-
}
|
|
22
|
-
adapterToDependencyResponse(dependencies) {
|
|
23
|
-
const results = { files: [] };
|
|
24
|
-
for (const dependency of dependencies.files) {
|
|
25
|
-
let depArr = [];
|
|
26
|
-
for (const purl of dependency.purls) {
|
|
27
|
-
const pkg = PackageURL.fromString(purl.purl);
|
|
28
|
-
depArr.push({
|
|
29
|
-
component: null,
|
|
30
|
-
purl: purl.purl,
|
|
31
|
-
version: pkg.version,
|
|
32
|
-
licenses: [{ name: null }]
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
let fileArr = {};
|
|
36
|
-
fileArr = ({
|
|
37
|
-
file: dependency.file,
|
|
38
|
-
id: "dependency",
|
|
39
|
-
status: "pending",
|
|
40
|
-
dependencies: depArr
|
|
41
|
-
});
|
|
42
|
-
results.files.push(fileArr);
|
|
43
|
-
}
|
|
44
|
-
return results;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL0RlcGVuZGVuY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUlwQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU0sT0FBTyxVQUFVO0lBRWIsYUFBYSxDQUFTO0lBRXRCLGNBQWMsQ0FBUztJQUUvQjtRQUNFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsZUFBZSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBRSxRQUF1QjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELHlDQUF5QztRQUN6QyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsYUFBcUI7UUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLG9CQUFvQixDQUFDO1FBRWhFLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sMkJBQTJCLENBQUUsWUFBZ0M7UUFDbkUsTUFBTSxPQUFPLEdBQXdCLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1FBRWpELEtBQUssTUFBTSxVQUFVLElBQUksWUFBWSxDQUFDLEtBQUssRUFBQztZQUMxQyxJQUFJLE1BQU0sR0FBdUIsRUFBRSxDQUFDO1lBQ3BDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtnQkFDbkMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRTdDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ1YsU0FBUyxFQUFFLElBQUk7b0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDcEIsUUFBUSxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7aUJBQ3pCLENBQUMsQ0FBQzthQUNKO1lBRUQsSUFBSSxPQUFPLEdBQVUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxDQUFDO2dCQUNULElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixZQUFZLEVBQUUsTUFBTTthQUNyQixDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7Q0FDRiJ9
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { pomParser } from './parsers/mavenParser';
|
|
4
|
-
import { packagelockParser, packageParser } from './parsers/npmParser';
|
|
5
|
-
import { requirementsParser } from './parsers/pyParser';
|
|
6
|
-
import { gemfilelockParser, gemfileParser } from './parsers/rubyParser';
|
|
7
|
-
import { goModParser } from './parsers/golangParser';
|
|
8
|
-
/*
|
|
9
|
-
This is a hash map that connect a filename with it's own parser function
|
|
10
|
-
Any parser function must return a FileDependency object (See type.ts file in src/parser
|
|
11
|
-
*/
|
|
12
|
-
const Parser = {
|
|
13
|
-
'requirements.txt': requirementsParser,
|
|
14
|
-
'pom.xml': pomParser,
|
|
15
|
-
'package.json': packageParser,
|
|
16
|
-
'package-lock.json': packagelockParser,
|
|
17
|
-
'Gemfile': gemfileParser,
|
|
18
|
-
'Gemfile.lock': gemfilelockParser,
|
|
19
|
-
'go.mod': goModParser,
|
|
20
|
-
};
|
|
21
|
-
export async function generateDependenciesPurls(files) {
|
|
22
|
-
let results = { files: [] };
|
|
23
|
-
for (const filePath of files) {
|
|
24
|
-
const fileName = path.basename(filePath);
|
|
25
|
-
if (Parser[fileName] != null) {
|
|
26
|
-
try {
|
|
27
|
-
const fileContent = await fs.promises.readFile(filePath, 'utf8');
|
|
28
|
-
const dependency = Parser[fileName](fileContent, filePath);
|
|
29
|
-
if (dependency.purls.length != 0)
|
|
30
|
-
results.files.push(dependency);
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
console.error(`Error parsing file: ${filePath}\n`, error);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return results;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVybEdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL1B1cmxHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUl4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHckQ7OztFQUdFO0FBQ0YsTUFBTSxNQUFNLEdBQXNCO0lBQzlCLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxTQUFTLEVBQUUsU0FBUztJQUNwQixjQUFjLEVBQUUsYUFBYTtJQUM3QixtQkFBbUIsRUFBRSxpQkFBaUI7SUFDdEMsU0FBUyxFQUFFLGFBQWE7SUFDeEIsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxRQUFRLEVBQUUsV0FBVztDQUN4QixDQUFDO0FBR0YsTUFBTSxDQUFDLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxLQUFvQjtJQUNoRSxJQUFJLE9BQU8sR0FBdUIsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDOUMsS0FBSyxNQUFNLFFBQVEsSUFBSSxLQUFLLEVBQUU7UUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDM0IsSUFBSTtnQkFDRixNQUFNLFdBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDakUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDM0QsSUFBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO29CQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNwQztZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLFFBQVEsSUFBSSxFQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzFEO1NBQ0Y7S0FDSjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMifQ==
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { PackageURL } from "packageurl-js";
|
|
2
|
-
import path from "path";
|
|
3
|
-
function parseModule(str) {
|
|
4
|
-
const res = /(?<type>[^\s]+)(?:\s)+(?<ns_name>[^\s]+)\s?(?<version>(.*))/.exec(str);
|
|
5
|
-
return {
|
|
6
|
-
type: res.groups.type,
|
|
7
|
-
ns_name: res.groups.ns_name,
|
|
8
|
-
version: res.groups.version
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
function parseDepLink(str) {
|
|
12
|
-
const res = /.*?(?<ns_name>[^\s]+)\s+(?<version>(.*))/.exec(str);
|
|
13
|
-
return {
|
|
14
|
-
ns_name: res?.groups?.ns_name,
|
|
15
|
-
version: res?.groups?.version
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
// Removes comments and spaces
|
|
19
|
-
function preprocessLine(line) {
|
|
20
|
-
if (line.includes("//"))
|
|
21
|
-
line = line.substring(0, line.indexOf("//"));
|
|
22
|
-
return line.trim();
|
|
23
|
-
}
|
|
24
|
-
const PURL_TYPE = 'golang';
|
|
25
|
-
// See reference on: https://go.dev/ref/mod#go-mod-file
|
|
26
|
-
const MANIFEST_FILE = 'go.mod';
|
|
27
|
-
export function goModParser(fileContent, filePath) {
|
|
28
|
-
// If the file is not a go.mod manifest file, return an empty results
|
|
29
|
-
const results = { file: filePath, purls: [] };
|
|
30
|
-
if (path.basename(filePath) != MANIFEST_FILE)
|
|
31
|
-
return results;
|
|
32
|
-
const lines = fileContent.split('\n');
|
|
33
|
-
const require = [];
|
|
34
|
-
const exclude = [];
|
|
35
|
-
for (let num = 0; num < lines.length; num += 1) {
|
|
36
|
-
let line = preprocessLine(lines[num]);
|
|
37
|
-
if (line.includes('require') && line.includes('(')) {
|
|
38
|
-
num += 1;
|
|
39
|
-
line = preprocessLine(lines[num]);
|
|
40
|
-
while (num < lines.length && line !== ')') {
|
|
41
|
-
const { ns_name, version } = parseDepLink(line);
|
|
42
|
-
const index = ns_name.lastIndexOf('/');
|
|
43
|
-
const namespace = ns_name.substring(0, index);
|
|
44
|
-
const name = ns_name.substring(index + 1);
|
|
45
|
-
const purlString = new PackageURL(PURL_TYPE, namespace, name, version, undefined, undefined).toString();
|
|
46
|
-
results.purls.push({ purl: purlString });
|
|
47
|
-
require.push(line);
|
|
48
|
-
num += 1;
|
|
49
|
-
line = preprocessLine(lines[num]);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return results;
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29sYW5nUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcGFyc2Vycy9nb2xhbmdQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFHeEIsU0FBUyxXQUFXLENBQUUsR0FBVztJQUMvQixNQUFNLEdBQUcsR0FBRyw2REFBNkQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEYsT0FBTztRQUNMLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDckIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztRQUMzQixPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPO0tBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUUsR0FBVztJQUNoQyxNQUFNLEdBQUcsR0FBRywwQ0FBMEMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakUsT0FBTztRQUNMLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU87UUFDN0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVELDhCQUE4QjtBQUM5QixTQUFTLGNBQWMsQ0FBQyxJQUFZO0lBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN2QixDQUFDO0FBS0QsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDO0FBRzNCLHVEQUF1RDtBQUN2RCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUM7QUFDL0IsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRS9ELHFFQUFxRTtJQUNyRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUVuQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNuQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFFbEIsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUcsR0FBRyxJQUFFLENBQUMsRUFBRTtRQUU5QyxJQUFJLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFHdEMsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakQsR0FBRyxJQUFFLENBQUMsQ0FBQztZQUNQLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLEtBQUcsR0FBRyxFQUFFO2dCQUV2QyxNQUFNLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFOUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUUxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO2dCQUV2QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVuQixHQUFHLElBQUUsQ0FBQyxDQUFDO2dCQUNQLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDbkM7U0FDRjtLQUNGO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import { PackageURL } from "packageurl-js";
|
|
3
|
-
const PURL_TYPE = 'maven';
|
|
4
|
-
// Parse a pom.txt file from maven manifest file
|
|
5
|
-
// See reference on: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html
|
|
6
|
-
// and https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
|
|
7
|
-
const MANIFEST_FILE = 'pom.xml';
|
|
8
|
-
export function pomParser(fileContent, filePath) {
|
|
9
|
-
// If the file is not a python manifest file, return an empty results
|
|
10
|
-
const results = { file: filePath, purls: [] };
|
|
11
|
-
if (path.basename(filePath) != MANIFEST_FILE)
|
|
12
|
-
return results;
|
|
13
|
-
const dependencies = fileContent.match(/<dependency>((?:.|\n)*?)<\/dependency>/gm);
|
|
14
|
-
if (dependencies) {
|
|
15
|
-
// TODO: classifier are not supported yet
|
|
16
|
-
dependencies.forEach(dependency => {
|
|
17
|
-
// Extract groupId. It's the purl namespace
|
|
18
|
-
const groupId = dependency.match(/<groupId>([^<]*)<\/groupId>/);
|
|
19
|
-
const namespace = groupId ? groupId[1] : '';
|
|
20
|
-
// Extract artifact id. It's the purl name
|
|
21
|
-
const artifactId = dependency.match(/<artifactId>([^<]*)<\/artifactId>/);
|
|
22
|
-
const name = artifactId ? artifactId[1] : '';
|
|
23
|
-
const versionReg = dependency.match(/<version>([^<]*)<\/version>/);
|
|
24
|
-
let version = versionReg ? versionReg[1] : '';
|
|
25
|
-
const ver = version.match(/\${(.*?)}/);
|
|
26
|
-
if (ver && ver.length >= 1) {
|
|
27
|
-
if (ver[1] === 'project.version') { // TODO: Add support for project.version
|
|
28
|
-
version = undefined;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
const res = fileContent.match(new RegExp(`<${ver[1]}>([^<]*)<\/${ver[1]}>`));
|
|
32
|
-
version = res.length >= 1 ? res[1] : '';
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
let purlQualifiers;
|
|
36
|
-
const type = dependency.match(/<type>([^<]*)<\/type>/);
|
|
37
|
-
if (type) {
|
|
38
|
-
purlQualifiers = {};
|
|
39
|
-
purlQualifiers['type'] = type[1];
|
|
40
|
-
}
|
|
41
|
-
const purlString = new PackageURL(PURL_TYPE, namespace, name, version, purlQualifiers, undefined).toString();
|
|
42
|
-
results.purls.push({ purl: purlString });
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
return results;
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW5QYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL21hdmVuUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUcxQixnREFBZ0Q7QUFDaEQsOEZBQThGO0FBQzlGLDZGQUE2RjtBQUM3RixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDaEMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRTNELHFFQUFxRTtJQUNyRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUVuQixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDbkYsSUFBRyxZQUFZLEVBQUU7UUFFZix5Q0FBeUM7UUFDekMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNoQywyQ0FBMkM7WUFDM0MsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFNUMsMENBQTBDO1lBQzFDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUN6RSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTdDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNuRSxJQUFJLE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTlDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsSUFBRyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUc7Z0JBQzFCLElBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLGlCQUFpQixFQUFFLEVBQUUsd0NBQXdDO29CQUN6RSxPQUFPLEdBQUcsU0FBUyxDQUFDO2lCQUNyQjtxQkFBTTtvQkFDTCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDN0UsT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDekM7YUFDRjtZQUVELElBQUksY0FBYyxDQUFDO1lBQ25CLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUN2RCxJQUFHLElBQUksRUFBRTtnQkFDTCxjQUFjLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ25DO1lBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIn0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import { PackageURL } from "packageurl-js";
|
|
3
|
-
const PURL_TYPE = 'npm';
|
|
4
|
-
// Parse a package.json file from node projects
|
|
5
|
-
// See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
|
|
6
|
-
const MANIFEST_FILE = 'package.json';
|
|
7
|
-
export function packageParser(fileContent, filePath) {
|
|
8
|
-
// If the file is not manifest file, return an empty results
|
|
9
|
-
const results = { file: filePath, purls: [] };
|
|
10
|
-
if (path.basename(filePath) != MANIFEST_FILE)
|
|
11
|
-
return results;
|
|
12
|
-
const o = JSON.parse(fileContent);
|
|
13
|
-
let devDeps = Object.keys(o.devDependencies || {});
|
|
14
|
-
let deps = Object.keys(o.dependencies || {});
|
|
15
|
-
let listDeps = [...deps, ...devDeps];
|
|
16
|
-
for (const name of listDeps) {
|
|
17
|
-
const purlString = new PackageURL(PURL_TYPE, undefined, name, undefined, undefined, undefined).toString();
|
|
18
|
-
results.purls.push({ purl: purlString });
|
|
19
|
-
}
|
|
20
|
-
return results;
|
|
21
|
-
}
|
|
22
|
-
// Parse a package-lock.json file from node projects
|
|
23
|
-
// See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
|
|
24
|
-
const MANIFEST_FILE_1 = 'package-lock.json';
|
|
25
|
-
export function packagelockParser(fileContent, filePath) {
|
|
26
|
-
const results = { file: filePath, purls: [] };
|
|
27
|
-
if (path.basename(filePath) != MANIFEST_FILE_1)
|
|
28
|
-
return results;
|
|
29
|
-
const o = JSON.parse(fileContent).dependencies;
|
|
30
|
-
for (const [key, value] of Object.entries(o)) {
|
|
31
|
-
if (!key)
|
|
32
|
-
continue;
|
|
33
|
-
let purl = new PackageURL(PURL_TYPE, undefined, key, value['version'], undefined, undefined).toString();
|
|
34
|
-
results.purls.push({ purl });
|
|
35
|
-
}
|
|
36
|
-
return results;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcGFyc2Vycy9ucG1QYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBR3hCLCtDQUErQztBQUMvQywrRUFBK0U7QUFDL0UsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQ3JDLE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUMvRCw0REFBNEQ7SUFDNUQsTUFBTSxPQUFPLEdBQW1CLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDNUQsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFDbkIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLElBQUksUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNyQyxLQUFJLE1BQU0sSUFBSSxJQUFJLFFBQVEsRUFBQztRQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7S0FDMUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBR0Qsb0RBQW9EO0FBQ3BELCtFQUErRTtBQUMvRSxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQUM1QyxNQUFNLFVBQVUsaUJBQWlCLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUVuRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksZUFBZTtRQUN6QyxPQUFPLE9BQU8sQ0FBQztJQUVuQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUMvQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMxQyxJQUFHLENBQUMsR0FBRztZQUFFLFNBQVM7UUFDbEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUM7S0FDOUI7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIn0=
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import { PackageURL } from "packageurl-js";
|
|
3
|
-
import { isValidPath, isValidUrl } from './utils';
|
|
4
|
-
const PURL_TYPE = 'pypi';
|
|
5
|
-
// Parse a requirements.txt file from python projects
|
|
6
|
-
// See reference on: https://pip.pypa.io/en/stable/reference/requirements-file-format/
|
|
7
|
-
const MANIFEST_FILE = 'requirements.txt';
|
|
8
|
-
export function requirementsParser(fileContent, filePath) {
|
|
9
|
-
// If the file is not a python manifest file, return an empty results
|
|
10
|
-
const results = { file: filePath, purls: [] };
|
|
11
|
-
if (path.basename(filePath) != MANIFEST_FILE)
|
|
12
|
-
return results;
|
|
13
|
-
const lines = fileContent.split('\n');
|
|
14
|
-
let compName = '';
|
|
15
|
-
let compVer = '';
|
|
16
|
-
for (let line of lines) {
|
|
17
|
-
line = line.trim();
|
|
18
|
-
if (!line.startsWith('#') && line.length > 0) { // Avoid comments and new lines
|
|
19
|
-
if (isValidUrl(line)) {
|
|
20
|
-
// For reference about the regex see https://www.rfc-editor.org/rfc/rfc3986#appendix-B
|
|
21
|
-
const res = line.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/);
|
|
22
|
-
continue;
|
|
23
|
-
}
|
|
24
|
-
else if (isValidPath(line)) {
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
else if (line.startsWith('-r')) {
|
|
28
|
-
continue;
|
|
29
|
-
} // recursive dependencies (NOT SUPPORTED YET)
|
|
30
|
-
else {
|
|
31
|
-
// Line contains a package name and/or version.
|
|
32
|
-
const res = line.match(/^([-\w]+)\s*(?:[>=~!]*)\s*([\d\.]*)/); //Extract name and version
|
|
33
|
-
if (res) {
|
|
34
|
-
compName = res.length > 1 ? res[1] : ' ';
|
|
35
|
-
compVer = undefined;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
const purlString = new PackageURL(PURL_TYPE, undefined, compName, compVer, undefined, undefined).toString();
|
|
39
|
-
results.purls.push({ purl: purlString });
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return results;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3B5UGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWxELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztBQUV6QixxREFBcUQ7QUFDckQsc0ZBQXNGO0FBQ3RGLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ3pDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRXBFLHFFQUFxRTtJQUNyRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUduQixNQUFNLEtBQUssR0FBa0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFDMUIsSUFBSSxPQUFPLEdBQVcsRUFBRSxDQUFDO0lBRXpCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUUsRUFBRSwrQkFBK0I7WUFDekUsSUFBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pCLHNGQUFzRjtnQkFDdEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO2dCQUN4RixTQUFTO2FBQ1o7aUJBQ0ksSUFBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDO2lCQUNqQyxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDLENBQUMsNkNBQTZDO2lCQUNuRjtnQkFDRCwrQ0FBK0M7Z0JBQy9DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFJLDBCQUEwQjtnQkFDNUYsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDekMsT0FBTyxHQUFHLFNBQVMsQ0FBQztpQkFDdkI7YUFDSjtZQUNELE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztTQUMxQztLQUNKO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyJ9
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import { PackageURL } from "packageurl-js";
|
|
3
|
-
const PURL_TYPE = 'gem';
|
|
4
|
-
// Parse a gemfile file from ruby
|
|
5
|
-
// See reference on: https://bundler.io/gemfile.html
|
|
6
|
-
// and https://bundler.io/man/gemfile.5.html
|
|
7
|
-
const MANIFEST_FILE = 'Gemfile';
|
|
8
|
-
export function gemfileParser(fileContent, filePath) {
|
|
9
|
-
// If the file is not a manifest file, return an empty results
|
|
10
|
-
const results = { file: filePath, purls: [] };
|
|
11
|
-
if (path.basename(filePath) != MANIFEST_FILE)
|
|
12
|
-
return results;
|
|
13
|
-
const lines = fileContent.split('\n');
|
|
14
|
-
let compName = '';
|
|
15
|
-
for (let line of lines) {
|
|
16
|
-
line = line.trim();
|
|
17
|
-
if (!line.startsWith('#') && line.length > 0) { // Avoid comments and empty lines
|
|
18
|
-
// Line contains a package name and/or version.
|
|
19
|
-
const res = line.match(/^gem\s*(["']\w+["'])/); //Extract name
|
|
20
|
-
if (res) {
|
|
21
|
-
compName = res.length > 1 ? res[1] : ' ';
|
|
22
|
-
compName = compName.replace(/['"]/g, '');
|
|
23
|
-
const purlString = new PackageURL(PURL_TYPE, undefined, compName, undefined, undefined, undefined).toString();
|
|
24
|
-
results.purls.push({ purl: purlString });
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return results;
|
|
29
|
-
}
|
|
30
|
-
const MANIFEST_FILE_1 = 'Gemfile.lock';
|
|
31
|
-
export function gemfilelockParser(fileContent, filePath) {
|
|
32
|
-
// If the file is not a manifest file, return an empty results
|
|
33
|
-
const results = { file: filePath, purls: [] };
|
|
34
|
-
if (path.basename(filePath) != MANIFEST_FILE_1)
|
|
35
|
-
return results;
|
|
36
|
-
const gemlockParser = new GemfileLockParser();
|
|
37
|
-
const purls = gemlockParser.getDependencies(fileContent);
|
|
38
|
-
for (const purl of purls) {
|
|
39
|
-
results.purls.push({ purl });
|
|
40
|
-
}
|
|
41
|
-
return results;
|
|
42
|
-
}
|
|
43
|
-
// Section headings: these are also used as switches to track a parsing state
|
|
44
|
-
const PATH = 'PATH';
|
|
45
|
-
const GIT = 'GIT';
|
|
46
|
-
const SVN = 'SVN';
|
|
47
|
-
const GEM = 'GEM';
|
|
48
|
-
const PLATFORMS = 'PLATFORMS';
|
|
49
|
-
const DEPENDENCIES = 'DEPENDENCIES';
|
|
50
|
-
const SPECS = ' specs:';
|
|
51
|
-
// types of Gems, which is really where they are provisioned from
|
|
52
|
-
// RubyGems repo, local path or VCS
|
|
53
|
-
const GEM_TYPES = [GEM, PATH, GIT, SVN];
|
|
54
|
-
const specRegex = /(?<name>[^ \)\(,!:]+)?(?: \((?<version>[^-]*?)(?:-(?<platform>[^!]*))?\))?/;
|
|
55
|
-
const firstDepLevelRegex = /^ {4}(?! )/;
|
|
56
|
-
/*
|
|
57
|
-
The parsing use a simple state machine, switching states based on sections
|
|
58
|
-
headings. The result is a list of purls
|
|
59
|
-
*/
|
|
60
|
-
class GemfileLockParser {
|
|
61
|
-
statesMap;
|
|
62
|
-
state;
|
|
63
|
-
current_options;
|
|
64
|
-
current_gem;
|
|
65
|
-
purlList;
|
|
66
|
-
constructor() {
|
|
67
|
-
this.purlList = [];
|
|
68
|
-
// map of a line start string to the next parsing state function
|
|
69
|
-
this.statesMap = {};
|
|
70
|
-
this.statesMap[DEPENDENCIES] = this.parseDependency;
|
|
71
|
-
this.statesMap[PLATFORMS] = this.parsePlatform;
|
|
72
|
-
this.statesMap[GIT] = this.parseOptions;
|
|
73
|
-
this.statesMap[PATH] = this.parseOptions;
|
|
74
|
-
this.statesMap[SVN] = this.parseOptions;
|
|
75
|
-
this.statesMap[GEM] = this.parseOptions;
|
|
76
|
-
this.statesMap[SPECS] = this.parseSpec;
|
|
77
|
-
}
|
|
78
|
-
getDependencies(filecontent) {
|
|
79
|
-
this.resetState();
|
|
80
|
-
let file = filecontent.split('\n');
|
|
81
|
-
for (let line of file) {
|
|
82
|
-
line = line.trimEnd();
|
|
83
|
-
//reset state on empty lines
|
|
84
|
-
if (!line.length) {
|
|
85
|
-
this.resetState();
|
|
86
|
-
continue;
|
|
87
|
-
}
|
|
88
|
-
//switch to new state
|
|
89
|
-
if (line in this.statesMap) {
|
|
90
|
-
if (GEM_TYPES.includes(line))
|
|
91
|
-
this.current_gem = line;
|
|
92
|
-
this.state = this.statesMap[line];
|
|
93
|
-
continue;
|
|
94
|
-
}
|
|
95
|
-
// process the line
|
|
96
|
-
if (this.state)
|
|
97
|
-
this.state(line);
|
|
98
|
-
}
|
|
99
|
-
this.refine();
|
|
100
|
-
return this.purlList;
|
|
101
|
-
}
|
|
102
|
-
resetState() {
|
|
103
|
-
this.current_options = {};
|
|
104
|
-
this.state = null;
|
|
105
|
-
}
|
|
106
|
-
parseOptions(line) {
|
|
107
|
-
const match = line.match(/\s*(\w+):\s*(.*)/);
|
|
108
|
-
const key = match.length >= 1 ? match[1] : null;
|
|
109
|
-
const value = match.length >= 2 ? match[2] : null;
|
|
110
|
-
if (key)
|
|
111
|
-
this.current_options[key] = value;
|
|
112
|
-
}
|
|
113
|
-
parseDependency(line) { }
|
|
114
|
-
parsePlatform(line) { }
|
|
115
|
-
parseSpec(line) {
|
|
116
|
-
if (this.current_gem == GEM) {
|
|
117
|
-
if (firstDepLevelRegex.test(line)) {
|
|
118
|
-
line = line.trimStart();
|
|
119
|
-
const match = line.match(specRegex);
|
|
120
|
-
const purl = new PackageURL(PURL_TYPE, undefined, match.groups.name, match.groups.version, undefined, undefined).toString();
|
|
121
|
-
this.purlList.push(purl);
|
|
122
|
-
}
|
|
123
|
-
else { // Second level of dependence
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
if (this.current_gem == GIT) { }
|
|
127
|
-
// Purl from local dependencies are not generated
|
|
128
|
-
if (this.current_gem == PATH) { }
|
|
129
|
-
}
|
|
130
|
-
refine() { }
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVieVBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL3BhcnNlcnMvcnVieVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFHeEIsaUNBQWlDO0FBQ2pDLG9EQUFvRDtBQUNwRCw0Q0FBNEM7QUFDNUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2hDLE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUUvRCw4REFBOEQ7SUFDOUQsTUFBTSxPQUFPLEdBQW1CLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDNUQsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFHbkIsTUFBTSxLQUFLLEdBQWtCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsSUFBSSxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBRTFCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUUsRUFBRSxpQ0FBaUM7WUFDM0UsK0NBQStDO1lBQy9DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFJLGNBQWM7WUFDakUsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsUUFBUSxHQUFHLEdBQUcs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
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface Purl {
|
|
2
|
-
purl: string;
|
|
3
|
-
}
|
|
4
|
-
export interface FileDependency {
|
|
5
|
-
file: string;
|
|
6
|
-
purls: Array<Purl>;
|
|
7
|
-
}
|
|
8
|
-
export interface FileListDependency {
|
|
9
|
-
files: Array<FileDependency>;
|
|
10
|
-
}
|
|
11
|
-
declare type ParserFuncType = (fileContent: string, filePath: string) => FileDependency;
|
|
12
|
-
export interface ParserDefinitions {
|
|
13
|
-
[key: string]: ParserFuncType;
|
|
14
|
-
}
|
|
15
|
-
export {};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { URL } from "url";
|
|
2
|
-
export function isValidUrl(string) {
|
|
3
|
-
let url;
|
|
4
|
-
try {
|
|
5
|
-
new URL(string);
|
|
6
|
-
}
|
|
7
|
-
catch (_) {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
return true;
|
|
11
|
-
}
|
|
12
|
-
export function isValidPath(string) {
|
|
13
|
-
return /^((?:\.\.?)|(?:[a-zA-Z]:\\)|(?:\/))/gm.test(string);
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFMUIsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFjO0lBQ3JDLElBQUksR0FBUSxDQUFDO0lBQ2IsSUFBSTtRQUNGLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2pCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUgsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFjO0lBQ3hDLE9BQU8sdUNBQXVDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlELENBQUMifQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export class GrpcConfig {
|
|
2
|
-
DEFAULT_GRPC_PORT = 50051;
|
|
3
|
-
DEFAULT_GRPC_HOST = 'localhost';
|
|
4
|
-
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY0NvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZ3JwYy9HcnBjQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBRXJCLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUUxQixpQkFBaUIsR0FBRyxXQUFXLENBQUM7Q0FFakMifQ==
|