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
package/.cspell.json CHANGED
@@ -3,8 +3,8 @@
3
3
  "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/master/cspell.schema.json",
4
4
  "language": "en",
5
5
  "words": [
6
- "bitjson",
7
6
  "bitauth",
7
+ "bitjson",
8
8
  "cimg",
9
9
  "circleci",
10
10
  "codecov",
@@ -17,6 +17,7 @@
17
17
  "globby",
18
18
  "libauth",
19
19
  "mkdir",
20
+ "packagelock",
20
21
  "prettierignore",
21
22
  "sandboxed",
22
23
  "transpiled",
@@ -11,7 +11,7 @@ function CLIErrorHandler(e) {
11
11
  }
12
12
  async function main() {
13
13
  commander_1.program
14
- .version("0.2.19")
14
+ .version("0.2.21")
15
15
  .description('The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.');
16
16
  commander_1.program
17
17
  .command('scan <source>')
@@ -35,6 +35,8 @@ async function main() {
35
35
  .command('dep <source>')
36
36
  .description('Scan for dependencies [ BETA ]')
37
37
  .option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
38
+ .option('-a, --grpc-host <host>', 'SCANOSS GRPC HOST (optional - default: scanoss.com)')
39
+ .option('-p, --grpc-port <port>', 'SCANOSS GRPC PORT (optional - default: 443)')
38
40
  .action((source, options) => { (0, dep_1.depHandler)(source, options).catch((e) => { CLIErrorHandler(e); }); });
39
41
  await commander_1.program.parseAsync(process.argv);
40
42
  }
@@ -45,4 +47,4 @@ catch (e) {
45
47
  console.error(e);
46
48
  process.exit(1);
47
49
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vY2xpLWJpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx5Q0FBb0M7QUFDcEMseUNBQTZDO0FBQzdDLDJDQUErQztBQUUvQyxTQUFTLGVBQWUsQ0FBQyxDQUFRO0lBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFLRCxLQUFLLFVBQVUsSUFBSTtJQUNqQixtQkFBTztTQUNKLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDakIsV0FBVyxDQUFDLDRHQUE0RyxDQUFDLENBQUE7SUFFNUgsbUJBQU87U0FDSixPQUFPLENBQUMsZUFBZSxDQUFDO1NBQ3hCLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztRQUNsQyw2RUFBNkU7U0FDNUUsTUFBTSxDQUFDLDRCQUE0QixFQUFFLCtFQUErRSxDQUFDO1NBQ3JILE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSx5Q0FBeUMsQ0FBQztTQUNwRSxNQUFNLENBQUMseUJBQXlCLEVBQUUscURBQXFELENBQUM7U0FDeEYsTUFBTSxDQUFDLHFCQUFxQixFQUFFLG1SQUFtUixDQUFDO1NBQ2xULE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSxpRkFBaUYsQ0FBQztTQUN2SCxNQUFNLENBQUMseUJBQXlCLEVBQUUsMkRBQTJELENBQUM7U0FDOUYsTUFBTSxDQUFDLHlCQUF5QixFQUFFLG9FQUFvRSxDQUFDO1NBQ3ZHLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSx5RUFBeUUsQ0FBQztTQUMxRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsdUVBQXVFLENBQUM7U0FDbEcsTUFBTSxDQUFDLGVBQWUsRUFBRSw4QkFBOEIsQ0FBQztTQUN2RCxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRSxJQUFBLGtCQUFXLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUM7U0FDOUYsV0FBVyxDQUFDLE9BQU8sRUFBRTs7MERBRWdDLENBQ3JELENBQUM7SUFFRixtQkFBTztTQUNOLE9BQU8sQ0FBQyxjQUFjLENBQUM7U0FDdkIsV0FBVyxDQUFDLGdDQUFnQyxDQUFDO1NBQzdDLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxxREFBcUQsQ0FBQztTQUN4RixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRSxJQUFBLGdCQUFVLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQTtJQUU5RixNQUFNLG1CQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBR0QsSUFBSTtJQUNGLElBQUksRUFBRSxDQUFDO0NBQ1I7QUFBQyxPQUFPLENBQUMsRUFBRTtJQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNqQiJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vY2xpLWJpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx5Q0FBb0M7QUFDcEMseUNBQTZDO0FBQzdDLDJDQUErQztBQUUvQyxTQUFTLGVBQWUsQ0FBQyxDQUFRO0lBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFLRCxLQUFLLFVBQVUsSUFBSTtJQUNqQixtQkFBTztTQUNKLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDakIsV0FBVyxDQUFDLDRHQUE0RyxDQUFDLENBQUE7SUFFNUgsbUJBQU87U0FDSixPQUFPLENBQUMsZUFBZSxDQUFDO1NBQ3hCLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztRQUNsQyw2RUFBNkU7U0FDNUUsTUFBTSxDQUFDLDRCQUE0QixFQUFFLCtFQUErRSxDQUFDO1NBQ3JILE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSx5Q0FBeUMsQ0FBQztTQUNwRSxNQUFNLENBQUMseUJBQXlCLEVBQUUscURBQXFELENBQUM7U0FDeEYsTUFBTSxDQUFDLHFCQUFxQixFQUFFLG1SQUFtUixDQUFDO1NBQ2xULE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSxpRkFBaUYsQ0FBQztTQUN2SCxNQUFNLENBQUMseUJBQXlCLEVBQUUsMkRBQTJELENBQUM7U0FDOUYsTUFBTSxDQUFDLHlCQUF5QixFQUFFLG9FQUFvRSxDQUFDO1NBQ3ZHLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSx5RUFBeUUsQ0FBQztTQUMxRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsdUVBQXVFLENBQUM7U0FDbEcsTUFBTSxDQUFDLGVBQWUsRUFBRSw4QkFBOEIsQ0FBQztTQUN2RCxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRSxJQUFBLGtCQUFXLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUM7U0FDOUYsV0FBVyxDQUFDLE9BQU8sRUFBRTs7MERBRWdDLENBQ3JELENBQUM7SUFFRixtQkFBTztTQUNOLE9BQU8sQ0FBQyxjQUFjLENBQUM7U0FDdkIsV0FBVyxDQUFDLGdDQUFnQyxDQUFDO1NBQzdDLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxxREFBcUQsQ0FBQztTQUN4RixNQUFNLENBQUMsd0JBQXdCLEVBQUUscURBQXFELENBQUM7U0FDdkYsTUFBTSxDQUFDLHdCQUF3QixFQUFFLDhDQUE4QyxDQUFDO1NBRWhGLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFFLElBQUEsZ0JBQVUsRUFBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBO0lBRTlGLE1BQU0sbUJBQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFHRCxJQUFJO0lBQ0YsSUFBSSxFQUFFLENBQUM7Q0FDUjtBQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2pCIn0=
@@ -5,16 +5,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.depHandler = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
- const __1 = require("..");
8
+ const DependencyScanner_1 = require("../lib/dependencies/DependencyScanner");
9
+ const DependencyScannerCfg_1 = require("../lib/dependencies/DependencyScannerCfg");
9
10
  const Tree_1 = require("../lib/tree/Tree");
11
+ const helpers_1 = require("./helpers");
10
12
  async function depHandler(rootPath, options) {
11
13
  rootPath = rootPath.replace(/\/$/, ''); // Remove trailing slash if exists
12
14
  rootPath = rootPath.replace(/^\./, process.env.PWD); // Convert relative path to absolute path.
13
- const tree = new Tree_1.Tree(rootPath);
14
- tree.buildTree();
15
- const fileList = tree.getRootFolder().getFiles().map((path) => { return rootPath + path; });
16
- const dependency = new __1.Dependency();
17
- const results = await dependency.scan(fileList);
15
+ const pathIsFolder = await (0, helpers_1.isFolder)(rootPath);
16
+ const dependencyScannerCfg = new DependencyScannerCfg_1.DependencyScannerCfg();
17
+ if (options.grpcHost)
18
+ dependencyScannerCfg.DEFAULT_GRPC_HOST = options.grpcHost;
19
+ if (options.grpcPort)
20
+ dependencyScannerCfg.DEFAULT_GRPC_PORT = options.grpcPort;
21
+ const dependencyScanner = new DependencyScanner_1.DependencyScanner(dependencyScannerCfg);
22
+ let fileList = [];
23
+ fileList.push(rootPath);
24
+ if (pathIsFolder) {
25
+ const tree = new Tree_1.Tree(rootPath);
26
+ tree.buildTree();
27
+ fileList = tree.getRootFolder().getFiles().map((path) => { return rootPath + path; });
28
+ }
29
+ const results = await dependencyScanner.scan(fileList);
18
30
  if (options.output) {
19
31
  fs_1.default.promises.writeFile(options.output, JSON.stringify(results, null, 2));
20
32
  }
@@ -23,4 +35,4 @@ async function depHandler(rootPath, options) {
23
35
  }
24
36
  }
25
37
  exports.depHandler = depHandler;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsMEJBQWdDO0FBQ2hDLDJDQUF3QztBQUVqQyxLQUFLLFVBQVUsVUFBVSxDQUFDLFFBQWdCLEVBQUUsT0FBWTtJQUM3RCxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBRSxrQ0FBa0M7SUFDM0UsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSwwQ0FBMEM7SUFFaEcsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRWpCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFFLE9BQU8sUUFBUSxHQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDO0lBRXZGLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBVSxFQUFFLENBQUM7SUFDcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWhELElBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNqQixZQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3pFO1NBQU07UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9DO0FBRUgsQ0FBQztBQWxCRCxnQ0FrQkMifQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsNkVBQTBFO0FBQzFFLG1GQUFnRjtBQUNoRiwyQ0FBd0M7QUFDeEMsdUNBQXFDO0FBRTlCLEtBQUssVUFBVSxVQUFVLENBQUMsUUFBZ0IsRUFBRSxPQUFZO0lBRTdELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGtDQUFrQztJQUMzRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLDBDQUEwQztJQUNoRyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUEsa0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxNQUFNLG9CQUFvQixHQUFHLElBQUksMkNBQW9CLEVBQUUsQ0FBQztJQUN4RCxJQUFHLE9BQU8sQ0FBQyxRQUFRO1FBQUUsb0JBQW9CLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvRSxJQUFHLE9BQU8sQ0FBQyxRQUFRO1FBQUUsb0JBQW9CLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUUvRSxNQUFNLGlCQUFpQixHQUFHLElBQUkscUNBQWlCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUV0RSxJQUFJLFFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFeEIsSUFBSSxZQUFZLEVBQUU7UUFDaEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRSxPQUFPLFFBQVEsR0FBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQztLQUNsRjtJQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0saUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXZELElBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNqQixZQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3pFO1NBQU07UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9DO0FBRUgsQ0FBQztBQTVCRCxnQ0E0QkMifQ==
@@ -0,0 +1 @@
1
+ export declare const isFolder: (path: string) => Promise<boolean>;
@@ -0,0 +1,22 @@
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.isFolder = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ // Async function that verify if a path is a folder. If the path is not valid the promise will be rejected
9
+ const isFolder = (path) => {
10
+ return new Promise((resolve, reject) => {
11
+ fs_1.default.stat(path, (err, stats) => {
12
+ if (err) {
13
+ reject(err);
14
+ }
15
+ else {
16
+ resolve(stats.isDirectory());
17
+ }
18
+ });
19
+ });
20
+ };
21
+ exports.isFolder = isFolder;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDRDQUFvQjtBQUVwQiwwR0FBMEc7QUFDbkcsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFZLEVBQW9CLEVBQUU7SUFDekQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxZQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMzQixJQUFJLEdBQUcsRUFBRTtnQkFDUCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7YUFDOUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFBO0FBVlksUUFBQSxRQUFRLFlBVXBCIn0=
@@ -11,25 +11,13 @@ const Tree_1 = require("../lib/tree/Tree");
11
11
  const cli_progress_1 = __importDefault(require("cli-progress"));
12
12
  const defaultFilter_1 = require("../lib/filters/defaultFilter");
13
13
  const filtering_1 = require("../lib/filters/filtering");
14
+ const helpers_1 = require("./helpers");
14
15
  const fs_1 = __importDefault(require("fs"));
15
- // Async function that verify if a path is a folder. If the path is not valid the promise will be rejected
16
- const isFolder = (path) => {
17
- return new Promise((resolve, reject) => {
18
- fs_1.default.stat(path, (err, stats) => {
19
- if (err) {
20
- reject(err);
21
- }
22
- else {
23
- resolve(stats.isDirectory());
24
- }
25
- });
26
- });
27
- };
28
16
  async function scanHandler(rootPath, options) {
29
17
  let scannerInput = { fileList: [] };
30
18
  rootPath = rootPath.replace(/\/$/, ''); // Remove trailing slash if exists
31
19
  rootPath = rootPath.replace(/^\./, process.env.PWD); // Convert relative path to absolute path.
32
- const pathIsFolder = await isFolder(rootPath);
20
+ const pathIsFolder = await (0, helpers_1.isFolder)(rootPath);
33
21
  // Create scanner and set connections parameters
34
22
  const scannerCfg = new ScannerCfg_1.ScannerCfg();
35
23
  if (options.concurrency)
@@ -97,4 +85,4 @@ async function scanHandler(rootPath, options) {
97
85
  await scanner.scan([scannerInput]);
98
86
  }
99
87
  exports.scanHandler = scanHandler;
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUFpRDtBQUNqRCw4REFBMEU7QUFDMUUsMERBQXVEO0FBQ3ZELDJDQUF3QztBQUV4QyxnRUFBdUM7QUFFdkMsZ0VBQTZEO0FBQzdELHdEQUFzRDtBQUV0RCw0Q0FBb0I7QUFFcEIsMEdBQTBHO0FBQzFHLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFvQixFQUFFO0lBQ2xELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsWUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQTtBQUVNLEtBQUssVUFBVSxXQUFXLENBQUMsUUFBZ0IsRUFBRSxPQUFZO0lBRTlELElBQUksWUFBWSxHQUFpQixFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUVoRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBRSxrQ0FBa0M7SUFDM0UsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSwwQ0FBMEM7SUFDaEcsTUFBTSxZQUFZLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFOUMsZ0RBQWdEO0lBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUksdUJBQVUsRUFBRSxDQUFDO0lBQ3BDLElBQUcsT0FBTyxDQUFDLFdBQVc7UUFBRSxVQUFVLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRixJQUFHLE9BQU8sQ0FBQyxRQUFRO1FBQUUsVUFBVSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3RGLElBQUcsT0FBTyxDQUFDLE1BQU07UUFBRSxVQUFVLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDdkQsSUFBRyxPQUFPLENBQUMsR0FBRztRQUFFLFVBQVUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNqRCxJQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQUUsVUFBVSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNoRSxJQUFHLE9BQU8sQ0FBQyxRQUFRO1FBQUUsVUFBVSxDQUFDLG1DQUFtQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDdkYsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLFlBQVksQ0FBQyxVQUFVLEdBQUcsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLDJEQUEyRDtJQUNyRyxJQUFHLE9BQU8sQ0FBQyxLQUFLO1FBQUUsWUFBWSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBRTNELElBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ2YsSUFBRyxZQUFZLEVBQUU7WUFDZixNQUFNLElBQUksR0FBRyxJQUFJLFdBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFbEMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDckM7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLDZCQUEyQixDQUFDLENBQUM7YUFDMUM7WUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsWUFBWSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUM7YUFBTTtZQUNMLFlBQVksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNwQztLQUNGO1NBQU07UUFDTCxNQUFNLFNBQVMsR0FBRyxZQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ2pFLDBEQUEwRDtLQUMzRDtJQUVELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLEVBQUUsTUFBTSxFQUFFLHlFQUF5RSxFQUFFLENBQUM7UUFDdEcsTUFBTSxJQUFJLEdBQUcsSUFBSSxzQkFBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsc0JBQVcsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU1QyxPQUFPLENBQUMsRUFBRSxDQUFDLDRCQUFhLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUE0QixFQUFFLEVBQUU7WUFDN0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsRUFBRSxDQUFDLDRCQUFhLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0tBQzNFO1NBQU07UUFDTCxPQUFPLENBQUMsRUFBRSxDQUFDLDRCQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDNUU7SUFFRCxPQUFPLENBQUMsRUFBRSxDQUFDLDRCQUFhLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRTtRQUN2RCxJQUFHLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDOztZQUV2RCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLE9BQU8sQ0FBQyxHQUFHO1FBQUUsTUFBTSxPQUFPLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7O1FBQzFELE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFFMUMsQ0FBQztBQXJFRCxrQ0FxRUMifQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUFpRDtBQUNqRCw4REFBMEU7QUFDMUUsMERBQXVEO0FBQ3ZELDJDQUF3QztBQUV4QyxnRUFBdUM7QUFFdkMsZ0VBQTZEO0FBQzdELHdEQUFzRDtBQUV0RCx1Q0FBcUM7QUFFckMsNENBQW9CO0FBSWIsS0FBSyxVQUFVLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE9BQVk7SUFFOUQsSUFBSSxZQUFZLEdBQWlCLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBRWhELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGtDQUFrQztJQUMzRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLDBDQUEwQztJQUNoRyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUEsa0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxnREFBZ0Q7SUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxFQUFFLENBQUM7SUFDcEMsSUFBRyxPQUFPLENBQUMsV0FBVztRQUFFLFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JGLElBQUcsT0FBTyxDQUFDLFFBQVE7UUFBRSxVQUFVLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDdEYsSUFBRyxPQUFPLENBQUMsTUFBTTtRQUFFLFVBQVUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUN2RCxJQUFHLE9BQU8sQ0FBQyxHQUFHO1FBQUUsVUFBVSxD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
@@ -2,4 +2,5 @@ export * from './lib/scanner/ScannerTypes';
2
2
  export * from './lib/scanner/ScannerCfg';
3
3
  export * from './lib/scanner/Scanner';
4
4
  export * from './lib/dependencies/DependencyTypes';
5
- export * from './lib/dependencies/Dependency';
5
+ export * from './lib/dependencies/DependencyScannerCfg';
6
+ export * from './lib/dependencies/DependencyScanner';
@@ -14,5 +14,6 @@ __exportStar(require("./lib/scanner/ScannerTypes"), exports);
14
14
  __exportStar(require("./lib/scanner/ScannerCfg"), exports);
15
15
  __exportStar(require("./lib/scanner/Scanner"), exports);
16
16
  __exportStar(require("./lib/dependencies/DependencyTypes"), exports);
17
- __exportStar(require("./lib/dependencies/Dependency"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTJDO0FBQzNDLDJEQUF3QztBQUN4Qyx3REFBcUM7QUFDckMscUVBQW1EO0FBQ25ELGdFQUE4QyJ9
17
+ __exportStar(require("./lib/dependencies/DependencyScannerCfg"), exports);
18
+ __exportStar(require("./lib/dependencies/DependencyScanner"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTJDO0FBQzNDLDJEQUF3QztBQUN4Qyx3REFBcUM7QUFDckMscUVBQW1EO0FBQ25ELDBFQUF3RDtBQUN4RCx1RUFBcUQifQ==
@@ -1,9 +1,10 @@
1
- import { ILocalDependencies } from "./DependencyTypes";
2
- import { DependencyResponse } from "../grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb";
1
+ import { DependencyScannerCfg } from "./DependencyScannerCfg";
2
+ import { IDependencyResponse } from "./DependencyTypes";
3
3
  export declare class DependencyScanner {
4
+ private localDependency;
4
5
  private grpcDependencyService;
5
- constructor();
6
- scan(files: Array<string>): Promise<DependencyResponse>;
6
+ constructor(cfg?: DependencyScannerCfg);
7
+ scan(files: Array<string>): Promise<IDependencyResponse>;
7
8
  private buildRequest;
8
- localDependencySearch(files: Array<string>): Promise<ILocalDependencies>;
9
+ private mergeScopeField;
9
10
  }
@@ -1,54 +1,38 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.DependencyScanner = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const fs_1 = __importDefault(require("fs"));
9
- const mavenParser_1 = require("./parsers/mavenParser");
10
- const npmParser_1 = require("./parsers/npmParser");
11
- const pyParser_1 = require("./parsers/pyParser");
12
- const rubyParser_1 = require("./parsers/rubyParser");
13
4
  const GrpcDependencyService_1 = require("../grpc/GrpcDependencyService");
14
5
  const scanoss_dependencies_pb_1 = require("../grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb");
15
- /*
16
- This is a hash map that connect a filename with it's own parser function
17
- Any parser function must return a ILocalDependencies object (See DependencyTypes.ts)
18
- */
19
- const Parser = {
20
- 'requirements.txt': pyParser_1.requirementsParser,
21
- 'pom.xml': mavenParser_1.pomParser,
22
- 'package.json': npmParser_1.packageParser,
23
- 'package-lock.json': npmParser_1.packagelockParser,
24
- 'Gemfile': rubyParser_1.gemfileParser,
25
- 'Gemfile.lock': rubyParser_1.gemfilelockParser
26
- };
6
+ const LocalDependency_1 = require("./LocalDependency/LocalDependency");
7
+ const DependencyScannerCfg_1 = require("./DependencyScannerCfg");
27
8
  class DependencyScanner {
28
- constructor() {
29
- this.grpcDependencyService = new GrpcDependencyService_1.GrpcDependencyService();
9
+ constructor(cfg = new DependencyScannerCfg_1.DependencyScannerCfg()) {
10
+ this.grpcDependencyService = new GrpcDependencyService_1.GrpcDependencyService(cfg.DEFAULT_GRPC_HOST, cfg.DEFAULT_GRPC_PORT);
11
+ this.localDependency = new LocalDependency_1.LocalDependencies();
30
12
  }
31
13
  async scan(files) {
32
- try {
33
- const localDependencies = await this.localDependencySearch(files);
34
- const request = this.buildRequest(localDependencies);
35
- return await this.grpcDependencyService.get(request);
36
- }
37
- catch (e) {
38
- console.error(e);
39
- return null;
40
- }
14
+ const localDependencies = await this.localDependency.search(files);
15
+ if (localDependencies.files.length === 0)
16
+ return { filesList: [] };
17
+ const request = this.buildRequest(localDependencies);
18
+ const grpcResponse = await this.grpcDependencyService.get(request);
19
+ const response = grpcResponse.toObject();
20
+ // Extract scope from localDependencies and add it to response
21
+ this.mergeScopeField(localDependencies, response);
22
+ return response;
41
23
  }
42
24
  buildRequest(localDependencies) {
43
25
  try {
44
26
  const depRequest = new scanoss_dependencies_pb_1.DependencyRequest();
27
+ depRequest.setDepth(1);
45
28
  for (const file of localDependencies.files) {
46
29
  const fileMsg = new scanoss_dependencies_pb_1.DependencyRequest.Files();
47
30
  fileMsg.setFile(file.file);
48
31
  for (const purl of file.purls) {
49
32
  const purlMsg = new scanoss_dependencies_pb_1.DependencyRequest.Purls();
50
33
  purlMsg.setPurl(purl.purl);
51
- purlMsg.setRequirement(purl.requirements);
34
+ if (purl === null || purl === void 0 ? void 0 : purl.requirement)
35
+ purlMsg.setRequirement(purl.requirement);
52
36
  fileMsg.addPurls(purlMsg);
53
37
  }
54
38
  depRequest.addFiles(fileMsg);
@@ -60,25 +44,25 @@ class DependencyScanner {
60
44
  return null;
61
45
  }
62
46
  }
63
- async localDependencySearch(files) {
64
- let results = { files: [] };
65
- for (const filePath of files) {
66
- const fileName = path_1.default.basename(filePath);
67
- if (Parser[fileName] != null) {
68
- try {
69
- const fileContent = await fs_1.default.promises.readFile(filePath, 'utf8');
70
- const dependency = Parser[fileName](fileContent, filePath);
71
- if (dependency.purls.length != 0)
72
- results.files.push(dependency);
73
- }
74
- catch (e) {
75
- console.error(e);
76
- continue;
77
- }
47
+ mergeScopeField(localdependency, serverResponse) {
48
+ const scopeHashMap = {};
49
+ for (const file of localdependency.files) {
50
+ const filename = file.file;
51
+ for (const dependency of file.purls) {
52
+ if (dependency === null || dependency === void 0 ? void 0 : dependency.scope)
53
+ scopeHashMap[filename + dependency.purl] = dependency.scope;
54
+ }
55
+ }
56
+ for (const file of serverResponse.filesList) {
57
+ const filename = file.file;
58
+ for (const dependency of file.dependenciesList) {
59
+ const scope = scopeHashMap[filename + dependency.purl];
60
+ if (scope)
61
+ dependency['scope'] = scope;
78
62
  }
79
63
  }
80
- return results;
64
+ return serverResponse;
81
65
  }
82
66
  }
83
67
  exports.DependencyScanner = DependencyScanner;
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQW9CO0FBR3BCLHVEQUFrRDtBQUNsRCxtREFBdUU7QUFDdkUsaURBQXdEO0FBQ3hELHFEQUF3RTtBQUN4RSx5RUFBc0U7QUFDdEUseUdBQW9IO0FBRXBIOzs7RUFHRTtBQUNGLE1BQU0sTUFBTSxHQUFzQjtJQUNoQyxrQkFBa0IsRUFBRSw2QkFBa0I7SUFDdEMsU0FBUyxFQUFFLHVCQUFTO0lBQ3BCLGNBQWMsRUFBRSx5QkFBYTtJQUM3QixtQkFBbUIsRUFBRSw2QkFBaUI7SUFDdEMsU0FBUyxFQUFFLDBCQUFhO0lBQ3hCLGNBQWMsRUFBRSw4QkFBaUI7Q0FDbEMsQ0FBQztBQUdGLE1BQWEsaUJBQWlCO0lBSTVCO1FBQ0UsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksNkNBQXFCLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBR00sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFvQjtRQUNwQyxJQUFJO1lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDckQsT0FBTyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEQ7UUFBQyxPQUFNLENBQUMsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFHTyxZQUFZLENBQUMsaUJBQXFDO1FBQ3hELElBQUk7WUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLDJDQUFpQixFQUFFLENBQUM7WUFDM0MsS0FBSyxNQUFNLElBQUksSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7Z0JBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksMkNBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksMkNBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMzQixPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDM0I7Z0JBQ0QsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM5QjtZQUNELE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLHFCQUFxQixDQUFDLEtBQW9CO1FBQ3JELElBQUksT0FBTyxHQUF1QixFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUM5QyxLQUFLLE1BQU0sUUFBUSxJQUFJLEtBQUssRUFBRTtZQUMxQixNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLElBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDM0IsSUFBRztvQkFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDakUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDM0QsSUFBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO3dCQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDcEM7Z0JBQUMsT0FBTSxDQUFDLEVBQUU7b0JBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDakIsU0FBUztpQkFDVjthQUNGO1NBQ0o7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUY7QUE3REQsOENBNkRDIn0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5RUFBc0U7QUFDdEUseUdBQW9IO0FBQ3BILHVFQUFzRTtBQUN0RSxpRUFBOEQ7QUFHOUQsTUFBYSxpQkFBaUI7SUFNNUIsWUFBWSxHQUFHLEdBQUcsSUFBSSwyQ0FBb0IsRUFBRTtRQUMxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSw2Q0FBcUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLG1DQUFpQixFQUFFLENBQUM7SUFDakQsQ0FBQztJQUdNLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxFQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUNqRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckQsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUd6Qyw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBR08sWUFBWSxDQUFDLGlCQUFxQztRQUN4RCxJQUFJO1lBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQ0FBaUIsRUFBRSxDQUFDO1lBQzNDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsS0FBSyxNQUFNLElBQUksSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7Z0JBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksMkNBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksMkNBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMzQixJQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxXQUFXO3dCQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUMvRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMzQjtnQkFDRCxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsZUFBbUMsRUFBRSxjQUEyQztRQUd0RyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFeEIsS0FBSyxNQUFNLElBQUksSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFO1lBQ3hDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7WUFDMUIsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNuQyxJQUFJLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxLQUFLO29CQUFFLFlBQVksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7YUFDcEY7U0FDRjtRQUVELEtBQUssTUFBTSxJQUFJLElBQUksY0FBYyxDQUFDLFNBQVMsRUFBRTtZQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1lBQzFCLEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUM5QyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxLQUFLO29CQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDeEM7U0FDRjtRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7Q0FFRjtBQXZFRCw4Q0F1RUMifQ==
@@ -0,0 +1,4 @@
1
+ export declare class DependencyScannerCfg {
2
+ DEFAULT_GRPC_PORT: string;
3
+ DEFAULT_GRPC_HOST: string;
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DependencyScannerCfg = void 0;
4
+ class DependencyScannerCfg {
5
+ constructor() {
6
+ this.DEFAULT_GRPC_PORT = '443';
7
+ this.DEFAULT_GRPC_HOST = 'scanoss.com';
8
+ }
9
+ }
10
+ exports.DependencyScannerCfg = DependencyScannerCfg;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXJDZmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lckNmZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLG9CQUFvQjtJQUFqQztRQUVFLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUxQixzQkFBaUIsR0FBRyxhQUFhLENBQUM7SUFFcEMsQ0FBQztDQUFBO0FBTkQsb0RBTUMifQ==
@@ -1,19 +1,21 @@
1
- interface ILicense {
1
+ export interface LicensesList {
2
2
  name: string;
3
+ spdxId: string;
4
+ isSpdxApproved: boolean;
3
5
  }
4
- export interface IDependency {
6
+ export interface DependenciesList {
5
7
  component: string;
6
8
  purl: string;
7
- version: string;
8
- licenses: Array<ILicense>;
9
+ version?: string;
10
+ scope?: string;
11
+ licensesList: LicensesList[];
9
12
  }
10
- export interface IFile {
13
+ export interface FilesList {
11
14
  file: string;
12
15
  id: string;
13
16
  status: string;
14
- dependencies: Array<IDependency>;
17
+ dependenciesList: DependenciesList[];
15
18
  }
16
19
  export interface IDependencyResponse {
17
- files: Array<IFile>;
20
+ filesList: FilesList[];
18
21
  }
19
- export {};
@@ -0,0 +1,16 @@
1
+ export interface ILocalPurl {
2
+ purl: string;
3
+ requirement?: string;
4
+ scope?: string;
5
+ }
6
+ export interface ILocalDependency {
7
+ file: string;
8
+ purls: Array<ILocalPurl>;
9
+ }
10
+ export interface ILocalDependencies {
11
+ files: Array<ILocalDependency>;
12
+ }
13
+ export declare type ParserFuncType = (fileContent: string, filePath: string) => ILocalDependency;
14
+ export interface ParserDefinitions {
15
+ [key: string]: ParserFuncType;
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L0RlcGVuZGVuY3lUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,6 @@
1
+ import { ILocalDependencies } from "./DependencyTypes";
2
+ export declare class LocalDependencies {
3
+ private parserMap;
4
+ constructor();
5
+ search(files: Array<string>): Promise<ILocalDependencies>;
6
+ }
@@ -0,0 +1,51 @@
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.LocalDependencies = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const pyParser_1 = require("./parsers/pyParser");
10
+ const mavenParser_1 = require("./parsers/mavenParser");
11
+ const npmParser_1 = require("./parsers/npmParser");
12
+ const rubyParser_1 = require("./parsers/rubyParser");
13
+ const golangParser_1 = require("./parsers/golangParser");
14
+ class LocalDependencies {
15
+ constructor() {
16
+ /*
17
+ This is a hash map that connect a filename with it's own parser function
18
+ Any parser function must return a ILocalDependencies object (See DependencyTypes.ts)
19
+ */
20
+ this.parserMap = {
21
+ 'requirements.txt': pyParser_1.requirementsParser,
22
+ 'pom.xml': mavenParser_1.pomParser,
23
+ 'package.json': npmParser_1.packageParser,
24
+ 'package-lock.json': npmParser_1.packagelockParser,
25
+ 'Gemfile': rubyParser_1.gemfileParser,
26
+ 'Gemfile.lock': rubyParser_1.gemfilelockParser,
27
+ 'go.mod': golangParser_1.goModParser,
28
+ };
29
+ }
30
+ async search(files) {
31
+ let results = { files: [] };
32
+ for (const filePath of files) {
33
+ const fileName = path_1.default.basename(filePath);
34
+ if (this.parserMap[fileName] != null) {
35
+ try {
36
+ const fileContent = await fs_1.default.promises.readFile(filePath, 'utf8');
37
+ const dependency = this.parserMap[fileName](fileContent, filePath);
38
+ if (dependency.purls.length != 0)
39
+ results.files.push(dependency);
40
+ }
41
+ catch (e) {
42
+ console.error(e);
43
+ continue;
44
+ }
45
+ }
46
+ }
47
+ return results;
48
+ }
49
+ }
50
+ exports.LocalDependencies = LocalDependencies;
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxEZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L0xvY2FsRGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQW9CO0FBRXBCLGlEQUF3RDtBQUN4RCx1REFBa0Q7QUFDbEQsbURBQXVFO0FBQ3ZFLHFEQUF3RTtBQUN4RSx5REFBcUQ7QUFFckQsTUFBYSxpQkFBaUI7SUFJNUI7UUFDSTs7O1VBR0U7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2Ysa0JBQWtCLEVBQUUsNkJBQWtCO1lBQ3RDLFNBQVMsRUFBRSx1QkFBUztZQUNwQixjQUFjLEVBQUUseUJBQWE7WUFDN0IsbUJBQW1CLEVBQUUsNkJBQWlCO1lBQ3RDLFNBQVMsRUFBRSwwQkFBYTtZQUN4QixjQUFjLEVBQUUsOEJBQWlCO1lBQ2pDLFFBQVEsRUFBRSwwQkFBVztTQUN0QixDQUFDO0lBQ04sQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxPQUFPLEdBQXVCLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1FBQzlDLEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxFQUFFO1lBQzFCLE1BQU0sUUFBUSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsSUFBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDbkMsSUFBRztvQkFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQ25FLElBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQzt3QkFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3BDO2dCQUFDLE9BQU0sQ0FBQyxFQUFFO29CQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pCLFNBQVM7aUJBQ1Y7YUFDRjtTQUNKO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBdENELDhDQXNDQyJ9
@@ -0,0 +1,2 @@
1
+ import { ILocalDependency } from "../DependencyTypes";
2
+ export declare function goModParser(fileContent: string, filePath: string): ILocalDependency;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.goModParser = void 0;
7
+ const packageurl_js_1 = require("packageurl-js");
8
+ const path_1 = __importDefault(require("path"));
9
+ function parseModule(str) {
10
+ const res = /(?<type>[^\s]+)(?:\s)+(?<ns_name>[^\s]+)\s?(?<version>(.*))/.exec(str);
11
+ return {
12
+ type: res.groups.type,
13
+ ns_name: res.groups.ns_name,
14
+ version: res.groups.version
15
+ };
16
+ }
17
+ function parseDepLink(str) {
18
+ var _a, _b;
19
+ const res = /.*?(?<ns_name>[^\s]+)\s+(?<version>(.*))/.exec(str);
20
+ return {
21
+ ns_name: (_a = res === null || res === void 0 ? void 0 : res.groups) === null || _a === void 0 ? void 0 : _a.ns_name,
22
+ version: (_b = res === null || res === void 0 ? void 0 : res.groups) === null || _b === void 0 ? void 0 : _b.version
23
+ };
24
+ }
25
+ // Removes comments and spaces
26
+ function preprocessLine(line) {
27
+ if (line.includes("//"))
28
+ line = line.substring(0, line.indexOf("//"));
29
+ return line.trim();
30
+ }
31
+ const PURL_TYPE = 'golang';
32
+ // See reference on: https://go.dev/ref/mod#go-mod-file
33
+ const MANIFEST_FILE = 'go.mod';
34
+ function goModParser(fileContent, filePath) {
35
+ // If the file is not a go.mod manifest file, return an empty results
36
+ const results = { file: filePath, purls: [] };
37
+ if (path_1.default.basename(filePath) != MANIFEST_FILE)
38
+ return results;
39
+ const lines = fileContent.split('\n');
40
+ const require = [];
41
+ const exclude = [];
42
+ for (let num = 0; num < lines.length; num += 1) {
43
+ let line = preprocessLine(lines[num]);
44
+ if (line.includes('require') && line.includes('(')) {
45
+ num += 1;
46
+ line = preprocessLine(lines[num]);
47
+ while (num < lines.length && line !== ')') {
48
+ const { ns_name, version } = parseDepLink(line);
49
+ const index = ns_name.lastIndexOf('/');
50
+ const namespace = ns_name.substring(0, index);
51
+ const name = ns_name.substring(index + 1);
52
+ const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, namespace, name, version, undefined, undefined).toString();
53
+ results.purls.push({ purl: purlString });
54
+ require.push(line);
55
+ num += 1;
56
+ line = preprocessLine(lines[num]);
57
+ }
58
+ }
59
+ }
60
+ return results;
61
+ }
62
+ exports.goModParser = goModParser;
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29sYW5nUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L3BhcnNlcnMvZ29sYW5nUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLGlEQUEyQztBQUMzQyxnREFBd0I7QUFFeEIsU0FBUyxXQUFXLENBQUUsR0FBVztJQUMvQixNQUFNLEdBQUcsR0FBRyw2REFBNkQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEYsT0FBTztRQUNMLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDckIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztRQUMzQixPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPO0tBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUUsR0FBVzs7SUFDaEMsTUFBTSxHQUFHLEdBQUcsMENBQTBDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFLE9BQU87UUFDTCxPQUFPLEVBQUUsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSwwQ0FBRSxPQUFPO1FBQzdCLE9BQU8sRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLDBDQUFFLE9BQU87S0FDOUIsQ0FBQztBQUNKLENBQUM7QUFFRCw4QkFBOEI7QUFDOUIsU0FBUyxjQUFjLENBQUMsSUFBWTtJQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3JCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdkIsQ0FBQztBQUtELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQztBQUczQix1REFBdUQ7QUFDdkQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDO0FBQy9CLFNBQWdCLFdBQVcsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRS9ELHFFQUFxRTtJQUNyRSxNQUFNLE9BQU8sR0FBcUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM5RCxJQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUVuQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNuQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFFbEIsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUcsR0FBRyxJQUFFLENBQUMsRUFBRTtRQUU5QyxJQUFJLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFHdEMsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakQsR0FBRyxJQUFFLENBQUMsQ0FBQztZQUNQLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLEtBQUcsR0FBRyxFQUFFO2dCQUV2QyxNQUFNLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFOUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUUxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLDBCQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztnQkFFdkMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFbkIsR0FBRyxJQUFFLENBQUMsQ0FBQztnQkFDUCxJQUFJLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ25DO1NBQ0Y7S0FDRjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUF4Q0Qsa0NBd0NDIn0=
@@ -0,0 +1,2 @@
1
+ import { ILocalDependency } from "../DependencyTypes";
2
+ export declare function pomParser(fileContent: string, filePath: string): ILocalDependency;
@@ -0,0 +1,57 @@
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.pomParser = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const packageurl_js_1 = require("packageurl-js");
9
+ const PURL_TYPE = 'maven';
10
+ // Parse a pom.txt file from maven manifest file
11
+ // See reference on: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html
12
+ // and https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
13
+ const MANIFEST_FILE = 'pom.xml';
14
+ function pomParser(fileContent, filePath) {
15
+ // If the file is not a python 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 dependencies = fileContent.match(/<dependency>((?:.|\n)*?)<\/dependency>/gm);
20
+ if (dependencies) {
21
+ // TODO: classifier are not supported yet
22
+ dependencies.forEach(dependency => {
23
+ // Extract groupId. It's the purl namespace
24
+ const groupId = dependency.match(/<groupId>([^<]*)<\/groupId>/);
25
+ const namespace = groupId ? groupId[1] : '';
26
+ // Extract artifact id. It's the purl name
27
+ const artifactId = dependency.match(/<artifactId>([^<]*)<\/artifactId>/);
28
+ const name = artifactId ? artifactId[1] : '';
29
+ const versionReg = dependency.match(/<version>([^<]*)<\/version>/);
30
+ let version = versionReg ? versionReg[1] : '';
31
+ const ver = version.match(/\${(.*?)}/);
32
+ if (ver && ver.length >= 1) {
33
+ if (ver[1] === 'project.version') { // TODO: Add support for project.version
34
+ version = undefined;
35
+ }
36
+ else {
37
+ const res = fileContent.match(new RegExp(`<${ver[1]}>([^<]*)<\/${ver[1]}>`));
38
+ version = res.length >= 1 ? res[1] : '';
39
+ }
40
+ }
41
+ let purlQualifiers;
42
+ const type = dependency.match(/<type>([^<]*)<\/type>/);
43
+ if (type) {
44
+ purlQualifiers = {};
45
+ purlQualifiers['type'] = type[1];
46
+ }
47
+ // Extract scope.
48
+ const scopeRes = dependency.match(/<scope>([^<]*)<\/scope>/);
49
+ const scope = scopeRes ? scopeRes[1] : undefined;
50
+ const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, namespace, name, version, purlQualifiers, undefined).toString();
51
+ results.purls.push({ purl: purlString, scope: scope });
52
+ });
53
+ }
54
+ return results;
55
+ }
56
+ exports.pomParser = pomParser;
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW5QYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy9tYXZlblBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsaURBQTJDO0FBRzNDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUkxQixnREFBZ0Q7QUFDaEQsOEZBQThGO0FBQzlGLDZGQUE2RjtBQUM3RixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDaEMsU0FBZ0IsU0FBUyxDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7SUFFM0QscUVBQXFFO0lBQ3JFLE1BQU0sT0FBTyxHQUFxQixFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzlELElBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxhQUFhO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDO0lBRW5CLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUNuRixJQUFHLFlBQVksRUFBRTtRQUVmLHlDQUF5QztRQUN6QyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hDLDJDQUEyQztZQUMzQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDaEUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU1QywwQ0FBMEM7WUFDMUMsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFN0MsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ25FLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFOUMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2QyxJQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDekIsSUFBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLEVBQUUsRUFBRSx3Q0FBd0M7b0JBQ3pFLE9BQU8sR0FBRyxTQUFTLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNMLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM3RSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUN6QzthQUNGO1lBRUQsSUFBSSxjQUFjLENBQUM7WUFDbkIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3ZELElBQUcsSUFBSSxFQUFFO2dCQUNMLGNBQWMsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDbkM7WUFFRCxpQkFBaUI7WUFDakIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQzdELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFakQsTUFBTSxVQUFVLEdBQUcsSUFBSSwwQkFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0csT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBakRELDhCQWlEQyJ9
@@ -1,3 +1,3 @@
1
- import { FileDependency } from "./types";
2
- export declare function packageParser(fileContent: string, filePath: string): FileDependency;
3
- export declare function packagelockParser(fileContent: string, filePath: string): FileDependency;
1
+ import { ILocalDependency } from "../DependencyTypes";
2
+ export declare function packageParser(fileContent: string, filePath: string): ILocalDependency;
3
+ export declare function packagelockParser(fileContent: string, filePath: string): ILocalDependency;