scanoss 0.29.0 → 0.30.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/assets/ReportHTMLTemplate/index.html +5 -2
- package/build/main/index.js +1 -2
- package/build/main/sdk/Clients/Dependency/IDependencyClient.d.ts +1 -2
- package/build/main/sdk/Clients/http/HttpClient.d.ts +1 -1
- package/build/main/sdk/Clients/http/HttpClient.js +36 -17
- package/build/main/sdk/Cryptography/CryptographyTypes.d.ts +1 -0
- package/build/main/sdk/Decompress/DecompressionManager.js +3 -2
- package/build/main/sdk/Dependencies/DependencyScanner.d.ts +3 -3
- package/build/main/sdk/Dependencies/DependencyScanner.js +1 -1
- package/build/main/sdk/Dependencies/DependencyTypes.d.ts +8 -18
- package/build/main/sdk/Report/DataLayer/DataLayerTypes.d.ts +1 -0
- package/build/main/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.d.ts +7 -2
- package/build/main/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.js +9 -49
- package/build/main/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.js +2 -1
- package/build/main/sdk/Utils/Utils.d.ts +1 -1
- package/build/main/sdk/Utils/Utils.js +3 -19
- package/build/main/sdk/scanner/Dispatcher/Dispatcher.js +36 -11
- package/build/main/tsconfig.tsbuildinfo +1 -1
- package/build/module/index.js +1 -2
- package/build/module/sdk/Clients/Dependency/IDependencyClient.d.ts +1 -2
- package/build/module/sdk/Clients/http/HttpClient.d.ts +1 -1
- package/build/module/sdk/Clients/http/HttpClient.js +35 -16
- package/build/module/sdk/Cryptography/CryptographyTypes.d.ts +1 -0
- package/build/module/sdk/Decompress/DecompressionManager.js +3 -2
- package/build/module/sdk/Dependencies/DependencyScanner.d.ts +3 -3
- package/build/module/sdk/Dependencies/DependencyScanner.js +1 -1
- package/build/module/sdk/Dependencies/DependencyTypes.d.ts +8 -18
- package/build/module/sdk/Report/DataLayer/DataLayerTypes.d.ts +1 -0
- package/build/module/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.d.ts +7 -2
- package/build/module/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.js +9 -49
- package/build/module/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.js +2 -1
- package/build/module/sdk/Utils/Utils.d.ts +1 -1
- package/build/module/sdk/Utils/Utils.js +3 -19
- package/build/module/sdk/scanner/Dispatcher/Dispatcher.js +34 -11
- package/build/module/tsconfig.module.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -3,7 +3,7 @@ import { Transport } from '../Transport/Transport';
|
|
|
3
3
|
import FormData from 'form-data';
|
|
4
4
|
import { ClientConfig } from "../interfaces/ClientConfig";
|
|
5
5
|
export declare class HttpClient extends Transport<Response> {
|
|
6
|
-
private
|
|
6
|
+
private proxyAgent;
|
|
7
7
|
protected cfg: ClientConfig;
|
|
8
8
|
constructor(cfg?: ClientConfig);
|
|
9
9
|
private init;
|
|
@@ -2,6 +2,7 @@ import fetch from 'node-fetch';
|
|
|
2
2
|
import { ProxyAgent } from 'proxy-agent';
|
|
3
3
|
import { Transport } from '../Transport/Transport';
|
|
4
4
|
import { Utils } from '../../Utils/Utils';
|
|
5
|
+
import { logger } from "../../Logger/Logger";
|
|
5
6
|
export class HttpClient extends Transport {
|
|
6
7
|
proxyAgent;
|
|
7
8
|
cfg;
|
|
@@ -9,7 +10,6 @@ export class HttpClient extends Transport {
|
|
|
9
10
|
super();
|
|
10
11
|
this.cfg = cfg;
|
|
11
12
|
this.init();
|
|
12
|
-
this.proxyAgent = new ProxyAgent();
|
|
13
13
|
}
|
|
14
14
|
init() {
|
|
15
15
|
const PAC_URL = this.cfg?.PAC_PROXY ? `pac+${this.cfg.PAC_PROXY.trim()}` : null;
|
|
@@ -17,21 +17,40 @@ export class HttpClient extends Transport {
|
|
|
17
17
|
HTTP_PROXY: PAC_URL || this.cfg?.HTTP_PROXY || '',
|
|
18
18
|
HTTPS_PROXY: PAC_URL || this.cfg?.HTTPS_PROXY || '',
|
|
19
19
|
NO_PROXY: this.cfg?.NO_PROXY ? this.cfg?.NO_PROXY : null,
|
|
20
|
-
CA_CERT: this.cfg?.CA_CERT || null,
|
|
21
|
-
IGNORE_CERT_ERRORS: this.cfg?.IGNORE_CERT_ERRORS
|
|
20
|
+
CA_CERT: this.cfg?.CA_CERT || process.env.NODE_EXTRA_CA_CERTS || null,
|
|
21
|
+
IGNORE_CERT_ERRORS: this.cfg?.IGNORE_CERT_ERRORS ?? process.env.NODE_TLS_REJECT_UNAUTHORIZED === '0'
|
|
22
22
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
23
|
+
// Build TLS options
|
|
24
|
+
const caCerts = proxyConfig.CA_CERT ? Utils.readCaCertsFromFile(proxyConfig.CA_CERT) : undefined;
|
|
25
|
+
logger.debug(`[${this.constructor.name}] TLS Config:', {
|
|
26
|
+
ignoreCertErrors: ${proxyConfig.IGNORE_CERT_ERRORS},
|
|
27
|
+
rejectUnauthorized: ${!this.cfg.IGNORE_CERT_ERRORS},
|
|
28
|
+
caCertPath: ${this.cfg.CA_CERT || 'not set'},
|
|
29
|
+
hasCaCerts: ${!!caCerts || 'not set'}
|
|
30
|
+
}`);
|
|
31
|
+
logger.debug(`[${this.constructor.name}] Proxy Config:', {
|
|
32
|
+
HTTP_PROXY: ${this.cfg.HTTP_PROXY || 'no set'},
|
|
33
|
+
HTTPS_PROXY: ${this.cfg.HTTPS_PROXY || 'no set'},
|
|
34
|
+
ENV_HTTP_PROXY: ${process.env.HTTP_PROXY || 'no set'},
|
|
35
|
+
ENV_HTTPS_PROXY: ${process.env.HTTPS_PROXY || 'no set'}
|
|
36
|
+
}`);
|
|
37
|
+
// TLS options at root level are passed to proxy agents (http-proxy-agent, https-proxy-agent)
|
|
38
|
+
// httpsAgent is only used when NO proxy is configured
|
|
39
|
+
this.proxyAgent = new ProxyAgent({
|
|
40
|
+
rejectUnauthorized: !proxyConfig.IGNORE_CERT_ERRORS,
|
|
41
|
+
ca: caCerts,
|
|
42
|
+
getProxyForUrl: (url) => {
|
|
43
|
+
const isHttps = url.startsWith('https');
|
|
44
|
+
let proxyUrl = isHttps
|
|
45
|
+
? (proxyConfig.HTTPS_PROXY || process.env.HTTPS_PROXY)
|
|
46
|
+
: (proxyConfig.HTTP_PROXY || process.env.HTTP_PROXY);
|
|
47
|
+
// Add http:// protocol if missing (required for URL parsing)
|
|
48
|
+
if (proxyUrl && !proxyUrl.startsWith('http://') && !proxyUrl.startsWith('https://')) {
|
|
49
|
+
proxyUrl = `http://${proxyUrl}`;
|
|
50
|
+
}
|
|
51
|
+
return proxyUrl || null;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
35
54
|
}
|
|
36
55
|
async get(url) {
|
|
37
56
|
return await fetch(url, {
|
|
@@ -82,4 +101,4 @@ export class HttpClient extends Transport {
|
|
|
82
101
|
return this.cfg.HOST_URL;
|
|
83
102
|
}
|
|
84
103
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ2xpZW50cy9odHRwL0h0dHBDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFtQixNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzdDLE1BQU0sT0FBTyxVQUFXLFNBQVEsU0FBbUI7SUFFdkMsVUFBVSxDQUFhO0lBQ3JCLEdBQUcsQ0FBZTtJQUU1QixZQUFZLEdBQWtCO1FBQzVCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU8sSUFBSTtRQUNWLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNoRixNQUFNLFdBQVcsR0FBRztZQUNsQixVQUFVLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxJQUFJLEVBQUU7WUFDakQsV0FBVyxFQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsSUFBSSxFQUFFO1lBQ3BELFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFD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
|
|
@@ -59,7 +59,8 @@ export class DecompressionManager {
|
|
|
59
59
|
}
|
|
60
60
|
catch (e) {
|
|
61
61
|
await fs.promises.rm(newFolderPath, { recursive: true, force: true });
|
|
62
|
-
|
|
62
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
63
|
+
throw new Error(`${message}\n\nFailed to extract: "${archivePath}"`);
|
|
63
64
|
}
|
|
64
65
|
break;
|
|
65
66
|
}
|
|
@@ -74,4 +75,4 @@ export class DecompressionManager {
|
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjb21wcmVzc2lvbk1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlY29tcHJlc3MvRGVjb21wcmVzc2lvbk1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFN0QsTUFBTSxPQUFPLG9CQUFvQjtJQUV2QixnQkFBZ0IsQ0FBcUI7SUFFckMsa0JBQWtCLENBQVM7SUFFM0IsTUFBTSxDQUFTO0lBRWYsa0JBQWtCLENBQVUsQ0FBRSxrRkFBa0Y7SUFDbEYsaUhBQWlIO0lBRXZKLFlBQVkscUJBQTZCLENBQUMsRUFBRSxTQUFpQixXQUFXLEVBQUUscUJBQThCLEtBQUs7UUFDM0csSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQzdDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDdEIsSUFBSSxhQUFhLEVBQUU7WUFDbkIsSUFBSSxhQUFhLEVBQUU7U0FDcEIsQ0FBQztJQUVKLENBQUM7SUFFTSxlQUFlLENBQUMsQ0FBZTtRQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFD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
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { DependencyScannerCfg } from './DependencyScannerCfg';
|
|
2
|
-
import {
|
|
2
|
+
import { IDependencyResponse } from "./DependencyTypes";
|
|
3
3
|
export declare class DependencyScanner {
|
|
4
4
|
private localDependency;
|
|
5
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<IDependencyResponse>;
|
|
9
|
+
scan(files: Array<string>): Promise<IDependencyResponse>;
|
|
10
10
|
private getDependencies;
|
|
11
11
|
private purlAdapter;
|
|
12
12
|
private chunkPurls;
|
|
@@ -171,4 +171,4 @@ export class DependencyScanner {
|
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQVdsRixNQUFNLE9BQU8saUJBQWlCO0lBQ3BCLGVBQWUsQ0FBb0I7SUFFbkMsZ0JBQWdCLENBQW9CO0lBRXBDLE1BQU0sR0FBeUIsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO0lBRWxFLFlBQVksR0FBMEI7UUFDcEMsSUFBSSxHQUFHO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7O1lBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBRTlDLE1BQU0sU0FBUyxHQUFpQjtZQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzVCLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVU7WUFDbEMsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVztZQUNwQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQzlCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDNUIsa0JBQWtCLEVBQUUs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
|
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
spdxId: string;
|
|
4
|
-
isSpdxApproved: boolean;
|
|
1
|
+
import { Dependency, DependencyFile, DependencyResponse, License } from "../Clients/Dependency/IDependencyClient";
|
|
2
|
+
export interface IDependencyLicense extends License {
|
|
5
3
|
}
|
|
6
|
-
export interface
|
|
7
|
-
component: string;
|
|
8
|
-
purl: string;
|
|
9
|
-
version?: string;
|
|
10
|
-
requirement?: string;
|
|
4
|
+
export interface IDependency extends Omit<Dependency, 'licensesList'> {
|
|
11
5
|
scope?: string;
|
|
12
|
-
licensesList:
|
|
6
|
+
licensesList: IDependencyLicense[];
|
|
13
7
|
}
|
|
14
|
-
export interface
|
|
15
|
-
|
|
16
|
-
id: string;
|
|
17
|
-
status: string;
|
|
18
|
-
dependenciesList: DependenciesList[];
|
|
8
|
+
export interface IDependencyFile extends Omit<DependencyFile, 'dependenciesList'> {
|
|
9
|
+
dependenciesList: IDependency[];
|
|
19
10
|
}
|
|
20
|
-
export interface IDependencyResponse {
|
|
21
|
-
filesList:
|
|
22
|
-
status?: string;
|
|
11
|
+
export interface IDependencyResponse extends Omit<DependencyResponse, 'filesList'> {
|
|
12
|
+
filesList: IDependencyFile[];
|
|
23
13
|
}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { DataProvider, IDataLayers } from '../DataLayerTypes';
|
|
2
2
|
import { ScannerResults } from '../../../scanner/ScannerTypes';
|
|
3
3
|
import { DependencyResponse } from "../../../Clients/Dependency/IDependencyClient";
|
|
4
|
+
/**
|
|
5
|
+
* @param scanRawResults - Raw results from scanner
|
|
6
|
+
* @param {DependencyResponse} [dependencies] - Deprecated: This parameter is no longer used
|
|
7
|
+
*/
|
|
4
8
|
export declare class ComponentDataProvider implements DataProvider {
|
|
5
9
|
private scanRawResults;
|
|
6
10
|
private componentList;
|
|
7
11
|
private dependencies;
|
|
8
|
-
constructor(scanRawResults: ScannerResults,
|
|
12
|
+
constructor(scanRawResults: ScannerResults,
|
|
13
|
+
/** @deprecated No longer used */
|
|
14
|
+
dependencies?: DependencyResponse);
|
|
9
15
|
getLayerName(): string;
|
|
10
16
|
getData(): Promise<IDataLayers>;
|
|
11
|
-
private parseComponentsFromDependencies;
|
|
12
17
|
private parseComponentsFromScanner;
|
|
13
18
|
}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param scanRawResults - Raw results from scanner
|
|
3
|
+
* @param {DependencyResponse} [dependencies] - Deprecated: This parameter is no longer used
|
|
4
|
+
*/
|
|
1
5
|
export class ComponentDataProvider {
|
|
2
6
|
scanRawResults;
|
|
3
7
|
componentList;
|
|
4
8
|
dependencies;
|
|
5
|
-
constructor(scanRawResults,
|
|
9
|
+
constructor(scanRawResults,
|
|
10
|
+
/** @deprecated No longer used */
|
|
11
|
+
dependencies) {
|
|
6
12
|
this.scanRawResults = scanRawResults;
|
|
7
13
|
this.dependencies = dependencies;
|
|
8
14
|
}
|
|
@@ -18,11 +24,7 @@ export class ComponentDataProvider {
|
|
|
18
24
|
this.componentList = Object.values(this.scanRawResults).flat();
|
|
19
25
|
this.componentList = this.componentList.filter((component) => component.id !== 'none');
|
|
20
26
|
const scannerComponentLayer = this.parseComponentsFromScanner(this.componentList);
|
|
21
|
-
|
|
22
|
-
componentLayer.component = [
|
|
23
|
-
...scannerComponentLayer,
|
|
24
|
-
...dependenciesComponentLayer,
|
|
25
|
-
].sort((itemA, itemB) => {
|
|
27
|
+
componentLayer.component = scannerComponentLayer.sort((itemA, itemB) => {
|
|
26
28
|
if (itemA.name < itemB.name)
|
|
27
29
|
return -1;
|
|
28
30
|
else if (itemA.name > itemB.name)
|
|
@@ -33,48 +35,6 @@ export class ComponentDataProvider {
|
|
|
33
35
|
componentLayer.component = null;
|
|
34
36
|
return componentLayer;
|
|
35
37
|
}
|
|
36
|
-
parseComponentsFromDependencies(dependencies) {
|
|
37
|
-
const componentLayer = [];
|
|
38
|
-
if (!dependencies)
|
|
39
|
-
return componentLayer;
|
|
40
|
-
dependencies.filesList.forEach((file) => {
|
|
41
|
-
file.dependenciesList.forEach((dependency) => {
|
|
42
|
-
const newComponent = {};
|
|
43
|
-
newComponent.key = dependency.purl;
|
|
44
|
-
newComponent.purls = [dependency.purl];
|
|
45
|
-
newComponent.name = dependency.component;
|
|
46
|
-
newComponent.url = null;
|
|
47
|
-
newComponent.vendor = null;
|
|
48
|
-
newComponent.health = null;
|
|
49
|
-
newComponent.versions = [
|
|
50
|
-
{
|
|
51
|
-
version: dependency.version,
|
|
52
|
-
licenses: dependency.licensesList.map((license) => license.spdxId),
|
|
53
|
-
copyrights: null,
|
|
54
|
-
cryptography: null,
|
|
55
|
-
quality: null,
|
|
56
|
-
},
|
|
57
|
-
];
|
|
58
|
-
const existingComponent = componentLayer.find((component) => component.key === newComponent.key);
|
|
59
|
-
if (existingComponent) {
|
|
60
|
-
const existingVersion = existingComponent.versions.find((version) => version.version === newComponent.versions[0].version);
|
|
61
|
-
if (!existingVersion)
|
|
62
|
-
existingComponent.versions.push({
|
|
63
|
-
version: newComponent.versions[0].version,
|
|
64
|
-
licenses: newComponent.versions[0].licenses,
|
|
65
|
-
copyrights: newComponent.versions[0].copyrights,
|
|
66
|
-
quality: null,
|
|
67
|
-
cryptography: null,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
//Component does not exist, insert as it is.
|
|
72
|
-
componentLayer.push(newComponent);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
return componentLayer;
|
|
77
|
-
}
|
|
78
38
|
parseComponentsFromScanner(scanComponents) {
|
|
79
39
|
const componentLayer = [];
|
|
80
40
|
if (!scanComponents)
|
|
@@ -170,4 +130,4 @@ export class ComponentDataProvider {
|
|
|
170
130
|
return componentLayer;
|
|
171
131
|
}
|
|
172
132
|
}
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50RGF0YVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9SZXBvcnQvRGF0YUxheWVyL0RhdGFQcm92aWRlcnMvQ29tcG9uZW50RGF0YVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBOzs7R0FHRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsY0FBYyxDQUFpQjtJQUUvQixhQUFhLENBQTBCO0lBRXZDLFlBQVksQ0FBcUI7SUFFekMsWUFDRSxjQUE4QjtJQUM5QixpQ0FBaUM7SUFDakMsWUFBaUM7UUFFakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsTUFBTSxjQUFjLEdBQWdCLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBRXhELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPLGNBQWMsQ0FBQztRQUV0RSxxRkFBcUY7UUFDckYsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUN2QyxDQUFDO1FBQ0YsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQzNELElBQUksQ0FBQyxhQUFhLENBQ25CLENB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
|
|
@@ -30,6 +30,7 @@ export class DependencyDataProvider {
|
|
|
30
30
|
licenses: newLicenses,
|
|
31
31
|
version: dependency.version,
|
|
32
32
|
component: dependency.component,
|
|
33
|
+
url: dependency.url
|
|
33
34
|
});
|
|
34
35
|
});
|
|
35
36
|
dependencyLayer.push({ file: file.file, dependencies: newDependencies });
|
|
@@ -37,4 +38,4 @@ export class DependencyDataProvider {
|
|
|
37
38
|
return dependencyLayer;
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeURhdGFQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvUmVwb3J0L0RhdGFMYXllci9EYXRhUHJvdmlkZXJzL0RlcGVuZGVuY3lEYXRhUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFPLHNCQUFzQjtJQUN6QixZQUFZLENBQXFCO0lBRXpDLFlBQVksWUFBZ0M7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsTUFBTSxlQUFlLEdBQWdCLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU8sZUFBZSxDQUFDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkUsZUFBZSxDQUFDLFlBQVksR0FBRyxjQUFjLENBQUM7UUFDOUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUN0QyxlQUFlLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUV0QyxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRU0sbUJBQW1CLENBQ3hCLFlBQWdDO1FBRWhDLE1BQU0sZUFBZSxHQUErQixFQUFFLENBQUM7UUFFdkQsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QyxNQUFNLGVBQWUsR0FBc0IsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxXQUFXLEdBQW1CLEVBQUUsQ0FBQztnQkFDdkMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDMUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDbkUsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsZUFBZSxDQUFDLElBQUksQ0FBQztvQkFDbkIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO29CQUNyQixRQUFRLEVBQUUsV0FBVztvQkFDckIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO29CQUMzQixTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7b0JBQy9CLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRztpQkFDcEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0NBQ0YifQ==
|
|
@@ -1,32 +1,16 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
|
-
import tls from 'tls';
|
|
3
2
|
export class Utils {
|
|
4
3
|
static PackageJSON = null;
|
|
5
4
|
// This function takes inspiration from https://www.npmjs.com/package/syswide-cas
|
|
6
5
|
// Copyright 2016 Capriza. Code released under the MIT license
|
|
7
|
-
static
|
|
8
|
-
const rootCAs = [];
|
|
6
|
+
static readCaCertsFromFile(file) {
|
|
9
7
|
let content = fs.readFileSync(file, { encoding: "utf-8" }).trim();
|
|
10
8
|
content = content.replace(/\r\n/g, "\n"); // Handles certificates that have been created in Windows
|
|
11
9
|
const regex = /-----BEGIN CERTIFICATE-----\n[\s\S]+?\n-----END CERTIFICATE-----/g;
|
|
12
10
|
const results = content.match(regex);
|
|
13
11
|
if (!results)
|
|
14
12
|
throw new Error("Could not parse certificate");
|
|
15
|
-
results.
|
|
16
|
-
const cert = match.trim();
|
|
17
|
-
rootCAs.push(cert);
|
|
18
|
-
});
|
|
19
|
-
const origCreateSecureContext = tls.createSecureContext;
|
|
20
|
-
tls.createSecureContext = function (options) {
|
|
21
|
-
var c = origCreateSecureContext.apply(null, arguments);
|
|
22
|
-
if (!options.ca && rootCAs.length > 0) {
|
|
23
|
-
rootCAs.forEach(function (ca) {
|
|
24
|
-
// add to the created context our own root CAs
|
|
25
|
-
c.context.addCACert(ca);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
return c;
|
|
29
|
-
};
|
|
13
|
+
return results.map(match => match.trim());
|
|
30
14
|
}
|
|
31
15
|
static getPackageVersion() {
|
|
32
16
|
if (!this.PackageJSON) {
|
|
@@ -47,4 +31,4 @@ export class Utils {
|
|
|
47
31
|
return this.PackageJSON?.version ? this.PackageJSON.version : '';
|
|
48
32
|
}
|
|
49
33
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL1V0aWxzL1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUdwQixNQUFNLE9BQU8sS0FBSztJQUNSLE1BQU0sQ0FBQyxXQUFXLEdBQVEsSUFBSSxDQUFDO0lBRXZDLGlGQUFpRjtJQUNqRiw4REFBOEQ7SUFDdkQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQVk7UUFDNUMsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyx5REFBeUQ7UUFDbkcsTUFBTSxLQUFLLEdBQUcsbUVBQW1FLENBQUM7UUFDbEYsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUM3RCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QixNQUFNLHdCQUF3QixHQUFHO2dCQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLENBQUM7YUFDOUMsQ0FBQztZQUNGLEtBQUssTUFBTSxlQUFlLElBQUksd0JBQXdCLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxDQUFDO29CQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDO2dCQUNkLElBQUksSUFBSSxDQUFDLFdBQVc7b0JBQUUsTUFBTTtZQUM5QixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDbEUsQ0FBQyJ9
|
|
@@ -9,6 +9,7 @@ import { ScannerCfg } from '../ScannerCfg';
|
|
|
9
9
|
import { GlobalControllerAborter } from './GlobalControllerAborter';
|
|
10
10
|
import { Utils } from '../../Utils/Utils';
|
|
11
11
|
import { ProxyAgent } from "proxy-agent";
|
|
12
|
+
import { logger } from "../../Logger/Logger";
|
|
12
13
|
const MAX_CONCURRENT_REQUEST = 30;
|
|
13
14
|
var ERRORS;
|
|
14
15
|
(function (ERRORS) {
|
|
@@ -31,17 +32,39 @@ export class Dispatcher extends EventEmitter {
|
|
|
31
32
|
this.init();
|
|
32
33
|
}
|
|
33
34
|
init() {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
process.env.HTTPS_PROXY = process.env.HTTPS_PROXY || this.scannerCfg.HTTPS_PROXY;
|
|
37
|
-
this.proxyAgent = new ProxyAgent();
|
|
35
|
+
// Build TLS options with env fallbacks
|
|
36
|
+
const ignoreCertErrors = this.scannerCfg.IGNORE_CERT_ERRORS ?? process.env.NODE_TLS_REJECT_UNAUTHORIZED === '0';
|
|
38
37
|
const caCertPath = this.scannerCfg.CA_CERT || process.env.NODE_EXTRA_CA_CERTS;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
38
|
+
const caCerts = caCertPath ? Utils.readCaCertsFromFile(caCertPath) : undefined;
|
|
39
|
+
logger.debug(`[Dispatcher] TLS Config:', {
|
|
40
|
+
${ignoreCertErrors},
|
|
41
|
+
rejectUnauthorized: ${!ignoreCertErrors},
|
|
42
|
+
caCertPath: ${caCertPath || 'not set'},
|
|
43
|
+
hasCaCerts: ${!!caCerts}
|
|
44
|
+
}`);
|
|
45
|
+
logger.debug(`[Dispatcher] Proxy Config:', {
|
|
46
|
+
HTTP_PROXY: ${this.scannerCfg.HTTP_PROXY || 'no set'},
|
|
47
|
+
HTTPS_PROXY: ${this.scannerCfg.HTTPS_PROXY || 'no set'},
|
|
48
|
+
ENV_HTTP_PROXY: ${process.env.HTTP_PROXY || 'no set'},
|
|
49
|
+
ENV_HTTPS_PROXY: ${process.env.HTTPS_PROXY || 'no set'}
|
|
50
|
+
}`);
|
|
51
|
+
// TLS options at root level are passed to proxy agents (http-proxy-agent, https-proxy-agent)
|
|
52
|
+
// httpsAgent is only used when NO proxy is configured
|
|
53
|
+
this.proxyAgent = new ProxyAgent({
|
|
54
|
+
rejectUnauthorized: !ignoreCertErrors,
|
|
55
|
+
ca: caCerts,
|
|
56
|
+
getProxyForUrl: (url) => {
|
|
57
|
+
const isHttps = url.startsWith('https');
|
|
58
|
+
let proxyUrl = isHttps
|
|
59
|
+
? (this.scannerCfg?.HTTPS_PROXY || process.env.HTTPS_PROXY)
|
|
60
|
+
: (this.scannerCfg?.HTTP_PROXY || process.env.HTTP_PROXY);
|
|
61
|
+
// Add http:// protocol if missing (required for URL parsing)
|
|
62
|
+
if (proxyUrl && !proxyUrl.startsWith('http://') && !proxyUrl.startsWith('https://')) {
|
|
63
|
+
proxyUrl = `http://${proxyUrl}`;
|
|
64
|
+
}
|
|
65
|
+
return proxyUrl || null;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
45
68
|
this.pQueue = new PQueue({
|
|
46
69
|
concurrency: this.scannerCfg.CONCURRENCY_LIMIT,
|
|
47
70
|
});
|
|
@@ -155,4 +178,4 @@ export class Dispatcher extends EventEmitter {
|
|
|
155
178
|
}
|
|
156
179
|
}
|
|
157
180
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLHlDQUF5QztBQUN6QyxPQUFPLFlBQVksTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFtQixNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzdDLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBRWxDLElBQUssTUFJSjtBQUpELFdBQUssTUFBTTtJQUNULHVCQUFhLENBQUE7SUFDYix5Q0FBK0IsQ0FBQTtJQUMvQiw2QkFBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSkksTUFBTSxLQUFOLE1BQU0sUUFJVjtBQUVELE1BQU0sT0FBTyxVQUFXLFNBQVEsWUFBWTtJQUNsQyxVQUFVLENBQWE7SUFFdkIsTUFBTSxDQUFDO0lBRVAscUJBQXFCLENBQTBCO0lBRS9DLG9CQUFvQixDQUFVO0lBRTlCLG9CQUFvQixDQUFVO0lBRTlCLFVBQVUsQ0FBYztJQUVoQyxZQUFZLFVBQVUsR0FBRyxJQUFJLFVBQVUsRUFBRTtRQUN2QyxLQUFLLEVBQUUs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
|