@contrast/contrast 2.0.2-beta.1 → 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 +26 -14
- 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 +39 -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 -139
- 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
|
@@ -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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"}
|