scanoss 0.17.3 → 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 +9 -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/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/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
|
@@ -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
|
}
|
|
@@ -4,51 +4,45 @@ import { BaseConfig } from "../BaseConfig";
|
|
|
4
4
|
*/
|
|
5
5
|
export class CryptoCfg extends BaseConfig {
|
|
6
6
|
DEFAULT_THREADS = 5;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Creates an instance of CryptoCfg.
|
|
13
|
-
* @param {Object} cfg - Configuration object.
|
|
14
|
-
* @param {number} [cfg.threads=5] - The number of threads to use. Defaults to 5 if not provided.
|
|
15
|
-
* @param {string} [cfg.rulesPath] - Optional. Path to the cryptography rules file.
|
|
16
|
-
* @param {string} [cfg.apiKey] - Optional. SCANOSS API Key.
|
|
17
|
-
*/
|
|
7
|
+
ALGORITHM_RULES_PATH;
|
|
8
|
+
LIBRARY_RULES_PATH;
|
|
9
|
+
THREADS = this.DEFAULT_THREADS;
|
|
10
|
+
API_KEY = '';
|
|
18
11
|
constructor(cfg) {
|
|
19
|
-
super();
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.apiKey = cfg.apiKey;
|
|
12
|
+
super(cfg);
|
|
13
|
+
if (cfg) {
|
|
14
|
+
this.API_KEY = cfg.API_KEY ? cfg.API_KEY : '';
|
|
15
|
+
}
|
|
24
16
|
}
|
|
25
17
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
18
|
+
* Resolves the appropriate API URL based on API key presence and current URL.
|
|
19
|
+
* If an API key is provided and the current URL is the default, returns the premium
|
|
20
|
+
* URL, otherwise returns the current URL.
|
|
21
|
+
* @param apiKey - The API key (if any)
|
|
22
|
+
* @param currentUrl - The current API URL
|
|
23
|
+
* @returns The resolved API URL
|
|
28
24
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
resolveApiUrl(apiKey, currentUrl) {
|
|
26
|
+
// Case 1: Has API key and using default URL -> upgrade to premium URL
|
|
27
|
+
if (apiKey && currentUrl === BaseConfig.getPremiumURL())
|
|
28
|
+
return BaseConfig.getPremiumURL();
|
|
29
|
+
// Case 2: Has API key and using custom URL -> keep custom URL
|
|
30
|
+
if (apiKey && currentUrl !== BaseConfig.getDefaultURL()) {
|
|
31
|
+
// Only remove /scan/direct for official SCANOSS API endpoints
|
|
32
|
+
if (currentUrl.startsWith(BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig.getDefaultURL())) {
|
|
33
|
+
return currentUrl.replace(/\/scan\/direct$/, '');
|
|
34
|
+
}
|
|
35
|
+
// For other custom URLs, return as-is
|
|
36
|
+
return currentUrl;
|
|
37
|
+
}
|
|
38
|
+
// Case 4: No API key and default/empty URL -> use default URL
|
|
39
|
+
return BaseConfig.getPremiumURL();
|
|
38
40
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
* @returns The number of threads.
|
|
42
|
-
**/
|
|
43
|
-
getNumberOfThreads() {
|
|
44
|
-
return this.threads;
|
|
41
|
+
get API_URL() {
|
|
42
|
+
return this.resolveApiUrl(this.API_KEY, super.API_URL);
|
|
45
43
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
* @returns The API Key.
|
|
49
|
-
**/
|
|
50
|
-
getApikey() {
|
|
51
|
-
return this.apiKey;
|
|
44
|
+
set API_URL(value) {
|
|
45
|
+
super.API_URL = value;
|
|
52
46
|
}
|
|
53
47
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBVSxTQUFRLFVBQVU7SUFFckIsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUVyQyxvQkFBb0IsQ0FBUztJQUU3QixrQkFBa0IsQ0FBUztJQUUzQixPQUFPLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUV2QyxPQUFPLEdBQVcsRUFBRSxDQUFDO0lBRXJCLFlBQVksR0FBZTtRQUN6QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRjs7Ozs7OztPQU9HO0lBQ1EsYUFBYSxDQUFDLE1BQWMsRUFBRSxVQUFrQjtRQUN0RCxzRUFBc0U7UUFDdEUsSUFBSSxNQUFNLElBQUksVUFBVSxLQUFLLFVBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDckQsT0FBTyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsOERBQThEO1FBQzlELElBQUksTUFBTSxJQUFJLFVBQVUsS0FBSyxVQUFVLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN0RCw4REFBOEQ7WUFDOUQsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDM0csT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFDRCxzQ0FBc0M7WUFDdEMsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxPQUFPLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBVyxPQUFPLENBQUMsS0FBYTtRQUM5QixLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0NBRUgifQ==
|
|
@@ -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
|
}
|
|
@@ -47,4 +47,4 @@ export class CryptographyScanner {
|
|
|
47
47
|
return componentCryptoResultCollector.getResults();
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5U2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0NyeXB0b2dyYXBoeVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUsvRCxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sK0RBQStELENBQUM7QUFDdkUsT0FBTyxFQUNMLG9DQUFvQyxFQUNyQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ2hGLE9BQU8sRUFDTCx5QkFBeUIsRUFDMUIsTUFBTSxrREFBa0QsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3JCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLM0U7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQUViLE1BQU0sQ0FBWTtJQUVuQyxZQUFZLEdBQWM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFvQjtRQUN6QyxNQUFNLHFCQUFxQixHQUFHLElBQUksK0JBQStCLEVBQUUsQ0FBQztRQUNwRSxtRUFBbUU7UUFDbkUsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0YsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLE1BQU0sc0JBQXNCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQyxPQUFPLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBZ0I7UUFDMUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLG9DQUFvQyxFQUFFLENBQUM7UUFDbEYsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsOEJBQThCLENBQUMsQ0FBQztRQUNuSCxNQUFNLDBCQUEwQixHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3pHLE1BQU0sK0JBQStCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sOEJBQThCLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckQsQ0FBQztDQUNGIn0=
|
|
@@ -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.
|
|
@@ -28,11 +28,11 @@ export class ComponentCryptographyResultCollector {
|
|
|
28
28
|
* @param algorithmResults The algorithm detection results to collect.
|
|
29
29
|
*/
|
|
30
30
|
collectAlgorithmResults(algorithmResults) {
|
|
31
|
-
algorithmResults.
|
|
31
|
+
algorithmResults.purls.forEach((p) => {
|
|
32
32
|
if (p.version) {
|
|
33
33
|
const version = p.version.startsWith('v') ? p.version.slice(1) : p.version;
|
|
34
34
|
const result = this.getOrCreateResult(p.purl, version);
|
|
35
|
-
result.algorithms = p.
|
|
35
|
+
result.algorithms = p.algorithms;
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
}
|
|
@@ -41,11 +41,11 @@ export class ComponentCryptographyResultCollector {
|
|
|
41
41
|
* @param hintResults The hint detection results to collect.
|
|
42
42
|
*/
|
|
43
43
|
collectHintResults(hintResults) {
|
|
44
|
-
hintResults.
|
|
45
|
-
if (h.
|
|
46
|
-
const version = h.
|
|
44
|
+
hintResults.purls.forEach((h) => {
|
|
45
|
+
if (h.versions.length > 0) {
|
|
46
|
+
const version = h.versions[0].startsWith('v') ? h.versions[0].slice(1) : h.versions[0];
|
|
47
47
|
const result = this.getOrCreateResult(h.purl, version);
|
|
48
|
-
result.hints = h.
|
|
48
|
+
result.hints = h.hints;
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
51
|
}
|
|
@@ -57,4 +57,4 @@ export class ComponentCryptographyResultCollector {
|
|
|
57
57
|
return Array.from(this.resultMapper.values());
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50Q3J5cHRvZ3JhcGh5UmVzdWx0Q29sbGV0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IZWxwZXIvUmVzdWx0Q29sbGVjdG9yL0NvbXBvbmVudC9Db21wb25lbnRDcnlwdG9ncmFwaHlSZXN1bHRDb2xsZXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLG9DQUFvQztJQUV2QyxZQUFZLEdBQUcsSUFBSSxHQUt6QixDQUFBO0lBRUY7Ozs7O09BS0c7SUFDSyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsT0FBYztRQUNwRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLElBQUk7Z0JBQ0osT0FBTztnQkFDUCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxLQUFLLEVBQUUsRUFBRTthQUNWLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSSx1QkFBdUIsQ0FBQyxnQkFBbUM7UUFDaEUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNkLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDM0UsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsV0FBaUM7UUFDekQsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVU7UUFDYixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FFRiJ9
|
|
@@ -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,5 +1,5 @@
|
|
|
1
|
-
import { CryptographyService } from "../../../Services/Grpc/CryptographyService";
|
|
2
1
|
import { BaseCryptographyScanner } from "../../BaseCryptographyScanner";
|
|
2
|
+
import { CryptographyClient } from "../../../Clients/Cryptography/CryptographyClient";
|
|
3
3
|
/**
|
|
4
4
|
* Scanner for detecting cryptographic hints in software components.
|
|
5
5
|
* This class extends the base cryptography scanner to specifically handle
|
|
@@ -14,13 +14,13 @@ export class ComponentHintScanner extends BaseCryptographyScanner {
|
|
|
14
14
|
* @returns {HintsResponse} A promise that resolves to a HintsResponse containing detected cryptographic hints.
|
|
15
15
|
*/
|
|
16
16
|
async scan(req) {
|
|
17
|
-
const
|
|
17
|
+
const cryptographyClient = new CryptographyClient(this.config.API_KEY, // API KEY
|
|
18
18
|
this.config.API_URL, // Destination Host
|
|
19
19
|
this.config.GRPC_PROXY, // Proxy Host
|
|
20
20
|
this.config.CA_CERT);
|
|
21
|
-
const results = await
|
|
21
|
+
const results = await cryptographyClient.getEncryptionHints(req);
|
|
22
22
|
this.resultCollector.collectHintResults(results);
|
|
23
23
|
return results;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50SGludFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IaW50L0NvbXBvbmVudHMvQ29tcG9uZW50SGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFdEY7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxvQkFDWCxTQUFRLHVCQUdlO0lBRXZCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0I7UUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGtCQUFrQixDQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiJ9
|
|
@@ -25,7 +25,7 @@ export class FileHintScanner extends BaseCryptographyScanner {
|
|
|
25
25
|
* @returns A promise that resolves to an array of job objects configured for hint analysis.
|
|
26
26
|
*/
|
|
27
27
|
async buildJobs(files) {
|
|
28
|
-
const rules = await this.loadRules(this.config.
|
|
28
|
+
const rules = await this.loadRules(this.config.LIBRARY_RULES_PATH);
|
|
29
29
|
const jobs = [];
|
|
30
30
|
files.forEach((f) => {
|
|
31
31
|
const newJob = new Job({
|
|
@@ -42,7 +42,7 @@ export class FileHintScanner extends BaseCryptographyScanner {
|
|
|
42
42
|
* @returns A promise that resolves to an ILocalCryptographyResponse.
|
|
43
43
|
*/
|
|
44
44
|
async scan(files) {
|
|
45
|
-
const workerPool = new WorkerPool(cryptographyHintProcessor, this.config.
|
|
45
|
+
const workerPool = new WorkerPool(cryptographyHintProcessor, this.config.THREADS);
|
|
46
46
|
const jobs = await this.buildJobs(files);
|
|
47
47
|
workerPool.loadJobs(jobs);
|
|
48
48
|
const results = await workerPool.run();
|
|
@@ -59,4 +59,4 @@ export class FileHintScanner extends BaseCryptographyScanner {
|
|
|
59
59
|
return JSON.parse(rules);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUhpbnRTY2FubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvSGludC9GaWxlcy9GaWxlSGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBS3JELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTXhFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQ1gsU0FBUSx1QkFHdUI7SUFFZCxvQ0FBb0MsR0FBRyxtQ0FBbUMsQ0FBQztJQUU1Rjs7OztPQUlHO0lBQ0gsWUFBWSxTQUFvQixFQUFFLGVBQWdEO1FBQ2hGLEtBQUssQ0FBQyxTQUFTLEVBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBZTtRQUNyQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sSUFBSSxHQUFtQyxFQUFFLENBQUM7UUFDaEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFxQjtnQkFDekMsSUFBSSxFQUFDLENBQUM7Z0JBQ04sS0FBSzthQUNOLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFvQjtRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBNEMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3SCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN6QixNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2hELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWlCO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUNyRCxTQUFTLEVBQ1QsK0JBQStCLEVBQUUsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FJRiJ9
|
|
@@ -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;
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { DependencyService } from '../Services/Grpc/DependencyService';
|
|
2
|
-
import { DependencyRequest, } from '../Services/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb';
|
|
3
1
|
import { LocalDependencies } from './LocalDependency/LocalDependency';
|
|
4
2
|
import { DependencyScannerCfg } from './DependencyScannerCfg';
|
|
5
3
|
import { PackageURL } from 'packageurl-js';
|
|
6
4
|
import fs from 'fs';
|
|
7
5
|
import { Tree } from '../tree/Tree';
|
|
8
6
|
import { logger } from "../Logger";
|
|
7
|
+
import { DependencyHttpClient } from "../Clients/Dependency/DependencyHttpClient";
|
|
9
8
|
export class DependencyScanner {
|
|
10
9
|
localDependency;
|
|
11
|
-
|
|
10
|
+
dependencyClient;
|
|
12
11
|
config = new DependencyScannerCfg();
|
|
13
12
|
constructor(cfg) {
|
|
14
13
|
if (cfg)
|
|
15
14
|
this.config = cfg;
|
|
16
|
-
|
|
15
|
+
else
|
|
16
|
+
this.config = new DependencyScannerCfg();
|
|
17
|
+
this.dependencyClient = new DependencyHttpClient(this.config.API_KEY, this.config.API_URL, this.config.IGNORE_CERT_ERRORS, this.config.HTTPS_PROXY, this.config.CA_CERT);
|
|
17
18
|
this.localDependency = new LocalDependencies();
|
|
18
19
|
}
|
|
19
20
|
async scanFolder(path) {
|
|
@@ -26,7 +27,7 @@ export class DependencyScanner {
|
|
|
26
27
|
async scan(files) {
|
|
27
28
|
let localDependencies = await this.localDependency.search(files);
|
|
28
29
|
if (localDependencies.files.length === 0)
|
|
29
|
-
return { filesList: [] };
|
|
30
|
+
return { filesList: [], status: { status: 'success', message: 'No dependencies found' } };
|
|
30
31
|
localDependencies = this.purlAdapter(localDependencies);
|
|
31
32
|
const requests = this.buildRequests(localDependencies);
|
|
32
33
|
const response = await this.getDependencies(requests);
|
|
@@ -34,39 +35,55 @@ export class DependencyScanner {
|
|
|
34
35
|
return response;
|
|
35
36
|
}
|
|
36
37
|
async getDependencies(requests) {
|
|
37
|
-
const responseMapper = new Map;
|
|
38
|
+
const responseMapper = new Map();
|
|
39
|
+
let overallStatus = { status: 'success', message: 'Success' };
|
|
40
|
+
const failedRequests = [];
|
|
41
|
+
let err = null;
|
|
38
42
|
for (const request of requests) {
|
|
39
43
|
try {
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
const dependencyResponse = await this.dependencyClient.getDependencies(request);
|
|
45
|
+
dependencyResponse.filesList.forEach((file) => {
|
|
46
|
+
if (responseMapper.has(file.file)) {
|
|
47
|
+
const existingFile = responseMapper.get(file.file);
|
|
48
|
+
existingFile.dependenciesList.push(...file.dependenciesList);
|
|
49
|
+
// Update status if current file has an error
|
|
50
|
+
if (file.status !== 'success' && existingFile.status === 'success') {
|
|
51
|
+
existingFile.status = file.status;
|
|
52
|
+
}
|
|
48
53
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
else {
|
|
55
|
+
responseMapper.set(file.file, {
|
|
56
|
+
file: file.file,
|
|
57
|
+
dependenciesList: [...file.dependenciesList],
|
|
58
|
+
status: file.status,
|
|
59
|
+
id: file.id
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
// Update overall status if any request failed
|
|
64
|
+
if (dependencyResponse.status.status !== 'success') {
|
|
65
|
+
overallStatus = dependencyResponse.status;
|
|
52
66
|
}
|
|
53
67
|
}
|
|
54
68
|
catch (e) {
|
|
55
|
-
|
|
56
|
-
|
|
69
|
+
logger.debug(`Error while scanning dependencies: ${JSON.stringify(request, null, 2)}`);
|
|
70
|
+
err = e.message;
|
|
71
|
+
failedRequests.push(request);
|
|
57
72
|
}
|
|
58
73
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
74
|
+
if (err) {
|
|
75
|
+
logger.error(`ERROR: ${err}`);
|
|
76
|
+
}
|
|
77
|
+
if (failedRequests.length > 0) {
|
|
78
|
+
overallStatus = { status: 'SUCCEEDED WITH WARNINGS', message: 'Warning: some dependencies were not scanned' };
|
|
79
|
+
}
|
|
80
|
+
if (failedRequests.length > 0 && failedRequests.length >= requests.length) {
|
|
81
|
+
overallStatus = { status: 'FAILED', message: 'Error while scanning dependencies' };
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
filesList: Array.from(responseMapper.values()),
|
|
85
|
+
status: overallStatus
|
|
62
86
|
};
|
|
63
|
-
responseMapper.forEach((depResponse) => {
|
|
64
|
-
response.filesList.push(depResponse.filesList[0]);
|
|
65
|
-
if (depResponse.status !== 'Success') {
|
|
66
|
-
response.status = depResponse.status;
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
return response;
|
|
70
87
|
}
|
|
71
88
|
purlAdapter(localDependencies) {
|
|
72
89
|
for (const file of localDependencies.files) {
|
|
@@ -96,18 +113,17 @@ export class DependencyScanner {
|
|
|
96
113
|
for (const file of localDependencies.files) {
|
|
97
114
|
const chunkedPurls = this.chunkPurls(file.purls);
|
|
98
115
|
for (const purls of chunkedPurls) {
|
|
99
|
-
const depRequest =
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
depRequest.addFiles(fileMsg);
|
|
116
|
+
const depRequest = {
|
|
117
|
+
files: [
|
|
118
|
+
{
|
|
119
|
+
file: file.file,
|
|
120
|
+
purls: purls.map(purl => ({
|
|
121
|
+
purl: purl.purl,
|
|
122
|
+
requirement: purl.requirement
|
|
123
|
+
}))
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
};
|
|
111
127
|
requests.push(depRequest);
|
|
112
128
|
}
|
|
113
129
|
}
|
|
@@ -148,4 +164,4 @@ export class DependencyScanner {
|
|
|
148
164
|
}
|
|
149
165
|
}
|
|
150
166
|
}
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFRbEYsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixlQUFlLENBQW9CO0lBRW5DLGdCQUFnQixDQUFvQjtJQUVwQyxNQUFNLEdBQXlCLElBQUksb0JBQW9CLEVBQUUsQ0FBQztJQUVsRSxZQUFZLEdBQTBCO1FBQ3BDLElBQUksR0FBRztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDOztZQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUN0SCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxD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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
|
}
|