@contrast/contrast 2.0.2-beta.0 → 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 +109 -73
  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 +40 -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 -112
  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,63 +0,0 @@
1
- const i18n = require('i18n')
2
- module.exports = exports = ({ language: { lockFilename }, node }, next) => {
3
- // If we never read the lock file or its an earlier version then pass priority
4
- if (node.rawYarnLockFileContents == undefined || node.yarnVersion == 1) {
5
- next()
6
- } else {
7
- try {
8
- node.yarnLockFile = {}
9
- node.yarnLockFile['object'] = node.rawYarnLockFileContents
10
- delete node.yarnLockFile['object'].__metadata
11
- node.yarnLockFile['type'] = 'success'
12
-
13
- Object.entries(node.rawYarnLockFileContents).forEach(([key, value]) => {
14
- const rawKeyNames = key.split(',')
15
- const keyNames = formatKey(rawKeyNames)
16
-
17
- keyNames.forEach(name => {
18
- node.yarnLockFile.object[name] = value
19
- })
20
- })
21
- } catch (err) {
22
- next(
23
- new Error(
24
- i18n.__('NodeParseYarn2', lockFilename.lockFilePath) +
25
- `${err.message}`
26
- )
27
- )
28
-
29
- return
30
- }
31
-
32
- next()
33
- }
34
- }
35
-
36
- function formatKey(keyNames) {
37
- let name = ''
38
- let formattedNames = []
39
- keyNames.forEach(dummyString => {
40
- let nameArr = dummyString.split('@')
41
- if (nameArr.length > 1) {
42
- if (nameArr.length == 2) {
43
- name = nameArr[0]
44
- }
45
-
46
- if (nameArr.length == 3) {
47
- name = '@' + nameArr[1]
48
- }
49
-
50
- let version = dummyString.split(':').pop('')
51
-
52
- if (version.length == 1 && version != '*') {
53
- version = version + '.0'
54
- }
55
- let reformattedKey = name.trim() + '@' + version
56
-
57
- formattedNames.push(reformattedKey)
58
- }
59
- })
60
- return formattedNames
61
- }
62
-
63
- exports.formatKey = formatKey
@@ -1,412 +0,0 @@
1
- const commonApi = require('../../utils/commonApi')
2
- const {
3
- ReportCompositeKey,
4
- ReportList,
5
- ReportModelStructure
6
- } = require('./models/reportListModel')
7
- const { orderBy } = require('lodash')
8
- const chalk = require('chalk')
9
- const {
10
- countVulnerableLibrariesBySeverity,
11
- orderByHighestPriority,
12
- findHighestSeverityCVE,
13
- findNameAndVersion,
14
- severityCountAllCVEs,
15
- findCVESeverity
16
- } = require('./utils/reportUtils')
17
- const { SeverityCountModel } = require('./models/severityCountModel')
18
- const {
19
- ReportOutputBodyModel,
20
- ReportOutputHeaderModel,
21
- ReportOutputModel
22
- } = require('./models/reportOutputModel')
23
- const {
24
- CE_URL,
25
- CRITICAL_COLOUR,
26
- HIGH_COLOUR,
27
- LOW_COLOUR,
28
- MEDIUM_COLOUR,
29
- NOTE_COLOUR
30
- } = require('../../constants/constants')
31
- const Table = require('cli-table3')
32
- const { ReportGuidanceModel } = require('./models/reportGuidanceModel')
33
- const i18n = require('i18n')
34
-
35
- const createSummaryMessageTop = (numberOfVulnerableLibraries, numberOfCves) => {
36
- numberOfVulnerableLibraries === 1
37
- ? console.log(`Found 1 vulnerable library containing ${numberOfCves} CVE`)
38
- : console.log(
39
- `Found ${numberOfVulnerableLibraries} vulnerable libraries containing ${numberOfCves} CVEs`
40
- )
41
- }
42
-
43
- const createSummaryMessageBottom = numberOfVulnerableLibraries => {
44
- numberOfVulnerableLibraries === 1
45
- ? console.log(`Found 1 vulnerability`)
46
- : console.log(`Found ${numberOfVulnerableLibraries} vulnerabilities`)
47
- }
48
-
49
- const getReport = async (config, reportId) => {
50
- const client = commonApi.getHttpClient(config)
51
- return client
52
- .getReportById(config, reportId)
53
- .then(res => {
54
- if (res.statusCode === 200) {
55
- return res.body
56
- } else {
57
- console.log(JSON.stringify(res.statusCode))
58
- commonApi.handleResponseErrors(res, 'report')
59
- }
60
- })
61
- .catch(err => {
62
- console.log(err)
63
- })
64
- }
65
-
66
- const printVulnerabilityResponse = (
67
- config,
68
- vulnerableLibraries,
69
- numberOfVulnerableLibraries,
70
- numberOfCves,
71
- guidance
72
- ) => {
73
- let hasSomeVulnerabilitiesReported = false
74
- printFormattedOutput(
75
- config,
76
- vulnerableLibraries,
77
- numberOfVulnerableLibraries,
78
- numberOfCves,
79
- guidance
80
- )
81
- if (Object.keys(vulnerableLibraries).length > 0) {
82
- hasSomeVulnerabilitiesReported = true
83
- }
84
- return hasSomeVulnerabilitiesReported
85
- }
86
-
87
- const printFormattedOutput = (
88
- config,
89
- libraries,
90
- numberOfVulnerableLibraries,
91
- numberOfCves,
92
- guidance
93
- ) => {
94
- createSummaryMessageTop(numberOfVulnerableLibraries, numberOfCves)
95
- console.log()
96
- const report = new ReportList()
97
-
98
- for (const library of libraries) {
99
- const { name, version } = findNameAndVersion(library, config)
100
-
101
- const newOutputModel = new ReportModelStructure(
102
- new ReportCompositeKey(
103
- name,
104
- version,
105
- findHighestSeverityCVE(library.cveArray),
106
- severityCountAllCVEs(
107
- library.cveArray,
108
- new SeverityCountModel()
109
- ).getTotal
110
- ),
111
- library.cveArray,
112
- null
113
- )
114
- report.reportOutputList.push(newOutputModel)
115
- }
116
-
117
- const outputOrderedByLowestSeverityAndLowestNumOfCvesFirst = orderBy(
118
- report.reportOutputList,
119
- [
120
- reportListItem => {
121
- return reportListItem.compositeKey.highestSeverity.priority
122
- },
123
- reportListItem => {
124
- return reportListItem.compositeKey.numberOfSeverities
125
- }
126
- ],
127
- ['asc', 'desc']
128
- )
129
-
130
- let contrastHeaderNumCounter = 0
131
- for (const reportModel of outputOrderedByLowestSeverityAndLowestNumOfCvesFirst) {
132
- contrastHeaderNumCounter++
133
- const { libraryName, libraryVersion, highestSeverity } =
134
- reportModel.compositeKey
135
-
136
- const numOfCVEs = reportModel.cveArray.length
137
-
138
- const table = getReportTable()
139
-
140
- const header = buildHeader(
141
- highestSeverity,
142
- contrastHeaderNumCounter,
143
- libraryName,
144
- libraryVersion,
145
- numOfCVEs
146
- )
147
-
148
- const advice = gatherRemediationAdvice(
149
- guidance,
150
- libraryName,
151
- libraryVersion
152
- )
153
-
154
- const body = buildBody(reportModel.cveArray, advice)
155
-
156
- const reportOutputModel = new ReportOutputModel(header, body)
157
-
158
- table.push(
159
- reportOutputModel.body.issueMessage,
160
- reportOutputModel.body.adviceMessage
161
- )
162
-
163
- console.log(
164
- reportOutputModel.header.vulnMessage,
165
- reportOutputModel.header.introducesMessage
166
- )
167
- console.log(table.toString() + '\n')
168
- }
169
-
170
- createSummaryMessageBottom(numberOfVulnerableLibraries)
171
- const {
172
- criticalMessage,
173
- highMessage,
174
- mediumMessage,
175
- lowMessage,
176
- noteMessage
177
- } = buildFooter(outputOrderedByLowestSeverityAndLowestNumOfCvesFirst)
178
- console.log(
179
- `${criticalMessage} | ${highMessage} | ${mediumMessage} | ${lowMessage} | ${noteMessage}`
180
- )
181
-
182
- if (config.host !== CE_URL) {
183
- console.log(
184
- '\n' + chalk.bold('View your full dependency tree in Contrast:')
185
- )
186
- console.log(
187
- `${config.host}/Contrast/static/ng/index.html#/${config.organizationId}/applications/${config.applicationId}/libs/dependency-tree`
188
- )
189
- }
190
- }
191
-
192
- function getReportTable() {
193
- return new Table({
194
- chars: {
195
- top: '',
196
- 'top-mid': '',
197
- 'top-left': '',
198
- 'top-right': '',
199
- bottom: '',
200
- 'bottom-mid': '',
201
- 'bottom-left': '',
202
- 'bottom-right': '',
203
- left: '',
204
- 'left-mid': '',
205
- mid: '',
206
- 'mid-mid': '',
207
- right: '',
208
- 'right-mid': '',
209
- middle: ' '
210
- },
211
- style: { 'padding-left': 0, 'padding-right': 0 },
212
- colAligns: ['right'],
213
- wordWrap: true,
214
- colWidths: [12, 1, 100]
215
- })
216
- }
217
- function buildHeader(
218
- highestSeverity,
219
- contrastHeaderNum,
220
- libraryName,
221
- version,
222
- numOfCVEs
223
- ) {
224
- const vulnerabilityPluralised =
225
- numOfCVEs > 1 ? 'vulnerabilities' : 'vulnerability'
226
- const formattedHeaderNum = buildFormattedHeaderNum(contrastHeaderNum)
227
-
228
- const headerColour = chalk.hex(highestSeverity.colour)
229
- const headerNumAndSeverity = headerColour(
230
- `${formattedHeaderNum} - [${highestSeverity.severity}]`
231
- )
232
- const libraryNameAndVersion = headerColour.bold(`${libraryName}-${version}`)
233
- const vulnMessage = `${headerNumAndSeverity} ${libraryNameAndVersion}`
234
-
235
- const introducesMessage = `introduces ${numOfCVEs} ${vulnerabilityPluralised}`
236
-
237
- return new ReportOutputHeaderModel(vulnMessage, introducesMessage)
238
- }
239
-
240
- function buildBody(cveArray, advice) {
241
- const orderedCvesWithSeverityAssigned = orderByHighestPriority(
242
- cveArray.map(cve => findCVESeverity(cve))
243
- )
244
-
245
- const issueMessage = getIssueRow(orderedCvesWithSeverityAssigned)
246
-
247
- //todo different advice based on remediationGuidance being available or now
248
- // console.log(advice)
249
-
250
- const minOrMax = advice.minimum ? advice.minimum : advice.maximum
251
- const displayAdvice = minOrMax
252
- ? `Change to version ${chalk.bold(minOrMax)}`
253
- : 'No recommendation is available according to our data. Upgrade to the latest stable is the best advice we can give.'
254
-
255
- const adviceMessage = [chalk.bold('Advice'), ':', displayAdvice]
256
-
257
- return new ReportOutputBodyModel(issueMessage, adviceMessage)
258
- }
259
-
260
- function getIssueRow(cveArray) {
261
- const cveMessagesList = getIssueCveMsgList(cveArray)
262
- return [chalk.bold('Issue'), ':', `${cveMessagesList.join(', ')}`]
263
- }
264
-
265
- function gatherRemediationAdvice(guidance, libraryName, libraryVersion) {
266
- const guidanceModel = new ReportGuidanceModel()
267
-
268
- const data = guidance[libraryName + '@' + libraryVersion]
269
-
270
- if (data) {
271
- guidanceModel.minimum = data.minUpgradeVersion
272
- guidanceModel.maximum = data.maxUpgradeVersion
273
- }
274
-
275
- return guidanceModel
276
- }
277
-
278
- function buildFormattedHeaderNum(contrastHeaderNum) {
279
- return `CONTRAST-${contrastHeaderNum.toString().padStart(3, '0')}`
280
- }
281
-
282
- const buildFooter = reportModelStructure => {
283
- const { critical, high, medium, low, note } =
284
- countVulnerableLibrariesBySeverity(reportModelStructure)
285
-
286
- const criticalMessage = chalk
287
- .hex(CRITICAL_COLOUR)
288
- .bold(`${critical} Critical`)
289
- const highMessage = chalk.hex(HIGH_COLOUR).bold(`${high} High`)
290
- const mediumMessage = chalk.hex(MEDIUM_COLOUR).bold(`${medium} Medium`)
291
- const lowMessage = chalk.hex(LOW_COLOUR).bold(`${low} Low`)
292
- const noteMessage = chalk.hex(NOTE_COLOUR).bold(`${note} Note`)
293
-
294
- return {
295
- criticalMessage,
296
- highMessage,
297
- mediumMessage,
298
- lowMessage,
299
- noteMessage
300
- }
301
- }
302
-
303
- const getIssueCveMsgList = results => {
304
- const cveMessages = []
305
-
306
- results.forEach(reportSeverityModel => {
307
- const { colour, severity, name } = reportSeverityModel
308
-
309
- const severityShorthand = chalk
310
- .hex(colour)
311
- .bold(`[${severity.charAt(0).toUpperCase()}]`)
312
-
313
- const builtMessage = severityShorthand + name
314
- cveMessages.push(builtMessage)
315
- })
316
- return cveMessages
317
- }
318
-
319
- const getSeverityCounts = results => {
320
- const acc = {
321
- critical: 0,
322
- high: 0,
323
- medium: 0,
324
- low: 0,
325
- note: 0,
326
- total: 0
327
- }
328
- if (results && results.length > 0) {
329
- results.forEach(i => {
330
- acc[i.severity.toLowerCase()] += 1
331
- acc.total += 1
332
- return acc
333
- })
334
- }
335
-
336
- return acc
337
- }
338
-
339
- const printNoVulnFoundMsg = () => {
340
- console.log(i18n.__('scanNoVulnerabilitiesFound'))
341
- console.log(i18n.__('scanNoVulnerabilitiesFoundSecureCode'))
342
- console.log(i18n.__('scanNoVulnerabilitiesFoundGoodWork'))
343
- console.log(chalk.bold(`Found 0 vulnerabilities`))
344
- console.log(
345
- i18n.__(
346
- 'foundDetailedVulnerabilities',
347
- String(0),
348
- String(0),
349
- String(0),
350
- String(0),
351
- String(0)
352
- )
353
- )
354
- }
355
- const printVulnInfo = projectOverview => {
356
- const totalVulnerabilities = projectOverview.total
357
-
358
- createSummaryMessageBottom(totalVulnerabilities)
359
- const formattedValues = severityFormatted(projectOverview)
360
- console.log(
361
- i18n.__(
362
- 'foundDetailedVulnerabilities',
363
- String(formattedValues.criticalFormatted),
364
- String(formattedValues.highFormatted),
365
- String(formattedValues.mediumFormatted),
366
- String(formattedValues.lowFormatted),
367
- String(formattedValues.noteFormatted)
368
- )
369
- )
370
- }
371
-
372
- const severityFormatted = projectOverview => {
373
- const criticalFormatted = chalk
374
- .hex(CRITICAL_COLOUR)
375
- .bold(`${projectOverview.critical} Critical`)
376
- const highFormatted = chalk
377
- .hex(HIGH_COLOUR)
378
- .bold(`${projectOverview.high} High`)
379
- const mediumFormatted = chalk
380
- .hex(MEDIUM_COLOUR)
381
- .bold(`${projectOverview.medium} Medium`)
382
- const lowFormatted = chalk.hex(LOW_COLOUR).bold(`${projectOverview.low} Low`)
383
- const noteFormatted = chalk
384
- .hex(NOTE_COLOUR)
385
- .bold(`${projectOverview.note} Note`)
386
-
387
- return {
388
- criticalFormatted,
389
- highFormatted,
390
- mediumFormatted,
391
- lowFormatted,
392
- noteFormatted
393
- }
394
- }
395
-
396
- module.exports = {
397
- createSummaryMessageTop,
398
- getReport,
399
- createSummaryMessageBottom,
400
- printVulnerabilityResponse,
401
- printFormattedOutput,
402
- getReportTable,
403
- buildHeader,
404
- buildBody,
405
- getIssueRow,
406
- gatherRemediationAdvice,
407
- buildFormattedHeaderNum,
408
- getIssueCveMsgList,
409
- getSeverityCounts,
410
- printNoVulnFoundMsg,
411
- printVulnInfo
412
- }
@@ -1,5 +0,0 @@
1
- export class ReportGuidanceModel {
2
- minimum?: string
3
- maximum?: string
4
- latest?: string
5
- }
@@ -1,30 +0,0 @@
1
- export class ReportLibraryModel {
2
- name: string
3
- cveArray: ReportCVEModel[]
4
-
5
- constructor(name: string, cveArray: ReportCVEModel[]) {
6
- this.name = name
7
- this.cveArray = cveArray
8
- }
9
- }
10
-
11
- export class ReportCVEModel {
12
- name?: string
13
- description?: string
14
- authentication?: string
15
- references?: []
16
- severityCode?: string
17
- cvss3SeverityCode?: string
18
-
19
- constructor(
20
- name: string,
21
- description: string,
22
- severityCode: string,
23
- cvss3SeverityCode: string
24
- ) {
25
- this.name = name
26
- this.description = description
27
- this.severityCode = severityCode
28
- this.cvss3SeverityCode = cvss3SeverityCode
29
- }
30
- }
@@ -1,49 +0,0 @@
1
- import { ReportSeverityModel } from './reportSeverityModel'
2
- import { ReportCVEModel } from './reportLibraryModel'
3
- import {
4
- ScaReportRemediationAdviceModel,
5
- ScaReportVulnerabilityModel
6
- } from '../../../scaAnalysis/common/models/ScaReportModel'
7
-
8
- export class ReportList {
9
- reportOutputList: ReportModelStructure[]
10
-
11
- constructor() {
12
- this.reportOutputList = []
13
- }
14
- }
15
-
16
- export class ReportModelStructure {
17
- compositeKey: ReportCompositeKey
18
- cveArray: ReportCVEModel[] | ScaReportVulnerabilityModel[]
19
- remediationAdvice: ScaReportRemediationAdviceModel | null
20
-
21
- constructor(
22
- compositeKey: ReportCompositeKey,
23
- cveArray: ReportCVEModel[] | ScaReportVulnerabilityModel[],
24
- remediationAdvice: ScaReportRemediationAdviceModel | null
25
- ) {
26
- this.compositeKey = compositeKey
27
- this.cveArray = cveArray
28
- this.remediationAdvice = remediationAdvice
29
- }
30
- }
31
-
32
- export class ReportCompositeKey {
33
- libraryName!: string
34
- libraryVersion!: string
35
- highestSeverity!: ReportSeverityModel
36
- numberOfSeverities!: number
37
-
38
- constructor(
39
- libraryName: string,
40
- libraryVersion: string,
41
- highestSeverity: ReportSeverityModel,
42
- numberOfSeverities: number
43
- ) {
44
- this.libraryName = libraryName
45
- this.libraryVersion = libraryVersion
46
- this.highestSeverity = highestSeverity
47
- this.numberOfSeverities = numberOfSeverities
48
- }
49
- }
@@ -1,29 +0,0 @@
1
- export class ReportOutputModel {
2
- header: ReportOutputHeaderModel
3
- body: ReportOutputBodyModel
4
-
5
- constructor(header: ReportOutputHeaderModel, body: ReportOutputBodyModel) {
6
- this.header = header
7
- this.body = body
8
- }
9
- }
10
-
11
- export class ReportOutputHeaderModel {
12
- vulnMessage: string
13
- introducesMessage: string
14
-
15
- constructor(vulnMessage: string, introducesMessage: string) {
16
- this.vulnMessage = vulnMessage
17
- this.introducesMessage = introducesMessage
18
- }
19
- }
20
-
21
- export class ReportOutputBodyModel {
22
- issueMessage: string[]
23
- adviceMessage: string[]
24
-
25
- constructor(issueMessage: string[], adviceMessage: string[]) {
26
- this.issueMessage = issueMessage
27
- this.adviceMessage = adviceMessage
28
- }
29
- }
@@ -1,18 +0,0 @@
1
- export class ReportSeverityModel {
2
- severity: string
3
- priority: number
4
- colour: string
5
- name: string
6
-
7
- constructor(
8
- severity: string,
9
- priority: number,
10
- colour: string,
11
- name: string
12
- ) {
13
- this.severity = severity
14
- this.priority = priority
15
- this.colour = colour
16
- this.name = name
17
- }
18
- }
@@ -1,22 +0,0 @@
1
- export class SeverityCountModel {
2
- critical!: number
3
- high!: number
4
- medium!: number
5
- low!: number
6
- note!: number
7
- total!: number
8
-
9
- //needed as default to stop NaN when new object constructed
10
- constructor() {
11
- this.critical = 0
12
- this.high = 0
13
- this.medium = 0
14
- this.low = 0
15
- this.note = 0
16
- this.total = 0
17
- }
18
-
19
- get getTotal(): number {
20
- return this.critical + this.high + this.medium + this.low + this.note
21
- }
22
- }