@contrast/contrast 2.0.2-beta.1 → 2.0.2-beta.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 (395) hide show
  1. package/README.md +2 -1
  2. package/dist/assess/assessConfig.js +9 -0
  3. package/dist/assess/assessConfig.js.map +1 -0
  4. package/dist/assess/help.js +37 -0
  5. package/dist/assess/help.js.map +1 -0
  6. package/dist/assess/http/index.js +39 -0
  7. package/dist/assess/http/index.js.map +1 -0
  8. package/dist/assess/index.js +69 -0
  9. package/dist/assess/index.js.map +1 -0
  10. package/dist/assess/metadata/findYamlFile.js +59 -0
  11. package/dist/assess/metadata/findYamlFile.js.map +1 -0
  12. package/dist/assess/metadata/index.js +37 -0
  13. package/dist/assess/metadata/index.js.map +1 -0
  14. package/dist/assess/metadata/utils.js +159 -0
  15. package/dist/assess/metadata/utils.js.map +1 -0
  16. package/dist/assess/printing/index.js +11 -0
  17. package/dist/assess/printing/index.js.map +1 -0
  18. package/dist/assess/printing/utils.js +119 -0
  19. package/dist/assess/printing/utils.js.map +1 -0
  20. package/dist/audit/auditConfig.js +9 -0
  21. package/dist/audit/auditConfig.js.map +1 -0
  22. package/dist/{commands/audit → audit}/auditController.js +9 -13
  23. package/dist/audit/auditController.js.map +1 -0
  24. package/dist/audit/auditRequests.js +193 -0
  25. package/dist/audit/auditRequests.js.map +1 -0
  26. package/dist/audit/auditRequestsLegacy.js +63 -0
  27. package/dist/audit/auditRequestsLegacy.js.map +1 -0
  28. package/dist/audit/catalogueApplication/catalogueApplication.js +16 -29
  29. package/dist/audit/catalogueApplication/catalogueApplication.js.map +1 -0
  30. package/dist/audit/help.js +68 -0
  31. package/dist/audit/help.js.map +1 -0
  32. package/dist/audit/languageAnalysisEngine/commonApi.js +12 -14
  33. package/dist/audit/languageAnalysisEngine/commonApi.js.map +1 -0
  34. package/dist/audit/languageAnalysisEngine/filterProjectPath.js +2 -1
  35. package/dist/audit/languageAnalysisEngine/filterProjectPath.js.map +1 -0
  36. package/dist/audit/languageAnalysisEngine/getProjectRootFilenames.js +9 -12
  37. package/dist/audit/languageAnalysisEngine/getProjectRootFilenames.js.map +1 -0
  38. package/dist/audit/languageAnalysisEngine/sendSnapshot.js +18 -30
  39. package/dist/audit/languageAnalysisEngine/sendSnapshot.js.map +1 -0
  40. package/dist/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js +9 -9
  41. package/dist/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js.map +1 -0
  42. package/dist/audit/processAudit.js +21 -0
  43. package/dist/audit/processAudit.js.map +1 -0
  44. package/dist/audit/report/commonReportingFunctions.js +33 -61
  45. package/dist/audit/report/commonReportingFunctions.js.map +1 -0
  46. package/dist/audit/report/models/reportGuidanceModel.js +2 -5
  47. package/dist/audit/report/models/reportGuidanceModel.js.map +1 -0
  48. package/dist/audit/report/models/reportLibraryModel.js +3 -7
  49. package/dist/audit/report/models/reportLibraryModel.js.map +1 -0
  50. package/dist/audit/report/models/reportListModel.js +4 -9
  51. package/dist/audit/report/models/reportListModel.js.map +1 -0
  52. package/dist/audit/report/models/reportOutputModel.js +4 -9
  53. package/dist/audit/report/models/reportOutputModel.js.map +1 -0
  54. package/dist/audit/report/models/reportSeverityModel.js +2 -5
  55. package/dist/audit/report/models/reportSeverityModel.js.map +1 -0
  56. package/dist/audit/report/models/severityCountModel.js +3 -5
  57. package/dist/audit/report/models/severityCountModel.js.map +1 -0
  58. package/dist/audit/report/reportingFeature.js +27 -55
  59. package/dist/audit/report/reportingFeature.js.map +1 -0
  60. package/dist/audit/report/utils/reportUtils.js +28 -59
  61. package/dist/audit/report/utils/reportUtils.js.map +1 -0
  62. package/dist/audit/save.js +14 -16
  63. package/dist/audit/save.js.map +1 -0
  64. package/dist/{commands/audit → audit}/saveFile.js +3 -6
  65. package/dist/audit/saveFile.js.map +1 -0
  66. package/dist/auth/auth.js +103 -0
  67. package/dist/auth/auth.js.map +1 -0
  68. package/dist/auth/authRequests.js +18 -0
  69. package/dist/auth/authRequests.js.map +1 -0
  70. package/dist/cliConstants.js +48 -18
  71. package/dist/cliConstants.js.map +1 -0
  72. package/dist/commands/config/config.js +12 -13
  73. package/dist/commands/config/config.js.map +1 -0
  74. package/dist/commands/learn/learn.js +3 -6
  75. package/dist/commands/learn/learn.js.map +1 -0
  76. package/dist/commands/learn/processLearn.js +3 -6
  77. package/dist/commands/learn/processLearn.js.map +1 -0
  78. package/dist/common/HTTPClient.js +193 -94
  79. package/dist/common/HTTPClient.js.map +1 -0
  80. package/dist/{scan → common}/autoDetection.js +53 -36
  81. package/dist/common/autoDetection.js.map +1 -0
  82. package/dist/common/baseRequest.js +59 -23
  83. package/dist/common/baseRequest.js.map +1 -0
  84. package/dist/common/commonHelp.js +13 -13
  85. package/dist/common/commonHelp.js.map +1 -0
  86. package/dist/common/errorHandling.js +49 -63
  87. package/dist/common/errorHandling.js.map +1 -0
  88. package/dist/common/fail.js +6 -12
  89. package/dist/common/fail.js.map +1 -0
  90. package/dist/common/stringManipulations.js +8 -0
  91. package/dist/common/stringManipulations.js.map +1 -0
  92. package/dist/common/versionChecker.js +16 -19
  93. package/dist/common/versionChecker.js.map +1 -0
  94. package/dist/constants/constants.js +46 -65
  95. package/dist/constants/constants.js.map +1 -0
  96. package/dist/constants/lambda.js +8 -5
  97. package/dist/constants/lambda.js.map +1 -0
  98. package/dist/constants/locales.js +14 -10
  99. package/dist/constants/locales.js.map +1 -0
  100. package/dist/github/fingerprintConfig.js +10 -0
  101. package/dist/github/fingerprintConfig.js.map +1 -0
  102. package/dist/github/processFingerprint.js +25 -0
  103. package/dist/github/processFingerprint.js.map +1 -0
  104. package/dist/github/projectGroup.js +225 -0
  105. package/dist/github/projectGroup.js.map +1 -0
  106. package/dist/github/repoServices.js +91 -0
  107. package/dist/github/repoServices.js.map +1 -0
  108. package/dist/index.js +42 -39
  109. package/dist/index.js.map +1 -0
  110. package/dist/lambda/analytics.js +6 -9
  111. package/dist/lambda/analytics.js.map +1 -0
  112. package/dist/lambda/arn.js +6 -9
  113. package/dist/lambda/arn.js.map +1 -0
  114. package/dist/lambda/aws.js +29 -34
  115. package/dist/lambda/aws.js.map +1 -0
  116. package/dist/lambda/cliError.js +13 -41
  117. package/dist/lambda/cliError.js.map +1 -0
  118. package/dist/lambda/constants.js +3 -4
  119. package/dist/lambda/constants.js.map +1 -0
  120. package/dist/lambda/help.js +39 -44
  121. package/dist/lambda/help.js.map +1 -0
  122. package/dist/lambda/lambda.js +61 -65
  123. package/dist/lambda/lambda.js.map +1 -0
  124. package/dist/lambda/lambdaUtils.js +38 -32
  125. package/dist/lambda/lambdaUtils.js.map +1 -0
  126. package/dist/lambda/logUtils.js +21 -17
  127. package/dist/lambda/logUtils.js.map +1 -0
  128. package/dist/lambda/scanDetailCompletion.js +19 -25
  129. package/dist/lambda/scanDetailCompletion.js.map +1 -0
  130. package/dist/lambda/scanRequest.js +34 -41
  131. package/dist/lambda/scanRequest.js.map +1 -0
  132. package/dist/lambda/scanResults.js +8 -10
  133. package/dist/lambda/scanResults.js.map +1 -0
  134. package/dist/lambda/types.js +5 -7
  135. package/dist/lambda/types.js.map +1 -0
  136. package/dist/lambda/utils.js +33 -35
  137. package/dist/lambda/utils.js.map +1 -0
  138. package/dist/sbom/generateSbom.js +6 -10
  139. package/dist/sbom/generateSbom.js.map +1 -0
  140. package/dist/scaAnalysis/common/auditReport.js +8 -12
  141. package/dist/scaAnalysis/common/auditReport.js.map +1 -0
  142. package/dist/scaAnalysis/common/commonReportingFunctionsSca.js +26 -32
  143. package/dist/scaAnalysis/common/commonReportingFunctionsSca.js.map +1 -0
  144. package/dist/scaAnalysis/common/formatMessage.js +8 -17
  145. package/dist/scaAnalysis/common/formatMessage.js.map +1 -0
  146. package/dist/scaAnalysis/common/models/ScaReportModel.js +4 -9
  147. package/dist/scaAnalysis/common/models/ScaReportModel.js.map +1 -0
  148. package/dist/scaAnalysis/common/scaParserForGoAndJava.js +10 -9
  149. package/dist/scaAnalysis/common/scaParserForGoAndJava.js.map +1 -0
  150. package/dist/scaAnalysis/common/scaServicesUpload.js +59 -90
  151. package/dist/scaAnalysis/common/scaServicesUpload.js.map +1 -0
  152. package/dist/scaAnalysis/common/treeUpload.js +15 -25
  153. package/dist/scaAnalysis/common/treeUpload.js.map +1 -0
  154. package/dist/scaAnalysis/common/utils/reportUtilsSca.js +21 -29
  155. package/dist/scaAnalysis/common/utils/reportUtilsSca.js.map +1 -0
  156. package/dist/scaAnalysis/dotnet/analysis.js +12 -18
  157. package/dist/scaAnalysis/dotnet/analysis.js.map +1 -0
  158. package/dist/scaAnalysis/dotnet/index.js +4 -7
  159. package/dist/scaAnalysis/dotnet/index.js.map +1 -0
  160. package/dist/scaAnalysis/go/goAnalysis.js +8 -11
  161. package/dist/scaAnalysis/go/goAnalysis.js.map +1 -0
  162. package/dist/scaAnalysis/go/goParseDeps.js +9 -7
  163. package/dist/scaAnalysis/go/goParseDeps.js.map +1 -0
  164. package/dist/scaAnalysis/go/goReadDepFile.js +10 -8
  165. package/dist/scaAnalysis/go/goReadDepFile.js.map +1 -0
  166. package/dist/scaAnalysis/java/analysis.js +23 -20
  167. package/dist/scaAnalysis/java/analysis.js.map +1 -0
  168. package/dist/scaAnalysis/java/index.js +7 -10
  169. package/dist/scaAnalysis/java/index.js.map +1 -0
  170. package/dist/scaAnalysis/java/javaBuildDepsParser.js +43 -43
  171. package/dist/scaAnalysis/java/javaBuildDepsParser.js.map +1 -0
  172. package/dist/scaAnalysis/javascript/analysis.js +16 -20
  173. package/dist/scaAnalysis/javascript/analysis.js.map +1 -0
  174. package/dist/scaAnalysis/javascript/index.js +17 -19
  175. package/dist/scaAnalysis/javascript/index.js.map +1 -0
  176. package/dist/scaAnalysis/javascript/scaServiceParser.js +8 -15
  177. package/dist/scaAnalysis/javascript/scaServiceParser.js.map +1 -0
  178. package/dist/scaAnalysis/legacy/legacyFlow.js +13 -15
  179. package/dist/scaAnalysis/legacy/legacyFlow.js.map +1 -0
  180. package/dist/scaAnalysis/php/analysis.js +15 -16
  181. package/dist/scaAnalysis/php/analysis.js.map +1 -0
  182. package/dist/scaAnalysis/php/index.js +5 -8
  183. package/dist/scaAnalysis/php/index.js.map +1 -0
  184. package/dist/scaAnalysis/php/phpNewServicesMapper.js +9 -12
  185. package/dist/scaAnalysis/php/phpNewServicesMapper.js.map +1 -0
  186. package/dist/scaAnalysis/processServicesFlow.js +86 -32
  187. package/dist/scaAnalysis/processServicesFlow.js.map +1 -0
  188. package/dist/scaAnalysis/python/analysis.js +16 -23
  189. package/dist/scaAnalysis/python/analysis.js.map +1 -0
  190. package/dist/scaAnalysis/python/index.js +4 -7
  191. package/dist/scaAnalysis/python/index.js.map +1 -0
  192. package/dist/scaAnalysis/repoMode/gradleParser.js +7 -13
  193. package/dist/scaAnalysis/repoMode/gradleParser.js.map +1 -0
  194. package/dist/scaAnalysis/repoMode/index.js +9 -12
  195. package/dist/scaAnalysis/repoMode/index.js.map +1 -0
  196. package/dist/scaAnalysis/repoMode/mavenParser.js +26 -14
  197. package/dist/scaAnalysis/repoMode/mavenParser.js.map +1 -0
  198. package/dist/scaAnalysis/ruby/analysis.js +32 -46
  199. package/dist/scaAnalysis/ruby/analysis.js.map +1 -0
  200. package/dist/scaAnalysis/ruby/index.js +5 -8
  201. package/dist/scaAnalysis/ruby/index.js.map +1 -0
  202. package/dist/scaAnalysis/scaAnalysis.js +49 -51
  203. package/dist/scaAnalysis/scaAnalysis.js.map +1 -0
  204. package/dist/scan/fileUtils.js +36 -40
  205. package/dist/scan/fileUtils.js.map +1 -0
  206. package/dist/scan/formatScanOutput.js +47 -61
  207. package/dist/scan/formatScanOutput.js.map +1 -0
  208. package/dist/scan/help.js +8 -11
  209. package/dist/scan/help.js.map +1 -0
  210. package/dist/scan/models/groupedResultsModel.js +2 -5
  211. package/dist/scan/models/groupedResultsModel.js.map +1 -0
  212. package/dist/scan/models/resultContentModel.js +2 -2
  213. package/dist/scan/models/resultContentModel.js.map +1 -0
  214. package/dist/scan/models/scanResultsModel.js +2 -5
  215. package/dist/scan/models/scanResultsModel.js.map +1 -0
  216. package/dist/scan/populateProjectIdAndProjectName.js +22 -60
  217. package/dist/scan/populateProjectIdAndProjectName.js.map +1 -0
  218. package/dist/scan/processScan.js +28 -0
  219. package/dist/scan/processScan.js.map +1 -0
  220. package/dist/scan/saveResults.js +3 -6
  221. package/dist/scan/saveResults.js.map +1 -0
  222. package/dist/scan/scan.js +33 -53
  223. package/dist/scan/scan.js.map +1 -0
  224. package/dist/scan/scanConfig.js +14 -12
  225. package/dist/scan/scanConfig.js.map +1 -0
  226. package/dist/scan/scanController.js +19 -21
  227. package/dist/scan/scanController.js.map +1 -0
  228. package/dist/scan/scanRequests.js +86 -0
  229. package/dist/scan/scanRequests.js.map +1 -0
  230. package/dist/scan/scanResults.js +26 -72
  231. package/dist/scan/scanResults.js.map +1 -0
  232. package/dist/telemetry/telemetry.js +29 -59
  233. package/dist/telemetry/telemetry.js.map +1 -0
  234. package/dist/utils/capabilities.js +2 -1
  235. package/dist/utils/capabilities.js.map +1 -0
  236. package/dist/utils/commonApi.js +58 -50
  237. package/dist/utils/commonApi.js.map +1 -0
  238. package/dist/utils/filterProjectPath.js +2 -1
  239. package/dist/utils/filterProjectPath.js.map +1 -0
  240. package/dist/utils/generalAPI.js +11 -33
  241. package/dist/utils/generalAPI.js.map +1 -0
  242. package/dist/utils/getConfig.js +8 -13
  243. package/dist/utils/getConfig.js.map +1 -0
  244. package/dist/utils/oraWrapper.js +7 -14
  245. package/dist/utils/oraWrapper.js.map +1 -0
  246. package/dist/utils/paramsUtil/commandlineParams.js +2 -5
  247. package/dist/utils/paramsUtil/commandlineParams.js.map +1 -0
  248. package/dist/utils/paramsUtil/configStoreParams.js +9 -10
  249. package/dist/utils/paramsUtil/configStoreParams.js.map +1 -0
  250. package/dist/utils/paramsUtil/envVariableParams.js +2 -3
  251. package/dist/utils/paramsUtil/envVariableParams.js.map +1 -0
  252. package/dist/utils/paramsUtil/paramHandler.js +12 -13
  253. package/dist/utils/paramsUtil/paramHandler.js.map +1 -0
  254. package/dist/utils/parsedCLIOptions.js +4 -7
  255. package/dist/utils/parsedCLIOptions.js.map +1 -0
  256. package/dist/utils/requestUtils.js +7 -13
  257. package/dist/utils/requestUtils.js.map +1 -0
  258. package/dist/utils/saveFile.js +8 -11
  259. package/dist/utils/saveFile.js.map +1 -0
  260. package/dist/utils/validationCheck.js +5 -11
  261. package/dist/utils/validationCheck.js.map +1 -0
  262. package/package.json +39 -48
  263. package/.prettierignore +0 -1
  264. package/bin/contrast.js +0 -2
  265. package/dist/audit/languageAnalysisEngine/util/requestUtils.js +0 -14
  266. package/dist/commands/audit/auditConfig.js +0 -12
  267. package/dist/commands/audit/help.js +0 -70
  268. package/dist/commands/audit/processAudit.js +0 -24
  269. package/dist/commands/auth/auth.js +0 -120
  270. package/dist/commands/github/fingerprintConfig.js +0 -13
  271. package/dist/commands/github/processFingerprint.js +0 -28
  272. package/dist/commands/github/projectGroup.js +0 -254
  273. package/dist/commands/github/repoServices.js +0 -108
  274. package/dist/commands/scan/processScan.js +0 -31
  275. package/dist/lambda/__mocks__/aws.js +0 -21
  276. package/dist/lambda/__mocks__/lambdaConfig.json +0 -42
  277. package/src/audit/catalogueApplication/catalogueApplication.js +0 -51
  278. package/src/audit/languageAnalysisEngine/commonApi.js +0 -20
  279. package/src/audit/languageAnalysisEngine/filterProjectPath.js +0 -21
  280. package/src/audit/languageAnalysisEngine/getProjectRootFilenames.js +0 -36
  281. package/src/audit/languageAnalysisEngine/sendSnapshot.js +0 -57
  282. package/src/audit/languageAnalysisEngine/util/requestUtils.js +0 -17
  283. package/src/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js +0 -63
  284. package/src/audit/report/commonReportingFunctions.js +0 -412
  285. package/src/audit/report/models/reportGuidanceModel.ts +0 -5
  286. package/src/audit/report/models/reportLibraryModel.ts +0 -30
  287. package/src/audit/report/models/reportListModel.ts +0 -49
  288. package/src/audit/report/models/reportOutputModel.ts +0 -29
  289. package/src/audit/report/models/reportSeverityModel.ts +0 -18
  290. package/src/audit/report/models/severityCountModel.ts +0 -22
  291. package/src/audit/report/reportingFeature.ts +0 -110
  292. package/src/audit/report/utils/reportUtils.ts +0 -165
  293. package/src/audit/save.js +0 -67
  294. package/src/cliConstants.js +0 -522
  295. package/src/commands/audit/auditConfig.js +0 -18
  296. package/src/commands/audit/auditController.js +0 -50
  297. package/src/commands/audit/help.js +0 -72
  298. package/src/commands/audit/processAudit.js +0 -34
  299. package/src/commands/audit/saveFile.js +0 -15
  300. package/src/commands/auth/auth.js +0 -146
  301. package/src/commands/config/config.js +0 -41
  302. package/src/commands/github/fingerprintConfig.js +0 -19
  303. package/src/commands/github/processFingerprint.js +0 -37
  304. package/src/commands/github/projectGroup.js +0 -294
  305. package/src/commands/github/repoServices.js +0 -122
  306. package/src/commands/learn/learn.js +0 -10
  307. package/src/commands/learn/processLearn.js +0 -13
  308. package/src/commands/scan/processScan.js +0 -42
  309. package/src/common/HTTPClient.js +0 -775
  310. package/src/common/baseRequest.ts +0 -83
  311. package/src/common/commonHelp.js +0 -53
  312. package/src/common/errorHandling.js +0 -157
  313. package/src/common/fail.js +0 -79
  314. package/src/common/versionChecker.js +0 -75
  315. package/src/constants/constants.js +0 -71
  316. package/src/constants/lambda.js +0 -85
  317. package/src/constants/locales.js +0 -365
  318. package/src/index.ts +0 -142
  319. package/src/lambda/__mocks__/aws.ts +0 -32
  320. package/src/lambda/__mocks__/lambdaConfig.json +0 -42
  321. package/src/lambda/analytics.ts +0 -9
  322. package/src/lambda/arn.ts +0 -33
  323. package/src/lambda/aws.ts +0 -248
  324. package/src/lambda/cliError.ts +0 -72
  325. package/src/lambda/constants.ts +0 -11
  326. package/src/lambda/help.ts +0 -92
  327. package/src/lambda/lambda.ts +0 -230
  328. package/src/lambda/lambdaUtils.ts +0 -111
  329. package/src/lambda/logUtils.ts +0 -64
  330. package/src/lambda/scanDetailCompletion.ts +0 -78
  331. package/src/lambda/scanRequest.ts +0 -169
  332. package/src/lambda/scanResults.ts +0 -29
  333. package/src/lambda/types.ts +0 -36
  334. package/src/lambda/utils.ts +0 -188
  335. package/src/sbom/generateSbom.ts +0 -45
  336. package/src/scaAnalysis/common/auditReport.js +0 -59
  337. package/src/scaAnalysis/common/commonReportingFunctionsSca.js +0 -276
  338. package/src/scaAnalysis/common/formatMessage.js +0 -67
  339. package/src/scaAnalysis/common/models/ScaReportModel.ts +0 -81
  340. package/src/scaAnalysis/common/scaParserForGoAndJava.js +0 -41
  341. package/src/scaAnalysis/common/scaServicesUpload.js +0 -155
  342. package/src/scaAnalysis/common/treeUpload.js +0 -51
  343. package/src/scaAnalysis/common/utils/reportUtilsSca.ts +0 -123
  344. package/src/scaAnalysis/dotnet/analysis.js +0 -72
  345. package/src/scaAnalysis/dotnet/index.js +0 -11
  346. package/src/scaAnalysis/go/goAnalysis.js +0 -26
  347. package/src/scaAnalysis/go/goParseDeps.js +0 -203
  348. package/src/scaAnalysis/go/goReadDepFile.js +0 -34
  349. package/src/scaAnalysis/java/analysis.js +0 -148
  350. package/src/scaAnalysis/java/index.js +0 -29
  351. package/src/scaAnalysis/java/javaBuildDepsParser.js +0 -439
  352. package/src/scaAnalysis/javascript/analysis.js +0 -111
  353. package/src/scaAnalysis/javascript/index.js +0 -104
  354. package/src/scaAnalysis/javascript/scaServiceParser.js +0 -151
  355. package/src/scaAnalysis/legacy/legacyFlow.js +0 -43
  356. package/src/scaAnalysis/php/analysis.js +0 -78
  357. package/src/scaAnalysis/php/index.js +0 -28
  358. package/src/scaAnalysis/php/phpNewServicesMapper.js +0 -77
  359. package/src/scaAnalysis/processServicesFlow.js +0 -119
  360. package/src/scaAnalysis/python/analysis.js +0 -93
  361. package/src/scaAnalysis/python/index.js +0 -16
  362. package/src/scaAnalysis/repoMode/gradleParser.js +0 -88
  363. package/src/scaAnalysis/repoMode/index.js +0 -21
  364. package/src/scaAnalysis/repoMode/mavenParser.js +0 -139
  365. package/src/scaAnalysis/ruby/analysis.js +0 -413
  366. package/src/scaAnalysis/ruby/index.js +0 -16
  367. package/src/scaAnalysis/scaAnalysis.js +0 -171
  368. package/src/scan/autoDetection.js +0 -175
  369. package/src/scan/fileUtils.js +0 -206
  370. package/src/scan/formatScanOutput.ts +0 -225
  371. package/src/scan/help.js +0 -56
  372. package/src/scan/models/groupedResultsModel.ts +0 -20
  373. package/src/scan/models/resultContentModel.ts +0 -86
  374. package/src/scan/models/scanResultsModel.ts +0 -55
  375. package/src/scan/populateProjectIdAndProjectName.js +0 -73
  376. package/src/scan/saveResults.js +0 -14
  377. package/src/scan/scan.ts +0 -68
  378. package/src/scan/scanConfig.js +0 -58
  379. package/src/scan/scanController.js +0 -98
  380. package/src/scan/scanResults.js +0 -171
  381. package/src/telemetry/telemetry.ts +0 -154
  382. package/src/utils/capabilities.js +0 -12
  383. package/src/utils/commonApi.js +0 -103
  384. package/src/utils/filterProjectPath.js +0 -25
  385. package/src/utils/generalAPI.js +0 -52
  386. package/src/utils/getConfig.ts +0 -34
  387. package/src/utils/oraWrapper.js +0 -29
  388. package/src/utils/paramsUtil/commandlineParams.js +0 -12
  389. package/src/utils/paramsUtil/configStoreParams.js +0 -19
  390. package/src/utils/paramsUtil/envVariableParams.js +0 -10
  391. package/src/utils/paramsUtil/paramHandler.js +0 -38
  392. package/src/utils/parsedCLIOptions.js +0 -32
  393. package/src/utils/requestUtils.js +0 -29
  394. package/src/utils/saveFile.js +0 -20
  395. package/src/utils/validationCheck.js +0 -39
@@ -1,148 +0,0 @@
1
- const child_process = require('child_process')
2
- const spawn = require('cross-spawn')
3
- const path = require('path')
4
- const i18n = require('i18n')
5
- const fs = require('fs')
6
-
7
- const MAVEN = 'maven'
8
- const GRADLE = 'gradle'
9
-
10
- const determineProjectTypeAndCwd = (files, config) => {
11
- const projectData = {}
12
-
13
- if (files.length > 1) {
14
- files = files.filter(i => config.fileName.includes(i))
15
- }
16
-
17
- if (files[0].includes('pom.xml')) {
18
- projectData.projectType = MAVEN
19
- } else if (files[0].includes('build.gradle')) {
20
- projectData.projectType = GRADLE
21
- }
22
-
23
- //clean up the path to be a folder not a file
24
- projectData.cwd = config.file
25
- ? config.file.replace('pom.xml', '').replace('build.gradle', '')
26
- : config.file
27
-
28
- return projectData
29
- }
30
-
31
- const buildMaven = (config, projectData, timeout) => {
32
- let command = 'mvn'
33
- let args = ['dependency:tree', '-B', '-Dscope=runtime']
34
- if (config.mavenSettingsPath) {
35
- args.push('-s')
36
- args.push(config.mavenSettingsPath)
37
- }
38
-
39
- // Allow users to provide a custom location for their settings.xml
40
- const cmdDepTree = spawn.sync(command, args, {
41
- env: process.env,
42
- cwd: projectData.cwd,
43
- timeout
44
- })
45
-
46
- if (cmdDepTree.status !== 0) {
47
- //if maven not found
48
- if (config.debug && cmdDepTree.error.code === 'ENOENT') {
49
- console.log(`ERROR: mvn not found`)
50
- console.log('Please make sure mvn is installed and accessible')
51
- }
52
-
53
- throw new Error(i18n.__('mavenDependencyTreeNonZero', projectData.cwd))
54
- }
55
-
56
- return cmdDepTree.stdout.toString()
57
- }
58
-
59
- const buildGradle = (config, projectData, timeout) => {
60
- let cmdStdout
61
- let output = {}
62
-
63
- try {
64
- // path.sep is user here to either execute as "./gradlew" for UNIX/Linux/MacOS
65
- // & ".\gradlew" for Windows
66
- // Check if the user has specified a sub-project
67
- if (config.subProject) {
68
- cmdStdout = child_process.execSync(
69
- '.' +
70
- path.sep +
71
- 'gradlew :' +
72
- config.subProject +
73
- ':dependencies --configuration runtimeClasspath',
74
- {
75
- cwd: projectData.cwd,
76
- timeout
77
- }
78
- )
79
- } else {
80
- cmdStdout = child_process.execSync(
81
- '.' +
82
- path.sep +
83
- 'gradlew dependencies --configuration runtimeClasspath',
84
- {
85
- cwd: projectData.cwd,
86
- timeout
87
- }
88
- )
89
- }
90
- if (
91
- cmdStdout
92
- .toString()
93
- .includes(
94
- "runtimeClasspath - Runtime classpath of source set 'main'.\n" +
95
- 'No dependencies'
96
- )
97
- ) {
98
- cmdStdout = child_process.execSync(
99
- '.' + path.sep + 'gradlew dependencies',
100
- {
101
- cwd: projectData.cwd,
102
- timeout
103
- }
104
- )
105
- }
106
- output = cmdStdout.toString()
107
- return output
108
- } catch (err) {
109
- if (
110
- fs.existsSync(projectData.cwd + 'gradlew') ||
111
- fs.existsSync(projectData.cwd + 'gradlew.bat')
112
- ) {
113
- throw new Error(
114
- i18n.__(
115
- 'gradleDependencyTreeNonZero',
116
- projectData.cwd,
117
- `${err.message}`
118
- )
119
- )
120
- } else {
121
- throw new Error(
122
- i18n.__('gradleWrapperUnavailable', projectData.cwd, `${err.message}`)
123
- )
124
- }
125
- }
126
- }
127
-
128
- const getJavaBuildDeps = (config, files) => {
129
- const timeout = 960000
130
- let output = {
131
- mvnDependancyTreeOutput: undefined,
132
- projectType: undefined
133
- }
134
-
135
- const projectData = determineProjectTypeAndCwd(files, config)
136
- if (projectData.projectType === MAVEN) {
137
- output.mvnDependancyTreeOutput = buildMaven(config, projectData, timeout)
138
- } else if (projectData.projectType === GRADLE) {
139
- output.mvnDependancyTreeOutput = buildGradle(config, projectData, timeout)
140
- }
141
- output.projectType = projectData.projectType
142
- return output
143
- }
144
-
145
- module.exports = {
146
- getJavaBuildDeps,
147
- determineProjectTypeAndCwd
148
- }
@@ -1,29 +0,0 @@
1
- const analysis = require('./analysis')
2
- const { parseBuildDeps } = require('./javaBuildDepsParser')
3
- const { createJavaTSMessage } = require('../common/formatMessage')
4
- const {
5
- parseDependenciesForSCAServices
6
- } = require('../common/scaParserForGoAndJava')
7
-
8
- const javaAnalysis = async (config, languageFiles) => {
9
- languageFiles.JAVA.forEach(file => {
10
- file.replace('build.gradle.kts', 'build.gradle')
11
- })
12
-
13
- const javaDeps = buildJavaTree(config, languageFiles.JAVA)
14
-
15
- if (config.legacy === false) {
16
- return parseDependenciesForSCAServices(javaDeps)
17
- } else {
18
- return createJavaTSMessage(javaDeps)
19
- }
20
- }
21
-
22
- const buildJavaTree = (config, files) => {
23
- const javaBuildDeps = analysis.getJavaBuildDeps(config, files)
24
- return parseBuildDeps(config, javaBuildDeps)
25
- }
26
-
27
- module.exports = {
28
- javaAnalysis
29
- }
@@ -1,439 +0,0 @@
1
- const i18n = require('i18n')
2
- const StringBuilder = require('string-builder')
3
- let sb = new StringBuilder()
4
-
5
- const parseBuildDeps = (config, input) => {
6
- const { mvnDependancyTreeOutput, projectType } = input
7
- try {
8
- return parseGradle(mvnDependancyTreeOutput, config, projectType)
9
- } catch (err) {
10
- throw new Error(i18n.__('javaParseProjectFile') + `${err.message}`)
11
- }
12
- }
13
-
14
- const preParser = shavedOutput => {
15
- let obj = []
16
- for (let dep in shavedOutput) {
17
- shavedOutput[dep] = shaveDependencyType(shavedOutput[dep])
18
-
19
- obj.push(
20
- shavedOutput[dep]
21
- .replace('+-', '+---')
22
- .replace('[INFO]', '')
23
- .replace('\\-', '\\---')
24
- .replace(':jar:', ':')
25
- .replace(' +', '+')
26
- .replace(' |', '|')
27
- .replace(' \\', '\\')
28
- .replace(':runtime', '')
29
- )
30
- }
31
-
32
- let depTree = []
33
- for (let x in obj) {
34
- let nodeLevel = computeRelationToLastElement(obj[x])
35
-
36
- let notLastLevel =
37
- obj[x].startsWith('|') ||
38
- obj[x].startsWith('+') ||
39
- obj[x].startsWith('\\')
40
-
41
- if (notLastLevel) {
42
- if (nodeLevel === 0) {
43
- depTree.push(obj[x])
44
- } else {
45
- let level = computeLevel(nodeLevel)
46
- let validatedLevel = addIndentation(nodeLevel === 2 ? 5 : level, obj[x])
47
- depTree.push(validatedLevel)
48
- }
49
- } else {
50
- let level = computeLevel(nodeLevel)
51
- let validatedLevel = addIndentation(nodeLevel === 3 ? 5 : level, obj[x])
52
- depTree.push(validatedLevel)
53
- }
54
- }
55
-
56
- return depTree
57
- }
58
-
59
- const shaveDependencyType = dep => {
60
- if (dep.endsWith('\r')) {
61
- dep = dep.slice(0, -1)
62
- }
63
-
64
- if (dep.endsWith(':test')) {
65
- dep = dep.slice(0, -5)
66
- }
67
-
68
- if (dep.endsWith(':compile')) {
69
- dep = dep.slice(0, -8)
70
- }
71
-
72
- if (dep.endsWith(':provided')) {
73
- dep = dep.slice(0, -9)
74
- }
75
-
76
- return dep
77
- }
78
-
79
- const shaveOutput = (gradleDependencyTreeOutput, projectType) => {
80
- let shavedOutput = gradleDependencyTreeOutput.split('\n')
81
-
82
- if (projectType === 'maven') {
83
- shavedOutput = preParser(shavedOutput)
84
- }
85
-
86
- let obj = []
87
- for (let key in shavedOutput) {
88
- if (shavedOutput[key].includes('project :')) {
89
- //skip
90
- } else if (
91
- shavedOutput[key].includes('+---') ||
92
- shavedOutput[key].includes('\\---')
93
- ) {
94
- obj.push(shavedOutput[key])
95
- }
96
- }
97
- return obj
98
- }
99
-
100
- const computeIndentation = element => {
101
- let hasPlus = element.includes('+')
102
- let hasSlash = element.includes('\\')
103
- if (hasPlus) {
104
- return element.substring(element.indexOf('+'))
105
- }
106
- if (hasSlash) {
107
- return element.substring(element.indexOf('\\'))
108
- }
109
- }
110
-
111
- const computeLevel = nodeLevel => {
112
- let num = [5, 8, 11, 14, 17, 20]
113
- for (let z in num) {
114
- if (num[z] === nodeLevel) {
115
- let n = parseInt(z)
116
- return 5 * (n + 2)
117
- }
118
- }
119
- }
120
-
121
- const addIndentation = (number, str) => {
122
- str = computeIndentation(str)
123
- sb.clear() // need to clear so each dep doesn't append to the string
124
- for (let j = 0; j < number; j++) {
125
- sb.append(' ')
126
- }
127
- sb.append(str)
128
- return sb.toString()
129
- }
130
-
131
- const computeRelationToLastElement = element => {
132
- let hasPlus = element.includes('+---')
133
- let hasSlash = element.includes('\\---')
134
- if (hasPlus) {
135
- return element.split('+---')[0].length
136
- }
137
- if (hasSlash) {
138
- return element.split('\\---')[0].length
139
- }
140
- }
141
-
142
- const stripElement = element => {
143
- const initialStrippedElement = element
144
- .replace(/[|]/g, '')
145
- .replace('+---', '')
146
- .replace('\\---', '')
147
- .replace(/[' ']/g, '')
148
- .replace('(c)', '')
149
- .replace('->', '@')
150
- .replace('(*)', '')
151
-
152
- //work out Gradle resolved versioning e.g. org.slf4j:slf4j-api:1.7.25 -> 1.7.22
153
- //take 1.7.22
154
- const splitElements = initialStrippedElement.split(':')
155
- if (
156
- splitElements[2] !== undefined &&
157
- splitElements[2] !== null &&
158
- splitElements[2].includes('@')
159
- ) {
160
- const splitVersions = splitElements[2].split('@')
161
- return initialStrippedElement
162
- .replace(':' + splitVersions[0], '')
163
- .replace('@', ':')
164
- }
165
-
166
- return initialStrippedElement
167
- }
168
-
169
- const checkVersion = element => {
170
- let version = element.split(':')
171
- return version[version.length - 1]
172
- }
173
-
174
- const createElement = (element, isRoot) => {
175
- let tree
176
- let cleanElement = stripElement(element)
177
- let splitGroupName = cleanElement.split(':')
178
-
179
- let validateVersion = false
180
- if (!element.includes('->')) {
181
- validateVersion = true
182
- }
183
-
184
- tree = {
185
- artifactID: splitGroupName[1],
186
- group: splitGroupName[0],
187
- version: validateVersion
188
- ? checkVersion(cleanElement)
189
- : splitGroupName[splitGroupName.length - 1],
190
- scope: 'compile',
191
- type: isRoot ? 'direct' : 'transitive',
192
- edges: {}
193
- }
194
- return tree
195
- }
196
-
197
- const getElementHeader = element => {
198
- let elementHeader = stripElement(element)
199
- elementHeader = elementHeader.replace(':', '/')
200
- elementHeader = elementHeader.replace(':', '@')
201
-
202
- return elementHeader
203
- }
204
-
205
- const buildElement = (element, rootElement, parentOfCurrent, tree, isRoot) => {
206
- let childElement = createElement(element, isRoot)
207
- let elementHeader = getElementHeader(element)
208
- let levelsArray = [rootElement, parentOfCurrent]
209
- const treeNode = getNestedObject(tree, levelsArray)
210
- const rootNode = getNestedObject(tree, [rootElement])
211
-
212
- // eslint-disable-next-line
213
- if (!rootNode.hasOwnProperty(elementHeader)) {
214
- tree[rootElement][elementHeader] = childElement
215
- }
216
- treeNode.edges[elementHeader] = elementHeader
217
- }
218
-
219
- const hasChildren = (nextNodeLevel, nodeLevel) => {
220
- if (nextNodeLevel > nodeLevel) {
221
- return true
222
- }
223
- }
224
-
225
- const lastChild = (nextNodeLevel, nodeLevel) => {
226
- if (nextNodeLevel < nodeLevel) {
227
- return true
228
- }
229
- }
230
-
231
- const calculateLevels = (nextNodeLevel, nodeLevel) => {
232
- return (nodeLevel - nextNodeLevel) / 5
233
- }
234
-
235
- const buildTree = shavedOutput => {
236
- let tree = {}
237
- let rootElement
238
- let levelNodes = []
239
-
240
- shavedOutput.forEach((element, index) => {
241
- if (index === 0) {
242
- // console.log(element, index)
243
- let cleanElement = stripElement(element)
244
- let elementHeader = getElementHeader(cleanElement)
245
- let splitElement = element.split(' ')
246
- let splitGroupName = splitElement[1].split(':')
247
-
248
- let validateVersion = false
249
- if (!element.includes('->')) {
250
- validateVersion = true
251
- }
252
-
253
- tree[splitGroupName[0]] = {}
254
- tree[splitGroupName[0]][elementHeader] = {
255
- artifactID: splitGroupName[1],
256
- group: splitGroupName[0],
257
- version: validateVersion
258
- ? checkVersion(cleanElement)
259
- : splitElement[splitElement.length - 1],
260
- scope: 'compile',
261
- type: 'direct',
262
- edges: {}
263
- }
264
-
265
- rootElement = splitGroupName[0]
266
- levelNodes.push(elementHeader)
267
- }
268
-
269
- if (shavedOutput.length - 1 === index) {
270
- // console.log(element, index)
271
- const parentOfCurrent = levelNodes[levelNodes.length - 1]
272
- let nodeLevel = computeRelationToLastElement(element)
273
-
274
- let validateVersion = false
275
- if (!element.includes('->')) {
276
- validateVersion = true
277
- }
278
-
279
- if (nodeLevel === 0) {
280
- let cleanElement = stripElement(element)
281
- let elementHeader = getElementHeader(cleanElement)
282
- let splitElement = element.split(' ')
283
- let splitGroupName = splitElement[1].split(':')
284
- tree[rootElement][elementHeader] = {
285
- artifactID: splitGroupName[1],
286
- group: splitGroupName[0],
287
- version: validateVersion
288
- ? checkVersion(cleanElement)
289
- : splitElement[splitElement.length - 1],
290
- scope: 'compile',
291
- type: 'direct',
292
- edges: {}
293
- }
294
- } else {
295
- buildElement(element, rootElement, parentOfCurrent, tree)
296
- }
297
- }
298
-
299
- if (index >= 1 && index < shavedOutput.length - 1) {
300
- let nodeLevel = computeRelationToLastElement(element)
301
- let nextNodeLevel = computeRelationToLastElement(shavedOutput[index + 1])
302
- const parentOfCurrent = levelNodes[levelNodes.length - 1]
303
-
304
- let isRoot = false
305
- if (nodeLevel === 0) {
306
- isRoot = true
307
- }
308
-
309
- // useful for debugging
310
- // console.log(
311
- // element,
312
- // index,
313
- // 'nodeLevel:',
314
- // nodeLevel,
315
- // 'nextNodeLevel:',
316
- // nextNodeLevel,
317
- // 'parentofCurrent:',
318
- // parentOfCurrent
319
- // )
320
-
321
- if (isRoot) {
322
- let cleanElement = stripElement(element)
323
- let elementHeader = getElementHeader(cleanElement)
324
- let splitElement = element.split(' ')
325
- let splitGroupName = splitElement[1].split(':')
326
-
327
- let validateVersion = false
328
- if (!element.includes('->')) {
329
- validateVersion = true
330
- }
331
-
332
- tree[rootElement][elementHeader] = {
333
- artifactID: splitGroupName[1],
334
- group: splitGroupName[0],
335
- version: validateVersion
336
- ? checkVersion(cleanElement)
337
- : splitElement[splitElement.length - 1],
338
- scope: 'compile',
339
- type: 'direct',
340
- edges: {}
341
- }
342
- levelNodes.push(elementHeader)
343
- return
344
- }
345
-
346
- let elementHeader = getElementHeader(element)
347
- buildElement(element, rootElement, parentOfCurrent, tree, isRoot)
348
-
349
- if (hasChildren(nextNodeLevel, nodeLevel)) {
350
- buildElement(element, rootElement, parentOfCurrent, tree, isRoot)
351
- levelNodes.push(elementHeader)
352
- }
353
-
354
- if (lastChild(nextNodeLevel, nodeLevel)) {
355
- let levelDifference = calculateLevels(nextNodeLevel, nodeLevel)
356
- if (levelDifference === 0) {
357
- levelNodes.pop()
358
- } else {
359
- let i
360
- for (i = 0; i < levelDifference; i++) {
361
- levelNodes.pop()
362
- }
363
- }
364
- }
365
- }
366
- })
367
-
368
- return tree
369
- }
370
-
371
- const getNestedObject = (nestedObj, pathArr) => {
372
- return pathArr.reduce(
373
- (obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined),
374
- nestedObj
375
- )
376
- }
377
-
378
- // emit any "+--- project :" within the tree
379
- const parseSubProject = shavedOutput => {
380
- let obj = []
381
- for (let key in shavedOutput) {
382
- if (!shavedOutput[key].includes('project')) {
383
- obj.push(shavedOutput[key])
384
- }
385
- }
386
- return obj
387
- }
388
-
389
- const validateIndentation = shavedOutput => {
390
- let validatedTree = []
391
- shavedOutput.forEach((element, index) => {
392
- let nextNodeLevel
393
- let nodeLevel = computeRelationToLastElement(element)
394
- if (shavedOutput[index + 1] !== undefined) {
395
- nextNodeLevel = computeRelationToLastElement(shavedOutput[index + 1])
396
- }
397
- if (index === 0) {
398
- validatedTree.push(shavedOutput[index])
399
- validatedTree.push(shavedOutput[index + 1])
400
- } else if (nextNodeLevel > nodeLevel + 5) {
401
- return
402
- } else {
403
- validatedTree.push(shavedOutput[index + 1])
404
- }
405
- })
406
- validatedTree.pop()
407
- return validatedTree
408
- }
409
-
410
- const parseGradle = (gradleDependencyTreeOutput, config, projectType) => {
411
- let shavedOutput = shaveOutput(gradleDependencyTreeOutput, projectType)
412
- if (config.subProject) {
413
- let subProject = parseSubProject(shavedOutput)
414
- let validatedOutput = validateIndentation(subProject)
415
- return buildTree(validatedOutput)
416
- } else {
417
- let validatedOutput = validateIndentation(shavedOutput)
418
- return buildTree(validatedOutput)
419
- }
420
- }
421
-
422
- module.exports = {
423
- parseBuildDeps,
424
- shaveOutput,
425
- validateIndentation,
426
- calculateLevels,
427
- lastChild,
428
- hasChildren,
429
- getElementHeader,
430
- createElement,
431
- stripElement,
432
- checkVersion,
433
- computeRelationToLastElement,
434
- addIndentation,
435
- computeLevel,
436
- computeIndentation,
437
- shaveDependencyType,
438
- preParser
439
- }