scanoss 0.4.10-beta → 0.4.12-beta
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/.idea/workspace.xml +22 -18
- package/build/main/cli/bin/cli-bin.js +5 -5
- package/build/main/cli/commands/wfp.d.ts +1 -0
- package/build/main/cli/commands/wfp.js +54 -0
- package/build/main/sdk/scanner/Dispatcher/Dispatcher.js +1 -1
- package/build/main/sdk/scanner/Scanner.js +3 -3
- package/build/main/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +1 -1
- package/build/main/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +33 -31
- package/build/main/tsconfig.tsbuildinfo +21 -21
- package/build/module/cli/bin/cli-bin.js +5 -5
- package/build/module/cli/commands/wfp.d.ts +1 -0
- package/build/module/cli/commands/wfp.js +48 -0
- package/build/module/sdk/scanner/Scanner.js +3 -3
- package/build/module/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +1 -1
- package/build/module/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +33 -31
- package/build/module/tsconfig.module.tsbuildinfo +21 -21
- package/package-lock.json +67 -493
- package/package.json +1 -1
- package/src/cli/bin/cli-bin.ts +4 -4
- package/src/cli/commands/{fingerprint.ts → wfp.ts} +1 -1
- package/src/sdk/scanner/Scanner.ts +2 -2
- package/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts +36 -32
- package/tests/scanoss.sh +3 -8
- package/tests/sdk/Scanner/WfpProvider/WfpSplitter/WfpSplitter.spec.ts +0 -2
- package/yarn.lock +4886 -4737
- package/build/main/cli/commands/fingerprint.d.ts +0 -1
- package/build/main/cli/commands/fingerprint.js +0 -54
- package/build/main/sdk/Decompress/DecompressionManager.d.ts +0 -12
- package/build/main/sdk/Decompress/DecompressionManager.js +0 -65
- package/build/main/sdk/Decompress/Decompressor/DecompressTgz.d.ts +0 -5
- package/build/main/sdk/Decompress/Decompressor/DecompressTgz.js +0 -22
- package/build/main/sdk/Decompress/Decompressor/DecompressZips.d.ts +0 -5
- package/build/main/sdk/Decompress/Decompressor/DecompressZips.js +0 -24
- package/build/main/sdk/Decompress/Decompressor/Decompressor.d.ts +0 -10
- package/build/main/sdk/Decompress/Decompressor/Decompressor.js +0 -18
- package/build/main/sdk/modules/reports/Report.d.ts +0 -24
- package/build/main/sdk/modules/reports/Report.js +0 -75
- package/build/main/sdk/modules/reports/ReportAdapter.d.ts +0 -12
- package/build/main/sdk/modules/reports/ReportAdapter.js +0 -117
- package/build/main/sdk/modules/reports/htmlReport/HTMLReport.d.ts +0 -14
- package/build/main/sdk/modules/reports/htmlReport/HTMLReport.js +0 -39
- package/build/main/sdk/modules/reports/types.d.ts +0 -44
- package/build/main/sdk/modules/reports/types.js +0 -8
- package/build/main/sdk/tree/Filters/DecompressionFilter.d.ts +0 -7
- package/build/main/sdk/tree/Filters/DecompressionFilter.js +0 -21
- package/build/module/cli/commands/fingerprint.d.ts +0 -1
- package/build/module/cli/commands/fingerprint.js +0 -48
- package/build/module/sdk/Decompress/DecompressionManager.d.ts +0 -12
- package/build/module/sdk/Decompress/DecompressionManager.js +0 -59
- package/build/module/sdk/Decompress/Decompressor/DecompressTgz.d.ts +0 -5
- package/build/module/sdk/Decompress/Decompressor/DecompressTgz.js +0 -16
- package/build/module/sdk/Decompress/Decompressor/DecompressZips.d.ts +0 -5
- package/build/module/sdk/Decompress/Decompressor/DecompressZips.js +0 -18
- package/build/module/sdk/Decompress/Decompressor/Decompressor.d.ts +0 -10
- package/build/module/sdk/Decompress/Decompressor/Decompressor.js +0 -15
- package/build/module/sdk/modules/reports/Report.d.ts +0 -24
- package/build/module/sdk/modules/reports/Report.js +0 -80
- package/build/module/sdk/modules/reports/ReportAdapter.d.ts +0 -12
- package/build/module/sdk/modules/reports/ReportAdapter.js +0 -115
- package/build/module/sdk/modules/reports/htmlReport/HTMLReport.d.ts +0 -14
- package/build/module/sdk/modules/reports/htmlReport/HTMLReport.js +0 -41
- package/build/module/sdk/modules/reports/types.d.ts +0 -44
- package/build/module/sdk/modules/reports/types.js +0 -6
- package/build/module/sdk/tree/Filters/DecompressionFilter.d.ts +0 -7
- package/build/module/sdk/tree/Filters/DecompressionFilter.js +0 -18
- package/build/tsconfig.module.tsbuildinfo +0 -1
- package/build/tsconfig.tsbuildinfo +0 -1
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import cliProgress from 'cli-progress';
|
|
3
|
-
import { isFolder } from './helpers';
|
|
4
|
-
import { ScannerEvents, WinnowingMode } from '../../sdk/scanner/ScannerTypes';
|
|
5
|
-
import { WfpCalculator } from '../../sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator';
|
|
6
|
-
import { Tree } from '../../sdk/tree/Tree';
|
|
7
|
-
import { DependencyFilter } from '../../sdk/tree/Filters/DependencyFilter';
|
|
8
|
-
export async function fingerprintHandler(rootPath, options) {
|
|
9
|
-
rootPath = rootPath.replace(/\/$/, ''); // Remove trailing slash if exists
|
|
10
|
-
rootPath = rootPath.replace(/^\./, process.env.PWD); // Convert relative path to absolute path.
|
|
11
|
-
const pathIsFolder = await isFolder(rootPath);
|
|
12
|
-
const wfpCalculator = new WfpCalculator();
|
|
13
|
-
let filesToFingerprint = [];
|
|
14
|
-
if (pathIsFolder) {
|
|
15
|
-
const tree = new Tree(rootPath);
|
|
16
|
-
tree.build();
|
|
17
|
-
filesToFingerprint = tree.getFileList(new DependencyFilter(""));
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
filesToFingerprint.push(rootPath);
|
|
21
|
-
}
|
|
22
|
-
const optBar1 = { format: 'Fingerprinting Progress: [{bar}] {percentage}% | Fingerprinted {value} files of {total}' };
|
|
23
|
-
const bar1 = new cliProgress.SingleBar(optBar1, cliProgress.Presets.shades_classic);
|
|
24
|
-
bar1.start(filesToFingerprint.length, 0);
|
|
25
|
-
let fingerprints = '';
|
|
26
|
-
wfpCalculator.on(ScannerEvents.WINNOWING_NEW_CONTENT, (fingerprintPackage) => {
|
|
27
|
-
bar1.increment(fingerprintPackage.getNumberFilesFingerprinted());
|
|
28
|
-
fingerprints = fingerprints.concat(fingerprintPackage.getContent());
|
|
29
|
-
});
|
|
30
|
-
if (options.verbose)
|
|
31
|
-
wfpCalculator.on(ScannerEvents.WINNOWER_LOG, (log) => {
|
|
32
|
-
console.error(log);
|
|
33
|
-
});
|
|
34
|
-
wfpCalculator.on(ScannerEvents.WINNOWING_FINISHED, () => {
|
|
35
|
-
bar1.stop();
|
|
36
|
-
if (options.output) {
|
|
37
|
-
fs.writeFileSync(options.output, fingerprints);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
console.log(fingerprints);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
const wfpInput = { fileList: filesToFingerprint, folderRoot: rootPath };
|
|
44
|
-
if (options.hpsm)
|
|
45
|
-
wfpInput.winnowingMode = WinnowingMode.FULL_WINNOWING_HPSM;
|
|
46
|
-
wfpCalculator.start(wfpInput);
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZ2VycHJpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpL2NvbW1hbmRzL2ZpbmdlcnByaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUVwQixPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUM7QUFFdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUUxRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHM0UsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLE9BQVk7SUFFckUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUUsa0NBQWtDO0lBQzNFLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsMENBQTBDO0lBQ2hHLE1BQU0sWUFBWSxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFFMUMsSUFBSSxrQkFBa0IsR0FBYSxFQUFFLENBQUM7SUFDdEMsSUFBSSxZQUFZLEVBQUU7UUFDaEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2Isa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDakU7U0FBTTtRQUNMLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtLQUNsQztJQUdELE1BQU0sT0FBTyxHQUFHLEVBQUUsTUFBTSxFQUFFLHlGQUF5RixFQUFFLENBQUM7SUFDdEgsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3BGLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXpDLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN0QixhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLGtCQUFzQyxFQUFFLEVBQUU7UUFDL0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUM7UUFDakUsWUFBWSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUUsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUUsQ0FBQztJQUN4RSxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksT0FBTyxDQUFDLE9BQU87UUFDakIsYUFBYSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDM0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUVMLGFBQWEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtRQUN0RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDakIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ2hEO2FBQU07WUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBc0IsRUFBQyxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxDQUFBO0lBQ3hGLElBQUcsT0FBTyxDQUFDLElBQUk7UUFBRSxRQUFRLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQztJQUM1RSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBR2hDLENBQUMifQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Decompressor } from './Decompressor/Decompressor';
|
|
2
|
-
export declare class DecompressionManager {
|
|
3
|
-
private decompressorList;
|
|
4
|
-
private decompressionLevel;
|
|
5
|
-
private suffix;
|
|
6
|
-
private removeFolderOnFailure;
|
|
7
|
-
constructor(decompressionLevel?: number, suffix?: string, removeFolderOnFailure?: boolean);
|
|
8
|
-
addDecompressor(d: Decompressor): void;
|
|
9
|
-
getSupportedFormats(): Array<string>;
|
|
10
|
-
decompress(archivesPaths: Array<string>): Promise<Array<string>>;
|
|
11
|
-
decompressRecursive(archivePath: string, level: number): Promise<void>;
|
|
12
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
import { Tree } from '../tree/Tree';
|
|
4
|
-
import { DecompressionFilter } from '../tree/Filters/DecompressionFilter';
|
|
5
|
-
import { DecompressZip } from './Decompressor/DecompressZips';
|
|
6
|
-
import { DecompressTgz } from './Decompressor/DecompressTgz';
|
|
7
|
-
export class DecompressionManager {
|
|
8
|
-
constructor(decompressionLevel = 1, suffix = "-unzipped", removeFolderOnFailure = false) {
|
|
9
|
-
this.decompressionLevel = decompressionLevel;
|
|
10
|
-
this.removeFolderOnFailure = removeFolderOnFailure;
|
|
11
|
-
this.suffix = suffix;
|
|
12
|
-
this.decompressorList = [
|
|
13
|
-
new DecompressTgz(),
|
|
14
|
-
new DecompressZip()
|
|
15
|
-
];
|
|
16
|
-
}
|
|
17
|
-
addDecompressor(d) {
|
|
18
|
-
this.decompressorList.push(d);
|
|
19
|
-
}
|
|
20
|
-
getSupportedFormats() {
|
|
21
|
-
const supportedFormats = [];
|
|
22
|
-
this.decompressorList.forEach((d) => {
|
|
23
|
-
supportedFormats.push(...d.getSupportedFormats());
|
|
24
|
-
});
|
|
25
|
-
return supportedFormats;
|
|
26
|
-
}
|
|
27
|
-
async decompress(archivesPaths) {
|
|
28
|
-
for (const archivePath of archivesPaths)
|
|
29
|
-
await this.decompressRecursive(archivePath, 0);
|
|
30
|
-
const parentFoldersPath = archivesPaths.map(archivePath => `${archivePath}${this.suffix}`);
|
|
31
|
-
return parentFoldersPath;
|
|
32
|
-
}
|
|
33
|
-
async decompressRecursive(archivePath, level) {
|
|
34
|
-
if (level >= this.decompressionLevel)
|
|
35
|
-
return;
|
|
36
|
-
const archiveRootPath = path.dirname(archivePath);
|
|
37
|
-
const archiveName = path.basename(archivePath);
|
|
38
|
-
const newFolderPath = `${archiveRootPath}${path.sep}${archiveName}${this.suffix}`;
|
|
39
|
-
const isSupported = this.decompressorList.some((d) => d.isSupported(archiveName));
|
|
40
|
-
if (isSupported) {
|
|
41
|
-
await fs.promises.mkdir(newFolderPath, { recursive: true });
|
|
42
|
-
//Search for decompressor and extract archive
|
|
43
|
-
for (const d of this.decompressorList) {
|
|
44
|
-
if (d.isSupported(archiveName)) {
|
|
45
|
-
await d.run(archivePath, newFolderPath);
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
//Search for new archives
|
|
50
|
-
const tree = new Tree(newFolderPath);
|
|
51
|
-
tree.build();
|
|
52
|
-
const newFilesPath = tree.getFileList(new DecompressionFilter(""));
|
|
53
|
-
for (const newFilePath of newFilesPath) {
|
|
54
|
-
await this.decompressRecursive(newFilePath, level + 1);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjb21wcmVzc2lvbk1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlY29tcHJlc3MvRGVjb21wcmVzc2lvbk1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFN0QsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixZQUFZLHFCQUE2QixDQUFDLEVBQUUsU0FBaUIsV0FBVyxFQUFFLHdCQUFpQyxLQUFLO1FBQzlHLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3QyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RCLElBQUksYUFBYSxFQUFFO1lBQ25CLElBQUksYUFBYSxFQUFFO1NBQ3BCLENBQUM7SUFFSixDQUFDO0lBRU0sZUFBZSxDQUFDLENBQWU7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFBO1FBQ25ELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUE0QjtRQUNsRCxLQUFLLE1BQU0sV0FBVyxJQUFJLGFBQWE7WUFBRSxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDM0YsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRU0sS0FBSyxDQUFDLG1CQUFtQixDQUFDLFdBQW1CLEVBQUUsS0FBYTtRQUNqRSxJQUFHLEtBQUssSUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQUUsT0FBTTtRQUV6QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0MsTUFBTSxhQUFhLEdBQUcsR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWxGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtRQUNqRixJQUFHLFdBQVcsRUFBRTtZQUNkLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFFNUQsNkNBQTZDO1lBQzdDLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUNyQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQzlCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7b0JBQ3hDLE1BQU07aUJBQ1A7YUFDRjtZQUdELHlCQUF5QjtZQUN6QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDWixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuRSxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRTtnQkFDdEMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQzthQUN0RDtTQUNGO0lBRUgsQ0FBQztDQUVGIn0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Decompressor } from './Decompressor';
|
|
2
|
-
import tar from 'tar';
|
|
3
|
-
export class DecompressTgz extends Decompressor {
|
|
4
|
-
constructor() {
|
|
5
|
-
super();
|
|
6
|
-
this.supportedFormats = [
|
|
7
|
-
".tar.gz",
|
|
8
|
-
".tgz",
|
|
9
|
-
".tar",
|
|
10
|
-
];
|
|
11
|
-
}
|
|
12
|
-
async run(archivePath, destPath) {
|
|
13
|
-
return tar.x({ C: destPath, file: archivePath });
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjb21wcmVzc1Rnei5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvRGVjb21wcmVzcy9EZWNvbXByZXNzb3IvRGVjb21wcmVzc1Rnei50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBRXRCLE1BQU0sT0FBTyxhQUFjLFNBQVEsWUFBWTtJQUU3QztRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RCLFNBQVM7WUFDVCxNQUFNO1lBQ04sTUFBTTtTQUNQLENBQUE7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO1FBQ2xELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUVGIn0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Decompressor } from './Decompressor';
|
|
2
|
-
import AdmZip from 'adm-zip';
|
|
3
|
-
export class DecompressZip extends Decompressor {
|
|
4
|
-
constructor() {
|
|
5
|
-
super();
|
|
6
|
-
this.supportedFormats = [
|
|
7
|
-
".zip",
|
|
8
|
-
".jar",
|
|
9
|
-
".ear",
|
|
10
|
-
".war"
|
|
11
|
-
];
|
|
12
|
-
}
|
|
13
|
-
async run(archivePath, destPath) {
|
|
14
|
-
const zip = new AdmZip(archivePath);
|
|
15
|
-
zip.extractAllTo(destPath);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjb21wcmVzc1ppcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0RlY29tcHJlc3MvRGVjb21wcmVzc29yL0RlY29tcHJlc3NaaXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFN0IsTUFBTSxPQUFPLGFBQWMsU0FBUSxZQUFZO0lBRTdDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDdEIsTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtTQUNQLENBQUE7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO1FBQ3BELE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUVGIn0=
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare abstract class Decompressor {
|
|
2
|
-
protected supportedFormats: Array<string>;
|
|
3
|
-
abstract run(archivePath: string, destPath: string): Promise<void>;
|
|
4
|
-
isSupported(filename: string): boolean;
|
|
5
|
-
/**
|
|
6
|
-
* Returns the extension supported by this decompressor
|
|
7
|
-
* Includes the '.' appended
|
|
8
|
-
*/
|
|
9
|
-
getSupportedFormats(): Array<string>;
|
|
10
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export class Decompressor {
|
|
2
|
-
isSupported(filename) {
|
|
3
|
-
if (this.supportedFormats.some((format) => filename.endsWith(format)))
|
|
4
|
-
return true;
|
|
5
|
-
return false;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Returns the extension supported by this decompressor
|
|
9
|
-
* Includes the '.' appended
|
|
10
|
-
*/
|
|
11
|
-
getSupportedFormats() {
|
|
12
|
-
return this.supportedFormats;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjb21wcmVzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9EZWNvbXByZXNzL0RlY29tcHJlc3Nvci9EZWNvbXByZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQixZQUFZO0lBS3pCLFdBQVcsQ0FBQyxRQUFnQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNuRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFHRDs7O09BR0c7SUFDSSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztDQUVGIn0=
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { ILicenses, IReportData, IReportEntry, ISaveResponse, Summary } from './types';
|
|
2
|
-
export declare const reportDefaultPath: {
|
|
3
|
-
html: any;
|
|
4
|
-
};
|
|
5
|
-
export declare abstract class Report {
|
|
6
|
-
private readonly resultPath;
|
|
7
|
-
private readonly dependenciesPath;
|
|
8
|
-
private vulnerabilitiesPath;
|
|
9
|
-
private readonly outputPath;
|
|
10
|
-
private licenseMapper;
|
|
11
|
-
private fileExtension;
|
|
12
|
-
private summary;
|
|
13
|
-
private readonly projectName;
|
|
14
|
-
private licenses;
|
|
15
|
-
protected constructor(params: IReportEntry);
|
|
16
|
-
abstract generate(): any;
|
|
17
|
-
protected setFileExtension(ext: string): void;
|
|
18
|
-
protected abstract validTemplateExtension(): boolean;
|
|
19
|
-
protected save(file: string, fileName: string, folder: string): Promise<ISaveResponse>;
|
|
20
|
-
protected readFile(path: string): Promise<any>;
|
|
21
|
-
getReportData(): Promise<IReportData>;
|
|
22
|
-
getLicenseMapper(): Record<string, ILicenses>;
|
|
23
|
-
getSummary(): Summary;
|
|
24
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { SaveStatus } from './types';
|
|
2
|
-
import { ReportAdapter } from './ReportAdapter';
|
|
3
|
-
const fs = require('fs').promises;
|
|
4
|
-
const f = require('fs');
|
|
5
|
-
const path = require('path');
|
|
6
|
-
export const reportDefaultPath = {
|
|
7
|
-
html: path.join(__dirname, "../../../../../assets/htmlTemplate/template.html")
|
|
8
|
-
};
|
|
9
|
-
export class Report {
|
|
10
|
-
resultPath;
|
|
11
|
-
dependenciesPath;
|
|
12
|
-
vulnerabilitiesPath;
|
|
13
|
-
outputPath;
|
|
14
|
-
licenseMapper = {};
|
|
15
|
-
fileExtension;
|
|
16
|
-
summary;
|
|
17
|
-
projectName;
|
|
18
|
-
licenses;
|
|
19
|
-
constructor(params) {
|
|
20
|
-
this.projectName = params.projectName;
|
|
21
|
-
this.resultPath = params.resultPath;
|
|
22
|
-
this.dependenciesPath = params.dependencyPath ? params.dependencyPath : null;
|
|
23
|
-
this.vulnerabilitiesPath = params.vulnerabilityPath ? params.vulnerabilityPath : null;
|
|
24
|
-
this.outputPath = params.outputPath;
|
|
25
|
-
this.fileExtension = null;
|
|
26
|
-
this.summary = { matchedFiles: 0, noMatchFiles: 0, totalFiles: 0 };
|
|
27
|
-
}
|
|
28
|
-
setFileExtension(ext) {
|
|
29
|
-
this.fileExtension = ext;
|
|
30
|
-
}
|
|
31
|
-
async save(file, fileName, folder) {
|
|
32
|
-
try {
|
|
33
|
-
await fs.writeFile(this.outputPath, file);
|
|
34
|
-
return {
|
|
35
|
-
status: SaveStatus.OK,
|
|
36
|
-
path: this.outputPath,
|
|
37
|
-
format: path.extname(this.outputPath),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
return {
|
|
42
|
-
status: SaveStatus.FAILED,
|
|
43
|
-
path: this.outputPath,
|
|
44
|
-
format: path.extname(this.outputPath),
|
|
45
|
-
message: error.message
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
async readFile(path) {
|
|
50
|
-
const data = await fs.readFile(path);
|
|
51
|
-
return data;
|
|
52
|
-
}
|
|
53
|
-
async getReportData() {
|
|
54
|
-
const reportAdapter = new ReportAdapter(this);
|
|
55
|
-
const results = await this.readFile(this.resultPath);
|
|
56
|
-
const r = JSON.parse(results);
|
|
57
|
-
reportAdapter.getResultLicenses(r);
|
|
58
|
-
this.summary.totalFiles = reportAdapter.getTotalFiles(r);
|
|
59
|
-
if (this.dependenciesPath) {
|
|
60
|
-
const dependencies = await this.readFile(this.dependenciesPath);
|
|
61
|
-
reportAdapter.getDependenciesLicenses(JSON.parse(dependencies).filesList);
|
|
62
|
-
}
|
|
63
|
-
// set unknown licenses to the of the array
|
|
64
|
-
// this.unknownLicensesToEnd();
|
|
65
|
-
reportAdapter.checkForIncompatibilities(this.licenses);
|
|
66
|
-
return {
|
|
67
|
-
projectName: this.projectName,
|
|
68
|
-
licenses: this.licenses,
|
|
69
|
-
summary: this.summary,
|
|
70
|
-
date: new Date().toLocaleTimeString(),
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
getLicenseMapper() {
|
|
74
|
-
return this.licenseMapper;
|
|
75
|
-
}
|
|
76
|
-
getSummary() {
|
|
77
|
-
return this.summary;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9tb2R1bGVzL3JlcG9ydHMvUmVwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLTCxVQUFVLEVBQ1gsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUU1QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsa0RBQWtELENBQUM7Q0FDOUUsQ0FBQTtBQUVELE1BQU0sT0FBZ0IsTUFBTTtJQUNULFVBQVUsQ0FBUztJQUNuQixnQkFBZ0IsQ0FBVTtJQUNuQyxtQkFBbUIsQ0FBUztJQUNuQixVQUFVLENBQVM7SUFDNUIsYUFBYSxHQUE4QixFQUFFLENBQUM7SUFDOUMsYUFBYSxDQUFTO0lBQ3RCLE9BQU8sQ0FBVztJQUNULFdBQVcsQ0FBUztJQUM3QixRQUFRLENBQW1CO0lBRW5DLFlBQXNCLE1BQW9CO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQTtRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM1RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixD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
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Report } from './Report';
|
|
2
|
-
import { ILicenses } from './types';
|
|
3
|
-
export declare class ReportAdapter {
|
|
4
|
-
private report;
|
|
5
|
-
constructor(report: Report);
|
|
6
|
-
getResultLicenses(results: Record<string, any>): void;
|
|
7
|
-
getTotalFiles(results: Record<string, any>): number;
|
|
8
|
-
getDependenciesLicenses(dependencies: any): void;
|
|
9
|
-
private getNewComponent;
|
|
10
|
-
private addComponentToLicense;
|
|
11
|
-
checkForIncompatibilities(licenses: Array<ILicenses>): void;
|
|
12
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
export class ReportAdapter {
|
|
2
|
-
report;
|
|
3
|
-
constructor(report) {
|
|
4
|
-
this.report = report;
|
|
5
|
-
}
|
|
6
|
-
getResultLicenses(results) {
|
|
7
|
-
const licenses = {};
|
|
8
|
-
Object.entries(results).forEach(([key, value]) => {
|
|
9
|
-
value.forEach((v) => {
|
|
10
|
-
if (v.id != 'none') {
|
|
11
|
-
this.report.getSummary().matchedFiles++;
|
|
12
|
-
// Licenses
|
|
13
|
-
v.licenses.forEach((l) => {
|
|
14
|
-
const component = this.getNewComponent(v.purl[0], v.vendor, v.version, v.component, v.url);
|
|
15
|
-
if (!this.report.getLicenseMapper()[l.name]) {
|
|
16
|
-
this.report.getLicenseMapper()[l.name] = {
|
|
17
|
-
value: 1,
|
|
18
|
-
label: l.name,
|
|
19
|
-
copyleft: l.copyleft === 'yes' ? true : false,
|
|
20
|
-
hasIncompatibles: [],
|
|
21
|
-
incompatibleWith: l.incompatible_with !== undefined ? l.incompatible_with.split(',').map(il => il.trim()) : [],
|
|
22
|
-
components: [component]
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
this.addComponentToLicense(l.name, v.purl[0], v.version, component);
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
this.report.getSummary().noMatchFiles++;
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
getTotalFiles(results) {
|
|
37
|
-
return Object.keys(results).length;
|
|
38
|
-
}
|
|
39
|
-
getDependenciesLicenses(dependencies) {
|
|
40
|
-
dependencies.map((f) => {
|
|
41
|
-
//dependencies
|
|
42
|
-
f.dependenciesList.map((d) => {
|
|
43
|
-
d.licensesList.map((licenses) => {
|
|
44
|
-
const component = this.getNewComponent(d.purl, null, d.version, d.component, '');
|
|
45
|
-
if (licenses.spdxId !== '') {
|
|
46
|
-
licenses.spdxId.split(/;|\//g).forEach((l) => {
|
|
47
|
-
if (!this.report.getLicenseMapper()[l]) {
|
|
48
|
-
this.report.getLicenseMapper()[l] = {
|
|
49
|
-
label: l,
|
|
50
|
-
value: 1,
|
|
51
|
-
copyleft: false,
|
|
52
|
-
hasIncompatibles: [],
|
|
53
|
-
incompatibleWith: [],
|
|
54
|
-
components: [component],
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.addComponentToLicense(l, d.purl, d.version, component);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
else { //Unknown licenses
|
|
63
|
-
if (!this.report.getLicenseMapper()['unknown']) {
|
|
64
|
-
this.report.getLicenseMapper().unknown = {
|
|
65
|
-
label: 'unknown',
|
|
66
|
-
value: 1,
|
|
67
|
-
copyleft: false,
|
|
68
|
-
hasIncompatibles: [],
|
|
69
|
-
incompatibleWith: [],
|
|
70
|
-
components: [component],
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
this.addComponentToLicense('unknown', d.purl, d.version, component);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
getNewComponent(purl, vendor, version, name, url) {
|
|
82
|
-
return {
|
|
83
|
-
purl,
|
|
84
|
-
vendor: vendor ? vendor : '',
|
|
85
|
-
versions: [version],
|
|
86
|
-
name: name ? name : '',
|
|
87
|
-
url,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
addComponentToLicense(license, purl, version, component) {
|
|
91
|
-
const auxComp = this.report.getLicenseMapper()[license].components.findIndex((c) => c.purl === purl);
|
|
92
|
-
if (auxComp >= 0) { //if component exists
|
|
93
|
-
const auxVersion = this.report.getLicenseMapper()[license].components[auxComp].versions.find((version) => version === version);
|
|
94
|
-
if (!auxVersion) {
|
|
95
|
-
this.report.getLicenseMapper()[license].components[auxComp].versions.push(version);
|
|
96
|
-
this.report.getLicenseMapper()[license].value++;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
this.report.getLicenseMapper()[license].components.push(component);
|
|
101
|
-
this.report.getLicenseMapper()[license].value++;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
checkForIncompatibilities(licenses) {
|
|
105
|
-
for (let l = 0; l < licenses.length; l += 1) {
|
|
106
|
-
const license = licenses[l];
|
|
107
|
-
if (license.incompatibleWith !== undefined)
|
|
108
|
-
for (let i = 0; i < license.incompatibleWith.length; i += 1) {
|
|
109
|
-
if (licenses.some((lic) => lic.label === license.incompatibleWith[i]))
|
|
110
|
-
license.hasIncompatibles.push(license.incompatibleWith[i]);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0QWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvbW9kdWxlcy9yZXBvcnRzL1JlcG9ydEFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGFBQWE7SUFDbEIsTUFBTSxDQUFTO0lBQ3JCLFlBQVksTUFBYztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRU0saUJBQWlCLENBQUMsT0FBNEI7UUFDakQsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsS0FBSyxDQUFDLEVBQUMsRUFBRTtZQUM3QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUU7Z0JBQ2pCLElBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBRSxNQUFNLEVBQUM7b0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDeEMsV0FBVztvQkFDWCxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFO3dCQUN0QixNQUFNLFNBQVMsR0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUN6RixJQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTs0QkFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJ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
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Report } from '../Report';
|
|
2
|
-
import { IReportEntry, ISaveResponse } from '../types';
|
|
3
|
-
export declare class HTMLReport extends Report {
|
|
4
|
-
private html;
|
|
5
|
-
private readonly htmlTemplatePath;
|
|
6
|
-
private readonly extension;
|
|
7
|
-
private readonly fileName;
|
|
8
|
-
private readonly folder;
|
|
9
|
-
constructor(params: IReportEntry);
|
|
10
|
-
generate(): Promise<string>;
|
|
11
|
-
private setDataOnHtmlFile;
|
|
12
|
-
save(): Promise<ISaveResponse>;
|
|
13
|
-
protected validTemplateExtension(): boolean;
|
|
14
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Report, reportDefaultPath } from '../Report';
|
|
2
|
-
const path = require('path');
|
|
3
|
-
export class HTMLReport extends Report {
|
|
4
|
-
html;
|
|
5
|
-
htmlTemplatePath;
|
|
6
|
-
extension;
|
|
7
|
-
fileName;
|
|
8
|
-
folder;
|
|
9
|
-
constructor(params) {
|
|
10
|
-
super(params);
|
|
11
|
-
this.htmlTemplatePath = params.templatePath ? params.templatePath : reportDefaultPath.html;
|
|
12
|
-
this.html = null;
|
|
13
|
-
this.extension = '.html';
|
|
14
|
-
this.folder = 'HTML';
|
|
15
|
-
this.fileName = 'report.html';
|
|
16
|
-
super.setFileExtension(this.extension);
|
|
17
|
-
}
|
|
18
|
-
async generate() {
|
|
19
|
-
const reportData = await this.getReportData();
|
|
20
|
-
await this.setDataOnHtmlFile(reportData);
|
|
21
|
-
return this.html;
|
|
22
|
-
}
|
|
23
|
-
async setDataOnHtmlFile(reportData) {
|
|
24
|
-
if (!this.validTemplateExtension())
|
|
25
|
-
throw new Error('Invalid template extension');
|
|
26
|
-
let html = (await this.readFile(this.htmlTemplatePath)).toString();
|
|
27
|
-
if (!html)
|
|
28
|
-
throw new Error('Invalid template path');
|
|
29
|
-
html = html.replace('#DATA', JSON.stringify(reportData));
|
|
30
|
-
this.html = html;
|
|
31
|
-
}
|
|
32
|
-
async save() {
|
|
33
|
-
const response = await super.save(this.html, this.fileName, this.folder);
|
|
34
|
-
return response;
|
|
35
|
-
}
|
|
36
|
-
validTemplateExtension() {
|
|
37
|
-
const templateExtension = path.extname(this.htmlTemplatePath);
|
|
38
|
-
return templateExtension === this.extension;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRNTFJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvbW9kdWxlcy9yZXBvcnRzL2h0bWxSZXBvcnQvSFRNTFJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBT3RELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUU1QixNQUFNLE9BQU8sVUFBVyxTQUFRLE1BQU07SUFDMUIsSUFBSSxDQUFTO0lBQ0osZ0JBQWdCLENBQVM7SUFDekIsU0FBUyxDQUFVO0lBQ25CLFFBQVEsQ0FBVTtJQUNsQixNQUFNLENBQVM7SUFFaEMsWUFBWSxNQUFvQjtRQUM5QixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQzFGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO1FBQzlCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRO1FBQ25CLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDLFVBQXVCO1FBQ3JELElBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDL0UsSUFBSSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRSxJQUFHLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNuRCxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSTtRQUNiLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLE9BQVEsUUFBUSxDQUFDO0lBQ3JCLENBQUM7SUFFUSxzQkFBc0I7UUFDakMsTUFBTSxpQkFBaUIsR0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQy9ELE9BQU8saUJBQWlCLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM1QyxDQUFDO0NBRUYifQ==
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
export interface IReportEntry {
|
|
2
|
-
resultPath: string;
|
|
3
|
-
dependencyPath?: string;
|
|
4
|
-
vulnerabilityPath?: string;
|
|
5
|
-
outputPath: string;
|
|
6
|
-
templatePath?: string;
|
|
7
|
-
projectName: string;
|
|
8
|
-
}
|
|
9
|
-
export interface ILicenses {
|
|
10
|
-
label: string;
|
|
11
|
-
value: number;
|
|
12
|
-
components: Array<Component>;
|
|
13
|
-
incompatibleWith: Array<string>;
|
|
14
|
-
hasIncompatibles: Array<string>;
|
|
15
|
-
copyleft: boolean;
|
|
16
|
-
}
|
|
17
|
-
export interface IReportData {
|
|
18
|
-
projectName: string;
|
|
19
|
-
licenses: Array<ILicenses>;
|
|
20
|
-
summary: Summary;
|
|
21
|
-
date: string;
|
|
22
|
-
}
|
|
23
|
-
export interface Component {
|
|
24
|
-
purl: string;
|
|
25
|
-
versions: Array<string>;
|
|
26
|
-
url: string;
|
|
27
|
-
name: string;
|
|
28
|
-
vendor: string;
|
|
29
|
-
}
|
|
30
|
-
export interface ISaveResponse {
|
|
31
|
-
status: SaveStatus;
|
|
32
|
-
path: string;
|
|
33
|
-
format: string;
|
|
34
|
-
message?: string;
|
|
35
|
-
}
|
|
36
|
-
export declare enum SaveStatus {
|
|
37
|
-
OK = 0,
|
|
38
|
-
FAILED = 1
|
|
39
|
-
}
|
|
40
|
-
export interface Summary {
|
|
41
|
-
matchedFiles: number;
|
|
42
|
-
noMatchFiles: number;
|
|
43
|
-
totalFiles: number;
|
|
44
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export var SaveStatus;
|
|
2
|
-
(function (SaveStatus) {
|
|
3
|
-
SaveStatus[SaveStatus["OK"] = 0] = "OK";
|
|
4
|
-
SaveStatus[SaveStatus["FAILED"] = 1] = "FAILED";
|
|
5
|
-
})(SaveStatus || (SaveStatus = {}));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL21vZHVsZXMvcmVwb3J0cy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5Q0EsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNwQix1Q0FBRSxDQUFBO0lBQ0YsK0NBQU0sQ0FBQTtBQUNSLENBQUMsRUFIVyxVQUFVLEtBQVYsVUFBVSxRQUdyQiJ9
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Filter } from './Filter';
|
|
2
|
-
import { NodeType } from '../Node';
|
|
3
|
-
import { DecompressionManager } from '../../Decompress/DecompressionManager';
|
|
4
|
-
export class DecompressionFilter extends Filter {
|
|
5
|
-
constructor(filterName) {
|
|
6
|
-
super();
|
|
7
|
-
this.supportedFileExtension = new DecompressionManager().getSupportedFormats();
|
|
8
|
-
}
|
|
9
|
-
//Returns true if you want the file
|
|
10
|
-
evaluate(node) {
|
|
11
|
-
if (node.getType() == NodeType.FOLDER)
|
|
12
|
-
return true;
|
|
13
|
-
if (this.supportedFileExtension.some(supportedFormat => node.getName().endsWith(supportedFormat)))
|
|
14
|
-
return true;
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjb21wcmVzc2lvbkZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9GaWx0ZXJzL0RlY29tcHJlc3Npb25GaWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzdFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxNQUFNO0lBSTdDLFlBQW1CLFVBQWtCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ2pGLENBQUM7SUFFRCxtQ0FBbUM7SUFDNUIsUUFBUSxDQUFDLElBQVU7UUFDeEIsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksUUFBUSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDL0csT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBRUYifQ==
|