@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,10 +1,9 @@
1
- "use strict";
2
- const g2js = require('gradle-to-js/lib/parser');
3
- const readBuildGradleFile = async (project) => {
1
+ import { parseFile } from 'gradle-to-js/lib/parser.js';
2
+ export const readBuildGradleFile = async (project) => {
4
3
  const gradleFilePath = project.cwd + '/build.gradle';
5
- return await g2js.parseFile(gradleFilePath);
4
+ return await parseFile(gradleFilePath);
6
5
  };
7
- const filterGav = (groupId, artifactId, version, gradleJson) => {
6
+ export const filterGav = (groupId, artifactId, version, gradleJson) => {
8
7
  if (groupId === '') {
9
8
  if (artifactId.includes(':')) {
10
9
  groupId = artifactId.split(':')[0].replace("'", '');
@@ -25,7 +24,7 @@ const filterGav = (groupId, artifactId, version, gradleJson) => {
25
24
  }
26
25
  return { groupId, artifactId, version };
27
26
  };
28
- const parseGradleJson = gradleJson => {
27
+ export const parseGradleJson = gradleJson => {
29
28
  let deps = gradleJson.dependencies;
30
29
  let dependencyTree = {};
31
30
  if (deps === undefined) {
@@ -57,7 +56,7 @@ const parseGradleJson = gradleJson => {
57
56
  }
58
57
  return dependencyTree;
59
58
  };
60
- const getVersion = (gradleJson, dependencyWithoutVersion) => {
59
+ export const getVersion = (gradleJson, dependencyWithoutVersion) => {
61
60
  let parentVersion = gradleJson.plugins[0].version;
62
61
  let parentGroupName = gradleJson.plugins[0].id;
63
62
  if (parentGroupName === dependencyWithoutVersion) {
@@ -67,9 +66,4 @@ const getVersion = (gradleJson, dependencyWithoutVersion) => {
67
66
  return null;
68
67
  }
69
68
  };
70
- module.exports = {
71
- readBuildGradleFile,
72
- parseGradleJson,
73
- getVersion,
74
- filterGav
75
- };
69
+ //# sourceMappingURL=gradleParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gradleParser.js","sourceRoot":"","sources":["../../../src/scaAnalysis/repoMode/gradleParser.js"],"names":[],"mappings":"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"}
@@ -1,21 +1,18 @@
1
- "use strict";
2
- const mavenParser = require('./mavenParser');
3
- const gradleParser = require('./gradleParser');
4
- const { determineProjectTypeAndCwd } = require('../java/analysis');
5
- const buildRepo = async (config, languageFiles) => {
1
+ import { readPomFile, parsePomFile } from './mavenParser.js';
2
+ import { readBuildGradleFile, parseGradleJson } from './gradleParser.js';
3
+ import { determineProjectTypeAndCwd } from '../java/analysis.js';
4
+ export const buildRepo = async (config, languageFiles) => {
6
5
  const project = determineProjectTypeAndCwd(languageFiles.JAVA, config);
7
6
  if (project.projectType === 'maven') {
8
- let jsonPomFile = mavenParser.readPomFile(project);
9
- return mavenParser.parsePomFile(jsonPomFile);
7
+ let jsonPomFile = readPomFile(project);
8
+ return parsePomFile(jsonPomFile);
10
9
  }
11
10
  else if (project.projectType === 'gradle') {
12
- const gradleJson = gradleParser.readBuildGradleFile(project);
13
- return gradleParser.parseGradleJson(await gradleJson);
11
+ const gradleJson = readBuildGradleFile(project);
12
+ return parseGradleJson(await gradleJson);
14
13
  }
15
14
  else {
16
15
  console.log('Unable to read project files.');
17
16
  }
18
17
  };
19
- module.exports = {
20
- buildRepo
21
- };
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scaAnalysis/repoMode/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAEhE,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;IACvD,MAAM,OAAO,GAAG,0BAA0B,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAEtE,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,EAAE;QACnC,IAAI,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QACtC,OAAO,YAAY,CAAC,WAAW,CAAC,CAAA;KACjC;SAAM,IAAI,OAAO,CAAC,WAAW,KAAK,QAAQ,EAAE;QAC3C,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAC/C,OAAO,eAAe,CAAC,MAAM,UAAU,CAAC,CAAA;KACzC;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;KAC7C;AACH,CAAC,CAAA"}
@@ -1,13 +1,12 @@
1
- "use strict";
2
- const fs = require('fs');
3
- const { XMLParser } = require('fast-xml-parser');
4
- const readPomFile = project => {
1
+ import { readFileSync } from 'fs';
2
+ import { XMLParser } from 'fast-xml-parser';
3
+ export const readPomFile = project => {
5
4
  const mavenFilePath = project.cwd + '/pom.xml';
6
- const projectFile = fs.readFileSync(mavenFilePath);
5
+ const projectFile = readFileSync(mavenFilePath);
7
6
  const parser = new XMLParser();
8
7
  return parser.parse(projectFile);
9
8
  };
10
- const parsePomFile = jsonPomFile => {
9
+ export const parsePomFile = jsonPomFile => {
11
10
  let dependencyTree = {};
12
11
  let dependencies = [];
13
12
  let dependencyManagement = [];
@@ -18,6 +17,8 @@ const parsePomFile = jsonPomFile => {
18
17
  dependencyManagement =
19
18
  jsonPomFile.project.dependencyManagement.dependencies.dependency;
20
19
  }
20
+ //merge dependencies with dependencyManagement deps
21
+ //filter out any that don't appear in both by groupId and artifactId
21
22
  const mergedAndFilteredDeps = dependencies.map(obj1 => {
22
23
  const obj2 = dependencyManagement.find(obj2 => obj2.groupId === obj1.groupId && obj2.artifactId === obj1.artifactId);
23
24
  return obj2 ? { ...obj1, ...obj2 } : obj1;
@@ -43,7 +44,7 @@ const buildParent = parent => {
43
44
  version: parent.version
44
45
  };
45
46
  };
46
- const getVersionFromParent = (parentObj, dependencyWithoutVersion) => {
47
+ export const getVersionFromParent = (parentObj, dependencyWithoutVersion) => {
47
48
  const { groupId, version } = parentObj;
48
49
  if (groupId === dependencyWithoutVersion.groupId) {
49
50
  return version;
@@ -67,6 +68,7 @@ const getVersionFromProperties = (properties, dep) => {
67
68
  const buildDependencies = (dependencies, dependencyTree, jsonPomFile) => {
68
69
  const parent = getParentDependency(jsonPomFile);
69
70
  for (const dep of dependencies) {
71
+ //sometimes versions are parsed as numbers, convert to string
70
72
  const versionAsString = dep.version ? dep.version.toString() : dep.version;
71
73
  if (versionAsString && !versionAsString.includes('${')) {
72
74
  const depName = dep.groupId + '/' + dep.artifactId + '@' + versionAsString;
@@ -79,6 +81,7 @@ const buildDependencies = (dependencies, dependencyTree, jsonPomFile) => {
79
81
  }
80
82
  else if (!dep.version) {
81
83
  if (parent && parent.version) {
84
+ //get version where group matches from parent tag
82
85
  const { parent } = jsonPomFile.project;
83
86
  const parsedVersion = getVersionFromParent(parent, dep);
84
87
  const depName = dep.groupId + '/' + dep.artifactId + '@' + parsedVersion;
@@ -88,6 +91,7 @@ const buildDependencies = (dependencies, dependencyTree, jsonPomFile) => {
88
91
  }
89
92
  };
90
93
  const searchAndBuildFromProperties = (jsonPomFile, dep, dependencyTree) => {
94
+ //get version from properties tag
91
95
  const { properties } = jsonPomFile.project;
92
96
  let versionFromProperties = getVersionFromProperties(properties, dep);
93
97
  if (versionFromProperties) {
@@ -110,8 +114,4 @@ const buildDep = (dep, version) => {
110
114
  dependencies: []
111
115
  };
112
116
  };
113
- module.exports = {
114
- readPomFile,
115
- getVersionFromParent,
116
- parsePomFile
117
- };
117
+ //# sourceMappingURL=mavenParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mavenParser.js","sourceRoot":"","sources":["../../../src/scaAnalysis/repoMode/mavenParser.js"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- "use strict";
2
- const fs = require('fs');
3
- const i18n = require('i18n');
4
- const getRubyDeps = (config, languageFiles) => {
1
+ import { readFileSync } from 'fs';
2
+ import i18n from 'i18n';
3
+ const { __ } = i18n;
4
+ export const getRubyDeps = (config, languageFiles) => {
5
+ // eslint-disable-next-line no-useless-catch
5
6
  try {
6
7
  checkForCorrectFiles(languageFiles);
7
8
  const parsedGem = readAndParseGemfile(config.file);
@@ -21,8 +22,8 @@ const getRubyDeps = (config, languageFiles) => {
21
22
  throw err;
22
23
  }
23
24
  };
24
- const readAndParseGemfile = file => {
25
- const gemFile = fs.readFileSync(file + '/Gemfile', 'utf8');
25
+ export const readAndParseGemfile = file => {
26
+ const gemFile = readFileSync(file + '/Gemfile', 'utf8');
26
27
  const rubyArray = gemFile.split('\n');
27
28
  let filteredRubyDep = rubyArray.filter(element => {
28
29
  return (!element.includes('#') &&
@@ -34,8 +35,8 @@ const readAndParseGemfile = file => {
34
35
  }
35
36
  return filteredRubyDep;
36
37
  };
37
- const readAndParseGemLockFile = file => {
38
- const lockFile = fs.readFileSync(file + '/Gemfile.lock', 'utf8');
38
+ export const readAndParseGemLockFile = file => {
39
+ const lockFile = readFileSync(file + '/Gemfile.lock', 'utf8');
39
40
  const dependencyRegEx = /^\s*([A-Za-z0-9.!@#$%\-^&*_+]*)\s*(\((.*?)\))/;
40
41
  const lines = lockFile.split('\n');
41
42
  return {
@@ -44,7 +45,7 @@ const readAndParseGemLockFile = file => {
44
45
  sources: getSourceArray(lines, dependencyRegEx)
45
46
  };
46
47
  };
47
- const nonDependencyKeys = (line, sourceObject) => {
48
+ export const nonDependencyKeys = (line, sourceObject) => {
48
49
  const GEMFILE_KEY_VALUE = /^\s*([^:(]*)\s*\:*\s*(.*)/;
49
50
  let parts = GEMFILE_KEY_VALUE.exec(line);
50
51
  let key = parts[1].trim();
@@ -52,16 +53,16 @@ const nonDependencyKeys = (line, sourceObject) => {
52
53
  sourceObject[key] = value;
53
54
  return sourceObject;
54
55
  };
55
- const populateResolveAndPlatform = (version, sourceObject) => {
56
+ export const populateResolveAndPlatform = (version, sourceObject) => {
56
57
  const depArr = version.split('-');
57
58
  sourceObject.resolved = depArr[0];
58
59
  sourceObject.platform = depArr.length > 1 ? depArr[1] : 'UNSPECIFIED';
59
60
  return sourceObject;
60
61
  };
61
- const isUpperCase = str => {
62
+ export const isUpperCase = str => {
62
63
  return str === str.toUpperCase();
63
64
  };
64
- const getDirectDependencies = (lines, dependencyRegEx) => {
65
+ export const getDirectDependencies = (lines, dependencyRegEx) => {
65
66
  const dependencies = {};
66
67
  let depIndex = 0;
67
68
  for (let i = 0; i < lines.length; i++) {
@@ -89,7 +90,7 @@ const getDirectDependencies = (lines, dependencyRegEx) => {
89
90
  }
90
91
  return dependencies;
91
92
  };
92
- const getLockFileRuntimeInfo = lines => {
93
+ export const getLockFileRuntimeInfo = lines => {
93
94
  let rubVersionIndex = 0;
94
95
  for (let i = 0; i < lines.length; i++) {
95
96
  if (lines[i] === 'RUBY VERSION') {
@@ -113,7 +114,7 @@ const getLockFileRuntimeInfo = lines => {
113
114
  }
114
115
  return runtimeDetails;
115
116
  };
116
- const getVersion = element => {
117
+ export const getVersion = element => {
117
118
  const versionRegex = /^([ruby\s0-9.*]+)/;
118
119
  if (versionRegex.test(element)) {
119
120
  let version = versionRegex.exec(element)[0];
@@ -122,13 +123,13 @@ const getVersion = element => {
122
123
  }
123
124
  }
124
125
  };
125
- const getPatchLevel = element => {
126
+ export const getPatchLevel = element => {
126
127
  const patchLevelRegex = /(p\d+)/;
127
128
  if (patchLevelRegex.test(element)) {
128
129
  return patchLevelRegex.exec(element)[0];
129
130
  }
130
131
  };
131
- const formatSourceArr = sourceArr => {
132
+ export const formatSourceArr = sourceArr => {
132
133
  return sourceArr.map(element => {
133
134
  if (element.sourceType === 'GIT') {
134
135
  delete element.specs;
@@ -149,7 +150,7 @@ const formatSourceArr = sourceArr => {
149
150
  return element;
150
151
  });
151
152
  };
152
- const getSourceArray = (lines, dependencyRegEx) => {
153
+ export const getSourceArray = (lines, dependencyRegEx) => {
153
154
  const sourceObject = {
154
155
  dependencies: {}
155
156
  };
@@ -176,6 +177,7 @@ const getSourceArray = (lines, dependencyRegEx) => {
176
177
  populateResolveAndPlatform(dependency[3], sourceObject);
177
178
  }
178
179
  if (currentWS === 4 && sourceObject.depthLevel) {
180
+ // create new Parent
179
181
  const dependency = dependencyRegEx.exec(line);
180
182
  sourceObject.name = dependency[1];
181
183
  sourceObject.depthLevel = currentWS;
@@ -194,7 +196,7 @@ const getSourceArray = (lines, dependencyRegEx) => {
194
196
  }
195
197
  return formatSourceArr(sources);
196
198
  };
197
- const buildSourceDependencyWithVersion = (whitespaceRegx, dependencyRegEx, line, currentWhiteSpace, name, dependencies) => {
199
+ export const buildSourceDependencyWithVersion = (whitespaceRegx, dependencyRegEx, line, currentWhiteSpace, name, dependencies) => {
198
200
  const isDependencyWithVersion = dependencyRegEx.test(line);
199
201
  if (currentWhiteSpace === 6) {
200
202
  const dependency = dependencyRegEx.exec(line);
@@ -209,10 +211,11 @@ const buildSourceDependencyWithVersion = (whitespaceRegx, dependencyRegEx, line,
209
211
  }
210
212
  return dependencies;
211
213
  };
212
- const processRootDependencies = (rootDependencies, rubyTree) => {
214
+ export const processRootDependencies = (rootDependencies, rubyTree) => {
213
215
  const getParentObjectByName = queryToken => Object.values(rubyTree).filter(({ name }) => name === queryToken);
214
216
  for (let parent in rootDependencies) {
215
217
  let parentObject = getParentObjectByName(parent);
218
+ // ignore root dependencies that don't have a resolved version
216
219
  if (parentObject[0]) {
217
220
  let gav = parentObject[0].group +
218
221
  '/' +
@@ -225,7 +228,7 @@ const processRootDependencies = (rootDependencies, rubyTree) => {
225
228
  }
226
229
  return rubyTree;
227
230
  };
228
- const createRubyTree = rubyArray => {
231
+ export const createRubyTree = rubyArray => {
229
232
  let rubyTree = {};
230
233
  for (let x in rubyArray) {
231
234
  let version = rubyArray[x].resolved;
@@ -233,6 +236,7 @@ const createRubyTree = rubyArray => {
233
236
  rubyTree[gav] = rubyArray[x];
234
237
  rubyTree[gav].directDependency = false;
235
238
  rubyTree[gav].version = version;
239
+ // add dependency array if none exists
236
240
  if (!rubyTree[gav].dependencies) {
237
241
  rubyTree[gav].dependencies = [];
238
242
  }
@@ -240,13 +244,13 @@ const createRubyTree = rubyArray => {
240
244
  }
241
245
  return rubyTree;
242
246
  };
243
- const findChildrenDependencies = rubyTree => {
247
+ export const findChildrenDependencies = rubyTree => {
244
248
  for (let dep in rubyTree) {
245
249
  let unResolvedChildDepsKey = Object.keys(rubyTree[dep].dependencies);
246
250
  rubyTree[dep].dependencies = resolveVersionOfChildDependencies(unResolvedChildDepsKey, rubyTree);
247
251
  }
248
252
  };
249
- const resolveVersionOfChildDependencies = (unResolvedChildDepsKey, rubyObject) => {
253
+ export const resolveVersionOfChildDependencies = (unResolvedChildDepsKey, rubyObject) => {
250
254
  const getParentObjectByName = queryToken => Object.values(rubyObject).filter(({ name }) => name === queryToken);
251
255
  let resolvedChildrenDependencies = [];
252
256
  for (let childDep in unResolvedChildDepsKey) {
@@ -256,7 +260,7 @@ const resolveVersionOfChildDependencies = (unResolvedChildDepsKey, rubyObject) =
256
260
  }
257
261
  return resolvedChildrenDependencies;
258
262
  };
259
- const removeRedundantAndPopulateDefinedElements = deps => {
263
+ export const removeRedundantAndPopulateDefinedElements = deps => {
260
264
  return deps.map(element => {
261
265
  if (element.sourceType === 'GIT') {
262
266
  delete element.sourceType;
@@ -293,33 +297,15 @@ const removeRedundantAndPopulateDefinedElements = deps => {
293
297
  return element;
294
298
  });
295
299
  };
296
- const checkForCorrectFiles = languageFiles => {
300
+ export const checkForCorrectFiles = languageFiles => {
297
301
  if (!languageFiles.includes('Gemfile.lock')) {
298
- throw new Error(i18n.__('languageAnalysisHasNoLockFile', 'ruby'));
302
+ throw new Error(__('languageAnalysisHasNoLockFile', 'ruby'));
299
303
  }
300
304
  if (!languageFiles.includes('Gemfile')) {
301
- throw new Error(i18n.__('languageAnalysisProjectFileError', 'ruby'));
305
+ throw new Error(__('languageAnalysisProjectFileError', 'ruby'));
302
306
  }
303
307
  };
304
- const trimWhiteSpace = string => {
308
+ export const trimWhiteSpace = string => {
305
309
  return string.replace(/\s+/g, '');
306
310
  };
307
- module.exports = {
308
- getRubyDeps,
309
- readAndParseGemfile,
310
- readAndParseGemLockFile,
311
- nonDependencyKeys,
312
- populateResolveAndPlatform,
313
- isUpperCase,
314
- getDirectDependencies,
315
- getLockFileRuntimeInfo,
316
- getVersion,
317
- getPatchLevel,
318
- formatSourceArr,
319
- getSourceArray,
320
- checkForCorrectFiles,
321
- removeRedundantAndPopulateDefinedElements,
322
- createRubyTree,
323
- findChildrenDependencies,
324
- processRootDependencies
325
- };
311
+ //# sourceMappingURL=analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/scaAnalysis/ruby/analysis.js"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- "use strict";
2
- const analysis = require('./analysis');
3
- const { createRubyTSMessage } = require('../common/formatMessage');
4
- const rubyAnalysis = (config, languageFiles) => {
5
- const rubyDeps = analysis.getRubyDeps(config, languageFiles.RUBY);
1
+ import { getRubyDeps } from './analysis.js';
2
+ import { createRubyTSMessage } from '../common/formatMessage.js';
3
+ export const rubyAnalysis = (config, languageFiles) => {
4
+ const rubyDeps = getRubyDeps(config, languageFiles.RUBY);
6
5
  if (config.legacy === false) {
7
6
  return rubyDeps;
8
7
  }
@@ -10,6 +9,4 @@ const rubyAnalysis = (config, languageFiles) => {
10
9
  return createRubyTSMessage(rubyDeps);
11
10
  }
12
11
  };
13
- module.exports = {
14
- rubyAnalysis
15
- };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scaAnalysis/ruby/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE;IACpD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAExD,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE;QAC3B,OAAO,QAAQ,CAAA;KAChB;SAAM;QACL,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAA;KACrC;AACH,CAAC,CAAA"}
@@ -1,44 +1,45 @@
1
- "use strict";
2
- const { supportedLanguages: { JAVA, GO, PYTHON, RUBY, JAVASCRIPT, NODE, PHP, DOTNET } } = require('../constants/constants');
3
- const { returnOra, startSpinner, succeedSpinner } = require('../utils/oraWrapper');
4
- const autoDetection = require('../common/autoDetection');
5
- const rootFile = require('../audit/languageAnalysisEngine/getProjectRootFilenames');
6
- const path = require('path');
7
- const i18n = require('i18n');
8
- const { auditUsageGuide } = require('../commands/audit/help');
9
- const repoMode = require('./repoMode');
10
- const { dotNetAnalysis } = require('./dotnet');
11
- const { goAnalysis } = require('./go/goAnalysis');
12
- const { phpAnalysis } = require('./php');
13
- const { rubyAnalysis } = require('./ruby');
14
- const { pythonAnalysis } = require('./python');
15
- const javaAnalysis = require('./java');
16
- const jsAnalysis = require('./javascript');
17
- const auditReport = require('./common/auditReport');
18
- const processServices = require('./processServicesFlow');
19
- const chalk = require('chalk');
20
- const { convertGenericToTypedReportModelSca } = require('./common/utils/reportUtilsSca');
21
- const projectConfig = require('../commands/github/projectGroup');
22
- const { legacyFlow } = require('./legacy/legacyFlow');
23
- const processSca = async (config) => {
1
+ import { autoDetectAuditFilesAndLanguages, detectPackageManager, dealWithMultiJava } from '../common/autoDetection.js';
2
+ import { getProjectStats, getDirectoryFromPathGiven } from '../audit/languageAnalysisEngine/getProjectRootFilenames.js';
3
+ import { basename } from 'path';
4
+ import i18n from 'i18n';
5
+ import { buildRepo } from './repoMode/index.js';
6
+ import { dotNetAnalysis } from './dotnet/index.js';
7
+ import { goAnalysis } from './go/goAnalysis.js';
8
+ import { phpAnalysis } from './php/index.js';
9
+ import { rubyAnalysis } from './ruby/index.js';
10
+ import { pythonAnalysis } from './python/index.js';
11
+ import { javaAnalysis } from './java/index.js';
12
+ import { jsAnalysis } from './javascript/index.js';
13
+ import { processAuditReport } from './common/auditReport.js';
14
+ import { processUpload } from './processServicesFlow.js';
15
+ import { convertGenericToTypedReportModelSca } from './common/utils/reportUtilsSca.js';
16
+ import { dealWithNoName } from '../commands/github/projectGroup.js';
17
+ import { legacyFlow } from './legacy/legacyFlow.js';
18
+ import { DOTNET, GO, JAVA, JAVASCRIPT, NODE, PHP, PYTHON, RUBY } from '../constants/constants.js';
19
+ import { returnOra, startSpinner, succeedSpinner } from '../utils/oraWrapper.js';
20
+ import { auditUsageGuide } from '../commands/audit/help.js';
21
+ import chalk from 'chalk';
22
+ export const processSca = async (config) => {
24
23
  let filesFound;
25
24
  if (config.help) {
26
25
  console.log(auditUsageGuide);
27
26
  process.exit(0);
28
27
  }
29
28
  config.repo = config.repositoryId !== undefined;
30
- const projectStats = await rootFile.getProjectStats(config.file);
29
+ const projectStats = await getProjectStats(config.file);
31
30
  let pathWithFile = projectStats.isFile();
32
31
  config.fileName = config.file;
33
32
  config.file = pathWithFile
34
- ? rootFile.getDirectoryFromPathGiven(config.file).concat('/')
33
+ ? getDirectoryFromPathGiven(config.file).concat('/')
35
34
  : config.file;
36
- filesFound = await autoDetection.autoDetectAuditFilesAndLanguages(config.file);
37
- filesFound = await autoDetection.detectPackageManager(filesFound);
38
- autoDetection.dealWithMultiJava(filesFound, config, pathWithFile);
35
+ filesFound = await autoDetectAuditFilesAndLanguages(config.file);
36
+ filesFound = await detectPackageManager(filesFound);
37
+ dealWithMultiJava(filesFound, config, pathWithFile);
39
38
  if (filesFound.length > 1 && pathWithFile) {
40
- filesFound = filesFound.filter(i => Object.values(i)[0].includes(path.basename(config.fileName)));
39
+ filesFound = filesFound.filter(i => Object.values(i)[0].includes(basename(config.fileName)));
41
40
  }
41
+ // files found looks like [ { javascript: [ Array ] } ]
42
+ //check we have the language and call the right analyser
42
43
  let messageToSend = undefined;
43
44
  if (filesFound.length === 1) {
44
45
  config.packageManager = filesFound[0]?.packageManager;
@@ -47,18 +48,18 @@ const processSca = async (config) => {
47
48
  config.language = JAVA;
48
49
  if (config.repo && !config.legacy) {
49
50
  try {
50
- messageToSend = await repoMode.buildRepo(config, filesFound[0]);
51
+ messageToSend = await buildRepo(config, filesFound[0]);
51
52
  }
52
53
  catch (e) {
53
54
  throw new Error('Unable to build in repository mode. Check your project file');
54
55
  }
55
56
  }
56
57
  else {
57
- messageToSend = await javaAnalysis.javaAnalysis(config, filesFound[0]);
58
+ messageToSend = await javaAnalysis(config, filesFound[0]);
58
59
  }
59
60
  break;
60
61
  case JAVASCRIPT:
61
- messageToSend = await jsAnalysis.jsAnalysis(config, filesFound[0]);
62
+ messageToSend = await jsAnalysis(config, filesFound[0]);
62
63
  config.language = NODE;
63
64
  break;
64
65
  case PYTHON:
@@ -88,20 +89,21 @@ const processSca = async (config) => {
88
89
  break;
89
90
  }
90
91
  default:
92
+ //something is wrong
91
93
  console.log('No supported language detected in project path');
92
94
  return;
93
95
  }
94
96
  if (config.legacy === false) {
95
97
  if (!config.name) {
96
- config = await projectConfig.dealWithNoName(config);
98
+ config = await dealWithNoName(config);
97
99
  }
98
100
  const startTime = performance.now();
99
- console.log('');
101
+ console.log(''); //empty log for space before spinner
100
102
  const reportSpinner = returnOra(i18n.__('auditSCAAnalysisBegins'));
101
103
  startSpinner(reportSpinner);
102
- let reportResponse = await processServices.processUpload(messageToSend, config, reportSpinner);
104
+ let reportResponse = await processUpload(messageToSend, config, reportSpinner);
103
105
  const reportModelLibraryList = convertGenericToTypedReportModelSca(reportResponse.reportArray);
104
- await auditReport.processAuditReport(config, reportModelLibraryList, reportResponse.reportId);
106
+ await processAuditReport(config, reportModelLibraryList, reportResponse.reportId);
105
107
  succeedSpinner(reportSpinner, i18n.__('auditSCAAnalysisComplete'));
106
108
  const endTime = performance.now() - startTime;
107
109
  const scanDurationMs = endTime - startTime;
@@ -111,21 +113,17 @@ const processSca = async (config) => {
111
113
  await legacyFlow(config, messageToSend);
112
114
  }
113
115
  }
116
+ else if (filesFound.length === 0) {
117
+ console.log(i18n.__('languageAnalysisNoLanguage'));
118
+ console.log(i18n.__('languageAnalysisNoLanguageHelpLine'));
119
+ throw new Error();
120
+ }
114
121
  else {
115
- if (filesFound.length === 0) {
116
- console.log(i18n.__('languageAnalysisNoLanguage'));
117
- console.log(i18n.__('languageAnalysisNoLanguageHelpLine'));
118
- throw new Error();
119
- }
120
- else {
121
- console.log(chalk.bold(`\nMultiple language files detected \n`));
122
- filesFound.forEach(file => {
123
- console.log(`${Object.keys(file)[0]} : `, Object.values(file)[0]);
124
- });
125
- throw new Error(`Please use --file to audit one language only. \nExample: contrast audit --file package-lock.json`);
126
- }
122
+ console.log(chalk.bold(`\nMultiple language files detected \n`));
123
+ filesFound.forEach(file => {
124
+ console.log(`${Object.keys(file)[0]} : `, Object.values(file)[0]);
125
+ });
126
+ throw new Error(`Please use --file to audit one language only. \nExample: contrast audit --file package-lock.json`);
127
127
  }
128
128
  };
129
- module.exports = {
130
- processSca
131
- };
129
+ //# sourceMappingURL=scaAnalysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaAnalysis.js","sourceRoot":"","sources":["../../src/scaAnalysis/scaAnalysis.js"],"names":[],"mappings":"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"}