@contrast/contrast 2.0.2-beta.2 → 2.0.2-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -1
- package/dist/audit/catalogueApplication/catalogueApplication.js +6 -10
- package/dist/audit/catalogueApplication/catalogueApplication.js.map +1 -0
- package/dist/audit/languageAnalysisEngine/commonApi.js +3 -6
- package/dist/audit/languageAnalysisEngine/commonApi.js.map +1 -0
- package/dist/audit/languageAnalysisEngine/filterProjectPath.js +1 -0
- package/dist/audit/languageAnalysisEngine/filterProjectPath.js.map +1 -0
- package/dist/audit/languageAnalysisEngine/getProjectRootFilenames.js +9 -12
- package/dist/audit/languageAnalysisEngine/getProjectRootFilenames.js.map +1 -0
- package/dist/audit/languageAnalysisEngine/sendSnapshot.js +15 -19
- package/dist/audit/languageAnalysisEngine/sendSnapshot.js.map +1 -0
- package/dist/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js +9 -9
- package/dist/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js.map +1 -0
- package/dist/audit/report/commonReportingFunctions.js +33 -48
- package/dist/audit/report/commonReportingFunctions.js.map +1 -0
- package/dist/audit/report/models/reportGuidanceModel.js +2 -5
- package/dist/audit/report/models/reportGuidanceModel.js.map +1 -0
- package/dist/audit/report/models/reportLibraryModel.js +3 -7
- package/dist/audit/report/models/reportLibraryModel.js.map +1 -0
- package/dist/audit/report/models/reportListModel.js +4 -9
- package/dist/audit/report/models/reportListModel.js.map +1 -0
- package/dist/audit/report/models/reportOutputModel.js +4 -9
- package/dist/audit/report/models/reportOutputModel.js.map +1 -0
- package/dist/audit/report/models/reportSeverityModel.js +2 -5
- package/dist/audit/report/models/reportSeverityModel.js.map +1 -0
- package/dist/audit/report/models/severityCountModel.js +3 -5
- package/dist/audit/report/models/severityCountModel.js.map +1 -0
- package/dist/audit/report/reportingFeature.js +27 -55
- package/dist/audit/report/reportingFeature.js.map +1 -0
- package/dist/audit/report/utils/reportUtils.js +28 -59
- package/dist/audit/report/utils/reportUtils.js.map +1 -0
- package/dist/audit/save.js +14 -16
- package/dist/audit/save.js.map +1 -0
- package/dist/cliConstants.js +17 -18
- package/dist/cliConstants.js.map +1 -0
- package/dist/commands/audit/auditConfig.js +7 -10
- package/dist/commands/audit/auditConfig.js.map +1 -0
- package/dist/commands/audit/auditController.js +9 -13
- package/dist/commands/audit/auditController.js.map +1 -0
- package/dist/commands/audit/help.js +23 -25
- package/dist/commands/audit/help.js.map +1 -0
- package/dist/commands/audit/processAudit.js +9 -12
- package/dist/commands/audit/processAudit.js.map +1 -0
- package/dist/commands/audit/saveFile.js +3 -6
- package/dist/commands/audit/saveFile.js.map +1 -0
- package/dist/commands/auth/auth.js +25 -24
- package/dist/commands/auth/auth.js.map +1 -0
- package/dist/commands/config/config.js +12 -13
- package/dist/commands/config/config.js.map +1 -0
- package/dist/commands/github/fingerprintConfig.js +8 -11
- package/dist/commands/github/fingerprintConfig.js.map +1 -0
- package/dist/commands/github/processFingerprint.js +12 -15
- package/dist/commands/github/processFingerprint.js.map +1 -0
- package/dist/commands/github/projectGroup.js +25 -32
- package/dist/commands/github/projectGroup.js.map +1 -0
- package/dist/commands/github/repoServices.js +11 -21
- package/dist/commands/github/repoServices.js.map +1 -0
- package/dist/commands/learn/learn.js +3 -6
- package/dist/commands/learn/learn.js.map +1 -0
- package/dist/commands/learn/processLearn.js +3 -6
- package/dist/commands/learn/processLearn.js.map +1 -0
- package/dist/commands/scan/processScan.js +11 -14
- package/dist/commands/scan/processScan.js.map +1 -0
- package/dist/common/HTTPClient.js +123 -94
- package/dist/common/HTTPClient.js.map +1 -0
- package/dist/common/autoDetection.js +26 -33
- package/dist/common/autoDetection.js.map +1 -0
- package/dist/common/baseRequest.js +14 -18
- package/dist/common/baseRequest.js.map +1 -0
- package/dist/common/commonHelp.js +13 -13
- package/dist/common/commonHelp.js.map +1 -0
- package/dist/common/errorHandling.js +30 -39
- package/dist/common/errorHandling.js.map +1 -0
- package/dist/common/fail.js +6 -12
- package/dist/common/fail.js.map +1 -0
- package/dist/common/versionChecker.js +16 -19
- package/dist/common/versionChecker.js.map +1 -0
- package/dist/constants/constants.js +44 -65
- package/dist/constants/constants.js.map +1 -0
- package/dist/constants/lambda.js +8 -5
- package/dist/constants/lambda.js.map +1 -0
- package/dist/constants/locales.js +6 -9
- package/dist/constants/locales.js.map +1 -0
- package/dist/index.js +36 -39
- package/dist/index.js.map +1 -0
- package/dist/lambda/analytics.js +6 -9
- package/dist/lambda/analytics.js.map +1 -0
- package/dist/lambda/arn.js +6 -9
- package/dist/lambda/arn.js.map +1 -0
- package/dist/lambda/aws.js +29 -34
- package/dist/lambda/aws.js.map +1 -0
- package/dist/lambda/cliError.js +13 -41
- package/dist/lambda/cliError.js.map +1 -0
- package/dist/lambda/constants.js +3 -4
- package/dist/lambda/constants.js.map +1 -0
- package/dist/lambda/help.js +39 -44
- package/dist/lambda/help.js.map +1 -0
- package/dist/lambda/lambda.js +61 -65
- package/dist/lambda/lambda.js.map +1 -0
- package/dist/lambda/lambdaUtils.js +38 -32
- package/dist/lambda/lambdaUtils.js.map +1 -0
- package/dist/lambda/logUtils.js +21 -17
- package/dist/lambda/logUtils.js.map +1 -0
- package/dist/lambda/scanDetailCompletion.js +19 -25
- package/dist/lambda/scanDetailCompletion.js.map +1 -0
- package/dist/lambda/scanRequest.js +34 -41
- package/dist/lambda/scanRequest.js.map +1 -0
- package/dist/lambda/scanResults.js +8 -10
- package/dist/lambda/scanResults.js.map +1 -0
- package/dist/lambda/types.js +5 -7
- package/dist/lambda/types.js.map +1 -0
- package/dist/lambda/utils.js +33 -35
- package/dist/lambda/utils.js.map +1 -0
- package/dist/sbom/generateSbom.js +6 -10
- package/dist/sbom/generateSbom.js.map +1 -0
- package/dist/scaAnalysis/common/auditReport.js +8 -12
- package/dist/scaAnalysis/common/auditReport.js.map +1 -0
- package/dist/scaAnalysis/common/commonReportingFunctionsSca.js +26 -32
- package/dist/scaAnalysis/common/commonReportingFunctionsSca.js.map +1 -0
- package/dist/scaAnalysis/common/formatMessage.js +8 -17
- package/dist/scaAnalysis/common/formatMessage.js.map +1 -0
- package/dist/scaAnalysis/common/models/ScaReportModel.js +4 -9
- package/dist/scaAnalysis/common/models/ScaReportModel.js.map +1 -0
- package/dist/scaAnalysis/common/scaParserForGoAndJava.js +10 -9
- package/dist/scaAnalysis/common/scaParserForGoAndJava.js.map +1 -0
- package/dist/scaAnalysis/common/scaServicesUpload.js +21 -22
- package/dist/scaAnalysis/common/scaServicesUpload.js.map +1 -0
- package/dist/scaAnalysis/common/treeUpload.js +7 -10
- package/dist/scaAnalysis/common/treeUpload.js.map +1 -0
- package/dist/scaAnalysis/common/utils/reportUtilsSca.js +21 -29
- package/dist/scaAnalysis/common/utils/reportUtilsSca.js.map +1 -0
- package/dist/scaAnalysis/dotnet/analysis.js +12 -18
- package/dist/scaAnalysis/dotnet/analysis.js.map +1 -0
- package/dist/scaAnalysis/dotnet/index.js +4 -7
- package/dist/scaAnalysis/dotnet/index.js.map +1 -0
- package/dist/scaAnalysis/go/goAnalysis.js +8 -11
- package/dist/scaAnalysis/go/goAnalysis.js.map +1 -0
- package/dist/scaAnalysis/go/goParseDeps.js +9 -7
- package/dist/scaAnalysis/go/goParseDeps.js.map +1 -0
- package/dist/scaAnalysis/go/goReadDepFile.js +10 -8
- package/dist/scaAnalysis/go/goReadDepFile.js.map +1 -0
- package/dist/scaAnalysis/java/analysis.js +23 -20
- package/dist/scaAnalysis/java/analysis.js.map +1 -0
- package/dist/scaAnalysis/java/index.js +7 -10
- package/dist/scaAnalysis/java/index.js.map +1 -0
- package/dist/scaAnalysis/java/javaBuildDepsParser.js +43 -43
- package/dist/scaAnalysis/java/javaBuildDepsParser.js.map +1 -0
- package/dist/scaAnalysis/javascript/analysis.js +16 -20
- package/dist/scaAnalysis/javascript/analysis.js.map +1 -0
- package/dist/scaAnalysis/javascript/index.js +17 -19
- package/dist/scaAnalysis/javascript/index.js.map +1 -0
- package/dist/scaAnalysis/javascript/scaServiceParser.js +8 -15
- package/dist/scaAnalysis/javascript/scaServiceParser.js.map +1 -0
- package/dist/scaAnalysis/legacy/legacyFlow.js +13 -15
- package/dist/scaAnalysis/legacy/legacyFlow.js.map +1 -0
- package/dist/scaAnalysis/php/analysis.js +15 -16
- package/dist/scaAnalysis/php/analysis.js.map +1 -0
- package/dist/scaAnalysis/php/index.js +5 -8
- package/dist/scaAnalysis/php/index.js.map +1 -0
- package/dist/scaAnalysis/php/phpNewServicesMapper.js +9 -12
- package/dist/scaAnalysis/php/phpNewServicesMapper.js.map +1 -0
- package/dist/scaAnalysis/processServicesFlow.js +50 -25
- package/dist/scaAnalysis/processServicesFlow.js.map +1 -0
- package/dist/scaAnalysis/python/analysis.js +16 -23
- package/dist/scaAnalysis/python/analysis.js.map +1 -0
- package/dist/scaAnalysis/python/index.js +4 -7
- package/dist/scaAnalysis/python/index.js.map +1 -0
- package/dist/scaAnalysis/repoMode/gradleParser.js +7 -13
- package/dist/scaAnalysis/repoMode/gradleParser.js.map +1 -0
- package/dist/scaAnalysis/repoMode/index.js +9 -12
- package/dist/scaAnalysis/repoMode/index.js.map +1 -0
- package/dist/scaAnalysis/repoMode/mavenParser.js +12 -12
- package/dist/scaAnalysis/repoMode/mavenParser.js.map +1 -0
- package/dist/scaAnalysis/ruby/analysis.js +32 -46
- package/dist/scaAnalysis/ruby/analysis.js.map +1 -0
- package/dist/scaAnalysis/ruby/index.js +5 -8
- package/dist/scaAnalysis/ruby/index.js.map +1 -0
- package/dist/scaAnalysis/scaAnalysis.js +49 -51
- package/dist/scaAnalysis/scaAnalysis.js.map +1 -0
- package/dist/scan/fileUtils.js +27 -36
- package/dist/scan/fileUtils.js.map +1 -0
- package/dist/scan/formatScanOutput.js +47 -61
- package/dist/scan/formatScanOutput.js.map +1 -0
- package/dist/scan/help.js +8 -11
- package/dist/scan/help.js.map +1 -0
- package/dist/scan/models/groupedResultsModel.js +2 -5
- package/dist/scan/models/groupedResultsModel.js.map +1 -0
- package/dist/scan/models/resultContentModel.js +2 -2
- package/dist/scan/models/resultContentModel.js.map +1 -0
- package/dist/scan/models/scanResultsModel.js +2 -5
- package/dist/scan/models/scanResultsModel.js.map +1 -0
- package/dist/scan/populateProjectIdAndProjectName.js +9 -12
- package/dist/scan/populateProjectIdAndProjectName.js.map +1 -0
- package/dist/scan/saveResults.js +3 -6
- package/dist/scan/saveResults.js.map +1 -0
- package/dist/scan/scan.js +24 -31
- package/dist/scan/scan.js.map +1 -0
- package/dist/scan/scanConfig.js +14 -12
- package/dist/scan/scanConfig.js.map +1 -0
- package/dist/scan/scanController.js +17 -20
- package/dist/scan/scanController.js.map +1 -0
- package/dist/scan/scanResults.js +27 -34
- package/dist/scan/scanResults.js.map +1 -0
- package/dist/telemetry/telemetry.js +29 -59
- package/dist/telemetry/telemetry.js.map +1 -0
- package/dist/utils/capabilities.js +1 -0
- package/dist/utils/capabilities.js.map +1 -0
- package/dist/utils/commonApi.js +15 -24
- package/dist/utils/commonApi.js.map +1 -0
- package/dist/utils/filterProjectPath.js +1 -0
- package/dist/utils/filterProjectPath.js.map +1 -0
- package/dist/utils/generalAPI.js +11 -17
- package/dist/utils/generalAPI.js.map +1 -0
- package/dist/utils/getConfig.js +7 -13
- package/dist/utils/getConfig.js.map +1 -0
- package/dist/utils/oraWrapper.js +7 -14
- package/dist/utils/oraWrapper.js.map +1 -0
- package/dist/utils/paramsUtil/commandlineParams.js +2 -5
- package/dist/utils/paramsUtil/commandlineParams.js.map +1 -0
- package/dist/utils/paramsUtil/configStoreParams.js +9 -10
- package/dist/utils/paramsUtil/configStoreParams.js.map +1 -0
- package/dist/utils/paramsUtil/envVariableParams.js +2 -3
- package/dist/utils/paramsUtil/envVariableParams.js.map +1 -0
- package/dist/utils/paramsUtil/paramHandler.js +12 -13
- package/dist/utils/paramsUtil/paramHandler.js.map +1 -0
- package/dist/utils/parsedCLIOptions.js +4 -7
- package/dist/utils/parsedCLIOptions.js.map +1 -0
- package/dist/utils/requestUtils.js +7 -13
- package/dist/utils/requestUtils.js.map +1 -0
- package/dist/utils/saveFile.js +8 -11
- package/dist/utils/saveFile.js.map +1 -0
- package/dist/utils/validationCheck.js +5 -11
- package/dist/utils/validationCheck.js.map +1 -0
- package/package.json +32 -41
- package/.prettierignore +0 -1
- package/bin/contrast.js +0 -2
- package/dist/audit/languageAnalysisEngine/util/requestUtils.js +0 -14
- package/dist/lambda/__mocks__/aws.js +0 -21
- package/dist/lambda/__mocks__/lambdaConfig.json +0 -42
- package/src/audit/catalogueApplication/catalogueApplication.js +0 -51
- package/src/audit/languageAnalysisEngine/commonApi.js +0 -20
- package/src/audit/languageAnalysisEngine/filterProjectPath.js +0 -21
- package/src/audit/languageAnalysisEngine/getProjectRootFilenames.js +0 -36
- package/src/audit/languageAnalysisEngine/sendSnapshot.js +0 -57
- package/src/audit/languageAnalysisEngine/util/requestUtils.js +0 -17
- package/src/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js +0 -63
- package/src/audit/report/commonReportingFunctions.js +0 -412
- package/src/audit/report/models/reportGuidanceModel.ts +0 -5
- package/src/audit/report/models/reportLibraryModel.ts +0 -30
- package/src/audit/report/models/reportListModel.ts +0 -49
- package/src/audit/report/models/reportOutputModel.ts +0 -29
- package/src/audit/report/models/reportSeverityModel.ts +0 -18
- package/src/audit/report/models/severityCountModel.ts +0 -22
- package/src/audit/report/reportingFeature.ts +0 -110
- package/src/audit/report/utils/reportUtils.ts +0 -165
- package/src/audit/save.js +0 -67
- package/src/cliConstants.js +0 -523
- package/src/commands/audit/auditConfig.js +0 -18
- package/src/commands/audit/auditController.js +0 -50
- package/src/commands/audit/help.js +0 -72
- package/src/commands/audit/processAudit.js +0 -34
- package/src/commands/audit/saveFile.js +0 -15
- package/src/commands/auth/auth.js +0 -146
- package/src/commands/config/config.js +0 -41
- package/src/commands/github/fingerprintConfig.js +0 -19
- package/src/commands/github/processFingerprint.js +0 -37
- package/src/commands/github/projectGroup.js +0 -298
- package/src/commands/github/repoServices.js +0 -122
- package/src/commands/learn/learn.js +0 -10
- package/src/commands/learn/processLearn.js +0 -13
- package/src/commands/scan/processScan.js +0 -42
- package/src/common/HTTPClient.js +0 -775
- package/src/common/autoDetection.js +0 -209
- package/src/common/baseRequest.ts +0 -83
- package/src/common/commonHelp.js +0 -53
- package/src/common/errorHandling.js +0 -157
- package/src/common/fail.js +0 -79
- package/src/common/versionChecker.js +0 -75
- package/src/constants/constants.js +0 -71
- package/src/constants/lambda.js +0 -85
- package/src/constants/locales.js +0 -365
- package/src/index.ts +0 -142
- package/src/lambda/__mocks__/aws.ts +0 -32
- package/src/lambda/__mocks__/lambdaConfig.json +0 -42
- package/src/lambda/analytics.ts +0 -9
- package/src/lambda/arn.ts +0 -33
- package/src/lambda/aws.ts +0 -248
- package/src/lambda/cliError.ts +0 -72
- package/src/lambda/constants.ts +0 -11
- package/src/lambda/help.ts +0 -92
- package/src/lambda/lambda.ts +0 -230
- package/src/lambda/lambdaUtils.ts +0 -111
- package/src/lambda/logUtils.ts +0 -64
- package/src/lambda/scanDetailCompletion.ts +0 -78
- package/src/lambda/scanRequest.ts +0 -169
- package/src/lambda/scanResults.ts +0 -29
- package/src/lambda/types.ts +0 -36
- package/src/lambda/utils.ts +0 -188
- package/src/sbom/generateSbom.ts +0 -45
- package/src/scaAnalysis/common/auditReport.js +0 -59
- package/src/scaAnalysis/common/commonReportingFunctionsSca.js +0 -276
- package/src/scaAnalysis/common/formatMessage.js +0 -67
- package/src/scaAnalysis/common/models/ScaReportModel.ts +0 -81
- package/src/scaAnalysis/common/scaParserForGoAndJava.js +0 -41
- package/src/scaAnalysis/common/scaServicesUpload.js +0 -159
- package/src/scaAnalysis/common/treeUpload.js +0 -51
- package/src/scaAnalysis/common/utils/reportUtilsSca.ts +0 -123
- package/src/scaAnalysis/dotnet/analysis.js +0 -72
- package/src/scaAnalysis/dotnet/index.js +0 -11
- package/src/scaAnalysis/go/goAnalysis.js +0 -26
- package/src/scaAnalysis/go/goParseDeps.js +0 -203
- package/src/scaAnalysis/go/goReadDepFile.js +0 -34
- package/src/scaAnalysis/java/analysis.js +0 -148
- package/src/scaAnalysis/java/index.js +0 -29
- package/src/scaAnalysis/java/javaBuildDepsParser.js +0 -439
- package/src/scaAnalysis/javascript/analysis.js +0 -111
- package/src/scaAnalysis/javascript/index.js +0 -104
- package/src/scaAnalysis/javascript/scaServiceParser.js +0 -151
- package/src/scaAnalysis/legacy/legacyFlow.js +0 -43
- package/src/scaAnalysis/php/analysis.js +0 -78
- package/src/scaAnalysis/php/index.js +0 -28
- package/src/scaAnalysis/php/phpNewServicesMapper.js +0 -77
- package/src/scaAnalysis/processServicesFlow.js +0 -126
- package/src/scaAnalysis/python/analysis.js +0 -93
- package/src/scaAnalysis/python/index.js +0 -16
- package/src/scaAnalysis/repoMode/gradleParser.js +0 -88
- package/src/scaAnalysis/repoMode/index.js +0 -21
- package/src/scaAnalysis/repoMode/mavenParser.js +0 -138
- package/src/scaAnalysis/ruby/analysis.js +0 -413
- package/src/scaAnalysis/ruby/index.js +0 -16
- package/src/scaAnalysis/scaAnalysis.js +0 -172
- package/src/scan/fileUtils.js +0 -218
- package/src/scan/formatScanOutput.ts +0 -225
- package/src/scan/help.js +0 -56
- package/src/scan/models/groupedResultsModel.ts +0 -20
- package/src/scan/models/resultContentModel.ts +0 -86
- package/src/scan/models/scanResultsModel.ts +0 -55
- package/src/scan/populateProjectIdAndProjectName.js +0 -73
- package/src/scan/saveResults.js +0 -14
- package/src/scan/scan.ts +0 -68
- package/src/scan/scanConfig.js +0 -58
- package/src/scan/scanController.js +0 -98
- package/src/scan/scanResults.js +0 -171
- package/src/telemetry/telemetry.ts +0 -154
- package/src/utils/capabilities.js +0 -12
- package/src/utils/commonApi.js +0 -103
- package/src/utils/filterProjectPath.js +0 -25
- package/src/utils/generalAPI.js +0 -52
- package/src/utils/getConfig.ts +0 -34
- package/src/utils/oraWrapper.js +0 -29
- package/src/utils/paramsUtil/commandlineParams.js +0 -12
- package/src/utils/paramsUtil/configStoreParams.js +0 -19
- package/src/utils/paramsUtil/envVariableParams.js +0 -10
- package/src/utils/paramsUtil/paramHandler.js +0 -38
- package/src/utils/parsedCLIOptions.js +0 -32
- package/src/utils/requestUtils.js +0 -29
- package/src/utils/saveFile.js +0 -20
- package/src/utils/validationCheck.js +0 -39
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
const crypto = require('crypto')
|
|
2
|
-
|
|
3
|
-
const parseGoDependencies = goDeps => {
|
|
4
|
-
return parseGo(goDeps)
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
const parseGo = modGraphOutput => {
|
|
8
|
-
let splitLines = splitAllLinesIntoArray(modGraphOutput)
|
|
9
|
-
const directDepNames = getDirectDepNames(splitLines)
|
|
10
|
-
const uniqueTransitiveDepNames = getAllUniqueTransitiveDepNames(
|
|
11
|
-
splitLines,
|
|
12
|
-
directDepNames
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
let rootNodes = createRootNodes(splitLines)
|
|
16
|
-
|
|
17
|
-
createTransitiveDeps(uniqueTransitiveDepNames, splitLines, rootNodes)
|
|
18
|
-
|
|
19
|
-
return rootNodes
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const splitAllLinesIntoArray = modGraphOutput => {
|
|
23
|
-
return modGraphOutput.split(/\r\n|\r|\n/)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const getAllDepsOfADepAsEdge = (dep, deps) => {
|
|
27
|
-
let edges = {}
|
|
28
|
-
|
|
29
|
-
const depRows = deps.filter(line => {
|
|
30
|
-
return line.startsWith(dep)
|
|
31
|
-
})
|
|
32
|
-
|
|
33
|
-
depRows.forEach(dep => {
|
|
34
|
-
const edgeName = dep.split(' ')[1]
|
|
35
|
-
edges[edgeName] = edgeName
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
return edges
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const getAllDepsOfADepAsName = (dep, deps) => {
|
|
42
|
-
let edges = []
|
|
43
|
-
|
|
44
|
-
const depRows = deps.filter(line => {
|
|
45
|
-
return line.startsWith(dep)
|
|
46
|
-
})
|
|
47
|
-
|
|
48
|
-
depRows.forEach(dep => {
|
|
49
|
-
const edgeName = dep.split(' ')[1]
|
|
50
|
-
edges.push(edgeName)
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
return edges
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const createRootNodes = deps => {
|
|
57
|
-
let rootDep = {}
|
|
58
|
-
const rootDeps = getRootDeps(deps)
|
|
59
|
-
|
|
60
|
-
const edges = rootDeps.map(dep => {
|
|
61
|
-
return dep.split(' ')[1]
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
rootDep[rootDeps[0].split(' ')[0]] = {}
|
|
65
|
-
|
|
66
|
-
edges.forEach(edge => {
|
|
67
|
-
const splitEdge = edge.split('@')
|
|
68
|
-
const splitGroupName = splitEdge[0].split('/')
|
|
69
|
-
const name = splitGroupName.pop()
|
|
70
|
-
const lastSlash = splitEdge[0].lastIndexOf('/')
|
|
71
|
-
let group = splitEdge[0].substring(0, lastSlash)
|
|
72
|
-
const hash = getHash(splitEdge[0])
|
|
73
|
-
|
|
74
|
-
group = checkGroupExists(group, name)
|
|
75
|
-
|
|
76
|
-
//get the edges of the root dependency
|
|
77
|
-
const edgesOfDep = getAllDepsOfADepAsEdge(edge, deps)
|
|
78
|
-
|
|
79
|
-
rootDep[rootDeps[0].split(' ')[0]][edge] = {
|
|
80
|
-
artifactID: name,
|
|
81
|
-
group: group,
|
|
82
|
-
version: splitEdge[1],
|
|
83
|
-
scope: '"compile',
|
|
84
|
-
type: 'direct',
|
|
85
|
-
hash: hash,
|
|
86
|
-
edges: edgesOfDep
|
|
87
|
-
}
|
|
88
|
-
})
|
|
89
|
-
return rootDep
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const getRootDeps = deps => {
|
|
93
|
-
const rootDeps = deps.filter(dep => {
|
|
94
|
-
const parentDep = dep.split(' ')[0]
|
|
95
|
-
if (parentDep.split('@v').length === 1) {
|
|
96
|
-
return dep
|
|
97
|
-
}
|
|
98
|
-
})
|
|
99
|
-
return rootDeps
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const getHash = library => {
|
|
103
|
-
let shaSum = crypto.createHash('sha1')
|
|
104
|
-
shaSum.update(library)
|
|
105
|
-
return shaSum.digest('hex')
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const getDirectDepNames = deps => {
|
|
109
|
-
const directDepNames = []
|
|
110
|
-
|
|
111
|
-
deps.forEach(dep => {
|
|
112
|
-
const parentDep = dep.split(' ')[0]
|
|
113
|
-
if (parentDep.split('@v').length === 1) {
|
|
114
|
-
dep.split(' ')[1] !== undefined
|
|
115
|
-
? directDepNames.push(dep.split(' ')[1])
|
|
116
|
-
: null
|
|
117
|
-
}
|
|
118
|
-
})
|
|
119
|
-
return directDepNames
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
const getAllUniqueTransitiveDepNames = (deps, directDepNames) => {
|
|
123
|
-
let uniqueDeps = []
|
|
124
|
-
|
|
125
|
-
deps.forEach(dep => {
|
|
126
|
-
const parentDep = dep.split(' ')[0]
|
|
127
|
-
if (parentDep.split('@v').length !== 1) {
|
|
128
|
-
if (!directDepNames.includes(parentDep)) {
|
|
129
|
-
if (!uniqueDeps.includes(parentDep)) {
|
|
130
|
-
parentDep.length > 1 ? uniqueDeps.push(parentDep) : null
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
})
|
|
135
|
-
return uniqueDeps
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const checkGroupExists = (group, name) => {
|
|
139
|
-
if (group === null || group === '') {
|
|
140
|
-
return name
|
|
141
|
-
}
|
|
142
|
-
return group
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
const createTransitiveDeps = (transitiveDeps, splitLines, rootNodes) => {
|
|
146
|
-
transitiveDeps.forEach(dep => {
|
|
147
|
-
//create transitive dep
|
|
148
|
-
const splitEdge = dep.split('@')
|
|
149
|
-
const splitGroupName = splitEdge[0].split('/')
|
|
150
|
-
const name = splitGroupName.pop()
|
|
151
|
-
const lastSlash = splitEdge[0].lastIndexOf('/')
|
|
152
|
-
let group = splitEdge[0].substring(0, lastSlash)
|
|
153
|
-
const hash = getHash(splitEdge[0])
|
|
154
|
-
|
|
155
|
-
group = checkGroupExists(group, name)
|
|
156
|
-
|
|
157
|
-
const transitiveDep = {
|
|
158
|
-
artifactID: name,
|
|
159
|
-
group: group,
|
|
160
|
-
version: splitEdge[1],
|
|
161
|
-
scope: 'compile',
|
|
162
|
-
type: 'transitive',
|
|
163
|
-
hash: hash,
|
|
164
|
-
edges: {}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
//add edges to transitiveDep
|
|
168
|
-
const edges = getAllDepsOfADepAsEdge(dep, splitLines)
|
|
169
|
-
transitiveDep.edges = edges
|
|
170
|
-
|
|
171
|
-
//add all edges as a transitive dependency to rootNodes
|
|
172
|
-
const edgesAsName = getAllDepsOfADepAsName(dep, splitLines)
|
|
173
|
-
|
|
174
|
-
edgesAsName.forEach(dep => {
|
|
175
|
-
const splitEdge = dep.split('@')
|
|
176
|
-
const splitGroupName = splitEdge[0].split('/')
|
|
177
|
-
const name = splitGroupName.pop()
|
|
178
|
-
const lastSlash = splitEdge[0].lastIndexOf('/')
|
|
179
|
-
let group = splitEdge[0].substring(0, lastSlash)
|
|
180
|
-
const hash = getHash(splitEdge[0])
|
|
181
|
-
|
|
182
|
-
group = checkGroupExists(group, name)
|
|
183
|
-
|
|
184
|
-
const transitiveDep = {
|
|
185
|
-
artifactID: name,
|
|
186
|
-
group: group,
|
|
187
|
-
version: splitEdge[1],
|
|
188
|
-
scope: 'compile',
|
|
189
|
-
type: 'transitive',
|
|
190
|
-
hash: hash,
|
|
191
|
-
edges: {}
|
|
192
|
-
}
|
|
193
|
-
rootNodes[Object.keys(rootNodes)[0]][dep] = transitiveDep
|
|
194
|
-
})
|
|
195
|
-
|
|
196
|
-
//add transitive dependency to rootNodes
|
|
197
|
-
rootNodes[Object.keys(rootNodes)[0]][dep] = transitiveDep
|
|
198
|
-
})
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
module.exports = {
|
|
202
|
-
parseGoDependencies
|
|
203
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
const child_process = require('child_process')
|
|
2
|
-
const i18n = require('i18n')
|
|
3
|
-
|
|
4
|
-
const getGoDependencies = config => {
|
|
5
|
-
let cmdStdout
|
|
6
|
-
let cwd = config.file ? config.file.replace('go.mod', '') : process.cwd()
|
|
7
|
-
|
|
8
|
-
try {
|
|
9
|
-
// A sample of this output can be found
|
|
10
|
-
// in the go test folder data/goModGraphResults.text
|
|
11
|
-
cmdStdout = child_process.execSync('go mod graph', {
|
|
12
|
-
cwd: cwd,
|
|
13
|
-
maxBuffer: 50 * 1024 * 1024
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
return cmdStdout.toString()
|
|
17
|
-
} catch (err) {
|
|
18
|
-
if (err.message === 'spawnSync /bin/sh ENOENT') {
|
|
19
|
-
err.message =
|
|
20
|
-
'\n\n*************** No transitive dependencies ***************\n\nWe are unable to build a dependency tree view from your repository as there were no transitive dependencies found.'
|
|
21
|
-
}
|
|
22
|
-
console.log(
|
|
23
|
-
i18n.__('goReadProjectFile', cwd, `${err.message ? err.message : ''}`)
|
|
24
|
-
)
|
|
25
|
-
// throw new Error(
|
|
26
|
-
// i18n.__('goReadProjectFile', cwd, `${err.message ? err.message : ''}`)
|
|
27
|
-
// )
|
|
28
|
-
process.exit(1)
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
module.exports = {
|
|
33
|
-
getGoDependencies
|
|
34
|
-
}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
const child_process = require('child_process')
|
|
2
|
-
const spawn = require('cross-spawn')
|
|
3
|
-
const path = require('path')
|
|
4
|
-
const i18n = require('i18n')
|
|
5
|
-
const fs = require('fs')
|
|
6
|
-
|
|
7
|
-
const MAVEN = 'maven'
|
|
8
|
-
const GRADLE = 'gradle'
|
|
9
|
-
|
|
10
|
-
const determineProjectTypeAndCwd = (files, config) => {
|
|
11
|
-
const projectData = {}
|
|
12
|
-
|
|
13
|
-
if (files.length > 1) {
|
|
14
|
-
files = files.filter(i => config.fileName.includes(i))
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
if (files[0].includes('pom.xml')) {
|
|
18
|
-
projectData.projectType = MAVEN
|
|
19
|
-
} else if (files[0].includes('build.gradle')) {
|
|
20
|
-
projectData.projectType = GRADLE
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
//clean up the path to be a folder not a file
|
|
24
|
-
projectData.cwd = config.file
|
|
25
|
-
? config.file.replace('pom.xml', '').replace('build.gradle', '')
|
|
26
|
-
: config.file
|
|
27
|
-
|
|
28
|
-
return projectData
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const buildMaven = (config, projectData, timeout) => {
|
|
32
|
-
let command = 'mvn'
|
|
33
|
-
let args = ['dependency:tree', '-B', '-Dscope=runtime']
|
|
34
|
-
if (config.mavenSettingsPath) {
|
|
35
|
-
args.push('-s')
|
|
36
|
-
args.push(config.mavenSettingsPath)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// Allow users to provide a custom location for their settings.xml
|
|
40
|
-
const cmdDepTree = spawn.sync(command, args, {
|
|
41
|
-
env: process.env,
|
|
42
|
-
cwd: projectData.cwd,
|
|
43
|
-
timeout
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
if (cmdDepTree.status !== 0) {
|
|
47
|
-
//if maven not found
|
|
48
|
-
if (config.debug && cmdDepTree.error.code === 'ENOENT') {
|
|
49
|
-
console.log(`ERROR: mvn not found`)
|
|
50
|
-
console.log('Please make sure mvn is installed and accessible')
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
throw new Error(i18n.__('mavenDependencyTreeNonZero', projectData.cwd))
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return cmdDepTree.stdout.toString()
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const buildGradle = (config, projectData, timeout) => {
|
|
60
|
-
let cmdStdout
|
|
61
|
-
let output = {}
|
|
62
|
-
|
|
63
|
-
try {
|
|
64
|
-
// path.sep is user here to either execute as "./gradlew" for UNIX/Linux/MacOS
|
|
65
|
-
// & ".\gradlew" for Windows
|
|
66
|
-
// Check if the user has specified a sub-project
|
|
67
|
-
if (config.subProject) {
|
|
68
|
-
cmdStdout = child_process.execSync(
|
|
69
|
-
'.' +
|
|
70
|
-
path.sep +
|
|
71
|
-
'gradlew :' +
|
|
72
|
-
config.subProject +
|
|
73
|
-
':dependencies --configuration runtimeClasspath',
|
|
74
|
-
{
|
|
75
|
-
cwd: projectData.cwd,
|
|
76
|
-
timeout
|
|
77
|
-
}
|
|
78
|
-
)
|
|
79
|
-
} else {
|
|
80
|
-
cmdStdout = child_process.execSync(
|
|
81
|
-
'.' +
|
|
82
|
-
path.sep +
|
|
83
|
-
'gradlew dependencies --configuration runtimeClasspath',
|
|
84
|
-
{
|
|
85
|
-
cwd: projectData.cwd,
|
|
86
|
-
timeout
|
|
87
|
-
}
|
|
88
|
-
)
|
|
89
|
-
}
|
|
90
|
-
if (
|
|
91
|
-
cmdStdout
|
|
92
|
-
.toString()
|
|
93
|
-
.includes(
|
|
94
|
-
"runtimeClasspath - Runtime classpath of source set 'main'.\n" +
|
|
95
|
-
'No dependencies'
|
|
96
|
-
)
|
|
97
|
-
) {
|
|
98
|
-
cmdStdout = child_process.execSync(
|
|
99
|
-
'.' + path.sep + 'gradlew dependencies',
|
|
100
|
-
{
|
|
101
|
-
cwd: projectData.cwd,
|
|
102
|
-
timeout
|
|
103
|
-
}
|
|
104
|
-
)
|
|
105
|
-
}
|
|
106
|
-
output = cmdStdout.toString()
|
|
107
|
-
return output
|
|
108
|
-
} catch (err) {
|
|
109
|
-
if (
|
|
110
|
-
fs.existsSync(projectData.cwd + 'gradlew') ||
|
|
111
|
-
fs.existsSync(projectData.cwd + 'gradlew.bat')
|
|
112
|
-
) {
|
|
113
|
-
throw new Error(
|
|
114
|
-
i18n.__(
|
|
115
|
-
'gradleDependencyTreeNonZero',
|
|
116
|
-
projectData.cwd,
|
|
117
|
-
`${err.message}`
|
|
118
|
-
)
|
|
119
|
-
)
|
|
120
|
-
} else {
|
|
121
|
-
throw new Error(
|
|
122
|
-
i18n.__('gradleWrapperUnavailable', projectData.cwd, `${err.message}`)
|
|
123
|
-
)
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
const getJavaBuildDeps = (config, files) => {
|
|
129
|
-
const timeout = 960000
|
|
130
|
-
let output = {
|
|
131
|
-
mvnDependancyTreeOutput: undefined,
|
|
132
|
-
projectType: undefined
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const projectData = determineProjectTypeAndCwd(files, config)
|
|
136
|
-
if (projectData.projectType === MAVEN) {
|
|
137
|
-
output.mvnDependancyTreeOutput = buildMaven(config, projectData, timeout)
|
|
138
|
-
} else if (projectData.projectType === GRADLE) {
|
|
139
|
-
output.mvnDependancyTreeOutput = buildGradle(config, projectData, timeout)
|
|
140
|
-
}
|
|
141
|
-
output.projectType = projectData.projectType
|
|
142
|
-
return output
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
module.exports = {
|
|
146
|
-
getJavaBuildDeps,
|
|
147
|
-
determineProjectTypeAndCwd
|
|
148
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
const analysis = require('./analysis')
|
|
2
|
-
const { parseBuildDeps } = require('./javaBuildDepsParser')
|
|
3
|
-
const { createJavaTSMessage } = require('../common/formatMessage')
|
|
4
|
-
const {
|
|
5
|
-
parseDependenciesForSCAServices
|
|
6
|
-
} = require('../common/scaParserForGoAndJava')
|
|
7
|
-
|
|
8
|
-
const javaAnalysis = async (config, languageFiles) => {
|
|
9
|
-
languageFiles.JAVA.forEach(file => {
|
|
10
|
-
file.replace('build.gradle.kts', 'build.gradle')
|
|
11
|
-
})
|
|
12
|
-
|
|
13
|
-
const javaDeps = buildJavaTree(config, languageFiles.JAVA)
|
|
14
|
-
|
|
15
|
-
if (config.legacy === false) {
|
|
16
|
-
return parseDependenciesForSCAServices(javaDeps)
|
|
17
|
-
} else {
|
|
18
|
-
return createJavaTSMessage(javaDeps)
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const buildJavaTree = (config, files) => {
|
|
23
|
-
const javaBuildDeps = analysis.getJavaBuildDeps(config, files)
|
|
24
|
-
return parseBuildDeps(config, javaBuildDeps)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
module.exports = {
|
|
28
|
-
javaAnalysis
|
|
29
|
-
}
|