scanoss 0.7.8 → 0.7.10

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 (438) hide show
  1. package/build/main/index.d.ts +2 -0
  2. package/build/main/index.js +3 -1
  3. package/build/main/sdk/FileCount/FileCount.d.ts +6 -0
  4. package/build/main/sdk/FileCount/FileCount.js +88 -0
  5. package/build/main/sdk/FileCount/FileCountFilter.d.ts +2 -0
  6. package/build/main/sdk/FileCount/FileCountFilter.js +10 -0
  7. package/build/main/sdk/FileCount/Interfaces.d.ts +19 -0
  8. package/build/main/sdk/FileCount/Interfaces.js +8 -0
  9. package/build/main/sdk/Filtering/DefaultFilterForDependencies.d.ts +2 -0
  10. package/build/main/sdk/Filtering/DefaultFilterForDependencies.js +144 -0
  11. package/build/main/sdk/Filtering/DefaultFilterForScanning.d.ts +2 -0
  12. package/build/main/sdk/Filtering/DefaultFilterForScanning.js +193 -0
  13. package/build/main/sdk/Filtering/Filtering.d.ts +80 -0
  14. package/build/main/sdk/Filtering/Filtering.js +259 -0
  15. package/build/main/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +1 -1
  16. package/build/main/sdk/tree/Filters/DependencyFilter.js +4 -4
  17. package/build/main/sdk/tree/Filters/ScanFilter.js +4 -4
  18. package/build/main/tsconfig.tsbuildinfo +82 -39
  19. package/build/module/index.d.ts +2 -0
  20. package/build/module/index.js +3 -1
  21. package/build/module/sdk/FileCount/FileCount.d.ts +6 -0
  22. package/build/module/sdk/FileCount/FileCount.js +63 -0
  23. package/build/module/sdk/FileCount/FileCountFilter.d.ts +2 -0
  24. package/build/module/sdk/FileCount/FileCountFilter.js +8 -0
  25. package/build/module/sdk/FileCount/Interfaces.d.ts +19 -0
  26. package/build/module/sdk/FileCount/Interfaces.js +6 -0
  27. package/build/module/sdk/Filtering/DefaultFilterForDependencies.d.ts +2 -0
  28. package/build/module/sdk/Filtering/DefaultFilterForDependencies.js +142 -0
  29. package/build/module/sdk/Filtering/DefaultFilterForScanning.d.ts +2 -0
  30. package/build/module/sdk/Filtering/DefaultFilterForScanning.js +191 -0
  31. package/build/module/sdk/Filtering/Filtering.d.ts +80 -0
  32. package/build/module/sdk/Filtering/Filtering.js +229 -0
  33. package/build/module/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +1 -1
  34. package/build/module/sdk/tree/Filters/DependencyFilter.js +4 -4
  35. package/build/module/sdk/tree/Filters/ScanFilter.js +4 -4
  36. package/build/module/tsconfig.module.tsbuildinfo +82 -39
  37. package/package.json +3 -3
  38. package/.circleci/config.yml +0 -64
  39. package/.cspell.json +0 -36
  40. package/.editorconfig +0 -15
  41. package/.eslintrc.json +0 -37
  42. package/.github/workflows/reuse.yml +0 -15
  43. package/.github/workflows/scanoss.yml +0 -24
  44. package/.gitignore +0 -10
  45. package/.idea/.gitignore +0 -5
  46. package/.idea/codeStyles/Project.xml +0 -61
  47. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  48. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  49. package/.idea/modules.xml +0 -8
  50. package/.idea/scanoss.js.iml +0 -12
  51. package/.idea/vcs.xml +0 -6
  52. package/.idea/workspace.xml +0 -297
  53. package/.prettierignore +0 -2
  54. package/.reuse/dep5 +0 -16
  55. package/.vscode/extensions.json +0 -8
  56. package/.vscode/launch.json +0 -29
  57. package/.vscode/settings.json +0 -7
  58. package/LICENSES/CC0-1.0.txt +0 -121
  59. package/LICENSES/MIT.txt +0 -9
  60. package/assets/ReportHTMLTemplate/index.html +0 -1181
  61. package/build/main/package.json +0 -120
  62. package/build/main/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
  63. package/build/main/sdk/filters/DefaultFilterForDependencies.js +0 -145
  64. package/build/main/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
  65. package/build/main/sdk/filters/DefaultFilterForScanning.js +0 -194
  66. package/build/main/sdk/filters/filtering.d.ts +0 -32
  67. package/build/main/sdk/filters/filtering.js +0 -228
  68. package/build/main/src/cli/bin/cli-bin.d.ts +0 -2
  69. package/build/main/src/cli/bin/cli-bin.js +0 -68
  70. package/build/main/src/cli/commands/dep.d.ts +0 -1
  71. package/build/main/src/cli/commands/dep.js +0 -38
  72. package/build/main/src/cli/commands/helpers.d.ts +0 -2
  73. package/build/main/src/cli/commands/helpers.js +0 -25
  74. package/build/main/src/cli/commands/scan.d.ts +0 -1
  75. package/build/main/src/cli/commands/scan.js +0 -138
  76. package/build/main/src/cli/commands/wfp.d.ts +0 -1
  77. package/build/main/src/cli/commands/wfp.js +0 -54
  78. package/build/main/src/index.d.ts +0 -14
  79. package/build/main/src/index.js +0 -30
  80. package/build/main/src/sdk/DataLayer/DataLayerTypes.d.ts +0 -108
  81. package/build/main/src/sdk/DataLayer/DataLayerTypes.js +0 -5
  82. package/build/main/src/sdk/DataLayer/DataProviderManager.d.ts +0 -7
  83. package/build/main/src/sdk/DataLayer/DataProviderManager.js +0 -24
  84. package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +0 -13
  85. package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +0 -164
  86. package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +0 -9
  87. package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +0 -37
  88. package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +0 -18
  89. package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +0 -148
  90. package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +0 -11
  91. package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +0 -33
  92. package/build/main/src/sdk/Decompress/DecompressionManager.d.ts +0 -12
  93. package/build/main/src/sdk/Decompress/DecompressionManager.js +0 -73
  94. package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +0 -5
  95. package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.js +0 -22
  96. package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +0 -5
  97. package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.js +0 -24
  98. package/build/main/src/sdk/Decompress/Decompressor/Decompressor.d.ts +0 -10
  99. package/build/main/src/sdk/Decompress/Decompressor/Decompressor.js +0 -18
  100. package/build/main/src/sdk/Dependencies/DependencyScanner.d.ts +0 -11
  101. package/build/main/src/sdk/Dependencies/DependencyScanner.js +0 -96
  102. package/build/main/src/sdk/Dependencies/DependencyScannerCfg.d.ts +0 -4
  103. package/build/main/src/sdk/Dependencies/DependencyScannerCfg.js +0 -10
  104. package/build/main/src/sdk/Dependencies/DependencyTypes.d.ts +0 -21
  105. package/build/main/src/sdk/Dependencies/DependencyTypes.js +0 -2
  106. package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +0 -16
  107. package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +0 -2
  108. package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +0 -8
  109. package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.js +0 -102
  110. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +0 -2
  111. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +0 -95
  112. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +0 -3
  113. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +0 -97
  114. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +0 -2
  115. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +0 -183
  116. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +0 -13
  117. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +0 -187
  118. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +0 -3
  119. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +0 -58
  120. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +0 -2
  121. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +0 -64
  122. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +0 -3
  123. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +0 -132
  124. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +0 -2
  125. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.js +0 -19
  126. package/build/main/src/sdk/Report/Report.d.ts +0 -8
  127. package/build/main/src/sdk/Report/Report.js +0 -26
  128. package/build/main/src/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
  129. package/build/main/src/sdk/filters/DefaultFilterForDependencies.js +0 -145
  130. package/build/main/src/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
  131. package/build/main/src/sdk/filters/DefaultFilterForScanning.js +0 -194
  132. package/build/main/src/sdk/filters/filtering.d.ts +0 -32
  133. package/build/main/src/sdk/filters/filtering.js +0 -228
  134. package/build/main/src/sdk/grpc/GrpcDependencyService.d.ts +0 -11
  135. package/build/main/src/sdk/grpc/GrpcDependencyService.js +0 -86
  136. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  137. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
  138. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
  139. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -404
  140. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -39
  141. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
  142. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
  143. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1197
  144. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -19
  145. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -66
  146. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
  147. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -14
  148. package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +0 -19
  149. package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.js +0 -43
  150. package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +0 -20
  151. package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.js +0 -160
  152. package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +0 -12
  153. package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.js +0 -33
  154. package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +0 -10
  155. package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +0 -32
  156. package/build/main/src/sdk/scanner/Fingerprint.d.ts +0 -16
  157. package/build/main/src/sdk/scanner/Fingerprint.js +0 -78
  158. package/build/main/src/sdk/scanner/Scannable/ScannableItem.d.ts +0 -15
  159. package/build/main/src/sdk/scanner/Scannable/ScannableItem.js +0 -27
  160. package/build/main/src/sdk/scanner/Scanner.d.ts +0 -46
  161. package/build/main/src/sdk/scanner/Scanner.js +0 -283
  162. package/build/main/src/sdk/scanner/ScannerCfg.d.ts +0 -16
  163. package/build/main/src/sdk/scanner/ScannerCfg.js +0 -30
  164. package/build/main/src/sdk/scanner/ScannerTypes.d.ts +0 -121
  165. package/build/main/src/sdk/scanner/ScannerTypes.js +0 -48
  166. package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +0 -9
  167. package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.js +0 -31
  168. package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +0 -20
  169. package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +0 -492
  170. package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +0 -35
  171. package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.js +0 -68
  172. package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +0 -21
  173. package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +0 -139
  174. package/build/main/src/sdk/tree/File.d.ts +0 -7
  175. package/build/main/src/sdk/tree/File.js +0 -24
  176. package/build/main/src/sdk/tree/Filters/DecompressionFilter.d.ts +0 -7
  177. package/build/main/src/sdk/tree/Filters/DecompressionFilter.js +0 -21
  178. package/build/main/src/sdk/tree/Filters/DependencyFilter.d.ts +0 -7
  179. package/build/main/src/sdk/tree/Filters/DependencyFilter.js +0 -17
  180. package/build/main/src/sdk/tree/Filters/Filter.d.ts +0 -4
  181. package/build/main/src/sdk/tree/Filters/Filter.js +0 -6
  182. package/build/main/src/sdk/tree/Filters/ScanFilter.d.ts +0 -7
  183. package/build/main/src/sdk/tree/Filters/ScanFilter.js +0 -17
  184. package/build/main/src/sdk/tree/Folder.d.ts +0 -12
  185. package/build/main/src/sdk/tree/Folder.js +0 -58
  186. package/build/main/src/sdk/tree/Node.d.ts +0 -17
  187. package/build/main/src/sdk/tree/Node.js +0 -25
  188. package/build/main/src/sdk/tree/Tree.d.ts +0 -18
  189. package/build/main/src/sdk/tree/Tree.js +0 -70
  190. package/build/module/package.json +0 -120
  191. package/build/module/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
  192. package/build/module/sdk/filters/DefaultFilterForDependencies.js +0 -143
  193. package/build/module/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
  194. package/build/module/sdk/filters/DefaultFilterForScanning.js +0 -192
  195. package/build/module/sdk/filters/filtering.d.ts +0 -32
  196. package/build/module/sdk/filters/filtering.js +0 -203
  197. package/build/module/src/cli/bin/cli-bin.d.ts +0 -2
  198. package/build/module/src/cli/bin/cli-bin.js +0 -67
  199. package/build/module/src/cli/commands/dep.d.ts +0 -1
  200. package/build/module/src/cli/commands/dep.js +0 -32
  201. package/build/module/src/cli/commands/helpers.d.ts +0 -2
  202. package/build/module/src/cli/commands/helpers.js +0 -19
  203. package/build/module/src/cli/commands/scan.d.ts +0 -1
  204. package/build/module/src/cli/commands/scan.js +0 -135
  205. package/build/module/src/cli/commands/wfp.d.ts +0 -1
  206. package/build/module/src/cli/commands/wfp.js +0 -48
  207. package/build/module/src/index.d.ts +0 -14
  208. package/build/module/src/index.js +0 -19
  209. package/build/module/src/sdk/DataLayer/DataLayerTypes.d.ts +0 -108
  210. package/build/module/src/sdk/DataLayer/DataLayerTypes.js +0 -5
  211. package/build/module/src/sdk/DataLayer/DataProviderManager.d.ts +0 -7
  212. package/build/module/src/sdk/DataLayer/DataProviderManager.js +0 -21
  213. package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +0 -13
  214. package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +0 -159
  215. package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +0 -9
  216. package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +0 -34
  217. package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +0 -18
  218. package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +0 -145
  219. package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +0 -11
  220. package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +0 -30
  221. package/build/module/src/sdk/Decompress/DecompressionManager.d.ts +0 -12
  222. package/build/module/src/sdk/Decompress/DecompressionManager.js +0 -67
  223. package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +0 -5
  224. package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.js +0 -16
  225. package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +0 -5
  226. package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.js +0 -18
  227. package/build/module/src/sdk/Decompress/Decompressor/Decompressor.d.ts +0 -10
  228. package/build/module/src/sdk/Decompress/Decompressor/Decompressor.js +0 -15
  229. package/build/module/src/sdk/Dependencies/DependencyScanner.d.ts +0 -11
  230. package/build/module/src/sdk/Dependencies/DependencyScanner.js +0 -93
  231. package/build/module/src/sdk/Dependencies/DependencyScannerCfg.d.ts +0 -4
  232. package/build/module/src/sdk/Dependencies/DependencyScannerCfg.js +0 -7
  233. package/build/module/src/sdk/Dependencies/DependencyTypes.d.ts +0 -21
  234. package/build/module/src/sdk/Dependencies/DependencyTypes.js +0 -2
  235. package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +0 -16
  236. package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +0 -2
  237. package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +0 -8
  238. package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.js +0 -96
  239. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +0 -2
  240. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +0 -87
  241. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +0 -3
  242. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +0 -88
  243. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +0 -2
  244. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +0 -180
  245. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +0 -13
  246. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +0 -175
  247. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +0 -3
  248. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +0 -49
  249. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +0 -2
  250. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +0 -57
  251. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +0 -3
  252. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +0 -125
  253. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +0 -2
  254. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.js +0 -15
  255. package/build/module/src/sdk/Report/Report.d.ts +0 -8
  256. package/build/module/src/sdk/Report/Report.js +0 -20
  257. package/build/module/src/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
  258. package/build/module/src/sdk/filters/DefaultFilterForDependencies.js +0 -143
  259. package/build/module/src/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
  260. package/build/module/src/sdk/filters/DefaultFilterForScanning.js +0 -192
  261. package/build/module/src/sdk/filters/filtering.d.ts +0 -32
  262. package/build/module/src/sdk/filters/filtering.js +0 -203
  263. package/build/module/src/sdk/grpc/GrpcDependencyService.d.ts +0 -11
  264. package/build/module/src/sdk/grpc/GrpcDependencyService.js +0 -64
  265. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  266. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
  267. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
  268. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -404
  269. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -39
  270. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
  271. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
  272. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1197
  273. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -19
  274. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -66
  275. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
  276. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -14
  277. package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +0 -19
  278. package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.js +0 -37
  279. package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +0 -20
  280. package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.js +0 -135
  281. package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +0 -12
  282. package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.js +0 -30
  283. package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +0 -10
  284. package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +0 -26
  285. package/build/module/src/sdk/scanner/Fingerprint.d.ts +0 -16
  286. package/build/module/src/sdk/scanner/Fingerprint.js +0 -54
  287. package/build/module/src/sdk/scanner/Scannable/ScannableItem.d.ts +0 -15
  288. package/build/module/src/sdk/scanner/Scannable/ScannableItem.js +0 -24
  289. package/build/module/src/sdk/scanner/Scanner.d.ts +0 -46
  290. package/build/module/src/sdk/scanner/Scanner.js +0 -275
  291. package/build/module/src/sdk/scanner/ScannerCfg.d.ts +0 -16
  292. package/build/module/src/sdk/scanner/ScannerCfg.js +0 -27
  293. package/build/module/src/sdk/scanner/ScannerTypes.d.ts +0 -121
  294. package/build/module/src/sdk/scanner/ScannerTypes.js +0 -46
  295. package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +0 -9
  296. package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.js +0 -28
  297. package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +0 -20
  298. package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +0 -486
  299. package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +0 -35
  300. package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.js +0 -65
  301. package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +0 -21
  302. package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +0 -132
  303. package/build/module/src/sdk/tree/File.d.ts +0 -7
  304. package/build/module/src/sdk/tree/File.js +0 -19
  305. package/build/module/src/sdk/tree/Filters/DecompressionFilter.d.ts +0 -7
  306. package/build/module/src/sdk/tree/Filters/DecompressionFilter.js +0 -18
  307. package/build/module/src/sdk/tree/Filters/DependencyFilter.d.ts +0 -7
  308. package/build/module/src/sdk/tree/Filters/DependencyFilter.js +0 -14
  309. package/build/module/src/sdk/tree/Filters/Filter.d.ts +0 -4
  310. package/build/module/src/sdk/tree/Filters/Filter.js +0 -3
  311. package/build/module/src/sdk/tree/Filters/ScanFilter.d.ts +0 -7
  312. package/build/module/src/sdk/tree/Filters/ScanFilter.js +0 -14
  313. package/build/module/src/sdk/tree/Folder.d.ts +0 -12
  314. package/build/module/src/sdk/tree/Folder.js +0 -53
  315. package/build/module/src/sdk/tree/Node.d.ts +0 -17
  316. package/build/module/src/sdk/tree/Node.js +0 -22
  317. package/build/module/src/sdk/tree/Tree.d.ts +0 -18
  318. package/build/module/src/sdk/tree/Tree.js +0 -64
  319. package/package-lock.json +0 -17117
  320. package/src/cli/bin/cli-bin.ts +0 -81
  321. package/src/cli/commands/dep.ts +0 -37
  322. package/src/cli/commands/helpers.ts +0 -19
  323. package/src/cli/commands/scan.ts +0 -173
  324. package/src/cli/commands/wfp.ts +0 -60
  325. package/src/index.ts +0 -26
  326. package/src/sdk/DataLayer/DataLayerTypes.ts +0 -129
  327. package/src/sdk/DataLayer/DataProviderManager.ts +0 -27
  328. package/src/sdk/DataLayer/DataProviders/ComponentDataProvider.ts +0 -195
  329. package/src/sdk/DataLayer/DataProviders/DependencyDataProvider.ts +0 -48
  330. package/src/sdk/DataLayer/DataProviders/LicenseDataProvider.ts +0 -184
  331. package/src/sdk/DataLayer/DataProviders/SummaryDataProvider.ts +0 -47
  332. package/src/sdk/Decompress/DecompressionManager.ts +0 -91
  333. package/src/sdk/Decompress/Decompressor/DecompressTgz.ts +0 -20
  334. package/src/sdk/Decompress/Decompressor/DecompressZips.ts +0 -21
  335. package/src/sdk/Decompress/Decompressor/Decompressor.ts +0 -20
  336. package/src/sdk/Dependencies/DependencyScanner.ts +0 -108
  337. package/src/sdk/Dependencies/DependencyScannerCfg.ts +0 -7
  338. package/src/sdk/Dependencies/DependencyTypes.ts +0 -24
  339. package/src/sdk/Dependencies/LocalDependency/DependencyTypes.ts +0 -21
  340. package/src/sdk/Dependencies/LocalDependency/LocalDependency.ts +0 -111
  341. package/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.ts +0 -115
  342. package/src/sdk/Dependencies/LocalDependency/parsers/golangParser.ts +0 -130
  343. package/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.ts +0 -209
  344. package/src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts +0 -227
  345. package/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.ts +0 -64
  346. package/src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts +0 -58
  347. package/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts +0 -174
  348. package/src/sdk/Dependencies/LocalDependency/parsers/utils.ts +0 -15
  349. package/src/sdk/Report/Report.ts +0 -30
  350. package/src/sdk/filters/DefaultFilterForDependencies.ts +0 -149
  351. package/src/sdk/filters/DefaultFilterForScanning.ts +0 -207
  352. package/src/sdk/filters/filtering.ts +0 -235
  353. package/src/sdk/grpc/GrpcDependencyService.ts +0 -72
  354. package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -1
  355. package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -1
  356. package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -79
  357. package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -482
  358. package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -30
  359. package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -109
  360. package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -206
  361. package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1489
  362. package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -25
  363. package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -73
  364. package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -6
  365. package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -15
  366. package/src/sdk/scanner/Dispatcher/DispatchableItem.ts +0 -62
  367. package/src/sdk/scanner/Dispatcher/Dispatcher.ts +0 -173
  368. package/src/sdk/scanner/Dispatcher/DispatcherResponse.ts +0 -40
  369. package/src/sdk/scanner/Dispatcher/GlobalControllerAborter.ts +0 -33
  370. package/src/sdk/scanner/Fingerprint.ts +0 -82
  371. package/src/sdk/scanner/Scannable/ScannableItem.ts +0 -43
  372. package/src/sdk/scanner/Scanner.ts +0 -360
  373. package/src/sdk/scanner/ScannerCfg.ts +0 -43
  374. package/src/sdk/scanner/ScannerTypes.ts +0 -127
  375. package/src/sdk/scanner/WfpProvider/FingerprintPackage.ts +0 -34
  376. package/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts +0 -516
  377. package/src/sdk/scanner/WfpProvider/WfpProvider.ts +0 -105
  378. package/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts +0 -184
  379. package/src/sdk/tree/File.ts +0 -22
  380. package/src/sdk/tree/Filters/DecompressionFilter.ts +0 -22
  381. package/src/sdk/tree/Filters/DependencyFilter.ts +0 -22
  382. package/src/sdk/tree/Filters/Filter.ts +0 -5
  383. package/src/sdk/tree/Filters/ScanFilter.ts +0 -22
  384. package/src/sdk/tree/Folder.ts +0 -57
  385. package/src/sdk/tree/Node.ts +0 -39
  386. package/src/sdk/tree/Tree.ts +0 -82
  387. package/tests/scanoss.sh +0 -56
  388. package/tests/sdk/DataLayer/DataProviders/ComponentDataProvider.spec.ts +0 -176
  389. package/tests/sdk/DataLayer/DataProviders/DependencyDataProvider.spec.ts +0 -51
  390. package/tests/sdk/DataLayer/DataProviders/SummaryDataProvider.spec.ts +0 -35
  391. package/tests/sdk/DataLayer/DataProviders/samples/results-with-dep.json +0 -665
  392. package/tests/sdk/DataLayer/DataProviders/samples/results.json +0 -556
  393. package/tests/sdk/DataLayer/samples/simple/results-with-dep.json +0 -665
  394. package/tests/sdk/DataLayer/samples/simple-1/output1.json +0 -1196
  395. package/tests/sdk/Dependencies/LocalDependency/LocalDependency.spec.ts +0 -24
  396. package/tests/sdk/Dependencies/LocalDependency/Parsers/buildGradle.spec.ts +0 -48
  397. package/tests/sdk/Dependencies/LocalDependency/Parsers/golangParser.spec.ts +0 -146
  398. package/tests/sdk/Dependencies/LocalDependency/Parsers/npmParser.spec.ts +0 -135
  399. package/tests/sdk/Dependencies/LocalDependency/Parsers/nugetParser.spec.ts +0 -73
  400. package/tests/sdk/Dependencies/LocalDependency/Parsers/pomParser.spec.ts +0 -45
  401. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/1/Gemfile +0 -6
  402. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/1/Gemfile~ +0 -0
  403. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/2/Gemfile +0 -3
  404. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/2/Gemfile~ +0 -6
  405. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/3/Gemfile +0 -7
  406. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/3/Gemfile~ +0 -6
  407. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/4/Gemfile +0 -31
  408. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/4/Gemfile~ +0 -7
  409. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile.lock/1/Gemfile.lock +0 -180
  410. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile.lock/2/Gemfile.lock +0 -60
  411. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile.lock/2/Gemfile.lock~ +0 -0
  412. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/go.sum/1/go.sum +0 -119
  413. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/go.sum/depJSON.sh +0 -23
  414. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/gradle/1/build.gradle +0 -26
  415. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/gradle/2/build.gradle +0 -16
  416. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/NoDependencies.csproj +0 -115
  417. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/netcore-2.csproj +0 -18
  418. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/netcore.csproj +0 -14
  419. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/packageConfig-1/packages.config +0 -5
  420. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/pom.xml/1/pom.xml +0 -670
  421. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/pom.xml/2/pom.xml +0 -780
  422. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/generate_expected_output.sh +0 -4
  423. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1/yarn.lock +0 -50
  424. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1/yarn.lock-expected +0 -13
  425. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1-complex/yarn.lock +0 -27
  426. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1-complex/yarn.lock-expected +0 -8
  427. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1_2/scancode-out.json +0 -149662
  428. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1_2/yarn.lock +0 -8409
  429. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1_2/yarn.lock-expected +0 -1153
  430. package/tests/sdk/Scanner/WfpProvider/WfpCalculator/WfpCalculator.spec.ts +0 -102
  431. package/tests/sdk/Scanner/WfpProvider/WfpCalculator/samples/file1.c +0 -41
  432. package/tests/sdk/Scanner/WfpProvider/WfpCalculator/samples/file2.go +0 -87
  433. package/tests/sdk/Scanner/WfpProvider/WfpSplitter/WfpSplitter.spec.ts +0 -35
  434. package/tests/sdk/Scanner/WfpProvider/WfpSplitter/samples/wfp.wfp +0 -68
  435. package/tests/sdk/Scanner/WfpProvider/WfpSplitter/samples/wfp.wfp~ +0 -68
  436. package/tsconfig.json +0 -31
  437. package/tsconfig.module.json +0 -11
  438. package/yarn.lock +0 -5481
@@ -1,209 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- import { ILocalDependency } from "../DependencyTypes";
4
-
5
- const PURL_TYPE = 'maven';
6
-
7
- // Parse a pom.txt file from maven manifest file
8
- // See reference on: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html
9
- // and https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
10
- const MANIFEST_FILE = 'pom.xml';
11
- export function pomParser(fileContent: string, filePath: string): Promise<ILocalDependency> {
12
-
13
- // If the file is not a python manifest file, return an empty results
14
- const results: ILocalDependency = {file: filePath, purls: []};
15
- if(path.basename(filePath) != MANIFEST_FILE)
16
- return Promise.resolve(results);
17
-
18
- const dependencies = fileContent.match(/<dependency>((?:.|\n)*?)<\/dependency>/gm);
19
- if(dependencies) {
20
-
21
- dependencies.forEach(dependency => {
22
- // Extract groupId. It's the purl namespace
23
- const groupId = dependency.match(/<groupId>([^<]*)<\/groupId>/);
24
- const namespace = (groupId && groupId.length>=1) ? groupId[1] : null;
25
-
26
- // Extract artifact id. It's the purl name
27
- const artifactId = dependency.match(/<artifactId>([^<]*)<\/artifactId>/);
28
- const name = (artifactId && artifactId.length>=1) ? artifactId[1] : null;
29
-
30
- const versionReg = dependency.match(/<version>([^<]*)<\/version>/);
31
- let version;
32
- if(versionReg && versionReg.length>=1) version = resolve_version(versionReg[1], fileContent);
33
-
34
-
35
- // Extract scope.
36
- const scopeRes = dependency.match(/<scope>([^<]*)<\/scope>/);
37
- const scope = (scopeRes && scopeRes.length>=1) ? scopeRes[1] : null;
38
-
39
-
40
- //Detect and extract purl qualifiers
41
- const classifierRes = dependency.match(/<classifier>([^<]*)<\/classifier>/);
42
- const classifier = (classifierRes && classifierRes.length>=1) ? classifierRes[1] : null;
43
-
44
- const typeRes = dependency.match(/<type>([^<]*)<\/type>/);
45
- const type = (typeRes && typeRes.length>=1) ? typeRes[1] : null;
46
-
47
- let purlQualifiers;
48
- if (type || classifier)
49
- purlQualifiers = {
50
- ...(type && {type}),
51
- ...(classifier && {classifier}),
52
- };
53
-
54
- const purlString = new PackageURL(PURL_TYPE, namespace, name, undefined, purlQualifiers, undefined).toString();
55
- results.purls.push({purl: purlString, requirement: version, scope: scope});
56
-
57
- });
58
- }
59
-
60
- //Remove purls duplicated
61
- const nonDuplicatedResults = removeDuplicated(results);
62
- return Promise.resolve(nonDuplicatedResults);
63
- }
64
-
65
- function removeDuplicated(results: ILocalDependency): ILocalDependency {
66
- const map = {};
67
- for (let res of results.purls) {
68
- map[res.purl] = res
69
- }
70
- results.purls = Object.values(map);
71
- return results
72
- }
73
-
74
- function resolve_version(dependency_version: string, file_content: string): string {
75
- // See properties: https://maven.apache.org/pom.html#properties
76
- let version = '';
77
- if(dependency_version) {
78
- if(/\${project.version}/.test(dependency_version)) {
79
- version = extract_content_from_tag(file_content, ['project', 'version']);
80
- } else if(/\${.*?}/.test(dependency_version)) {
81
- const property = dependency_version.match(/\${(.*?)}/)[1];
82
- const result = file_content.match(new RegExp(`<${property}>([^<]*)<\/${property}>`));
83
- if (result && result.length>0) version = result[1];
84
- } else {
85
- version = dependency_version.toString();
86
- }
87
- }
88
- return version;
89
- }
90
-
91
-
92
- function get_start_tag_name(line: string): string {
93
- const result = line.match(/\<([\w\-\.]+).*?>/);
94
- if (result) return result[1].trim();
95
- return '';
96
- }
97
-
98
- function get_end_tag_name(line: string): string {
99
- const result = line.match(/\<\/([\w\-\.]+) ?>/);
100
- if (result) return result[1].trim();
101
- return '';
102
- }
103
-
104
- function get_end_tag(line: string): string {
105
- const result = get_end_tag_name(line);
106
- if (result !== '') return `</${result}>`
107
- return '';
108
- }
109
-
110
- function get_start_tag(line: string): string {
111
- const result = get_start_tag_name(line);
112
- if (result !== '') return `<${result}>`
113
- return '';
114
- }
115
-
116
- function element_match(openTag: string, closeTag:string): boolean {
117
- return get_start_tag_name(openTag) === get_end_tag_name(closeTag);
118
- }
119
-
120
- function is_element_complete(line: string) {
121
- return get_start_tag_name(line) === get_end_tag_name(line);
122
- }
123
-
124
-
125
- function get_offset_until_end_of_tag(lines: Array<string>, end_tag_name: string) {
126
- let i = 0;
127
- for (const line of lines) {
128
- if ( get_end_tag_name(line) === end_tag_name) break;
129
- i += 1;
130
- }
131
- return i;
132
- }
133
-
134
- function remove_comments(lines: Array<string>): Array<string> {
135
- for (let i=0; i<lines.length; i+=1) {
136
- let openCommentFlag = /<!--/.test(lines[i]);
137
- let endCommentFlag = /-->/.test(lines[i]);
138
-
139
- if(openCommentFlag && endCommentFlag)
140
- lines[i] = lines[i].replace(/<!--.*-->/, '');
141
- else if (openCommentFlag){
142
- while(!/-->/.test(lines[i]) && i<lines.length) {
143
- lines[i] = '';
144
- i += 1;
145
- }
146
- lines[i] = lines[i].replace(/.*-->/, '');
147
- }
148
-
149
- }
150
- return lines;
151
- }
152
-
153
-
154
- function extract_content_from_tag(file_content: string, selector: Array<string>): string {
155
- let lines = file_content.split('\n');
156
- const stack: Array<string> = [];
157
-
158
- let selectorIndex = 0;
159
- let startTagName = '';
160
- let endTagName = '';
161
- let content = '';
162
-
163
- // Sanitize xml: Removes comments
164
- lines = remove_comments(lines);
165
-
166
- for (let i=0; i<lines.length; i+=1) {
167
- let line = lines[i].trim();
168
- if(line === '') continue;
169
-
170
- startTagName = get_start_tag_name(line);
171
- endTagName = get_end_tag_name(line);
172
-
173
- // Element complete in the same line and different than my selector
174
- if(selector[selectorIndex] !== startTagName && is_element_complete(line)) continue;
175
-
176
- // Element spans multiline and is different than my selector
177
- // Loop until find corresponding end tag
178
- if (selector[selectorIndex] !== startTagName) {
179
- i += 1;
180
- while (i<lines.length && !element_match(line, lines[i])) i+=1;
181
- continue;
182
- }
183
-
184
- // lines[i] points to the opening tag of the current selector[selectorIndex]
185
- selectorIndex += 1;
186
- stack.push(startTagName);
187
-
188
- // Target reached
189
- if(selector.length === stack.length) {
190
- // Target has only one line
191
- if (is_element_complete(line)) {
192
- line = line.replace(get_end_tag(line), '');
193
- line = line.replace(get_start_tag(line), '');
194
- return line;
195
- }
196
-
197
- // Extracts everything beetwen opening and closing tag and return.
198
- i += 1;
199
- while (i<lines.length && !element_match(line, lines[i]) ) {
200
- content += lines[i].trim();
201
- i += 1;
202
- }
203
- return content;
204
- }
205
- startTagName='';
206
- endTagName='';
207
- }
208
- return '';
209
- }
@@ -1,227 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- import { ILocalDependency } from "../DependencyTypes";
4
-
5
- const PURL_TYPE = 'npm';
6
-
7
-
8
- // Parse a package.json file from node projects
9
- // See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
10
- const MANIFEST_FILE = 'package.json';
11
- export function packageParser(fileContent: string, filePath: string): Promise<ILocalDependency> {
12
- // If the file is not manifest file, return an empty results
13
- const results: ILocalDependency = {file: filePath, purls: []};
14
- if(path.basename(filePath) != MANIFEST_FILE)
15
- return Promise.resolve(results);
16
-
17
- const o = JSON.parse(fileContent);
18
- let devDeps = Object.keys(o.devDependencies || {});
19
- let deps = Object.keys(o.dependencies || {});
20
-
21
- for(const name of deps){
22
- const purlString = new PackageURL(PURL_TYPE, undefined, name, undefined, undefined, undefined).toString();
23
- results.purls.push({purl: purlString, scope: "dependencies", requirement: o.dependencies[name]});
24
- }
25
-
26
- for(const name of devDeps){
27
- const purlString = new PackageURL(PURL_TYPE, undefined, name, undefined, undefined, undefined).toString();
28
- results.purls.push({purl: purlString, scope: "devDependencies", requirement: o.devDependencies[name]});
29
- }
30
-
31
- return Promise.resolve(results);
32
- }
33
-
34
-
35
- // Parse a package-lock.json file from node projects
36
- // See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
37
- export function packagelockParser(fileContent: string, filePath: string): Promise<ILocalDependency> {
38
-
39
- const results: ILocalDependency = {file: filePath, purls: []};
40
-
41
- if(path.basename(filePath) != 'package-lock.json')
42
- return Promise.resolve(results);
43
-
44
- const packages = JSON.parse(fileContent)?.packages;
45
-
46
- if(!packages) return Promise.resolve(results);
47
-
48
- for (const [key, value] of Object.entries(packages)) {
49
- if(!key) continue;
50
-
51
- const keySplit = key.split("/")
52
- const depName = keySplit[keySplit.length-1]
53
-
54
- let purl = new PackageURL(PURL_TYPE, undefined, depName,undefined, undefined, undefined).toString();
55
- let req = value['version'];
56
- results.purls.push({purl: purl, requirement: req});
57
- }
58
-
59
- return Promise.resolve(results);
60
- }
61
-
62
-
63
-
64
- export function yarnLockParser(fileContent: string, filePath: string): Promise<ILocalDependency> {
65
- const results: ILocalDependency = {file: filePath, purls: []};
66
-
67
- if(path.basename(filePath) != 'yarn.lock')
68
- return Promise.resolve(results);
69
-
70
- const yarnVersion = yarnLockRecognizeVersion(fileContent)
71
- if (yarnVersion === YarnLockVersionEnum.V1) return yarnLockV1Parser(fileContent, filePath)
72
- else if (yarnVersion === YarnLockVersionEnum.V2) return yarnLockV2Parser(fileContent, filePath)
73
-
74
- return Promise.resolve(results);
75
- }
76
-
77
- enum YarnLockVersionEnum {
78
- "V1" ,
79
- "V2",
80
- UnknownYarnLockFormat
81
- }
82
-
83
- /*
84
- The start of v1 file has this:
85
- # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
86
- # yarn lockfile v1
87
-
88
- The start of v2 file has this:
89
- # This file is generated by running "yarn install" inside your project.
90
- # Manual changes might be lost - proceed with caution!
91
-
92
- __metadata:
93
- */
94
- export function yarnLockRecognizeVersion(fileContent: string): YarnLockVersionEnum {
95
-
96
- const yarn = fileContent.split("\n", 10) //Check only the first 10 lines;
97
- for (const line of yarn) {
98
- if ( line.includes('__metadata:') ) return YarnLockVersionEnum.V2
99
- if ( line.includes('yarn lockfile v1') ) return YarnLockVersionEnum.V1
100
- }
101
- return YarnLockVersionEnum.UnknownYarnLockFormat
102
- }
103
-
104
- export function yarnLockV1Parser(fileContent: string, filePath: string): Promise <ILocalDependency> {
105
-
106
- const results: ILocalDependency = {file: filePath, purls: []};
107
-
108
- //Yield an array with each element is a dependency
109
- /*
110
- "@babel/core@^7.1.0", "@babel/core@^7.3.4":
111
- version "7.3.4"
112
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b"
113
- integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==
114
- dependencies:
115
- "@babel/code-frame" "^7.0.0"
116
- "@babel/generator" "^7.3.4"
117
- */
118
- const yl_dependencies = fileContent.split("\n\n");
119
-
120
- for (const yl_dependency of yl_dependencies) {
121
-
122
-
123
-
124
- const dependencyData: Record<string, string> = {}
125
- const topRequirements = [];
126
-
127
- const dep_lines = yl_dependency.split("\n");
128
- if (dep_lines.every((line) => line.trim().startsWith("#") == true)) continue //All lines are coments
129
- if (dep_lines.every((line) => line.trim() == "")) continue //All lines are empty lines
130
-
131
- for (const dep_line of dep_lines) {
132
-
133
- // Clean comments and empty lines
134
- const trimmed = dep_line.trim();
135
- const comment = trimmed.startsWith('#');
136
- if (!trimmed || comment) continue
137
-
138
- // Do nothing with it's own dependencies
139
- // "@babel/code-frame" "^7.0.0"
140
- // "@babel/generator" "^7.3.4"
141
- if (dep_line.startsWith(' '.repeat(4))) {}
142
-
143
- // version "7.3.4"
144
- // resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b"
145
- // integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==
146
- // dependencies:
147
- else if (dep_line.startsWith(' '.repeat(2))) {
148
- const dep = trimmed.split(" ")
149
- const key = dep[0].trim();
150
- if (key !== "dependencies:" && key!=="optionalDependencies:") {
151
- dependencyData[key] = dep[1].replace(/\"|\'/g, "");
152
- }
153
- }
154
-
155
- // the first line of a dependency has the name and requirements
156
- //"@babel/core@^7.1.0", "@babel/core@^7.3.4":
157
- else if (!dep_line.startsWith(' ')){
158
- const dep = dep_line.replace(/:/g, "").split(",");
159
- const requirements = dep.map(line => line.trim().replace(/"|'/g, ""));
160
-
161
- for (const req of requirements) {
162
-
163
- const atIndex = req.lastIndexOf("@")
164
-
165
- let constraint = req.slice(atIndex+1) // gets ^7.1.0
166
- constraint = constraint.replace(/"|'/g, "");
167
-
168
- const ns_name = req.slice(0, atIndex)
169
-
170
- let ns = '';
171
- let name = ns_name;
172
- if (ns_name.includes("/")) {
173
- const slashIndex = req.lastIndexOf("/")
174
- ns = ns_name.slice(0,slashIndex);
175
- name = ns_name.slice(slashIndex+1)
176
- }
177
-
178
- topRequirements.push({constraint: constraint, ns: ns, name: name });
179
- }
180
-
181
- }
182
-
183
-
184
- }
185
-
186
- //Make sure that name and namespace are equal for the same dependency
187
- const isNsNameEqual = topRequirements.every((topRequirement) => {
188
- return topRequirement.ns === topRequirements[0].ns && topRequirement.name === topRequirements[0].name
189
- });
190
-
191
- if (!isNsNameEqual) {
192
- console.error("Different names for same dependency is not supported")
193
- continue
194
- }
195
- const topRequirement = topRequirements[0];
196
- const namespace = topRequirement.ns;
197
- const name = topRequirement.name;
198
- const version = dependencyData['version'];
199
- const purl = new PackageURL(PURL_TYPE, namespace, name, version, undefined, undefined).toString()
200
-
201
- let requirement = ''
202
- for (const topRequirement of topRequirements) {
203
- requirement += topRequirement.constraint + ", "
204
- }
205
- if (requirement.endsWith(", ")) {
206
- requirement = requirement.slice(0, requirement.length-2)
207
- }
208
-
209
- results.purls.push({purl: purl, requirement: requirement})
210
-
211
- }
212
-
213
-
214
- return Promise.resolve(results);
215
-
216
- }
217
-
218
-
219
- //TODO: Implement yarn lock V2 parser
220
- export function yarnLockV2Parser(fileContent: string, filePath: string): Promise<ILocalDependency> {
221
-
222
- const results: ILocalDependency = {file: filePath, purls: []};
223
-
224
-
225
- return Promise.resolve(results);
226
-
227
- }
@@ -1,64 +0,0 @@
1
- import { ILocalDependency } from '../DependencyTypes';
2
- import xml, { Element } from 'xml-js';
3
- import { PackageURL } from 'packageurl-js';
4
-
5
- const PURL_TYPE = "nuget";
6
-
7
- export function csprojParser(fileContent: string, filePath: string): Promise<ILocalDependency> {
8
-
9
- const results: ILocalDependency = {file: filePath, purls: []};
10
-
11
- try {
12
- const fileProject = xml.xml2js(fileContent);
13
- const project = fileProject.elements.find(item => item.name == 'Project');
14
- const itemGroups = project.elements.filter(item => item.name == 'ItemGroup');
15
-
16
- const packageReference: Array<Element> = [];
17
- itemGroups.forEach(itemGroup => {
18
- itemGroup.elements.forEach(item => {
19
- if (item.name == "PackageReference")
20
- packageReference.push(item);
21
- });
22
- });
23
-
24
- //Generates purls
25
- packageReference.forEach(itemPackage => {
26
- const packageName = itemPackage.attributes?.Include?.toString();
27
- const version = itemPackage.attributes?.Version?.toString();
28
-
29
- results.purls.push({
30
- purl: new PackageURL(PURL_TYPE, null, packageName, null, null,null).toString(),
31
- requirement: version
32
- })
33
- });
34
-
35
- } catch (e) {
36
- console.error(e);
37
- return Promise.resolve({file: filePath, purls: []});
38
- }
39
-
40
- return Promise.resolve(results)
41
- }
42
-
43
-
44
- export function packagesConfigParser(fileContent: string, filePath: string): Promise<ILocalDependency> {
45
-
46
- const results: ILocalDependency = { file: filePath, purls: [] };
47
- const packageConfig = xml.xml2js(fileContent);
48
-
49
- const packages = packageConfig.elements.filter(item => item.name == "packages")
50
-
51
- packages.forEach(pkg => {
52
- pkg.elements.forEach(dep => {
53
- const depName = dep.attributes?.id;
54
- const depVersion = dep.attributes?.version;
55
-
56
- results.purls.push({
57
- purl: new PackageURL(PURL_TYPE, null, depName, null, null, null).toString(),
58
- requirement: depVersion
59
- })
60
- })
61
- });
62
-
63
- return Promise.resolve(results);
64
- }
@@ -1,58 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- import { ILocalDependency } from "../DependencyTypes";
4
- import { isValidPath, isValidUrl } from './utils';
5
-
6
-
7
- function parseDep (str: string) {
8
- const res = /^(?<name>[-\w]+)\s*(?<sym>[>=~!]*)\s*(?<version>[\d\.]*)/.exec(str);
9
- return {
10
- name: res?.groups?.name,
11
- sym: res?.groups?.sym,
12
- version: res?.groups?.version,
13
- };
14
- }
15
-
16
- const PURL_TYPE = 'pypi';
17
-
18
- // Parse a requirements.txt file from python projects
19
- // See reference on: https://pip.pypa.io/en/stable/reference/requirements-file-format/
20
- const MANIFEST_FILE = 'requirements.txt';
21
- export function requirementsParser(fileContent: string, filePath: string): Promise<ILocalDependency> {
22
-
23
- // If the file is not a python manifest file, return an empty results
24
- const results: ILocalDependency = {file: filePath, purls: []};
25
- if(path.basename(filePath) != MANIFEST_FILE)
26
- return Promise.resolve(results);
27
-
28
- const lines: Array<string> = fileContent.split('\n');
29
-
30
- for (let line of lines) {
31
- line = line.trim();
32
- if(line.length == 0) continue;
33
- if(!line.startsWith('#') && line.length>0) { // Avoid comments and new lines
34
- if(isValidUrl(line)) {
35
- // For reference about the regex see https://www.rfc-editor.org/rfc/rfc3986#appendix-B
36
- const res = line.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/);
37
- continue;
38
- }
39
- else if(isValidPath(line)) {continue;} // Do not parse local dependencies.
40
- else if(line.startsWith('-r')) {continue;} // Recursive dependencies (NOT SUPPORTED YET)
41
- else {
42
-
43
- const dep = parseDep(line);
44
- if (!dep.sym) {
45
- const purlString = new PackageURL(PURL_TYPE, undefined, dep.name, undefined, undefined, undefined).toString();
46
- results.purls.push({purl: purlString});
47
- } else if (dep.sym === '==') {
48
- const purlString = new PackageURL(PURL_TYPE, undefined, dep.name, dep.version, undefined, undefined).toString();
49
- results.purls.push({purl: purlString});
50
- } else {
51
- const purlString = new PackageURL(PURL_TYPE, undefined, dep.name, undefined, undefined, undefined).toString();
52
- results.purls.push({purl: purlString, requirement: dep.sym+dep.version});
53
- }
54
- }
55
- }
56
- }
57
- return Promise.resolve(results);
58
- }