@contrast/contrast 2.0.2-beta.2 → 2.0.2-beta.4

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 (358) hide show
  1. package/README.md +51 -1
  2. package/dist/audit/catalogueApplication/catalogueApplication.js +6 -10
  3. package/dist/audit/catalogueApplication/catalogueApplication.js.map +1 -0
  4. package/dist/audit/languageAnalysisEngine/commonApi.js +3 -6
  5. package/dist/audit/languageAnalysisEngine/commonApi.js.map +1 -0
  6. package/dist/audit/languageAnalysisEngine/filterProjectPath.js +1 -0
  7. package/dist/audit/languageAnalysisEngine/filterProjectPath.js.map +1 -0
  8. package/dist/audit/languageAnalysisEngine/getProjectRootFilenames.js +9 -12
  9. package/dist/audit/languageAnalysisEngine/getProjectRootFilenames.js.map +1 -0
  10. package/dist/audit/languageAnalysisEngine/sendSnapshot.js +15 -19
  11. package/dist/audit/languageAnalysisEngine/sendSnapshot.js.map +1 -0
  12. package/dist/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js +9 -9
  13. package/dist/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js.map +1 -0
  14. package/dist/audit/report/commonReportingFunctions.js +33 -48
  15. package/dist/audit/report/commonReportingFunctions.js.map +1 -0
  16. package/dist/audit/report/models/reportGuidanceModel.js +2 -5
  17. package/dist/audit/report/models/reportGuidanceModel.js.map +1 -0
  18. package/dist/audit/report/models/reportLibraryModel.js +3 -7
  19. package/dist/audit/report/models/reportLibraryModel.js.map +1 -0
  20. package/dist/audit/report/models/reportListModel.js +4 -9
  21. package/dist/audit/report/models/reportListModel.js.map +1 -0
  22. package/dist/audit/report/models/reportOutputModel.js +4 -9
  23. package/dist/audit/report/models/reportOutputModel.js.map +1 -0
  24. package/dist/audit/report/models/reportSeverityModel.js +2 -5
  25. package/dist/audit/report/models/reportSeverityModel.js.map +1 -0
  26. package/dist/audit/report/models/severityCountModel.js +3 -5
  27. package/dist/audit/report/models/severityCountModel.js.map +1 -0
  28. package/dist/audit/report/reportingFeature.js +27 -55
  29. package/dist/audit/report/reportingFeature.js.map +1 -0
  30. package/dist/audit/report/utils/reportUtils.js +28 -59
  31. package/dist/audit/report/utils/reportUtils.js.map +1 -0
  32. package/dist/audit/save.js +14 -16
  33. package/dist/audit/save.js.map +1 -0
  34. package/dist/cliConstants.js +17 -18
  35. package/dist/cliConstants.js.map +1 -0
  36. package/dist/commands/audit/auditConfig.js +7 -10
  37. package/dist/commands/audit/auditConfig.js.map +1 -0
  38. package/dist/commands/audit/auditController.js +9 -13
  39. package/dist/commands/audit/auditController.js.map +1 -0
  40. package/dist/commands/audit/help.js +23 -25
  41. package/dist/commands/audit/help.js.map +1 -0
  42. package/dist/commands/audit/processAudit.js +9 -12
  43. package/dist/commands/audit/processAudit.js.map +1 -0
  44. package/dist/commands/audit/saveFile.js +3 -6
  45. package/dist/commands/audit/saveFile.js.map +1 -0
  46. package/dist/commands/auth/auth.js +25 -24
  47. package/dist/commands/auth/auth.js.map +1 -0
  48. package/dist/commands/config/config.js +12 -13
  49. package/dist/commands/config/config.js.map +1 -0
  50. package/dist/commands/github/fingerprintConfig.js +8 -11
  51. package/dist/commands/github/fingerprintConfig.js.map +1 -0
  52. package/dist/commands/github/processFingerprint.js +12 -15
  53. package/dist/commands/github/processFingerprint.js.map +1 -0
  54. package/dist/commands/github/projectGroup.js +25 -32
  55. package/dist/commands/github/projectGroup.js.map +1 -0
  56. package/dist/commands/github/repoServices.js +11 -21
  57. package/dist/commands/github/repoServices.js.map +1 -0
  58. package/dist/commands/learn/learn.js +3 -6
  59. package/dist/commands/learn/learn.js.map +1 -0
  60. package/dist/commands/learn/processLearn.js +3 -6
  61. package/dist/commands/learn/processLearn.js.map +1 -0
  62. package/dist/commands/scan/processScan.js +11 -14
  63. package/dist/commands/scan/processScan.js.map +1 -0
  64. package/dist/common/HTTPClient.js +123 -94
  65. package/dist/common/HTTPClient.js.map +1 -0
  66. package/dist/common/autoDetection.js +26 -33
  67. package/dist/common/autoDetection.js.map +1 -0
  68. package/dist/common/baseRequest.js +14 -18
  69. package/dist/common/baseRequest.js.map +1 -0
  70. package/dist/common/commonHelp.js +13 -13
  71. package/dist/common/commonHelp.js.map +1 -0
  72. package/dist/common/errorHandling.js +30 -39
  73. package/dist/common/errorHandling.js.map +1 -0
  74. package/dist/common/fail.js +6 -12
  75. package/dist/common/fail.js.map +1 -0
  76. package/dist/common/versionChecker.js +16 -19
  77. package/dist/common/versionChecker.js.map +1 -0
  78. package/dist/constants/constants.js +44 -65
  79. package/dist/constants/constants.js.map +1 -0
  80. package/dist/constants/lambda.js +8 -5
  81. package/dist/constants/lambda.js.map +1 -0
  82. package/dist/constants/locales.js +6 -9
  83. package/dist/constants/locales.js.map +1 -0
  84. package/dist/index.js +36 -39
  85. package/dist/index.js.map +1 -0
  86. package/dist/lambda/analytics.js +6 -9
  87. package/dist/lambda/analytics.js.map +1 -0
  88. package/dist/lambda/arn.js +6 -9
  89. package/dist/lambda/arn.js.map +1 -0
  90. package/dist/lambda/aws.js +29 -34
  91. package/dist/lambda/aws.js.map +1 -0
  92. package/dist/lambda/cliError.js +13 -41
  93. package/dist/lambda/cliError.js.map +1 -0
  94. package/dist/lambda/constants.js +3 -4
  95. package/dist/lambda/constants.js.map +1 -0
  96. package/dist/lambda/help.js +39 -44
  97. package/dist/lambda/help.js.map +1 -0
  98. package/dist/lambda/lambda.js +61 -65
  99. package/dist/lambda/lambda.js.map +1 -0
  100. package/dist/lambda/lambdaUtils.js +38 -32
  101. package/dist/lambda/lambdaUtils.js.map +1 -0
  102. package/dist/lambda/logUtils.js +21 -17
  103. package/dist/lambda/logUtils.js.map +1 -0
  104. package/dist/lambda/scanDetailCompletion.js +19 -25
  105. package/dist/lambda/scanDetailCompletion.js.map +1 -0
  106. package/dist/lambda/scanRequest.js +34 -41
  107. package/dist/lambda/scanRequest.js.map +1 -0
  108. package/dist/lambda/scanResults.js +8 -10
  109. package/dist/lambda/scanResults.js.map +1 -0
  110. package/dist/lambda/types.js +5 -7
  111. package/dist/lambda/types.js.map +1 -0
  112. package/dist/lambda/utils.js +33 -35
  113. package/dist/lambda/utils.js.map +1 -0
  114. package/dist/sbom/generateSbom.js +6 -10
  115. package/dist/sbom/generateSbom.js.map +1 -0
  116. package/dist/scaAnalysis/common/auditReport.js +8 -12
  117. package/dist/scaAnalysis/common/auditReport.js.map +1 -0
  118. package/dist/scaAnalysis/common/commonReportingFunctionsSca.js +26 -32
  119. package/dist/scaAnalysis/common/commonReportingFunctionsSca.js.map +1 -0
  120. package/dist/scaAnalysis/common/formatMessage.js +8 -17
  121. package/dist/scaAnalysis/common/formatMessage.js.map +1 -0
  122. package/dist/scaAnalysis/common/models/ScaReportModel.js +4 -9
  123. package/dist/scaAnalysis/common/models/ScaReportModel.js.map +1 -0
  124. package/dist/scaAnalysis/common/scaParserForGoAndJava.js +10 -9
  125. package/dist/scaAnalysis/common/scaParserForGoAndJava.js.map +1 -0
  126. package/dist/scaAnalysis/common/scaServicesUpload.js +21 -22
  127. package/dist/scaAnalysis/common/scaServicesUpload.js.map +1 -0
  128. package/dist/scaAnalysis/common/treeUpload.js +7 -10
  129. package/dist/scaAnalysis/common/treeUpload.js.map +1 -0
  130. package/dist/scaAnalysis/common/utils/reportUtilsSca.js +21 -29
  131. package/dist/scaAnalysis/common/utils/reportUtilsSca.js.map +1 -0
  132. package/dist/scaAnalysis/dotnet/analysis.js +12 -18
  133. package/dist/scaAnalysis/dotnet/analysis.js.map +1 -0
  134. package/dist/scaAnalysis/dotnet/index.js +4 -7
  135. package/dist/scaAnalysis/dotnet/index.js.map +1 -0
  136. package/dist/scaAnalysis/go/goAnalysis.js +8 -11
  137. package/dist/scaAnalysis/go/goAnalysis.js.map +1 -0
  138. package/dist/scaAnalysis/go/goParseDeps.js +9 -7
  139. package/dist/scaAnalysis/go/goParseDeps.js.map +1 -0
  140. package/dist/scaAnalysis/go/goReadDepFile.js +10 -8
  141. package/dist/scaAnalysis/go/goReadDepFile.js.map +1 -0
  142. package/dist/scaAnalysis/java/analysis.js +23 -20
  143. package/dist/scaAnalysis/java/analysis.js.map +1 -0
  144. package/dist/scaAnalysis/java/index.js +7 -10
  145. package/dist/scaAnalysis/java/index.js.map +1 -0
  146. package/dist/scaAnalysis/java/javaBuildDepsParser.js +43 -43
  147. package/dist/scaAnalysis/java/javaBuildDepsParser.js.map +1 -0
  148. package/dist/scaAnalysis/javascript/analysis.js +16 -20
  149. package/dist/scaAnalysis/javascript/analysis.js.map +1 -0
  150. package/dist/scaAnalysis/javascript/index.js +17 -19
  151. package/dist/scaAnalysis/javascript/index.js.map +1 -0
  152. package/dist/scaAnalysis/javascript/scaServiceParser.js +8 -15
  153. package/dist/scaAnalysis/javascript/scaServiceParser.js.map +1 -0
  154. package/dist/scaAnalysis/legacy/legacyFlow.js +13 -15
  155. package/dist/scaAnalysis/legacy/legacyFlow.js.map +1 -0
  156. package/dist/scaAnalysis/php/analysis.js +15 -16
  157. package/dist/scaAnalysis/php/analysis.js.map +1 -0
  158. package/dist/scaAnalysis/php/index.js +5 -8
  159. package/dist/scaAnalysis/php/index.js.map +1 -0
  160. package/dist/scaAnalysis/php/phpNewServicesMapper.js +9 -12
  161. package/dist/scaAnalysis/php/phpNewServicesMapper.js.map +1 -0
  162. package/dist/scaAnalysis/processServicesFlow.js +50 -25
  163. package/dist/scaAnalysis/processServicesFlow.js.map +1 -0
  164. package/dist/scaAnalysis/python/analysis.js +16 -23
  165. package/dist/scaAnalysis/python/analysis.js.map +1 -0
  166. package/dist/scaAnalysis/python/index.js +4 -7
  167. package/dist/scaAnalysis/python/index.js.map +1 -0
  168. package/dist/scaAnalysis/repoMode/gradleParser.js +7 -13
  169. package/dist/scaAnalysis/repoMode/gradleParser.js.map +1 -0
  170. package/dist/scaAnalysis/repoMode/index.js +9 -12
  171. package/dist/scaAnalysis/repoMode/index.js.map +1 -0
  172. package/dist/scaAnalysis/repoMode/mavenParser.js +12 -12
  173. package/dist/scaAnalysis/repoMode/mavenParser.js.map +1 -0
  174. package/dist/scaAnalysis/ruby/analysis.js +32 -46
  175. package/dist/scaAnalysis/ruby/analysis.js.map +1 -0
  176. package/dist/scaAnalysis/ruby/index.js +5 -8
  177. package/dist/scaAnalysis/ruby/index.js.map +1 -0
  178. package/dist/scaAnalysis/scaAnalysis.js +49 -51
  179. package/dist/scaAnalysis/scaAnalysis.js.map +1 -0
  180. package/dist/scan/fileUtils.js +27 -36
  181. package/dist/scan/fileUtils.js.map +1 -0
  182. package/dist/scan/formatScanOutput.js +47 -61
  183. package/dist/scan/formatScanOutput.js.map +1 -0
  184. package/dist/scan/help.js +8 -11
  185. package/dist/scan/help.js.map +1 -0
  186. package/dist/scan/models/groupedResultsModel.js +2 -5
  187. package/dist/scan/models/groupedResultsModel.js.map +1 -0
  188. package/dist/scan/models/resultContentModel.js +2 -2
  189. package/dist/scan/models/resultContentModel.js.map +1 -0
  190. package/dist/scan/models/scanResultsModel.js +2 -5
  191. package/dist/scan/models/scanResultsModel.js.map +1 -0
  192. package/dist/scan/populateProjectIdAndProjectName.js +9 -12
  193. package/dist/scan/populateProjectIdAndProjectName.js.map +1 -0
  194. package/dist/scan/saveResults.js +3 -6
  195. package/dist/scan/saveResults.js.map +1 -0
  196. package/dist/scan/scan.js +24 -31
  197. package/dist/scan/scan.js.map +1 -0
  198. package/dist/scan/scanConfig.js +14 -12
  199. package/dist/scan/scanConfig.js.map +1 -0
  200. package/dist/scan/scanController.js +17 -20
  201. package/dist/scan/scanController.js.map +1 -0
  202. package/dist/scan/scanResults.js +27 -34
  203. package/dist/scan/scanResults.js.map +1 -0
  204. package/dist/telemetry/telemetry.js +29 -59
  205. package/dist/telemetry/telemetry.js.map +1 -0
  206. package/dist/utils/capabilities.js +1 -0
  207. package/dist/utils/capabilities.js.map +1 -0
  208. package/dist/utils/commonApi.js +15 -24
  209. package/dist/utils/commonApi.js.map +1 -0
  210. package/dist/utils/filterProjectPath.js +1 -0
  211. package/dist/utils/filterProjectPath.js.map +1 -0
  212. package/dist/utils/generalAPI.js +11 -17
  213. package/dist/utils/generalAPI.js.map +1 -0
  214. package/dist/utils/getConfig.js +7 -13
  215. package/dist/utils/getConfig.js.map +1 -0
  216. package/dist/utils/oraWrapper.js +7 -14
  217. package/dist/utils/oraWrapper.js.map +1 -0
  218. package/dist/utils/paramsUtil/commandlineParams.js +2 -5
  219. package/dist/utils/paramsUtil/commandlineParams.js.map +1 -0
  220. package/dist/utils/paramsUtil/configStoreParams.js +9 -10
  221. package/dist/utils/paramsUtil/configStoreParams.js.map +1 -0
  222. package/dist/utils/paramsUtil/envVariableParams.js +2 -3
  223. package/dist/utils/paramsUtil/envVariableParams.js.map +1 -0
  224. package/dist/utils/paramsUtil/paramHandler.js +12 -13
  225. package/dist/utils/paramsUtil/paramHandler.js.map +1 -0
  226. package/dist/utils/parsedCLIOptions.js +4 -7
  227. package/dist/utils/parsedCLIOptions.js.map +1 -0
  228. package/dist/utils/requestUtils.js +7 -13
  229. package/dist/utils/requestUtils.js.map +1 -0
  230. package/dist/utils/saveFile.js +8 -11
  231. package/dist/utils/saveFile.js.map +1 -0
  232. package/dist/utils/validationCheck.js +5 -11
  233. package/dist/utils/validationCheck.js.map +1 -0
  234. package/package.json +32 -41
  235. package/.prettierignore +0 -1
  236. package/bin/contrast.js +0 -2
  237. package/dist/audit/languageAnalysisEngine/util/requestUtils.js +0 -14
  238. package/dist/lambda/__mocks__/aws.js +0 -21
  239. package/dist/lambda/__mocks__/lambdaConfig.json +0 -42
  240. package/src/audit/catalogueApplication/catalogueApplication.js +0 -51
  241. package/src/audit/languageAnalysisEngine/commonApi.js +0 -20
  242. package/src/audit/languageAnalysisEngine/filterProjectPath.js +0 -21
  243. package/src/audit/languageAnalysisEngine/getProjectRootFilenames.js +0 -36
  244. package/src/audit/languageAnalysisEngine/sendSnapshot.js +0 -57
  245. package/src/audit/languageAnalysisEngine/util/requestUtils.js +0 -17
  246. package/src/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js +0 -63
  247. package/src/audit/report/commonReportingFunctions.js +0 -412
  248. package/src/audit/report/models/reportGuidanceModel.ts +0 -5
  249. package/src/audit/report/models/reportLibraryModel.ts +0 -30
  250. package/src/audit/report/models/reportListModel.ts +0 -49
  251. package/src/audit/report/models/reportOutputModel.ts +0 -29
  252. package/src/audit/report/models/reportSeverityModel.ts +0 -18
  253. package/src/audit/report/models/severityCountModel.ts +0 -22
  254. package/src/audit/report/reportingFeature.ts +0 -110
  255. package/src/audit/report/utils/reportUtils.ts +0 -165
  256. package/src/audit/save.js +0 -67
  257. package/src/cliConstants.js +0 -523
  258. package/src/commands/audit/auditConfig.js +0 -18
  259. package/src/commands/audit/auditController.js +0 -50
  260. package/src/commands/audit/help.js +0 -72
  261. package/src/commands/audit/processAudit.js +0 -34
  262. package/src/commands/audit/saveFile.js +0 -15
  263. package/src/commands/auth/auth.js +0 -146
  264. package/src/commands/config/config.js +0 -41
  265. package/src/commands/github/fingerprintConfig.js +0 -19
  266. package/src/commands/github/processFingerprint.js +0 -37
  267. package/src/commands/github/projectGroup.js +0 -298
  268. package/src/commands/github/repoServices.js +0 -122
  269. package/src/commands/learn/learn.js +0 -10
  270. package/src/commands/learn/processLearn.js +0 -13
  271. package/src/commands/scan/processScan.js +0 -42
  272. package/src/common/HTTPClient.js +0 -775
  273. package/src/common/autoDetection.js +0 -209
  274. package/src/common/baseRequest.ts +0 -83
  275. package/src/common/commonHelp.js +0 -53
  276. package/src/common/errorHandling.js +0 -157
  277. package/src/common/fail.js +0 -79
  278. package/src/common/versionChecker.js +0 -75
  279. package/src/constants/constants.js +0 -71
  280. package/src/constants/lambda.js +0 -85
  281. package/src/constants/locales.js +0 -365
  282. package/src/index.ts +0 -142
  283. package/src/lambda/__mocks__/aws.ts +0 -32
  284. package/src/lambda/__mocks__/lambdaConfig.json +0 -42
  285. package/src/lambda/analytics.ts +0 -9
  286. package/src/lambda/arn.ts +0 -33
  287. package/src/lambda/aws.ts +0 -248
  288. package/src/lambda/cliError.ts +0 -72
  289. package/src/lambda/constants.ts +0 -11
  290. package/src/lambda/help.ts +0 -92
  291. package/src/lambda/lambda.ts +0 -230
  292. package/src/lambda/lambdaUtils.ts +0 -111
  293. package/src/lambda/logUtils.ts +0 -64
  294. package/src/lambda/scanDetailCompletion.ts +0 -78
  295. package/src/lambda/scanRequest.ts +0 -169
  296. package/src/lambda/scanResults.ts +0 -29
  297. package/src/lambda/types.ts +0 -36
  298. package/src/lambda/utils.ts +0 -188
  299. package/src/sbom/generateSbom.ts +0 -45
  300. package/src/scaAnalysis/common/auditReport.js +0 -59
  301. package/src/scaAnalysis/common/commonReportingFunctionsSca.js +0 -276
  302. package/src/scaAnalysis/common/formatMessage.js +0 -67
  303. package/src/scaAnalysis/common/models/ScaReportModel.ts +0 -81
  304. package/src/scaAnalysis/common/scaParserForGoAndJava.js +0 -41
  305. package/src/scaAnalysis/common/scaServicesUpload.js +0 -159
  306. package/src/scaAnalysis/common/treeUpload.js +0 -51
  307. package/src/scaAnalysis/common/utils/reportUtilsSca.ts +0 -123
  308. package/src/scaAnalysis/dotnet/analysis.js +0 -72
  309. package/src/scaAnalysis/dotnet/index.js +0 -11
  310. package/src/scaAnalysis/go/goAnalysis.js +0 -26
  311. package/src/scaAnalysis/go/goParseDeps.js +0 -203
  312. package/src/scaAnalysis/go/goReadDepFile.js +0 -34
  313. package/src/scaAnalysis/java/analysis.js +0 -148
  314. package/src/scaAnalysis/java/index.js +0 -29
  315. package/src/scaAnalysis/java/javaBuildDepsParser.js +0 -439
  316. package/src/scaAnalysis/javascript/analysis.js +0 -111
  317. package/src/scaAnalysis/javascript/index.js +0 -104
  318. package/src/scaAnalysis/javascript/scaServiceParser.js +0 -151
  319. package/src/scaAnalysis/legacy/legacyFlow.js +0 -43
  320. package/src/scaAnalysis/php/analysis.js +0 -78
  321. package/src/scaAnalysis/php/index.js +0 -28
  322. package/src/scaAnalysis/php/phpNewServicesMapper.js +0 -77
  323. package/src/scaAnalysis/processServicesFlow.js +0 -126
  324. package/src/scaAnalysis/python/analysis.js +0 -93
  325. package/src/scaAnalysis/python/index.js +0 -16
  326. package/src/scaAnalysis/repoMode/gradleParser.js +0 -88
  327. package/src/scaAnalysis/repoMode/index.js +0 -21
  328. package/src/scaAnalysis/repoMode/mavenParser.js +0 -138
  329. package/src/scaAnalysis/ruby/analysis.js +0 -413
  330. package/src/scaAnalysis/ruby/index.js +0 -16
  331. package/src/scaAnalysis/scaAnalysis.js +0 -172
  332. package/src/scan/fileUtils.js +0 -218
  333. package/src/scan/formatScanOutput.ts +0 -225
  334. package/src/scan/help.js +0 -56
  335. package/src/scan/models/groupedResultsModel.ts +0 -20
  336. package/src/scan/models/resultContentModel.ts +0 -86
  337. package/src/scan/models/scanResultsModel.ts +0 -55
  338. package/src/scan/populateProjectIdAndProjectName.js +0 -73
  339. package/src/scan/saveResults.js +0 -14
  340. package/src/scan/scan.ts +0 -68
  341. package/src/scan/scanConfig.js +0 -58
  342. package/src/scan/scanController.js +0 -98
  343. package/src/scan/scanResults.js +0 -171
  344. package/src/telemetry/telemetry.ts +0 -154
  345. package/src/utils/capabilities.js +0 -12
  346. package/src/utils/commonApi.js +0 -103
  347. package/src/utils/filterProjectPath.js +0 -25
  348. package/src/utils/generalAPI.js +0 -52
  349. package/src/utils/getConfig.ts +0 -34
  350. package/src/utils/oraWrapper.js +0 -29
  351. package/src/utils/paramsUtil/commandlineParams.js +0 -12
  352. package/src/utils/paramsUtil/configStoreParams.js +0 -19
  353. package/src/utils/paramsUtil/envVariableParams.js +0 -10
  354. package/src/utils/paramsUtil/paramHandler.js +0 -38
  355. package/src/utils/parsedCLIOptions.js +0 -32
  356. package/src/utils/requestUtils.js +0 -29
  357. package/src/utils/saveFile.js +0 -20
  358. package/src/utils/validationCheck.js +0 -39
@@ -1,154 +0,0 @@
1
- import { getHttpClient } from '../utils/commonApi'
2
- import * as crypto from 'crypto'
3
- import { ContrastConf } from '../utils/getConfig'
4
-
5
- export const TELEMETRY_CLI_COMMANDS_EVENT = 'CLI_COMMANDS'
6
- export const TELEMETRY_CLI_TIME_TO_AUTH_EVENT = 'CLI_TIME_TO_AUTH'
7
-
8
- export const sendTelemetryConfigAsConfObj = async (
9
- config: ContrastConf,
10
- command: string,
11
- argv: string[],
12
- result: string,
13
- language: string
14
- ) => {
15
- const hostParam = '--host'
16
- const hostParamAlias = '-h'
17
- const orgIdParam = '--organization-id'
18
- const orgIdParamAlias = '-o'
19
- const authParam = '--authorization'
20
- const apiKeyParam = '--api-key'
21
-
22
- let configToUse
23
-
24
- if (
25
- paramExists(argv, hostParam, hostParamAlias) &&
26
- paramExists(argv, orgIdParam, orgIdParamAlias) &&
27
- paramExists(argv, authParam, null) &&
28
- paramExists(argv, apiKeyParam, null)
29
- ) {
30
- //if the user has passed the values as params
31
- configToUse = {
32
- host: findParamValueFromArgs(argv, hostParam, hostParamAlias),
33
- organizationId: findParamValueFromArgs(argv, orgIdParam, orgIdParamAlias),
34
- authorization: findParamValueFromArgs(argv, authParam, null),
35
- apiKey: findParamValueFromArgs(argv, apiKeyParam, null)
36
- }
37
- } else if (
38
- config &&
39
- config.get('host') &&
40
- config.get('organizationId') &&
41
- config.get('authorization') &&
42
- config.get('apiKey')
43
- ) {
44
- configToUse = {
45
- host: config.get('host')?.slice(0, -1), //slice off extra / in url, will 404 on teamserver if we don't
46
- organizationId: config.get('organizationId'),
47
- authorization: config.get('authorization'),
48
- apiKey: config.get('apiKey')
49
- }
50
- } else {
51
- //return when unable to get config
52
- return
53
- }
54
-
55
- return await sendTelemetryConfigAsObject(
56
- configToUse,
57
- command,
58
- argv,
59
- result,
60
- language
61
- )
62
- }
63
-
64
- export const sendTelemetryConfigAsObject = async (
65
- config: any,
66
- command: string,
67
- argv: string[],
68
- result: string,
69
- language: string
70
- ) => {
71
- const obfuscatedParams = obfuscateParams(argv)
72
-
73
- const requestBody = {
74
- event: TELEMETRY_CLI_COMMANDS_EVENT,
75
- details: {
76
- ip_address: '',
77
- account_name: '',
78
- account_host: '',
79
- company_domain: '',
80
- command: `contrast ${command} ${obfuscatedParams}`,
81
- app_id:
82
- config && config.applicationId
83
- ? sha1Base64Value(config.applicationId)
84
- : 'undefined',
85
- project_id:
86
- config && config.projectId
87
- ? sha1Base64Value(config.projectId)
88
- : 'undefined',
89
- language: language,
90
- result: result,
91
- additional_info: '',
92
- timestamp: new Date().toUTCString()
93
- }
94
- }
95
-
96
- return await sendTelemetryRequest(config, requestBody)
97
- }
98
-
99
- export const sendTelemetryRequest = async (config: any, requestBody: any) => {
100
- const client = getHttpClient(config)
101
- return client
102
- .postTelemetry(config, requestBody)
103
- .then((res: any) => {
104
- if (res.statusCode !== 200 && config.debug === true) {
105
- console.log('Telemetry failed to send with status', res.statusCode)
106
- }
107
- return { statusCode: res.statusCode, statusMessage: res.statusMessage }
108
- })
109
- .catch((err: any) => {
110
- return
111
- })
112
- }
113
-
114
- export const obfuscateParams = (argv: string[]) => {
115
- return argv
116
- .join(' ')
117
- .replace(/--(authorization [A-Z0-9]+)/gi, '--authorization *****')
118
- .replace(/-(o [A-Z0-9-]+)/gi, '-o *****')
119
- .replace(/--(organization-id [A-Z0-9-]+)/gi, '--organization-id *****')
120
- .replace(/--(api-key [A-Z0-9]+)/gi, '--api-key *****')
121
- }
122
-
123
- export const paramExists = (
124
- argv: string[],
125
- param: string,
126
- paramAlias: string | null
127
- ) => {
128
- return argv.find((arg: string) => arg === param || arg === paramAlias)
129
- }
130
-
131
- export const findParamValueFromArgs = (
132
- argv: string[],
133
- param: string,
134
- paramAlias: string | null
135
- ) => {
136
- let paramAsValue
137
-
138
- argv.forEach((arg: string, index: number) => {
139
- if (
140
- arg === param ||
141
- (arg === paramAlias &&
142
- argv[index + 1] !== undefined &&
143
- argv[index + 1] !== null)
144
- ) {
145
- paramAsValue = argv[index + 1]
146
- }
147
- })
148
-
149
- return paramAsValue
150
- }
151
-
152
- export const sha1Base64Value = (value: any) => {
153
- return crypto.createHash('sha1').update(value).digest('base64')
154
- }
@@ -1,12 +0,0 @@
1
- const CLI_IGNORE_DEV_DEPS = 'CLI_IGNORE_DEV_DEPS'
2
-
3
- const featuresTeamServer = [
4
- {
5
- CLI_IGNORE_DEV_DEPS: '3.9.0'
6
- }
7
- ]
8
-
9
- module.exports = {
10
- featuresTeamServer,
11
- CLI_IGNORE_DEV_DEPS
12
- }
@@ -1,103 +0,0 @@
1
- const HttpClient = require('./../common/HTTPClient')
2
- const {
3
- badRequestError,
4
- unauthenticatedError,
5
- forbiddenError,
6
- proxyError,
7
- genericError,
8
- maxAppError,
9
- snapshotFailureError,
10
- vulnerabilitiesFailureError,
11
- reportFailureError,
12
- parametersError,
13
- invalidHostNameError
14
- } = require('../common/errorHandling')
15
- const { performance } = require('perf_hooks')
16
- const requestUtils = require('./requestUtils')
17
- const oraFunctions = require('./oraWrapper')
18
-
19
- const getTimeout = config => {
20
- if (config.timeout) {
21
- return config.timeout
22
- } else {
23
- if (config.verbose) {
24
- console.log('Timeout set to 5 minutes')
25
- }
26
- return 300
27
- }
28
- }
29
-
30
- const handleTimeout = (startTime, timeout, reportSpinner) => {
31
- const endTime = performance.now() - startTime
32
- if (requestUtils.millisToSeconds(endTime) > timeout) {
33
- oraFunctions.failSpinner(
34
- reportSpinner,
35
- 'Contrast audit timed out at the specified timeout of ' +
36
- timeout +
37
- ' seconds.'
38
- )
39
- throw new Error('You can update the timeout using --timeout')
40
- }
41
- }
42
- const handleResponseErrors = (res, api) => {
43
- if (res.statusCode === 400) {
44
- api === 'catalogue' ? badRequestError(true) : badRequestError(false)
45
- } else if (res.statusCode === 401) {
46
- unauthenticatedError()
47
- } else if (res.statusCode === 403) {
48
- forbiddenError()
49
- } else if (res.statusCode === 407) {
50
- proxyError()
51
- } else if (res.statusCode === 412) {
52
- maxAppError()
53
- } else if (res.statusCode === 301) {
54
- invalidHostNameError(res.statusCode)
55
- } else if (res.statusCode === 302) {
56
- parametersError(res.statusCode)
57
- } else {
58
- if (api === 'snapshot' || api === 'catalogue') {
59
- snapshotFailureError()
60
- }
61
- if (api === 'vulnerabilities') {
62
- vulnerabilitiesFailureError()
63
- }
64
- if (api === 'report') {
65
- reportFailureError()
66
- }
67
- console.log(res.statusCode)
68
- genericError(res)
69
- }
70
- }
71
-
72
- const getProtocol = host => {
73
- const hasProtocol =
74
- host.toLowerCase().includes('https://') ||
75
- host.toLowerCase().includes('http://')
76
- return hasProtocol ? host : 'https://' + host
77
- }
78
-
79
- const getPath = host => {
80
- const hasContrastPath = host.toLowerCase().endsWith('/contrast')
81
- return hasContrastPath
82
- ? host.toLowerCase().substring(0, host.length - 9)
83
- : host.replace(/\/*$/, '')
84
- }
85
-
86
- const getValidHost = host => {
87
- const correctProtocol = getProtocol(host)
88
- return getPath(correctProtocol)
89
- }
90
-
91
- const getHttpClient = config => {
92
- return new HttpClient(config)
93
- }
94
-
95
- module.exports = {
96
- getPath: getPath,
97
- getValidHost: getValidHost,
98
- getProtocol: getProtocol,
99
- handleResponseErrors: handleResponseErrors,
100
- getHttpClient: getHttpClient,
101
- handleTimeout: handleTimeout,
102
- getTimeout: getTimeout
103
- }
@@ -1,25 +0,0 @@
1
- const path = require('path')
2
- const child_process = require('child_process')
3
-
4
- function resolveFilePath(filepath) {
5
- if (filepath[0] === '~') {
6
- return path.join(process.env.HOME, filepath.slice(1))
7
- }
8
- return filepath
9
- }
10
-
11
- const returnProjectPath = () => {
12
- if (process.platform == 'win32') {
13
- let winPath = child_process.execSync('cd').toString()
14
- return winPath.replace(/\//g, '\\').trim()
15
- } else if (process.env.PWD !== (undefined || null || 'undefined')) {
16
- return process.env.PWD
17
- } else {
18
- return process.argv[process.argv.indexOf('--file') + 1]
19
- }
20
- }
21
-
22
- module.exports = {
23
- returnProjectPath: returnProjectPath,
24
- resolveFilePath: resolveFilePath
25
- }
@@ -1,52 +0,0 @@
1
- const { featuresTeamServer } = require('./capabilities')
2
- const semver = require('semver')
3
- const commonApi = require('./commonApi')
4
- const { isNil } = require('lodash')
5
-
6
- const getGlobalProperties = async config => {
7
- const client = commonApi.getHttpClient(config)
8
- return client
9
- .getGlobalProperties(config.host)
10
- .then(res => {
11
- if (res.statusCode === 200) {
12
- return res.body
13
- } else {
14
- commonApi.handleResponseErrors(res, 'globalProperties')
15
- }
16
- })
17
- .catch(err => {
18
- console.log(err)
19
- })
20
- }
21
-
22
- const getMode = async config => {
23
- const features = await getGlobalProperties(config)
24
-
25
- if (!isNil(features?.mode)) {
26
- return features.mode
27
- }
28
- return ''
29
- }
30
-
31
- const getFeatures = version => {
32
- const featuresEnabled = []
33
-
34
- featuresTeamServer.forEach(feature => {
35
- const versionFrom = Object.values(feature)[0]
36
- return semver.gte(version, versionFrom)
37
- ? featuresEnabled.push(Object.keys(feature)[0])
38
- : null
39
- })
40
- return featuresEnabled
41
- }
42
-
43
- const isFeatureEnabled = (features, featureName) => {
44
- return features.includes(featureName)
45
- }
46
-
47
- module.exports = {
48
- getGlobalProperties,
49
- getFeatures,
50
- isFeatureEnabled,
51
- getMode
52
- }
@@ -1,34 +0,0 @@
1
- import Conf from 'conf'
2
- import { CE_URL } from '../constants/constants'
3
-
4
- type ContrastConfOptions = Partial<{
5
- version: string
6
- host: string
7
- apiKey: string
8
- orgId: string
9
- authHeader: string
10
- numOfRuns: number
11
- }>
12
-
13
- type ContrastConf = Conf<ContrastConfOptions>
14
-
15
- const localConfig = (name: string, version: string) => {
16
- const config: ContrastConf = new Conf<ContrastConfOptions>({
17
- configName: name
18
- })
19
- config.set('version', version)
20
-
21
- if (!config.has('host')) {
22
- config.set('host', CE_URL)
23
- }
24
- return config
25
- }
26
-
27
- const setConfigValues = (config: ContrastConf, values: ContrastConfOptions) => {
28
- config.set('apiKey', values.apiKey)
29
- config.set('organizationId', values.orgId)
30
- config.set('authorization', values.authHeader)
31
- values.host ? config.set('host', values.host) : config.set('host', CE_URL)
32
- }
33
-
34
- export { localConfig, setConfigValues, ContrastConf, ContrastConfOptions }
@@ -1,29 +0,0 @@
1
- const ora = require('ora')
2
-
3
- const returnOra = text => {
4
- return ora(text)
5
- }
6
-
7
- const startSpinner = spinner => {
8
- spinner.start()
9
- }
10
-
11
- const stopSpinner = spinner => {
12
- spinner.stop()
13
- }
14
-
15
- const succeedSpinner = (spinner, text) => {
16
- spinner.succeed(text)
17
- }
18
-
19
- const failSpinner = (spinner, text) => {
20
- spinner.fail(text)
21
- }
22
-
23
- module.exports = {
24
- returnOra,
25
- startSpinner,
26
- succeedSpinner,
27
- failSpinner,
28
- stopSpinner
29
- }
@@ -1,12 +0,0 @@
1
- const getAuth = (parsedCLIOptions = {}) => {
2
- let params = {}
3
- params.apiKey = parsedCLIOptions['apiKey']
4
- params.authorization = parsedCLIOptions['authorization']
5
- params.host = parsedCLIOptions['host']
6
- params.organizationId = parsedCLIOptions['organizationId']
7
- return params
8
- }
9
-
10
- module.exports = {
11
- getAuth: getAuth
12
- }
@@ -1,19 +0,0 @@
1
- const validationCheck = require('../validationCheck')
2
- const commonApi = require('../commonApi')
3
- const config = require('../getConfig')
4
- const { APP_NAME, APP_VERSION } = require('../../constants/constants')
5
-
6
- const getAuth = () => {
7
- const ContrastConf = config.localConfig(APP_NAME, APP_VERSION)
8
- let ContrastConfToUse = {}
9
- if (validationCheck.checkConfigHasRequiredValues(ContrastConf)) {
10
- ContrastConfToUse.apiKey = ContrastConf.get('apiKey')
11
- ContrastConfToUse.organizationId = ContrastConf.get('organizationId')
12
- ContrastConfToUse.host = commonApi.getValidHost(ContrastConf.get('host'))
13
- ContrastConfToUse.authorization = ContrastConf.get('authorization')
14
- ContrastConfToUse.version = ContrastConf.get('version')
15
- }
16
- return ContrastConfToUse
17
- }
18
-
19
- module.exports = { getAuth }
@@ -1,10 +0,0 @@
1
- const getAuth = () => {
2
- let params = {}
3
- params.apiKey = process.env.CONTRAST__API__API_KEY
4
- params.authorization = process.env.CONTRAST__API__AUTHORIZATION
5
- params.host = process.env.CONTRAST__API__URL
6
- params.organizationId = process.env.CONTRAST__API__ORGANIZATION_ID
7
- return params
8
- }
9
-
10
- module.exports = { getAuth: getAuth }
@@ -1,38 +0,0 @@
1
- const commandlineAuth = require('./commandlineParams')
2
- const configStoreParams = require('./configStoreParams')
3
- const envVariableParams = require('./envVariableParams')
4
- const {
5
- validateAuthParams,
6
- validateFingerprintParams
7
- } = require('../validationCheck')
8
- const i18n = require('i18n')
9
-
10
- const getAuth = params => {
11
- let commandLineAuthParamsAuth = commandlineAuth.getAuth(params)
12
- let envVariableParamsAuth = envVariableParams.getAuth()
13
- let configStoreParamsAuth = configStoreParams.getAuth()
14
-
15
- if (validateAuthParams(commandLineAuthParamsAuth)) {
16
- return commandLineAuthParamsAuth
17
- } else if (validateAuthParams(envVariableParamsAuth)) {
18
- return envVariableParamsAuth
19
- } else if (validateAuthParams(configStoreParamsAuth)) {
20
- return configStoreParamsAuth
21
- } else {
22
- console.log(i18n.__('configNotFound'))
23
- process.exit(1)
24
- }
25
- }
26
-
27
- const getFingerprint = params => {
28
- if (validateFingerprintParams(params)) {
29
- return params
30
- } else {
31
- console.log(
32
- 'missing fingerprint params please check repository-url and repository-name'
33
- )
34
- process.exit(1)
35
- }
36
- }
37
-
38
- module.exports = { getAuth, getFingerprint }
@@ -1,32 +0,0 @@
1
- const commandLineArgs = require('command-line-args')
2
- const { sendTelemetryConfigAsConfObj } = require('../telemetry/telemetry')
3
-
4
- const getCommandLineArgsCustom = async (
5
- contrastConf,
6
- command,
7
- parameterList,
8
- optionDefinitions
9
- ) => {
10
- try {
11
- return commandLineArgs(optionDefinitions, {
12
- argv: parameterList,
13
- partial: false,
14
- camelCase: true,
15
- caseInsensitive: true
16
- })
17
- } catch (e) {
18
- await sendTelemetryConfigAsConfObj(
19
- contrastConf,
20
- command,
21
- parameterList,
22
- 'FAILURE',
23
- 'undefined'
24
- )
25
- console.log(e.message.toString())
26
- process.exit(1)
27
- }
28
- }
29
-
30
- module.exports = {
31
- getCommandLineArgsCustom
32
- }
@@ -1,29 +0,0 @@
1
- const request = require('request')
2
- const Promise = require('bluebird')
3
-
4
- Promise.promisifyAll(request)
5
-
6
- function sendRequest({ options, method = 'put' }) {
7
- return request[`${method}Async`](options.url, options)
8
- }
9
-
10
- const millisToSeconds = millis => {
11
- return (millis / 1000).toFixed(0)
12
- }
13
-
14
- const sleep = ms => {
15
- return new Promise(resolve => setTimeout(resolve, ms))
16
- }
17
-
18
- const timeOutError = (ms, reject) => {
19
- return setTimeout(() => {
20
- reject(new Error(`No input detected after 30s`))
21
- }, ms)
22
- }
23
-
24
- module.exports = {
25
- sendRequest: sendRequest,
26
- sleep: sleep,
27
- millisToSeconds: millisToSeconds,
28
- timeOutError: timeOutError
29
- }
@@ -1,20 +0,0 @@
1
- const { SARIF_FILE } = require('../constants/constants')
2
- const commonApi = require('./commonApi')
3
- const saveResults = require('../scan/saveResults')
4
- const i18n = require('i18n')
5
-
6
- const saveScanFile = async (config, scanResults) => {
7
- if (config.save === null || config.save.toUpperCase() === SARIF_FILE) {
8
- const scanId = scanResults.scanDetail.id
9
- const client = commonApi.getHttpClient(config)
10
- const rawResults = await client.getSpecificScanResultSarif(config, scanId)
11
- const name = await saveResults.writeResultsToFile(rawResults?.body)
12
- console.log(`Scan Results saved to ${name}`)
13
- } else {
14
- console.log(i18n.__('scanNoFiletypeSpecifiedForSave'))
15
- }
16
- }
17
-
18
- module.exports = {
19
- saveScanFile: saveScanFile
20
- }
@@ -1,39 +0,0 @@
1
- const checkConfigHasRequiredValues = store => {
2
- return (
3
- store.has('apiKey') &&
4
- store.has('organizationId') &&
5
- store.has('host') &&
6
- store.has('authorization') &&
7
- store.has('version')
8
- )
9
- }
10
-
11
- const validateRequiredScanParams = params => {
12
- return (
13
- params.apiKey &&
14
- params.organizationId &&
15
- params.host &&
16
- params.authorization &&
17
- params.version
18
- )
19
- }
20
-
21
- const validateAuthParams = params => {
22
- return !!(
23
- params.apiKey &&
24
- params.organizationId &&
25
- params.host &&
26
- params.authorization
27
- )
28
- }
29
-
30
- const validateFingerprintParams = params => {
31
- return !!(params.repositoryUrl && params.repositoryName)
32
- }
33
-
34
- module.exports = {
35
- checkConfigHasRequiredValues: checkConfigHasRequiredValues,
36
- validateAuthParams: validateAuthParams,
37
- validateRequiredScanParams: validateRequiredScanParams,
38
- validateFingerprintParams: validateFingerprintParams
39
- }