@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,32 +0,0 @@
1
- import { Lambda, FunctionConfiguration } from '@aws-sdk/client-lambda'
2
- import { LambdaOptions } from '../lambda'
3
- import lambdaConfig from './lambdaConfig.json'
4
-
5
- const getLambdaClient = (lambdaOptions: LambdaOptions) => {
6
- return {}
7
- }
8
-
9
- const getLambdaFunctionConfiguration = async (
10
- client: Lambda,
11
- lambdaOptions: LambdaOptions
12
- ) => {
13
- return Promise.resolve(lambdaConfig)
14
- }
15
-
16
- const getLayersLinks = async (
17
- client: Lambda,
18
- functionConfiguration: FunctionConfiguration
19
- ) => {
20
- return []
21
- }
22
- const getLambdaPolicies = async (
23
- functionConfiguration: FunctionConfiguration,
24
- lambdaOptions: LambdaOptions
25
- ) => []
26
-
27
- export {
28
- getLambdaClient,
29
- getLambdaFunctionConfiguration,
30
- getLayersLinks,
31
- getLambdaPolicies
32
- }
@@ -1,42 +0,0 @@
1
- {
2
- "$metadata": {
3
- "httpStatusCode": 200,
4
- "requestId": "c1495998-4606-46ba-b4fc-f7d0d165172d",
5
- "attempts": 1,
6
- "totalRetryDelay": 0
7
- },
8
- "Code": {
9
- "Location": "https://awslambda-eu-cent-1-tasks.s3.eu-central-1.amazonaws.com/snapshots/123456789012/FunctionLambda-90e7680-c598cb5f-6bc9-4107-9fe7-13c126eb3b9e?versionId=ThxUComOVL.qnyEN9Bmi3xzK1JshuKA3&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEGcaDGV1LWNlbnRyYWwtMSJIMEYCIQDAMKTGQ5WEMHM9H7cZQugjEX8QWvq5zRxtXg%2Fz6m9lmAIhAMst%2F5iQkOPJ%2BNfflPiwD4GQchajTfvbNvVeGlz%2BdFi%2FKokECPD%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQAxoMNjgwNjg2NTU5NDM0IgwPQDJYINU9W7Csw4sq3QO52WKm5PvlVEeLrwstuDqPPKxhdK57A6z2foEF0Bp%2Bz%2Fp%2Flei2DzbpqjPDluzljZmzh3kP8QKPwq25Yk59%2BfXnxlSkHYe3GXO6W6VLBkPk81T0C9keVwdMijW1ZV94KN8qBB17kERR3sFIhBWXJRLhXSAdLREAfNLaE%2FgnP1eC1b5MZCBW46lbjmYHhHshgZJEUD2fy%2BRuOB4HijldLkpHKgZfwiD0ICXkvxF5NQT6tUhlQPNN%2BCrC2RQ0NSkmjXiaL2BXaDxaQVhZwMTGzBEyLAonA9bSisObWrVEjJcC4%2Bqz9ce25l2yYf77lEXWymEp9NvFFcUNAt6tt%2FAm2qMixcLxV0Y2NuBUBjIvPnNnTvBop%2FvAC1Rh6033AmWpmkK0tD65wEsTS4XAEtnD%2B%2Bku4r6kzatRJ88Lq9YOTbjs%2BMEccy9YIFp7Rwf2%2Bdw3EKHSqz4aB0R9KYa07NooZ%2Bym1VZWfGLfhFRJwKRLk3qKkY%2Bj4laizIE%2BBgqC7f7%2FYXcFk8RGX8vlX5y%2BMKWhBXoMPqAPG7ruoG1RbjQX8TEJvuG0G8c5x76fRjB2VRlykY78wa7%2B83a8oBqMfojq7hQWByNv%2B13KHVIIqrG87tL%2BtrmS7GAoils0vXf0Mvowqt6RkgY6pAGKzTtWpXiIhFLe5n2CNNDMuT9xCSCpQIWf2M9GcNabj%2FAUHIa81gvZwuHzB6DYpEj2cZ7wO22Ve%2FRLIrzdkBROoRYnT0GFevXUJAoO2WolWU13JS7owlBPTW7aET6o7fHJUhwAxPZPCp1cSaFMO5cDN%2BTOVm7V6P4es6m87S1yozp5SzHx3KblhJJF6krPHX6YCWC%2B%2FAu9tu7PqgiZ3RQTZ26f4A%3D%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220330T153702Z&X-Amz-SignedHeaders=host&X-Amz-Expires=600&X-Amz-Credential=ASIAZ47AUUDFFU2TD45R%2F20220330%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Signature=4f9187001f127561afee310d9a127acacb5064c51688f7cd65f98ccb0a7aaa10",
10
- "RepositoryType": "S3"
11
- },
12
- "Configuration": {
13
- "Architectures": ["x86_64"],
14
- "CodeSha256": "KNNSfx0YOrZ+pG3fK0qbGBJv/b8V0/gWFFkFw581i4o=",
15
- "CodeSize": 39577174,
16
- "DeadLetterConfig": {
17
- "TargetArn": "arn:aws:sqs:eu-central-1:123456789012:devlocaleuDeadLetterQ-89016d3"
18
- },
19
- "Description": "",
20
- "Environment": {
21
- "Variables": {
22
- "EVENTS_BUCKET": "devlocaleu-cn-events-4h6eig-eu-central-1-1676820",
23
- "AGENTS_TABLE": "devlocaleu.agent.agents"
24
- }
25
- },
26
- "EphemeralStorage": { "Size": 512 },
27
- "FunctionArn": "arn:aws:lambda:eu-central-1:123456789012:function:FunctionLambda-90e7680",
28
- "FunctionName": "FunctionLambda-90e7680",
29
- "Handler": "com.contrastsecurity.scan.ScanHandler::handleEventDataWithContext",
30
- "LastModified": "2022-03-28T11:14:56.000+0000",
31
- "LastUpdateStatus": "Successful",
32
- "MemorySize": 1024,
33
- "PackageType": "Zip",
34
- "RevisionId": "d174710a-23ff-499b-a7ba-61036beabd7a",
35
- "Role": "arn:aws:iam::123456789012:role/Function_Role",
36
- "Runtime": "java11",
37
- "State": "Active",
38
- "Timeout": 900,
39
- "TracingConfig": { "Mode": "PassThrough" },
40
- "Version": "$LATEST"
41
- }
42
- }
@@ -1,9 +0,0 @@
1
- import { getHttpClient } from '../utils/commonApi'
2
- import { getAuth } from '../utils/paramsUtil/paramHandler'
3
- import { AnalyticsOption } from './types'
4
-
5
- export const postAnalytics = (data: AnalyticsOption, provider = 'aws') => {
6
- const config = getAuth()
7
- const client = getHttpClient(config)
8
- return client.postAnalyticsFunction(config, provider, data)
9
- }
package/src/lambda/arn.ts DELETED
@@ -1,33 +0,0 @@
1
- import { CliError } from './cliError'
2
- import { ERRORS } from './constants'
3
-
4
- type ARN = {
5
- partition: string
6
- service: string
7
- region: string
8
- accountId: string
9
- resource: string
10
- resourceId?: string
11
- }
12
-
13
- const ARN_REGEX =
14
- /arn:(?<partition>[^:\n]*):(?<service>[^:\n]*):(?<region>[^:\n]*):(?<accountId>[^:\n]*):(?<ignore>(?<resource>[^:/\n]*)[:/])?(?<resourceId>.*)/
15
-
16
- const parseARN = (arn: string | undefined) => {
17
- if (!arn) {
18
- throw new CliError(ERRORS.FAILED_TO_START_SCAN, {
19
- errorCode: 'failedToParseArn'
20
- })
21
- }
22
-
23
- const arnMatch = arn.match(ARN_REGEX)
24
- if (!arnMatch) {
25
- throw new CliError(ERRORS.FAILED_TO_START_SCAN, {
26
- errorCode: 'failedToParseArn'
27
- })
28
- }
29
-
30
- return arnMatch.groups as ARN
31
- }
32
-
33
- export { parseARN, ARN }
package/src/lambda/aws.ts DELETED
@@ -1,248 +0,0 @@
1
- import i18n from 'i18n'
2
- import {
3
- Lambda,
4
- GetFunctionCommand,
5
- GetLayerVersionByArnCommand,
6
- FunctionConfiguration,
7
- ResourceNotFoundException,
8
- LambdaServiceException
9
- } from '@aws-sdk/client-lambda'
10
- import {
11
- GetRolePolicyCommand,
12
- IAMClient,
13
- paginateListRolePolicies,
14
- paginateListAttachedRolePolicies,
15
- GetPolicyCommand,
16
- GetPolicyVersionCommand
17
- } from '@aws-sdk/client-iam'
18
- import { fromIni } from '@aws-sdk/credential-provider-ini'
19
- import { RegionInputConfig } from '@aws-sdk/config-resolver/dist-types/regionConfig/resolveRegionConfig'
20
- import { EndpointsInputConfig } from '@aws-sdk/config-resolver/dist-types/endpointsConfig/resolveEndpointsConfig'
21
- import { AwsAuthInputConfig } from '@aws-sdk/middleware-signing/dist-types/configurations'
22
- import { CliError } from './cliError'
23
- import { LambdaOptions } from './lambda'
24
- import { ERRORS } from './constants'
25
-
26
- type AWSClientConfig = RegionInputConfig &
27
- EndpointsInputConfig &
28
- AwsAuthInputConfig
29
-
30
- const getAwsClientOptions = ({
31
- region,
32
- endpointUrl,
33
- profile
34
- }: LambdaOptions): AWSClientConfig => {
35
- const credentials = profile ? fromIni({ profile }) : undefined
36
- return {
37
- region: region || process.env.AWS_DEFAULT_REGION,
38
- endpoint: endpointUrl,
39
- credentials
40
- }
41
- }
42
-
43
- const getLambdaClient = (lambdaOptions: LambdaOptions) => {
44
- try {
45
- const clientOptions = getAwsClientOptions(lambdaOptions)
46
- return new Lambda(clientOptions)
47
- } catch (error) {
48
- throw new CliError(ERRORS.AWS_ERROR, {
49
- description: (error as Error).message
50
- })
51
- }
52
- }
53
-
54
- const getIAMClient = (lambdaOptions: LambdaOptions) => {
55
- const clientOptions = getAwsClientOptions(lambdaOptions)
56
- return new IAMClient(clientOptions)
57
- }
58
-
59
- const getLambdaFunctionConfiguration = async (
60
- client: Lambda,
61
- lambdaOptions: LambdaOptions
62
- ) => {
63
- const { functionName: FunctionName } = lambdaOptions
64
- const getFunctionCommand = new GetFunctionCommand({ FunctionName })
65
- try {
66
- return await client.send(getFunctionCommand)
67
- } catch (error) {
68
- throwAwsError(error)
69
- }
70
- }
71
-
72
- const getLayersLinks = async (
73
- client: Lambda,
74
- functionConfiguration: FunctionConfiguration
75
- ) => {
76
- const { Layers: layers = [] } = functionConfiguration
77
- const resultPromises = layers.map(async layerDict => {
78
- try {
79
- const layerArn = layerDict.Arn
80
- const getLayerVersionByArnCommand = new GetLayerVersionByArnCommand({
81
- Arn: layerArn
82
- })
83
- const layer = await client.send(getLayerVersionByArnCommand)
84
- return {
85
- Arn: layerArn,
86
- Location: layer.Content?.Location
87
- }
88
- } catch (e) {
89
- if (e instanceof ResourceNotFoundException) {
90
- e.message = i18n.__('layerNotFound', {
91
- layerArn: layerDict.Arn || 'unknown_arn'
92
- })
93
- throw e
94
- }
95
- throw e
96
- }
97
- })
98
- const results = await Promise.allSettled(resultPromises)
99
- const validLayers = results.filter(layerResult => {
100
- if (layerResult.status === 'rejected') {
101
- console.warn(layerResult.reason.message)
102
- return false
103
- }
104
- return true
105
- })
106
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
107
- // @ts-ignore: value is not recognized
108
- return validLayers.map(layer => layer.value)
109
- }
110
-
111
- const getLambdaPolicies = async (
112
- functionConfiguration: FunctionConfiguration,
113
- lambdaOptions: LambdaOptions
114
- ) => {
115
- const { Role: roleArn } = functionConfiguration
116
- const roleSplitList = roleArn?.split('/')
117
-
118
- if (roleSplitList) {
119
- const roleName = roleSplitList[roleSplitList.length - 1]
120
- const client = exports.getIAMClient(lambdaOptions)
121
- const rolePolicies = await getRolePolicies(roleName, client)
122
- const attachedPolicies = await getAttachedPolicies(roleName, client)
123
- return [...rolePolicies, ...attachedPolicies]
124
- }
125
- }
126
-
127
- const getRolePolicyNames = async (roleName: string, client: IAMClient) => {
128
- const listRolePolicyNames = []
129
-
130
- try {
131
- for await (const page of paginateListRolePolicies(
132
- { client },
133
- { RoleName: roleName }
134
- )) {
135
- if (page.PolicyNames) {
136
- listRolePolicyNames.push(...page.PolicyNames)
137
- }
138
- }
139
- } catch (error) {
140
- throwAwsError(error)
141
- }
142
-
143
- return listRolePolicyNames
144
- }
145
-
146
- const getAttachedPolicyNames = async (roleName: string, client: IAMClient) => {
147
- const listAttachedPolicies = []
148
- for await (const page of paginateListAttachedRolePolicies(
149
- { client },
150
- { RoleName: roleName }
151
- )) {
152
- if (page.AttachedPolicies) {
153
- listAttachedPolicies.push(...page.AttachedPolicies)
154
- }
155
- }
156
- return listAttachedPolicies
157
- }
158
-
159
- const getRolePolicies = async (roleName: string, client: IAMClient) => {
160
- const listRolePolicyNames = await exports.getRolePolicyNames(roleName, client)
161
-
162
- if (listRolePolicyNames) {
163
- const rolePoliciesPromises = listRolePolicyNames.map(
164
- async (policyName: any) => {
165
- const getRolePolicyCommand = new GetRolePolicyCommand({
166
- PolicyName: policyName,
167
- RoleName: roleName
168
- })
169
-
170
- const rolePolicy = await client.send(getRolePolicyCommand)
171
- const policyDoc = JSON.parse(
172
- decodeURIComponent(rolePolicy?.PolicyDocument || '{}')
173
- )
174
- policyDoc.PolicyName = policyName
175
- return policyDoc
176
- }
177
- )
178
-
179
- const rolePolicies = await Promise.all(rolePoliciesPromises)
180
- return rolePolicies
181
- }
182
-
183
- return []
184
- }
185
-
186
- const getAttachedPolicies = async (roleName: string, client: IAMClient) => {
187
- const listAttachedPolicies = await exports.getAttachedPolicyNames(
188
- roleName,
189
- client
190
- )
191
- const attachedPoliciesPromises = listAttachedPolicies.map(
192
- async (policyDict: { PolicyArn: any; PolicyName: any }) => {
193
- const { PolicyArn, PolicyName } = policyDict
194
- const getPolicyCommand = new GetPolicyCommand({ PolicyArn })
195
- const policy = await client.send(getPolicyCommand)
196
-
197
- if (policy.Policy) {
198
- const getPolicyVersionCommand = new GetPolicyVersionCommand({
199
- PolicyArn: policy.Policy.Arn,
200
- VersionId: policy.Policy.DefaultVersionId
201
- })
202
- const policyVersion = await client.send(getPolicyVersionCommand)
203
- const policyDoc = JSON.parse(
204
- decodeURIComponent(policyVersion?.PolicyVersion?.Document || '{}')
205
- )
206
-
207
- policyDoc['PolicyName'] = PolicyName
208
- policyDoc['PolicyArn'] = PolicyArn
209
- return policyDoc
210
- }
211
- }
212
- )
213
-
214
- const attachedPolicies = await Promise.all(attachedPoliciesPromises)
215
- return attachedPolicies
216
- }
217
-
218
- /**
219
- *
220
- * @param error any error
221
- * @returns throw AWS error in union format
222
- */
223
- const throwAwsError = (error: any) => {
224
- const serviceError = error as LambdaServiceException
225
-
226
- if (error instanceof Error && serviceError.$metadata) {
227
- const { httpStatusCode } = serviceError.$metadata
228
- const { message } = error
229
-
230
- throw new CliError(ERRORS.AWS_ERROR, {
231
- statusCode: httpStatusCode,
232
- description: message
233
- })
234
- }
235
-
236
- throw error
237
- }
238
-
239
- export {
240
- getAttachedPolicyNames,
241
- getRolePolicyNames,
242
- getIAMClient,
243
- getLambdaClient,
244
- getLambdaFunctionConfiguration,
245
- getLayersLinks,
246
- getLambdaPolicies,
247
- throwAwsError
248
- }
@@ -1,72 +0,0 @@
1
- import i18n from 'i18n'
2
- import * as errorHandling from '../common/errorHandling'
3
-
4
- type ErrorDetails = {
5
- statusCode?: number // API statusCode
6
- errorCode?: string // internal errorCode
7
- description?: string // free usage
8
- data?: any //
9
- }
10
-
11
- class CliError extends Error {
12
- statusCode?: number
13
- errorCode?: string
14
- description?: string
15
- data?: any
16
-
17
- statusCodeDescription?: string
18
- errorCodeDescription?: string
19
-
20
- constructor(headerMessage: string, details?: ErrorDetails) {
21
- const message = i18n.__(headerMessage || '')
22
- super(message)
23
-
24
- const { statusCode, errorCode, data, description } = details || {}
25
-
26
- this.statusCode = statusCode
27
- this.errorCode = errorCode
28
- this.data = data
29
- this.description = description
30
-
31
- if (errorCode) {
32
- this.errorCodeDescription = i18n.__(errorCode || '')
33
- }
34
-
35
- if (statusCode) {
36
- this.statusCodeDescription = this.getMessageByStatusCode(statusCode)
37
- }
38
- }
39
-
40
- getErrorMessage() {
41
- let finalDesc =
42
- this.errorCodeDescription || this.statusCodeDescription || ''
43
-
44
- if (this.description) {
45
- finalDesc += finalDesc ? `\n${this.description}` : this.description
46
- }
47
- return errorHandling.getErrorMessage(this.message, finalDesc)
48
- }
49
-
50
- getMessageByStatusCode(statusCode: number) {
51
- switch (statusCode) {
52
- case 200:
53
- return ''
54
- case 400:
55
- return i18n.__('badRequestErrorHeader')
56
- case 401:
57
- return i18n.__('unauthenticatedErrorHeader')
58
- case 403:
59
- return i18n.__('forbiddenRequestErrorHeader')
60
- case 404:
61
- return i18n.__('not_found_404')
62
- case 423:
63
- return i18n.__('resourceLockedErrorHeader')
64
- case 500:
65
- return i18n.__('internalServerErrorHeader')
66
- default:
67
- return i18n.__('something_went_wrong')
68
- }
69
- }
70
- }
71
-
72
- export { CliError }
@@ -1,11 +0,0 @@
1
- // TODO: don't forget to add translation in `src/constants/lambda.js` for each value
2
-
3
- const ERRORS = Object.freeze({
4
- AWS_ERROR: 'awsError',
5
- FAILED_TO_START_SCAN: 'failedToStartScan',
6
- FAILED_TO_GET_SCAN: 'failedToGetScan',
7
- FAILED_TO_GET_RESULTS: 'failedToGetResults',
8
- VALIDATION_FAILED: 'validationFailed'
9
- })
10
-
11
- export { ERRORS }
@@ -1,92 +0,0 @@
1
- import commandLineUsage from 'command-line-usage'
2
- import i18n from 'i18n'
3
- import { commonHelpLinks } from '../common/commonHelp'
4
-
5
- const lambdaUsageGuide = commandLineUsage([
6
- {
7
- header: i18n.__('constantsHeader')
8
- },
9
- {
10
- header: i18n.__('lambdaHeader'),
11
- content: [i18n.__('lambdaSummary')]
12
- },
13
- {
14
- header: i18n.__('constantsPrerequisitesHeader'),
15
- content: [
16
- '{bold ' +
17
- i18n.__('lambdaPrerequisitesContentLambdaLanguages') +
18
- '}\n\n' +
19
- '{bold ' +
20
- i18n.__('lambdaPrerequisitesContentLambdaDescriptionTitle') +
21
- '}' +
22
- i18n.__('lambdaPrerequisitesContentLambdaDescription')
23
- ]
24
- },
25
- {
26
- header: i18n.__('constantsUsage'),
27
- content: [i18n.__('lambdaUsage')]
28
- },
29
- {
30
- header: i18n.__('constantsOptions'),
31
- content: [
32
- {
33
- name: '{bold ' + i18n.__('lambdaFunctionNameOption') + '}',
34
- summary: i18n.__('lambdaFunctionNameSummery')
35
- },
36
- {
37
- name: '{bold ' + i18n.__('lambdaListFunctionsOption') + '}',
38
- summary: i18n.__('lambdaListFunctionsSummery')
39
- },
40
- {
41
- name: '{bold ' + i18n.__('lambdaEndpointOption') + '}',
42
- summary:
43
- '{bold ' +
44
- i18n.__('constantsOptional') +
45
- '}: ' +
46
- i18n.__('lambdaEndpointSummery')
47
- },
48
- {
49
- name: '{bold ' + i18n.__('lambdaRegionOption') + '}',
50
- summary:
51
- '{bold ' +
52
- i18n.__('constantsOptional') +
53
- '}: ' +
54
- i18n.__('lambdaRegionSummery')
55
- },
56
- {
57
- name: '{bold ' + i18n.__('lambdaProfileOption') + '}',
58
- summary:
59
- '{bold ' +
60
- i18n.__('constantsOptional') +
61
- '}: ' +
62
- i18n.__('lambdaProfileSummery')
63
- },
64
- {
65
- name: '{bold ' + i18n.__('lambdaJsonOption') + '}',
66
- summary:
67
- '{bold ' +
68
- i18n.__('constantsOptional') +
69
- '}: ' +
70
- i18n.__('lambdaJsonSummery')
71
- },
72
- {
73
- name: '{bold ' + i18n.__('lambdaVerboseOption') + '}',
74
- summary:
75
- '{bold ' +
76
- i18n.__('constantsOptional') +
77
- '}: ' +
78
- i18n.__('lambdaVerbosSummery')
79
- }
80
- ]
81
- },
82
- {
83
- content: [
84
- { name: i18n.__('lambdaHelpOption'), summary: i18n.__('helpSummary') }
85
- ]
86
- },
87
- commonHelpLinks()[0],
88
- commonHelpLinks()[1],
89
- commonHelpLinks()[2]
90
- ])
91
-
92
- export { lambdaUsageGuide }