@contrast/contrast 2.0.2-beta.0 → 2.0.2-beta.10
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 +2 -1
- package/dist/assess/assessConfig.js +9 -0
- package/dist/assess/assessConfig.js.map +1 -0
- package/dist/assess/help.js +37 -0
- package/dist/assess/help.js.map +1 -0
- package/dist/assess/http/index.js +39 -0
- package/dist/assess/http/index.js.map +1 -0
- package/dist/assess/index.js +69 -0
- package/dist/assess/index.js.map +1 -0
- package/dist/assess/metadata/findYamlFile.js +59 -0
- package/dist/assess/metadata/findYamlFile.js.map +1 -0
- package/dist/assess/metadata/index.js +37 -0
- package/dist/assess/metadata/index.js.map +1 -0
- package/dist/assess/metadata/utils.js +159 -0
- package/dist/assess/metadata/utils.js.map +1 -0
- package/dist/assess/printing/index.js +11 -0
- package/dist/assess/printing/index.js.map +1 -0
- package/dist/assess/printing/utils.js +119 -0
- package/dist/assess/printing/utils.js.map +1 -0
- package/dist/audit/auditConfig.js +9 -0
- package/dist/audit/auditConfig.js.map +1 -0
- package/dist/{commands/audit → audit}/auditController.js +9 -13
- package/dist/audit/auditController.js.map +1 -0
- package/dist/audit/auditRequests.js +193 -0
- package/dist/audit/auditRequests.js.map +1 -0
- package/dist/audit/auditRequestsLegacy.js +63 -0
- package/dist/audit/auditRequestsLegacy.js.map +1 -0
- package/dist/audit/catalogueApplication/catalogueApplication.js +16 -29
- package/dist/audit/catalogueApplication/catalogueApplication.js.map +1 -0
- package/dist/audit/help.js +68 -0
- package/dist/audit/help.js.map +1 -0
- package/dist/audit/languageAnalysisEngine/commonApi.js +12 -14
- package/dist/audit/languageAnalysisEngine/commonApi.js.map +1 -0
- package/dist/audit/languageAnalysisEngine/filterProjectPath.js +2 -1
- 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 +18 -30
- 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/processAudit.js +21 -0
- package/dist/audit/processAudit.js.map +1 -0
- package/dist/audit/report/commonReportingFunctions.js +33 -61
- 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/{commands/audit → audit}/saveFile.js +3 -6
- package/dist/audit/saveFile.js.map +1 -0
- package/dist/auth/auth.js +103 -0
- package/dist/auth/auth.js.map +1 -0
- package/dist/auth/authRequests.js +18 -0
- package/dist/auth/authRequests.js.map +1 -0
- package/dist/cliConstants.js +48 -18
- package/dist/cliConstants.js.map +1 -0
- package/dist/commands/config/config.js +12 -13
- package/dist/commands/config/config.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/common/HTTPClient.js +193 -94
- package/dist/common/HTTPClient.js.map +1 -0
- package/dist/{scan → common}/autoDetection.js +53 -36
- package/dist/common/autoDetection.js.map +1 -0
- package/dist/common/baseRequest.js +59 -23
- 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 +49 -63
- 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/stringManipulations.js +8 -0
- package/dist/common/stringManipulations.js.map +1 -0
- package/dist/common/versionChecker.js +16 -19
- package/dist/common/versionChecker.js.map +1 -0
- package/dist/constants/constants.js +46 -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 +14 -10
- package/dist/constants/locales.js.map +1 -0
- package/dist/github/fingerprintConfig.js +10 -0
- package/dist/github/fingerprintConfig.js.map +1 -0
- package/dist/github/processFingerprint.js +25 -0
- package/dist/github/processFingerprint.js.map +1 -0
- package/dist/github/projectGroup.js +225 -0
- package/dist/github/projectGroup.js.map +1 -0
- package/dist/github/repoServices.js +91 -0
- package/dist/github/repoServices.js.map +1 -0
- package/dist/index.js +42 -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 +59 -90
- package/dist/scaAnalysis/common/scaServicesUpload.js.map +1 -0
- package/dist/scaAnalysis/common/treeUpload.js +15 -25
- 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 +86 -32
- 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 +109 -73
- 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 +36 -40
- 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 +22 -60
- package/dist/scan/populateProjectIdAndProjectName.js.map +1 -0
- package/dist/scan/processScan.js +28 -0
- package/dist/scan/processScan.js.map +1 -0
- package/dist/scan/saveResults.js +3 -6
- package/dist/scan/saveResults.js.map +1 -0
- package/dist/scan/scan.js +33 -53
- 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 +19 -21
- package/dist/scan/scanController.js.map +1 -0
- package/dist/scan/scanRequests.js +86 -0
- package/dist/scan/scanRequests.js.map +1 -0
- package/dist/scan/scanResults.js +26 -72
- 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 +2 -1
- package/dist/utils/capabilities.js.map +1 -0
- package/dist/utils/commonApi.js +58 -50
- package/dist/utils/commonApi.js.map +1 -0
- package/dist/utils/filterProjectPath.js +2 -1
- package/dist/utils/filterProjectPath.js.map +1 -0
- package/dist/utils/generalAPI.js +11 -33
- package/dist/utils/generalAPI.js.map +1 -0
- package/dist/utils/getConfig.js +8 -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 +40 -48
- package/.prettierignore +0 -1
- package/bin/contrast.js +0 -2
- package/dist/audit/languageAnalysisEngine/util/requestUtils.js +0 -14
- package/dist/commands/audit/auditConfig.js +0 -12
- package/dist/commands/audit/help.js +0 -70
- package/dist/commands/audit/processAudit.js +0 -24
- package/dist/commands/auth/auth.js +0 -120
- package/dist/commands/github/fingerprintConfig.js +0 -13
- package/dist/commands/github/processFingerprint.js +0 -28
- package/dist/commands/github/projectGroup.js +0 -254
- package/dist/commands/github/repoServices.js +0 -108
- package/dist/commands/scan/processScan.js +0 -31
- 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 -522
- 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 -294
- 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/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 -155
- 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 -119
- 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 -112
- package/src/scaAnalysis/ruby/analysis.js +0 -413
- package/src/scaAnalysis/ruby/index.js +0 -16
- package/src/scaAnalysis/scaAnalysis.js +0 -171
- package/src/scan/autoDetection.js +0 -175
- package/src/scan/fileUtils.js +0 -206
- 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
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
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 =
|
|
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 =
|
|
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(
|
|
302
|
+
throw new Error(__('languageAnalysisHasNoLockFile', 'ruby'));
|
|
299
303
|
}
|
|
300
304
|
if (!languageFiles.includes('Gemfile')) {
|
|
301
|
-
throw new Error(
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
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 '../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 '../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
|
|
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
|
-
?
|
|
33
|
+
? getDirectoryFromPathGiven(config.file).concat('/')
|
|
35
34
|
: config.file;
|
|
36
|
-
filesFound = await
|
|
37
|
-
filesFound = await
|
|
38
|
-
|
|
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(
|
|
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
|
|
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
|
|
58
|
+
messageToSend = await javaAnalysis(config, filesFound[0]);
|
|
58
59
|
}
|
|
59
60
|
break;
|
|
60
61
|
case JAVASCRIPT:
|
|
61
|
-
messageToSend = await jsAnalysis
|
|
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
|
|
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
|
-
|
|
104
|
+
const reportResponse = await processUpload(messageToSend, config, reportSpinner);
|
|
103
105
|
const reportModelLibraryList = convertGenericToTypedReportModelSca(reportResponse.reportArray);
|
|
104
|
-
await
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
console.log(
|
|
118
|
-
|
|
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
|
-
|
|
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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"}
|
package/dist/scan/fileUtils.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const findFile = async () => {
|
|
1
|
+
import fg from 'fast-glob';
|
|
2
|
+
import { accessSync, constants, existsSync, readFileSync } from 'fs';
|
|
3
|
+
import i18n from 'i18n';
|
|
4
|
+
export const findFile = async () => {
|
|
6
5
|
console.log(i18n.__('searchingScanFileDirectory', process.cwd()));
|
|
7
6
|
return fg(['**/*.jar', '**/*.war', '**/*.zip', '**/*.dll', '**/*.exe'], {
|
|
8
7
|
dot: false,
|
|
@@ -10,19 +9,20 @@ const findFile = async () => {
|
|
|
10
9
|
onlyFiles: true
|
|
11
10
|
});
|
|
12
11
|
};
|
|
13
|
-
const findAllFiles = async (filePath, depth =
|
|
12
|
+
export const findAllFiles = async (filePath, depth = 3) => {
|
|
14
13
|
const result = await fg([
|
|
15
14
|
'**/pom.xml',
|
|
16
|
-
'**/build.gradle',
|
|
17
|
-
'**/build.gradle.kts',
|
|
15
|
+
// '**/build.gradle',
|
|
16
|
+
// '**/build.gradle.kts',
|
|
18
17
|
'**/package.json',
|
|
19
18
|
'**/package-lock.json',
|
|
20
|
-
'**/yarn.lock'
|
|
21
|
-
'**/Pipfile',
|
|
22
|
-
'**/*.csproj',
|
|
23
|
-
'**/Gemfile',
|
|
24
|
-
'**/go.mod'
|
|
19
|
+
'**/yarn.lock'
|
|
20
|
+
// '**/Pipfile',
|
|
21
|
+
// '**/*.csproj',
|
|
22
|
+
// '**/Gemfile',
|
|
23
|
+
// '**/go.mod'
|
|
25
24
|
], {
|
|
25
|
+
ignore: ['**/node_modules/**', '**/target/**', '**/bin/**'],
|
|
26
26
|
dot: false,
|
|
27
27
|
deep: depth,
|
|
28
28
|
onlyFiles: true,
|
|
@@ -34,7 +34,7 @@ const findAllFiles = async (filePath, depth = 2) => {
|
|
|
34
34
|
}
|
|
35
35
|
return [];
|
|
36
36
|
};
|
|
37
|
-
const findFilesJava = async (languagesFound, filePath, depth = 1) => {
|
|
37
|
+
export const findFilesJava = async (languagesFound, filePath, depth = 1) => {
|
|
38
38
|
const result = await fg(['**/pom.xml', '**/build.gradle', '**/build.gradle.kts'], {
|
|
39
39
|
dot: false,
|
|
40
40
|
deep: depth,
|
|
@@ -51,7 +51,7 @@ const findFilesJava = async (languagesFound, filePath, depth = 1) => {
|
|
|
51
51
|
}
|
|
52
52
|
return languagesFound;
|
|
53
53
|
};
|
|
54
|
-
const findFilesJavascript = async (languagesFound, filePath, depth = 1) => {
|
|
54
|
+
export const findFilesJavascript = async (languagesFound, filePath, depth = 1) => {
|
|
55
55
|
const result = await fg(['**/package.json', '**/yarn.lock', '**/package-lock.json'], {
|
|
56
56
|
dot: false,
|
|
57
57
|
deep: depth,
|
|
@@ -68,7 +68,7 @@ const findFilesJavascript = async (languagesFound, filePath, depth = 1) => {
|
|
|
68
68
|
}
|
|
69
69
|
return languagesFound;
|
|
70
70
|
};
|
|
71
|
-
const findFilesPython = async (languagesFound, filePath, depth = 1) => {
|
|
71
|
+
export const findFilesPython = async (languagesFound, filePath, depth = 1) => {
|
|
72
72
|
const result = await fg(['**/Pipfile.lock', '**/Pipfile'], {
|
|
73
73
|
dot: false,
|
|
74
74
|
deep: depth,
|
|
@@ -80,7 +80,7 @@ const findFilesPython = async (languagesFound, filePath, depth = 1) => {
|
|
|
80
80
|
}
|
|
81
81
|
return languagesFound;
|
|
82
82
|
};
|
|
83
|
-
const findFilesGo = async (languagesFound, filePath, depth = 1) => {
|
|
83
|
+
export const findFilesGo = async (languagesFound, filePath, depth = 1) => {
|
|
84
84
|
const result = await fg(['**/go.mod'], {
|
|
85
85
|
dot: false,
|
|
86
86
|
deep: depth,
|
|
@@ -92,7 +92,7 @@ const findFilesGo = async (languagesFound, filePath, depth = 1) => {
|
|
|
92
92
|
}
|
|
93
93
|
return languagesFound;
|
|
94
94
|
};
|
|
95
|
-
const findFilesRuby = async (languagesFound, filePath, depth = 1) => {
|
|
95
|
+
export const findFilesRuby = async (languagesFound, filePath, depth = 1) => {
|
|
96
96
|
const result = await fg(['**/Gemfile', '**/Gemfile.lock'], {
|
|
97
97
|
dot: false,
|
|
98
98
|
deep: depth,
|
|
@@ -104,7 +104,7 @@ const findFilesRuby = async (languagesFound, filePath, depth = 1) => {
|
|
|
104
104
|
}
|
|
105
105
|
return languagesFound;
|
|
106
106
|
};
|
|
107
|
-
const findFilesPhp = async (languagesFound, filePath, depth = 1) => {
|
|
107
|
+
export const findFilesPhp = async (languagesFound, filePath, depth = 1) => {
|
|
108
108
|
const result = await fg(['**/composer.json', '**/composer.lock'], {
|
|
109
109
|
dot: false,
|
|
110
110
|
deep: depth,
|
|
@@ -116,7 +116,7 @@ const findFilesPhp = async (languagesFound, filePath, depth = 1) => {
|
|
|
116
116
|
}
|
|
117
117
|
return languagesFound;
|
|
118
118
|
};
|
|
119
|
-
const findFilesDotNet = async (languagesFound, filePath, depth = 1) => {
|
|
119
|
+
export const findFilesDotNet = async (languagesFound, filePath, depth = 1) => {
|
|
120
120
|
const result = await fg(['**/*.csproj', '**/packages.lock.json'], {
|
|
121
121
|
dot: false,
|
|
122
122
|
deep: depth,
|
|
@@ -131,24 +131,24 @@ const findFilesDotNet = async (languagesFound, filePath, depth = 1) => {
|
|
|
131
131
|
}
|
|
132
132
|
return languagesFound;
|
|
133
133
|
};
|
|
134
|
-
const checkFilePermissions = file => {
|
|
134
|
+
export const checkFilePermissions = file => {
|
|
135
135
|
let readableFile = false;
|
|
136
136
|
try {
|
|
137
|
-
|
|
138
|
-
return (readableFile = true);
|
|
137
|
+
accessSync(file, constants.R_OK);
|
|
138
|
+
return (readableFile = true); // testing purposes
|
|
139
139
|
}
|
|
140
140
|
catch (err) {
|
|
141
141
|
console.log('Invalid permissions found on ', file);
|
|
142
142
|
process.exit(0);
|
|
143
143
|
}
|
|
144
144
|
};
|
|
145
|
-
const fileExists = path => {
|
|
146
|
-
return
|
|
145
|
+
export const fileExists = path => {
|
|
146
|
+
return existsSync(path);
|
|
147
147
|
};
|
|
148
|
-
const fileIsEmpty = path => {
|
|
148
|
+
export const fileIsEmpty = path => {
|
|
149
149
|
if (fileExists(path) && checkFilePermissions(path)) {
|
|
150
150
|
try {
|
|
151
|
-
return
|
|
151
|
+
return readFileSync(path).length === 0;
|
|
152
152
|
}
|
|
153
153
|
catch (e) {
|
|
154
154
|
if (e.message.toString().includes('illegal operation on a directory, read')) {
|
|
@@ -162,17 +162,13 @@ const fileIsEmpty = path => {
|
|
|
162
162
|
}
|
|
163
163
|
return false;
|
|
164
164
|
};
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
findFilesPhp,
|
|
174
|
-
findFilesRuby,
|
|
175
|
-
findFilesDotNet,
|
|
176
|
-
fileIsEmpty,
|
|
177
|
-
findAllFiles
|
|
165
|
+
export const shortenFilePath = filePath => {
|
|
166
|
+
let splitPath = filePath.split('home/runner/work/');
|
|
167
|
+
if (splitPath.length > 1) {
|
|
168
|
+
let splitPath2 = splitPath[1].split('/');
|
|
169
|
+
splitPath2.shift();
|
|
170
|
+
return splitPath2.join('/').toString();
|
|
171
|
+
}
|
|
172
|
+
return filePath;
|
|
178
173
|
};
|
|
174
|
+
//# sourceMappingURL=fileUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileUtils.js","sourceRoot":"","sources":["../../src/scan/fileUtils.js"],"names":[],"mappings":"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"}
|