scanoss 0.2.19 → 0.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/.cspell.json +2 -1
  2. package/build/main/bin/cli-bin.js +4 -2
  3. package/build/main/commands/dep.js +19 -7
  4. package/build/main/commands/helpers.d.ts +1 -0
  5. package/build/main/commands/helpers.js +22 -0
  6. package/build/main/commands/scan.js +3 -15
  7. package/build/main/index.d.ts +2 -1
  8. package/build/main/index.js +3 -2
  9. package/build/main/lib/dependencies/DependencyScanner.d.ts +6 -5
  10. package/build/main/lib/dependencies/DependencyScanner.js +34 -50
  11. package/build/main/lib/dependencies/DependencyScannerCfg.d.ts +4 -0
  12. package/build/main/lib/dependencies/DependencyScannerCfg.js +11 -0
  13. package/build/main/lib/dependencies/DependencyTypes.d.ts +10 -8
  14. package/build/main/lib/dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  15. package/build/main/lib/dependencies/LocalDependency/DependencyTypes.js +3 -0
  16. package/build/main/lib/dependencies/LocalDependency/LocalDependency.d.ts +6 -0
  17. package/build/main/lib/dependencies/LocalDependency/LocalDependency.js +51 -0
  18. package/build/main/lib/dependencies/LocalDependency/parsers/golangParser.d.ts +2 -0
  19. package/build/main/lib/dependencies/LocalDependency/parsers/golangParser.js +63 -0
  20. package/build/main/lib/dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  21. package/build/main/lib/dependencies/LocalDependency/parsers/mavenParser.js +57 -0
  22. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.d.ts +3 -3
  23. package/build/main/lib/dependencies/LocalDependency/parsers/npmParser.js +50 -0
  24. package/build/main/lib/dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  25. package/build/main/lib/dependencies/LocalDependency/parsers/pyParser.js +65 -0
  26. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.d.ts +3 -3
  27. package/build/main/lib/dependencies/LocalDependency/parsers/rubyParser.js +133 -0
  28. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/utils.d.ts +0 -0
  29. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/utils.js +1 -1
  30. package/build/main/lib/grpc/GrpcDependencyService.d.ts +4 -5
  31. package/build/main/lib/grpc/GrpcDependencyService.js +19 -13
  32. package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +22 -23
  33. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +5 -5
  34. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +90 -48
  35. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +4 -5
  36. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +5 -6
  37. package/build/main/lib/scanner/Scanner.js +1 -1
  38. package/build/module/bin/cli-bin.js +4 -2
  39. package/build/module/commands/dep.js +19 -7
  40. package/build/module/commands/helpers.d.ts +1 -0
  41. package/build/module/commands/helpers.js +15 -0
  42. package/build/module/commands/scan.js +2 -14
  43. package/build/module/index.d.ts +2 -1
  44. package/build/module/index.js +3 -2
  45. package/build/module/lib/dependencies/DependencyScanner.d.ts +6 -5
  46. package/build/module/lib/dependencies/DependencyScanner.js +35 -47
  47. package/build/module/lib/dependencies/DependencyScannerCfg.d.ts +4 -0
  48. package/build/module/lib/dependencies/DependencyScannerCfg.js +5 -0
  49. package/build/module/lib/dependencies/DependencyTypes.d.ts +10 -8
  50. package/build/module/lib/dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  51. package/build/module/lib/dependencies/LocalDependency/DependencyTypes.js +2 -0
  52. package/build/module/lib/dependencies/LocalDependency/LocalDependency.d.ts +6 -0
  53. package/build/module/lib/dependencies/LocalDependency/LocalDependency.js +45 -0
  54. package/build/module/lib/dependencies/LocalDependency/parsers/golangParser.d.ts +2 -0
  55. package/build/module/lib/dependencies/LocalDependency/parsers/golangParser.js +55 -0
  56. package/build/module/lib/dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  57. package/build/module/lib/dependencies/LocalDependency/parsers/mavenParser.js +50 -0
  58. package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.d.ts +3 -3
  59. package/build/module/lib/dependencies/LocalDependency/parsers/npmParser.js +42 -0
  60. package/build/module/lib/dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  61. package/build/module/lib/dependencies/LocalDependency/parsers/pyParser.js +57 -0
  62. package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.d.ts +3 -3
  63. package/build/module/lib/dependencies/LocalDependency/parsers/rubyParser.js +130 -0
  64. package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/utils.d.ts +0 -0
  65. package/build/module/lib/dependencies/LocalDependency/parsers/utils.js +15 -0
  66. package/build/module/lib/grpc/GrpcDependencyService.d.ts +4 -5
  67. package/build/module/lib/grpc/GrpcDependencyService.js +20 -14
  68. package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +22 -23
  69. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +5 -5
  70. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +90 -48
  71. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +4 -5
  72. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +5 -6
  73. package/build/module/lib/scanner/Scanner.js +1 -1
  74. package/build/tsconfig.module.tsbuildinfo +1 -1
  75. package/build/tsconfig.tsbuildinfo +1 -1
  76. package/package.json +3 -1
  77. package/src/bin/cli-bin.ts +4 -1
  78. package/src/commands/dep.ts +18 -6
  79. package/src/commands/helpers.ts +14 -0
  80. package/src/commands/scan.ts +3 -12
  81. package/src/index.ts +5 -1
  82. package/src/lib/dependencies/DependencyScanner.ts +79 -0
  83. package/src/lib/dependencies/DependencyScannerCfg.ts +7 -0
  84. package/src/lib/dependencies/DependencyTypes.ts +16 -14
  85. package/src/lib/dependencies/LocalDependency/DependencyTypes.ts +21 -0
  86. package/src/lib/dependencies/LocalDependency/LocalDependency.ts +48 -0
  87. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/golangParser.ts +4 -6
  88. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/mavenParser.ts +10 -6
  89. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.ts +14 -8
  90. package/src/lib/dependencies/LocalDependency/parsers/pyParser.ts +58 -0
  91. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.ts +21 -29
  92. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/utils.ts +0 -1
  93. package/src/lib/grpc/GrpcDependencyService.ts +72 -0
  94. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +1 -0
  95. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +1 -0
  96. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +79 -0
  97. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +482 -0
  98. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +30 -0
  99. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +109 -0
  100. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +206 -0
  101. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1489 -0
  102. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +25 -0
  103. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +73 -0
  104. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +6 -0
  105. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
  106. package/src/lib/scanner/Scanner.ts +2 -1
  107. package/tsconfig.json +5 -22
  108. package/yarn.lock +5252 -5213
  109. package/build/main/lib/dependencies/Dependency.d.ts +0 -9
  110. package/build/main/lib/dependencies/Dependency.js +0 -52
  111. package/build/main/lib/dependencies/PurlGenerator.d.ts +0 -2
  112. package/build/main/lib/dependencies/PurlGenerator.js +0 -46
  113. package/build/main/lib/dependencies/parsers/golangParser.d.ts +0 -2
  114. package/build/main/lib/dependencies/parsers/golangParser.js +0 -63
  115. package/build/main/lib/dependencies/parsers/mavenParser.d.ts +0 -2
  116. package/build/main/lib/dependencies/parsers/mavenParser.js +0 -54
  117. package/build/main/lib/dependencies/parsers/npmParser.js +0 -46
  118. package/build/main/lib/dependencies/parsers/pyParser.d.ts +0 -2
  119. package/build/main/lib/dependencies/parsers/pyParser.js +0 -51
  120. package/build/main/lib/dependencies/parsers/rubyParser.js +0 -135
  121. package/build/main/lib/dependencies/parsers/types.d.ts +0 -15
  122. package/build/main/lib/dependencies/parsers/types.js +0 -3
  123. package/build/main/lib/grpc/GrpcConfig.d.ts +0 -4
  124. package/build/main/lib/grpc/GrpcConfig.js +0 -11
  125. package/build/main/old/Dependency.d.ts +0 -9
  126. package/build/main/old/Dependency.js +0 -96
  127. package/build/main/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  128. package/build/main/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
  129. package/build/main/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
  130. package/build/main/scanoss/api/common/v2/scanoss-common_pb.js +0 -405
  131. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -42
  132. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
  133. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
  134. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1156
  135. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -21
  136. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -67
  137. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
  138. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -15
  139. package/build/module/lib/dependencies/Dependency.d.ts +0 -9
  140. package/build/module/lib/dependencies/Dependency.js +0 -47
  141. package/build/module/lib/dependencies/PurlGenerator.d.ts +0 -2
  142. package/build/module/lib/dependencies/PurlGenerator.js +0 -39
  143. package/build/module/lib/dependencies/parsers/golangParser.d.ts +0 -2
  144. package/build/module/lib/dependencies/parsers/golangParser.js +0 -55
  145. package/build/module/lib/dependencies/parsers/mavenParser.d.ts +0 -2
  146. package/build/module/lib/dependencies/parsers/mavenParser.js +0 -47
  147. package/build/module/lib/dependencies/parsers/npmParser.js +0 -38
  148. package/build/module/lib/dependencies/parsers/pyParser.d.ts +0 -2
  149. package/build/module/lib/dependencies/parsers/pyParser.js +0 -44
  150. package/build/module/lib/dependencies/parsers/rubyParser.js +0 -132
  151. package/build/module/lib/dependencies/parsers/types.d.ts +0 -15
  152. package/build/module/lib/dependencies/parsers/types.js +0 -2
  153. package/build/module/lib/dependencies/parsers/utils.js +0 -15
  154. package/build/module/lib/grpc/GrpcConfig.d.ts +0 -4
  155. package/build/module/lib/grpc/GrpcConfig.js +0 -5
  156. package/build/module/old/Dependency.d.ts +0 -9
  157. package/build/module/old/Dependency.js +0 -72
  158. package/build/module/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  159. package/build/module/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
  160. package/build/module/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
  161. package/build/module/scanoss/api/common/v2/scanoss-common_pb.js +0 -405
  162. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -42
  163. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
  164. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
  165. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1156
  166. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -21
  167. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -67
  168. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
  169. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -15
  170. package/package-lock.json +0 -18589
  171. package/src/lib/dependencies/Dependency.ts +0 -60
  172. package/src/lib/dependencies/PurlGenerator.ts +0 -45
  173. package/src/lib/dependencies/parsers/pyParser.ts +0 -46
  174. package/src/lib/dependencies/parsers/types.ts +0 -19
@@ -0,0 +1,50 @@
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.packagelockParser = exports.packageParser = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const packageurl_js_1 = require("packageurl-js");
9
+ const PURL_TYPE = 'npm';
10
+ // Parse a package.json file from node projects
11
+ // See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
12
+ const MANIFEST_FILE = 'package.json';
13
+ function packageParser(fileContent, filePath) {
14
+ // If the file is not manifest file, return an empty results
15
+ const results = { file: filePath, purls: [] };
16
+ if (path_1.default.basename(filePath) != MANIFEST_FILE)
17
+ return results;
18
+ const o = JSON.parse(fileContent);
19
+ let devDeps = Object.keys(o.devDependencies || {});
20
+ let deps = Object.keys(o.dependencies || {});
21
+ let listDeps = [...deps, ...devDeps];
22
+ for (const name of deps) {
23
+ const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, name, undefined, undefined, undefined).toString();
24
+ results.purls.push({ purl: purlString, scope: "dependencies", requirement: o.dependencies[name] });
25
+ }
26
+ for (const name of devDeps) {
27
+ const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, name, undefined, undefined, undefined).toString();
28
+ results.purls.push({ purl: purlString, scope: "devDependencies", requirement: o.devDependencies[name] });
29
+ }
30
+ return results;
31
+ }
32
+ exports.packageParser = packageParser;
33
+ // Parse a package-lock.json file from node projects
34
+ // See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
35
+ const MANIFEST_FILE_1 = 'package-lock.json';
36
+ function packagelockParser(fileContent, filePath) {
37
+ const results = { file: filePath, purls: [] };
38
+ if (path_1.default.basename(filePath) != MANIFEST_FILE_1)
39
+ return results;
40
+ const o = JSON.parse(fileContent).dependencies;
41
+ for (const [key, value] of Object.entries(o)) {
42
+ if (!key)
43
+ continue;
44
+ let purl = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, key, value['version'], undefined, undefined).toString();
45
+ results.purls.push({ purl });
46
+ }
47
+ return results;
48
+ }
49
+ exports.packagelockParser = packagelockParser;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L3BhcnNlcnMvbnBtUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF3QjtBQUN4QixpREFBMkM7QUFHM0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBR3hCLCtDQUErQztBQUMvQywrRUFBK0U7QUFDL0UsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQ3JDLFNBQWdCLGFBQWEsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBQy9ELDREQUE0RDtJQUM1RCxNQUFNLE9BQU8sR0FBcUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM5RCxJQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUNuQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRCxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0MsSUFBSSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBRXJDLEtBQUksTUFBTSxJQUFJLElBQUksSUFBSSxFQUFDO1FBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQztLQUNwRztJQUVELEtBQUksTUFBTSxJQUFJLElBQUksT0FBTyxFQUFDO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0tBQ3hHO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQXJCRCxzQ0FxQkM7QUFHRCxvREFBb0Q7QUFDcEQsK0VBQStFO0FBQy9FLE1BQU0sZUFBZSxHQUFHLG1CQUFtQixDQUFDO0FBQzVDLFNBQWdCLGlCQUFpQixDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7SUFFbkUsTUFBTSxPQUFPLEdBQXFCLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDOUQsSUFBRyxjQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGVBQWU7UUFDekMsT0FBTyxPQUFPLENBQUM7SUFFbkIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDL0MsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDMUMsSUFBRyxDQUFDLEdBQUc7WUFBRSxTQUFTO1FBQ2xCLElBQUksSUFBSSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQztLQUM5QjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUFiRCw4Q0FhQyJ9
@@ -0,0 +1,2 @@
1
+ import { ILocalDependency } from "../DependencyTypes";
2
+ export declare function requirementsParser(fileContent: string, filePath: string): ILocalDependency;
@@ -0,0 +1,65 @@
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, undefined, undefined, undefined).toString();
49
+ results.purls.push({ purl: purlString });
50
+ }
51
+ else if (dep.sym === '==') {
52
+ const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, dep.name, dep.version, undefined, undefined).toString();
53
+ results.purls.push({ purl: purlString });
54
+ }
55
+ else {
56
+ const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, dep.name, undefined, undefined, undefined).toString();
57
+ results.purls.push({ purl: purlString, requirement: dep.sym + dep.version });
58
+ }
59
+ }
60
+ }
61
+ }
62
+ return results;
63
+ }
64
+ exports.requirementsParser = requirementsParser;
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy9weVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsaURBQTJDO0FBRTNDLG1DQUFrRDtBQUdsRCxTQUFTLFFBQVEsQ0FBRSxHQUFXOztJQUM1QixNQUFNLEdBQUcsR0FBRywwREFBMEQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakYsT0FBTztRQUNMLElBQUksRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLDBDQUFFLElBQUk7UUFDdkIsR0FBRyxFQUFFLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sMENBQUUsR0FBRztRQUNyQixPQUFPLEVBQUUsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSwwQ0FBRSxPQUFPO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBRXpCLHFEQUFxRDtBQUNyRCxzRkFBc0Y7QUFDdEYsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUM7QUFDekMsU0FBZ0Isa0JBQWtCLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUVwRSxxRUFBcUU7SUFDckUsTUFBTSxPQUFPLEdBQXFCLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDOUQsSUFBRyxjQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFFbkIsTUFBTSxLQUFLLEdBQWtCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckQsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDcEIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLFNBQVM7UUFDOUIsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUUsRUFBRSwrQkFBK0I7WUFDeEUsSUFBRyxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pCLHNGQUFzRjtnQkFDdEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO2dCQUN4RixTQUFTO2FBQ1o7aUJBQ0ksSUFBRyxJQUFBLG1CQUFXLEVBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDLENBQUMsbUNBQW1DO2lCQUNyRSxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDLENBQUMsNkNBQTZDO2lCQUNuRjtnQkFFRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNaLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDOUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztpQkFDeEM7cUJBQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRTtvQkFDM0IsTUFBTSxVQUFVLEdBQUcsSUFBSSwwQkFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDaEgsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztpQkFDeEM7cUJBQU07b0JBQ0wsTUFBTSxVQUFVLEdBQUcsSUFBSSwwQkFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM5RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUMsR0FBRyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7aUJBQzFFO2FBQ0o7U0FDSjtLQUNKO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQXJDRCxnREFxQ0MifQ==
@@ -1,3 +1,3 @@
1
- import { FileDependency } from "./types";
2
- export declare function gemfileParser(fileContent: string, filePath: string): FileDependency;
3
- export declare function gemfilelockParser(fileContent: string, filePath: string): FileDependency;
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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
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZCQUEwQjtBQUUxQixTQUFnQixVQUFVLENBQUMsTUFBYztJQUNyQyxJQUFJLEdBQVEsQ0FBQztJQUNiLElBQUk7UUFDRixJQUFJLFNBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNqQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQVJILGdDQVFHO0FBRUgsU0FBZ0IsV0FBVyxDQUFDLE1BQWM7SUFDeEMsT0FBTyx1Q0FBdUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUZELGtDQUVDIn0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBMEI7QUFFMUIsU0FBZ0IsVUFBVSxDQUFDLE1BQWM7SUFDckMsSUFBSSxHQUFRLENBQUM7SUFDYixJQUFJO1FBQ0YsSUFBSSxTQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDakI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFSSCxnQ0FRRztBQUVILFNBQWdCLFdBQVcsQ0FBQyxNQUFjO0lBQ3hDLE9BQU8sdUNBQXVDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFGRCxrQ0FFQyJ9
@@ -1,12 +1,11 @@
1
- import { GrpcConfig } from './GrpcConfig';
2
1
  import * as DependenciesMessages from './scanoss/api/dependencies/v2/scanoss-dependencies_pb.js';
3
2
  import * as CommonMessages from './scanoss/api/common/v2/scanoss-common_pb';
4
3
  export declare class GrpcDependencyService {
5
4
  private client;
6
- private config;
7
- constructor(cfg?: GrpcConfig);
5
+ private metadata;
6
+ constructor(endpoint: string, port: string, apiKey?: string);
8
7
  get(req: DependenciesMessages.DependencyRequest): Promise<DependenciesMessages.DependencyResponse>;
9
- private buildDepRequestFromPlainObject;
8
+ buildDependencyRequestMsg(plainObj: DependenciesMessages.DependencyRequest.AsObject): DependenciesMessages.DependencyRequest;
10
9
  echo(req: CommonMessages.EchoRequest): Promise<CommonMessages.EchoResponse>;
11
- private buildEchoRequestFromPlainObject;
10
+ buildEchoRequestMsg(plainObj: CommonMessages.EchoRequest.AsObject): CommonMessages.EchoRequest;
12
11
  }
@@ -21,17 +21,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.GrpcDependencyService = void 0;
23
23
  const grpc = __importStar(require("@grpc/grpc-js"));
24
- const GrpcConfig_1 = require("./GrpcConfig");
25
24
  const scanoss_dependencies_grpc_pb_1 = require("./scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb");
26
25
  const DependenciesMessages = __importStar(require("./scanoss/api/dependencies/v2/scanoss-dependencies_pb.js"));
27
26
  const CommonMessages = __importStar(require("./scanoss/api/common/v2/scanoss-common_pb"));
28
27
  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());
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
+ this.metadata.add('x-api-key', apiKey);
33
+ }
32
34
  }
33
35
  async get(req) {
34
- //const msg = this.buildDepRequestFromPlainObject(request);
35
36
  return new Promise((resolve, reject) => {
36
37
  this.client.getDependencies(req, (err, response) => {
37
38
  if (err)
@@ -40,7 +41,7 @@ class GrpcDependencyService {
40
41
  });
41
42
  });
42
43
  }
43
- buildDepRequestFromPlainObject(plainObj) {
44
+ buildDependencyRequestMsg(plainObj) {
44
45
  try {
45
46
  const depMessage = new DependenciesMessages.DependencyRequest();
46
47
  for (const dependency of plainObj.filesList) {
@@ -49,7 +50,7 @@ class GrpcDependencyService {
49
50
  for (const purl of dependency.purlsList) {
50
51
  const purlMsg = new DependenciesMessages.DependencyRequest.Purls();
51
52
  purlMsg.setPurl(purl.purl);
52
- purlMsg.setRequirement(purl.requirement);
53
+ purlMsg.setRequirement(purl === null || purl === void 0 ? void 0 : purl.requirement);
53
54
  fileMsg.addPurls(purlMsg);
54
55
  }
55
56
  depMessage.addFiles(fileMsg);
@@ -62,7 +63,6 @@ class GrpcDependencyService {
62
63
  }
63
64
  }
64
65
  async echo(req) {
65
- //const msg = this.buildEchoRequestFromPlainObject(request);
66
66
  return new Promise((resolve, reject) => {
67
67
  this.client.echo(req, (err, response) => {
68
68
  if (err)
@@ -71,11 +71,17 @@ class GrpcDependencyService {
71
71
  });
72
72
  });
73
73
  }
74
- buildEchoRequestFromPlainObject(plainObj) {
75
- const echoMessage = new CommonMessages.EchoRequest();
76
- echoMessage.setMessage(plainObj.message);
77
- return echoMessage;
74
+ buildEchoRequestMsg(plainObj) {
75
+ try {
76
+ const echoMessage = new CommonMessages.EchoRequest();
77
+ echoMessage.setMessage(plainObj.message);
78
+ return echoMessage;
79
+ }
80
+ catch (e) {
81
+ console.error(e);
82
+ return null;
83
+ }
78
84
  }
79
85
  }
80
86
  exports.GrpcDependencyService = GrpcDependencyService;
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY0RlcGVuZGVuY3lTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9ncnBjL0dycGNEZXBlbmRlbmN5U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXNDO0FBQ3RDLDZDQUEwQztBQUMxQyw2R0FBZ0c7QUFDaEcsK0dBQWlHO0FBRWpHLDBGQUEyRTtBQUUzRSxNQUFhLHFCQUFxQjtJQU1oQyxZQUFZLEdBQUcsR0FBRyxJQUFJLHVCQUFVLEVBQUU7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFFbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlEQUFrQixDQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixHQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBMkM7UUFDMUQsMkRBQTJEO1FBQzNELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUNqRCxJQUFJLEdBQUc7b0JBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyw4QkFBOEIsQ0FBQyxRQUF5RDtRQUM5RixJQUFJO1lBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2hFLEtBQUssTUFBTSxVQUFVLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRTtvQkFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzNCLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN6QyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMzQjtnQkFDRCxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFHTSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQStCO1FBQy9DLDREQUE0RDtRQUM1RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxHQUFHO29CQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR08sK0JBQStCLENBQUMsUUFBNkM7UUFDakYsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckQsV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztDQUVGO0FBL0RELHNEQStEQyJ9
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY0RlcGVuZGVuY3lTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9ncnBjL0dycGNEZXBlbmRlbmN5U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXNDO0FBQ3RDLDZHQUFnRztBQUNoRywrR0FBaUc7QUFDakcsMEZBQTJFO0FBRTNFLE1BQWEscUJBQXFCO0lBTWhDLFlBQVksUUFBZ0IsRUFBRSxJQUFZLEVBQUUsTUFBTSxHQUFDLEVBQUU7UUFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlEQUFrQixDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxRixJQUFHLE1BQU0sRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBMkM7UUFDMUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pELElBQUksR0FBRztvQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHlCQUF5QixDQUFDLFFBQXlEO1FBQ3hGLElBQUk7WUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDaEUsS0FBSyxNQUFNLFVBQVUsSUFBSSxRQUFRLENBQUMsU0FBUyxFQUFFO2dCQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNuRSxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFO29CQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNuRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsV0FBVyxDQUFDLENBQUM7b0JBQzFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzNCO2dCQUNELFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDOUI7WUFDRCxPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUdNLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBK0I7UUFDL0MsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3RDLElBQUksR0FBRztvQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdNLG1CQUFtQixDQUFDLFFBQTZDO1FBQ3RFLElBQUk7WUFDRixNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyRCxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxPQUFPLFdBQVcsQ0FBQztTQUNwQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztDQUVGO0FBbEVELHNEQWtFQyJ9
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  /**
3
2
  * @fileoverview
4
3
  * @enhanceable
@@ -7,9 +6,9 @@
7
6
  * @public
8
7
  */
9
8
  // GENERATED CODE -- DO NOT EDIT!
10
- const jspb = require('google-protobuf');
11
- const goog = jspb;
12
- const global = Function('return this')();
9
+ var jspb = require('google-protobuf');
10
+ var goog = jspb;
11
+ var global = Function('return this')();
13
12
  goog.exportSymbol('proto.scanoss.api.common.v2.EchoRequest', null, global);
14
13
  goog.exportSymbol('proto.scanoss.api.common.v2.EchoResponse', null, global);
15
14
  goog.exportSymbol('proto.scanoss.api.common.v2.StatusCode', null, global);
@@ -55,7 +54,7 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
55
54
  * @suppress {unusedLocalVariables} f is only used for nested messages
56
55
  */
57
56
  proto.scanoss.api.common.v2.StatusResponse.toObject = function (includeInstance, msg) {
58
- let f, obj = {
57
+ var f, obj = {
59
58
  status: jspb.Message.getFieldWithDefault(msg, 1, 0),
60
59
  message: jspb.Message.getFieldWithDefault(msg, 2, "")
61
60
  };
@@ -71,8 +70,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
71
70
  * @return {!proto.scanoss.api.common.v2.StatusResponse}
72
71
  */
73
72
  proto.scanoss.api.common.v2.StatusResponse.deserializeBinary = function (bytes) {
74
- const reader = new jspb.BinaryReader(bytes);
75
- const msg = new proto.scanoss.api.common.v2.StatusResponse;
73
+ var reader = new jspb.BinaryReader(bytes);
74
+ var msg = new proto.scanoss.api.common.v2.StatusResponse;
76
75
  return proto.scanoss.api.common.v2.StatusResponse.deserializeBinaryFromReader(msg, reader);
77
76
  };
78
77
  /**
@@ -87,7 +86,7 @@ proto.scanoss.api.common.v2.StatusResponse.deserializeBinaryFromReader = functio
87
86
  if (reader.isEndGroup()) {
88
87
  break;
89
88
  }
90
- const field = reader.getFieldNumber();
89
+ var field = reader.getFieldNumber();
91
90
  switch (field) {
92
91
  case 1:
93
92
  var value = /** @type {!proto.scanoss.api.common.v2.StatusCode} */ (reader.readEnum());
@@ -109,7 +108,7 @@ proto.scanoss.api.common.v2.StatusResponse.deserializeBinaryFromReader = functio
109
108
  * @return {!Uint8Array}
110
109
  */
111
110
  proto.scanoss.api.common.v2.StatusResponse.prototype.serializeBinary = function () {
112
- const writer = new jspb.BinaryWriter();
111
+ var writer = new jspb.BinaryWriter();
113
112
  proto.scanoss.api.common.v2.StatusResponse.serializeBinaryToWriter(this, writer);
114
113
  return writer.getResultBuffer();
115
114
  };
@@ -121,7 +120,7 @@ proto.scanoss.api.common.v2.StatusResponse.prototype.serializeBinary = function
121
120
  * @suppress {unusedLocalVariables} f is only used for nested messages
122
121
  */
123
122
  proto.scanoss.api.common.v2.StatusResponse.serializeBinaryToWriter = function (message, writer) {
124
- let f = undefined;
123
+ var f = undefined;
125
124
  f = message.getStatus();
126
125
  if (f !== 0.0) {
127
126
  writer.writeEnum(1, f);
@@ -194,7 +193,7 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
194
193
  * @suppress {unusedLocalVariables} f is only used for nested messages
195
194
  */
196
195
  proto.scanoss.api.common.v2.EchoRequest.toObject = function (includeInstance, msg) {
197
- let f, obj = {
196
+ var f, obj = {
198
197
  message: jspb.Message.getFieldWithDefault(msg, 1, "")
199
198
  };
200
199
  if (includeInstance) {
@@ -209,8 +208,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
209
208
  * @return {!proto.scanoss.api.common.v2.EchoRequest}
210
209
  */
211
210
  proto.scanoss.api.common.v2.EchoRequest.deserializeBinary = function (bytes) {
212
- const reader = new jspb.BinaryReader(bytes);
213
- const msg = new proto.scanoss.api.common.v2.EchoRequest;
211
+ var reader = new jspb.BinaryReader(bytes);
212
+ var msg = new proto.scanoss.api.common.v2.EchoRequest;
214
213
  return proto.scanoss.api.common.v2.EchoRequest.deserializeBinaryFromReader(msg, reader);
215
214
  };
216
215
  /**
@@ -225,7 +224,7 @@ proto.scanoss.api.common.v2.EchoRequest.deserializeBinaryFromReader = function (
225
224
  if (reader.isEndGroup()) {
226
225
  break;
227
226
  }
228
- const field = reader.getFieldNumber();
227
+ var field = reader.getFieldNumber();
229
228
  switch (field) {
230
229
  case 1:
231
230
  var value = /** @type {string} */ (reader.readString());
@@ -243,7 +242,7 @@ proto.scanoss.api.common.v2.EchoRequest.deserializeBinaryFromReader = function (
243
242
  * @return {!Uint8Array}
244
243
  */
245
244
  proto.scanoss.api.common.v2.EchoRequest.prototype.serializeBinary = function () {
246
- const writer = new jspb.BinaryWriter();
245
+ var writer = new jspb.BinaryWriter();
247
246
  proto.scanoss.api.common.v2.EchoRequest.serializeBinaryToWriter(this, writer);
248
247
  return writer.getResultBuffer();
249
248
  };
@@ -255,7 +254,7 @@ proto.scanoss.api.common.v2.EchoRequest.prototype.serializeBinary = function ()
255
254
  * @suppress {unusedLocalVariables} f is only used for nested messages
256
255
  */
257
256
  proto.scanoss.api.common.v2.EchoRequest.serializeBinaryToWriter = function (message, writer) {
258
- let f = undefined;
257
+ var f = undefined;
259
258
  f = message.getMessage();
260
259
  if (f.length > 0) {
261
260
  writer.writeString(1, f);
@@ -313,7 +312,7 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
313
312
  * @suppress {unusedLocalVariables} f is only used for nested messages
314
313
  */
315
314
  proto.scanoss.api.common.v2.EchoResponse.toObject = function (includeInstance, msg) {
316
- let f, obj = {
315
+ var f, obj = {
317
316
  message: jspb.Message.getFieldWithDefault(msg, 1, "")
318
317
  };
319
318
  if (includeInstance) {
@@ -328,8 +327,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
328
327
  * @return {!proto.scanoss.api.common.v2.EchoResponse}
329
328
  */
330
329
  proto.scanoss.api.common.v2.EchoResponse.deserializeBinary = function (bytes) {
331
- const reader = new jspb.BinaryReader(bytes);
332
- const msg = new proto.scanoss.api.common.v2.EchoResponse;
330
+ var reader = new jspb.BinaryReader(bytes);
331
+ var msg = new proto.scanoss.api.common.v2.EchoResponse;
333
332
  return proto.scanoss.api.common.v2.EchoResponse.deserializeBinaryFromReader(msg, reader);
334
333
  };
335
334
  /**
@@ -344,7 +343,7 @@ proto.scanoss.api.common.v2.EchoResponse.deserializeBinaryFromReader = function
344
343
  if (reader.isEndGroup()) {
345
344
  break;
346
345
  }
347
- const field = reader.getFieldNumber();
346
+ var field = reader.getFieldNumber();
348
347
  switch (field) {
349
348
  case 1:
350
349
  var value = /** @type {string} */ (reader.readString());
@@ -362,7 +361,7 @@ proto.scanoss.api.common.v2.EchoResponse.deserializeBinaryFromReader = function
362
361
  * @return {!Uint8Array}
363
362
  */
364
363
  proto.scanoss.api.common.v2.EchoResponse.prototype.serializeBinary = function () {
365
- const writer = new jspb.BinaryWriter();
364
+ var writer = new jspb.BinaryWriter();
366
365
  proto.scanoss.api.common.v2.EchoResponse.serializeBinaryToWriter(this, writer);
367
366
  return writer.getResultBuffer();
368
367
  };
@@ -374,7 +373,7 @@ proto.scanoss.api.common.v2.EchoResponse.prototype.serializeBinary = function ()
374
373
  * @suppress {unusedLocalVariables} f is only used for nested messages
375
374
  */
376
375
  proto.scanoss.api.common.v2.EchoResponse.serializeBinaryToWriter = function (message, writer) {
377
- let f = undefined;
376
+ var f = undefined;
378
377
  f = message.getMessage();
379
378
  if (f.length > 0) {
380
379
  writer.writeString(1, f);
@@ -402,4 +401,4 @@ proto.scanoss.api.common.v2.StatusCode = {
402
401
  FAILED: 4
403
402
  };
404
403
  goog.object.extend(exports, proto.scanoss.api.common.v2);
405
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1jb21tb25fcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2dycGMvc2Nhbm9zcy9hcGkvY29tbW9uL3YyL3NjYW5vc3MtY29tbW9uX3BiLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZDs7Ozs7O0dBTUc7QUFDSCxpQ0FBaUM7QUFFakMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0FBRXpDLElBQUksQ0FBQyxZQUFZLENBQUMseUNBQXlDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzNFLElBQUksQ0FBQyxZQUFZLENBQUMsMENBQTBDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzVFLElBQUksQ0FBQyxZQUFZLENBQUMsd0NBQXdDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFFLElBQUksQ0FBQyxZQUFZLENBQUMsNENBQTRDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRTlFOzs7Ozs7Ozs7R0FTRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxHQUFHLFVBQVUsUUFBUTtJQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0QsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxJQUFJ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
404
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1jb21tb25fcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2dycGMvc2Nhbm9zcy9hcGkvY29tbW9uL3YyL3NjYW5vc3MtY29tbW9uX3BiLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILGlDQUFpQztBQUVqQyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN0QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7QUFDaEIsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7QUFFdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyx5Q0FBeUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDM0UsSUFBSSxDQUFDLFlBQVksQ0FBQywwQ0FBMEMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUUsSUFBSSxDQUFDLFlBQVksQ0FBQyx3Q0FBd0MsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMUUsSUFBSSxDQUFDLFlBQVksQ0FBQyw0Q0FBNEMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFOUU7Ozs7Ozs7OztHQVNHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEdBQUcsVUFBUyxRQUFRO0lBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFP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