scanoss 0.16.5 → 0.17.1
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 -0
- package/build/main/cli/bin/cli-bin.js +2 -2
- package/build/main/cli/commands/crypto.js +1 -1
- package/build/main/cli/commands/scan.js +8 -4
- package/build/main/sdk/BaseConfig.d.ts +38 -9
- package/build/main/sdk/BaseConfig.js +82 -13
- package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +5 -2
- package/build/main/sdk/Cryptography/CryptoCfg.d.ts +7 -13
- package/build/main/sdk/Cryptography/CryptoCfg.js +7 -14
- package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +5 -2
- package/build/main/sdk/Dependencies/DependencyScanner.d.ts +4 -1
- package/build/main/sdk/Dependencies/DependencyScanner.js +66 -32
- package/build/main/sdk/Dependencies/DependencyScannerCfg.d.ts +8 -2
- package/build/main/sdk/Dependencies/DependencyScannerCfg.js +14 -4
- package/build/main/sdk/Dependencies/DependencyTypes.d.ts +1 -0
- package/build/main/sdk/Services/Grpc/BaseService.d.ts +26 -4
- package/build/main/sdk/Services/Grpc/BaseService.js +92 -21
- package/build/main/sdk/Services/Grpc/CryptographyService.d.ts +9 -1
- package/build/main/sdk/Services/Grpc/CryptographyService.js +19 -12
- package/build/main/sdk/Services/Grpc/DependencyService.d.ts +10 -3
- package/build/main/sdk/Services/Grpc/DependencyService.js +19 -9
- package/build/main/sdk/scanner/ScannerCfg.d.ts +0 -1
- package/build/main/sdk/scanner/ScannerCfg.js +1 -3
- package/build/main/tsconfig.tsbuildinfo +1 -1
- package/build/module/cli/bin/cli-bin.js +2 -2
- package/build/module/cli/commands/crypto.js +1 -1
- package/build/module/cli/commands/scan.js +8 -4
- package/build/module/sdk/BaseConfig.d.ts +38 -9
- package/build/module/sdk/BaseConfig.js +82 -11
- package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +5 -2
- package/build/module/sdk/Cryptography/CryptoCfg.d.ts +7 -13
- package/build/module/sdk/Cryptography/CryptoCfg.js +7 -15
- package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +5 -2
- package/build/module/sdk/Dependencies/DependencyScanner.d.ts +4 -1
- package/build/module/sdk/Dependencies/DependencyScanner.js +66 -32
- package/build/module/sdk/Dependencies/DependencyScannerCfg.d.ts +8 -2
- package/build/module/sdk/Dependencies/DependencyScannerCfg.js +16 -3
- package/build/module/sdk/Dependencies/DependencyTypes.d.ts +1 -0
- package/build/module/sdk/Services/Grpc/BaseService.d.ts +26 -4
- package/build/module/sdk/Services/Grpc/BaseService.js +92 -20
- package/build/module/sdk/Services/Grpc/CryptographyService.d.ts +9 -1
- package/build/module/sdk/Services/Grpc/CryptographyService.js +19 -12
- package/build/module/sdk/Services/Grpc/DependencyService.d.ts +10 -3
- package/build/module/sdk/Services/Grpc/DependencyService.js +20 -11
- package/build/module/sdk/scanner/ScannerCfg.d.ts +0 -1
- package/build/module/sdk/scanner/ScannerCfg.js +1 -3
- package/build/module/tsconfig.module.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,40 @@
|
|
|
1
|
-
export
|
|
2
|
-
HTTPS_PROXY
|
|
3
|
-
HTTP_PROXY
|
|
4
|
-
NO_PROXY
|
|
5
|
-
API_URL
|
|
6
|
-
GRPC_PROXY
|
|
7
|
-
CA_CERT
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
export interface IBaseConfig {
|
|
2
|
+
HTTPS_PROXY?: string;
|
|
3
|
+
HTTP_PROXY?: string;
|
|
4
|
+
NO_PROXY?: string;
|
|
5
|
+
API_URL?: string;
|
|
6
|
+
GRPC_PROXY?: string;
|
|
7
|
+
CA_CERT?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class BaseConfig {
|
|
10
|
+
private _HTTPS_PROXY;
|
|
11
|
+
private _HTTP_PROXY;
|
|
12
|
+
private _NO_PROXY;
|
|
13
|
+
private _API_URL;
|
|
14
|
+
private _GRPC_PROXY;
|
|
15
|
+
private _CA_CERT;
|
|
16
|
+
constructor(config?: IBaseConfig);
|
|
10
17
|
static getDefaultURL(): string;
|
|
18
|
+
set HTTPS_PROXY(value: string);
|
|
19
|
+
set HTTP_PROXY(value: string);
|
|
20
|
+
set NO_PROXY(value: string);
|
|
21
|
+
/**
|
|
22
|
+
* Sets the API URL for service connections with validation
|
|
23
|
+
* @param value - The API URL (must start with http:// or https://)
|
|
24
|
+
* @throws {Error} When the URL is empty, missing http/https protocol, or has invalid format
|
|
25
|
+
*/
|
|
26
|
+
set API_URL(value: string);
|
|
27
|
+
set GRPC_PROXY(value: string);
|
|
28
|
+
/**
|
|
29
|
+
* Sets the CA certificate file path for gRPC connections
|
|
30
|
+
* @param caCertPath - Path to the CA certificate file
|
|
31
|
+
* @throws {Error} When the certificate file does not exist or cannot be read
|
|
32
|
+
*/
|
|
33
|
+
set CA_CERT(caCertPath: string);
|
|
34
|
+
get HTTPS_PROXY(): string;
|
|
35
|
+
get HTTP_PROXY(): string;
|
|
36
|
+
get NO_PROXY(): string;
|
|
37
|
+
get API_URL(): string;
|
|
38
|
+
get GRPC_PROXY(): string;
|
|
39
|
+
get CA_CERT(): string;
|
|
11
40
|
}
|
|
@@ -1,18 +1,89 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
export class BaseConfig {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
this.
|
|
3
|
+
_HTTPS_PROXY = '';
|
|
4
|
+
_HTTP_PROXY = '';
|
|
5
|
+
_NO_PROXY = ''; //comma separated values
|
|
6
|
+
_API_URL = '';
|
|
7
|
+
_GRPC_PROXY = '';
|
|
8
|
+
_CA_CERT = ''; // Path to the certificate to be used in SSL/TLS connection
|
|
9
|
+
constructor(config) {
|
|
10
|
+
if (config) {
|
|
11
|
+
this.HTTPS_PROXY = config.HTTPS_PROXY || '';
|
|
12
|
+
this.HTTP_PROXY = config.HTTP_PROXY || '';
|
|
13
|
+
this.NO_PROXY = config.NO_PROXY || '';
|
|
14
|
+
this.API_URL = config.API_URL || '';
|
|
15
|
+
this.GRPC_PROXY = config.GRPC_PROXY || '';
|
|
16
|
+
this.CA_CERT = config.CA_CERT;
|
|
17
|
+
}
|
|
13
18
|
}
|
|
14
19
|
static getDefaultURL() {
|
|
15
20
|
return 'https://api.osskb.org/scan/direct';
|
|
16
21
|
}
|
|
22
|
+
set HTTPS_PROXY(value) {
|
|
23
|
+
this._HTTPS_PROXY = value;
|
|
24
|
+
}
|
|
25
|
+
set HTTP_PROXY(value) {
|
|
26
|
+
this._HTTP_PROXY = value;
|
|
27
|
+
}
|
|
28
|
+
set NO_PROXY(value) {
|
|
29
|
+
this._NO_PROXY = value;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sets the API URL for service connections with validation
|
|
33
|
+
* @param value - The API URL (must start with http:// or https://)
|
|
34
|
+
* @throws {Error} When the URL is empty, missing http/https protocol, or has invalid format
|
|
35
|
+
*/
|
|
36
|
+
set API_URL(value) {
|
|
37
|
+
if (!value) {
|
|
38
|
+
throw new Error('API_URL is required and cannot be empty');
|
|
39
|
+
}
|
|
40
|
+
if (!value.startsWith('http')) {
|
|
41
|
+
throw new Error(`API_URL must start with 'http://' or 'https://', got: '${value}'`);
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
new URL(value);
|
|
45
|
+
this._API_URL = value;
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
throw new Error(`Invalid API_URL format '${value}': ${e.message}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
set GRPC_PROXY(value) {
|
|
52
|
+
this._GRPC_PROXY = value;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Sets the CA certificate file path for gRPC connections
|
|
56
|
+
* @param caCertPath - Path to the CA certificate file
|
|
57
|
+
* @throws {Error} When the certificate file does not exist or cannot be read
|
|
58
|
+
*/
|
|
59
|
+
set CA_CERT(caCertPath) {
|
|
60
|
+
if (caCertPath == null || caCertPath === '')
|
|
61
|
+
return;
|
|
62
|
+
try {
|
|
63
|
+
fs.readFileSync(caCertPath);
|
|
64
|
+
this._CA_CERT = caCertPath;
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
throw new Error(`Certificate file not found: '${caCertPath}'`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
get HTTPS_PROXY() {
|
|
71
|
+
return this._HTTPS_PROXY;
|
|
72
|
+
}
|
|
73
|
+
get HTTP_PROXY() {
|
|
74
|
+
return this._HTTP_PROXY;
|
|
75
|
+
}
|
|
76
|
+
get NO_PROXY() {
|
|
77
|
+
return this._NO_PROXY;
|
|
78
|
+
}
|
|
79
|
+
get API_URL() {
|
|
80
|
+
return this._API_URL;
|
|
81
|
+
}
|
|
82
|
+
get GRPC_PROXY() {
|
|
83
|
+
return this._GRPC_PROXY;
|
|
84
|
+
}
|
|
85
|
+
get CA_CERT() {
|
|
86
|
+
return this._CA_CERT;
|
|
87
|
+
}
|
|
17
88
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZGsvQmFzZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFZcEIsTUFBTSxPQUFPLFVBQVU7SUFDYixZQUFZLEdBQVcsRUFBRSxDQUFDO0lBQzFCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsU0FBUyxHQUFXLEVBQUUsQ0FBQyxDQUFHLHdCQUF3QjtJQUNsRCxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBQ3RCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFHLDJEQUEyRDtJQUVwRixZQUFZLE1BQW9CO1FBQzlCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWE7UUFDekIsT0FBTyxtQ0FBbUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELEtBQUssR0FBRyxDQUFDLENBQUM7UUFDdEYsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFhO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxPQUFPLENBQUMsVUFBa0I7UUFDNUIsSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLFVBQVUsS0FBSyxFQUFFO1lBQUUsT0FBTztRQUNwRCxJQUFJLENBQUM7WUFDRCxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQy9CLENBQUM7UUFBQyxPQUFNLENBQUMsRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztDQUNGIn0=
|
|
@@ -14,10 +14,13 @@ export class ComponentAlgorithmScanner extends BaseCryptographyScanner {
|
|
|
14
14
|
* @returns {AlgorithmResponse} A promise that resolves to an AlgorithmResponse containing detected cryptographic algorithms.
|
|
15
15
|
*/
|
|
16
16
|
async scan(req) {
|
|
17
|
-
const cryptographyService = new CryptographyService(this.config.getApikey(),
|
|
17
|
+
const cryptographyService = new CryptographyService(this.config.getApikey(), // API KEY
|
|
18
|
+
this.config.API_URL, // Destination Host
|
|
19
|
+
this.config.GRPC_PROXY, // Proxy Host
|
|
20
|
+
this.config.CA_CERT);
|
|
18
21
|
const results = await cryptographyService.getAlgorithms(req);
|
|
19
22
|
this.resultCollector.collectAlgorithmResults(results);
|
|
20
23
|
return results;
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50QWxnb3JpdGhtU2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0FsZ29yaXRobS9Db21wb25lbnRzL0NvbXBvbmVudEFsZ29yaXRobVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUVMLG1CQUFtQixFQUNwQixNQUFNLDRDQUE0QyxDQUFDO0FBRXBELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXhFOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8seUJBQ1gsU0FBUSx1QkFHWTtJQUVwQjs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQWdCO1FBQ2hDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxtQkFBbUIsQ0FDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxVQUFVO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQXFCLE1BQU0sbUJBQW1CLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIn0=
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
+
import { BaseConfig, IBaseConfig } from "../BaseConfig";
|
|
1
2
|
/**
|
|
2
3
|
* Represents a configuration for cryptography scanner.
|
|
3
4
|
*/
|
|
4
|
-
export declare class CryptoCfg {
|
|
5
|
+
export declare class CryptoCfg extends BaseConfig {
|
|
5
6
|
private readonly DEFAULT_THREADS;
|
|
6
7
|
private readonly algorithmRulesPath;
|
|
7
8
|
private readonly libraryRulesPath;
|
|
8
9
|
private readonly threads;
|
|
9
|
-
|
|
10
|
-
protected readonly proxy: string;
|
|
10
|
+
private readonly apiKey;
|
|
11
11
|
/**
|
|
12
12
|
* Creates an instance of CryptoCfg.
|
|
13
13
|
* @param {Object} cfg - Configuration object.
|
|
14
14
|
* @param {number} [cfg.threads=5] - The number of threads to use. Defaults to 5 if not provided.
|
|
15
15
|
* @param {string} [cfg.rulesPath] - Optional. Path to the cryptography rules file.
|
|
16
16
|
* @param {string} [cfg.apiKey] - Optional. SCANOSS API Key.
|
|
17
|
-
* @param {string} [cfg.proxy] - Optional. proxy.
|
|
18
17
|
*/
|
|
19
18
|
constructor(cfg: {
|
|
20
19
|
threads?: number;
|
|
@@ -22,7 +21,7 @@ export declare class CryptoCfg {
|
|
|
22
21
|
libraryRulesPath?: string;
|
|
23
22
|
apiKey?: string;
|
|
24
23
|
proxy?: string;
|
|
25
|
-
});
|
|
24
|
+
} & IBaseConfig);
|
|
26
25
|
/**
|
|
27
26
|
* Gets the path to the cryptography algorithm rules file.
|
|
28
27
|
* @returns The path to the cryptography rules file.
|
|
@@ -39,13 +38,8 @@ export declare class CryptoCfg {
|
|
|
39
38
|
**/
|
|
40
39
|
getNumberOfThreads(): number;
|
|
41
40
|
/**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
* Gets the API Key set.
|
|
42
|
+
* @returns The API Key.
|
|
43
|
+
**/
|
|
45
44
|
getApikey(): string;
|
|
46
|
-
/**
|
|
47
|
-
* Gets proxy.
|
|
48
|
-
* @returns proxy.
|
|
49
|
-
**/
|
|
50
|
-
getProxy(): string;
|
|
51
45
|
}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
|
+
import { BaseConfig } from "../BaseConfig";
|
|
1
2
|
/**
|
|
2
3
|
* Represents a configuration for cryptography scanner.
|
|
3
4
|
*/
|
|
4
|
-
export class CryptoCfg {
|
|
5
|
+
export class CryptoCfg extends BaseConfig {
|
|
5
6
|
DEFAULT_THREADS = 5;
|
|
6
7
|
algorithmRulesPath;
|
|
7
8
|
libraryRulesPath;
|
|
8
9
|
threads;
|
|
9
10
|
apiKey;
|
|
10
|
-
proxy;
|
|
11
11
|
/**
|
|
12
12
|
* Creates an instance of CryptoCfg.
|
|
13
13
|
* @param {Object} cfg - Configuration object.
|
|
14
14
|
* @param {number} [cfg.threads=5] - The number of threads to use. Defaults to 5 if not provided.
|
|
15
15
|
* @param {string} [cfg.rulesPath] - Optional. Path to the cryptography rules file.
|
|
16
16
|
* @param {string} [cfg.apiKey] - Optional. SCANOSS API Key.
|
|
17
|
-
* @param {string} [cfg.proxy] - Optional. proxy.
|
|
18
17
|
*/
|
|
19
18
|
constructor(cfg) {
|
|
19
|
+
super();
|
|
20
20
|
this.algorithmRulesPath = cfg.algorithmRulesPath;
|
|
21
21
|
this.libraryRulesPath = cfg.libraryRulesPath;
|
|
22
22
|
this.threads = cfg.threads ? Number(cfg.threads) : this.DEFAULT_THREADS;
|
|
23
23
|
this.apiKey = cfg.apiKey;
|
|
24
|
-
this.proxy = cfg.proxy;
|
|
25
24
|
}
|
|
26
25
|
/**
|
|
27
26
|
* Gets the path to the cryptography algorithm rules file.
|
|
@@ -45,18 +44,11 @@ export class CryptoCfg {
|
|
|
45
44
|
return this.threads;
|
|
46
45
|
}
|
|
47
46
|
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
* Gets the API Key set.
|
|
48
|
+
* @returns The API Key.
|
|
49
|
+
**/
|
|
51
50
|
getApikey() {
|
|
52
51
|
return this.apiKey;
|
|
53
52
|
}
|
|
54
|
-
/**
|
|
55
|
-
* Gets proxy.
|
|
56
|
-
* @returns proxy.
|
|
57
|
-
**/
|
|
58
|
-
getProxy() {
|
|
59
|
-
return this.proxy;
|
|
60
|
-
}
|
|
61
53
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBVSxTQUFRLFVBQVU7SUFFdEIsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUVuQixrQkFBa0IsQ0FBUztJQUUzQixnQkFBZ0IsQ0FBUztJQUV6QixPQUFPLENBQVM7SUFFaEIsTUFBTSxDQUFTO0lBR2pDOzs7Ozs7T0FNRztJQUNGLFlBQWEsR0FNQTtRQUNYLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN4RSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVGOzs7T0FHRztJQUNLLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUY7OztNQUdFO0lBQ0ssbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O1FBR0k7SUFDRyxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7Q0FFRiJ9
|
|
@@ -14,10 +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 cryptographyService = new CryptographyService(this.config.getApikey(),
|
|
17
|
+
const cryptographyService = new CryptographyService(this.config.getApikey(), // API KEY
|
|
18
|
+
this.config.API_URL, // Destination Host
|
|
19
|
+
this.config.GRPC_PROXY, // Proxy Host
|
|
20
|
+
this.config.CA_CERT);
|
|
18
21
|
const results = await cryptographyService.getEncryptionHints(req);
|
|
19
22
|
this.resultCollector.collectHintResults(results);
|
|
20
23
|
return results;
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50SGludFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IaW50L0NvbXBvbmVudHMvQ29tcG9uZW50SGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLG1CQUFtQixFQUNYLE1BQU0sNENBQTRDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFeEU7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxvQkFDWCxTQUFRLHVCQUdRO0lBRWhCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0I7UUFDaEMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLG1CQUFtQixDQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFVBQVU7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsbUJBQW1CO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLGFBQWE7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBRyxNQUFNLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIn0=
|
|
@@ -3,10 +3,13 @@ import { IDependencyResponse } from './DependencyTypes';
|
|
|
3
3
|
export declare class DependencyScanner {
|
|
4
4
|
private localDependency;
|
|
5
5
|
private grpcDependencyService;
|
|
6
|
+
private config;
|
|
6
7
|
constructor(cfg?: DependencyScannerCfg);
|
|
7
8
|
scanFolder(path: string): Promise<IDependencyResponse>;
|
|
8
9
|
scan(files: Array<string>): Promise<IDependencyResponse>;
|
|
10
|
+
private getDependencies;
|
|
9
11
|
private purlAdapter;
|
|
10
|
-
private
|
|
12
|
+
private chunkPurls;
|
|
13
|
+
private buildRequests;
|
|
11
14
|
private repairOutput;
|
|
12
15
|
}
|
|
@@ -5,21 +5,15 @@ import { DependencyScannerCfg } from './DependencyScannerCfg';
|
|
|
5
5
|
import { PackageURL } from 'packageurl-js';
|
|
6
6
|
import fs from 'fs';
|
|
7
7
|
import { Tree } from '../tree/Tree';
|
|
8
|
+
import { logger } from "../Logger";
|
|
8
9
|
export class DependencyScanner {
|
|
9
10
|
localDependency;
|
|
10
11
|
grpcDependencyService;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (cfg
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
let port;
|
|
17
|
-
if (!apiURL.port)
|
|
18
|
-
port = apiURL.protocol === 'https:' ? '443' : '80';
|
|
19
|
-
hostname = apiURL.host;
|
|
20
|
-
cfg.API_URL = `${hostname}:${port}`;
|
|
21
|
-
}
|
|
22
|
-
this.grpcDependencyService = new DependencyService(cfg.API_URL, cfg.GRPC_PROXY, cfg.CA_CERT_BUFF);
|
|
12
|
+
config = new DependencyScannerCfg();
|
|
13
|
+
constructor(cfg) {
|
|
14
|
+
if (cfg)
|
|
15
|
+
this.config = cfg;
|
|
16
|
+
this.grpcDependencyService = new DependencyService(this.config.API_URL, this.config.GRPC_PROXY, this.config.CA_CERT);
|
|
23
17
|
this.localDependency = new LocalDependencies();
|
|
24
18
|
}
|
|
25
19
|
async scanFolder(path) {
|
|
@@ -34,15 +28,43 @@ export class DependencyScanner {
|
|
|
34
28
|
if (localDependencies.files.length === 0)
|
|
35
29
|
return { filesList: [] };
|
|
36
30
|
localDependencies = this.purlAdapter(localDependencies);
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
const response = grpcResponse.toObject();
|
|
40
|
-
// Extract scope from localDependencies and add it to response
|
|
41
|
-
// Also adds the requirements field from localDependency to the response if the server didn't
|
|
42
|
-
// replay back a version
|
|
31
|
+
const requests = this.buildRequests(localDependencies);
|
|
32
|
+
const response = await this.getDependencies(requests);
|
|
43
33
|
this.repairOutput(localDependencies, response);
|
|
44
34
|
return response;
|
|
45
35
|
}
|
|
36
|
+
async getDependencies(requests) {
|
|
37
|
+
const responseMapper = new Map;
|
|
38
|
+
for (const request of requests) {
|
|
39
|
+
try {
|
|
40
|
+
const grpcResponse = await this.grpcDependencyService.get(request);
|
|
41
|
+
const file = grpcResponse.getFilesList()[0].getFile();
|
|
42
|
+
if (responseMapper.has(file)) {
|
|
43
|
+
responseMapper.get(file).getFilesList()[0].setDependenciesList(grpcResponse.getFilesList()[0].getDependenciesList());
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
responseMapper.set(file, grpcResponse);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
console.error(e);
|
|
51
|
+
logger.log(`Error while scanning dependencies.", ${request.getFilesList()[0].getFile()}, ${request.getFilesList()[0].getPurlsList()}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const response = {
|
|
55
|
+
filesList: [],
|
|
56
|
+
status: 'Success',
|
|
57
|
+
};
|
|
58
|
+
responseMapper.forEach((depResponse) => {
|
|
59
|
+
const responseToObj = depResponse.toObject();
|
|
60
|
+
response.filesList.push(responseToObj.filesList[0]);
|
|
61
|
+
// Override response status with dependency error/warning message if dependency failed
|
|
62
|
+
if (depResponse.getStatus().getStatus() !== 1) {
|
|
63
|
+
response.status = depResponse.getStatus().getMessage();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
return response;
|
|
67
|
+
}
|
|
46
68
|
purlAdapter(localDependencies) {
|
|
47
69
|
for (const file of localDependencies.files) {
|
|
48
70
|
for (const purl of file.purls) {
|
|
@@ -58,23 +80,35 @@ export class DependencyScanner {
|
|
|
58
80
|
}
|
|
59
81
|
return localDependencies;
|
|
60
82
|
}
|
|
61
|
-
|
|
83
|
+
chunkPurls(purls) {
|
|
84
|
+
const chunks = [];
|
|
85
|
+
for (let i = 0; i < purls.length; i += this.config.CHUNK_REQUEST_SIZE) {
|
|
86
|
+
chunks.push(purls.slice(i, i + this.config.CHUNK_REQUEST_SIZE));
|
|
87
|
+
}
|
|
88
|
+
return chunks;
|
|
89
|
+
}
|
|
90
|
+
buildRequests(localDependencies) {
|
|
62
91
|
try {
|
|
63
|
-
const
|
|
64
|
-
depRequest.setDepth(1);
|
|
92
|
+
const requests = [];
|
|
65
93
|
for (const file of localDependencies.files) {
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
94
|
+
const chunkedPurls = this.chunkPurls(file.purls);
|
|
95
|
+
for (const purls of chunkedPurls) {
|
|
96
|
+
const depRequest = new DependencyRequest();
|
|
97
|
+
depRequest.setDepth(1);
|
|
98
|
+
const fileMsg = new DependencyRequest.Files();
|
|
99
|
+
fileMsg.setFile(file.file);
|
|
100
|
+
for (const purl of purls) {
|
|
101
|
+
const purlMsg = new DependencyRequest.Purls();
|
|
102
|
+
purlMsg.setPurl(purl.purl);
|
|
103
|
+
if (purl?.requirement)
|
|
104
|
+
purlMsg.setRequirement(purl.requirement);
|
|
105
|
+
fileMsg.addPurls(purlMsg);
|
|
106
|
+
}
|
|
107
|
+
depRequest.addFiles(fileMsg);
|
|
108
|
+
requests.push(depRequest);
|
|
74
109
|
}
|
|
75
|
-
depRequest.addFiles(fileMsg);
|
|
76
110
|
}
|
|
77
|
-
return
|
|
111
|
+
return requests;
|
|
78
112
|
}
|
|
79
113
|
catch (e) {
|
|
80
114
|
console.error(e);
|
|
@@ -111,4 +145,4 @@ export class DependencyScanner {
|
|
|
111
145
|
}
|
|
112
146
|
}
|
|
113
147
|
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsaUJBQWlCLEdBRWxCLE1BQU0sc0VBQXNFLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5DLE1BQU0sT0FBTyxpQkFBaUI7SUFDcEIsZUFBZSxDQUFvQjtJQUVuQyxxQkFBcUIsQ0FBb0I7SUFFekMsTUFBTSxHQUF5QixJQUFJLG9CQUFvQixFQUFFLENBQUM7SUFFbEUsWUFBWSxHQUEwQjtRQUVwQyxJQUFJLEdBQUc7WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JILElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQVk7UUFDbEMsSUFBSSxDQUFDLENBQUMs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
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import { BaseConfig } from
|
|
1
|
+
import { BaseConfig, IBaseConfig } from "../BaseConfig";
|
|
2
|
+
export interface IDependencyScannerCfg extends IBaseConfig {
|
|
3
|
+
CHUNK_REQUEST_SIZE?: number;
|
|
4
|
+
}
|
|
2
5
|
export declare class DependencyScannerCfg extends BaseConfig {
|
|
3
|
-
|
|
6
|
+
private _CHUNK_REQUEST_SIZE;
|
|
7
|
+
constructor(config?: IDependencyScannerCfg);
|
|
8
|
+
get CHUNK_REQUEST_SIZE(): number;
|
|
9
|
+
set CHUNK_REQUEST_SIZE(value: number);
|
|
4
10
|
}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
import { BaseConfig } from
|
|
1
|
+
import { BaseConfig } from "../BaseConfig";
|
|
2
|
+
const DEFAULT_CHUNK_REQUEST_SIZE = 10;
|
|
2
3
|
export class DependencyScannerCfg extends BaseConfig {
|
|
3
|
-
|
|
4
|
+
_CHUNK_REQUEST_SIZE = DEFAULT_CHUNK_REQUEST_SIZE;
|
|
5
|
+
constructor(config) {
|
|
6
|
+
super(config);
|
|
7
|
+
if (config) {
|
|
8
|
+
this.CHUNK_REQUEST_SIZE = config.CHUNK_REQUEST_SIZE ? config.CHUNK_REQUEST_SIZE : DEFAULT_CHUNK_REQUEST_SIZE;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
get CHUNK_REQUEST_SIZE() {
|
|
12
|
+
return this._CHUNK_REQUEST_SIZE;
|
|
13
|
+
}
|
|
14
|
+
set CHUNK_REQUEST_SIZE(value) {
|
|
15
|
+
this._CHUNK_REQUEST_SIZE = value;
|
|
16
|
+
}
|
|
4
17
|
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXJDZmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lckNmZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO0FBTXRDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO0lBQzFDLG1CQUFtQixHQUFHLDBCQUEwQixDQUFDO0lBQ3pELFlBQVksTUFBOEI7UUFDeEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBRyxNQUFNLEVBQUMsQ0FBQztZQUNULElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUM7UUFDL0csQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0IsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztDQUVGIn0=
|
|
@@ -5,14 +5,36 @@ export interface PurlRequest extends CommonMessages.PurlRequest.AsObject {
|
|
|
5
5
|
export interface EchoRequest extends CommonMessages.EchoRequest.AsObject {
|
|
6
6
|
}
|
|
7
7
|
export declare class BaseService {
|
|
8
|
-
protected
|
|
9
|
-
protected
|
|
10
|
-
protected
|
|
11
|
-
protected
|
|
8
|
+
protected _HOSTNAME: string;
|
|
9
|
+
protected _API_TOKEN: string;
|
|
10
|
+
protected _IS_PREMIUM_SERVICE: boolean;
|
|
11
|
+
protected _SERVICE_NAME: string;
|
|
12
|
+
protected _CA_CERT: string;
|
|
13
|
+
protected _PROXY_URL: string;
|
|
14
|
+
constructor({ HOSTNAME, PROXY_URL, API_TOKEN, IS_PREMIUM_SERVICE, SERVICE_NAME, CA_CERT, }: {
|
|
15
|
+
HOSTNAME?: string;
|
|
16
|
+
PROXY_URL?: string;
|
|
17
|
+
API_TOKEN?: string;
|
|
18
|
+
IS_PREMIUM_SERVICE?: boolean;
|
|
19
|
+
SERVICE_NAME?: string;
|
|
20
|
+
CA_CERT?: string;
|
|
21
|
+
});
|
|
12
22
|
protected handleResponse(response: {
|
|
13
23
|
status: CommonMessages.StatusResponse.AsObject;
|
|
14
24
|
}): {};
|
|
15
25
|
protected buildGRPCPurlRequest(purlRequest: PurlRequest): CommonMessages.PurlRequest;
|
|
16
26
|
protected buildGRPCEchoRequest(echoRequest: EchoRequest): CommonMessages.EchoRequest;
|
|
17
27
|
protected generateChannelCredentials(): grpc.ChannelCredentials;
|
|
28
|
+
set SERVICE_NAME(serviceName: string);
|
|
29
|
+
get SERVICE_NAME(): string;
|
|
30
|
+
set HOSTNAME(host: string);
|
|
31
|
+
get HOSTNAME(): string;
|
|
32
|
+
set API_TOKEN(apiToken: string);
|
|
33
|
+
get API_TOKEN(): string;
|
|
34
|
+
set IS_PREMIUM_SERVICE(isPremiumService: boolean);
|
|
35
|
+
get IS_PREMIUM_SERVICE(): boolean;
|
|
36
|
+
set CA_CERT(caCertPath: string);
|
|
37
|
+
get CA_CERT(): string;
|
|
38
|
+
set PROXY_URL(proxyURL: string);
|
|
39
|
+
get PROXY_URL(): string;
|
|
18
40
|
}
|