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
@@ -1,47 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- const PURL_TYPE = 'maven';
4
- // Parse a pom.txt file from maven manifest file
5
- // See reference on: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html
6
- // and https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
7
- const MANIFEST_FILE = 'pom.xml';
8
- export function pomParser(fileContent, filePath) {
9
- // If the file is not a python manifest file, return an empty results
10
- const results = { file: filePath, purls: [] };
11
- if (path.basename(filePath) != MANIFEST_FILE)
12
- return results;
13
- const dependencies = fileContent.match(/<dependency>((?:.|\n)*?)<\/dependency>/gm);
14
- if (dependencies) {
15
- // TODO: classifier are not supported yet
16
- dependencies.forEach(dependency => {
17
- // Extract groupId. It's the purl namespace
18
- const groupId = dependency.match(/<groupId>([^<]*)<\/groupId>/);
19
- const namespace = groupId ? groupId[1] : '';
20
- // Extract artifact id. It's the purl name
21
- const artifactId = dependency.match(/<artifactId>([^<]*)<\/artifactId>/);
22
- const name = artifactId ? artifactId[1] : '';
23
- const versionReg = dependency.match(/<version>([^<]*)<\/version>/);
24
- let version = versionReg ? versionReg[1] : '';
25
- const ver = version.match(/\${(.*?)}/);
26
- if (ver && ver.length >= 1) {
27
- if (ver[1] === 'project.version') { // TODO: Add support for project.version
28
- version = undefined;
29
- }
30
- else {
31
- const res = fileContent.match(new RegExp(`<${ver[1]}>([^<]*)<\/${ver[1]}>`));
32
- version = res.length >= 1 ? res[1] : '';
33
- }
34
- }
35
- let purlQualifiers;
36
- const type = dependency.match(/<type>([^<]*)<\/type>/);
37
- if (type) {
38
- purlQualifiers = {};
39
- purlQualifiers['type'] = type[1];
40
- }
41
- const purlString = new PackageURL(PURL_TYPE, namespace, name, version, purlQualifiers, undefined).toString();
42
- results.purls.push({ purl: purlString });
43
- });
44
- }
45
- return results;
46
- }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW5QYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL21hdmVuUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUcxQixnREFBZ0Q7QUFDaEQsOEZBQThGO0FBQzlGLDZGQUE2RjtBQUM3RixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDaEMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRTNELHFFQUFxRTtJQUNyRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUVuQixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDbkYsSUFBRyxZQUFZLEVBQUU7UUFFZix5Q0FBeUM7UUFDekMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNoQywyQ0FBMkM7WUFDM0MsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFNUMsMENBQTBDO1lBQzFDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUN6RSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTdDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNuRSxJQUFJLE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTlDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsSUFBRyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUc7Z0JBQzFCLElBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLGlCQUFpQixFQUFFLEVBQUUsd0NBQXdDO29CQUN6RSxPQUFPLEdBQUcsU0FBUyxDQUFDO2lCQUNyQjtxQkFBTTtvQkFDTCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDN0UsT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDekM7YUFDRjtZQUVELElBQUksY0FBYyxDQUFDO1lBQ25CLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUN2RCxJQUFHLElBQUksRUFBRTtnQkFDTCxjQUFjLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ25DO1lBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIn0=
@@ -1,38 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- const PURL_TYPE = 'npm';
4
- // Parse a package.json file from node projects
5
- // See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
6
- const MANIFEST_FILE = 'package.json';
7
- export function packageParser(fileContent, filePath) {
8
- // If the file is not manifest file, return an empty results
9
- const results = { file: filePath, purls: [] };
10
- if (path.basename(filePath) != MANIFEST_FILE)
11
- return results;
12
- const o = JSON.parse(fileContent);
13
- let devDeps = Object.keys(o.devDependencies || {});
14
- let deps = Object.keys(o.dependencies || {});
15
- let listDeps = [...deps, ...devDeps];
16
- for (const name of listDeps) {
17
- const purlString = new PackageURL(PURL_TYPE, undefined, name, undefined, undefined, undefined).toString();
18
- results.purls.push({ purl: purlString });
19
- }
20
- return results;
21
- }
22
- // Parse a package-lock.json file from node projects
23
- // See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
24
- const MANIFEST_FILE_1 = 'package-lock.json';
25
- export function packagelockParser(fileContent, filePath) {
26
- const results = { file: filePath, purls: [] };
27
- if (path.basename(filePath) != MANIFEST_FILE_1)
28
- return results;
29
- const o = JSON.parse(fileContent).dependencies;
30
- for (const [key, value] of Object.entries(o)) {
31
- if (!key)
32
- continue;
33
- let purl = new PackageURL(PURL_TYPE, undefined, key, value['version'], undefined, undefined).toString();
34
- results.purls.push({ purl });
35
- }
36
- return results;
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcGFyc2Vycy9ucG1QYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBR3hCLCtDQUErQztBQUMvQywrRUFBK0U7QUFDL0UsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQ3JDLE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUMvRCw0REFBNEQ7SUFDNUQsTUFBTSxPQUFPLEdBQW1CLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDNUQsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFDbkIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLElBQUksUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNyQyxLQUFJLE1BQU0sSUFBSSxJQUFJLFFBQVEsRUFBQztRQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7S0FDMUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBR0Qsb0RBQW9EO0FBQ3BELCtFQUErRTtBQUMvRSxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQUM1QyxNQUFNLFVBQVUsaUJBQWlCLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUVuRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksZUFBZTtRQUN6QyxPQUFPLE9BQU8sQ0FBQztJQUVuQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUMvQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMxQyxJQUFHLENBQUMsR0FBRztZQUFFLFNBQVM7UUFDbEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUM7S0FDOUI7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIn0=
@@ -1,2 +0,0 @@
1
- import { FileDependency } from "./types";
2
- export declare function requirementsParser(fileContent: string, filePath: string): FileDependency;
@@ -1,44 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- import { isValidPath, isValidUrl } from './utils';
4
- const PURL_TYPE = 'pypi';
5
- // Parse a requirements.txt file from python projects
6
- // See reference on: https://pip.pypa.io/en/stable/reference/requirements-file-format/
7
- const MANIFEST_FILE = 'requirements.txt';
8
- export function requirementsParser(fileContent, filePath) {
9
- // If the file is not a python manifest file, return an empty results
10
- const results = { file: filePath, purls: [] };
11
- if (path.basename(filePath) != MANIFEST_FILE)
12
- return results;
13
- const lines = fileContent.split('\n');
14
- let compName = '';
15
- let compVer = '';
16
- for (let line of lines) {
17
- line = line.trim();
18
- if (!line.startsWith('#') && line.length > 0) { // Avoid comments and new lines
19
- if (isValidUrl(line)) {
20
- // For reference about the regex see https://www.rfc-editor.org/rfc/rfc3986#appendix-B
21
- const res = line.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/);
22
- continue;
23
- }
24
- else if (isValidPath(line)) {
25
- continue;
26
- }
27
- else if (line.startsWith('-r')) {
28
- continue;
29
- } // recursive dependencies (NOT SUPPORTED YET)
30
- else {
31
- // Line contains a package name and/or version.
32
- const res = line.match(/^([-\w]+)\s*(?:[>=~!]*)\s*([\d\.]*)/); //Extract name and version
33
- if (res) {
34
- compName = res.length > 1 ? res[1] : ' ';
35
- compVer = undefined;
36
- }
37
- }
38
- const purlString = new PackageURL(PURL_TYPE, undefined, compName, compVer, undefined, undefined).toString();
39
- results.purls.push({ purl: purlString });
40
- }
41
- }
42
- return results;
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3B5UGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWxELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztBQUV6QixxREFBcUQ7QUFDckQsc0ZBQXNGO0FBQ3RGLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ3pDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRXBFLHFFQUFxRTtJQUNyRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUduQixNQUFNLEtBQUssR0FBa0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFDMUIsSUFBSSxPQUFPLEdBQVcsRUFBRSxDQUFDO0lBRXpCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUUsRUFBRSwrQkFBK0I7WUFDekUsSUFBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pCLHNGQUFzRjtnQkFDdEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO2dCQUN4RixTQUFTO2FBQ1o7aUJBQ0ksSUFBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDO2lCQUNqQyxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDLENBQUMsNkNBQTZDO2lCQUNuRjtnQkFDRCwrQ0FBK0M7Z0JBQy9DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFJLDBCQUEwQjtnQkFDNUYsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDekMsT0FBTyxHQUFHLFNBQVMsQ0FBQztpQkFDdkI7YUFDSjtZQUNELE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztTQUMxQztLQUNKO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyJ9
@@ -1,132 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- const PURL_TYPE = 'gem';
4
- // Parse a gemfile file from ruby
5
- // See reference on: https://bundler.io/gemfile.html
6
- // and https://bundler.io/man/gemfile.5.html
7
- const MANIFEST_FILE = 'Gemfile';
8
- export function gemfileParser(fileContent, filePath) {
9
- // If the file is not a manifest file, return an empty results
10
- const results = { file: filePath, purls: [] };
11
- if (path.basename(filePath) != MANIFEST_FILE)
12
- return results;
13
- const lines = fileContent.split('\n');
14
- let compName = '';
15
- for (let line of lines) {
16
- line = line.trim();
17
- if (!line.startsWith('#') && line.length > 0) { // Avoid comments and empty lines
18
- // Line contains a package name and/or version.
19
- const res = line.match(/^gem\s*(["']\w+["'])/); //Extract name
20
- if (res) {
21
- compName = res.length > 1 ? res[1] : ' ';
22
- compName = compName.replace(/['"]/g, '');
23
- const purlString = new PackageURL(PURL_TYPE, undefined, compName, undefined, undefined, undefined).toString();
24
- results.purls.push({ purl: purlString });
25
- }
26
- }
27
- }
28
- return results;
29
- }
30
- const MANIFEST_FILE_1 = 'Gemfile.lock';
31
- export function gemfilelockParser(fileContent, filePath) {
32
- // If the file is not a manifest file, return an empty results
33
- const results = { file: filePath, purls: [] };
34
- if (path.basename(filePath) != MANIFEST_FILE_1)
35
- return results;
36
- const gemlockParser = new GemfileLockParser();
37
- const purls = gemlockParser.getDependencies(fileContent);
38
- for (const purl of purls) {
39
- results.purls.push({ purl });
40
- }
41
- return results;
42
- }
43
- // Section headings: these are also used as switches to track a parsing state
44
- const PATH = 'PATH';
45
- const GIT = 'GIT';
46
- const SVN = 'SVN';
47
- const GEM = 'GEM';
48
- const PLATFORMS = 'PLATFORMS';
49
- const DEPENDENCIES = 'DEPENDENCIES';
50
- const SPECS = ' specs:';
51
- // types of Gems, which is really where they are provisioned from
52
- // RubyGems repo, local path or VCS
53
- const GEM_TYPES = [GEM, PATH, GIT, SVN];
54
- const specRegex = /(?<name>[^ \)\(,!:]+)?(?: \((?<version>[^-]*?)(?:-(?<platform>[^!]*))?\))?/;
55
- const firstDepLevelRegex = /^ {4}(?! )/;
56
- /*
57
- The parsing use a simple state machine, switching states based on sections
58
- headings. The result is a list of purls
59
- */
60
- class GemfileLockParser {
61
- statesMap;
62
- state;
63
- current_options;
64
- current_gem;
65
- purlList;
66
- constructor() {
67
- this.purlList = [];
68
- // map of a line start string to the next parsing state function
69
- this.statesMap = {};
70
- this.statesMap[DEPENDENCIES] = this.parseDependency;
71
- this.statesMap[PLATFORMS] = this.parsePlatform;
72
- this.statesMap[GIT] = this.parseOptions;
73
- this.statesMap[PATH] = this.parseOptions;
74
- this.statesMap[SVN] = this.parseOptions;
75
- this.statesMap[GEM] = this.parseOptions;
76
- this.statesMap[SPECS] = this.parseSpec;
77
- }
78
- getDependencies(filecontent) {
79
- this.resetState();
80
- let file = filecontent.split('\n');
81
- for (let line of file) {
82
- line = line.trimEnd();
83
- //reset state on empty lines
84
- if (!line.length) {
85
- this.resetState();
86
- continue;
87
- }
88
- //switch to new state
89
- if (line in this.statesMap) {
90
- if (GEM_TYPES.includes(line))
91
- this.current_gem = line;
92
- this.state = this.statesMap[line];
93
- continue;
94
- }
95
- // process the line
96
- if (this.state)
97
- this.state(line);
98
- }
99
- this.refine();
100
- return this.purlList;
101
- }
102
- resetState() {
103
- this.current_options = {};
104
- this.state = null;
105
- }
106
- parseOptions(line) {
107
- const match = line.match(/\s*(\w+):\s*(.*)/);
108
- const key = match.length >= 1 ? match[1] : null;
109
- const value = match.length >= 2 ? match[2] : null;
110
- if (key)
111
- this.current_options[key] = value;
112
- }
113
- parseDependency(line) { }
114
- parsePlatform(line) { }
115
- parseSpec(line) {
116
- if (this.current_gem == GEM) {
117
- if (firstDepLevelRegex.test(line)) {
118
- line = line.trimStart();
119
- const match = line.match(specRegex);
120
- const purl = new PackageURL(PURL_TYPE, undefined, match.groups.name, match.groups.version, undefined, undefined).toString();
121
- this.purlList.push(purl);
122
- }
123
- else { // Second level of dependence
124
- }
125
- }
126
- if (this.current_gem == GIT) { }
127
- // Purl from local dependencies are not generated
128
- if (this.current_gem == PATH) { }
129
- }
130
- refine() { }
131
- }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVieVBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL3BhcnNlcnMvcnVieVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFHeEIsaUNBQWlDO0FBQ2pDLG9EQUFvRDtBQUNwRCw0Q0FBNEM7QUFDNUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2hDLE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUUvRCw4REFBOEQ7SUFDOUQsTUFBTSxPQUFPLEdBQW1CLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDNUQsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFHbkIsTUFBTSxLQUFLLEdBQWtCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsSUFBSSxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBRTFCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUUsRUFBRSxpQ0FBaUM7WUFDM0UsK0NBQStDO1lBQy9DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFJLGNBQWM7WUFDakUsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsUUFBUSxHQUFHLEdBQUcs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
@@ -1,15 +0,0 @@
1
- export interface Purl {
2
- purl: string;
3
- }
4
- export interface FileDependency {
5
- file: string;
6
- purls: Array<Purl>;
7
- }
8
- export interface FileListDependency {
9
- files: Array<FileDependency>;
10
- }
11
- declare type ParserFuncType = (fileContent: string, filePath: string) => FileDependency;
12
- export interface ParserDefinitions {
13
- [key: string]: ParserFuncType;
14
- }
15
- export {};
@@ -1,32 +0,0 @@
1
- export {};
2
- /*
3
- EXAMPLE
4
- {
5
- "files": [
6
- {
7
- "file": "./test/data/requirements.txt",
8
- "purls": [
9
- {
10
- "purl": "pkg:pypi/requests"
11
- },
12
- {
13
- "purl": "pkg:pypi/crc32c@2.2"
14
- },
15
- {
16
- "purl": "pkg:pypi/binaryornot"
17
- },
18
- {
19
- "purl": "pkg:pypi/progress"
20
- },
21
- {
22
- "purl": "pkg:pypi/grpcio"
23
- },
24
- {
25
- "purl": "pkg:pypi/protobuf"
26
- }
27
- ]
28
- }
29
- ]
30
- }
31
- */
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFvQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNkJFIn0=
@@ -1,15 +0,0 @@
1
- import { URL } from "url";
2
- export function isValidUrl(string) {
3
- let url;
4
- try {
5
- new URL(string);
6
- }
7
- catch (_) {
8
- return false;
9
- }
10
- return true;
11
- }
12
- export function isValidPath(string) {
13
- return /^((?:\.\.?)|(?:[a-zA-Z]:\\)|(?:\/))/gm.test(string);
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFMUIsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFjO0lBQ3JDLElBQUksR0FBUSxDQUFDO0lBQ2IsSUFBSTtRQUNGLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2pCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUgsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFjO0lBQ3hDLE9BQU8sdUNBQXVDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlELENBQUMifQ==