scanoss 0.2.18 → 0.2.21
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 +4 -2
- package/build/main/commands/dep.js +19 -7
- package/build/main/commands/helpers.d.ts +1 -0
- package/build/main/commands/helpers.js +22 -0
- package/build/main/commands/scan.js +3 -15
- package/build/main/index.d.ts +2 -1
- package/build/main/index.js +3 -2
- package/build/main/lib/dependencies/DependencyScanner.d.ts +10 -0
- package/build/main/lib/dependencies/DependencyScanner.js +66 -0
- 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 +11 -0
- package/build/main/lib/grpc/GrpcDependencyService.js +88 -0
- package/build/main/lib/{dependencies/parsers/golangParser.d.ts → 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 +404 -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 +1197 -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 +66 -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 +14 -0
- package/build/main/lib/scanner/Scanner.js +1 -1
- package/build/module/bin/cli-bin.js +4 -2
- package/build/module/commands/dep.js +19 -7
- package/build/module/commands/helpers.d.ts +1 -0
- package/build/module/commands/helpers.js +15 -0
- package/build/module/commands/scan.js +2 -14
- package/build/module/index.d.ts +2 -1
- package/build/module/index.js +3 -2
- package/build/module/lib/dependencies/DependencyScanner.d.ts +10 -0
- package/build/module/lib/dependencies/DependencyScanner.js +64 -0
- 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 +11 -0
- package/build/module/lib/grpc/GrpcDependencyService.js +67 -0
- package/build/module/lib/{dependencies/parsers/golangParser.d.ts → 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 +404 -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 +1197 -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 +66 -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 +14 -0
- package/build/module/lib/scanner/Scanner.js +1 -1
- package/build/tsconfig.module.tsbuildinfo +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -1
- package/src/bin/cli-bin.ts +4 -1
- package/src/commands/dep.ts +18 -6
- package/src/commands/helpers.ts +14 -0
- package/src/commands/scan.ts +3 -12
- package/src/index.ts +5 -1
- package/src/lib/dependencies/DependencyScanner.ts +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/LocalDependency/parsers/golangParser.ts +78 -0
- 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 +73 -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 -44
- package/build/main/lib/dependencies/parsers/golangParser.js +0 -3
- 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 -33
- 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 -37
- package/build/module/lib/dependencies/parsers/golangParser.js +0 -3
- 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 -32
- package/build/module/lib/dependencies/parsers/utils.js +0 -15
- package/package-lock.json +0 -18589
- package/src/lib/dependencies/Dependency.ts +0 -60
- package/src/lib/dependencies/PurlGenerator.ts +0 -44
- package/src/lib/dependencies/parsers/golangParser.ts +0 -4
- package/src/lib/dependencies/parsers/pyParser.ts +0 -46
- package/src/lib/dependencies/parsers/types.ts +0 -50
|
@@ -0,0 +1,61 @@
|
|
|
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.requirementsParser = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const packageurl_js_1 = require("packageurl-js");
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
function parseDep(str) {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
const res = /^(?<name>[-\w]+)\s*(?<sym>[>=~!]*)\s*(?<version>[\d\.]*)/.exec(str);
|
|
13
|
+
return {
|
|
14
|
+
name: (_a = res === null || res === void 0 ? void 0 : res.groups) === null || _a === void 0 ? void 0 : _a.name,
|
|
15
|
+
sym: (_b = res === null || res === void 0 ? void 0 : res.groups) === null || _b === void 0 ? void 0 : _b.sym,
|
|
16
|
+
version: (_c = res === null || res === void 0 ? void 0 : res.groups) === null || _c === void 0 ? void 0 : _c.version,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const PURL_TYPE = 'pypi';
|
|
20
|
+
// Parse a requirements.txt file from python projects
|
|
21
|
+
// See reference on: https://pip.pypa.io/en/stable/reference/requirements-file-format/
|
|
22
|
+
const MANIFEST_FILE = 'requirements.txt';
|
|
23
|
+
function requirementsParser(fileContent, filePath) {
|
|
24
|
+
// If the file is not a python manifest file, return an empty results
|
|
25
|
+
const results = { file: filePath, purls: [] };
|
|
26
|
+
if (path_1.default.basename(filePath) != MANIFEST_FILE)
|
|
27
|
+
return results;
|
|
28
|
+
const lines = fileContent.split('\n');
|
|
29
|
+
for (let line of lines) {
|
|
30
|
+
line = line.trim();
|
|
31
|
+
if (line.length == 0)
|
|
32
|
+
continue;
|
|
33
|
+
if (!line.startsWith('#') && line.length > 0) { // Avoid comments and new lines
|
|
34
|
+
if ((0, utils_1.isValidUrl)(line)) {
|
|
35
|
+
// For reference about the regex see https://www.rfc-editor.org/rfc/rfc3986#appendix-B
|
|
36
|
+
const res = line.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
else if ((0, utils_1.isValidPath)(line)) {
|
|
40
|
+
continue;
|
|
41
|
+
} // Do not parse local dependencies.
|
|
42
|
+
else if (line.startsWith('-r')) {
|
|
43
|
+
continue;
|
|
44
|
+
} // Recursive dependencies (NOT SUPPORTED YET)
|
|
45
|
+
else {
|
|
46
|
+
const dep = parseDep(line);
|
|
47
|
+
if (dep.sym === '==') {
|
|
48
|
+
const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, dep.name, dep.version, undefined, undefined).toString();
|
|
49
|
+
results.purls.push({ purl: purlString });
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, dep.name, undefined, undefined, undefined).toString();
|
|
53
|
+
results.purls.push({ purl: purlString, requirements: dep.sym + dep.version });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return results;
|
|
59
|
+
}
|
|
60
|
+
exports.requirementsParser = requirementsParser;
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy9weVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsaURBQTJDO0FBRTNDLG1DQUFrRDtBQUdsRCxTQUFTLFFBQVEsQ0FBRSxHQUFXOztJQUM1QixNQUFNLEdBQUcsR0FBRywwREFBMEQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakYsT0FBTztRQUNMLElBQUksRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLDBDQUFFLElBQUk7UUFDdkIsR0FBRyxFQUFFLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sMENBQUUsR0FBRztRQUNyQixPQUFPLEVBQUUsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSwwQ0FBRSxPQUFPO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBRXpCLHFEQUFxRDtBQUNyRCxzRkFBc0Y7QUFDdEYsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUM7QUFDekMsU0FBZ0Isa0JBQWtCLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUVwRSxxRUFBcUU7SUFDckUsTUFBTSxPQUFPLEdBQXFCLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDOUQsSUFBRyxjQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFFbkIsTUFBTSxLQUFLLEdBQWtCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckQsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDcEIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLFNBQVM7UUFDOUIsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUUsRUFBRSwrQkFBK0I7WUFDeEUsSUFBRyxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pCLHNGQUFzRjtnQkFDdEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO2dCQUN4RixTQUFTO2FBQ1o7aUJBQ0ksSUFBRyxJQUFBLG1CQUFXLEVBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDLENBQUMsbUNBQW1DO2lCQUNyRSxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDLENBQUMsNkNBQTZDO2lCQUNuRjtnQkFFRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUU7b0JBQ3BCLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2hILE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7aUJBQ3hDO3FCQUFNO29CQUNMLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDOUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO2lCQUMzRTthQUNKO1NBQ0o7S0FDSjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUFsQ0QsZ0RBa0NDIn0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function gemfileParser(fileContent: string, filePath: string):
|
|
3
|
-
export declare function gemfilelockParser(fileContent: string, filePath: string):
|
|
1
|
+
import { ILocalDependency } from "../DependencyTypes";
|
|
2
|
+
export declare function gemfileParser(fileContent: string, filePath: string): ILocalDependency;
|
|
3
|
+
export declare function gemfilelockParser(fileContent: string, filePath: string): ILocalDependency;
|
|
@@ -0,0 +1,133 @@
|
|
|
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.gemfilelockParser = exports.gemfileParser = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const packageurl_js_1 = require("packageurl-js");
|
|
9
|
+
const PURL_TYPE = 'gem';
|
|
10
|
+
// Parse a gemfile file from ruby
|
|
11
|
+
// See reference on: https://bundler.io/gemfile.html
|
|
12
|
+
// and https://bundler.io/man/gemfile.5.html
|
|
13
|
+
const MANIFEST_FILE = 'Gemfile';
|
|
14
|
+
function gemfileParser(fileContent, filePath) {
|
|
15
|
+
// If the file is not a manifest file, return an empty results
|
|
16
|
+
const results = { file: filePath, purls: [] };
|
|
17
|
+
if (path_1.default.basename(filePath) != MANIFEST_FILE)
|
|
18
|
+
return results;
|
|
19
|
+
const lines = fileContent.split('\n');
|
|
20
|
+
let compName = '';
|
|
21
|
+
for (let line of lines) {
|
|
22
|
+
line = line.trim();
|
|
23
|
+
if (!line.startsWith('#') && line.length > 0) { // Avoid comments and empty lines
|
|
24
|
+
// Line contains a package name and/or version.
|
|
25
|
+
const res = line.match(/^gem\s*(["']\w+["'])/); //Extract name
|
|
26
|
+
if (res) {
|
|
27
|
+
compName = res.length > 1 ? res[1] : ' ';
|
|
28
|
+
compName = compName.replace(/['"]/g, '');
|
|
29
|
+
const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, compName, undefined, undefined, undefined).toString();
|
|
30
|
+
results.purls.push({ purl: purlString });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return results;
|
|
35
|
+
}
|
|
36
|
+
exports.gemfileParser = gemfileParser;
|
|
37
|
+
const MANIFEST_FILE_1 = 'Gemfile.lock';
|
|
38
|
+
function gemfilelockParser(fileContent, filePath) {
|
|
39
|
+
// If the file is not a manifest file, return an empty results
|
|
40
|
+
const results = { file: filePath, purls: [] };
|
|
41
|
+
if (path_1.default.basename(filePath) != MANIFEST_FILE_1)
|
|
42
|
+
return results;
|
|
43
|
+
const gemlockParser = new GemfileLockParser();
|
|
44
|
+
const purls = gemlockParser.getDependencies(fileContent);
|
|
45
|
+
for (const purl of purls) {
|
|
46
|
+
results.purls.push({ purl });
|
|
47
|
+
}
|
|
48
|
+
return results;
|
|
49
|
+
}
|
|
50
|
+
exports.gemfilelockParser = gemfilelockParser;
|
|
51
|
+
// Section headings: these are also used as switches to track a parsing state
|
|
52
|
+
const PATH = 'PATH';
|
|
53
|
+
const GIT = 'GIT';
|
|
54
|
+
const SVN = 'SVN';
|
|
55
|
+
const GEM = 'GEM';
|
|
56
|
+
const PLATFORMS = 'PLATFORMS';
|
|
57
|
+
const DEPENDENCIES = 'DEPENDENCIES';
|
|
58
|
+
const SPECS = ' specs:';
|
|
59
|
+
// types of Gems, which is really where they are provisioned from
|
|
60
|
+
// RubyGems repo, local path or VCS
|
|
61
|
+
const GEM_TYPES = [GEM, PATH, GIT, SVN];
|
|
62
|
+
const specRegex = /(?<name>[^ \)\(,!:]+)?(?: \((?<version>[^-]*?)(?:-(?<platform>[^!]*))?\))?/;
|
|
63
|
+
const firstDepLevelRegex = /^ {4}(?! )/;
|
|
64
|
+
/*
|
|
65
|
+
The parsing use a simple state machine, switching states based on sections
|
|
66
|
+
headings. The result is a list of purls
|
|
67
|
+
*/
|
|
68
|
+
class GemfileLockParser {
|
|
69
|
+
constructor() {
|
|
70
|
+
this.purlList = [];
|
|
71
|
+
// map of a line start string to the next parsing state function
|
|
72
|
+
this.statesMap = {};
|
|
73
|
+
this.statesMap[DEPENDENCIES] = this.parseDependency;
|
|
74
|
+
this.statesMap[PLATFORMS] = this.parsePlatform;
|
|
75
|
+
this.statesMap[GIT] = this.parseOptions;
|
|
76
|
+
this.statesMap[PATH] = this.parseOptions;
|
|
77
|
+
this.statesMap[SVN] = this.parseOptions;
|
|
78
|
+
this.statesMap[GEM] = this.parseOptions;
|
|
79
|
+
this.statesMap[SPECS] = this.parseSpec;
|
|
80
|
+
}
|
|
81
|
+
getDependencies(filecontent) {
|
|
82
|
+
this.resetState();
|
|
83
|
+
let file = filecontent.split('\n');
|
|
84
|
+
for (let line of file) {
|
|
85
|
+
line = line.trimEnd();
|
|
86
|
+
//reset state on empty lines
|
|
87
|
+
if (!line.length) {
|
|
88
|
+
this.resetState();
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
//switch to new state
|
|
92
|
+
if (line in this.statesMap) {
|
|
93
|
+
if (GEM_TYPES.includes(line))
|
|
94
|
+
this.current_gem = line;
|
|
95
|
+
this.state = this.statesMap[line];
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
// process the line
|
|
99
|
+
if (this.state)
|
|
100
|
+
this.state(line);
|
|
101
|
+
}
|
|
102
|
+
return this.purlList;
|
|
103
|
+
}
|
|
104
|
+
resetState() {
|
|
105
|
+
this.current_options = {};
|
|
106
|
+
this.state = null;
|
|
107
|
+
}
|
|
108
|
+
parseOptions(line) {
|
|
109
|
+
const match = line.match(/\s*(\w+):\s*(.*)/);
|
|
110
|
+
const key = match.length >= 1 ? match[1] : null;
|
|
111
|
+
const value = match.length >= 2 ? match[2] : null;
|
|
112
|
+
if (key)
|
|
113
|
+
this.current_options[key] = value;
|
|
114
|
+
}
|
|
115
|
+
parseDependency(line) { }
|
|
116
|
+
parsePlatform(line) { }
|
|
117
|
+
parseSpec(line) {
|
|
118
|
+
if (this.current_gem == GEM) {
|
|
119
|
+
if (firstDepLevelRegex.test(line)) {
|
|
120
|
+
line = line.trimStart();
|
|
121
|
+
const match = line.match(specRegex);
|
|
122
|
+
const purl = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, match.groups.name, match.groups.version, undefined, undefined).toString();
|
|
123
|
+
this.purlList.push(purl);
|
|
124
|
+
}
|
|
125
|
+
else { // Second level of dependence
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (this.current_gem == GIT) { }
|
|
129
|
+
// Purl from local dependencies are not generated
|
|
130
|
+
if (this.current_gem == PATH) { }
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVieVBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL0xvY2FsRGVwZW5kZW5jeS9wYXJzZXJzL3J1YnlQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLGlEQUEyQztBQUkzQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFHeEIsaUNBQWlDO0FBQ2pDLG9EQUFvRDtBQUNwRCw0Q0FBNEM7QUFDNUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2hDLFNBQWdCLGFBQWEsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRS9ELDhEQUE4RDtJQUM5RCxNQUFNLE9BQU8sR0FBcUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM5RCxJQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUduQixNQUFNLEtBQUssR0FBa0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFFMUIsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDcEIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBRSxFQUFFLGlDQUFpQztZQUMzRSwrQ0FBK0M7WUFDL0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUksY0FBYztZQUNqRSxJQUFJLEdBQUcsRUFBRTtnQkFDTCxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMs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
|
|
File without changes
|
|
@@ -17,4 +17,4 @@ function isValidPath(string) {
|
|
|
17
17
|
return /^((?:\.\.?)|(?:[a-zA-Z]:\\)|(?:\/))/gm.test(string);
|
|
18
18
|
}
|
|
19
19
|
exports.isValidPath = isValidPath;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBMEI7QUFFMUIsU0FBZ0IsVUFBVSxDQUFDLE1BQWM7SUFDckMsSUFBSSxHQUFRLENBQUM7SUFDYixJQUFJO1FBQ0YsSUFBSSxTQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDakI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFSSCxnQ0FRRztBQUVILFNBQWdCLFdBQVcsQ0FBQyxNQUFjO0lBQ3hDLE9BQU8sdUNBQXVDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFGRCxrQ0FFQyJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as DependenciesMessages from './scanoss/api/dependencies/v2/scanoss-dependencies_pb.js';
|
|
2
|
+
import * as CommonMessages from './scanoss/api/common/v2/scanoss-common_pb';
|
|
3
|
+
export declare class GrpcDependencyService {
|
|
4
|
+
private client;
|
|
5
|
+
private metadata;
|
|
6
|
+
constructor(endpoint: string, port: string, apiKey?: string);
|
|
7
|
+
get(req: DependenciesMessages.DependencyRequest): Promise<DependenciesMessages.DependencyResponse>;
|
|
8
|
+
buildDependencyRequestMsg(plainObj: DependenciesMessages.DependencyRequest.AsObject): DependenciesMessages.DependencyRequest;
|
|
9
|
+
echo(req: CommonMessages.EchoRequest): Promise<CommonMessages.EchoResponse>;
|
|
10
|
+
buildEchoRequestMsg(plainObj: CommonMessages.EchoRequest.AsObject): CommonMessages.EchoRequest;
|
|
11
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
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 scanoss_dependencies_grpc_pb_1 = require("./scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb");
|
|
25
|
+
const DependenciesMessages = __importStar(require("./scanoss/api/dependencies/v2/scanoss-dependencies_pb.js"));
|
|
26
|
+
const CommonMessages = __importStar(require("./scanoss/api/common/v2/scanoss-common_pb"));
|
|
27
|
+
class GrpcDependencyService {
|
|
28
|
+
constructor(endpoint, port, apiKey = '') {
|
|
29
|
+
this.client = new scanoss_dependencies_grpc_pb_1.DependenciesClient(endpoint + ':' + port, grpc.credentials.createSsl());
|
|
30
|
+
if (apiKey) {
|
|
31
|
+
this.metadata = new grpc.Metadata();
|
|
32
|
+
console.log("Pased here");
|
|
33
|
+
this.metadata.add('x-api-key', apiKey);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async get(req) {
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
this.client.getDependencies(req, (err, response) => {
|
|
39
|
+
if (err)
|
|
40
|
+
reject(err);
|
|
41
|
+
resolve(response);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
buildDependencyRequestMsg(plainObj) {
|
|
46
|
+
try {
|
|
47
|
+
const depMessage = new DependenciesMessages.DependencyRequest();
|
|
48
|
+
for (const dependency of plainObj.filesList) {
|
|
49
|
+
const fileMsg = new DependenciesMessages.DependencyRequest.Files();
|
|
50
|
+
fileMsg.setFile(dependency.file);
|
|
51
|
+
for (const purl of dependency.purlsList) {
|
|
52
|
+
const purlMsg = new DependenciesMessages.DependencyRequest.Purls();
|
|
53
|
+
purlMsg.setPurl(purl.purl);
|
|
54
|
+
purlMsg.setRequirement(purl === null || purl === void 0 ? void 0 : purl.requirement);
|
|
55
|
+
fileMsg.addPurls(purlMsg);
|
|
56
|
+
}
|
|
57
|
+
depMessage.addFiles(fileMsg);
|
|
58
|
+
}
|
|
59
|
+
return depMessage;
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
console.error(e);
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async echo(req) {
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
this.client.echo(req, (err, response) => {
|
|
69
|
+
if (err)
|
|
70
|
+
reject(err);
|
|
71
|
+
resolve(response);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
buildEchoRequestMsg(plainObj) {
|
|
76
|
+
try {
|
|
77
|
+
const echoMessage = new CommonMessages.EchoRequest();
|
|
78
|
+
echoMessage.setMessage(plainObj.message);
|
|
79
|
+
return echoMessage;
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
console.error(e);
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.GrpcDependencyService = GrpcDependencyService;
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY0RlcGVuZGVuY3lTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9ncnBjL0dycGNEZXBlbmRlbmN5U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXNDO0FBQ3RDLDZHQUFnRztBQUNoRywrR0FBaUc7QUFDakcsMEZBQTJFO0FBRTNFLE1BQWEscUJBQXFCO0lBTWhDLFlBQVksUUFBZ0IsRUFBRSxJQUFZLEVBQUUsTUFBTSxHQUFDLEVBQUU7UUFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlEQUFrQixDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxRixJQUFHLE1BQU0sRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUEyQztRQUMxRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxHQUFHO29CQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0seUJBQXlCLENBQUMsUUFBeUQ7UUFDeEYsSUFBSTtZQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUU7Z0JBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQyxLQUFLLE1BQU0sSUFBSSxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUU7b0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ25FLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMzQixPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxXQUFXLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDM0I7Z0JBQ0QsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM5QjtZQUNELE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBR00sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUErQjtRQUMvQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxHQUFHO29CQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR00sbUJBQW1CLENBQUMsUUFBNkM7UUFDdEUsSUFBSTtZQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0NBRUY7QUFuRUQsc0RBbUVDIn0=
|
|
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 {};
|