scanoss 0.21.1 → 0.23.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 +21 -4
- package/build/main/cli/bin/cli-bin.js +37 -1
- package/build/main/cli/commands/components.d.ts +1 -0
- package/build/main/cli/commands/components.js +98 -0
- package/build/main/cli/commands/scan.js +8 -3
- package/build/main/index.d.ts +6 -0
- package/build/main/index.js +9 -1
- package/build/main/sdk/BaseConfig.d.ts +5 -1
- package/build/main/sdk/BaseConfig.js +6 -2
- package/build/main/sdk/Clients/Components/ComponentsGRPCClient.d.ts +13 -0
- package/build/main/sdk/Clients/Components/ComponentsGRPCClient.js +33 -0
- package/build/main/sdk/Clients/Components/ComponentsHttpClient.d.ts +37 -0
- package/build/main/sdk/Clients/Components/ComponentsHttpClient.js +122 -0
- package/build/main/sdk/Clients/Components/IComponentsClient.d.ts +71 -0
- package/build/main/sdk/Clients/Components/IComponentsClient.js +3 -0
- package/build/main/sdk/Clients/Cryptography/CryptographyGRPCClient.d.ts +3 -0
- package/build/main/sdk/Clients/Cryptography/CryptographyGRPCClient.js +6 -3
- package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +22 -3
- package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.js +45 -12
- package/build/main/sdk/Clients/Cryptography/ICryptographyClient.d.ts +2 -2
- package/build/main/sdk/Clients/Dependency/DependencyGRPCClient.d.ts +3 -0
- package/build/main/sdk/Clients/Dependency/DependencyGRPCClient.js +4 -1
- package/build/main/sdk/Clients/Dependency/DependencyHttpClient.d.ts +22 -3
- package/build/main/sdk/Clients/Dependency/DependencyHttpClient.js +27 -13
- package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.d.ts +81 -0
- package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.js +160 -0
- package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.d.ts +1 -0
- package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.js +2313 -0
- package/build/main/sdk/Clients/Transport/Transport.d.ts +4 -4
- package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +2 -3
- package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +7 -13
- package/build/main/sdk/Clients/http/HttpClient.d.ts +8 -16
- package/build/main/sdk/Clients/http/HttpClient.js +4 -1
- package/build/main/sdk/Clients/interfaces/ClientConfig.d.ts +8 -9
- package/build/main/sdk/Clients/interfaces/ClientConfig.js +1 -7
- package/build/main/sdk/Components/ComponentsScanner.d.ts +34 -0
- package/build/main/sdk/Components/ComponentsScanner.js +123 -0
- package/build/main/sdk/Components/ComponentsScannerCfg.d.ts +21 -0
- package/build/main/sdk/Components/ComponentsScannerCfg.js +54 -0
- package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +12 -6
- package/build/main/sdk/Cryptography/CryptoCfg.js +8 -11
- package/build/main/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +11 -11
- package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +12 -6
- package/build/main/sdk/Dependencies/DependencyScanner.js +13 -4
- package/build/main/sdk/Dependencies/DependencyScannerCfg.js +8 -11
- package/build/main/sdk/Vulnerability/VulnerabilityCfg.js +8 -11
- package/build/main/sdk/Vulnerability/VulnerabilityScanner.js +11 -2
- package/build/main/sdk/scanner/ScannerCfg.js +10 -11
- package/build/main/tsconfig.tsbuildinfo +1 -1
- package/build/module/cli/bin/cli-bin.js +37 -1
- package/build/module/cli/commands/components.d.ts +1 -0
- package/build/module/cli/commands/components.js +92 -0
- package/build/module/cli/commands/scan.js +8 -3
- package/build/module/index.d.ts +6 -0
- package/build/module/index.js +9 -1
- package/build/module/sdk/BaseConfig.d.ts +5 -1
- package/build/module/sdk/BaseConfig.js +6 -2
- package/build/module/sdk/Clients/Components/ComponentsGRPCClient.d.ts +13 -0
- package/build/module/sdk/Clients/Components/ComponentsGRPCClient.js +29 -0
- package/build/module/sdk/Clients/Components/ComponentsHttpClient.d.ts +37 -0
- package/build/module/sdk/Clients/Components/ComponentsHttpClient.js +118 -0
- package/build/module/sdk/Clients/Components/IComponentsClient.d.ts +71 -0
- package/build/module/sdk/Clients/Components/IComponentsClient.js +2 -0
- package/build/module/sdk/Clients/Cryptography/CryptographyGRPCClient.d.ts +3 -0
- package/build/module/sdk/Clients/Cryptography/CryptographyGRPCClient.js +6 -3
- package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +22 -3
- package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.js +45 -14
- package/build/module/sdk/Clients/Cryptography/ICryptographyClient.d.ts +2 -2
- package/build/module/sdk/Clients/Dependency/DependencyGRPCClient.d.ts +3 -0
- package/build/module/sdk/Clients/Dependency/DependencyGRPCClient.js +4 -1
- package/build/module/sdk/Clients/Dependency/DependencyHttpClient.d.ts +22 -3
- package/build/module/sdk/Clients/Dependency/DependencyHttpClient.js +27 -15
- package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.d.ts +81 -0
- package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.js +160 -0
- package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.d.ts +1 -0
- package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.js +2313 -0
- package/build/module/sdk/Clients/Transport/Transport.d.ts +4 -4
- package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +2 -3
- package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +7 -15
- package/build/module/sdk/Clients/http/HttpClient.d.ts +8 -16
- package/build/module/sdk/Clients/http/HttpClient.js +4 -1
- package/build/module/sdk/Clients/interfaces/ClientConfig.d.ts +8 -9
- package/build/module/sdk/Clients/interfaces/ClientConfig.js +2 -6
- package/build/module/sdk/Components/ComponentsScanner.d.ts +34 -0
- package/build/module/sdk/Components/ComponentsScanner.js +119 -0
- package/build/module/sdk/Components/ComponentsScannerCfg.d.ts +21 -0
- package/build/module/sdk/Components/ComponentsScannerCfg.js +50 -0
- package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +12 -6
- package/build/module/sdk/Cryptography/CryptoCfg.js +8 -11
- package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +11 -11
- package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +12 -6
- package/build/module/sdk/Dependencies/DependencyScanner.js +13 -4
- package/build/module/sdk/Dependencies/DependencyScannerCfg.js +8 -11
- package/build/module/sdk/Vulnerability/VulnerabilityCfg.js +8 -11
- package/build/module/sdk/Vulnerability/VulnerabilityScanner.js +11 -2
- package/build/module/sdk/scanner/ScannerCfg.js +10 -11
- package/build/module/tsconfig.module.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ComponentsHttpClient = void 0;
|
|
4
|
+
const HttpClient_1 = require("../http/HttpClient");
|
|
5
|
+
const Logger_1 = require("../../Logger");
|
|
6
|
+
const clientHelper_1 = require("../helper/clientHelper");
|
|
7
|
+
/**
|
|
8
|
+
* HTTP client for components-related API operations.
|
|
9
|
+
* Provides methods to search components, get component versions, and retrieve component statistics.
|
|
10
|
+
*/
|
|
11
|
+
class ComponentsHttpClient extends HttpClient_1.HttpClient {
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new ComponentsHttpClient instance.
|
|
14
|
+
* @param clientConfig - Configuration for the HTTP client
|
|
15
|
+
*/
|
|
16
|
+
constructor(clientConfig) {
|
|
17
|
+
super(clientConfig);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Searches for components based on specified criteria.
|
|
21
|
+
* @param req - Search request with optional search terms, vendor, component, package, limit, and offset
|
|
22
|
+
* @returns Promise resolving to search results containing matching components
|
|
23
|
+
* @throws Error if the request fails
|
|
24
|
+
*/
|
|
25
|
+
async searchComponents(req) {
|
|
26
|
+
try {
|
|
27
|
+
const params = new URLSearchParams();
|
|
28
|
+
if (req.search)
|
|
29
|
+
params.append('search', req.search);
|
|
30
|
+
if (req.vendor)
|
|
31
|
+
params.append('vendor', req.vendor);
|
|
32
|
+
if (req.component)
|
|
33
|
+
params.append('component', req.component);
|
|
34
|
+
if (req.package)
|
|
35
|
+
params.append('package', req.package);
|
|
36
|
+
if (req.limit)
|
|
37
|
+
params.append('limit', req.limit.toString());
|
|
38
|
+
if (req.offset)
|
|
39
|
+
params.append('offset', req.offset.toString());
|
|
40
|
+
const URL = `${this.hostURL()}/v2/components/search?${params.toString()}`;
|
|
41
|
+
const response = await this.get(URL);
|
|
42
|
+
if (response.ok) {
|
|
43
|
+
return await response.json();
|
|
44
|
+
}
|
|
45
|
+
const errorText = await response.text();
|
|
46
|
+
const errorMessage = `Failed to search components: ${response.status} ${response.statusText} - ${errorText}`;
|
|
47
|
+
Logger_1.logger.log(`Error searching components: ${errorMessage}`);
|
|
48
|
+
throw new Error(errorMessage);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
Logger_1.logger.log('Error searching components:', error);
|
|
52
|
+
throw this.handleError(error, 'Failed to search components');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Retrieves available versions for a specific component.
|
|
57
|
+
* @param req - Request containing the component PURL and optional limit
|
|
58
|
+
* @returns Promise resolving to component version information
|
|
59
|
+
* @throws Error if the request fails
|
|
60
|
+
*/
|
|
61
|
+
async getComponentVersions(req) {
|
|
62
|
+
try {
|
|
63
|
+
const params = new URLSearchParams();
|
|
64
|
+
params.append('purl', req.purl);
|
|
65
|
+
if (req.limit)
|
|
66
|
+
params.append('limit', req.limit.toString());
|
|
67
|
+
const URL = `${this.hostURL()}/v2/components/versions?${params.toString()}`;
|
|
68
|
+
const response = await this.get(URL);
|
|
69
|
+
if (response.ok) {
|
|
70
|
+
return this.adaptToComponentVersionResponse(await response.json());
|
|
71
|
+
}
|
|
72
|
+
const errorText = await response.text();
|
|
73
|
+
const errorMessage = `Failed to get component versions: ${response.status} ${response.statusText} - ${errorText}`;
|
|
74
|
+
Logger_1.logger.log(`Error getting component versions: ${errorMessage}`);
|
|
75
|
+
throw new Error(errorMessage);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
Logger_1.logger.log('Error getting component versions:', error);
|
|
79
|
+
throw this.handleError(error, 'Failed to get component versions');
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Retrieves statistical information for the specified components.
|
|
84
|
+
* @param components - Array of components to analyze for statistics
|
|
85
|
+
* @returns Promise resolving to statistical information for each component
|
|
86
|
+
* @throws Error if the request fails or components validation fails
|
|
87
|
+
*/
|
|
88
|
+
async getComponentStatistics(components) {
|
|
89
|
+
try {
|
|
90
|
+
(0, clientHelper_1.validateComponents)(components);
|
|
91
|
+
const URL = `${this.hostURL()}/v2/components/statistics`;
|
|
92
|
+
const response = await this.post(URL, { purls: components });
|
|
93
|
+
if (response.ok) {
|
|
94
|
+
return await response.json();
|
|
95
|
+
}
|
|
96
|
+
const errorText = await response.text();
|
|
97
|
+
const errorMessage = `Failed to get component statistics: ${response.status} ${response.statusText} - ${errorText}`;
|
|
98
|
+
Logger_1.logger.log(`Error getting component statistics: ${errorMessage}`);
|
|
99
|
+
throw new Error(errorMessage);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
Logger_1.logger.log('Error getting component statistics:', error);
|
|
103
|
+
throw this.handleError(error, 'Failed to get component statistics');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
adaptToComponentVersionResponse(response) {
|
|
107
|
+
response.component.versions = response.component.versions.map((version) => {
|
|
108
|
+
version.licenses = version.licenses.map((l) => {
|
|
109
|
+
return {
|
|
110
|
+
name: l.name,
|
|
111
|
+
spdxId: l.spdx_id,
|
|
112
|
+
isSpdxVersion: l.is_spdx_approved,
|
|
113
|
+
url: l.url,
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
return version;
|
|
117
|
+
});
|
|
118
|
+
return response;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.ComponentsHttpClient = ComponentsHttpClient;
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50c0h0dHBDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NsaWVudHMvQ29tcG9uZW50cy9Db21wb25lbnRzSHR0cENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBZ0Q7QUFDaEQseUNBQXNDO0FBVXRDLHlEQUE0RDtBQUc1RDs7O0dBR0c7QUFDSCxNQUFhLG9CQUFxQixTQUFRLHVCQUFVO0lBQ2xEOzs7T0FHRztJQUNILFlBQVksWUFBMEI7UUFDcEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUEyQjtRQUN2RCxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3JDLElBQUksR0FBRyxDQUFDLE1BQU07Z0JBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELElBQUksR0FBRyxDQUFDLE1BQU07Z0JBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELElBQUksR0FBRyxDQUFDLFNBQVM7Z0JBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdELElBQUksR0FBRyxDQUFDLE9BQU87Z0JBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZELElBQUksR0FBRyxDQUFDLEtBQUs7Z0JBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzVELElBQUksR0FBRyxDQUFDLE1BQU07Z0JB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
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Component } from "../../types/common/types";
|
|
2
|
+
export interface ComponentLicense {
|
|
3
|
+
name: string;
|
|
4
|
+
spdxId: string;
|
|
5
|
+
isSpdxApproved: boolean;
|
|
6
|
+
url: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ComponentSearchRequest {
|
|
9
|
+
search?: string;
|
|
10
|
+
vendor?: string;
|
|
11
|
+
component?: string;
|
|
12
|
+
package?: string;
|
|
13
|
+
limit?: number;
|
|
14
|
+
offset?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface ComponentInfo {
|
|
17
|
+
component: string;
|
|
18
|
+
purl: string;
|
|
19
|
+
url: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ComponentSearchResponse {
|
|
22
|
+
components: ComponentInfo[];
|
|
23
|
+
status: Status;
|
|
24
|
+
}
|
|
25
|
+
export interface ComponentVersionRequest {
|
|
26
|
+
purl: string;
|
|
27
|
+
limit?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface ComponentVersion {
|
|
30
|
+
version: string;
|
|
31
|
+
licenses: ComponentLicense[];
|
|
32
|
+
date: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ComponentWithVersions {
|
|
35
|
+
component: string;
|
|
36
|
+
purl: string;
|
|
37
|
+
url: string;
|
|
38
|
+
versions: ComponentVersion[];
|
|
39
|
+
}
|
|
40
|
+
export interface ComponentVersionResponse {
|
|
41
|
+
component: ComponentWithVersions;
|
|
42
|
+
status: Status;
|
|
43
|
+
}
|
|
44
|
+
export interface Language {
|
|
45
|
+
name: string;
|
|
46
|
+
files: number;
|
|
47
|
+
}
|
|
48
|
+
export interface ComponentStatistic {
|
|
49
|
+
totalSourceFiles: number;
|
|
50
|
+
totalLines: number;
|
|
51
|
+
totalBlankLines: number;
|
|
52
|
+
languages: Language[];
|
|
53
|
+
}
|
|
54
|
+
export interface ComponentStatisticPurl {
|
|
55
|
+
purl: string;
|
|
56
|
+
version: string;
|
|
57
|
+
statistics: ComponentStatistic;
|
|
58
|
+
}
|
|
59
|
+
export interface ComponentStatisticResponse {
|
|
60
|
+
purls: ComponentStatisticPurl[];
|
|
61
|
+
status: Status;
|
|
62
|
+
}
|
|
63
|
+
export interface Status {
|
|
64
|
+
status: string;
|
|
65
|
+
message: string;
|
|
66
|
+
}
|
|
67
|
+
export interface IComponentsClient {
|
|
68
|
+
searchComponents(req: ComponentSearchRequest): Promise<ComponentSearchResponse>;
|
|
69
|
+
getComponentVersions(req: ComponentVersionRequest): Promise<ComponentVersionResponse>;
|
|
70
|
+
getComponentStatistics(components: Component[]): Promise<ComponentStatisticResponse>;
|
|
71
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUNvbXBvbmVudHNDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NsaWVudHMvQ29tcG9uZW50cy9JQ29tcG9uZW50c0NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { BaseGRPCClient } from '../Grpc/BaseGRPCClient';
|
|
2
2
|
import { ICryptographyClient, AlgorithmResponse, HintsInRangeResponse } from './ICryptographyClient';
|
|
3
3
|
import { Component } from "../../types/common/types";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated This gRPC client is deprecated. Use CryptographyHttpClient instead.
|
|
6
|
+
*/
|
|
4
7
|
export declare class CryptographyGRPCClient extends BaseGRPCClient implements ICryptographyClient {
|
|
5
8
|
static readonly clientName = "Cryptography gRPC Client";
|
|
6
9
|
private client;
|
|
@@ -4,6 +4,9 @@ exports.CryptographyGRPCClient = void 0;
|
|
|
4
4
|
const scanoss_cryptography_grpc_pb_1 = require("../Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb");
|
|
5
5
|
const BaseGRPCClient_1 = require("../Grpc/BaseGRPCClient");
|
|
6
6
|
const Logger_1 = require("../../Logger");
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated This gRPC client is deprecated. Use CryptographyHttpClient instead.
|
|
9
|
+
*/
|
|
7
10
|
class CryptographyGRPCClient extends BaseGRPCClient_1.BaseGRPCClient {
|
|
8
11
|
/**
|
|
9
12
|
* Creates CryptographyService Instance.
|
|
@@ -94,7 +97,7 @@ class CryptographyGRPCClient extends BaseGRPCClient_1.BaseGRPCClient {
|
|
|
94
97
|
transformGrpcAlgorithmResponse(grpcResponse) {
|
|
95
98
|
var _a, _b, _c;
|
|
96
99
|
return {
|
|
97
|
-
|
|
100
|
+
components: ((_a = grpcResponse.components) === null || _a === void 0 ? void 0 : _a.map((purl) => {
|
|
98
101
|
var _a;
|
|
99
102
|
return ({
|
|
100
103
|
purl: purl.purl,
|
|
@@ -114,7 +117,7 @@ class CryptographyGRPCClient extends BaseGRPCClient_1.BaseGRPCClient {
|
|
|
114
117
|
transformGrpcHintsResponse(grpcResponse) {
|
|
115
118
|
var _a, _b, _c;
|
|
116
119
|
return {
|
|
117
|
-
|
|
120
|
+
components: ((_a = grpcResponse.components) === null || _a === void 0 ? void 0 : _a.map((purl) => {
|
|
118
121
|
var _a;
|
|
119
122
|
return ({
|
|
120
123
|
purl: purl.purl,
|
|
@@ -139,4 +142,4 @@ class CryptographyGRPCClient extends BaseGRPCClient_1.BaseGRPCClient {
|
|
|
139
142
|
}
|
|
140
143
|
exports.CryptographyGRPCClient = CryptographyGRPCClient;
|
|
141
144
|
CryptographyGRPCClient.clientName = 'Cryptography gRPC Client';
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5R1JQQ0NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ2xpZW50cy9DcnlwdG9ncmFwaHkvQ3J5cHRvZ3JhcGh5R1JQQ0NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtSEFBZ0k7QUFDaEksMkRBQXFFO0FBTXJFLHlDQUFzQztBQUd0Qzs7R0FFRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsK0JBQWM7SUFJeEQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxTQUFrQixFQUFFLFVBQW1CO1FBQ2xGLEtBQUssQ0FBQztZQUNKLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLE9BQU8sRUFBRSxVQUFVO1lBQ25CLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQyxVQUFVO1lBQzlDLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxpREFBc0IsQ0FDdEMsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQXVCO1FBQ2hELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwQyxNQUFNLEdBQUcsR0FBZ0I7WUFDdkIsU0FBUyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRTthQUNwQyxDQUFDLENBQUM7U0FDSixDQUFDO1FBRUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsTUFB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
|
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
import { HttpClient } from "../http/HttpClient";
|
|
2
2
|
import { ICryptographyClient, AlgorithmResponse, HintsInRangeResponse } from "./ICryptographyClient";
|
|
3
3
|
import { Component } from "../../types/common/types";
|
|
4
|
+
import { ClientConfig } from "../interfaces/ClientConfig";
|
|
5
|
+
/**
|
|
6
|
+
* HTTP client for cryptography-related API operations.
|
|
7
|
+
* Provides methods to retrieve cryptographic algorithms and encryption hints for components.
|
|
8
|
+
*/
|
|
4
9
|
export declare class CryptographyHttpClient extends HttpClient implements ICryptographyClient {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Creates a new CryptographyHttpClient instance.
|
|
12
|
+
* @param clientConfig - Configuration for the HTTP client
|
|
13
|
+
*/
|
|
14
|
+
constructor(clientConfig: ClientConfig);
|
|
15
|
+
/**
|
|
16
|
+
* Retrieves cryptographic algorithms for the specified components.
|
|
17
|
+
* @param components - Array of components to analyze for cryptographic algorithms
|
|
18
|
+
* @returns Promise resolving to algorithm information for each component
|
|
19
|
+
* @throws Error if the request fails or components validation fails
|
|
20
|
+
*/
|
|
8
21
|
getAlgorithms(components: Component[]): Promise<AlgorithmResponse>;
|
|
22
|
+
/**
|
|
23
|
+
* Retrieves encryption hints for the specified components.
|
|
24
|
+
* @param components - Array of components to analyze for encryption hints
|
|
25
|
+
* @returns Promise resolving to encryption hints information for each component
|
|
26
|
+
* @throws Error if the request fails or components validation fails
|
|
27
|
+
*/
|
|
9
28
|
getEncryptionHints(components: Component[]): Promise<HintsInRangeResponse>;
|
|
10
29
|
}
|
|
@@ -4,25 +4,39 @@ exports.CryptographyHttpClient = void 0;
|
|
|
4
4
|
const HttpClient_1 = require("../http/HttpClient");
|
|
5
5
|
const Logger_1 = require("../../Logger");
|
|
6
6
|
const clientHelper_1 = require("../helper/clientHelper");
|
|
7
|
+
/**
|
|
8
|
+
* HTTP client for cryptography-related API operations.
|
|
9
|
+
* Provides methods to retrieve cryptographic algorithms and encryption hints for components.
|
|
10
|
+
*/
|
|
7
11
|
class CryptographyHttpClient extends HttpClient_1.HttpClient {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
CA_CERT: caCertPath,
|
|
15
|
-
});
|
|
16
|
-
this.baseUrl = hostName;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new CryptographyHttpClient instance.
|
|
14
|
+
* @param clientConfig - Configuration for the HTTP client
|
|
15
|
+
*/
|
|
16
|
+
constructor(clientConfig) {
|
|
17
|
+
super(clientConfig);
|
|
17
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Retrieves cryptographic algorithms for the specified components.
|
|
21
|
+
* @param components - Array of components to analyze for cryptographic algorithms
|
|
22
|
+
* @returns Promise resolving to algorithm information for each component
|
|
23
|
+
* @throws Error if the request fails or components validation fails
|
|
24
|
+
*/
|
|
18
25
|
async getAlgorithms(components) {
|
|
19
26
|
try {
|
|
20
27
|
(0, clientHelper_1.validateComponents)(components);
|
|
21
|
-
const
|
|
28
|
+
const URL = `${this.hostURL()}/v2/cryptography/algorithms/components`;
|
|
29
|
+
const response = await this.post(URL, { components: components });
|
|
22
30
|
if (response.ok) {
|
|
23
31
|
const algorithms = await response.json();
|
|
24
32
|
return algorithms;
|
|
25
33
|
}
|
|
34
|
+
if (response.status === 404) {
|
|
35
|
+
const responseData = await response.json();
|
|
36
|
+
const errorMessage = `Failed to get algorithms: ${response.status} ${response.statusText} - ${JSON.stringify(responseData)}`;
|
|
37
|
+
Logger_1.logger.log(`Error getting algorithms: ${errorMessage}`);
|
|
38
|
+
return responseData;
|
|
39
|
+
}
|
|
26
40
|
const errorText = await response.text();
|
|
27
41
|
const errorMessage = `Failed to get algorithms: ${response.status} ${response.statusText} - ${errorText}`;
|
|
28
42
|
Logger_1.logger.log(`Error getting algorithms: ${errorMessage}`);
|
|
@@ -33,14 +47,33 @@ class CryptographyHttpClient extends HttpClient_1.HttpClient {
|
|
|
33
47
|
throw this.handleError(error, 'Failed to get algorithms');
|
|
34
48
|
}
|
|
35
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Retrieves encryption hints for the specified components.
|
|
52
|
+
* @param components - Array of components to analyze for encryption hints
|
|
53
|
+
* @returns Promise resolving to encryption hints information for each component
|
|
54
|
+
* @throws Error if the request fails or components validation fails
|
|
55
|
+
*/
|
|
36
56
|
async getEncryptionHints(components) {
|
|
37
57
|
try {
|
|
38
58
|
(0, clientHelper_1.validateComponents)(components);
|
|
39
|
-
const
|
|
59
|
+
const URL = `${this.hostURL()}/v2/cryptography/hints/range/components`;
|
|
60
|
+
const response = await this.post(URL, { components: components });
|
|
40
61
|
if (response.ok) {
|
|
41
62
|
const hints = await response.json();
|
|
42
63
|
return hints;
|
|
43
64
|
}
|
|
65
|
+
if (response.status === 400) {
|
|
66
|
+
const errorText = await response.text();
|
|
67
|
+
const errorMessage = `Failed to get encryption hints: ${response.status} ${response.statusText} - ${errorText}`;
|
|
68
|
+
Logger_1.logger.log(`Error getting encryption hints: ${errorMessage}`);
|
|
69
|
+
throw new Error(errorMessage);
|
|
70
|
+
}
|
|
71
|
+
if (response.status === 404) {
|
|
72
|
+
const responseData = await response.json();
|
|
73
|
+
const errorMessage = `Failed to get encryption hints: ${response.status} ${response.statusText} - ${JSON.stringify(responseData)}`;
|
|
74
|
+
Logger_1.logger.log(`Error getting encryption hints: ${errorMessage}`);
|
|
75
|
+
return responseData;
|
|
76
|
+
}
|
|
44
77
|
const errorText = await response.text();
|
|
45
78
|
const errorMessage = `Failed to get encryption hints: ${response.status} ${response.statusText} - ${errorText}`;
|
|
46
79
|
Logger_1.logger.log(`Error getting encryption hints: ${errorMessage}`);
|
|
@@ -53,4 +86,4 @@ class CryptographyHttpClient extends HttpClient_1.HttpClient {
|
|
|
53
86
|
}
|
|
54
87
|
}
|
|
55
88
|
exports.CryptographyHttpClient = CryptographyHttpClient;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5SHR0cENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ2xpZW50cy9DcnlwdG9ncmFwaHkvQ3J5cHRvZ3JhcGh5SHR0cENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBZ0Q7QUFDaEQseUNBQXNDO0FBTXRDLHlEQUE0RDtBQUk1RDs7O0dBR0c7QUFDSCxNQUFhLHNCQUF1QixTQUFRLHVCQUFVO0lBQ3BEOzs7T0FHRztJQUNILFlBQVksWUFBMEI7UUFDcEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBdUI7UUFDaEQsSUFBSSxDQUFDO1lBQ0gsSUFBQSxpQ0FBa0IsRUFBQyxVQUFVLENBQUMsQ0FBQztZQUMvQixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsd0NBQXdDLENBQUM7WUFDdEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLElBQUksUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixNQUFNLFVBQVUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekMsT0FBTyxVQUErQixDQUFDO1lBQ3pDLENBQUM7WUFFRCxJQUFHLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFDLENBQUM7Z0JBQzFCLE1BQU0sWUFBWSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQyxNQUFNLFlBQVksR0FBRyw2QkFBNkIsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztn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
|
|
@@ -23,7 +23,7 @@ export interface Status {
|
|
|
23
23
|
message: string;
|
|
24
24
|
}
|
|
25
25
|
export interface AlgorithmResponse {
|
|
26
|
-
|
|
26
|
+
components: ComponentAlgorithm[];
|
|
27
27
|
status: Status;
|
|
28
28
|
}
|
|
29
29
|
export interface ComponentHintResponse extends Purl {
|
|
@@ -31,7 +31,7 @@ export interface ComponentHintResponse extends Purl {
|
|
|
31
31
|
versions: string[];
|
|
32
32
|
}
|
|
33
33
|
export interface HintsInRangeResponse {
|
|
34
|
-
|
|
34
|
+
components: ComponentHintResponse[];
|
|
35
35
|
status: Status;
|
|
36
36
|
}
|
|
37
37
|
export interface ICryptographyClient {
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as DependenciesMessages from '../Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb';
|
|
2
2
|
import * as CommonMessages from '../Grpc/scanoss/api/common/v2/scanoss-common_pb';
|
|
3
3
|
import { BaseGRPCClient } from "../Grpc/BaseGRPCClient";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated This gRPC client is deprecated. Use DependencyHttpClient instead.
|
|
6
|
+
*/
|
|
4
7
|
export declare class DependencyGRPCClient extends BaseGRPCClient {
|
|
5
8
|
static readonly clientName = "Dependency gRPC Client";
|
|
6
9
|
private client;
|
|
@@ -28,6 +28,9 @@ const scanoss_dependencies_grpc_pb_1 = require("../Grpc/scanoss/api/dependencies
|
|
|
28
28
|
const DependenciesMessages = __importStar(require("../Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb"));
|
|
29
29
|
const CommonMessages = __importStar(require("../Grpc/scanoss/api/common/v2/scanoss-common_pb"));
|
|
30
30
|
const BaseGRPCClient_1 = require("../Grpc/BaseGRPCClient");
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated This gRPC client is deprecated. Use DependencyHttpClient instead.
|
|
33
|
+
*/
|
|
31
34
|
class DependencyGRPCClient extends BaseGRPCClient_1.BaseGRPCClient {
|
|
32
35
|
/**
|
|
33
36
|
* Creates DependencyService Instance.
|
|
@@ -97,4 +100,4 @@ class DependencyGRPCClient extends BaseGRPCClient_1.BaseGRPCClient {
|
|
|
97
100
|
}
|
|
98
101
|
exports.DependencyGRPCClient = DependencyGRPCClient;
|
|
99
102
|
DependencyGRPCClient.clientName = 'Dependency gRPC Client';
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeUdSUENDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NsaWVudHMvRGVwZW5kZW5jeS9EZXBlbmRlbmN5R1JQQ0NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1IQUFzRztBQUN0RyxrSEFBb0c7QUFDcEcsZ0dBQWtGO0FBQ2xGLDJEQUF3RDtBQUV4RDs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsK0JBQWM7SUFJdEQ7Ozs7O09BS0c7SUFDSCxZQUFZLFFBQWlCLEVBQUUsU0FBa0IsRUFBRSxVQUFtQjtRQUNwRSxLQUFLLENBQUM7WUFDSixRQUFRLEVBQUUsUUFBUTtZQUNsQixXQUFXLEVBQUUsb0JBQW9CLENBQUMsVUFBVTtZQUM1QyxTQUFTLEVBQUUsU0FBUztZQUNwQixPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksaURBQWtCLENBQ2xDLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQ2xDLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsQ0FDZCxHQUEyQztRQUUzQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxHQUFHO29CQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0seUJBQXlCLENBQzlCLFFBQXlEO1FBRXpELElBQUksQ0FBQztZQUNILE1BQU0sVUFBVSxHQUFHLElBQUksb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNuRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsV0FBVyxDQUFDLENBQUM7b0JBQzFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVCLENBQUM7Z0JBQ0QsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUNmLEdBQStCO1FBRS9CLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLEdBQUc7b0JBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FDeEIsUUFBNkM7UUFFN0MsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckQsV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekMsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7O0FBaEZILG9EQWlGQztBQWhGd0IsK0JBQVUsR0FBRyx3QkFBd0IsQ0FBQyJ9
|
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
import { HttpClient } from "../http/HttpClient";
|
|
2
2
|
import { DependencyRequest, DependencyResponse, IDependencyClient } from "./IDependencyClient";
|
|
3
|
+
import { ClientConfig } from "../interfaces/ClientConfig";
|
|
4
|
+
/**
|
|
5
|
+
* HTTP client for dependency-related API operations.
|
|
6
|
+
* Provides methods to retrieve dependency information for files and components.
|
|
7
|
+
*/
|
|
3
8
|
export declare class DependencyHttpClient extends HttpClient implements IDependencyClient {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Creates a new DependencyHttpClient instance.
|
|
11
|
+
* @param clientConfig - Configuration for the HTTP client
|
|
12
|
+
*/
|
|
13
|
+
constructor(clientConfig: ClientConfig);
|
|
14
|
+
/**
|
|
15
|
+
* Retrieves dependency information for the specified files and components.
|
|
16
|
+
* @param req - Request containing files and their associated components/purls
|
|
17
|
+
* @returns Promise resolving to dependency information for each file
|
|
18
|
+
* @throws Error if the request fails
|
|
19
|
+
*/
|
|
7
20
|
getDependencies(req: DependencyRequest): Promise<DependencyResponse>;
|
|
21
|
+
/**
|
|
22
|
+
* Converts API response to DependencyResponse format.
|
|
23
|
+
* TODO: Remove this adapter with new protobuf definition. This method keeps backward compatibility
|
|
24
|
+
* @param dependencies - Raw API response
|
|
25
|
+
* @returns Formatted DependencyResponse
|
|
26
|
+
*/
|
|
8
27
|
private toDependencyResponse;
|
|
9
28
|
}
|
|
@@ -2,21 +2,30 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DependencyHttpClient = void 0;
|
|
4
4
|
const HttpClient_1 = require("../http/HttpClient");
|
|
5
|
+
const Logger_1 = require("../../Logger");
|
|
6
|
+
/**
|
|
7
|
+
* HTTP client for dependency-related API operations.
|
|
8
|
+
* Provides methods to retrieve dependency information for files and components.
|
|
9
|
+
*/
|
|
5
10
|
class DependencyHttpClient extends HttpClient_1.HttpClient {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
CA_CERT: caCertPath,
|
|
13
|
-
IGNORE_CERT_ERRORS: ignoreCertErrors
|
|
14
|
-
});
|
|
15
|
-
this.baseUrl = hostName;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new DependencyHttpClient instance.
|
|
13
|
+
* @param clientConfig - Configuration for the HTTP client
|
|
14
|
+
*/
|
|
15
|
+
constructor(clientConfig) {
|
|
16
|
+
super(clientConfig);
|
|
16
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves dependency information for the specified files and components.
|
|
20
|
+
* @param req - Request containing files and their associated components/purls
|
|
21
|
+
* @returns Promise resolving to dependency information for each file
|
|
22
|
+
* @throws Error if the request fails
|
|
23
|
+
*/
|
|
17
24
|
async getDependencies(req) {
|
|
18
25
|
try {
|
|
19
|
-
const
|
|
26
|
+
const URL = `${this.hostURL()}/v2/dependencies/dependencies`;
|
|
27
|
+
Logger_1.logger.debug(`Get Dependencies for ${URL}`);
|
|
28
|
+
const response = await this.post(URL, req);
|
|
20
29
|
if (response.ok) {
|
|
21
30
|
return this.toDependencyResponse(await response.json());
|
|
22
31
|
}
|
|
@@ -28,7 +37,12 @@ class DependencyHttpClient extends HttpClient_1.HttpClient {
|
|
|
28
37
|
throw this.handleError(error, 'Failed to get dependencies');
|
|
29
38
|
}
|
|
30
39
|
}
|
|
31
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Converts API response to DependencyResponse format.
|
|
42
|
+
* TODO: Remove this adapter with new protobuf definition. This method keeps backward compatibility
|
|
43
|
+
* @param dependencies - Raw API response
|
|
44
|
+
* @returns Formatted DependencyResponse
|
|
45
|
+
*/
|
|
32
46
|
toDependencyResponse(dependencies) {
|
|
33
47
|
// Convert files array to filesList
|
|
34
48
|
const filesList = dependencies.files.map(file => ({
|
|
@@ -58,4 +72,4 @@ class DependencyHttpClient extends HttpClient_1.HttpClient {
|
|
|
58
72
|
}
|
|
59
73
|
}
|
|
60
74
|
exports.DependencyHttpClient = DependencyHttpClient;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeUh0dHBDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NsaWVudHMvRGVwZW5kZW5jeS9EZXBlbmRlbmN5SHR0cENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBZ0Q7QUFHaEQseUNBQXNDO0FBRXRDOzs7R0FHRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsdUJBQVU7SUFDbEQ7OztPQUdHO0lBQ0gsWUFBWSxZQUEwQjtRQUNwQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFzQjtRQUNqRCxJQUFHLENBQUM7WUFDRixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsK0JBQStCLENBQUM7WUFDN0QsZUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUM1QyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLElBQUksUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFELENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFlBQVksR0FBRywrQkFBK0IsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxNQUFNLFNBQVMsRUFBRSxDQUFDO1lBQzVHLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLDRCQUE0QixDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7SUFDRDs7Ozs7T0FLRztJQUNLLG9CQUFvQixDQUFDLFlBQWlCO1FBQzVDLG1DQUFtQztRQUNuQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO2dCQUN4QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO2dCQUNwQixZQUFZLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN6QyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTztvQkFDdkIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7b0JBQ3hDLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztpQkFDakIsQ0FBQyxDQUFDO2dCQUNILEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztnQkFDWixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87Z0JBQ3BCLDhFQUE4RTtnQkFDOUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksY0FBYzthQUNuQyxDQUFDLENBQUM7U0FDSixDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU87WUFDTCxTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07U0FDNUIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQS9ERCxvREErREMifQ==
|