@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionChecker.js","sourceRoot":"","sources":["../../src/common/versionChecker.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAC,MAAM,EAAC,EAAE;IAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAA;QAC3C,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,cAAc,EAAE;YAC/C,OAAO,GAAG,CAAC,IAAI,CAAA;SAChB;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACtB,OAAO,SAAS,CAAA;KACjB;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAC,MAAM,EAAC,EAAE;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC1C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;QAC3D,CAAC,CAAC,KAAK,CAAA;IAET,IAAI,CAAC,IAAI,EAAE;QACT,IAAI,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAErD,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YAC1B,OAAO,CAAC,GAAG,CACT,+DAA+D,CAChE,CAAA;YACD,OAAM;SACP;QAED,gCAAgC;QAChC,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAElE,IAAI,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,gBAAgB,CAAC,EAAE;YACrD,MAAM,sBAAsB,GAAG,oBAAoB,KAAK,CAAC,MAAM,CAC7D,WAAW,CAAC,aAAa,EAAE,CAC5B,MAAM,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAA;YAEtC,MAAM,yBAAyB,GAAG,OAAO,KAAK,CAAC,IAAI,CACjD,6BAA6B,CAC9B,oBAAoB,CAAA;YAErB,MAAM,8BAA8B,GAAG,OAAO,KAAK,CAAC,IAAI,CACtD,4CAA4C,CAC7C,qBAAqB,CAAA;YAEtB,OAAO,CAAC,GAAG,CACT,KAAK,CACH,GAAG,sBAAsB,KAAK,yBAAyB,OAAO,8BAA8B,EAAE,EAC9F;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,QAAQ;aAChB,CACF,CACF,CAAA;SACF;KACF;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAC,cAAc,EAAC,EAAE;IACzD,OAAO,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;AAC1C,CAAC,CAAA"}
@@ -1,65 +1,46 @@
1
- "use strict";
2
- const NODE = 'NODE';
3
- const DOTNET = 'DOTNET';
4
- const JAVA = 'JAVA';
5
- const RUBY = 'RUBY';
6
- const PYTHON = 'PYTHON';
7
- const GO = 'GO';
8
- const PHP = 'PHP';
9
- const JAVASCRIPT = 'JAVASCRIPT';
10
- const LOW = 'LOW';
11
- const MEDIUM = 'MEDIUM';
12
- const HIGH = 'HIGH';
13
- const CRITICAL = 'CRITICAL';
14
- const APP_NAME = 'contrast';
15
- const APP_VERSION = '2.0.2-beta.0';
16
- const TIMEOUT = 120000;
17
- const HIGH_COLOUR = '#ff9900';
18
- const CRITICAL_COLOUR = '#e35858';
19
- const MEDIUM_COLOUR = '#f1c232';
20
- const LOW_COLOUR = '#b7b7b7';
21
- const NOTE_COLOUR = '#999999';
22
- const CRITICAL_PRIORITY = 1;
23
- const HIGH_PRIORITY = 2;
24
- const MEDIUM_PRIORITY = 3;
25
- const LOW_PRIORITY = 4;
26
- const NOTE_PRIORITY = 5;
27
- const AUTH_UI_URL = 'https://cli-auth.contrastsecurity.com';
28
- const AUTH_CALLBACK_URL = 'https://cli-auth-api.contrastsecurity.com';
29
- const SARIF_FILE = 'SARIF';
30
- const SBOM_CYCLONE_DX_FILE = 'CYCLONEDX';
31
- const SBOM_SPDX_FILE = 'SPDX';
32
- const CE_URL = 'https://ce.contrastsecurity.com';
33
- const SAAS = 'SAAS';
34
- const EOP = 'EOP';
35
- const MODE_REPO = 'REPO';
36
- module.exports = {
37
- supportedLanguages: { NODE, DOTNET, JAVA, RUBY, PYTHON, GO, PHP, JAVASCRIPT },
38
- supportedLanguagesScan: { JAVASCRIPT, DOTNET, JAVA },
39
- LOW,
40
- MEDIUM,
41
- HIGH,
42
- CRITICAL,
43
- APP_VERSION,
44
- APP_NAME,
45
- TIMEOUT,
46
- AUTH_UI_URL,
47
- AUTH_CALLBACK_URL,
48
- SARIF_FILE,
49
- HIGH_COLOUR,
50
- CRITICAL_COLOUR,
51
- MEDIUM_COLOUR,
52
- LOW_COLOUR,
53
- NOTE_COLOUR,
54
- CE_URL,
55
- CRITICAL_PRIORITY,
56
- HIGH_PRIORITY,
57
- MEDIUM_PRIORITY,
58
- LOW_PRIORITY,
59
- NOTE_PRIORITY,
60
- SBOM_CYCLONE_DX_FILE,
61
- SBOM_SPDX_FILE,
62
- SAAS,
63
- EOP,
64
- MODE_REPO
65
- };
1
+ // Language identifiers
2
+ export const NODE = 'NODE';
3
+ export const DOTNET = 'DOTNET';
4
+ export const JAVA = 'JAVA';
5
+ export const RUBY = 'RUBY';
6
+ export const PYTHON = 'PYTHON';
7
+ export const GO = 'GO';
8
+ export const PHP = 'PHP';
9
+ export const JAVASCRIPT = 'JAVASCRIPT';
10
+ // Severity
11
+ export const LOW = 'LOW';
12
+ export const MEDIUM = 'MEDIUM';
13
+ export const HIGH = 'HIGH';
14
+ export const CRITICAL = 'CRITICAL';
15
+ // App
16
+ export const APP_NAME = 'contrast';
17
+ const APP_VERSION = '2.0.2-beta.10';
18
+ export const TIMEOUT = 120000;
19
+ export const CRITICAL_PRIORITY = 1;
20
+ export const HIGH_PRIORITY = 2;
21
+ export const MEDIUM_PRIORITY = 3;
22
+ export const LOW_PRIORITY = 4;
23
+ export const NOTE_PRIORITY = 5;
24
+ export const AUTH_UI_URL = 'https://cli-auth.contrastsecurity.com';
25
+ export const AUTH_CALLBACK_URL = 'https://cli-auth-api.contrastsecurity.com';
26
+ export const SARIF_FILE = 'SARIF';
27
+ export const SBOM_CYCLONE_DX_FILE = 'CYCLONEDX';
28
+ export const SBOM_SPDX_FILE = 'SPDX';
29
+ export const CE_URL = 'https://ce.contrastsecurity.com';
30
+ //configuration
31
+ export const SAAS = 'SAAS';
32
+ export const EOP = 'EOP';
33
+ export const MODE_REPO = 'REPO';
34
+ // Colors
35
+ export const HIGH_COLOUR = '#ff9900';
36
+ export const CRITICAL_COLOUR = '#e35858';
37
+ export const MEDIUM_COLOUR = '#f1c232';
38
+ export const LOW_COLOUR = '#b7b7b7';
39
+ export const NOTE_COLOUR = '#999999';
40
+ export const BLUE_TEXT_COLOUR = '#97dcf7';
41
+ export const supportedLanguagesScan = { JAVASCRIPT, DOTNET, JAVA };
42
+ //mainly for testing
43
+ export function getAppVersion() {
44
+ return APP_VERSION;
45
+ }
46
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants/constants.js"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAA;AAC9B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAA;AAC9B,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAA;AACtB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAA;AACxB,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAA;AACtC,WAAW;AACX,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAA;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAA;AAC9B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAA;AAClC,MAAM;AACN,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAA;AAClC,MAAM,WAAW,GAAG,eAAe,CAAA;AAEnC,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAA;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAA;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAE9B,MAAM,CAAC,MAAM,WAAW,GAAG,uCAAuC,CAAA;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,2CAA2C,CAAA;AAC5E,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAA;AACjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAA;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAA;AACpC,MAAM,CAAC,MAAM,MAAM,GAAG,iCAAiC,CAAA;AAEvD,eAAe;AACf,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAA;AACxB,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAA;AAE/B,SAAS;AACT,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAA;AACpC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAA;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAA;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAA;AACnC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAA;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAEzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAElE,oBAAoB;AACpB,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAA;AACpB,CAAC"}
@@ -1,5 +1,4 @@
1
- "use strict";
2
- const lambda = {
1
+ export const lambda = {
3
2
  failedToStartScan: 'Failed to start scan',
4
3
  failedToParseArn: 'Failed to parse ARN',
5
4
  failedToGetScan: 'Failed to get scan',
@@ -13,21 +12,25 @@ const lambda = {
13
12
  missingFlagArguments: 'The following flags are missing an arguments:\n{{flags}}',
14
13
  notSupportedFlags: 'The following flags are not supported:\n{{flags}}\nRun command with --help to see usage',
15
14
  layerNotFound: 'The layer {{layerArn}} could not be found. The scan will continue without it',
15
+ // ====== general ===== //
16
16
  noVulnerabilitiesFound: '👏 No vulnerabilities found',
17
17
  scanCompleted: '----- Scan completed {{time}}s -----',
18
18
  sendingScanRequest: '{{icon}} Sending Lambda Function scan request to Contrast',
19
19
  scanRequestedSuccessfully: '{{icon}} Scan requested successfully',
20
20
  fetchingConfiguration: '{{icon}} Fetching configuration and policies for Lambda Function {{functionName}}',
21
21
  fetchedConfiguration: '{{icon}} Fetched configuration from AWS',
22
+ // ====== scan polling ===== //
22
23
  scanStarted: 'Scan Started',
23
24
  scanFailed: 'Scan Failed',
24
25
  scanTimedOut: 'Scan timed out',
26
+ // ====== lambda utils ===== //
25
27
  loadingFunctionList: 'Loading lambda function list',
26
28
  functionsFound: '{{count}} functions found',
27
29
  noFunctionsFound: 'No functions found',
28
30
  failedToLoadFunctions: 'Failed to load lambda functions',
29
31
  availableForScan: '{{icon}} {{count}} available for scan',
30
32
  runtimeCount: '----- {{runtime}} ({{count}}) -----',
33
+ // ====== print vulnerabilities ===== //
31
34
  gatherResults: 'Gathering results...',
32
35
  doneGatherResults: 'Done gathering results',
33
36
  whatHappenedTitle: 'What happened:',
@@ -43,6 +46,7 @@ const lambda = {
43
46
  other: 'Found %s vulnerabilities'
44
47
  },
45
48
  vulnerableDependencyDescriptions: '{packageName} (v{version}) has {NUM} known {NUM, plural,one{CVE}other{CVEs}}\n {cves}',
49
+ // ====== errorCodes ===== //
46
50
  something_went_wrong: 'Something went wrong',
47
51
  not_found_404: '404 error - Not found',
48
52
  internal_error: 'Internal error',
@@ -51,12 +55,11 @@ const lambda = {
51
55
  not_supported_lambda: 'This function cannot be scanned',
52
56
  not_supported_onboard_account: 'Scanning a function of onboard account is not supported',
53
57
  scan_lock: 'Other scan is still running. Please wait until the previous scan finishes',
58
+ // ====== statuses ===== //
54
59
  unsupported: 'unsupported',
55
60
  excluded: 'excluded',
56
61
  canceled: 'canceled',
57
62
  failed: 'failed',
58
63
  dismissed: 'dismissed'
59
64
  };
60
- module.exports = {
61
- lambda
62
- };
65
+ //# sourceMappingURL=lambda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../src/constants/lambda.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,iBAAiB,EAAE,sBAAsB;IACzC,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,oBAAoB;IACrC,mBAAmB,EAAE,8BAA8B;IACnD,gBAAgB,EAAE,oBAAoB;IACtC,gBAAgB,EAAE,2BAA2B;IAC7C,mBAAmB,EACjB,sFAAsF;IACxF,kBAAkB,EAAE,uBAAuB;IAC3C,cAAc,EAAE,yBAAyB;IACzC,QAAQ,EAAE,WAAW;IACrB,oBAAoB,EAClB,0DAA0D;IAC5D,iBAAiB,EACf,yFAAyF;IAC3F,aAAa,EACX,8EAA8E;IAEhF,0BAA0B;IAC1B,sBAAsB,EAAE,6BAA6B;IACrD,aAAa,EAAE,sCAAsC;IACrD,kBAAkB,EAChB,2DAA2D;IAC7D,yBAAyB,EAAE,sCAAsC;IACjE,qBAAqB,EACnB,mFAAmF;IACrF,oBAAoB,EAAE,yCAAyC;IAE/D,+BAA+B;IAC/B,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,aAAa;IACzB,YAAY,EAAE,gBAAgB;IAE9B,+BAA+B;IAC/B,mBAAmB,EAAE,8BAA8B;IACnD,cAAc,EAAE,2BAA2B;IAC3C,gBAAgB,EAAE,oBAAoB;IACtC,qBAAqB,EAAE,iCAAiC;IACxD,gBAAgB,EAAE,uCAAuC;IACzD,YAAY,EAAE,qCAAqC;IAEnD,wCAAwC;IACxC,aAAa,EAAE,sBAAsB;IACrC,iBAAiB,EAAE,wBAAwB;IAC3C,iBAAiB,EAAE,gBAAgB;IACnC,gBAAgB,EAAE,kCAAkC;IACpD,cAAc,EAAE,iBAAiB;IACjC,oBAAoB,EAAE,uBAAuB;IAC7C,iBAAiB,EAAE;QACjB,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,iBAAiB;KACzB;IACD,oBAAoB,EAAE;QACpB,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,0BAA0B;KAClC;IACD,gCAAgC,EAC9B,uFAAuF;IAEzF,6BAA6B;IAC7B,oBAAoB,EAAE,sBAAsB;IAC5C,aAAa,EAAE,uBAAuB;IACtC,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EACd,6DAA6D;IAC/D,qBAAqB,EACnB,yGAAyG;IAC3G,oBAAoB,EAAE,iCAAiC;IACvD,6BAA6B,EAC3B,yDAAyD;IAC3D,SAAS,EACP,2EAA2E;IAE7E,2BAA2B;IAC3B,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;CACvB,CAAA"}
@@ -1,8 +1,7 @@
1
- "use strict";
2
- const { lambda } = require('./lambda');
3
- const chalk = require('chalk');
4
- const { APP_VERSION } = require('./constants');
5
- const en_locales = () => {
1
+ import { lambda } from './lambda.js';
2
+ import chalk from 'chalk';
3
+ import { getAppVersion } from './constants.js';
4
+ export const en_locales = () => {
6
5
  return {
7
6
  snapshotFailureHeader: 'FAIL',
8
7
  snapshotFailureMessage: 'Library analysis failed',
@@ -53,7 +52,7 @@ const en_locales = () => {
53
52
  failThresholdOptionErrorMessage: 'More than 0 vulnerabilities found',
54
53
  failSeverityOptionErrorMessage: ' FAIL - Results detected vulnerabilities over accepted severity level',
55
54
  constantsSeverity: 'Use with "contrast scan --fail --severity high" or "contrast audit --fail --severity high". Set the severity level to detect vulnerabilities or dependencies. Severity levels are critical, high, medium, low or note.',
56
- constantsHeader: `Contrast CLI @ v${APP_VERSION}`,
55
+ constantsHeader: `Contrast CLI @ v${getAppVersion()}`,
57
56
  configHeader2: 'Config options',
58
57
  clearHeader: '-c, --clear',
59
58
  clearContent: 'Removes stored credentials',
@@ -92,6 +91,7 @@ const en_locales = () => {
92
91
  constantsIgnoreDev: 'Excludes developer dependencies from the results. All dependencies are included by default.',
93
92
  constantsCommands: 'Commands',
94
93
  constantsScanOptions: 'Scan Options',
94
+ constantsAssessOptions: 'Assess Options',
95
95
  constantsAdvancedOptions: 'Advanced',
96
96
  foundExistingProjectScan: 'Found existing project...',
97
97
  projectCreatedScan: 'Project created',
@@ -111,6 +111,7 @@ const en_locales = () => {
111
111
  helpAuthSummary: 'Authenticate Contrast using your Github or Google account OR include credentials if you are an existing licensed Contrast user.',
112
112
  helpAuditSummary: 'Searches for a suitable file in the working directory to perform a security audit of dependencies and returns the results. \n[audit --help for options] Java, .NET, Node, Ruby, Python, Go, PHP are supported. ',
113
113
  helpScanSummary: 'Searches for a .jar, .war, .js, or .zip file in the working directory, uploads files for analysis, and returns the results. \n[scan --help for options] Java, .NET, .NET Core, JavaScript are supported. ',
114
+ assessSummary: 'Reports vulnerabilities found at runtime on a server using the Contrast agent. In beta testing mode.',
114
115
  helpLambdaSummary: 'Performs a static security scan on an AWS lambda function. [lambda --help for options] AWS Lambda - Java & Python are supported. ',
115
116
  helpVersionSummary: 'Displays version of Contrast CLI',
116
117
  helpConfigSummary: 'Displays stored credentials',
@@ -118,6 +119,7 @@ const en_locales = () => {
118
119
  authName: 'auth',
119
120
  auditName: 'audit',
120
121
  scanName: 'scan',
122
+ assessName: 'assess',
121
123
  lambdaName: 'lambda',
122
124
  versionName: 'version',
123
125
  configName: 'config',
@@ -126,6 +128,8 @@ const en_locales = () => {
126
128
  helpLearnSummary: 'Launches Contrast’s Secure Code Learning Hub.',
127
129
  fingerprintName: 'assess repo to see how many languages it can detect. For use in pipeline only.',
128
130
  depthOption: 'can set how deep in the file system the cli looks for language files',
131
+ assessOptionsNotesReporting: 'Enable in case you want to see vulnerabilities marked as NOTES',
132
+ assessOptionsConfigPath: 'An option to provide a path to existing contrast_security.yaml file',
129
133
  scanOptionsLanguageSummary: 'Valid values are JAVA, JAVASCRIPT and DOTNET',
130
134
  scanOptionsTimeoutSummary: 'Time in seconds to wait for scan to complete. Default value is 300 seconds.',
131
135
  scanOptionsFileNameSummary: 'Path of the file you want to scan. If no file is specified, Contrast searches for a .jar, .war, .exe or .zip file in the working directory.',
@@ -158,6 +162,7 @@ const en_locales = () => {
158
162
  searchingScanFileDirectory: 'Searching for file to scan from %s...',
159
163
  searchingAuditFileDirectory: 'Searching for package manager files from %s...',
160
164
  scanHeader: `Contrast Scan CLI`,
165
+ assessHeader: `Contrast Assess CLI`,
161
166
  authHeader: 'Auth',
162
167
  lambdaHeader: 'Contrast Lambda CLI',
163
168
  lambdaSummary: 'Performs static security scan on an AWS Lambda Function.\nProduces CVE (Vulnerable Dependencies) and Least Privilege violations/remediation results.',
@@ -206,10 +211,11 @@ const en_locales = () => {
206
211
  constantsAuditOptions: 'Audit Options',
207
212
  auditOptionsSaveDescription: 'Generate and save an SBOM (Software Bill of Materials)\n',
208
213
  auditOptionsSaveOptionsDescription: 'Valid options are: --save spdx and --save cyclonedx (CycloneDX is the default format.)',
214
+ auditOptionsSaveAuditResultsDescription: 'Save a copy of the audit results in a json file (audit-results.json)',
209
215
  exceededFreeTier: `It looks like you are really loving CodeSec! \nYou have reached the monthly scan limit on the FREE tier. \nPlease contact sales@contrastsecurity.com to upgrade.`,
210
216
  scanNotCompleted: 'Scan not completed. Check for framework and language support here: %s',
211
217
  auditNotCompleted: 'audit not completed. Please try again',
212
- scanNoVulnerabilitiesFound: '🎉 No vulnerabilities found.',
218
+ scanNoVulnerabilitiesFound: '\n🎉 No vulnerabilities found.',
213
219
  scanNoVulnerabilitiesFoundSecureCode: '👍 Your code looks secure.',
214
220
  scanNoVulnerabilitiesFoundGoodWork: ' Keep up the good work.',
215
221
  scanNoFiletypeSpecifiedForSave: 'Please specify file type to save results to, accepted value is SARIF',
@@ -247,6 +253,4 @@ const en_locales = () => {
247
253
  ...lambda
248
254
  };
249
255
  };
250
- module.exports = {
251
- en_locales
252
- };
256
+ //# sourceMappingURL=locales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locales.js","sourceRoot":"","sources":["../../src/constants/locales.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { commandLineDefinitions } from '../cliConstants.js';
2
+ import { getAuth, getFingerprint } from '../utils/paramsUtil/paramHandler.js';
3
+ import { getCommandLineArgsCustom } from '../utils/parsedCLIOptions.js';
4
+ export const getFingerprintConfig = async (contrastConf, command, argv) => {
5
+ let fingerprintParameters = await getCommandLineArgsCustom(contrastConf, command, argv, commandLineDefinitions.fingerprintOptionDefinitions);
6
+ const paramsAuth = getAuth(fingerprintParameters);
7
+ fingerprintParameters = getFingerprint(fingerprintParameters);
8
+ return { ...paramsAuth, ...fingerprintParameters };
9
+ };
10
+ //# sourceMappingURL=fingerprintConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprintConfig.js","sourceRoot":"","sources":["../../src/github/fingerprintConfig.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAEvE,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACxE,IAAI,qBAAqB,GAAG,MAAM,wBAAwB,CACxD,YAAY,EACZ,OAAO,EACP,IAAI,EACJ,sBAAsB,CAAC,4BAA4B,CACpD,CAAA;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACjD,qBAAqB,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAA;IAC7D,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,qBAAqB,EAAE,CAAA;AACpD,CAAC,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { getFingerprintConfig } from './fingerprintConfig.js';
2
+ import { writeResultsToFile } from '../scan/saveResults.js';
3
+ import { getRepoId } from './repoServices.js';
4
+ import { getProjectGroupId } from './projectGroup.js';
5
+ import { autoDetectFingerprintInfo } from '../common/autoDetection.js';
6
+ export const processFingerprint = async (contrastConf, argvMain) => {
7
+ let config = await getFingerprintConfig(contrastConf, 'fingerprint', argvMain);
8
+ config.repositoryId = await getRepoId(config);
9
+ if (config.repositoryId !== '') {
10
+ config.projectGroupId = await getProjectGroupId(config);
11
+ let fingerprint = await autoDetectFingerprintInfo(config.file, config.depth, config);
12
+ if (fingerprint.length === 0) {
13
+ console.log('No supported manifests found');
14
+ process.exit(0);
15
+ }
16
+ let idArray = fingerprint.map(x => x.id);
17
+ await writeResultsToFile(fingerprint, 'fingerPrintInfo.json');
18
+ return console.log(idArray);
19
+ }
20
+ else {
21
+ console.log('No repository Id found');
22
+ process.exit(1);
23
+ }
24
+ };
25
+ //# sourceMappingURL=processFingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processFingerprint.js","sourceRoot":"","sources":["../../src/github/processFingerprint.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAEtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE;IACjE,IAAI,MAAM,GAAG,MAAM,oBAAoB,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAA;IAC9E,MAAM,CAAC,YAAY,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAA;IAC7C,IAAI,MAAM,CAAC,YAAY,KAAK,EAAE,EAAE;QAC9B,MAAM,CAAC,cAAc,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACvD,IAAI,WAAW,GAAG,MAAM,yBAAyB,CAC/C,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CACP,CAAA;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;QAED,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACxC,MAAM,kBAAkB,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;QAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;KAC5B;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC,CAAA"}
@@ -0,0 +1,225 @@
1
+ import { registerOnCliServices, registerProject, registerProjectGroup, retrieveExistingProjectGroupsByOrg, retrieveExistingProjectIdByProjectGroupId, retrieveProjectByOrganizationId } from '../audit/auditRequests.js';
2
+ import { getAppName } from '../audit/auditController.js';
3
+ export const getProjectIdByOrg = async (config) => {
4
+ config.language = config.language === 'NODE' ? 'JAVASCRIPT' : config.language;
5
+ let projectId = '';
6
+ let projectByOrg = await retrieveProjectByOrganization(config);
7
+ if (projectByOrg.data) {
8
+ projectByOrg = projectByOrg.data;
9
+ }
10
+ if (projectByOrg?.length > 0) {
11
+ projectId = getProjectIdFromArray(config, projectByOrg);
12
+ }
13
+ return projectId;
14
+ };
15
+ export const buildNewProjectGroupBody = async (config) => {
16
+ let body = {
17
+ organizationId: config.organizationId
18
+ };
19
+ if (config.repo || config?.repositoryId) {
20
+ body.repositoryId = config.repositoryId;
21
+ body.type = 'REPOSITORY';
22
+ body.name = getProjectGroupNameRepo(config);
23
+ }
24
+ else {
25
+ body.repositoryId = null;
26
+ body.type = 'CLI';
27
+ body.name = getProjectGroupNameCLI(config);
28
+ }
29
+ return body;
30
+ };
31
+ const getProjectGroupNameRepo = config => {
32
+ return config.repositoryName;
33
+ };
34
+ const getProjectGroupNameCLI = config => {
35
+ // file here is actually folder name
36
+ return config.name ? config.name : config.file;
37
+ };
38
+ const getProjectName = config => {
39
+ return config.name ? config.name : config.fileName;
40
+ };
41
+ export const registerNewProjectGroup = async (config) => {
42
+ const builtProjectGroupBody = await buildNewProjectGroupBody(config);
43
+ if (config.repositoryId) {
44
+ builtProjectGroupBody.projects = [];
45
+ }
46
+ else {
47
+ builtProjectGroupBody.projects = createProjectsArray([config]);
48
+ }
49
+ const projectGroupInfoRes = await registerProjectGroup(config, builtProjectGroupBody);
50
+ if (config.debug || config.verbose) {
51
+ console.log('\nRegister ProjectGroup');
52
+ console.log(projectGroupInfoRes.statusCode);
53
+ console.log(projectGroupInfoRes.body);
54
+ }
55
+ if (projectGroupInfoRes.statusCode === 200 ||
56
+ projectGroupInfoRes.statusCode === 201) {
57
+ if (config.debug || config.verbose) {
58
+ console.log('registerProjectGroup - response');
59
+ console.log('response', projectGroupInfoRes.body);
60
+ }
61
+ return projectGroupInfoRes.body.projectGroupId;
62
+ }
63
+ return projectGroupInfoRes;
64
+ };
65
+ const createProjectsArray = params => {
66
+ let projectsArray = [];
67
+ let projects = {};
68
+ params.forEach(param => {
69
+ projects = createProject(param);
70
+ projectsArray.push(projects);
71
+ });
72
+ return projectsArray;
73
+ };
74
+ export const createProject = (param, shortenedProjectName) => {
75
+ return {
76
+ path: param.fileName,
77
+ name: param.repo ? shortenedProjectName : getProjectName(param),
78
+ source: 'SCA',
79
+ language: param.language,
80
+ packageManager: param.packageManager,
81
+ target: 'SCA',
82
+ sourceId: ''
83
+ };
84
+ };
85
+ export const getExistingGroupProjectId = (config, projectGroupsInfoEx) => {
86
+ let existingGroupProjectId = '';
87
+ projectGroupsInfoEx.forEach(i => {
88
+ if (i.repositoryId === config.repositoryId) {
89
+ existingGroupProjectId = i.projectGroupId;
90
+ }
91
+ });
92
+ return existingGroupProjectId;
93
+ };
94
+ const getProjectIdFromArray = (config, array) => {
95
+ if (array.length === 1) {
96
+ return array[0].projectId;
97
+ }
98
+ if (config.name) {
99
+ for (const i of array) {
100
+ //match on name
101
+ if (i.name === config.name) {
102
+ return i.projectId;
103
+ }
104
+ }
105
+ }
106
+ for (const i of array) {
107
+ //match on fileName
108
+ if (i.name === config.fileName) {
109
+ return i.projectId;
110
+ }
111
+ }
112
+ return '';
113
+ };
114
+ const addAdditionalData = (body, data) => {
115
+ body.projectGroupId = data.projectGroupId ? data.projectGroupId : null;
116
+ body.projectGroupName = data.projectGroupName ? data.projectGroupName : null;
117
+ body.projectLanguage = data.projectLanguage ? data.projectLanguage : null;
118
+ body.projectType = data.projectType ? data.projectType : null;
119
+ };
120
+ export const registerProjectIdOnCliServices = async (config, projectId, shortenedProjectName, additionalData = undefined) => {
121
+ const cliServicesBody = {
122
+ projectId: projectId,
123
+ name: config.repo ? shortenedProjectName : getProjectName(config)
124
+ };
125
+ if (additionalData) {
126
+ addAdditionalData(cliServicesBody, additionalData);
127
+ }
128
+ const registerResult = await registerOnCliServices(config, cliServicesBody);
129
+ if (config.debug || config.verbose) {
130
+ console.log('\nregistration on cli services');
131
+ console.log('request body', cliServicesBody);
132
+ console.log('response code', registerResult.statusCode);
133
+ }
134
+ if (registerResult.statusCode === 200 || registerResult.statusCode === 201) {
135
+ return registerResult.body;
136
+ }
137
+ console.log('\nFailed to Register On CLI Services');
138
+ process.exit(1);
139
+ };
140
+ export const registerProjectWithGroupProjectId = async (config, shortenedProjectName) => {
141
+ config.language = config.language === 'NODE' ? 'JAVASCRIPT' : config.language;
142
+ const body = createProject(config, shortenedProjectName);
143
+ const res = await registerProject(config, body);
144
+ if (config.debug || config.verbose) {
145
+ console.log('\nregister Project With Group ProjectId');
146
+ console.log(res.statusCode);
147
+ console.log(res.body);
148
+ }
149
+ return res.body;
150
+ };
151
+ const retrieveExistingProjectIdWithProjectGroupId = async (config, projectGroupId) => {
152
+ const res = await retrieveExistingProjectIdByProjectGroupId(config, projectGroupId);
153
+ if (config.debug || config.verbose) {
154
+ console.log('\nRetrieve Existing ProjectId By ProjectGroupId');
155
+ console.log(res.statusCode);
156
+ console.log(res.body);
157
+ }
158
+ if (res.statusCode === 200) {
159
+ return res.body;
160
+ }
161
+ else {
162
+ return '';
163
+ }
164
+ };
165
+ const retrieveProjectByOrganization = async (config) => {
166
+ const res = await retrieveProjectByOrganizationId(config);
167
+ if (config.debug || config.verbose) {
168
+ console.log('\nRetrieve Project By OrganizationId');
169
+ console.log(res.statusCode);
170
+ console.log(res.body);
171
+ }
172
+ return res.body;
173
+ };
174
+ export const retrieveExistingProjectGroups = async (config) => {
175
+ const res = await retrieveExistingProjectGroupsByOrg(config);
176
+ if (res.statusCode === 200) {
177
+ let results;
178
+ if (res.body.data) {
179
+ results = res.body.data;
180
+ }
181
+ else {
182
+ results = res.body;
183
+ }
184
+ if (config.debug || config.verbose) {
185
+ console.log('retrieve Existing ProjectGroups By Org');
186
+ console.log(res.statusCode);
187
+ console.log(results);
188
+ }
189
+ const correctGroupID = results.filter(i => i.repositoryId === config.repositoryId);
190
+ if (correctGroupID.length > 0) {
191
+ return correctGroupID[0].projectGroupId;
192
+ }
193
+ else {
194
+ return '';
195
+ }
196
+ }
197
+ else {
198
+ if (config.debug || config.verbose) {
199
+ console.log('retrieve Existing ProjectGroups By Org');
200
+ console.log(res.statusCode);
201
+ }
202
+ return '';
203
+ }
204
+ };
205
+ export const getProjectGroupId = async (config) => {
206
+ let projectGroupId = '';
207
+ if (config.projectGroupId === '' || config.projectGroupId === undefined) {
208
+ projectGroupId = await retrieveExistingProjectGroups(config);
209
+ }
210
+ if (projectGroupId === '') {
211
+ projectGroupId = await registerNewProjectGroup(config);
212
+ }
213
+ return projectGroupId;
214
+ };
215
+ export const dealWithNoName = async (config) => {
216
+ try {
217
+ config.name = getAppName(config.file);
218
+ }
219
+ catch (e) {
220
+ console.log(e.message.toString());
221
+ process.exit(1);
222
+ }
223
+ return config;
224
+ };
225
+ //# sourceMappingURL=projectGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectGroup.js","sourceRoot":"","sources":["../../src/github/projectGroup.js"],"names":[],"mappings":"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"}