scanoss 0.2.18 → 0.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/build/main/bin/cli-bin.js +4 -2
  2. package/build/main/commands/dep.js +19 -7
  3. package/build/main/commands/helpers.d.ts +1 -0
  4. package/build/main/commands/helpers.js +22 -0
  5. package/build/main/commands/scan.js +3 -15
  6. package/build/main/index.d.ts +2 -1
  7. package/build/main/index.js +3 -2
  8. package/build/main/lib/dependencies/DependencyScanner.d.ts +10 -0
  9. package/build/main/lib/dependencies/DependencyScanner.js +66 -0
  10. package/build/main/lib/dependencies/DependencyScannerCfg.d.ts +4 -0
  11. package/build/main/lib/dependencies/DependencyScannerCfg.js +11 -0
  12. package/build/main/lib/dependencies/DependencyTypes.d.ts +10 -8
  13. package/build/main/lib/dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  14. package/build/main/lib/dependencies/LocalDependency/DependencyTypes.js +3 -0
  15. package/build/main/lib/dependencies/LocalDependency/LocalDependency.d.ts +6 -0
  16. package/build/main/lib/dependencies/LocalDependency/LocalDependency.js +51 -0
  17. package/build/main/lib/dependencies/LocalDependency/parsers/golangParser.d.ts +2 -0
  18. package/build/main/lib/dependencies/LocalDependency/parsers/golangParser.js +63 -0
  19. package/build/main/lib/dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  20. package/build/main/lib/dependencies/LocalDependency/parsers/mavenParser.js +57 -0
  21. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.d.ts +3 -3
  22. package/build/main/lib/dependencies/LocalDependency/parsers/npmParser.js +50 -0
  23. package/build/main/lib/dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  24. package/build/main/lib/dependencies/LocalDependency/parsers/pyParser.js +61 -0
  25. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.d.ts +3 -3
  26. package/build/main/lib/dependencies/LocalDependency/parsers/rubyParser.js +133 -0
  27. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/utils.d.ts +0 -0
  28. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/utils.js +1 -1
  29. package/build/main/lib/grpc/GrpcDependencyService.d.ts +11 -0
  30. package/build/main/lib/grpc/GrpcDependencyService.js +88 -0
  31. package/build/main/lib/{dependencies/parsers/golangParser.d.ts → grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts} +0 -0
  32. package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  33. package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  34. package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
  35. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +42 -0
  36. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  37. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  38. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
  39. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +21 -0
  40. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
  41. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  42. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
  43. package/build/main/lib/scanner/Scanner.js +1 -1
  44. package/build/module/bin/cli-bin.js +4 -2
  45. package/build/module/commands/dep.js +19 -7
  46. package/build/module/commands/helpers.d.ts +1 -0
  47. package/build/module/commands/helpers.js +15 -0
  48. package/build/module/commands/scan.js +2 -14
  49. package/build/module/index.d.ts +2 -1
  50. package/build/module/index.js +3 -2
  51. package/build/module/lib/dependencies/DependencyScanner.d.ts +10 -0
  52. package/build/module/lib/dependencies/DependencyScanner.js +64 -0
  53. package/build/module/lib/dependencies/DependencyScannerCfg.d.ts +4 -0
  54. package/build/module/lib/dependencies/DependencyScannerCfg.js +5 -0
  55. package/build/module/lib/dependencies/DependencyTypes.d.ts +10 -8
  56. package/build/module/lib/dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  57. package/build/module/lib/dependencies/LocalDependency/DependencyTypes.js +2 -0
  58. package/build/module/lib/dependencies/LocalDependency/LocalDependency.d.ts +6 -0
  59. package/build/module/lib/dependencies/LocalDependency/LocalDependency.js +45 -0
  60. package/build/module/lib/dependencies/LocalDependency/parsers/golangParser.d.ts +2 -0
  61. package/build/module/lib/dependencies/LocalDependency/parsers/golangParser.js +55 -0
  62. package/build/module/lib/dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  63. package/build/module/lib/dependencies/LocalDependency/parsers/mavenParser.js +50 -0
  64. package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.d.ts +3 -3
  65. package/build/module/lib/dependencies/LocalDependency/parsers/npmParser.js +42 -0
  66. package/build/module/lib/dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  67. package/build/module/lib/dependencies/LocalDependency/parsers/pyParser.js +53 -0
  68. package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.d.ts +3 -3
  69. package/build/module/lib/dependencies/LocalDependency/parsers/rubyParser.js +130 -0
  70. package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/utils.d.ts +0 -0
  71. package/build/module/lib/dependencies/LocalDependency/parsers/utils.js +15 -0
  72. package/build/module/lib/grpc/GrpcDependencyService.d.ts +11 -0
  73. package/build/module/lib/grpc/GrpcDependencyService.js +67 -0
  74. package/build/module/lib/{dependencies/parsers/golangParser.d.ts → grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts} +0 -0
  75. package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  76. package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  77. package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
  78. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +42 -0
  79. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  80. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  81. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
  82. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +21 -0
  83. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
  84. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  85. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
  86. package/build/module/lib/scanner/Scanner.js +1 -1
  87. package/build/tsconfig.module.tsbuildinfo +1 -1
  88. package/build/tsconfig.tsbuildinfo +1 -1
  89. package/package.json +3 -1
  90. package/src/bin/cli-bin.ts +4 -1
  91. package/src/commands/dep.ts +18 -6
  92. package/src/commands/helpers.ts +14 -0
  93. package/src/commands/scan.ts +3 -12
  94. package/src/index.ts +5 -1
  95. package/src/lib/dependencies/DependencyScanner.ts +77 -0
  96. package/src/lib/dependencies/DependencyScannerCfg.ts +7 -0
  97. package/src/lib/dependencies/DependencyTypes.ts +16 -14
  98. package/src/lib/dependencies/LocalDependency/DependencyTypes.ts +21 -0
  99. package/src/lib/dependencies/LocalDependency/LocalDependency.ts +48 -0
  100. package/src/lib/dependencies/LocalDependency/parsers/golangParser.ts +78 -0
  101. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/mavenParser.ts +10 -6
  102. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.ts +14 -8
  103. package/src/lib/dependencies/LocalDependency/parsers/pyParser.ts +55 -0
  104. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.ts +21 -29
  105. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/utils.ts +0 -1
  106. package/src/lib/grpc/GrpcDependencyService.ts +73 -0
  107. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +1 -0
  108. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +1 -0
  109. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +79 -0
  110. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +482 -0
  111. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +30 -0
  112. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +109 -0
  113. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +206 -0
  114. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1489 -0
  115. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +25 -0
  116. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +73 -0
  117. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +6 -0
  118. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
  119. package/src/lib/scanner/Scanner.ts +2 -1
  120. package/tsconfig.json +5 -22
  121. package/yarn.lock +5252 -5213
  122. package/build/main/lib/dependencies/Dependency.d.ts +0 -9
  123. package/build/main/lib/dependencies/Dependency.js +0 -52
  124. package/build/main/lib/dependencies/PurlGenerator.d.ts +0 -2
  125. package/build/main/lib/dependencies/PurlGenerator.js +0 -44
  126. package/build/main/lib/dependencies/parsers/golangParser.js +0 -3
  127. package/build/main/lib/dependencies/parsers/mavenParser.d.ts +0 -2
  128. package/build/main/lib/dependencies/parsers/mavenParser.js +0 -54
  129. package/build/main/lib/dependencies/parsers/npmParser.js +0 -46
  130. package/build/main/lib/dependencies/parsers/pyParser.d.ts +0 -2
  131. package/build/main/lib/dependencies/parsers/pyParser.js +0 -51
  132. package/build/main/lib/dependencies/parsers/rubyParser.js +0 -135
  133. package/build/main/lib/dependencies/parsers/types.d.ts +0 -15
  134. package/build/main/lib/dependencies/parsers/types.js +0 -33
  135. package/build/module/lib/dependencies/Dependency.d.ts +0 -9
  136. package/build/module/lib/dependencies/Dependency.js +0 -47
  137. package/build/module/lib/dependencies/PurlGenerator.d.ts +0 -2
  138. package/build/module/lib/dependencies/PurlGenerator.js +0 -37
  139. package/build/module/lib/dependencies/parsers/golangParser.js +0 -3
  140. package/build/module/lib/dependencies/parsers/mavenParser.d.ts +0 -2
  141. package/build/module/lib/dependencies/parsers/mavenParser.js +0 -47
  142. package/build/module/lib/dependencies/parsers/npmParser.js +0 -38
  143. package/build/module/lib/dependencies/parsers/pyParser.d.ts +0 -2
  144. package/build/module/lib/dependencies/parsers/pyParser.js +0 -44
  145. package/build/module/lib/dependencies/parsers/rubyParser.js +0 -132
  146. package/build/module/lib/dependencies/parsers/types.d.ts +0 -15
  147. package/build/module/lib/dependencies/parsers/types.js +0 -32
  148. package/build/module/lib/dependencies/parsers/utils.js +0 -15
  149. package/package-lock.json +0 -18589
  150. package/src/lib/dependencies/Dependency.ts +0 -60
  151. package/src/lib/dependencies/PurlGenerator.ts +0 -44
  152. package/src/lib/dependencies/parsers/golangParser.ts +0 -4
  153. package/src/lib/dependencies/parsers/pyParser.ts +0 -46
  154. package/src/lib/dependencies/parsers/types.ts +0 -50
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.requirementsParser = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const packageurl_js_1 = require("packageurl-js");
9
+ const utils_1 = require("./utils");
10
+ function parseDep(str) {
11
+ var _a, _b, _c;
12
+ const res = /^(?<name>[-\w]+)\s*(?<sym>[>=~!]*)\s*(?<version>[\d\.]*)/.exec(str);
13
+ return {
14
+ name: (_a = res === null || res === void 0 ? void 0 : res.groups) === null || _a === void 0 ? void 0 : _a.name,
15
+ sym: (_b = res === null || res === void 0 ? void 0 : res.groups) === null || _b === void 0 ? void 0 : _b.sym,
16
+ version: (_c = res === null || res === void 0 ? void 0 : res.groups) === null || _c === void 0 ? void 0 : _c.version,
17
+ };
18
+ }
19
+ const PURL_TYPE = 'pypi';
20
+ // Parse a requirements.txt file from python projects
21
+ // See reference on: https://pip.pypa.io/en/stable/reference/requirements-file-format/
22
+ const MANIFEST_FILE = 'requirements.txt';
23
+ function requirementsParser(fileContent, filePath) {
24
+ // If the file is not a python manifest file, return an empty results
25
+ const results = { file: filePath, purls: [] };
26
+ if (path_1.default.basename(filePath) != MANIFEST_FILE)
27
+ return results;
28
+ const lines = fileContent.split('\n');
29
+ for (let line of lines) {
30
+ line = line.trim();
31
+ if (line.length == 0)
32
+ continue;
33
+ if (!line.startsWith('#') && line.length > 0) { // Avoid comments and new lines
34
+ if ((0, utils_1.isValidUrl)(line)) {
35
+ // For reference about the regex see https://www.rfc-editor.org/rfc/rfc3986#appendix-B
36
+ const res = line.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/);
37
+ continue;
38
+ }
39
+ else if ((0, utils_1.isValidPath)(line)) {
40
+ continue;
41
+ } // Do not parse local dependencies.
42
+ else if (line.startsWith('-r')) {
43
+ continue;
44
+ } // Recursive dependencies (NOT SUPPORTED YET)
45
+ else {
46
+ const dep = parseDep(line);
47
+ if (dep.sym === '==') {
48
+ const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, dep.name, dep.version, undefined, undefined).toString();
49
+ results.purls.push({ purl: purlString });
50
+ }
51
+ else {
52
+ const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, undefined, dep.name, undefined, undefined, undefined).toString();
53
+ results.purls.push({ purl: purlString, requirements: dep.sym + dep.version });
54
+ }
55
+ }
56
+ }
57
+ }
58
+ return results;
59
+ }
60
+ exports.requirementsParser = requirementsParser;
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy9weVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsaURBQTJDO0FBRTNDLG1DQUFrRDtBQUdsRCxTQUFTLFFBQVEsQ0FBRSxHQUFXOztJQUM1QixNQUFNLEdBQUcsR0FBRywwREFBMEQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakYsT0FBTztRQUNMLElBQUksRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLDBDQUFFLElBQUk7UUFDdkIsR0FBRyxFQUFFLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sMENBQUUsR0FBRztRQUNyQixPQUFPLEVBQUUsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSwwQ0FBRSxPQUFPO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBRXpCLHFEQUFxRDtBQUNyRCxzRkFBc0Y7QUFDdEYsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUM7QUFDekMsU0FBZ0Isa0JBQWtCLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUVwRSxxRUFBcUU7SUFDckUsTUFBTSxPQUFPLEdBQXFCLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDOUQsSUFBRyxjQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFFbkIsTUFBTSxLQUFLLEdBQWtCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckQsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDcEIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLFNBQVM7UUFDOUIsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUUsRUFBRSwrQkFBK0I7WUFDeEUsSUFBRyxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pCLHNGQUFzRjtnQkFDdEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO2dCQUN4RixTQUFTO2FBQ1o7aUJBQ0ksSUFBRyxJQUFBLG1CQUFXLEVBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDLENBQUMsbUNBQW1DO2lCQUNyRSxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDLENBQUMsNkNBQTZDO2lCQUNuRjtnQkFFRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUU7b0JBQ3BCLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2hILE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7aUJBQ3hDO3FCQUFNO29CQUNMLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDOUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO2lCQUMzRTthQUNKO1NBQ0o7S0FDSjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUFsQ0QsZ0RBa0NDIn0=
@@ -1,3 +1,3 @@
1
- import { 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
@@ -0,0 +1,11 @@
1
+ import * as DependenciesMessages from './scanoss/api/dependencies/v2/scanoss-dependencies_pb.js';
2
+ import * as CommonMessages from './scanoss/api/common/v2/scanoss-common_pb';
3
+ export declare class GrpcDependencyService {
4
+ private client;
5
+ private metadata;
6
+ constructor(endpoint: string, port: string, apiKey?: string);
7
+ get(req: DependenciesMessages.DependencyRequest): Promise<DependenciesMessages.DependencyResponse>;
8
+ buildDependencyRequestMsg(plainObj: DependenciesMessages.DependencyRequest.AsObject): DependenciesMessages.DependencyRequest;
9
+ echo(req: CommonMessages.EchoRequest): Promise<CommonMessages.EchoResponse>;
10
+ buildEchoRequestMsg(plainObj: CommonMessages.EchoRequest.AsObject): CommonMessages.EchoRequest;
11
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.GrpcDependencyService = void 0;
23
+ const grpc = __importStar(require("@grpc/grpc-js"));
24
+ const scanoss_dependencies_grpc_pb_1 = require("./scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb");
25
+ const DependenciesMessages = __importStar(require("./scanoss/api/dependencies/v2/scanoss-dependencies_pb.js"));
26
+ const CommonMessages = __importStar(require("./scanoss/api/common/v2/scanoss-common_pb"));
27
+ class GrpcDependencyService {
28
+ constructor(endpoint, port, apiKey = '') {
29
+ this.client = new scanoss_dependencies_grpc_pb_1.DependenciesClient(endpoint + ':' + port, grpc.credentials.createSsl());
30
+ if (apiKey) {
31
+ this.metadata = new grpc.Metadata();
32
+ console.log("Pased here");
33
+ this.metadata.add('x-api-key', apiKey);
34
+ }
35
+ }
36
+ async get(req) {
37
+ return new Promise((resolve, reject) => {
38
+ this.client.getDependencies(req, (err, response) => {
39
+ if (err)
40
+ reject(err);
41
+ resolve(response);
42
+ });
43
+ });
44
+ }
45
+ buildDependencyRequestMsg(plainObj) {
46
+ try {
47
+ const depMessage = new DependenciesMessages.DependencyRequest();
48
+ for (const dependency of plainObj.filesList) {
49
+ const fileMsg = new DependenciesMessages.DependencyRequest.Files();
50
+ fileMsg.setFile(dependency.file);
51
+ for (const purl of dependency.purlsList) {
52
+ const purlMsg = new DependenciesMessages.DependencyRequest.Purls();
53
+ purlMsg.setPurl(purl.purl);
54
+ purlMsg.setRequirement(purl === null || purl === void 0 ? void 0 : purl.requirement);
55
+ fileMsg.addPurls(purlMsg);
56
+ }
57
+ depMessage.addFiles(fileMsg);
58
+ }
59
+ return depMessage;
60
+ }
61
+ catch (e) {
62
+ console.error(e);
63
+ return null;
64
+ }
65
+ }
66
+ async echo(req) {
67
+ return new Promise((resolve, reject) => {
68
+ this.client.echo(req, (err, response) => {
69
+ if (err)
70
+ reject(err);
71
+ resolve(response);
72
+ });
73
+ });
74
+ }
75
+ buildEchoRequestMsg(plainObj) {
76
+ try {
77
+ const echoMessage = new CommonMessages.EchoRequest();
78
+ echoMessage.setMessage(plainObj.message);
79
+ return echoMessage;
80
+ }
81
+ catch (e) {
82
+ console.error(e);
83
+ return null;
84
+ }
85
+ }
86
+ }
87
+ exports.GrpcDependencyService = GrpcDependencyService;
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY0RlcGVuZGVuY3lTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9ncnBjL0dycGNEZXBlbmRlbmN5U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXNDO0FBQ3RDLDZHQUFnRztBQUNoRywrR0FBaUc7QUFDakcsMEZBQTJFO0FBRTNFLE1BQWEscUJBQXFCO0lBTWhDLFlBQVksUUFBZ0IsRUFBRSxJQUFZLEVBQUUsTUFBTSxHQUFDLEVBQUU7UUFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlEQUFrQixDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxRixJQUFHLE1BQU0sRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUEyQztRQUMxRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxHQUFHO29CQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0seUJBQXlCLENBQUMsUUFBeUQ7UUFDeEYsSUFBSTtZQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUU7Z0JBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQyxLQUFLLE1BQU0sSUFBSSxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUU7b0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ25FLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMzQixPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxXQUFXLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDM0I7Z0JBQ0QsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM5QjtZQUNELE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBR00sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUErQjtRQUMvQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxHQUFHO29CQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR00sbUJBQW1CLENBQUMsUUFBNkM7UUFDdEUsSUFBSTtZQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0NBRUY7QUFuRUQsc0RBbUVDIn0=
@@ -0,0 +1,2 @@
1
+ // GENERATED CODE -- NO SERVICES IN PROTO
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1jb21tb25fZ3JwY19wYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZ3JwYy9zY2Fub3NzL2FwaS9jb21tb24vdjIvc2Nhbm9zcy1jb21tb25fZ3JwY19wYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUMifQ==