scanoss 0.17.2 → 0.18.0
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/CHANGELOG.md +13 -0
- package/build/main/cli/bin/cli-bin.js +7 -2
- package/build/main/cli/commands/crypto.js +13 -8
- package/build/main/cli/commands/dep.js +17 -3
- package/build/main/cli/commands/scan.js +29 -25
- package/build/main/index.d.ts +4 -4
- package/build/main/index.js +4 -4
- package/build/main/sdk/BaseConfig.d.ts +87 -11
- package/build/main/sdk/BaseConfig.js +92 -7
- package/build/main/sdk/Clients/Cryptography/CryptographyClient.d.ts +20 -0
- package/build/main/sdk/Clients/Cryptography/CryptographyClient.js +142 -0
- package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +10 -0
- package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.js +56 -0
- package/build/main/sdk/Clients/Cryptography/ICryptographyClient.d.ts +40 -0
- package/build/main/sdk/Clients/Cryptography/ICryptographyClient.js +3 -0
- package/build/main/sdk/{Services/Grpc/DependencyService.d.ts → Clients/Dependency/DependencyClient.d.ts} +5 -5
- package/build/main/sdk/Clients/Dependency/DependencyClient.js +100 -0
- package/build/main/sdk/Clients/Dependency/DependencyHttpClient.d.ts +9 -0
- package/build/main/sdk/Clients/Dependency/DependencyHttpClient.js +61 -0
- package/build/main/sdk/Clients/Dependency/IDependencyClient.d.ts +41 -0
- package/build/main/sdk/Clients/Dependency/IDependencyClient.js +3 -0
- package/build/main/sdk/{Services/Grpc/BaseService.d.ts → Clients/Grpc/BaseGRPCClient.d.ts} +6 -10
- package/build/main/sdk/Clients/Grpc/BaseGRPCClient.js +150 -0
- package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +1 -1
- package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.js +1 -1
- package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +1 -1
- package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +1 -1
- package/build/{module/sdk/Services → main/sdk/Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +1 -1
- package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1 -1
- package/build/main/sdk/{Services → Clients}/Transport/Transport.js +1 -1
- package/build/main/sdk/Clients/Vulnerability/IVulnerabilityClient.d.ts +5 -0
- package/build/main/sdk/Clients/Vulnerability/IVulnerabilityClient.js +3 -0
- package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +10 -0
- package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +58 -0
- package/build/main/sdk/Clients/helper/clientHelper.d.ts +3 -0
- package/build/main/sdk/Clients/helper/clientHelper.js +25 -0
- package/build/main/sdk/{Services → Clients}/http/HttpClient.d.ts +5 -3
- package/build/main/sdk/Clients/http/HttpClient.js +88 -0
- package/build/main/sdk/Clients/interfaces/ClientConfig.d.ts +11 -0
- package/build/main/sdk/Clients/interfaces/ClientConfig.js +9 -0
- package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +5 -5
- package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +6 -6
- package/build/main/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.js +3 -3
- package/build/main/sdk/Cryptography/CryptoCfg.d.ts +15 -37
- package/build/main/sdk/Cryptography/CryptoCfg.js +32 -36
- package/build/main/sdk/Cryptography/CryptographyScanner.d.ts +2 -2
- package/build/main/sdk/Cryptography/CryptographyScanner.js +1 -1
- package/build/main/sdk/Cryptography/CryptographyTypes.d.ts +4 -0
- package/build/main/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.d.ts +2 -2
- package/build/main/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +7 -7
- package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +4 -4
- package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +4 -4
- package/build/main/sdk/Cryptography/Hint/Files/FileHintScanner.js +3 -3
- package/build/main/sdk/Dependencies/DependencyScanner.d.ts +4 -4
- package/build/main/sdk/Dependencies/DependencyScanner.js +57 -41
- package/build/main/sdk/Dependencies/DependencyScannerCfg.d.ts +20 -6
- package/build/main/sdk/Dependencies/DependencyScannerCfg.js +50 -1
- package/build/main/sdk/Logger.d.ts +4 -2
- package/build/main/sdk/Logger.js +22 -6
- package/build/main/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.d.ts +2 -2
- package/build/main/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.js +1 -1
- package/build/main/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.d.ts +3 -3
- package/build/main/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.js +1 -1
- package/build/main/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.d.ts +2 -2
- package/build/main/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.js +1 -1
- package/build/main/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.d.ts +2 -2
- package/build/main/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.js +1 -1
- package/build/main/sdk/Vulnerability/VulnerabilityCfg.d.ts +29 -0
- package/build/main/sdk/Vulnerability/VulnerabilityCfg.js +54 -0
- package/build/main/sdk/Vulnerability/VulnerabilityScanner.d.ts +8 -0
- package/build/main/sdk/Vulnerability/VulnerabilityScanner.js +34 -0
- package/build/main/sdk/scanner/Fingerprint.js +5 -2
- package/build/main/sdk/scanner/Scanner.d.ts +0 -1
- package/build/main/sdk/scanner/Scanner.js +2 -3
- package/build/main/sdk/scanner/ScannerCfg.d.ts +11 -0
- package/build/main/sdk/scanner/ScannerCfg.js +28 -2
- package/build/main/sdk/shared/interfaces/Component.d.ts +4 -0
- package/build/main/sdk/shared/interfaces/Component.js +3 -0
- package/build/main/tsconfig.tsbuildinfo +1 -1
- package/build/module/cli/bin/cli-bin.js +7 -2
- package/build/module/cli/commands/crypto.js +13 -8
- package/build/module/cli/commands/dep.js +17 -3
- package/build/module/cli/commands/scan.js +29 -25
- package/build/module/index.d.ts +4 -4
- package/build/module/index.js +4 -4
- package/build/module/sdk/BaseConfig.d.ts +87 -11
- package/build/module/sdk/BaseConfig.js +91 -7
- package/build/module/sdk/Clients/Cryptography/CryptographyClient.d.ts +20 -0
- package/build/module/sdk/Clients/Cryptography/CryptographyClient.js +131 -0
- package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +10 -0
- package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.js +54 -0
- package/build/module/sdk/Clients/Cryptography/ICryptographyClient.d.ts +40 -0
- package/build/module/sdk/Clients/Cryptography/ICryptographyClient.js +2 -0
- package/build/module/sdk/{Services/Grpc/DependencyService.d.ts → Clients/Dependency/DependencyClient.d.ts} +5 -5
- package/build/module/sdk/Clients/Dependency/DependencyClient.js +74 -0
- package/build/module/sdk/Clients/Dependency/DependencyHttpClient.d.ts +9 -0
- package/build/module/sdk/Clients/Dependency/DependencyHttpClient.js +59 -0
- package/build/module/sdk/Clients/Dependency/IDependencyClient.d.ts +41 -0
- package/build/module/sdk/Clients/Dependency/IDependencyClient.js +2 -0
- package/build/module/sdk/{Services/Grpc/BaseService.d.ts → Clients/Grpc/BaseGRPCClient.d.ts} +6 -10
- package/build/module/sdk/Clients/Grpc/BaseGRPCClient.js +122 -0
- package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +1 -1
- package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.js +1 -1
- package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +1 -1
- package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +1 -1
- package/build/{main/sdk/Services → module/sdk/Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +1 -1
- package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1 -1
- package/build/module/sdk/{Services → Clients}/Transport/Transport.js +1 -1
- package/build/module/sdk/Clients/Vulnerability/IVulnerabilityClient.d.ts +5 -0
- package/build/module/sdk/Clients/Vulnerability/IVulnerabilityClient.js +2 -0
- package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +10 -0
- package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +56 -0
- package/build/module/sdk/Clients/helper/clientHelper.d.ts +3 -0
- package/build/module/sdk/Clients/helper/clientHelper.js +21 -0
- package/build/module/sdk/{Services → Clients}/http/HttpClient.d.ts +5 -3
- package/build/module/sdk/Clients/http/HttpClient.js +82 -0
- package/build/module/sdk/Clients/interfaces/ClientConfig.d.ts +11 -0
- package/build/module/sdk/Clients/interfaces/ClientConfig.js +6 -0
- package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +5 -5
- package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +6 -6
- package/build/module/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.js +3 -3
- package/build/module/sdk/Cryptography/CryptoCfg.d.ts +15 -37
- package/build/module/sdk/Cryptography/CryptoCfg.js +34 -40
- package/build/module/sdk/Cryptography/CryptographyScanner.d.ts +2 -2
- package/build/module/sdk/Cryptography/CryptographyScanner.js +1 -1
- package/build/module/sdk/Cryptography/CryptographyTypes.d.ts +4 -0
- package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.d.ts +2 -2
- package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +7 -7
- package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +4 -4
- package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +4 -4
- package/build/module/sdk/Cryptography/Hint/Files/FileHintScanner.js +3 -3
- package/build/module/sdk/Dependencies/DependencyScanner.d.ts +4 -4
- package/build/module/sdk/Dependencies/DependencyScanner.js +58 -42
- package/build/module/sdk/Dependencies/DependencyScannerCfg.d.ts +20 -6
- package/build/module/sdk/Dependencies/DependencyScannerCfg.js +50 -1
- package/build/module/sdk/Logger.d.ts +4 -2
- package/build/module/sdk/Logger.js +22 -7
- package/build/module/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.d.ts +2 -2
- package/build/module/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.js +1 -1
- package/build/module/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.d.ts +3 -3
- package/build/module/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.js +1 -1
- package/build/module/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.d.ts +2 -2
- package/build/module/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.js +1 -1
- package/build/module/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.d.ts +2 -2
- package/build/module/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.js +1 -1
- package/build/module/sdk/Vulnerability/VulnerabilityCfg.d.ts +29 -0
- package/build/module/sdk/Vulnerability/VulnerabilityCfg.js +50 -0
- package/build/module/sdk/Vulnerability/VulnerabilityScanner.d.ts +8 -0
- package/build/module/sdk/Vulnerability/VulnerabilityScanner.js +32 -0
- package/build/module/sdk/scanner/Fingerprint.js +5 -2
- package/build/module/sdk/scanner/Scanner.d.ts +0 -1
- package/build/module/sdk/scanner/Scanner.js +2 -3
- package/build/module/sdk/scanner/ScannerCfg.d.ts +11 -0
- package/build/module/sdk/scanner/ScannerCfg.js +28 -2
- package/build/module/sdk/shared/interfaces/Component.d.ts +4 -0
- package/build/module/sdk/shared/interfaces/Component.js +2 -0
- package/build/module/tsconfig.module.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/build/main/sdk/Services/Grpc/BaseService.js +0 -159
- package/build/main/sdk/Services/Grpc/CryptographyService.d.ts +0 -20
- package/build/main/sdk/Services/Grpc/CryptographyService.js +0 -58
- package/build/main/sdk/Services/Grpc/DependencyService.js +0 -101
- package/build/main/sdk/Services/http/HttpClient.js +0 -81
- package/build/module/sdk/Services/Grpc/BaseService.js +0 -131
- package/build/module/sdk/Services/Grpc/CryptographyService.d.ts +0 -20
- package/build/module/sdk/Services/Grpc/CryptographyService.js +0 -55
- package/build/module/sdk/Services/Grpc/DependencyService.js +0 -75
- package/build/module/sdk/Services/http/HttpClient.js +0 -75
- /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
- /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -0
- /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +0 -0
- /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.d.ts +0 -0
- /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -0
- /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -0
- /package/build/main/sdk/{Services → Clients}/Transport/Transport.d.ts +0 -0
- /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
- /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -0
- /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +0 -0
- /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.d.ts +0 -0
- /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -0
- /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -0
- /package/build/module/sdk/{Services → Clients}/Transport/Transport.d.ts +0 -0
|
@@ -33,7 +33,7 @@ class FileAlgorithmScanner extends BaseCryptographyScanner_1.BaseCryptographySca
|
|
|
33
33
|
@returns A promise that resolves to an array of job objects configured for crypto analysis.
|
|
34
34
|
*/
|
|
35
35
|
async buildJobs(files) {
|
|
36
|
-
const cryptographyRules = await this.loadRules(this.config.
|
|
36
|
+
const cryptographyRules = await this.loadRules(this.config.ALGORITHM_RULES_PATH);
|
|
37
37
|
const rules = (0, Helper_1.createCryptoKeywordMapper)(cryptographyRules);
|
|
38
38
|
const cryptoMapper = (0, Helper_1.getCryptoMapper)(cryptographyRules);
|
|
39
39
|
const localCryptoJobs = [];
|
|
@@ -53,7 +53,7 @@ class FileAlgorithmScanner extends BaseCryptographyScanner_1.BaseCryptographySca
|
|
|
53
53
|
* @returns A promise that resolves to an ILocalCryptographyResponse.
|
|
54
54
|
*/
|
|
55
55
|
async scan(files) {
|
|
56
|
-
const workerPool = new WorkerPool_1.WorkerPool(AlgorithmProcessor_1.cryptographyAlgorithmProcessor, this.config.
|
|
56
|
+
const workerPool = new WorkerPool_1.WorkerPool(AlgorithmProcessor_1.cryptographyAlgorithmProcessor, this.config.THREADS);
|
|
57
57
|
const jobs = await this.buildJobs(files);
|
|
58
58
|
workerPool.loadJobs(jobs);
|
|
59
59
|
const results = await workerPool.run();
|
|
@@ -84,4 +84,4 @@ class FileAlgorithmScanner extends BaseCryptographyScanner_1.BaseCryptographySca
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
exports.FileAlgorithmScanner = FileAlgorithmScanner;
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUFsZ29yaXRobVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9BbGdvcml0aG0vRmlsZXMvRmlsZUFsZ29yaXRobVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDZDQUEwQztBQU8xQyxnREFBd0I7QUFDeEIsNENBR3lCO0FBQ3pCLHdEQUFxRDtBQUNyRCxzRUFBbUU7QUFDbkUsNkRBQXNFO0FBQ3RFLDJFQUF3RTtBQU14RTs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsaURBR047SUFJbEM7Ozs7T0FJRztJQUNILFlBQVksU0FBb0IsRUFBRSxlQUFnRDtRQUNoRixLQUFLLENBQUMsU0FBUyxFQUFDLGVBQWUsQ0FBQyxDQUFDO1FBUmxCLDJDQUFzQyxHQUFHLHFDQUFxQyxDQUFDO0lBU2hHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWU7UUFDckMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sS0FBSyxHQUFHLElBQUEsa0NBQXlCLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzRCxNQUFNLFlBQVksR0FBRyxJQUFBLHdCQUFlLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RCxNQUFNLGVBQWUsR0FBd0MsRUFBRSxDQUFDO1FBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQUcsQ0FBMEI7Z0JBQzlDLElBQUksRUFBQyxDQUFDO2dCQUNOLEtBQUs7Z0JBQ0wsWUFBWTthQUNiLENBQUMsQ0FBQztZQUNILGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxDQUFzRCxtREFBOEIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVJLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQ2xDLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWlCO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxjQUFJLENBQUMsSUFBSSxDQUNyRCxTQUFTLEVBQ1QsK0JBQStCLEVBQUUsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDaEYsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FFRjtBQS9FRCxvREErRUMifQ==
|
|
@@ -1,45 +1,23 @@
|
|
|
1
|
-
import { BaseConfig
|
|
1
|
+
import { BaseConfig } from "../BaseConfig";
|
|
2
2
|
/**
|
|
3
3
|
* Represents a configuration for cryptography scanner.
|
|
4
4
|
*/
|
|
5
5
|
export declare class CryptoCfg extends BaseConfig {
|
|
6
6
|
private readonly DEFAULT_THREADS;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
ALGORITHM_RULES_PATH: string;
|
|
8
|
+
LIBRARY_RULES_PATH: string;
|
|
9
|
+
THREADS: number;
|
|
10
|
+
API_KEY: string;
|
|
11
|
+
constructor(cfg?: CryptoCfg);
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
13
|
+
* Resolves the appropriate API URL based on API key presence and current URL.
|
|
14
|
+
* If an API key is provided and the current URL is the default, returns the premium
|
|
15
|
+
* URL, otherwise returns the current URL.
|
|
16
|
+
* @param apiKey - The API key (if any)
|
|
17
|
+
* @param currentUrl - The current API URL
|
|
18
|
+
* @returns The resolved API URL
|
|
17
19
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
libraryRulesPath?: string;
|
|
22
|
-
apiKey?: string;
|
|
23
|
-
proxy?: string;
|
|
24
|
-
} & IBaseConfig);
|
|
25
|
-
/**
|
|
26
|
-
* Gets the path to the cryptography algorithm rules file.
|
|
27
|
-
* @returns The path to the cryptography rules file.
|
|
28
|
-
*/
|
|
29
|
-
getAlgorithmRulesPath(): string;
|
|
30
|
-
/**
|
|
31
|
-
* Gets the path to the cryptography library rules file.
|
|
32
|
-
* @returns The path to the cryptography rules file.
|
|
33
|
-
*/
|
|
34
|
-
getLibraryRulesPath(): string;
|
|
35
|
-
/**
|
|
36
|
-
* Gets the number of threads to use on local crypto detection.
|
|
37
|
-
* @returns The number of threads.
|
|
38
|
-
**/
|
|
39
|
-
getNumberOfThreads(): number;
|
|
40
|
-
/**
|
|
41
|
-
* Gets the API Key set.
|
|
42
|
-
* @returns The API Key.
|
|
43
|
-
**/
|
|
44
|
-
getApikey(): string;
|
|
20
|
+
protected resolveApiUrl(apiKey: string, currentUrl: string): string;
|
|
21
|
+
get API_URL(): string;
|
|
22
|
+
set API_URL(value: string);
|
|
45
23
|
}
|
|
@@ -6,49 +6,45 @@ const BaseConfig_1 = require("../BaseConfig");
|
|
|
6
6
|
* Represents a configuration for cryptography scanner.
|
|
7
7
|
*/
|
|
8
8
|
class CryptoCfg extends BaseConfig_1.BaseConfig {
|
|
9
|
-
/**
|
|
10
|
-
* Creates an instance of CryptoCfg.
|
|
11
|
-
* @param {Object} cfg - Configuration object.
|
|
12
|
-
* @param {number} [cfg.threads=5] - The number of threads to use. Defaults to 5 if not provided.
|
|
13
|
-
* @param {string} [cfg.rulesPath] - Optional. Path to the cryptography rules file.
|
|
14
|
-
* @param {string} [cfg.apiKey] - Optional. SCANOSS API Key.
|
|
15
|
-
*/
|
|
16
9
|
constructor(cfg) {
|
|
17
|
-
super();
|
|
10
|
+
super(cfg);
|
|
18
11
|
this.DEFAULT_THREADS = 5;
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
this.THREADS = this.DEFAULT_THREADS;
|
|
13
|
+
this.API_KEY = '';
|
|
14
|
+
if (cfg) {
|
|
15
|
+
this.API_KEY = cfg.API_KEY ? cfg.API_KEY : '';
|
|
16
|
+
}
|
|
23
17
|
}
|
|
24
18
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
19
|
+
* Resolves the appropriate API URL based on API key presence and current URL.
|
|
20
|
+
* If an API key is provided and the current URL is the default, returns the premium
|
|
21
|
+
* URL, otherwise returns the current URL.
|
|
22
|
+
* @param apiKey - The API key (if any)
|
|
23
|
+
* @param currentUrl - The current API URL
|
|
24
|
+
* @returns The resolved API URL
|
|
27
25
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
26
|
+
resolveApiUrl(apiKey, currentUrl) {
|
|
27
|
+
// Case 1: Has API key and using default URL -> upgrade to premium URL
|
|
28
|
+
if (apiKey && currentUrl === BaseConfig_1.BaseConfig.getPremiumURL())
|
|
29
|
+
return BaseConfig_1.BaseConfig.getPremiumURL();
|
|
30
|
+
// Case 2: Has API key and using custom URL -> keep custom URL
|
|
31
|
+
if (apiKey && currentUrl !== BaseConfig_1.BaseConfig.getDefaultURL()) {
|
|
32
|
+
// Only remove /scan/direct for official SCANOSS API endpoints
|
|
33
|
+
if (currentUrl.startsWith(BaseConfig_1.BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig_1.BaseConfig.getDefaultURL())) {
|
|
34
|
+
return currentUrl.replace(/\/scan\/direct$/, '');
|
|
35
|
+
}
|
|
36
|
+
// For other custom URLs, return as-is
|
|
37
|
+
return currentUrl;
|
|
38
|
+
}
|
|
39
|
+
// Case 4: No API key and default/empty URL -> use default URL
|
|
40
|
+
return BaseConfig_1.BaseConfig.getPremiumURL();
|
|
37
41
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
* @returns The number of threads.
|
|
41
|
-
**/
|
|
42
|
-
getNumberOfThreads() {
|
|
43
|
-
return this.threads;
|
|
42
|
+
get API_URL() {
|
|
43
|
+
return this.resolveApiUrl(this.API_KEY, super.API_URL);
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
* @returns The API Key.
|
|
48
|
-
**/
|
|
49
|
-
getApikey() {
|
|
50
|
-
return this.apiKey;
|
|
45
|
+
set API_URL(value) {
|
|
46
|
+
super.API_URL = value;
|
|
51
47
|
}
|
|
52
48
|
}
|
|
53
49
|
exports.CryptoCfg = CryptoCfg;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLHVCQUFVO0lBWXRDLFlBQVksR0FBZTtRQUN6QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFYSSxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQU1yQyxZQUFPLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUV2QyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBSW5CLElBQUcsR0FBRyxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVGOzs7Ozs7O09BT0c7SUFDUSxhQUFhLENBQUMsTUFBYyxFQUFFLFVBQWtCO1FBQ3RELHNFQUFzRTtRQUN0RSxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDckQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLDhEQUE4RDtRQUM5RCxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3RELDhEQUE4RDtZQUM5RCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNHLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0Qsc0NBQXNDO1lBQ3RDLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLENBQUM7UUFDRCw4REFBOEQ7UUFDOUQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFhO1FBQzlCLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7Q0FFSDtBQXBERCw4QkFvREMifQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CryptoCfg } from "./CryptoCfg";
|
|
2
2
|
import { CryptographyResponse, LocalCryptographyResponse } from "./CryptographyTypes";
|
|
3
|
-
import {
|
|
3
|
+
import { Component } from "../shared/interfaces/Component";
|
|
4
4
|
/**
|
|
5
5
|
* Provides functionality to scan files and components for cryptographic items.
|
|
6
6
|
* This class acts as the primary entry point for cryptographic scanning.
|
|
@@ -21,5 +21,5 @@ export declare class CryptographyScanner {
|
|
|
21
21
|
* @param req A request containing PURL's to scan
|
|
22
22
|
* @returns {CryptographyResponse} A promise that resolves to an array of CryptographyResponse objects.
|
|
23
23
|
*/
|
|
24
|
-
scanComponents(req:
|
|
24
|
+
scanComponents(req: Component[]): Promise<Array<CryptographyResponse>>;
|
|
25
25
|
}
|
|
@@ -50,4 +50,4 @@ class CryptographyScanner {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
exports.CryptographyScanner = CryptographyScanner;
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5U2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0NyeXB0b2dyYXBoeVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUZBRWdEO0FBQ2hELGtFQUErRDtBQUsvRCxtSEFFdUU7QUFDdkUsZ0lBRWdGO0FBQ2hGLGdHQUUwRDtBQUMxRCxpRkFFZ0Q7QUFDaEQsb0VBQTJFO0FBSzNFOzs7R0FHRztBQUNILE1BQWEsbUJBQW1CO0lBSTlCLFlBQVksR0FBYztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQW9CO1FBQ3pDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxpRUFBK0IsRUFBRSxDQUFDO1FBQ3BFLG1FQUFtRTtRQUNuRSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU8scUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakUsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLDJDQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMzRixNQUFNLGlCQUFpQixHQUFHLElBQUksaUNBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUEsaURBQTRCLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsTUFBTSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRCxNQUFNLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9DLE9BQU8scUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFnQjtRQUMxQyxNQUFNLDhCQUE4QixHQUFHLElBQUksMEVBQW9DLEVBQUUsQ0FBQztRQUNsRixNQUFNLCtCQUErQixHQUFHLElBQUkscURBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ25ILE1BQU0sMEJBQTBCLEdBQUcsSUFBSSwyQ0FBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDekcsTUFBTSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsT0FBTyw4QkFBOEIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUF4Q0Qsa0RBd0NDIn0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Component } from "../shared/interfaces/Component";
|
|
1
2
|
export interface CryptoAlgorithm {
|
|
2
3
|
algorithm: string;
|
|
3
4
|
strength: string;
|
|
@@ -62,3 +63,6 @@ export interface CryptographyResponse {
|
|
|
62
63
|
algorithms: Array<CryptoAlgorithmResponse>;
|
|
63
64
|
hints: Array<CryptoHintResponse>;
|
|
64
65
|
}
|
|
66
|
+
export interface CryptoRequest {
|
|
67
|
+
purls: Component[];
|
|
68
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CryptographyResponse } from "../../../CryptographyTypes";
|
|
2
|
-
import { AlgorithmResponse,
|
|
2
|
+
import { AlgorithmResponse, HintsInRangeResponse } from "../../../../Clients/Cryptography/ICryptographyClient";
|
|
3
3
|
/**
|
|
4
4
|
* Collects and organizes cryptographic scan results for software components.
|
|
5
5
|
* This class maintains a mapping of component identifiers to their respective
|
|
@@ -23,7 +23,7 @@ export declare class ComponentCryptographyResultCollector {
|
|
|
23
23
|
* Collects hint detection results and organizes them by component.
|
|
24
24
|
* @param hintResults The hint detection results to collect.
|
|
25
25
|
*/
|
|
26
|
-
collectHintResults(hintResults:
|
|
26
|
+
collectHintResults(hintResults: HintsInRangeResponse): void;
|
|
27
27
|
/**
|
|
28
28
|
* Retrieves all collected cryptography results.
|
|
29
29
|
* @returns An array of cryptography responses, one for each component.
|
|
@@ -33,11 +33,11 @@ class ComponentCryptographyResultCollector {
|
|
|
33
33
|
* @param algorithmResults The algorithm detection results to collect.
|
|
34
34
|
*/
|
|
35
35
|
collectAlgorithmResults(algorithmResults) {
|
|
36
|
-
algorithmResults.
|
|
36
|
+
algorithmResults.purls.forEach((p) => {
|
|
37
37
|
if (p.version) {
|
|
38
38
|
const version = p.version.startsWith('v') ? p.version.slice(1) : p.version;
|
|
39
39
|
const result = this.getOrCreateResult(p.purl, version);
|
|
40
|
-
result.algorithms = p.
|
|
40
|
+
result.algorithms = p.algorithms;
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
43
|
}
|
|
@@ -46,11 +46,11 @@ class ComponentCryptographyResultCollector {
|
|
|
46
46
|
* @param hintResults The hint detection results to collect.
|
|
47
47
|
*/
|
|
48
48
|
collectHintResults(hintResults) {
|
|
49
|
-
hintResults.
|
|
50
|
-
if (h.
|
|
51
|
-
const version = h.
|
|
49
|
+
hintResults.purls.forEach((h) => {
|
|
50
|
+
if (h.versions.length > 0) {
|
|
51
|
+
const version = h.versions[0].startsWith('v') ? h.versions[0].slice(1) : h.versions[0];
|
|
52
52
|
const result = this.getOrCreateResult(h.purl, version);
|
|
53
|
-
result.hints = h.
|
|
53
|
+
result.hints = h.hints;
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
}
|
|
@@ -63,4 +63,4 @@ class ComponentCryptographyResultCollector {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
exports.ComponentCryptographyResultCollector = ComponentCryptographyResultCollector;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50Q3J5cHRvZ3JhcGh5UmVzdWx0Q29sbGV0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IZWxwZXIvUmVzdWx0Q29sbGVjdG9yL0NvbXBvbmVudC9Db21wb25lbnRDcnlwdG9ncmFwaHlSZXN1bHRDb2xsZXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFPQTs7OztHQUlHO0FBQ0gsTUFBYSxvQ0FBb0M7SUFBakQ7UUFFVSxpQkFBWSxHQUFHLElBQUksR0FLekIsQ0FBQTtJQXlESixDQUFDO0lBdkRDOzs7OztPQUtHO0lBQ0ssaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQWM7UUFDcEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJO2dCQUNKLE9BQU87Z0JBQ1AsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksdUJBQXVCLENBQUMsZ0JBQW1DO1FBQ2hFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzNFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGtCQUFrQixDQUFDLFdBQWlDO1FBQ3pELFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2RixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBRUY7QUFoRUQsb0ZBZ0VDIn0=
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ComponentCryptographyResultCollector } from "../../Helper/ResultCollector/Component/ComponentCryptographyResultColletor";
|
|
2
|
-
import { PurlRequest } from "../../../Services/Grpc/BaseService";
|
|
3
|
-
import { HintsResponse } from "../../../Services/Grpc/CryptographyService";
|
|
4
2
|
import { BaseCryptographyScanner } from "../../BaseCryptographyScanner";
|
|
3
|
+
import { Component } from "../../../shared/interfaces/Component";
|
|
4
|
+
import { HintsInRangeResponse } from "../../../Clients/Cryptography/ICryptographyClient";
|
|
5
5
|
/**
|
|
6
6
|
* Scanner for detecting cryptographic hints in software components.
|
|
7
7
|
* This class extends the base cryptography scanner to specifically handle
|
|
8
8
|
* component-level cryptographic hint detection using a remote service.
|
|
9
9
|
*/
|
|
10
|
-
export declare class ComponentHintScanner extends BaseCryptographyScanner<ComponentCryptographyResultCollector,
|
|
10
|
+
export declare class ComponentHintScanner extends BaseCryptographyScanner<ComponentCryptographyResultCollector, Component[], HintsInRangeResponse> {
|
|
11
11
|
/**
|
|
12
12
|
* Scans components identified by PURL for cryptographic hints.
|
|
13
13
|
* This method connects to a cryptography service to retrieve encryption
|
|
@@ -15,5 +15,5 @@ export declare class ComponentHintScanner extends BaseCryptographyScanner<Compon
|
|
|
15
15
|
* @param req A request containing PURL (Package URL) identifiers for components to scan.
|
|
16
16
|
* @returns {HintsResponse} A promise that resolves to a HintsResponse containing detected cryptographic hints.
|
|
17
17
|
*/
|
|
18
|
-
scan(req:
|
|
18
|
+
scan(req: Component[]): Promise<HintsInRangeResponse>;
|
|
19
19
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ComponentHintScanner = void 0;
|
|
4
|
-
const CryptographyService_1 = require("../../../Services/Grpc/CryptographyService");
|
|
5
4
|
const BaseCryptographyScanner_1 = require("../../BaseCryptographyScanner");
|
|
5
|
+
const CryptographyClient_1 = require("../../../Clients/Cryptography/CryptographyClient");
|
|
6
6
|
/**
|
|
7
7
|
* Scanner for detecting cryptographic hints in software components.
|
|
8
8
|
* This class extends the base cryptography scanner to specifically handle
|
|
@@ -17,14 +17,14 @@ class ComponentHintScanner extends BaseCryptographyScanner_1.BaseCryptographySca
|
|
|
17
17
|
* @returns {HintsResponse} A promise that resolves to a HintsResponse containing detected cryptographic hints.
|
|
18
18
|
*/
|
|
19
19
|
async scan(req) {
|
|
20
|
-
const
|
|
20
|
+
const cryptographyClient = new CryptographyClient_1.CryptographyClient(this.config.API_KEY, // API KEY
|
|
21
21
|
this.config.API_URL, // Destination Host
|
|
22
22
|
this.config.GRPC_PROXY, // Proxy Host
|
|
23
23
|
this.config.CA_CERT);
|
|
24
|
-
const results = await
|
|
24
|
+
const results = await cryptographyClient.getEncryptionHints(req);
|
|
25
25
|
this.resultCollector.collectHintResults(results);
|
|
26
26
|
return results;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
exports.ComponentHintScanner = ComponentHintScanner;
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50SGludFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IaW50L0NvbXBvbmVudHMvQ29tcG9uZW50SGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMkVBQXdFO0FBR3hFLHlGQUFzRjtBQUV0Rjs7OztHQUlHO0FBQ0gsTUFBYSxvQkFDWCxTQUFRLGlEQUdlO0lBRXZCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0I7UUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLHVDQUFrQixDQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQXZCRCxvREF1QkMifQ==
|
|
@@ -31,7 +31,7 @@ class FileHintScanner extends BaseCryptographyScanner_1.BaseCryptographyScanner
|
|
|
31
31
|
* @returns A promise that resolves to an array of job objects configured for hint analysis.
|
|
32
32
|
*/
|
|
33
33
|
async buildJobs(files) {
|
|
34
|
-
const rules = await this.loadRules(this.config.
|
|
34
|
+
const rules = await this.loadRules(this.config.LIBRARY_RULES_PATH);
|
|
35
35
|
const jobs = [];
|
|
36
36
|
files.forEach((f) => {
|
|
37
37
|
const newJob = new Job_1.Job({
|
|
@@ -48,7 +48,7 @@ class FileHintScanner extends BaseCryptographyScanner_1.BaseCryptographyScanner
|
|
|
48
48
|
* @returns A promise that resolves to an ILocalCryptographyResponse.
|
|
49
49
|
*/
|
|
50
50
|
async scan(files) {
|
|
51
|
-
const workerPool = new WorkerPool_1.WorkerPool(HintProcessor_1.cryptographyHintProcessor, this.config.
|
|
51
|
+
const workerPool = new WorkerPool_1.WorkerPool(HintProcessor_1.cryptographyHintProcessor, this.config.THREADS);
|
|
52
52
|
const jobs = await this.buildJobs(files);
|
|
53
53
|
workerPool.loadJobs(jobs);
|
|
54
54
|
const results = await workerPool.run();
|
|
@@ -66,4 +66,4 @@ class FileHintScanner extends BaseCryptographyScanner_1.BaseCryptographyScanner
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
exports.FileHintScanner = FileHintScanner;
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUhpbnRTY2FubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvSGludC9GaWxlcy9GaWxlSGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esd0RBQXFEO0FBS3JELGdEQUF3QjtBQUN4Qiw0Q0FBb0I7QUFDcEIsc0VBQW1FO0FBQ25FLG1EQUE0RDtBQUM1RCwyRUFBd0U7QUFNeEU7O0dBRUc7QUFDSCxNQUFhLGVBQ1gsU0FBUSxpREFHdUI7SUFJL0I7Ozs7T0FJRztJQUNILFlBQVksU0FBb0IsRUFBRSxlQUFnRDtRQUNoRixLQUFLLENBQUMsU0FBUyxFQUFDLGVBQWUsQ0FBQyxDQUFDO1FBUmxCLHlDQUFvQyxHQUFHLG1DQUFtQyxDQUFDO0lBUzVGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWU7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNuRSxNQUFNLElBQUksR0FBbUMsRUFBRSxDQUFDO1FBQ2hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQUcsQ0FBcUI7Z0JBQ3pDLElBQUksRUFBQyxDQUFDO2dCQUNOLEtBQUs7YUFDTixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxDQUE0Qyx5Q0FBeUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdILE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDaEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBaUI7UUFDdkMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFFLGNBQUksQ0FBQyxJQUFJLENBQ3JELFNBQVMsRUFDVCwrQkFBK0IsRUFBRSxJQUFJLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUM5RSxNQUFNLEtBQUssR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUlGO0FBakVELDBDQWlFQyJ9
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { DependencyScannerCfg } from './DependencyScannerCfg';
|
|
2
|
-
import {
|
|
2
|
+
import { DependencyResponse } from "../Clients/Dependency/IDependencyClient";
|
|
3
3
|
export declare class DependencyScanner {
|
|
4
4
|
private localDependency;
|
|
5
|
-
private
|
|
5
|
+
private dependencyClient;
|
|
6
6
|
private config;
|
|
7
7
|
constructor(cfg?: DependencyScannerCfg);
|
|
8
|
-
scanFolder(path: string): Promise<
|
|
9
|
-
scan(files: Array<string>): Promise<
|
|
8
|
+
scanFolder(path: string): Promise<DependencyResponse>;
|
|
9
|
+
scan(files: Array<string>): Promise<DependencyResponse>;
|
|
10
10
|
private getDependencies;
|
|
11
11
|
private purlAdapter;
|
|
12
12
|
private chunkPurls;
|
|
@@ -4,20 +4,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DependencyScanner = void 0;
|
|
7
|
-
const DependencyService_1 = require("../Services/Grpc/DependencyService");
|
|
8
|
-
const scanoss_dependencies_pb_1 = require("../Services/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb");
|
|
9
7
|
const LocalDependency_1 = require("./LocalDependency/LocalDependency");
|
|
10
8
|
const DependencyScannerCfg_1 = require("./DependencyScannerCfg");
|
|
11
9
|
const packageurl_js_1 = require("packageurl-js");
|
|
12
10
|
const fs_1 = __importDefault(require("fs"));
|
|
13
11
|
const Tree_1 = require("../tree/Tree");
|
|
14
12
|
const Logger_1 = require("../Logger");
|
|
13
|
+
const DependencyHttpClient_1 = require("../Clients/Dependency/DependencyHttpClient");
|
|
15
14
|
class DependencyScanner {
|
|
16
15
|
constructor(cfg) {
|
|
17
16
|
this.config = new DependencyScannerCfg_1.DependencyScannerCfg();
|
|
18
17
|
if (cfg)
|
|
19
18
|
this.config = cfg;
|
|
20
|
-
|
|
19
|
+
else
|
|
20
|
+
this.config = new DependencyScannerCfg_1.DependencyScannerCfg();
|
|
21
|
+
this.dependencyClient = new DependencyHttpClient_1.DependencyHttpClient(this.config.API_KEY, this.config.API_URL, this.config.IGNORE_CERT_ERRORS, this.config.HTTPS_PROXY, this.config.CA_CERT);
|
|
21
22
|
this.localDependency = new LocalDependency_1.LocalDependencies();
|
|
22
23
|
}
|
|
23
24
|
async scanFolder(path) {
|
|
@@ -30,7 +31,7 @@ class DependencyScanner {
|
|
|
30
31
|
async scan(files) {
|
|
31
32
|
let localDependencies = await this.localDependency.search(files);
|
|
32
33
|
if (localDependencies.files.length === 0)
|
|
33
|
-
return { filesList: [] };
|
|
34
|
+
return { filesList: [], status: { status: 'success', message: 'No dependencies found' } };
|
|
34
35
|
localDependencies = this.purlAdapter(localDependencies);
|
|
35
36
|
const requests = this.buildRequests(localDependencies);
|
|
36
37
|
const response = await this.getDependencies(requests);
|
|
@@ -38,39 +39,55 @@ class DependencyScanner {
|
|
|
38
39
|
return response;
|
|
39
40
|
}
|
|
40
41
|
async getDependencies(requests) {
|
|
41
|
-
const responseMapper = new Map;
|
|
42
|
+
const responseMapper = new Map();
|
|
43
|
+
let overallStatus = { status: 'success', message: 'Success' };
|
|
44
|
+
const failedRequests = [];
|
|
45
|
+
let err = null;
|
|
42
46
|
for (const request of requests) {
|
|
43
47
|
try {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
const dependencyResponse = await this.dependencyClient.getDependencies(request);
|
|
49
|
+
dependencyResponse.filesList.forEach((file) => {
|
|
50
|
+
if (responseMapper.has(file.file)) {
|
|
51
|
+
const existingFile = responseMapper.get(file.file);
|
|
52
|
+
existingFile.dependenciesList.push(...file.dependenciesList);
|
|
53
|
+
// Update status if current file has an error
|
|
54
|
+
if (file.status !== 'success' && existingFile.status === 'success') {
|
|
55
|
+
existingFile.status = file.status;
|
|
56
|
+
}
|
|
52
57
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
else {
|
|
59
|
+
responseMapper.set(file.file, {
|
|
60
|
+
file: file.file,
|
|
61
|
+
dependenciesList: [...file.dependenciesList],
|
|
62
|
+
status: file.status,
|
|
63
|
+
id: file.id
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
// Update overall status if any request failed
|
|
68
|
+
if (dependencyResponse.status.status !== 'success') {
|
|
69
|
+
overallStatus = dependencyResponse.status;
|
|
56
70
|
}
|
|
57
71
|
}
|
|
58
72
|
catch (e) {
|
|
59
|
-
|
|
60
|
-
|
|
73
|
+
Logger_1.logger.debug(`Error while scanning dependencies: ${JSON.stringify(request, null, 2)}`);
|
|
74
|
+
err = e.message;
|
|
75
|
+
failedRequests.push(request);
|
|
61
76
|
}
|
|
62
77
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
78
|
+
if (err) {
|
|
79
|
+
Logger_1.logger.error(`ERROR: ${err}`);
|
|
80
|
+
}
|
|
81
|
+
if (failedRequests.length > 0) {
|
|
82
|
+
overallStatus = { status: 'SUCCEEDED WITH WARNINGS', message: 'Warning: some dependencies were not scanned' };
|
|
83
|
+
}
|
|
84
|
+
if (failedRequests.length > 0 && failedRequests.length >= requests.length) {
|
|
85
|
+
overallStatus = { status: 'FAILED', message: 'Error while scanning dependencies' };
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
filesList: Array.from(responseMapper.values()),
|
|
89
|
+
status: overallStatus
|
|
66
90
|
};
|
|
67
|
-
responseMapper.forEach((depResponse) => {
|
|
68
|
-
response.filesList.push(depResponse.filesList[0]);
|
|
69
|
-
if (depResponse.status !== 'Success') {
|
|
70
|
-
response.status = depResponse.status;
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
return response;
|
|
74
91
|
}
|
|
75
92
|
purlAdapter(localDependencies) {
|
|
76
93
|
for (const file of localDependencies.files) {
|
|
@@ -100,18 +117,17 @@ class DependencyScanner {
|
|
|
100
117
|
for (const file of localDependencies.files) {
|
|
101
118
|
const chunkedPurls = this.chunkPurls(file.purls);
|
|
102
119
|
for (const purls of chunkedPurls) {
|
|
103
|
-
const depRequest =
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
depRequest.addFiles(fileMsg);
|
|
120
|
+
const depRequest = {
|
|
121
|
+
files: [
|
|
122
|
+
{
|
|
123
|
+
file: file.file,
|
|
124
|
+
purls: purls.map(purl => ({
|
|
125
|
+
purl: purl.purl,
|
|
126
|
+
requirement: purl.requirement
|
|
127
|
+
}))
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
};
|
|
115
131
|
requests.push(depRequest);
|
|
116
132
|
}
|
|
117
133
|
}
|
|
@@ -153,4 +169,4 @@ class DependencyScanner {
|
|
|
153
169
|
}
|
|
154
170
|
}
|
|
155
171
|
exports.DependencyScanner = DependencyScanner;
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1RUFBc0U7QUFDdEUsaUVBQThEO0FBQzlELGlEQUEyQztBQUMzQyw0Q0FBb0I7QUFDcEIsdUNBQW9DO0FBQ3BDLHNDQUFtQztBQUNuQyxxRkFBa0Y7QUFRbEYsTUFBYSxpQkFBaUI7SUFPNUIsWUFBWSxHQUEwQjtRQUY5QixXQUFNLEdBQXlCLElBQUksMkNBQW9CLEVBQUUsQ0FBQztRQUdoRSxJQUFJLEdBQUc7WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQzs7WUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLDJDQUFvQixFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksMkNBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFDdEgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksbUNBQWlCLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQ2xDLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElB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
|
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import { BaseConfig
|
|
2
|
-
export interface IDependencyScannerCfg extends IBaseConfig {
|
|
3
|
-
CHUNK_REQUEST_SIZE?: number;
|
|
4
|
-
}
|
|
1
|
+
import { BaseConfig } from "../BaseConfig";
|
|
5
2
|
export declare class DependencyScannerCfg extends BaseConfig {
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
_IGNORE_CERT_ERRORS: boolean;
|
|
4
|
+
_API_KEY: string;
|
|
5
|
+
_CHUNK_REQUEST_SIZE: number;
|
|
6
|
+
constructor(config?: DependencyScannerCfg);
|
|
8
7
|
get CHUNK_REQUEST_SIZE(): number;
|
|
9
8
|
set CHUNK_REQUEST_SIZE(value: number);
|
|
9
|
+
get API_KEY(): string;
|
|
10
|
+
set API_KEY(value: string);
|
|
11
|
+
get IGNORE_CERT_ERRORS(): boolean;
|
|
12
|
+
set IGNORE_CERT_ERRORS(value: boolean);
|
|
13
|
+
/**
|
|
14
|
+
* Resolves the appropriate scanner URL based on API key presence and current URL.
|
|
15
|
+
* If an API key is provided and the current URL is the default, returns the premium
|
|
16
|
+
* scanner URL, otherwise appends '/scan/direct' to the current URL.
|
|
17
|
+
* @param apiKey - The API key (if any)
|
|
18
|
+
* @param currentUrl - The current API URL
|
|
19
|
+
* @returns The resolved scanner URL
|
|
20
|
+
*/
|
|
21
|
+
protected resolveApiUrl(apiKey: string, currentUrl: string): string;
|
|
22
|
+
get API_URL(): string;
|
|
23
|
+
set API_URL(url: string);
|
|
10
24
|
}
|