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.
Files changed (89) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/main/bin/cli-bin.js +1 -1
  3. package/build/main/lib/dependencies/Dependency.js +4 -2
  4. package/build/main/lib/dependencies/DependencyScanner.d.ts +9 -0
  5. package/build/main/lib/dependencies/DependencyScanner.js +84 -0
  6. package/build/main/lib/dependencies/PurlGenerator.js +13 -6
  7. package/build/main/lib/dependencies/parsers/golangParser.d.ts +2 -0
  8. package/build/main/lib/dependencies/parsers/golangParser.js +63 -3
  9. package/build/main/lib/dependencies/parsers/mavenParser.js +2 -3
  10. package/build/main/lib/dependencies/parsers/types.js +1 -31
  11. package/build/main/lib/grpc/GrpcConfig.d.ts +4 -0
  12. package/build/main/lib/grpc/GrpcConfig.js +11 -0
  13. package/build/main/lib/grpc/GrpcDependencyService.d.ts +12 -0
  14. package/build/main/lib/grpc/GrpcDependencyService.js +81 -0
  15. package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  16. package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  17. package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  18. package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +405 -0
  19. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +42 -0
  20. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  21. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  22. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1155 -0
  23. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +21 -0
  24. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +67 -0
  25. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  26. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
  27. package/build/main/old/Dependency.d.ts +9 -0
  28. package/build/main/old/Dependency.js +96 -0
  29. package/build/main/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  30. package/build/main/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  31. package/build/main/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  32. package/build/main/scanoss/api/common/v2/scanoss-common_pb.js +405 -0
  33. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +42 -0
  34. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  35. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  36. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1156 -0
  37. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +21 -0
  38. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +67 -0
  39. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  40. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
  41. package/build/module/bin/cli-bin.js +1 -1
  42. package/build/module/lib/dependencies/Dependency.js +4 -2
  43. package/build/module/lib/dependencies/DependencyScanner.d.ts +9 -0
  44. package/build/module/lib/dependencies/DependencyScanner.js +78 -0
  45. package/build/module/lib/dependencies/PurlGenerator.js +13 -6
  46. package/build/module/lib/dependencies/parsers/golangParser.d.ts +2 -0
  47. package/build/module/lib/dependencies/parsers/golangParser.js +55 -3
  48. package/build/module/lib/dependencies/parsers/mavenParser.js +2 -3
  49. package/build/module/lib/dependencies/parsers/types.js +1 -31
  50. package/build/module/lib/grpc/GrpcConfig.d.ts +4 -0
  51. package/build/module/lib/grpc/GrpcConfig.js +5 -0
  52. package/build/module/lib/grpc/GrpcDependencyService.d.ts +12 -0
  53. package/build/module/lib/grpc/GrpcDependencyService.js +60 -0
  54. package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  55. package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  56. package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  57. package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +405 -0
  58. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +42 -0
  59. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  60. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  61. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1155 -0
  62. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +21 -0
  63. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +67 -0
  64. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  65. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
  66. package/build/module/old/Dependency.d.ts +9 -0
  67. package/build/module/old/Dependency.js +72 -0
  68. package/build/module/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  69. package/build/module/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  70. package/build/module/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  71. package/build/module/scanoss/api/common/v2/scanoss-common_pb.js +405 -0
  72. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +42 -0
  73. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  74. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  75. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1156 -0
  76. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +21 -0
  77. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +67 -0
  78. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  79. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
  80. package/build/tsconfig.module.tsbuildinfo +1 -1
  81. package/build/tsconfig.tsbuildinfo +1 -1
  82. package/package-lock.json +18589 -0
  83. package/package.json +1 -1
  84. package/src/bin/cli-bin.ts +1 -1
  85. package/src/lib/dependencies/Dependency.ts +4 -4
  86. package/src/lib/dependencies/PurlGenerator.ts +7 -3
  87. package/src/lib/dependencies/parsers/golangParser.ts +78 -2
  88. package/src/lib/dependencies/parsers/mavenParser.ts +1 -2
  89. 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.16")
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: null,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL0RlcGVuZGVuY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDRDQUFvQjtBQUlwQixtREFBNEQ7QUFFNUQsTUFBYSxVQUFVO0lBTXJCO1FBQ0UsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsWUFBRSxDQUFDLE1BQU0sRUFBRSxlQUFlLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFFLFFBQXVCO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSx5Q0FBeUIsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCx5Q0FBeUM7UUFDekMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLGdCQUFnQixDQUFDLGFBQXFCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxvQkFBb0IsQ0FBQztRQUVoRSxJQUFJLENBQUMsWUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQUUsWUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVPLDJCQUEyQixDQUFFLFlBQWdDO1FBQ25FLE1BQU0sT0FBTyxHQUF3QixFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUtqRCxLQUFLLE1BQU0sVUFBVSxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUM7WUFDMUMsSUFBSSxNQUFNLEdBQXVCLEVBQUUsQ0FBQztZQUNwQyxLQUFLLE1BQU0sSUFBSSxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUU7Z0JBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ1YsU0FBUyxFQUFFLElBQUk7b0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLE9BQU8sRUFBRSxJQUFJO29CQUNiLFFBQVEsRUFBRSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDO2lCQUN6QixDQUFDLENBQUM7YUFDSjtZQUVELElBQUksT0FBTyxHQUFVLEVBQUUsQ0FBQztZQUN4QixPQUFPLEdBQUcsQ0FBQztnQkFDVCxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ3JCLEVBQUUsRUFBRSxZQUFZO2dCQUNoQixNQUFNLEVBQUUsU0FBUztnQkFDakIsWUFBWSxFQUFFLE1BQU07YUFDckIsQ0FBQyxDQUFDO1lBRUgsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0NBQ0Y7QUFwREQsZ0NBb0RDIn0=
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
- const fileContent = await fs_1.default.promises.readFile(filePath, 'utf8');
31
- const dependency = Parser[fileName](fileContent, filePath);
32
- if (dependency.purls.length != 0)
33
- results.files.push(dependency);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVybEdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL1B1cmxHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUl4Qix1REFBa0Q7QUFDbEQsbURBQXVFO0FBQ3ZFLGlEQUF3RDtBQUN4RCxxREFBd0U7QUFJeEU7OztFQUdFO0FBQ0YsTUFBTSxNQUFNLEdBQXNCO0lBQzlCLGtCQUFrQixFQUFFLDZCQUFrQjtJQUN0QyxTQUFTLEVBQUUsdUJBQVM7SUFDcEIsY0FBYyxFQUFFLHlCQUFhO0lBQzdCLG1CQUFtQixFQUFFLDZCQUFpQjtJQUN0QyxTQUFTLEVBQUUsMEJBQWE7SUFDeEIsY0FBYyxFQUFFLDhCQUFpQjtDQUNwQyxDQUFDO0FBR0ssS0FBSyxVQUFVLHlCQUF5QixDQUFDLEtBQW9CO0lBQ2hFLElBQUksT0FBTyxHQUF1QixFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUU5QyxLQUFLLE1BQU0sUUFBUSxJQUFJLEtBQUssRUFBRTtRQUMxQixNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLElBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUN6QixNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzNELElBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEM7S0FDSjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUFiRCw4REFhQyJ9
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVybEdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL1B1cmxHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUl4Qix1REFBa0Q7QUFDbEQsbURBQXVFO0FBQ3ZFLGlEQUF3RDtBQUN4RCxxREFBd0U7QUFDeEUseURBQXFEO0FBR3JEOzs7RUFHRTtBQUNGLE1BQU0sTUFBTSxHQUFzQjtJQUM5QixrQkFBa0IsRUFBRSw2QkFBa0I7SUFDdEMsU0FBUyxFQUFFLHVCQUFTO0lBQ3BCLGNBQWMsRUFBRSx5QkFBYTtJQUM3QixtQkFBbUIsRUFBRSw2QkFBaUI7SUFDdEMsU0FBUyxFQUFFLDBCQUFhO0lBQ3hCLGNBQWMsRUFBRSw4QkFBaUI7SUFDakMsUUFBUSxFQUFFLDBCQUFXO0NBQ3hCLENBQUM7QUFHSyxLQUFLLFVBQVUseUJBQXlCLENBQUMsS0FBb0I7SUFDaEUsSUFBSSxPQUFPLEdBQXVCLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzlDLEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxFQUFFO1FBQzFCLE1BQU0sUUFBUSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsSUFBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzNCLElBQUk7Z0JBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2pFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzNELElBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDcEM7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixRQUFRLElBQUksRUFBQyxLQUFLLENBQUMsQ0FBQzthQUMxRDtTQUNGO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBaEJELDhEQWdCQyJ9
@@ -0,0 +1,2 @@
1
+ import { FileDependency } from "./types";
2
+ export declare function goModParser(fileContent: string, filePath: string): FileDependency;
@@ -1,3 +1,63 @@
1
- // Reference https://go.dev/ref/mod#go-mod-file
2
- //
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29sYW5nUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcGFyc2Vycy9nb2xhbmdQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsK0NBQStDO0FBQy9DLEdBQUcifQ==
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
- console.log(ver[1]);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW5QYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL21hdmVuUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF3QjtBQUN4QixpREFBMkM7QUFJM0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDO0FBRzFCLGdEQUFnRDtBQUNoRCw4RkFBOEY7QUFDOUYsNkZBQTZGO0FBQzdGLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUNoQyxTQUFnQixTQUFTLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUUzRCxxRUFBcUU7SUFDckUsTUFBTSxPQUFPLEdBQW1CLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDNUQsSUFBRyxjQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFFbkIsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQ25GLElBQUcsWUFBWSxFQUFFO1FBRWYseUNBQXlDO1FBQ3pDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDaEMsMkNBQTJDO1lBQzNDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNoRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTVDLDBDQUEwQztZQUMxQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7WUFDekUsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU3QyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDbkUsSUFBSSxPQUFPLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU5QyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDMUIsSUFBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLEVBQUUsRUFBRSx3Q0FBd0M7b0JBQ3pFLE9BQU8sR0FBRyxTQUFTLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNMLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM3RSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUN6QzthQUNGO1lBRUQsSUFBSSxjQUFjLENBQUM7WUFDbkIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3ZELElBQUcsSUFBSSxFQUFFO2dCQUNMLGNBQWMsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDbkM7WUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLDBCQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBOUNELDhCQThDQyJ9
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,4 @@
1
+ export declare class GrpcConfig {
2
+ DEFAULT_GRPC_PORT: number;
3
+ DEFAULT_GRPC_HOST: string;
4
+ }
@@ -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
@@ -0,0 +1,2 @@
1
+ // GENERATED CODE -- NO SERVICES IN PROTO
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1jb21tb25fZ3JwY19wYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZ3JwYy9zY2Fub3NzL2FwaS9jb21tb24vdjIvc2Nhbm9zcy1jb21tb25fZ3JwY19wYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUMifQ==