@contrast/contrast 2.0.2-beta.3 → 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,775 +0,0 @@
1
- const _ = require('lodash')
2
- const fs = require('fs')
3
- const requestUtils = require('./../utils/requestUtils')
4
- const { AUTH_CALLBACK_URL } = require('../constants/constants')
5
-
6
- function HTTPClient(config) {
7
- const apiKey = config.apiKey
8
- const authToken = config.authorization
9
- this.rejectUnauthorized = !config.certSelfSigned
10
-
11
- const superApiKey = config.superApiKey
12
- const superAuthToken = config.superAuthorization
13
-
14
- this.requestOptions = {
15
- forever: true,
16
- json: true,
17
- rejectUnauthorized: this.rejectUnauthorized,
18
- uri: config.host,
19
- followRedirect: false,
20
- headers: {
21
- 'Content-Type': 'application/json; charset=utf-8',
22
- Authorization: authToken,
23
- 'API-Key': apiKey,
24
- SuperAuthorization: superAuthToken,
25
- 'Super-API-Key': superApiKey,
26
- 'User-Agent': 'contrast-cli-v2'
27
- }
28
- }
29
-
30
- if (config.proxy) {
31
- this.requestOptions.proxy = config.proxy
32
- }
33
-
34
- this.maybeAddCertsToRequest(config)
35
- }
36
-
37
- HTTPClient.prototype.maybeAddCertsToRequest = function (config) {
38
- // cacert
39
- const caCertFilePath = config.cacert
40
- if (caCertFilePath) {
41
- const caFileContent = fs.readFileSync(caCertFilePath)
42
- if (caFileContent instanceof Error) {
43
- throw new Error(
44
- `Unable to read CA from ${caCertFilePath}, msg: ${caFileContent.message}`
45
- )
46
- }
47
- this.requestOptions.ca = caFileContent
48
- }
49
-
50
- // cert
51
- const certPath = config.cert
52
- if (certPath) {
53
- const certFile = fs.readFileSync(certPath)
54
- if (certFile instanceof Error) {
55
- throw new Error(
56
- `Unable to read Certificate PEM file from config option contrast.api.certificate.cert_file='${certPath}', msg: ${certFile.message}`
57
- )
58
- }
59
- this.requestOptions.cert = certFile
60
- }
61
-
62
- // key
63
- const keyPath = config.key
64
- if (keyPath) {
65
- const keyFile = fs.readFileSync(keyPath)
66
- if (keyFile instanceof Error) {
67
- throw new Error(
68
- `Unable to read Key PEM file from config option contrast.api.certificate.key_file='${keyPath}', msg: ${keyFile.message}`
69
- )
70
- }
71
- this.requestOptions.key = keyFile
72
- }
73
- }
74
-
75
- HTTPClient.prototype.getScanResultsInstances = function getScanResultsInstances(
76
- config,
77
- scanId
78
- ) {
79
- const options = _.cloneDeep(this.requestOptions)
80
- let url = createScanResultsInstancesURL(config, scanId)
81
- options.url = url
82
- return requestUtils.sendRequest({ method: 'get', options })
83
- }
84
-
85
- HTTPClient.prototype.getSpecificScanResult = function getSpecificScanResult(
86
- config,
87
- scanId
88
- ) {
89
- const options = _.cloneDeep(this.requestOptions)
90
- let url = createSpecificScanResultURL(config, scanId)
91
- options.url = url
92
- return requestUtils.sendRequest({ method: 'get', options })
93
- }
94
-
95
- HTTPClient.prototype.getSpecificScanResultSarif =
96
- function getSpecificScanResultSarif(config, scanId) {
97
- const options = _.cloneDeep(this.requestOptions)
98
- options.url = createRawOutputURL(config, scanId)
99
- return requestUtils.sendRequest({ method: 'get', options })
100
- }
101
-
102
- HTTPClient.prototype.createNewEvent = function createNewEvent(
103
- config,
104
- scanId,
105
- newProject
106
- ) {
107
- const options = _.cloneDeep(this.requestOptions)
108
- options.url = createEventCollectorURL(config, scanId)
109
-
110
- options.body = {
111
- eventSource: process.env.CODESEC_INVOCATION_ENVIRONMENT,
112
- trackingProperties: {
113
- projectNameSource: config.projectNameSource,
114
- waitedForResults: !config.ff,
115
- newProject
116
- }
117
- }
118
- return requestUtils.sendRequest({ method: 'post', options })
119
- }
120
-
121
- HTTPClient.prototype.getScanId = function getScanId(config, codeArtifactId) {
122
- const options = _.cloneDeep(this.requestOptions)
123
- let url = createGetScanIdURL(config)
124
- options.url = url
125
- options.body = {
126
- codeArtifactId: codeArtifactId,
127
- label: config.label
128
- ? config.label
129
- : `Started by CLI tool at ${new Date().toString()}`
130
- }
131
- return requestUtils.sendRequest({ method: 'post', options })
132
- }
133
-
134
- HTTPClient.prototype.sendArtifact = async function sendArtifact(config) {
135
- const options = _.cloneDeep(this.requestOptions)
136
-
137
- let formData = {
138
- filename: fs.createReadStream(config.file)
139
- }
140
- options.formData = formData
141
- options.headers['Content-Type'] = 'multipart/form-data'
142
- options.url = createHarmonyUrl(config)
143
- return requestUtils.sendRequest({ method: 'post', options })
144
- }
145
-
146
- HTTPClient.prototype.createProjectId = function createProjectId(config) {
147
- const options = _.cloneDeep(this.requestOptions)
148
-
149
- options.body = {
150
- name: config.name,
151
- archived: 'false'
152
- }
153
- if (config.language) {
154
- options.body.language = config.language
155
- }
156
- options.url = createHarmonyProjectsUrl(config)
157
- return requestUtils.sendRequest({ method: 'post', options })
158
- }
159
-
160
- HTTPClient.prototype.getProjectIdByName = function getProjectIdByName(config) {
161
- const options = _.cloneDeep(this.requestOptions)
162
-
163
- options.url = createHarmonyProjectsUrl(config) + '?name=' + config.name
164
- return requestUtils.sendRequest({ method: 'get', options })
165
- }
166
-
167
- HTTPClient.prototype.getScanProjectById = function getScanProjectById(config) {
168
- const options = _.cloneDeep(this.requestOptions)
169
-
170
- options.url = createScanProjectUrl(config)
171
- return requestUtils.sendRequest({ method: 'get', options })
172
- }
173
-
174
- HTTPClient.prototype.getGlobalProperties = function getGlobalProperties(host) {
175
- const options = _.cloneDeep(this.requestOptions)
176
- let url = createGlobalPropertiesUrl(host)
177
- options.url = url
178
- return requestUtils.sendRequest({ method: 'get', options })
179
- }
180
-
181
- HTTPClient.prototype.pollForAuth = function pollForAuth(token) {
182
- const options = _.cloneDeep(this.requestOptions)
183
- let url = pollForAuthUrl()
184
- options.url = url
185
-
186
- let requestBody = {}
187
- requestBody.token = token
188
- options.body = requestBody
189
-
190
- return requestUtils.sendRequest({ method: 'post', options })
191
- }
192
-
193
- HTTPClient.prototype.catalogueCommand = function catalogueCommand(config) {
194
- const options = _.cloneDeep(this.requestOptions)
195
- let url = createAppCreateURL(config)
196
- options.url = url
197
-
198
- let requestBody = {}
199
- requestBody.name = config.applicationName
200
- requestBody.language = config.language.toUpperCase()
201
- requestBody.appGroups = config.appGroups
202
- requestBody.metadata = config.metadata
203
- requestBody.tags = config.tags
204
- requestBody.code = config.code
205
- options.body = requestBody
206
-
207
- return requestUtils.sendRequest({ method: 'post', options })
208
- }
209
-
210
- HTTPClient.prototype.sendSnapshot = function sendSnapshot(requestBody, config) {
211
- const options = _.cloneDeep(this.requestOptions)
212
- let url = createSnapshotURL(config)
213
- options.url = url
214
- options.body = requestBody
215
-
216
- return requestUtils.sendRequest({ method: 'post', options })
217
- }
218
-
219
- HTTPClient.prototype.scaServiceIngest = function scaServiceIngest(
220
- requestBody,
221
- config
222
- ) {
223
- const options = _.cloneDeep(this.requestOptions)
224
- let url = createScaServiceIngestURL(config)
225
- options.url = url
226
- options.body = requestBody
227
-
228
- return requestUtils.sendRequest({ method: 'post', options })
229
- }
230
-
231
- HTTPClient.prototype.noProjectIdUpload = function scaServiceIngest(
232
- requestBody,
233
- config
234
- ) {
235
- const options = _.cloneDeep(this.requestOptions)
236
- let url = createScaServiceNoProjectIdURL(config)
237
- options.url = url
238
- options.body = requestBody
239
- return requestUtils.sendRequest({ method: 'post', options })
240
- }
241
-
242
- HTTPClient.prototype.scaServiceReport = function scaServiceReport(
243
- config,
244
- reportId
245
- ) {
246
- const options = _.cloneDeep(this.requestOptions)
247
- let url = createScaServiceReportURL(config, reportId)
248
- options.url = url
249
- return requestUtils.sendRequest({ method: 'get', options })
250
- }
251
-
252
- HTTPClient.prototype.scaServiceReportNoProjectId = function scaServiceReport(
253
- config,
254
- reportId
255
- ) {
256
- const options = _.cloneDeep(this.requestOptions)
257
- options.url = createScaServiceReportNoProjectIdURL(config, reportId)
258
- if (config.debug || config.verbose) {
259
- console.log('createScaServiceReportNoProjectIdURL', options.url)
260
- }
261
- return requestUtils.sendRequest({ method: 'get', options })
262
- }
263
-
264
- HTTPClient.prototype.scaServiceReportStatus = function scaServiceReport(
265
- config,
266
- reportId
267
- ) {
268
- const options = _.cloneDeep(this.requestOptions)
269
- options.url = createScaServiceReportStatusURL(config, reportId)
270
- if (config.debug || config.verbose) {
271
- console.log('createScaServiceReportStatusURL', options.url)
272
- }
273
- return requestUtils.sendRequest({ method: 'get', options })
274
- }
275
-
276
- HTTPClient.prototype.scaServiceNoProjectIdReportStatus =
277
- function scaServiceReport(config, reportId) {
278
- const options = _.cloneDeep(this.requestOptions)
279
- options.url = createScaServiceReportStatusURL(config, reportId)
280
- if (config.debug || config.verbose) {
281
- console.log('createScaServiceReportStatusURL', options.url)
282
- }
283
- return requestUtils.sendRequest({ method: 'get', options })
284
- }
285
-
286
- // HTTPClient.prototype.scaServiceIngests = function scaServiceIngests(config) {
287
- // const options = _.cloneDeep(this.requestOptions)
288
- // let url = createScaServiceIngestsURL(config)
289
- // options.url = url
290
- // return requestUtils.sendRequest({ method: 'get', options })
291
- // }
292
-
293
- HTTPClient.prototype.scaServiceHealth = function scaServiceIngests(config) {
294
- const options = _.cloneDeep(this.requestOptions)
295
- let url = createScaServiceHealthURL(config)
296
- options.url = url
297
- return requestUtils.sendRequest({ method: 'get', options })
298
- }
299
-
300
- HTTPClient.prototype.getReportById = function getReportById(config, reportId) {
301
- const options = _.cloneDeep(this.requestOptions)
302
- if (config.ignoreDev) {
303
- options.url = createSpecificReportWithProdUrl(config, reportId)
304
- } else {
305
- options.url = createSpecificReportUrl(config, reportId)
306
- }
307
- return requestUtils.sendRequest({ method: 'get', options })
308
- }
309
-
310
- HTTPClient.prototype.getReportStatusById = function getReportStatusById(
311
- config,
312
- snapshotId
313
- ) {
314
- const options = _.cloneDeep(this.requestOptions)
315
- options.url = createSpecificReportStatusURL(config, snapshotId)
316
- return requestUtils.sendRequest({ method: 'get', options })
317
- }
318
-
319
- HTTPClient.prototype.getLibraryVulnerabilities =
320
- function getLibraryVulnerabilities(config, requestBody) {
321
- const options = _.cloneDeep(this.requestOptions)
322
- options.url = createLibraryVulnerabilitiesUrl(config)
323
- options.body = requestBody
324
-
325
- return requestUtils.sendRequest({ method: 'put', options })
326
- }
327
-
328
- HTTPClient.prototype.getAppId = function getAppId(config) {
329
- const options = _.cloneDeep(this.requestOptions)
330
- let url = createAppNameUrl(config)
331
- options.url = url
332
- return requestUtils.sendRequest({ method: 'get', options })
333
- }
334
-
335
- HTTPClient.prototype.registerRepo = function registerRepo(config, requestBody) {
336
- const options = _.cloneDeep(this.requestOptions)
337
- let url = createRepositoryUrl(config)
338
- options.url = url
339
- options.body = requestBody
340
- return requestUtils.sendRequest({ method: 'post', options })
341
- }
342
-
343
- HTTPClient.prototype.retrieveProjectByRepoId = function retrieveProjectByRepoId(
344
- config,
345
- requestBody
346
- ) {
347
- const options = _.cloneDeep(this.requestOptions)
348
- let url = createRepoProjectUrl(config)
349
- options.url = url
350
- options.body = requestBody
351
- return requestUtils.sendRequest({ method: 'get', options })
352
- }
353
-
354
- HTTPClient.prototype.registerProjectGroup = function (config, requestBody) {
355
- const options = _.cloneDeep(this.requestOptions)
356
- let url = registerProjectGroupUrl(config)
357
- options.url = url
358
- options.body = requestBody
359
-
360
- if (config.debug || config.verbose) {
361
- console.log('registerProjectGroup')
362
- console.log('url', options.url)
363
- // console.log('body', options.body)
364
- }
365
-
366
- return requestUtils.sendRequest({ method: 'post', options })
367
- }
368
-
369
- HTTPClient.prototype.registerProject = function (config, body) {
370
- const options = _.cloneDeep(this.requestOptions)
371
- let url = registerProjectUrl(config)
372
- options.url = url
373
- options.body = body
374
- return requestUtils.sendRequest({ method: 'post', options })
375
- }
376
- HTTPClient.prototype.retrieveSourcesViaRepositoryId = function (
377
- config,
378
- repositoryId
379
- ) {
380
- const options = _.cloneDeep(this.requestOptions)
381
- let url = retrieveSourcesUrl(config, repositoryId)
382
- options.url = url
383
- return requestUtils.sendRequest({ method: 'get', options })
384
- }
385
-
386
- HTTPClient.prototype.retrieveRepoByOrgAndGitURL = function (config) {
387
- const options = _.cloneDeep(this.requestOptions)
388
- let url = retrieveRepoByOrgAndGitURL(config)
389
- options.url = url
390
- return requestUtils.sendRequest({ method: 'get', options })
391
- }
392
-
393
- HTTPClient.prototype.registerOnCliServices = function (config, project) {
394
- const options = _.cloneDeep(this.requestOptions)
395
- let url = retrieveRegisterOnCliServicesUrl(config)
396
- options.url = url
397
- options.body = project
398
-
399
- if (config.debug || config.verbose) {
400
- console.log('registerOnCliServices')
401
- console.log('url', options.url)
402
- console.log('body', options.body)
403
- }
404
-
405
- return requestUtils.sendRequest({ method: 'post', options })
406
- }
407
-
408
- HTTPClient.prototype.retrieveProjectByOrganizationId = function registerRepo(
409
- config
410
- ) {
411
- const options = _.cloneDeep(this.requestOptions)
412
- let url = retrieveProjectByOrganizationIdUrl(config)
413
- options.url = url
414
- if (config.debug || config.verbose) {
415
- console.log(url)
416
- }
417
- return requestUtils.sendRequest({ method: 'get', options })
418
- }
419
-
420
- HTTPClient.prototype.retrieveExistingProjectGroupsByOrg = function registerRepo(
421
- config
422
- ) {
423
- const options = _.cloneDeep(this.requestOptions)
424
- let url =
425
- retrieveExistingGroupProjectsByOrgUrl(config) +
426
- '?name=' +
427
- config.repositoryName +
428
- '&type=REPOSITORY'
429
- options.url = url
430
- if (config.debug || config.verbose) {
431
- console.log(options.url)
432
- }
433
- return requestUtils.sendRequest({ method: 'get', options })
434
- }
435
-
436
- HTTPClient.prototype.retrieveExistingProjectIdByProjectGroupId =
437
- function registerRepo(config, projectGroupId) {
438
- const options = _.cloneDeep(this.requestOptions)
439
- let url = retrieveExistingGroupProjectsByGroupIdUrl(config, projectGroupId)
440
- options.url = url
441
- return requestUtils.sendRequest({ method: 'get', options })
442
- }
443
-
444
- HTTPClient.prototype.retrieveExistingRepo = function registerRepo(config) {
445
- const options = _.cloneDeep(this.requestOptions)
446
- let url = retrieveExistingRepoUrl(config)
447
- options.url = url
448
- return requestUtils.sendRequest({ method: 'get', options })
449
- }
450
-
451
- // HTTPClient.prototype.getDependencyTree = function getReport(
452
- // orgUuid,
453
- // appId,
454
- // reportId
455
- // ) {
456
- // const options = _.cloneDeep(this.requestOptions)
457
- // let url = createGetDependencyTree(options.uri, orgUuid, appId, reportId)
458
- // options.url = url
459
- // return requestUtils.sendRequest({ method: 'get', options })
460
- // }
461
-
462
- // serverless - lambda
463
- function getServerlessHost(config = {}) {
464
- const originalHost = config?.host || config?.get('host')
465
- const host = originalHost?.endsWith('/')
466
- ? originalHost.slice(0, -1)
467
- : originalHost
468
-
469
- return `${host}/Contrast/api/serverless`
470
- }
471
-
472
- function createScanFunctionPostUrl(config, params) {
473
- const url = getServerlessHost(config)
474
- const { provider, accountId, organizationId } = params
475
-
476
- return `${url}/organizations/${organizationId}/providers/${provider}/accounts/${accountId}/function-scan`
477
- }
478
-
479
- function createScanResourcesGetUrl(config, params, scanId) {
480
- const url = getServerlessHost(config)
481
- const { provider, accountId, organizationId } = params
482
- const encodedScanId = encodeURIComponent(scanId)
483
-
484
- return `${url}/organizations/${organizationId}/providers/${provider}/accounts/${accountId}/scans/${encodedScanId}/resources`
485
- }
486
-
487
- function createScanResultsGetUrl(config, params, scanId, functionArn) {
488
- const url = getServerlessHost(config)
489
- const encodedScanId = encodeURIComponent(scanId)
490
- const encodedFunctionArn = encodeURIComponent(functionArn)
491
- const { provider, accountId, organizationId } = params
492
-
493
- return `${url}/organizations/${organizationId}/providers/${provider}/accounts/${accountId}/scans/${encodedScanId}/resources/${encodedFunctionArn}/results`
494
- }
495
-
496
- HTTPClient.prototype.postFunctionScan = async function postFunctionScan(
497
- config,
498
- params,
499
- body
500
- ) {
501
- const url = createScanFunctionPostUrl(config, params)
502
- const options = { ...this.requestOptions, body, url }
503
-
504
- return requestUtils.sendRequest({ method: 'post', options })
505
- }
506
-
507
- HTTPClient.prototype.getScanResources = async function getScanResources(
508
- config,
509
- params,
510
- scanId
511
- ) {
512
- const url = createScanResourcesGetUrl(config, params, scanId)
513
- const options = { ...this.requestOptions, url }
514
-
515
- return requestUtils.sendRequest({ method: 'get', options })
516
- }
517
-
518
- HTTPClient.prototype.getFunctionScanResults =
519
- async function getFunctionScanResults(config, params, scanId, functionArn) {
520
- const url = createScanResultsGetUrl(config, params, scanId, functionArn)
521
- const options = { ...this.requestOptions, url }
522
-
523
- return requestUtils.sendRequest({ method: 'get', options })
524
- }
525
-
526
- HTTPClient.prototype.checkLibrary = function checkLibrary(data) {
527
- const options = _.cloneDeep(this.requestOptions)
528
- let url = createDataUrl()
529
- options.url = url
530
- options.body = data
531
- return requestUtils.sendRequest({ method: 'post', options })
532
- }
533
-
534
- HTTPClient.prototype.getSbom = function getSbom(config, type) {
535
- const options = _.cloneDeep(this.requestOptions)
536
- options.url = createSbomUrl(config, type)
537
- return requestUtils.sendRequest({ method: 'get', options })
538
- }
539
-
540
- HTTPClient.prototype.getSCASbom = function getSbom(config, type, reportId) {
541
- const options = _.cloneDeep(this.requestOptions)
542
- options.url = createSCASbomUrl(config, type, reportId)
543
- return requestUtils.sendRequest({ method: 'get', options })
544
- }
545
-
546
- HTTPClient.prototype.getLatestVersion = function getLatestVersion() {
547
- const options = _.cloneDeep(this.requestOptions)
548
- options.url =
549
- 'https://pkg.contrastsecurity.com/artifactory/cli/latest-version.txt'
550
- return requestUtils.sendRequest({ method: 'get', options })
551
- }
552
-
553
- HTTPClient.prototype.postTelemetry = function postTelemetry(
554
- config,
555
- requestBody
556
- ) {
557
- const options = _.cloneDeep(this.requestOptions)
558
- options.url = createTelemetryEventUrl(config)
559
- options.body = requestBody
560
- return requestUtils.sendRequest({ method: 'post', options })
561
- }
562
-
563
- // analytics
564
-
565
- HTTPClient.prototype.postAnalyticsFunction = function (config, provider, body) {
566
- const url = createAnalyticsFunctionPostUrl(config, provider)
567
- const options = { ...this.requestOptions, body, url }
568
-
569
- return requestUtils.sendRequest({ method: 'post', options })
570
- }
571
-
572
- const createAnalyticsFunctionPostUrl = (config, provider) => {
573
- const url = getServerlessHost(config)
574
- return `${url}/organizations/${config.organizationId}/providers/${provider}/analytics`
575
- }
576
-
577
- // scan
578
- const createGetScanIdURL = config => {
579
- return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}/scans/`
580
- }
581
-
582
- const createScanResultsInstancesURL = (config, scanId) => {
583
- return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}/scans/${scanId}/result-instances/info?size=50&page=0&last=false&sort=severity,asc`
584
- }
585
-
586
- const createRawOutputURL = (config, scanId) => {
587
- return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}/scans/${scanId}/raw-output`
588
- }
589
-
590
- const createSpecificScanResultURL = (config, scanId) => {
591
- return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}/scans/${scanId}`
592
- }
593
-
594
- function createHarmonyUrl(config) {
595
- return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}/code-artifacts`
596
- }
597
-
598
- function createHarmonyProjectsUrl(config) {
599
- return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects`
600
- }
601
-
602
- function createScanProjectUrl(config) {
603
- return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}`
604
- }
605
-
606
- const createEventCollectorURL = (config, scanId) => {
607
- return `${config.host}/Contrast/api/sast/organizations/${config.organizationId}/projects/${config.projectId}/scans/${scanId}/events`
608
- }
609
-
610
- const createGlobalPropertiesUrl = protocol => {
611
- return `${protocol}/Contrast/api/ng/global/properties`
612
- }
613
-
614
- const pollForAuthUrl = () => {
615
- return `${AUTH_CALLBACK_URL}/auth/credentials`
616
- }
617
-
618
- function createSnapshotURL(config) {
619
- return `${config.host}/Contrast/api/ng/sca/organizations/${config.organizationId}/applications/${config.applicationId}/snapshots`
620
- }
621
-
622
- function createScaServiceReportURL(config, reportId) {
623
- let baseUrl = `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/projects/${config.projectId}/libraries/reports/${reportId}`
624
- baseUrl = config.ignoreDev ? baseUrl.concat('?nodesToInclude=PROD') : baseUrl
625
- return baseUrl
626
- }
627
-
628
- function createScaServiceReportNoProjectIdURL(config, reportId) {
629
- let baseUrl = `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/libraries/reports/${reportId}`
630
- baseUrl = config.ignoreDev ? baseUrl.concat('?nodesToInclude=PROD') : baseUrl
631
- return baseUrl
632
- }
633
-
634
- function createScaServiceReportStatusURL(config, reportId) {
635
- return `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/libraries/ingests/${reportId}/status`
636
- }
637
-
638
- function createScaServiceNoProjectIdURL(config) {
639
- return `${config.host}/Contrast/api/sca/organizations/${
640
- config.organizationId
641
- }/libraries/ingests/tree${
642
- config.repo && config.language === 'JAVA?' ? 'incomplete=true' : ''
643
- }`
644
- }
645
-
646
- // function createScaServiceIngestsURL(config) {
647
- // return `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/applications/${config.applicationId}/libraries/ingests`
648
- // }
649
-
650
- function createScaServiceHealthURL(config) {
651
- return `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/health`
652
- }
653
-
654
- function createScaServiceIngestURL(config) {
655
- let optionalParams = []
656
- config.repo && config.language === 'JAVA'
657
- ? optionalParams.push('incomplete=true')
658
- : null
659
- config.track ? optionalParams.push('persist=true') : null
660
-
661
- let params = '?'
662
- optionalParams.forEach(param => {
663
- params = params.concat(param)
664
- params = params.concat('&')
665
- })
666
-
667
- let baseUrl = `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/projects/${config.projectId}/libraries/ingests/tree${params}`
668
-
669
- if (config.debug) {
670
- console.log('createScaServiceIngestURL', baseUrl)
671
- }
672
- return baseUrl
673
- }
674
-
675
- const createAppCreateURL = config => {
676
- return `${config.host}/Contrast/api/ng/sca/organizations/${config.organizationId}/applications/create`
677
- }
678
-
679
- const createAppNameUrl = config => {
680
- return `${config.host}/Contrast/api/ng/${config.organizationId}/applications/name?filterText=${config.applicationName}`
681
- }
682
-
683
- const registerProjectGroupUrl = config => {
684
- return `${config.host}/api/v4/organizations/${config.organizationId}/project-groups`
685
- }
686
-
687
- const registerProjectUrl = config => {
688
- return `${config.host}/api/v4/organizations/${config.organizationId}/project-groups/${config.projectGroupId}/projects`
689
- }
690
-
691
- const retrieveRegisterOnCliServicesUrl = config => {
692
- return `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/projects`
693
- }
694
-
695
- const retrieveSourcesUrl = (config, repositoryId) => {
696
- return `${config.host}/projects/v1/repositories/${repositoryId}/sources`
697
- }
698
-
699
- const retrieveRepoByOrgAndGitURL = config => {
700
- return `${config.host}/api/v4/organizations/${config.organizationId}/repositories/external-url?externalRepoUrl=${config.repositoryUrl}`
701
- }
702
-
703
- const retrieveProjectByOrganizationIdUrl = config => {
704
- let baseUrl = `${config.host}/api/v4/organizations/${config.organizationId}/projects`
705
- baseUrl = config.name
706
- ? baseUrl.concat(`?name=${config.name}`)
707
- : baseUrl.concat(`?name=${config.fileName}`)
708
- baseUrl = config.language
709
- ? baseUrl.concat(`&language=${config.language}`)
710
- : baseUrl
711
- baseUrl = config.language ? baseUrl.concat(`&source=SCA`) : baseUrl
712
- baseUrl = config.repo
713
- ? baseUrl.concat(`&type=REPOSITORY`)
714
- : baseUrl.concat(`&type=CLI`)
715
- return baseUrl
716
- }
717
-
718
- const retrieveExistingGroupProjectsByOrgUrl = config => {
719
- return `${config.host}/api/v4/organizations/${config.organizationId}/project-groups`
720
- }
721
-
722
- const retrieveExistingGroupProjectsByGroupIdUrl = (config, projectGroupId) => {
723
- return `${config.host}/api/v4/organizations/${config.organizationId}/projects/${projectGroupId}/projects`
724
- }
725
- const retrieveExistingRepoUrl = config => {
726
- return `${config.host}/projects/v4/organizations/${config.organizationId}/repositories`
727
- }
728
-
729
- function createRepositoryUrl(config) {
730
- return `${config.host}/api/v4/organizations/${config.organizationId}/repositories`
731
- }
732
-
733
- function createRepoProjectUrl(config) {
734
- return `${config.host}/api/v4/organizations/${config.organizationId}/repositories/${config.repositoryId}/projects`
735
- }
736
-
737
- function createLibraryVulnerabilitiesUrl(config) {
738
- return `${config.host}/Contrast/api/ng/${config.organizationId}/libraries/artifactsByGroupNameVersion`
739
- }
740
-
741
- function createSpecificReportUrl(config, reportId, includeTree = false) {
742
- return `${config.host}/Contrast/api/ng/sca/organizations/${config.organizationId}/applications/${config.applicationId}/reports/${reportId}?&includeTree=${includeTree}`
743
- }
744
-
745
- function createSpecificReportWithProdUrl(config, reportId, includeTree) {
746
- return createSpecificReportUrl(config, reportId, includeTree).concat(
747
- `&nodesToInclude=PROD`
748
- )
749
- }
750
-
751
- function createSpecificReportStatusURL(config, reportId) {
752
- return `${config.host}/Contrast/api/ng/sca/organizations/${config.organizationId}/applications/${config.applicationId}/snapshots/${reportId}/status`
753
- }
754
-
755
- function createDataUrl() {
756
- return `https://ardy.contrastsecurity.com/production`
757
- }
758
-
759
- function createSbomUrl(config, type) {
760
- return `${config.host}/Contrast/api/ng/${config.organizationId}/applications/${config.applicationId}/libraries/sbom/${type}`
761
- }
762
-
763
- function createSCASbomUrl(config, type, reportId) {
764
- return config.projectId
765
- ? `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/projects/${config.projectId}/libraries/sbom/${reportId}?toolType=${type}`
766
- : `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/libraries/sbom/${reportId}?toolType=${type}`
767
- }
768
-
769
- function createTelemetryEventUrl(config) {
770
- return `${config.host}/Contrast/api/sast/organizations/${config.organizationId}/cli`
771
- }
772
-
773
- module.exports = HTTPClient
774
- module.exports.pollForAuthUrl = pollForAuthUrl
775
- module.exports.getServerlessHost = getServerlessHost