@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,10 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
const autoDetectFingerprintInfo = async (filePath, depth, config) => {
|
|
7
|
-
let complexObj = await fileFinder.findAllFiles(filePath, depth);
|
|
1
|
+
import i18n from 'i18n';
|
|
2
|
+
import { findAllFiles, findFile, fileIsEmpty, findFilesJava, findFilesJavascript, findFilesPython, findFilesGo, findFilesPhp, findFilesRuby, findFilesDotNet, shortenFilePath } from '../scan/fileUtils.js';
|
|
3
|
+
import { DOTNET, GO, JAVA, JAVASCRIPT, PYTHON, RUBY } from '../constants/constants.js';
|
|
4
|
+
export const autoDetectFingerprintInfo = async (filePath, depth, config) => {
|
|
5
|
+
let complexObj = await findAllFiles(filePath, depth);
|
|
8
6
|
let result = [];
|
|
9
7
|
let count = 0;
|
|
10
8
|
complexObj.forEach(i => {
|
|
@@ -21,7 +19,7 @@ const autoDetectFingerprintInfo = async (filePath, depth, config) => {
|
|
|
21
19
|
});
|
|
22
20
|
return result;
|
|
23
21
|
};
|
|
24
|
-
const detectPackageManager = async (array) => {
|
|
22
|
+
export const detectPackageManager = async (array) => {
|
|
25
23
|
array.forEach(i => {
|
|
26
24
|
if (i.filePath.includes('pom.xml')) {
|
|
27
25
|
i['language'] = JAVA;
|
|
@@ -62,15 +60,15 @@ const detectPackageManager = async (array) => {
|
|
|
62
60
|
});
|
|
63
61
|
return array;
|
|
64
62
|
};
|
|
65
|
-
const autoDetectFileAndLanguage = async (configToUse) => {
|
|
66
|
-
const entries = await
|
|
63
|
+
export const autoDetectFileAndLanguage = async (configToUse) => {
|
|
64
|
+
const entries = await findFile();
|
|
67
65
|
if (entries.length === 1) {
|
|
68
66
|
console.log(i18n.__('foundScanFile', entries[0]));
|
|
69
67
|
if (hasWhiteSpace(entries[0])) {
|
|
70
68
|
console.log(i18n.__('fileHasWhiteSpacesError'));
|
|
71
69
|
process.exit(1);
|
|
72
70
|
}
|
|
73
|
-
if (
|
|
71
|
+
if (fileIsEmpty(entries[0])) {
|
|
74
72
|
console.log(i18n.__('scanFileIsEmpty'));
|
|
75
73
|
process.exit(1);
|
|
76
74
|
}
|
|
@@ -83,16 +81,16 @@ const autoDetectFileAndLanguage = async (configToUse) => {
|
|
|
83
81
|
errorOnFileDetection(entries);
|
|
84
82
|
}
|
|
85
83
|
};
|
|
86
|
-
const autoDetectAuditFilesAndLanguages = async (filePath) => {
|
|
84
|
+
export const autoDetectAuditFilesAndLanguages = async (filePath) => {
|
|
87
85
|
let languagesFound = [];
|
|
88
86
|
console.log(i18n.__('searchingAuditFileDirectory', filePath));
|
|
89
|
-
await
|
|
90
|
-
await
|
|
91
|
-
await
|
|
92
|
-
await
|
|
93
|
-
await
|
|
94
|
-
await
|
|
95
|
-
await
|
|
87
|
+
await findFilesJava(languagesFound, filePath);
|
|
88
|
+
await findFilesJavascript(languagesFound, filePath);
|
|
89
|
+
await findFilesPython(languagesFound, filePath);
|
|
90
|
+
await findFilesGo(languagesFound, filePath);
|
|
91
|
+
await findFilesPhp(languagesFound, filePath);
|
|
92
|
+
await findFilesRuby(languagesFound, filePath);
|
|
93
|
+
await findFilesDotNet(languagesFound, filePath);
|
|
96
94
|
if (languagesFound) {
|
|
97
95
|
return languagesFound;
|
|
98
96
|
}
|
|
@@ -102,8 +100,8 @@ const hasWhiteSpace = s => {
|
|
|
102
100
|
const filename = s.split('/').pop();
|
|
103
101
|
return filename.indexOf(' ') >= 0;
|
|
104
102
|
};
|
|
105
|
-
const dealWithMultiJava = (filesFound, config, isFile) => {
|
|
106
|
-
if (isFile) {
|
|
103
|
+
export const dealWithMultiJava = (filesFound, config, isFile) => {
|
|
104
|
+
if (isFile && filesFound.length === 1 && filesFound[0].language === 'JAVA') {
|
|
107
105
|
return multiJavaFilePathFullySpecified(filesFound, config);
|
|
108
106
|
}
|
|
109
107
|
else {
|
|
@@ -128,16 +126,19 @@ const multiJavaFilePathFullySpecified = (filesFound, config) => {
|
|
|
128
126
|
if (filteredFiles[0] === 'pom.xml') {
|
|
129
127
|
filesFound[0].packageManager = 'MAVEN';
|
|
130
128
|
}
|
|
131
|
-
else {
|
|
129
|
+
else if (filteredFiles[0] === 'build.gradle') {
|
|
132
130
|
filesFound[0].packageManager = 'GRADLE';
|
|
133
131
|
}
|
|
132
|
+
else {
|
|
133
|
+
throw new Error('Unable to determine project file for Java - check the file specified is a valid pom or build.gradle file');
|
|
134
|
+
}
|
|
134
135
|
if (config.debug || config.verbose) {
|
|
135
136
|
console.log('\nAuto detection - detected multiple Java files');
|
|
136
137
|
console.log(`\nAuto detection - using ${filesFound[0].filePath} as based on full file path`);
|
|
137
138
|
}
|
|
138
139
|
return filesFound;
|
|
139
140
|
};
|
|
140
|
-
const errorOnFileDetection = entries => {
|
|
141
|
+
export const errorOnFileDetection = entries => {
|
|
141
142
|
if (entries.length > 1) {
|
|
142
143
|
console.log(i18n.__('searchingDirectoryScan'));
|
|
143
144
|
for (let file in entries) {
|
|
@@ -153,7 +154,7 @@ const errorOnFileDetection = entries => {
|
|
|
153
154
|
}
|
|
154
155
|
process.exit(1);
|
|
155
156
|
};
|
|
156
|
-
const errorOnAuditFileDetection = entries => {
|
|
157
|
+
export const errorOnAuditFileDetection = entries => {
|
|
157
158
|
if (entries.length > 1) {
|
|
158
159
|
console.log(i18n.__('searchingDirectoryScan'));
|
|
159
160
|
for (let file in entries) {
|
|
@@ -168,12 +169,4 @@ const errorOnAuditFileDetection = entries => {
|
|
|
168
169
|
console.log(i18n.__('specifyFileAuditNotFound'));
|
|
169
170
|
}
|
|
170
171
|
};
|
|
171
|
-
|
|
172
|
-
autoDetectFileAndLanguage,
|
|
173
|
-
errorOnFileDetection,
|
|
174
|
-
autoDetectAuditFilesAndLanguages,
|
|
175
|
-
errorOnAuditFileDetection,
|
|
176
|
-
autoDetectFingerprintInfo,
|
|
177
|
-
dealWithMultiJava,
|
|
178
|
-
detectPackageManager
|
|
179
|
-
};
|
|
172
|
+
//# sourceMappingURL=autoDetection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoDetection.js","sourceRoot":"","sources":["../../src/common/autoDetection.js"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.buildBaseRequestOptions = exports.gotInstance = void 0;
|
|
7
|
-
const hpagent_1 = require("hpagent");
|
|
8
|
-
const fs_1 = __importDefault(require("fs"));
|
|
9
|
-
const got_1 = __importDefault(require("got"));
|
|
10
|
-
function gotInstance(config) {
|
|
11
|
-
return got_1.default.extend({ retry: { limit: 0 }, ...buildBaseRequestOptions(config) });
|
|
1
|
+
import { HttpsProxyAgent } from 'hpagent';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import got from 'got';
|
|
4
|
+
export function gotInstance(config) {
|
|
5
|
+
return got.extend({ retry: { limit: 0 }, ...buildBaseRequestOptions(config) });
|
|
12
6
|
}
|
|
13
|
-
|
|
14
|
-
function buildBaseRequestOptions(config) {
|
|
7
|
+
export function buildBaseRequestOptions(config) {
|
|
15
8
|
const { apiKey, authorization } = config;
|
|
16
9
|
const rejectUnauthorized = !config.certSelfSigned;
|
|
17
10
|
const superApiKey = config.superApiKey;
|
|
@@ -37,38 +30,41 @@ function buildBaseRequestOptions(config) {
|
|
|
37
30
|
maybeAddCertsToRequest(config, requestOptions.https);
|
|
38
31
|
return requestOptions;
|
|
39
32
|
}
|
|
40
|
-
exports.buildBaseRequestOptions = buildBaseRequestOptions;
|
|
41
33
|
function getAgent(config) {
|
|
42
34
|
return config.proxy
|
|
43
|
-
? new
|
|
35
|
+
? new HttpsProxyAgent({ proxy: config.proxy })
|
|
44
36
|
: false;
|
|
45
37
|
}
|
|
46
38
|
function maybeAddCertsToRequest(config, https) {
|
|
39
|
+
// cacert
|
|
47
40
|
const caCertFilePath = config.cacert;
|
|
48
41
|
if (caCertFilePath) {
|
|
49
42
|
try {
|
|
50
|
-
https.certificateAuthority =
|
|
43
|
+
https.certificateAuthority = fs.readFileSync(caCertFilePath);
|
|
51
44
|
}
|
|
52
45
|
catch (error) {
|
|
53
46
|
throw new Error(`Unable to read CA from ${caCertFilePath}, msg: ${error.message}`);
|
|
54
47
|
}
|
|
55
48
|
}
|
|
49
|
+
// cert
|
|
56
50
|
const certPath = config.cert;
|
|
57
51
|
if (certPath) {
|
|
58
52
|
try {
|
|
59
|
-
https.certificate =
|
|
53
|
+
https.certificate = fs.readFileSync(certPath);
|
|
60
54
|
}
|
|
61
55
|
catch (error) {
|
|
62
56
|
throw new Error(`Unable to read Certificate PEM file from config option contrast.api.certificate.cert_file='${certPath}', msg: ${error.message}`);
|
|
63
57
|
}
|
|
64
58
|
}
|
|
59
|
+
// key
|
|
65
60
|
const keyPath = config.key;
|
|
66
61
|
if (keyPath) {
|
|
67
62
|
try {
|
|
68
|
-
https.key =
|
|
63
|
+
https.key = fs.readFileSync(keyPath);
|
|
69
64
|
}
|
|
70
65
|
catch (error) {
|
|
71
66
|
throw new Error(`Unable to read Key PEM file from config option contrast.api.certificate.key_file='${keyPath}', msg: ${error.message}`);
|
|
72
67
|
}
|
|
73
68
|
}
|
|
74
69
|
}
|
|
70
|
+
//# sourceMappingURL=baseRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseRequest.js","sourceRoot":"","sources":["../../src/common/baseRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,GAAgB,MAAM,KAAK,CAAA;AAGlC,MAAM,UAAU,WAAW,CAAC,MAAW;IACrC,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAChF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAW;IACjD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;IACxC,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,cAAc,CAAA;IAEjD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;IACtC,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAA;IAEhD,MAAM,cAAc,GAAG;QACrB,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,MAAM,CAAC,IAAI;QAChB,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE;YACP,cAAc,EAAE,iCAAiC;YACjD,aAAa,EAAE,aAAa;YAC5B,SAAS,EAAE,MAAM;YACjB,kBAAkB,EAAE,cAAc;YAClC,eAAe,EAAE,WAAW;YAC5B,YAAY,EAAE,iBAAiB;SAChC;QACD,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;KACb,CAAA;IAEZ,cAAc,CAAC,KAAK,GAAG;QACrB,kBAAkB,EAAE,kBAAkB;KACvC,CAAA;IAED,sBAAsB,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IACpD,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,SAAS,QAAQ,CAAC,MAAW;IAC3B,OAAO,MAAM,CAAC,KAAK;QACjB,CAAC,CAAE,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAY;QAC1D,CAAC,CAAC,KAAK,CAAA;AACX,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAW,EAAE,KAAmB;IAC9D,SAAS;IACT,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAA;IACpC,IAAI,cAAc,EAAE;QAClB,IAAI;YACF,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;SAC7D;QAAC,OAAO,KAAU,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,0BAA0B,cAAc,UAAU,KAAK,CAAC,OAAO,EAAE,CAClE,CAAA;SACF;KACF;IAED,OAAO;IACP,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAA;IAC5B,IAAI,QAAQ,EAAE;QACZ,IAAI;YACF,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;SAC9C;QAAC,OAAO,KAAU,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,8FAA8F,QAAQ,WAAW,KAAK,CAAC,OAAO,EAAE,CACjI,CAAA;SACF;KACF;IAED,MAAM;IACN,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;IAC1B,IAAI,OAAO,EAAE;QACX,IAAI;YACF,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;SACrC;QAAC,OAAO,KAAU,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,qFAAqF,OAAO,WAAW,KAAK,CAAC,OAAO,EAAE,CACvH,CAAA;SACF;KACF;AACH,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const commonHelpLinks = () => {
|
|
1
|
+
import i18n from 'i18n';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
export const commonHelpLinks = () => {
|
|
5
4
|
return [
|
|
6
5
|
{
|
|
7
6
|
header: i18n.__('commonHelpHeader'),
|
|
@@ -27,18 +26,19 @@ const commonHelpLinks = () => {
|
|
|
27
26
|
}
|
|
28
27
|
];
|
|
29
28
|
};
|
|
30
|
-
const postRunMessage = commandName => {
|
|
29
|
+
export const postRunMessage = commandName => {
|
|
31
30
|
console.log('\n' + chalk.underline.bold('Other Features:'));
|
|
32
|
-
if (commandName !== 'scan')
|
|
31
|
+
if (commandName !== 'scan') {
|
|
33
32
|
console.log("'contrast scan' to run Contrast's industry leading SAST scanner");
|
|
34
|
-
|
|
33
|
+
}
|
|
34
|
+
if (commandName !== 'audit') {
|
|
35
35
|
console.log("'contrast audit' to find vulnerabilities in your open source dependencies");
|
|
36
|
-
|
|
36
|
+
}
|
|
37
|
+
if (commandName !== 'lambda') {
|
|
37
38
|
console.log("'contrast lambda' to secure your AWS serverless functions");
|
|
38
|
-
|
|
39
|
+
}
|
|
40
|
+
if (commandName !== 'learn') {
|
|
39
41
|
console.log("'contrast learn' launches Contrast's Secure Code Learning Hub.");
|
|
42
|
+
}
|
|
40
43
|
};
|
|
41
|
-
|
|
42
|
-
commonHelpLinks,
|
|
43
|
-
postRunMessage
|
|
44
|
-
};
|
|
44
|
+
//# sourceMappingURL=commonHelp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonHelp.js","sourceRoot":"","sources":["../../src/common/commonHelp.js"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,OAAO;QACL;YACE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC;YACnC,OAAO,EAAE;gBACP,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC;gBACvE,IAAI,CAAC,EAAE,CAAC,2BAA2B,CAAC;oBAClC,IAAI,CAAC,EAAE,CAAC,yBAAyB,CAAC;gBACpC,IAAI,CAAC,EAAE,CAAC,gCAAgC,CAAC;oBACvC,IAAI,CAAC,EAAE,CAAC,8BAA8B,CAAC;aAC1C;SACF;QACD;YACE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,4BAA4B,CAAC;YAC7C,OAAO,EAAE;gBACP,IAAI,CAAC,EAAE,CAAC,qCAAqC,CAAC;oBAC5C,IAAI,CAAC,EAAE,CAAC,mCAAmC,CAAC;aAC/C;SACF;QACD;YACE,OAAO,EAAE;gBACP,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC;aAClE;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC,EAAE;IAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC3D,IAAI,WAAW,KAAK,MAAM,EAAE;QAC1B,OAAO,CAAC,GAAG,CACT,iEAAiE,CAClE,CAAA;KACF;IACD,IAAI,WAAW,KAAK,OAAO,EAAE;QAC3B,OAAO,CAAC,GAAG,CACT,2EAA2E,CAC5E,CAAA;KACF;IACD,IAAI,WAAW,KAAK,QAAQ,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAA;KACzE;IAED,IAAI,WAAW,KAAK,OAAO,EAAE;QAC3B,OAAO,CAAC,GAAG,CACT,gEAAgE,CACjE,CAAA;KACF;AACH,CAAC,CAAA"}
|
|
@@ -1,59 +1,67 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const libraryAnalysisError = () => {
|
|
1
|
+
import i18n from 'i18n';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
export const libraryAnalysisError = () => {
|
|
5
4
|
console.log(i18n.__('libraryAnalysisError'));
|
|
6
5
|
};
|
|
7
|
-
const snapshotFailureError = () => {
|
|
6
|
+
export const snapshotFailureError = () => {
|
|
8
7
|
console.log(i18n.__('snapshotFailureMessage'));
|
|
9
8
|
};
|
|
10
|
-
const vulnerabilitiesFailureError = () => {
|
|
9
|
+
export const vulnerabilitiesFailureError = () => {
|
|
11
10
|
console.log(i18n.__('vulnerabilitiesFailureMessage'));
|
|
12
11
|
};
|
|
13
|
-
const reportFailureError = () => {
|
|
12
|
+
export const reportFailureError = () => {
|
|
14
13
|
console.log(i18n.__('auditReportFailureMessage'));
|
|
15
14
|
};
|
|
16
|
-
const genericError = () => {
|
|
15
|
+
export const genericError = () => {
|
|
17
16
|
console.error(i18n.__('genericErrorMessage'));
|
|
18
17
|
process.exit(1);
|
|
19
18
|
};
|
|
20
|
-
const unauthenticatedError = () => {
|
|
19
|
+
export const unauthenticatedError = () => {
|
|
21
20
|
generalError('unauthenticatedErrorHeader', 'unauthenticatedErrorMessage');
|
|
22
21
|
};
|
|
23
|
-
const badRequestError = catalogue => {
|
|
22
|
+
export const badRequestError = catalogue => {
|
|
24
23
|
catalogue === true
|
|
25
24
|
? generalError('badRequestErrorHeader', 'badRequestCatalogueErrorMessage')
|
|
26
25
|
: generalError('badRequestErrorHeader', 'badRequestErrorMessage');
|
|
27
26
|
};
|
|
28
|
-
const forbiddenError = () => {
|
|
27
|
+
export const forbiddenError = () => {
|
|
29
28
|
generalError('forbiddenRequestErrorHeader', 'forbiddenRequestErrorMessage');
|
|
30
29
|
process.exit(1);
|
|
31
30
|
};
|
|
32
|
-
const proxyError = () => {
|
|
31
|
+
export const proxyError = () => {
|
|
33
32
|
generalError('proxyErrorHeader', 'proxyErrorMessage');
|
|
34
33
|
};
|
|
35
|
-
const maxAppError = () => {
|
|
34
|
+
export const maxAppError = () => {
|
|
36
35
|
generalError('No applications remaining', 'You have reached the maximum number of application you can create.');
|
|
37
36
|
process.exit(1);
|
|
38
37
|
};
|
|
39
|
-
const parametersError = () => {
|
|
38
|
+
export const parametersError = () => {
|
|
40
39
|
generalError(`Credentials not recognized`, 'Check your command & keys again for hidden characters / verify that the credentials are correct.\nFor more information use contrast help.');
|
|
41
40
|
process.exit(1);
|
|
42
41
|
};
|
|
43
|
-
const invalidHostNameError = () => {
|
|
42
|
+
export const invalidHostNameError = () => {
|
|
44
43
|
generalError(`Invalid host`, 'Check that the host parameter does not include a trailing "/".');
|
|
45
44
|
process.exit(1);
|
|
46
45
|
};
|
|
47
|
-
const failOptionError = () => {
|
|
46
|
+
export const failOptionError = () => {
|
|
48
47
|
console.log('\n ******************************** ' +
|
|
49
48
|
i18n.__('snapshotFailureHeader') +
|
|
50
49
|
' ********************************\n' +
|
|
51
50
|
i18n.__('failOptionErrorMessage'));
|
|
52
51
|
};
|
|
53
|
-
|
|
52
|
+
/**
|
|
53
|
+
* You don't have to pass `i18n` translation.
|
|
54
|
+
* String that didn't exists on translations will pass as regular string
|
|
55
|
+
* @param header title for the error
|
|
56
|
+
* @param message message for the error
|
|
57
|
+
* @returns error in general format
|
|
58
|
+
*/
|
|
59
|
+
export const getErrorMessage = (header, message) => {
|
|
60
|
+
// prettier-ignore
|
|
54
61
|
const title = `******************************** ${i18n.__(header)} ********************************`;
|
|
55
62
|
const multiLine = message?.includes('\n');
|
|
56
63
|
let finalMessage = '';
|
|
64
|
+
// i18n split the line if it includes '\n'
|
|
57
65
|
if (multiLine) {
|
|
58
66
|
finalMessage = `\n${message}`;
|
|
59
67
|
}
|
|
@@ -62,11 +70,11 @@ const getErrorMessage = (header, message) => {
|
|
|
62
70
|
}
|
|
63
71
|
return `${title}${finalMessage}`;
|
|
64
72
|
};
|
|
65
|
-
const generalError = (header, message) => {
|
|
73
|
+
export const generalError = (header, message) => {
|
|
66
74
|
const finalMessage = getErrorMessage(header, message);
|
|
67
75
|
console.log(finalMessage);
|
|
68
76
|
};
|
|
69
|
-
const findCommandOnError = unknownOptions => {
|
|
77
|
+
export const findCommandOnError = unknownOptions => {
|
|
70
78
|
const commandKeywords = {
|
|
71
79
|
auth: 'auth',
|
|
72
80
|
audit: 'audit',
|
|
@@ -77,10 +85,11 @@ const findCommandOnError = unknownOptions => {
|
|
|
77
85
|
const containsCommandKeyword = unknownOptions.some(command => commandKeywords[command]);
|
|
78
86
|
if (containsCommandKeyword) {
|
|
79
87
|
const foundCommands = unknownOptions.filter(command => commandKeywords[command]);
|
|
88
|
+
//return the first command found
|
|
80
89
|
return foundCommands[0];
|
|
81
90
|
}
|
|
82
91
|
};
|
|
83
|
-
const commonMessageFormatter = (message, fail) => {
|
|
92
|
+
export const commonMessageFormatter = (message, fail) => {
|
|
84
93
|
console.log(chalk.bold(i18n.__(message.title)));
|
|
85
94
|
console.log(i18n.__(message.body));
|
|
86
95
|
if (message.extra) {
|
|
@@ -90,22 +99,4 @@ const commonMessageFormatter = (message, fail) => {
|
|
|
90
99
|
process.exit(1);
|
|
91
100
|
}
|
|
92
101
|
};
|
|
93
|
-
|
|
94
|
-
genericError,
|
|
95
|
-
unauthenticatedError,
|
|
96
|
-
badRequestError,
|
|
97
|
-
forbiddenError,
|
|
98
|
-
proxyError,
|
|
99
|
-
failOptionError,
|
|
100
|
-
generalError,
|
|
101
|
-
getErrorMessage,
|
|
102
|
-
libraryAnalysisError,
|
|
103
|
-
findCommandOnError,
|
|
104
|
-
snapshotFailureError,
|
|
105
|
-
vulnerabilitiesFailureError,
|
|
106
|
-
reportFailureError,
|
|
107
|
-
maxAppError,
|
|
108
|
-
parametersError,
|
|
109
|
-
invalidHostNameError,
|
|
110
|
-
commonMessageFormatter
|
|
111
|
-
};
|
|
102
|
+
//# sourceMappingURL=errorHandling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../../src/common/errorHandling.js"],"names":[],"mappings":"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"}
|
package/dist/common/fail.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
3
|
-
const processFail = (config, reportResults) => {
|
|
1
|
+
import i18n from 'i18n';
|
|
2
|
+
export const processFail = (config, reportResults) => {
|
|
4
3
|
if (config.severity !== undefined) {
|
|
5
4
|
if (reportResults[config.severity] !== undefined &&
|
|
6
5
|
isSeverityViolation(config.severity, reportResults)) {
|
|
@@ -11,7 +10,7 @@ const processFail = (config, reportResults) => {
|
|
|
11
10
|
failPipeline('failThresholdOptionErrorMessage');
|
|
12
11
|
}
|
|
13
12
|
};
|
|
14
|
-
const isSeverityViolation = (severity, reportResults) => {
|
|
13
|
+
export const isSeverityViolation = (severity, reportResults) => {
|
|
15
14
|
let count = 0;
|
|
16
15
|
switch (severity) {
|
|
17
16
|
case 'critical':
|
|
@@ -44,14 +43,14 @@ const isSeverityViolation = (severity, reportResults) => {
|
|
|
44
43
|
}
|
|
45
44
|
return count > 0;
|
|
46
45
|
};
|
|
47
|
-
const failPipeline = (message = '') => {
|
|
46
|
+
export const failPipeline = (message = '') => {
|
|
48
47
|
console.log('\n ******************************** ' +
|
|
49
48
|
i18n.__('snapshotFailureHeader') +
|
|
50
49
|
' *********************************\n' +
|
|
51
50
|
i18n.__(message));
|
|
52
51
|
process.exit(2);
|
|
53
52
|
};
|
|
54
|
-
const parseSeverity = severity => {
|
|
53
|
+
export const parseSeverity = severity => {
|
|
55
54
|
const severities = ['NOTE', 'LOW', 'MEDIUM', 'HIGH', 'CRITICAL'];
|
|
56
55
|
if (severities.includes(severity.toUpperCase())) {
|
|
57
56
|
return severity.toLowerCase();
|
|
@@ -62,9 +61,4 @@ const parseSeverity = severity => {
|
|
|
62
61
|
return undefined;
|
|
63
62
|
}
|
|
64
63
|
};
|
|
65
|
-
|
|
66
|
-
failPipeline,
|
|
67
|
-
processFail,
|
|
68
|
-
isSeverityViolation,
|
|
69
|
-
parseSeverity
|
|
70
|
-
};
|
|
64
|
+
//# sourceMappingURL=fail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fail.js","sourceRoot":"","sources":["../../src/common/fail.js"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE;IACnD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;QACjC,IACE,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAS;YAC5C,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,EACnD;YACA,YAAY,CAAC,gCAAgC,CAAC,CAAA;SAC/C;KACF;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,aAAa,CAAC,KAAK,GAAG,CAAC,EAAE;QAC5D,YAAY,CAAC,iCAAiC,CAAC,CAAA;KAChD;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,QAAQ,QAAQ,EAAE;QAChB,KAAK,UAAU;YACb,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAA;YAC/B,MAAK;QACP,KAAK,MAAM;YACT,KAAK,IAAI,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAA;YACpD,MAAK;QACP,KAAK,QAAQ;YACX,KAAK;gBACH,aAAa,CAAC,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAA;YACpE,MAAK;QACP,KAAK,KAAK;YACR,KAAK;gBACH,aAAa,CAAC,IAAI;oBAClB,aAAa,CAAC,QAAQ;oBACtB,aAAa,CAAC,MAAM;oBACpB,aAAa,CAAC,GAAG,CAAA;YACnB,MAAK;QACP,KAAK,MAAM;YACT,IAAI,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE;gBAC7C,KAAK,GAAG,CAAC,CAAA;aACV;iBAAM;gBACL,KAAK,GAAG,aAAa,CAAC,KAAK,CAAA;aAC5B;YACD,MAAK;QACP;YACE,KAAK,GAAG,CAAC,CAAA;KACZ;IACD,OAAO,KAAK,GAAG,CAAC,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE;IAC3C,OAAO,CAAC,GAAG,CACT,sCAAsC;QACpC,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC;QAChC,sCAAsC;QACtC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CACnB,CAAA;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,EAAE;IACtC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IAChE,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;QAC/C,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAA;KAC9B;SAAM;QACL,OAAO,CAAC,GAAG,CACT,QAAQ;YACN,iFAAiF,CACpF,CAAA;QACD,OAAO,SAAS,CAAA;KACjB;AACH,CAAC,CAAA"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const client = commonApi.getHttpClient(config);
|
|
1
|
+
import boxen from 'boxen';
|
|
2
|
+
import { lt, satisfies } from 'semver';
|
|
3
|
+
import { getHttpClient } from '../utils/commonApi.js';
|
|
4
|
+
import { constants } from 'http2';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import * as constants_2 from '../constants/constants.js';
|
|
7
|
+
export const getLatestVersion = async (config) => {
|
|
8
|
+
const client = getHttpClient(config);
|
|
10
9
|
try {
|
|
11
10
|
const res = await client.getLatestVersion();
|
|
12
11
|
if (res.statusCode === constants.HTTP_STATUS_OK) {
|
|
@@ -14,10 +13,11 @@ const getLatestVersion = async (config) => {
|
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
15
|
catch (e) {
|
|
16
|
+
console.log('here', e);
|
|
17
17
|
return undefined;
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
|
-
const findLatestCLIVersion = async (config) => {
|
|
20
|
+
export const findLatestCLIVersion = async (config) => {
|
|
21
21
|
const isCI = process.env.CONTRAST_CODESEC_CI
|
|
22
22
|
? JSON.parse(process.env.CONTRAST_CODESEC_CI.toLowerCase())
|
|
23
23
|
: false;
|
|
@@ -28,9 +28,10 @@ const findLatestCLIVersion = async (config) => {
|
|
|
28
28
|
console.log('Failed to retrieve latest version info. Continuing execution.');
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
+
//strip key and remove new lines
|
|
31
32
|
latestCLIVersion = latestCLIVersion.substring(8).replace('\n', '');
|
|
32
|
-
if (
|
|
33
|
-
const updateAvailableMessage = `Update available ${chalk.yellow(
|
|
33
|
+
if (lt(constants_2.getAppVersion(), latestCLIVersion)) {
|
|
34
|
+
const updateAvailableMessage = `Update available ${chalk.yellow(constants_2.getAppVersion())} → ${chalk.green(latestCLIVersion)}`;
|
|
34
35
|
const npmUpdateAvailableCommand = `Run ${chalk.cyan('npm i @contrast/contrast -g')} to update via npm`;
|
|
35
36
|
const homebrewUpdateAvailableCommand = `Run ${chalk.cyan('brew install contrastsecurity/tap/contrast')} to update via brew`;
|
|
36
37
|
console.log(boxen(`${updateAvailableMessage}\n${npmUpdateAvailableCommand}\n\n${homebrewUpdateAvailableCommand}`, {
|
|
@@ -42,11 +43,7 @@ const findLatestCLIVersion = async (config) => {
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
|
-
const isCorrectNodeVersion = async (currentVersion) => {
|
|
46
|
-
return
|
|
47
|
-
};
|
|
48
|
-
module.exports = {
|
|
49
|
-
getLatestVersion,
|
|
50
|
-
findLatestCLIVersion,
|
|
51
|
-
isCorrectNodeVersion
|
|
46
|
+
export const isCorrectNodeVersion = async (currentVersion) => {
|
|
47
|
+
return satisfies(currentVersion, '>=16');
|
|
52
48
|
};
|
|
49
|
+
//# sourceMappingURL=versionChecker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionChecker.js","sourceRoot":"","sources":["../../src/common/versionChecker.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAC,MAAM,EAAC,EAAE;IAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAA;QAC3C,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,cAAc,EAAE;YAC/C,OAAO,GAAG,CAAC,IAAI,CAAA;SAChB;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACtB,OAAO,SAAS,CAAA;KACjB;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAC,MAAM,EAAC,EAAE;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC1C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;QAC3D,CAAC,CAAC,KAAK,CAAA;IAET,IAAI,CAAC,IAAI,EAAE;QACT,IAAI,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAErD,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YAC1B,OAAO,CAAC,GAAG,CACT,+DAA+D,CAChE,CAAA;YACD,OAAM;SACP;QAED,gCAAgC;QAChC,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAElE,IAAI,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,gBAAgB,CAAC,EAAE;YACrD,MAAM,sBAAsB,GAAG,oBAAoB,KAAK,CAAC,MAAM,CAC7D,WAAW,CAAC,aAAa,EAAE,CAC5B,MAAM,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAA;YAEtC,MAAM,yBAAyB,GAAG,OAAO,KAAK,CAAC,IAAI,CACjD,6BAA6B,CAC9B,oBAAoB,CAAA;YAErB,MAAM,8BAA8B,GAAG,OAAO,KAAK,CAAC,IAAI,CACtD,4CAA4C,CAC7C,qBAAqB,CAAA;YAEtB,OAAO,CAAC,GAAG,CACT,KAAK,CACH,GAAG,sBAAsB,KAAK,yBAAyB,OAAO,8BAA8B,EAAE,EAC9F;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,QAAQ;aAChB,CACF,CACF,CAAA;SACF;KACF;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAC,cAAc,EAAC,EAAE;IACzD,OAAO,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;AAC1C,CAAC,CAAA"}
|
|
@@ -1,65 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
const NODE = 'NODE';
|
|
3
|
-
const DOTNET = 'DOTNET';
|
|
4
|
-
const JAVA = 'JAVA';
|
|
5
|
-
const RUBY = 'RUBY';
|
|
6
|
-
const PYTHON = 'PYTHON';
|
|
7
|
-
const GO = 'GO';
|
|
8
|
-
const PHP = 'PHP';
|
|
9
|
-
const JAVASCRIPT = 'JAVASCRIPT';
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
TIMEOUT,
|
|
46
|
-
AUTH_UI_URL,
|
|
47
|
-
AUTH_CALLBACK_URL,
|
|
48
|
-
SARIF_FILE,
|
|
49
|
-
HIGH_COLOUR,
|
|
50
|
-
CRITICAL_COLOUR,
|
|
51
|
-
MEDIUM_COLOUR,
|
|
52
|
-
LOW_COLOUR,
|
|
53
|
-
NOTE_COLOUR,
|
|
54
|
-
CE_URL,
|
|
55
|
-
CRITICAL_PRIORITY,
|
|
56
|
-
HIGH_PRIORITY,
|
|
57
|
-
MEDIUM_PRIORITY,
|
|
58
|
-
LOW_PRIORITY,
|
|
59
|
-
NOTE_PRIORITY,
|
|
60
|
-
SBOM_CYCLONE_DX_FILE,
|
|
61
|
-
SBOM_SPDX_FILE,
|
|
62
|
-
SAAS,
|
|
63
|
-
EOP,
|
|
64
|
-
MODE_REPO
|
|
65
|
-
};
|
|
1
|
+
// Language identifiers
|
|
2
|
+
export const NODE = 'NODE';
|
|
3
|
+
export const DOTNET = 'DOTNET';
|
|
4
|
+
export const JAVA = 'JAVA';
|
|
5
|
+
export const RUBY = 'RUBY';
|
|
6
|
+
export const PYTHON = 'PYTHON';
|
|
7
|
+
export const GO = 'GO';
|
|
8
|
+
export const PHP = 'PHP';
|
|
9
|
+
export const JAVASCRIPT = 'JAVASCRIPT';
|
|
10
|
+
// Severity
|
|
11
|
+
export const LOW = 'LOW';
|
|
12
|
+
export const MEDIUM = 'MEDIUM';
|
|
13
|
+
export const HIGH = 'HIGH';
|
|
14
|
+
export const CRITICAL = 'CRITICAL';
|
|
15
|
+
// App
|
|
16
|
+
export const APP_NAME = 'contrast';
|
|
17
|
+
const APP_VERSION = '2.0.2-beta.4';
|
|
18
|
+
export const TIMEOUT = 120000;
|
|
19
|
+
export const HIGH_COLOUR = '#ff9900';
|
|
20
|
+
export const CRITICAL_COLOUR = '#e35858';
|
|
21
|
+
export const MEDIUM_COLOUR = '#f1c232';
|
|
22
|
+
export const LOW_COLOUR = '#b7b7b7';
|
|
23
|
+
export const NOTE_COLOUR = '#999999';
|
|
24
|
+
export const CRITICAL_PRIORITY = 1;
|
|
25
|
+
export const HIGH_PRIORITY = 2;
|
|
26
|
+
export const MEDIUM_PRIORITY = 3;
|
|
27
|
+
export const LOW_PRIORITY = 4;
|
|
28
|
+
export const NOTE_PRIORITY = 5;
|
|
29
|
+
export const AUTH_UI_URL = 'https://cli-auth.contrastsecurity.com';
|
|
30
|
+
export const AUTH_CALLBACK_URL = 'https://cli-auth-api.contrastsecurity.com';
|
|
31
|
+
export const SARIF_FILE = 'SARIF';
|
|
32
|
+
export const SBOM_CYCLONE_DX_FILE = 'CYCLONEDX';
|
|
33
|
+
export const SBOM_SPDX_FILE = 'SPDX';
|
|
34
|
+
export const CE_URL = 'https://ce.contrastsecurity.com';
|
|
35
|
+
//configuration
|
|
36
|
+
export const SAAS = 'SAAS';
|
|
37
|
+
export const EOP = 'EOP';
|
|
38
|
+
export const MODE_REPO = 'REPO';
|
|
39
|
+
export const supportedLanguagesScan = { JAVASCRIPT, DOTNET, JAVA };
|
|
40
|
+
//mainly for testing
|
|
41
|
+
export function getAppVersion() {
|
|
42
|
+
return APP_VERSION;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants/constants.js"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAA;AAC9B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAA;AAC9B,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAA;AACtB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAA;AACxB,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAA;AACtC,WAAW;AACX,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAA;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAA;AAC9B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAA;AAClC,MAAM;AACN,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAA;AAClC,MAAM,WAAW,GAAG,cAAc,CAAA;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAA;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAA;AACpC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAA;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAA;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAA;AACnC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAA;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAA;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAE9B,MAAM,CAAC,MAAM,WAAW,GAAG,uCAAuC,CAAA;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,2CAA2C,CAAA;AAC5E,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAA;AACjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAA;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAA;AACpC,MAAM,CAAC,MAAM,MAAM,GAAG,iCAAiC,CAAA;AAEvD,eAAe;AACf,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAA;AACxB,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAA;AAE/B,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAElE,oBAAoB;AACpB,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAA;AACpB,CAAC"}
|