@contrast/contrast 2.0.2-beta.3 → 2.0.2-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
package/dist/scan/scan.js
CHANGED
|
@@ -1,67 +1,60 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const commonApi_js_1 = __importDefault(require("../utils/commonApi.js"));
|
|
8
|
-
const fileUtils_1 = __importDefault(require("../scan/fileUtils"));
|
|
9
|
-
const i18n_1 = __importDefault(require("i18n"));
|
|
10
|
-
const oraWrapper_1 = __importDefault(require("../utils/oraWrapper"));
|
|
11
|
-
exports.allowedFileTypes = ['.jar', '.war', '.js', '.zip', '.exe'];
|
|
12
|
-
const isFileAllowed = (scanOption) => {
|
|
1
|
+
import { checkFilePermissions } from './fileUtils.js';
|
|
2
|
+
import { getHttpClient } from '../utils/commonApi.js';
|
|
3
|
+
import { failSpinner, returnOra, startSpinner, stopSpinner, succeedSpinner } from '../utils/oraWrapper.js';
|
|
4
|
+
import i18n from 'i18n';
|
|
5
|
+
export const allowedFileTypes = ['.jar', '.war', '.js', '.zip', '.exe'];
|
|
6
|
+
export const isFileAllowed = (scanOption) => {
|
|
13
7
|
let valid = false;
|
|
14
|
-
|
|
8
|
+
allowedFileTypes.forEach(fileType => {
|
|
15
9
|
if (scanOption.endsWith(fileType)) {
|
|
16
10
|
valid = true;
|
|
17
11
|
}
|
|
18
12
|
});
|
|
19
13
|
return valid;
|
|
20
14
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
console.log(i18n_1.default.__('scanErrorFileMessage'));
|
|
15
|
+
export const sendScan = async (config) => {
|
|
16
|
+
if (!isFileAllowed(config.file)) {
|
|
17
|
+
console.log(i18n.__('scanErrorFileMessage'));
|
|
25
18
|
process.exit(9);
|
|
26
19
|
}
|
|
27
20
|
else {
|
|
28
|
-
|
|
29
|
-
const client =
|
|
30
|
-
const startUploadSpinner =
|
|
31
|
-
|
|
21
|
+
checkFilePermissions(config.file);
|
|
22
|
+
const client = getHttpClient(config);
|
|
23
|
+
const startUploadSpinner = returnOra(i18n.__('uploadingScan'));
|
|
24
|
+
startSpinner(startUploadSpinner);
|
|
32
25
|
return await client
|
|
33
26
|
.sendArtifact(config)
|
|
34
|
-
.then(res => {
|
|
27
|
+
.then((res) => {
|
|
35
28
|
if (res.statusCode === 201) {
|
|
36
|
-
|
|
29
|
+
succeedSpinner(startUploadSpinner, i18n.__('uploadingScanSuccessful'));
|
|
37
30
|
if (config.verbose) {
|
|
38
|
-
console.log(
|
|
31
|
+
console.log(i18n.__('responseMessage', res.body));
|
|
39
32
|
}
|
|
40
33
|
return res.body.id;
|
|
41
34
|
}
|
|
42
35
|
else {
|
|
43
36
|
if (config.debug) {
|
|
44
37
|
console.log(config);
|
|
45
|
-
|
|
46
|
-
console.log(
|
|
38
|
+
failSpinner(startUploadSpinner, i18n.__('uploadingScanFail'));
|
|
39
|
+
console.log(i18n.__('genericServiceError', res.statusCode));
|
|
47
40
|
}
|
|
48
41
|
if (res.statusCode === 429) {
|
|
49
|
-
console.log(
|
|
42
|
+
console.log(i18n.__('exceededFreeTier'));
|
|
50
43
|
process.exit(1);
|
|
51
44
|
}
|
|
52
45
|
if (res.statusCode === 403) {
|
|
53
|
-
console.log(
|
|
46
|
+
console.log(i18n.__('permissionsError'));
|
|
54
47
|
process.exit(1);
|
|
55
48
|
}
|
|
56
|
-
|
|
49
|
+
stopSpinner(startUploadSpinner);
|
|
57
50
|
console.log('Contrast Scan Finished');
|
|
58
51
|
process.exit(1);
|
|
59
52
|
}
|
|
60
53
|
})
|
|
61
54
|
.catch(err => {
|
|
62
|
-
|
|
55
|
+
stopSpinner(startUploadSpinner);
|
|
63
56
|
console.log(err);
|
|
64
57
|
});
|
|
65
58
|
}
|
|
66
59
|
};
|
|
67
|
-
|
|
60
|
+
//# sourceMappingURL=scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/scan/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,WAAW,EACX,cAAc,EACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAE,EAAE;IAClD,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAClC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACjC,KAAK,GAAG,IAAI,CAAA;SACb;IACH,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAW,EAAE,EAAE;IAC5C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAA;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;SAAM;QACL,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QAEpC,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAA;QAC9D,YAAY,CAAC,kBAAkB,CAAC,CAAA;QAEhC,OAAO,MAAM,MAAM;aAChB,YAAY,CAAC,MAAM,CAAC;aACpB,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE;YACjB,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;gBAC1B,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAA;gBACtE,IAAI,MAAM,CAAC,OAAO,EAAE;oBAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;iBAClD;gBACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;aACnB;iBAAM;gBACL,IAAI,MAAM,CAAC,KAAK,EAAE;oBAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBACnB,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;oBAC7D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;iBAC5D;gBACD,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;oBAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;oBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;iBAChB;gBACD,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;oBAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;oBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;iBAChB;gBACD,WAAW,CAAC,kBAAkB,CAAC,CAAA;gBAC/B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;gBACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aAChB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,WAAW,CAAC,kBAAkB,CAAC,CAAA;YAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;KACL;AACH,CAAC,CAAA"}
|
package/dist/scan/scanConfig.js
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const parsedCLIOptions = require('../utils/parsedCLIOptions');
|
|
1
|
+
import { getAuth } from '../utils/paramsUtil/paramHandler.js';
|
|
2
|
+
import { commandLineDefinitions } from '../cliConstants.js';
|
|
3
|
+
import { sep } from 'path';
|
|
4
|
+
import i18n from 'i18n';
|
|
5
|
+
import { scanUsageGuide } from './help.js';
|
|
6
|
+
import { getCommandLineArgsCustom } from '../utils/parsedCLIOptions.js';
|
|
7
|
+
import { supportedLanguagesScan } from '../constants/constants.js';
|
|
9
8
|
const getScanConfig = async (contrastConf, command, argv) => {
|
|
10
|
-
let scanParams = await
|
|
9
|
+
let scanParams = await getCommandLineArgsCustom(contrastConf, command, argv, commandLineDefinitions.scanOptionDefinitions);
|
|
11
10
|
if (scanParams.help) {
|
|
12
11
|
printHelpMessage();
|
|
13
12
|
process.exit(0);
|
|
14
13
|
}
|
|
15
|
-
const paramsAuth =
|
|
14
|
+
const paramsAuth = getAuth(scanParams);
|
|
16
15
|
if (scanParams.language) {
|
|
17
16
|
scanParams.language = scanParams.language.toUpperCase();
|
|
18
17
|
if (!Object.values(supportedLanguagesScan).includes(scanParams.language)) {
|
|
@@ -21,6 +20,7 @@ const getScanConfig = async (contrastConf, command, argv) => {
|
|
|
21
20
|
process.exit(1);
|
|
22
21
|
}
|
|
23
22
|
}
|
|
23
|
+
// if no name, take the full file path and use it as the project name
|
|
24
24
|
let projectNameSource;
|
|
25
25
|
if (!scanParams.name && scanParams.file) {
|
|
26
26
|
scanParams.name = getFileName(scanParams.file);
|
|
@@ -32,13 +32,15 @@ const getScanConfig = async (contrastConf, command, argv) => {
|
|
|
32
32
|
return { ...paramsAuth, ...scanParams, projectNameSource };
|
|
33
33
|
};
|
|
34
34
|
const getFileName = file => {
|
|
35
|
-
|
|
35
|
+
// from '/Users/x/y/spring-async.war' to 'spring-async.war'
|
|
36
|
+
return file.split(sep).pop();
|
|
36
37
|
};
|
|
37
38
|
const printHelpMessage = () => {
|
|
38
39
|
console.log(scanUsageGuide);
|
|
39
40
|
};
|
|
40
|
-
|
|
41
|
+
export default {
|
|
41
42
|
getScanConfig,
|
|
42
43
|
getFileName,
|
|
43
44
|
printHelpMessage
|
|
44
45
|
};
|
|
46
|
+
//# sourceMappingURL=scanConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanConfig.js","sourceRoot":"","sources":["../../src/scan/scanConfig.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAElE,MAAM,aAAa,GAAG,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC1D,IAAI,UAAU,GAAG,MAAM,wBAAwB,CAC7C,YAAY,EACZ,OAAO,EACP,IAAI,EACJ,sBAAsB,CAAC,qBAAqB,CAC7C,CAAA;IAED,IAAI,UAAU,CAAC,IAAI,EAAE;QACnB,gBAAgB,EAAE,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEtC,IAAI,UAAU,CAAC,QAAQ,EAAE;QACvB,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YACxE,OAAO,CAAC,GAAG,CAAC,gCAAgC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;YAClE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAA;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;KACF;IAED,qEAAqE;IACrE,IAAI,iBAAiB,CAAA;IACrB,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE;QACvC,UAAU,CAAC,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC9C,iBAAiB,GAAG,MAAM,CAAA;KAC3B;SAAM;QACL,iBAAiB,GAAG,MAAM,CAAA;KAC3B;IAED,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,iBAAiB,EAAE,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE;IACzB,2DAA2D;IAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED,eAAe;IACb,aAAa;IACb,WAAW;IACX,gBAAgB;CACjB,CAAA"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const { performance } = require('perf_hooks');
|
|
1
|
+
import i18n from 'i18n';
|
|
2
|
+
import { populateProjectId } from './populateProjectIdAndProjectName.js';
|
|
3
|
+
import { sendScan } from './scan.js';
|
|
4
|
+
import { performance } from 'perf_hooks';
|
|
5
|
+
import { fileExists, fileIsEmpty } from './fileUtils.js';
|
|
6
|
+
import { returnOra, startSpinner, stopSpinner, succeedSpinner } from '../utils/oraWrapper.js';
|
|
7
|
+
import { returnScanResults, returnScanResultsInstances } from './scanResults.js';
|
|
8
|
+
import { autoDetectFileAndLanguage } from '../common/autoDetection.js';
|
|
10
9
|
const getTimeout = config => {
|
|
11
10
|
if (config.timeout) {
|
|
12
11
|
return config.timeout;
|
|
@@ -20,11 +19,11 @@ const getTimeout = config => {
|
|
|
20
19
|
};
|
|
21
20
|
const fileAndLanguageLogic = async (configToUse) => {
|
|
22
21
|
if (configToUse.file) {
|
|
23
|
-
if (!
|
|
22
|
+
if (!fileExists(configToUse.file)) {
|
|
24
23
|
console.log(i18n.__('fileNotExist'));
|
|
25
24
|
process.exit(1);
|
|
26
25
|
}
|
|
27
|
-
if (
|
|
26
|
+
if (fileIsEmpty(configToUse.file)) {
|
|
28
27
|
console.log(i18n.__('scanFileIsEmpty'));
|
|
29
28
|
process.exit(1);
|
|
30
29
|
}
|
|
@@ -32,28 +31,28 @@ const fileAndLanguageLogic = async (configToUse) => {
|
|
|
32
31
|
}
|
|
33
32
|
else {
|
|
34
33
|
if (configToUse.file === undefined || configToUse.file === null) {
|
|
35
|
-
await
|
|
34
|
+
await autoDetectFileAndLanguage(configToUse);
|
|
36
35
|
}
|
|
37
36
|
}
|
|
38
37
|
};
|
|
39
|
-
const startScan = async (configToUse) => {
|
|
38
|
+
export const startScan = async (configToUse) => {
|
|
40
39
|
const startTime = performance.now();
|
|
41
40
|
await fileAndLanguageLogic(configToUse);
|
|
42
41
|
let newProject;
|
|
43
42
|
if (!configToUse.projectId) {
|
|
44
|
-
const { projectId, isNewProject } = await
|
|
43
|
+
const { projectId, isNewProject } = await populateProjectId(configToUse);
|
|
45
44
|
configToUse.projectId = projectId;
|
|
46
45
|
newProject = isNewProject;
|
|
47
46
|
}
|
|
48
47
|
else {
|
|
49
48
|
newProject = false;
|
|
50
49
|
}
|
|
51
|
-
const codeArtifactId = await
|
|
50
|
+
const codeArtifactId = await sendScan(configToUse);
|
|
52
51
|
if (!configToUse.ff) {
|
|
53
52
|
const startScanSpinner = returnOra('🚀 Contrast Scan started');
|
|
54
53
|
startSpinner(startScanSpinner);
|
|
55
|
-
const scanDetail = await
|
|
56
|
-
const scanResultsInstances = await
|
|
54
|
+
const scanDetail = await returnScanResults(configToUse, codeArtifactId, newProject, getTimeout(configToUse), startScanSpinner);
|
|
55
|
+
const scanResultsInstances = await returnScanResultsInstances(configToUse, scanDetail.id);
|
|
57
56
|
const endTime = performance.now();
|
|
58
57
|
const scanDurationMs = endTime - startTime;
|
|
59
58
|
if (scanResultsInstances.statusCode !== 200) {
|
|
@@ -71,6 +70,4 @@ const startScan = async (configToUse) => {
|
|
|
71
70
|
}
|
|
72
71
|
}
|
|
73
72
|
};
|
|
74
|
-
|
|
75
|
-
startScan: startScan
|
|
76
|
-
};
|
|
73
|
+
//# sourceMappingURL=scanController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanController.js","sourceRoot":"","sources":["../../src/scan/scanController.js"],"names":[],"mappings":"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"}
|
package/dist/scan/scanResults.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const readLine = require('readline');
|
|
9
|
-
const getScanId = async (config, codeArtifactId, client) => {
|
|
1
|
+
import { getHttpClient } from '../utils/commonApi.js';
|
|
2
|
+
import { sleep, millisToSeconds, timeOutError } from '../utils/requestUtils.js';
|
|
3
|
+
import { isNil } from 'lodash-es';
|
|
4
|
+
import i18n from 'i18n';
|
|
5
|
+
import readline from 'readline';
|
|
6
|
+
import { failSpinner, stopSpinner } from '../utils/oraWrapper.js';
|
|
7
|
+
export const getScanId = async (config, codeArtifactId, client) => {
|
|
10
8
|
return client
|
|
11
9
|
.getScanId(config, codeArtifactId)
|
|
12
10
|
.then(res => {
|
|
13
|
-
if (res.statusCode
|
|
11
|
+
if (res.statusCode === 429) {
|
|
14
12
|
throw new Error(i18n.__('exceededFreeTier'));
|
|
15
13
|
}
|
|
16
14
|
return res.body.id;
|
|
@@ -19,8 +17,8 @@ const getScanId = async (config, codeArtifactId, client) => {
|
|
|
19
17
|
console.log(err);
|
|
20
18
|
});
|
|
21
19
|
};
|
|
22
|
-
const pollScanResults = async (config, scanId, client) => {
|
|
23
|
-
await
|
|
20
|
+
export const pollScanResults = async (config, scanId, client) => {
|
|
21
|
+
await sleep(5000);
|
|
24
22
|
return client
|
|
25
23
|
.getSpecificScanResult(config, scanId)
|
|
26
24
|
.then(res => {
|
|
@@ -30,19 +28,20 @@ const pollScanResults = async (config, scanId, client) => {
|
|
|
30
28
|
console.log(err);
|
|
31
29
|
});
|
|
32
30
|
};
|
|
33
|
-
const returnScanResults = async (config, codeArtifactId, newProject, timeout, startScanSpinner) => {
|
|
34
|
-
const client =
|
|
35
|
-
|
|
31
|
+
export const returnScanResults = async (config, codeArtifactId, newProject, timeout, startScanSpinner) => {
|
|
32
|
+
const client = getHttpClient(config);
|
|
33
|
+
const scanId = await getScanId(config, codeArtifactId, client);
|
|
34
|
+
// send metrics event to sast-event-collector
|
|
36
35
|
if (process.env.CODESEC_INVOCATION_ENVIRONMENT &&
|
|
37
36
|
process.env.CODESEC_INVOCATION_ENVIRONMENT.toUpperCase() === 'GITHUB') {
|
|
38
37
|
await client.createNewEvent(config, scanId, newProject);
|
|
39
38
|
}
|
|
40
39
|
let startTime = new Date();
|
|
41
40
|
let complete = false;
|
|
42
|
-
if (!
|
|
41
|
+
if (!isNil(scanId)) {
|
|
43
42
|
while (!complete) {
|
|
44
43
|
let result = await pollScanResults(config, scanId, client);
|
|
45
|
-
if (
|
|
44
|
+
if (result.statusCode === 200) {
|
|
46
45
|
if (result.body.status === 'COMPLETED') {
|
|
47
46
|
complete = true;
|
|
48
47
|
return result.body;
|
|
@@ -50,21 +49,21 @@ const returnScanResults = async (config, codeArtifactId, newProject, timeout, st
|
|
|
50
49
|
if (result.body.status === 'FAILED') {
|
|
51
50
|
complete = true;
|
|
52
51
|
if (config.debug) {
|
|
53
|
-
|
|
52
|
+
failSpinner(startScanSpinner, i18n.__('scanNotCompleted', 'https://docs.contrastsecurity.com/en/binary-package-preparation.html'));
|
|
54
53
|
}
|
|
55
54
|
if (result?.body?.errorMessage ===
|
|
56
55
|
'Unable to determine language for code artifact') {
|
|
57
56
|
console.log(result.body.errorMessage);
|
|
58
57
|
console.log('Try scanning again using --language param. ', i18n.__('scanOptionsLanguageSummary'));
|
|
59
58
|
}
|
|
60
|
-
|
|
59
|
+
stopSpinner(startScanSpinner);
|
|
61
60
|
console.log('Contrast Scan Finished');
|
|
62
61
|
process.exit(1);
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
let endTime = new Date() - startTime;
|
|
66
|
-
if (
|
|
67
|
-
|
|
65
|
+
if (millisToSeconds(endTime) > timeout) {
|
|
66
|
+
failSpinner(startScanSpinner, 'Contrast Scan timed out at the specified ' + timeout + ' seconds.');
|
|
68
67
|
const isCI = process.env.CONTRAST_CODESEC_CI
|
|
69
68
|
? JSON.parse(process.env.CONTRAST_CODESEC_CI.toLowerCase())
|
|
70
69
|
: false;
|
|
@@ -80,14 +79,14 @@ const returnScanResults = async (config, codeArtifactId, newProject, timeout, st
|
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
81
|
};
|
|
83
|
-
const retryScanPrompt = async () => {
|
|
84
|
-
const rl =
|
|
82
|
+
export const retryScanPrompt = async () => {
|
|
83
|
+
const rl = readline.createInterface({
|
|
85
84
|
input: process.stdin,
|
|
86
85
|
output: process.stdout
|
|
87
86
|
});
|
|
88
87
|
return new Promise((resolve, reject) => {
|
|
89
|
-
|
|
90
|
-
rl.question('🔁 Do you want to continue waiting on Scan? [Y/N]\n',
|
|
88
|
+
timeOutError(30000, reject);
|
|
89
|
+
rl.question('🔁 Do you want to continue waiting on Scan? [Y/N]\n', input => {
|
|
91
90
|
if (input.toLowerCase() === 'yes' || input.toLowerCase() === 'y') {
|
|
92
91
|
console.log('Continuing wait for Scan');
|
|
93
92
|
rl.close();
|
|
@@ -109,8 +108,8 @@ const retryScanPrompt = async () => {
|
|
|
109
108
|
throw e;
|
|
110
109
|
});
|
|
111
110
|
};
|
|
112
|
-
const returnScanResultsInstances = async (config, scanId) => {
|
|
113
|
-
const client =
|
|
111
|
+
export const returnScanResultsInstances = async (config, scanId) => {
|
|
112
|
+
const client = getHttpClient(config);
|
|
114
113
|
let result;
|
|
115
114
|
try {
|
|
116
115
|
result = await client.getScanResultsInstances(config, scanId);
|
|
@@ -127,10 +126,4 @@ const returnScanResultsInstances = async (config, scanId) => {
|
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
128
|
};
|
|
130
|
-
|
|
131
|
-
getScanId: getScanId,
|
|
132
|
-
returnScanResults: returnScanResults,
|
|
133
|
-
pollScanResults: pollScanResults,
|
|
134
|
-
returnScanResultsInstances: returnScanResultsInstances,
|
|
135
|
-
retryScanPrompt
|
|
136
|
-
};
|
|
129
|
+
//# sourceMappingURL=scanResults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanResults.js","sourceRoot":"","sources":["../../src/scan/scanResults.js"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.sha1Base64Value = exports.findParamValueFromArgs = exports.paramExists = exports.obfuscateParams = exports.sendTelemetryRequest = exports.sendTelemetryConfigAsObject = exports.sendTelemetryConfigAsConfObj = exports.TELEMETRY_CLI_TIME_TO_AUTH_EVENT = exports.TELEMETRY_CLI_COMMANDS_EVENT = void 0;
|
|
27
|
-
const commonApi_1 = require("../utils/commonApi");
|
|
28
|
-
const crypto = __importStar(require("crypto"));
|
|
29
|
-
exports.TELEMETRY_CLI_COMMANDS_EVENT = 'CLI_COMMANDS';
|
|
30
|
-
exports.TELEMETRY_CLI_TIME_TO_AUTH_EVENT = 'CLI_TIME_TO_AUTH';
|
|
31
|
-
const sendTelemetryConfigAsConfObj = async (config, command, argv, result, language) => {
|
|
1
|
+
import { getHttpClient } from '../utils/commonApi.js';
|
|
2
|
+
import * as crypto from 'crypto';
|
|
3
|
+
export const TELEMETRY_CLI_COMMANDS_EVENT = 'CLI_COMMANDS';
|
|
4
|
+
export const TELEMETRY_CLI_TIME_TO_AUTH_EVENT = 'CLI_TIME_TO_AUTH';
|
|
5
|
+
export const sendTelemetryConfigAsConfObj = async (config, command, argv, result, language) => {
|
|
32
6
|
const hostParam = '--host';
|
|
33
7
|
const hostParamAlias = '-h';
|
|
34
8
|
const orgIdParam = '--organization-id';
|
|
@@ -36,15 +10,16 @@ const sendTelemetryConfigAsConfObj = async (config, command, argv, result, langu
|
|
|
36
10
|
const authParam = '--authorization';
|
|
37
11
|
const apiKeyParam = '--api-key';
|
|
38
12
|
let configToUse;
|
|
39
|
-
if (
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
13
|
+
if (paramExists(argv, hostParam, hostParamAlias) &&
|
|
14
|
+
paramExists(argv, orgIdParam, orgIdParamAlias) &&
|
|
15
|
+
paramExists(argv, authParam, null) &&
|
|
16
|
+
paramExists(argv, apiKeyParam, null)) {
|
|
17
|
+
//if the user has passed the values as params
|
|
43
18
|
configToUse = {
|
|
44
|
-
host:
|
|
45
|
-
organizationId:
|
|
46
|
-
authorization:
|
|
47
|
-
apiKey:
|
|
19
|
+
host: findParamValueFromArgs(argv, hostParam, hostParamAlias),
|
|
20
|
+
organizationId: findParamValueFromArgs(argv, orgIdParam, orgIdParamAlias),
|
|
21
|
+
authorization: findParamValueFromArgs(argv, authParam, null),
|
|
22
|
+
apiKey: findParamValueFromArgs(argv, apiKeyParam, null)
|
|
48
23
|
};
|
|
49
24
|
}
|
|
50
25
|
else if (config &&
|
|
@@ -60,15 +35,15 @@ const sendTelemetryConfigAsConfObj = async (config, command, argv, result, langu
|
|
|
60
35
|
};
|
|
61
36
|
}
|
|
62
37
|
else {
|
|
38
|
+
//return when unable to get config
|
|
63
39
|
return;
|
|
64
40
|
}
|
|
65
|
-
return await
|
|
41
|
+
return await sendTelemetryConfigAsObject(configToUse, command, argv, result, language);
|
|
66
42
|
};
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
const obfuscatedParams = (0, exports.obfuscateParams)(argv);
|
|
43
|
+
export const sendTelemetryConfigAsObject = async (config, command, argv, result, language) => {
|
|
44
|
+
const obfuscatedParams = obfuscateParams(argv);
|
|
70
45
|
const requestBody = {
|
|
71
|
-
event:
|
|
46
|
+
event: TELEMETRY_CLI_COMMANDS_EVENT,
|
|
72
47
|
details: {
|
|
73
48
|
ip_address: '',
|
|
74
49
|
account_name: '',
|
|
@@ -76,10 +51,10 @@ const sendTelemetryConfigAsObject = async (config, command, argv, result, langua
|
|
|
76
51
|
company_domain: '',
|
|
77
52
|
command: `contrast ${command} ${obfuscatedParams}`,
|
|
78
53
|
app_id: config && config.applicationId
|
|
79
|
-
?
|
|
54
|
+
? sha1Base64Value(config.applicationId)
|
|
80
55
|
: 'undefined',
|
|
81
56
|
project_id: config && config.projectId
|
|
82
|
-
?
|
|
57
|
+
? sha1Base64Value(config.projectId)
|
|
83
58
|
: 'undefined',
|
|
84
59
|
language: language,
|
|
85
60
|
result: result,
|
|
@@ -87,11 +62,10 @@ const sendTelemetryConfigAsObject = async (config, command, argv, result, langua
|
|
|
87
62
|
timestamp: new Date().toUTCString()
|
|
88
63
|
}
|
|
89
64
|
};
|
|
90
|
-
return await
|
|
65
|
+
return await sendTelemetryRequest(config, requestBody);
|
|
91
66
|
};
|
|
92
|
-
|
|
93
|
-
const
|
|
94
|
-
const client = (0, commonApi_1.getHttpClient)(config);
|
|
67
|
+
export const sendTelemetryRequest = async (config, requestBody) => {
|
|
68
|
+
const client = getHttpClient(config);
|
|
95
69
|
return client
|
|
96
70
|
.postTelemetry(config, requestBody)
|
|
97
71
|
.then((res) => {
|
|
@@ -104,8 +78,7 @@ const sendTelemetryRequest = async (config, requestBody) => {
|
|
|
104
78
|
return;
|
|
105
79
|
});
|
|
106
80
|
};
|
|
107
|
-
|
|
108
|
-
const obfuscateParams = (argv) => {
|
|
81
|
+
export const obfuscateParams = (argv) => {
|
|
109
82
|
return argv
|
|
110
83
|
.join(' ')
|
|
111
84
|
.replace(/--(authorization [A-Z0-9]+)/gi, '--authorization *****')
|
|
@@ -113,12 +86,10 @@ const obfuscateParams = (argv) => {
|
|
|
113
86
|
.replace(/--(organization-id [A-Z0-9-]+)/gi, '--organization-id *****')
|
|
114
87
|
.replace(/--(api-key [A-Z0-9]+)/gi, '--api-key *****');
|
|
115
88
|
};
|
|
116
|
-
|
|
117
|
-
const paramExists = (argv, param, paramAlias) => {
|
|
89
|
+
export const paramExists = (argv, param, paramAlias) => {
|
|
118
90
|
return argv.find((arg) => arg === param || arg === paramAlias);
|
|
119
91
|
};
|
|
120
|
-
|
|
121
|
-
const findParamValueFromArgs = (argv, param, paramAlias) => {
|
|
92
|
+
export const findParamValueFromArgs = (argv, param, paramAlias) => {
|
|
122
93
|
let paramAsValue;
|
|
123
94
|
argv.forEach((arg, index) => {
|
|
124
95
|
if (arg === param ||
|
|
@@ -130,8 +101,7 @@ const findParamValueFromArgs = (argv, param, paramAlias) => {
|
|
|
130
101
|
});
|
|
131
102
|
return paramAsValue;
|
|
132
103
|
};
|
|
133
|
-
|
|
134
|
-
const sha1Base64Value = (value) => {
|
|
104
|
+
export const sha1Base64Value = (value) => {
|
|
135
105
|
return crypto.createHash('sha1').update(value).digest('base64');
|
|
136
106
|
};
|
|
137
|
-
|
|
107
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/utils/capabilities.js"],"names":[],"mappings":";AAAA,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AAEjD,MAAM,kBAAkB,GAAG;IACzB;QACE,mBAAmB,EAAE,OAAO;KAC7B;CACF,CAAA;AAED,MAAM,CAAC,OAAO,GAAG;IACf,kBAAkB;IAClB,mBAAmB;CACpB,CAAA"}
|
package/dist/utils/commonApi.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const getTimeout = config => {
|
|
1
|
+
import HttpClient from './../common/HTTPClient.js';
|
|
2
|
+
import { badRequestError, unauthenticatedError, forbiddenError, proxyError, genericError, maxAppError, snapshotFailureError, vulnerabilitiesFailureError, reportFailureError, parametersError, invalidHostNameError } from '../common/errorHandling.js';
|
|
3
|
+
import { performance } from 'perf_hooks';
|
|
4
|
+
import { millisToSeconds } from './requestUtils.js';
|
|
5
|
+
import { failSpinner } from './oraWrapper.js';
|
|
6
|
+
export const getTimeout = config => {
|
|
8
7
|
if (config.timeout) {
|
|
9
8
|
return config.timeout;
|
|
10
9
|
}
|
|
@@ -15,16 +14,16 @@ const getTimeout = config => {
|
|
|
15
14
|
return 300;
|
|
16
15
|
}
|
|
17
16
|
};
|
|
18
|
-
const handleTimeout = (startTime, timeout, reportSpinner) => {
|
|
17
|
+
export const handleTimeout = (startTime, timeout, reportSpinner) => {
|
|
19
18
|
const endTime = performance.now() - startTime;
|
|
20
|
-
if (
|
|
21
|
-
|
|
19
|
+
if (millisToSeconds(endTime) > timeout) {
|
|
20
|
+
failSpinner(reportSpinner, 'Contrast audit timed out at the specified timeout of ' +
|
|
22
21
|
timeout +
|
|
23
22
|
' seconds.');
|
|
24
23
|
throw new Error('You can update the timeout using --timeout');
|
|
25
24
|
}
|
|
26
25
|
};
|
|
27
|
-
const handleResponseErrors = (res, api) => {
|
|
26
|
+
export const handleResponseErrors = (res, api) => {
|
|
28
27
|
if (res.statusCode === 400) {
|
|
29
28
|
api === 'catalogue' ? badRequestError(true) : badRequestError(false);
|
|
30
29
|
}
|
|
@@ -60,30 +59,22 @@ const handleResponseErrors = (res, api) => {
|
|
|
60
59
|
genericError(res);
|
|
61
60
|
}
|
|
62
61
|
};
|
|
63
|
-
const getProtocol = host => {
|
|
62
|
+
export const getProtocol = host => {
|
|
64
63
|
const hasProtocol = host.toLowerCase().includes('https://') ||
|
|
65
64
|
host.toLowerCase().includes('http://');
|
|
66
65
|
return hasProtocol ? host : 'https://' + host;
|
|
67
66
|
};
|
|
68
|
-
const getPath = host => {
|
|
67
|
+
export const getPath = host => {
|
|
69
68
|
const hasContrastPath = host.toLowerCase().endsWith('/contrast');
|
|
70
69
|
return hasContrastPath
|
|
71
70
|
? host.toLowerCase().substring(0, host.length - 9)
|
|
72
71
|
: host.replace(/\/*$/, '');
|
|
73
72
|
};
|
|
74
|
-
const getValidHost = host => {
|
|
73
|
+
export const getValidHost = host => {
|
|
75
74
|
const correctProtocol = getProtocol(host);
|
|
76
75
|
return getPath(correctProtocol);
|
|
77
76
|
};
|
|
78
|
-
const getHttpClient = config => {
|
|
77
|
+
export const getHttpClient = config => {
|
|
79
78
|
return new HttpClient(config);
|
|
80
79
|
};
|
|
81
|
-
|
|
82
|
-
getPath: getPath,
|
|
83
|
-
getValidHost: getValidHost,
|
|
84
|
-
getProtocol: getProtocol,
|
|
85
|
-
handleResponseErrors: handleResponseErrors,
|
|
86
|
-
getHttpClient: getHttpClient,
|
|
87
|
-
handleTimeout: handleTimeout,
|
|
88
|
-
getTimeout: getTimeout
|
|
89
|
-
};
|
|
80
|
+
//# sourceMappingURL=commonApi.js.map
|