scanoss 0.2.22 → 0.2.25
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/.cspell.json +1 -0
- package/build/main/bin/cli-bin.js +12 -5
- package/build/main/commands/fingerprint.d.ts +1 -0
- package/build/main/commands/fingerprint.js +49 -0
- package/build/main/commands/scan.js +4 -5
- package/build/main/index.d.ts +1 -0
- package/build/main/index.js +2 -1
- package/build/main/lib/dependencies/DependencyScanner.d.ts +1 -0
- package/build/main/lib/dependencies/DependencyScanner.js +16 -2
- package/build/main/lib/scanner/Dispatcher/DispatchableItem.d.ts +4 -4
- package/build/main/lib/scanner/Dispatcher/DispatchableItem.js +5 -5
- package/build/main/lib/scanner/Scanner.d.ts +17 -19
- package/build/main/lib/scanner/Scanner.js +44 -33
- package/build/main/lib/scanner/ScannerCfg.js +3 -3
- package/build/main/lib/scanner/ScannerTypes.d.ts +1 -0
- package/build/main/lib/scanner/ScannerTypes.js +1 -1
- package/build/main/lib/scanner/WfpProvider/FingerprintPacket.d.ts +12 -0
- package/build/main/lib/scanner/WfpProvider/FingerprintPacket.js +38 -0
- package/build/main/lib/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
- package/build/main/lib/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +334 -0
- package/build/main/lib/scanner/WfpProvider/WfpProvider.d.ts +32 -0
- package/build/main/lib/scanner/WfpProvider/WfpProvider.js +63 -0
- package/build/main/lib/scanner/WfpProvider/WfpProviderFactory.d.ts +6 -0
- package/build/main/lib/scanner/WfpProvider/WfpProviderFactory.js +16 -0
- package/build/main/lib/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +20 -0
- package/build/main/lib/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +94 -0
- package/build/main/lib/scanner/Winnower/WinnowerExtractor.js +1 -1
- package/build/module/bin/cli-bin.js +12 -5
- package/build/module/commands/fingerprint.d.ts +1 -0
- package/build/module/commands/fingerprint.js +42 -0
- package/build/module/commands/scan.js +4 -5
- package/build/module/index.d.ts +1 -0
- package/build/module/index.js +2 -1
- package/build/module/lib/dependencies/DependencyScanner.d.ts +1 -0
- package/build/module/lib/dependencies/DependencyScanner.js +16 -2
- package/build/module/lib/scanner/Dispatcher/DispatchableItem.d.ts +4 -4
- package/build/module/lib/scanner/Dispatcher/DispatchableItem.js +6 -6
- package/build/module/lib/scanner/Scanner.d.ts +17 -19
- package/build/module/lib/scanner/Scanner.js +50 -39
- package/build/module/lib/scanner/ScannerCfg.js +3 -3
- package/build/module/lib/scanner/ScannerTypes.d.ts +1 -0
- package/build/module/lib/scanner/ScannerTypes.js +1 -1
- package/build/module/lib/scanner/WfpProvider/FingerprintPacket.d.ts +12 -0
- package/build/module/lib/scanner/WfpProvider/FingerprintPacket.js +37 -0
- package/build/module/lib/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
- package/build/module/lib/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +330 -0
- package/build/module/lib/scanner/WfpProvider/WfpProvider.d.ts +32 -0
- package/build/module/lib/scanner/WfpProvider/WfpProvider.js +65 -0
- package/build/module/lib/scanner/WfpProvider/WfpProviderFactory.d.ts +6 -0
- package/build/module/lib/scanner/WfpProvider/WfpProviderFactory.js +12 -0
- package/build/module/lib/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +20 -0
- package/build/module/lib/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +93 -0
- package/build/module/lib/scanner/Winnower/WinnowerExtractor.js +1 -1
- package/build/tsconfig.module.tsbuildinfo +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package-lock.json +18588 -0
- package/package.json +1 -1
- package/src/bin/cli-bin.ts +12 -5
- package/src/commands/fingerprint.ts +55 -0
- package/src/commands/scan.ts +3 -3
- package/src/index.js +1 -0
- package/src/index.ts +1 -0
- package/src/lib/dependencies/DependencyScanner.ts +20 -1
- package/src/lib/scanner/Dispatcher/DispatchableItem.ts +7 -8
- package/src/lib/scanner/Scanner.ts +64 -53
- package/src/lib/scanner/ScannerCfg.ts +2 -2
- package/src/lib/scanner/ScannerTypes.ts +1 -0
- package/src/lib/scanner/{Winnower/WinnowerResponse.ts → WfpProvider/FingerprintPacket.ts} +11 -5
- package/src/lib/scanner/{Winnower/Winnower.ts → WfpProvider/WfpCalculator/WfpCalculator.ts} +32 -119
- package/src/lib/scanner/WfpProvider/WfpProvider.ts +91 -0
- package/src/lib/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts +120 -0
- package/src/lib/scanner/Winnower/WinnowerExtractor.ts +0 -1
- package/yarn.lock +5289 -5202
package/.cspell.json
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const dep_1 = require("../commands/dep");
|
|
6
|
+
const fingerprint_1 = require("../commands/fingerprint");
|
|
6
7
|
const scan_1 = require("../commands/scan");
|
|
7
8
|
function CLIErrorHandler(e) {
|
|
8
9
|
console.error(' ');
|
|
@@ -11,14 +12,14 @@ function CLIErrorHandler(e) {
|
|
|
11
12
|
}
|
|
12
13
|
async function main() {
|
|
13
14
|
commander_1.program
|
|
14
|
-
.version("0.2.
|
|
15
|
+
.version("0.2.25")
|
|
15
16
|
.description('The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.');
|
|
16
17
|
commander_1.program
|
|
17
18
|
.command('scan <source>')
|
|
18
19
|
.description('Scan a folder/file')
|
|
19
|
-
|
|
20
|
+
.option('-w, --wfp', 'Scan a .wfp file instead of a folder')
|
|
20
21
|
.option('-c, --concurrency <number>', 'Number of concurrent connections to use while scanning (optional -default 10)')
|
|
21
|
-
.option('--filter <path>', 'Loads an user defined filter (optional)')
|
|
22
|
+
.option('-f, --filter <path>', 'Loads an user defined filter (optional)')
|
|
22
23
|
.option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
|
|
23
24
|
.option('-F, --flags <flags>', 'Scanning engine flags (1: disable snippet matching, 2 enable snippet ids, 4: disable dependencies, 8: disable licenses, 16: disable copyrights,32: disable vulnerabilities, 64: disable quality, 128: disable cryptography,256: disable best match, 512: Report identified files)')
|
|
24
25
|
.option('-P, --post-size <postsize>', 'Number of kilobytes to limit the post to while scanning (optional - default 64)')
|
|
@@ -33,11 +34,17 @@ async function main() {
|
|
|
33
34
|
$ scanoss-js scan -o scan-output.json <source-folder>`);
|
|
34
35
|
commander_1.program
|
|
35
36
|
.command('dep <source>')
|
|
36
|
-
.description('Scan for dependencies
|
|
37
|
+
.description('Scan for dependencies')
|
|
37
38
|
.option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
|
|
38
39
|
.option('-a, --grpc-host <host>', 'SCANOSS GRPC HOST (optional - default: scanoss.com)')
|
|
39
40
|
.option('-p, --grpc-port <port>', 'SCANOSS GRPC PORT (optional - default: 443)')
|
|
40
41
|
.action((source, options) => { (0, dep_1.depHandler)(source, options).catch((e) => { CLIErrorHandler(e); }); });
|
|
42
|
+
commander_1.program
|
|
43
|
+
.command('fingerprint <source>')
|
|
44
|
+
.description('Generates fingerprints for a folder/file')
|
|
45
|
+
.option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
|
|
46
|
+
.option('-p, --block-size <size>', 'Maximum size in Kb for each fingerprint block (optional - default 64Kb)')
|
|
47
|
+
.action((source, options) => { (0, fingerprint_1.fingerprintHandler)(source, options).catch((e) => { CLIErrorHandler(e); }); });
|
|
41
48
|
await commander_1.program.parseAsync(process.argv);
|
|
42
49
|
}
|
|
43
50
|
try {
|
|
@@ -47,4 +54,4 @@ catch (e) {
|
|
|
47
54
|
console.error(e);
|
|
48
55
|
process.exit(1);
|
|
49
56
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vY2xpLWJpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx5Q0FBb0M7QUFDcEMseUNBQTZDO0FBQzdDLHlEQUE2RDtBQUM3RCwyQ0FBK0M7QUFFL0MsU0FBUyxlQUFlLENBQUMsQ0FBUTtJQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBS0QsS0FBSyxVQUFVLElBQUk7SUFDakIsbUJBQU87U0FDSixPQUFPLENBQUMsUUFBUSxDQUFDO1NBQ2pCLFdBQVcsQ0FBQyw0R0FBNEcsQ0FBQyxDQUFBO0lBRTVILG1CQUFPO1NBQ0osT0FBTyxDQUFDLGVBQWUsQ0FBQztTQUN4QixXQUFXLENBQUMsb0JBQW9CLENBQUM7U0FDakMsTUFBTSxDQUFDLFdBQVcsRUFBRSxzQ0FBc0MsQ0FBQztTQUMzRCxNQUFNLENBQUMsNEJBQTRCLEVBQUUsK0VBQStFLENBQUM7U0FDckgsTUFBTSxDQUFDLHFCQUFxQixFQUFFLHlDQUF5QyxDQUFDO1NBQ3hFLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxxREFBcUQsQ0FBQztTQUN4RixNQUFNLENBQUMscUJBQXFCLEVBQUUsbVJBQW1SLENBQUM7U0FDbFQsTUFBTSxDQUFDLDRCQUE0QixFQUFFLGlGQUFpRixDQUFDO1NBQ3ZILE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSwyREFBMkQsQ0FBQztTQUM5RixNQUFNLENBQUMseUJBQXlCLEVBQUUsb0VBQW9FLENBQUM7U0FDdkcsTUFBTSxDQUFDLHVCQUF1QixFQUFFLHlFQUF5RSxDQUFDO1NBQzFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSx1RUFBdUUsQ0FBQztTQUNsRyxNQUFNLENBQUMsZUFBZSxFQUFFLDhCQUE4QixDQUFDO1NBQ3ZELE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFFLElBQUEsa0JBQVcsRUFBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQztTQUM5RixXQUFXLENBQUMsT0FBTyxFQUFFOzswREFFZ0MsQ0FDckQsQ0FBQztJQUVGLG1CQUFPO1NBQ04sT0FBTyxDQUFDLGNBQWMsQ0FBQztTQUN2QixXQUFXLENBQUMsdUJBQXVCLENBQUM7U0FDcEMsTUFBTSxDQUFDLHlCQUF5QixFQUFFLHFEQUFxRCxDQUFDO1NBQ3hGLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxxREFBcUQsQ0FBQztTQUN2RixNQUFNLENBQUMsd0JBQXdCLEVBQUUsOENBQThDLENBQUM7U0FDaEYsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUUsSUFBQSxnQkFBVSxFQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUE7SUFFOUYsbUJBQU87U0FDTixPQUFPLENBQUMsc0JBQXNCLENBQUM7U0FDL0IsV0FBVyxDQUFDLDBDQUEwQyxDQUFDO1NBQ3ZELE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxxREFBcUQsQ0FBQztTQUN4RixNQUFNLENBQUMseUJBQXlCLEVBQUUseUVBQXlFLENBQUM7U0FDNUcsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUUsSUFBQSxnQ0FBa0IsRUFBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBO0lBRXRHLE1BQU0sbUJBQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFHRCxJQUFJO0lBQ0YsSUFBSSxFQUFFLENBQUM7Q0FDUjtBQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2pCIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function fingerprintHandler(rootPath: string, options: any): Promise<void>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.fingerprintHandler = void 0;
|
|
7
|
+
const helpers_1 = require("./helpers");
|
|
8
|
+
const __1 = require("..");
|
|
9
|
+
const Tree_1 = require("../lib/tree/Tree");
|
|
10
|
+
const filtering_1 = require("../lib/filters/filtering");
|
|
11
|
+
const fs_1 = __importDefault(require("fs"));
|
|
12
|
+
const defaultFilter_1 = require("../lib/filters/defaultFilter");
|
|
13
|
+
const cli_progress_1 = __importDefault(require("cli-progress"));
|
|
14
|
+
async function fingerprintHandler(rootPath, options) {
|
|
15
|
+
rootPath = rootPath.replace(/\/$/, ''); // Remove trailing slash if exists
|
|
16
|
+
rootPath = rootPath.replace(/^\./, process.env.PWD); // Convert relative path to absolute path.
|
|
17
|
+
const pathIsFolder = await (0, helpers_1.isFolder)(rootPath);
|
|
18
|
+
const wfpCalculator = new __1.WfpCalculator();
|
|
19
|
+
const tree = new Tree_1.Tree(rootPath);
|
|
20
|
+
const filter = new filtering_1.FilterList('');
|
|
21
|
+
filter.load(defaultFilter_1.defaultFilter);
|
|
22
|
+
tree.loadFilter(filter);
|
|
23
|
+
tree.buildTree();
|
|
24
|
+
const filesToFingerprint = tree.getFileList();
|
|
25
|
+
const optBar1 = { format: 'Fingerprinting Progress: [{bar}] {percentage}% | Fingerprinted {value} files of {total}' };
|
|
26
|
+
const bar1 = new cli_progress_1.default.SingleBar(optBar1, cli_progress_1.default.Presets.shades_classic);
|
|
27
|
+
bar1.start(filesToFingerprint.length, 0);
|
|
28
|
+
let fingerprints = '';
|
|
29
|
+
wfpCalculator.on(__1.ScannerEvents.WINNOWING_NEW_CONTENT, (fingerprintPacket) => {
|
|
30
|
+
bar1.increment(fingerprintPacket.getNumberFilesFingerprinted());
|
|
31
|
+
fingerprints = fingerprints.concat(fingerprintPacket.getContent());
|
|
32
|
+
});
|
|
33
|
+
if (options.verbose)
|
|
34
|
+
wfpCalculator.on(__1.ScannerEvents.WINNOWER_LOG, (log) => {
|
|
35
|
+
console.error(log);
|
|
36
|
+
});
|
|
37
|
+
wfpCalculator.on(__1.ScannerEvents.WINNOWING_FINISHED, () => {
|
|
38
|
+
bar1.stop();
|
|
39
|
+
if (options.output) {
|
|
40
|
+
fs_1.default.writeFileSync(options.output, fingerprints);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
console.log(fingerprints);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
wfpCalculator.start({ fileList: filesToFingerprint, folderRoot: rootPath });
|
|
47
|
+
}
|
|
48
|
+
exports.fingerprintHandler = fingerprintHandler;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZ2VycHJpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZmluZ2VycHJpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdUNBQXFDO0FBQ3JDLDBCQUFrRDtBQUNsRCwyQ0FBd0M7QUFDeEMsd0RBQXNEO0FBRXRELDRDQUFvQjtBQUNwQixnRUFBNkQ7QUFDN0QsZ0VBQXVDO0FBR2hDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLE9BQVk7SUFFckUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUUsa0NBQWtDO0lBQzNFLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsMENBQTBDO0lBQ2hHLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBQSxrQkFBUSxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sYUFBYSxHQUFHLElBQUksaUJBQWEsRUFBRSxDQUFDO0lBRTFDLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksc0JBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLDZCQUEyQixDQUFDLENBQUM7SUFFekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFakIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFOUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxNQUFNLEVBQUUseUZBQXlGLEVBQUUsQ0FBQztJQUN0SCxNQUFNLElBQUksR0FBRyxJQUFJLHNCQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRixJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV6QyxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDdEIsYUFBYSxDQUFDLEVBQUUsQ0FBQyxpQkFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsaUJBQW9DLEVBQUUsRUFBRTtRQUM3RixJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQztRQUNoRSxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBRSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FBRSxDQUFDO0lBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxPQUFPLENBQUMsT0FBTztRQUNqQixhQUFhLENBQUMsRUFBRSxDQUFDLGlCQUFhLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDM0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUVMLGFBQWEsQ0FBQyxFQUFFLENBQUMsaUJBQWEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7UUFDdEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBRyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2pCLFlBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztTQUNoRDthQUFNO1lBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBR0gsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFDLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztBQUc1RSxDQUFDO0FBNUNELGdEQTRDQyJ9
|
|
@@ -59,7 +59,7 @@ async function scanHandler(rootPath, options) {
|
|
|
59
59
|
}
|
|
60
60
|
else {
|
|
61
61
|
const winnowing = fs_1.default.readFileSync(rootPath, { encoding: 'utf-8' });
|
|
62
|
-
|
|
62
|
+
scannerInput.fileList.length = [...winnowing.matchAll(/file=/g)].length;
|
|
63
63
|
}
|
|
64
64
|
if (!options.verbose) {
|
|
65
65
|
const optBar1 = { format: 'Scan Progress: [{bar}] {percentage}% | Scanned {value} files of {total}' };
|
|
@@ -80,9 +80,8 @@ async function scanHandler(rootPath, options) {
|
|
|
80
80
|
console.log(await fs_1.default.promises.readFile(resultPath, 'utf8'));
|
|
81
81
|
});
|
|
82
82
|
if (options.wfp)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
await scanner.scan([scannerInput]);
|
|
83
|
+
scannerInput.wfpPath = rootPath;
|
|
84
|
+
await scanner.scan([scannerInput]);
|
|
86
85
|
}
|
|
87
86
|
exports.scanHandler = scanHandler;
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUFpRDtBQUNqRCw4REFBMEU7QUFDMUUsMERBQXVEO0FBQ3ZELDJDQUF3QztBQUV4QyxnRUFBdUM7QUFFdkMsZ0VBQTZEO0FBQzdELHdEQUFzRDtBQUV0RCx1Q0FBcUM7QUFFckMsNENBQW9CO0FBSWIsS0FBSyxVQUFVLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE9BQVk7SUFFOUQsSUFBSSxZQUFZLEdBQWlCLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBRWhELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGtDQUFrQztJQUMzRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLDBDQUEwQztJQUNoRyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUEsa0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxnREFBZ0Q7SUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxFQUFFLENBQUM7SUFDcEMsSUFBRyxPQUFPLENBQUMsV0FBVztRQUFFLFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JGLElBQUcsT0FBTyxDQUFDLFFBQVE7UUFBRSxVQUFVLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDdEYsSUFBRyxPQUFPLENBQUMsTUFBTTtRQUFFLFVBQVUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUN2RCxJQUFHLE9BQU8sQ0FBQyxHQUFHO1FBQUUsVUFBVSxD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
|
package/build/main/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './lib/scanner/ScannerTypes';
|
|
2
2
|
export * from './lib/scanner/ScannerCfg';
|
|
3
3
|
export * from './lib/scanner/Scanner';
|
|
4
|
+
export * from './lib/scanner/WfpProvider/WfpCalculator/WfpCalculator';
|
|
4
5
|
export * from './lib/dependencies/DependencyTypes';
|
|
5
6
|
export * from './lib/dependencies/DependencyScannerCfg';
|
|
6
7
|
export * from './lib/dependencies/DependencyScanner';
|
package/build/main/index.js
CHANGED
|
@@ -13,7 +13,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
__exportStar(require("./lib/scanner/ScannerTypes"), exports);
|
|
14
14
|
__exportStar(require("./lib/scanner/ScannerCfg"), exports);
|
|
15
15
|
__exportStar(require("./lib/scanner/Scanner"), exports);
|
|
16
|
+
__exportStar(require("./lib/scanner/WfpProvider/WfpCalculator/WfpCalculator"), exports);
|
|
16
17
|
__exportStar(require("./lib/dependencies/DependencyTypes"), exports);
|
|
17
18
|
__exportStar(require("./lib/dependencies/DependencyScannerCfg"), exports);
|
|
18
19
|
__exportStar(require("./lib/dependencies/DependencyScanner"), exports);
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTJDO0FBQzNDLDJEQUF3QztBQUN4Qyx3REFBcUM7QUFDckMsd0ZBQXNFO0FBQ3RFLHFFQUFtRDtBQUNuRCwwRUFBd0Q7QUFDeEQsdUVBQXFEIn0=
|
|
@@ -5,15 +5,17 @@ const GrpcDependencyService_1 = require("../grpc/GrpcDependencyService");
|
|
|
5
5
|
const scanoss_dependencies_pb_1 = require("../grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb");
|
|
6
6
|
const LocalDependency_1 = require("./LocalDependency/LocalDependency");
|
|
7
7
|
const DependencyScannerCfg_1 = require("./DependencyScannerCfg");
|
|
8
|
+
const packageurl_js_1 = require("packageurl-js");
|
|
8
9
|
class DependencyScanner {
|
|
9
10
|
constructor(cfg = new DependencyScannerCfg_1.DependencyScannerCfg()) {
|
|
10
11
|
this.grpcDependencyService = new GrpcDependencyService_1.GrpcDependencyService(cfg.DEFAULT_GRPC_HOST, cfg.DEFAULT_GRPC_PORT);
|
|
11
12
|
this.localDependency = new LocalDependency_1.LocalDependencies();
|
|
12
13
|
}
|
|
13
14
|
async scan(files) {
|
|
14
|
-
|
|
15
|
+
let localDependencies = await this.localDependency.search(files);
|
|
15
16
|
if (localDependencies.files.length === 0)
|
|
16
17
|
return { filesList: [] };
|
|
18
|
+
localDependencies = this.purlAdapter(localDependencies);
|
|
17
19
|
const request = this.buildRequest(localDependencies);
|
|
18
20
|
const grpcResponse = await this.grpcDependencyService.get(request);
|
|
19
21
|
const response = grpcResponse.toObject();
|
|
@@ -21,6 +23,18 @@ class DependencyScanner {
|
|
|
21
23
|
this.mergeScopeField(localDependencies, response);
|
|
22
24
|
return response;
|
|
23
25
|
}
|
|
26
|
+
purlAdapter(localDependencies) {
|
|
27
|
+
for (const file of localDependencies.files) {
|
|
28
|
+
for (const purl of file.purls) {
|
|
29
|
+
const version = packageurl_js_1.PackageURL.fromString(purl.purl).version;
|
|
30
|
+
purl.requirement = version;
|
|
31
|
+
purl.purl = purl.purl.replace('@' + version, '');
|
|
32
|
+
if (purl.purl.includes('%2F'))
|
|
33
|
+
purl.purl = purl.purl.replace(/%2F/g, '/');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return localDependencies;
|
|
37
|
+
}
|
|
24
38
|
buildRequest(localDependencies) {
|
|
25
39
|
try {
|
|
26
40
|
const depRequest = new scanoss_dependencies_pb_1.DependencyRequest();
|
|
@@ -65,4 +79,4 @@ class DependencyScanner {
|
|
|
65
79
|
}
|
|
66
80
|
}
|
|
67
81
|
exports.DependencyScanner = DependencyScanner;
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5RUFBc0U7QUFDdEUseUdBQW9IO0FBQ3BILHVFQUFzRTtBQUN0RSxpRUFBOEQ7QUFFOUQsaURBQTJDO0FBRTNDLE1BQWEsaUJBQWlCO0lBTTVCLFlBQVksR0FBRyxHQUFHLElBQUksMkNBQW9CLEVBQUU7UUFDMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksNkNBQXFCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JHLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxtQ0FBaUIsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFHTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQW9CO1FBQ3BDLElBQUksaUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sRUFBQyxTQUFTLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFDakUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXhELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkUsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBR3pDLDhEQUE4RDtRQUM5RCxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFF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
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FingerprintPacket } from "../WfpProvider/FingerprintPacket";
|
|
2
2
|
export declare class DispatchableItem {
|
|
3
|
-
private
|
|
3
|
+
private fingerprintPacket;
|
|
4
4
|
private errorCounter;
|
|
5
|
-
constructor(
|
|
5
|
+
constructor(fingerprintPacket: FingerprintPacket);
|
|
6
6
|
increaseErrorCounter(): void;
|
|
7
|
-
getWinnowerResponse():
|
|
7
|
+
getWinnowerResponse(): FingerprintPacket;
|
|
8
8
|
getContent(): string;
|
|
9
9
|
getErrorCounter(): number;
|
|
10
10
|
}
|
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DispatchableItem = void 0;
|
|
4
4
|
class DispatchableItem {
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
5
|
+
constructor(fingerprintPacket) {
|
|
6
|
+
this.fingerprintPacket = fingerprintPacket;
|
|
7
7
|
this.errorCounter = 0;
|
|
8
8
|
}
|
|
9
9
|
increaseErrorCounter() {
|
|
10
10
|
this.errorCounter += 1;
|
|
11
11
|
}
|
|
12
12
|
getWinnowerResponse() {
|
|
13
|
-
return this.
|
|
13
|
+
return this.fingerprintPacket;
|
|
14
14
|
}
|
|
15
15
|
getContent() {
|
|
16
|
-
return this.
|
|
16
|
+
return this.fingerprintPacket.getContent();
|
|
17
17
|
}
|
|
18
18
|
getErrorCounter() {
|
|
19
19
|
return this.errorCounter;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
exports.DispatchableItem = DispatchableItem;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hhYmxlSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoYWJsZUl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsTUFBYSxnQkFBZ0I7SUFLM0IsWUFBWSxpQkFBb0M7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7Q0FFRjtBQTFCRCw0Q0EwQkMifQ==
|
|
@@ -3,23 +3,23 @@ import { DispatcherResponse } from './Dispatcher/DispatcherResponse';
|
|
|
3
3
|
import { ScannerCfg } from './ScannerCfg';
|
|
4
4
|
import { ScannerInput } from './ScannerTypes';
|
|
5
5
|
export declare class Scanner extends EventEmitter {
|
|
6
|
-
scannerCfg
|
|
7
|
-
workDirectory
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
private
|
|
6
|
+
private scannerCfg;
|
|
7
|
+
private workDirectory;
|
|
8
|
+
private resultFilePath;
|
|
9
|
+
private wfpFilePath;
|
|
10
|
+
private scanRoot;
|
|
11
|
+
private scannerId;
|
|
12
|
+
private wfpProvider;
|
|
11
13
|
private dispatcher;
|
|
12
|
-
|
|
13
|
-
wfpFilePath: any;
|
|
14
|
-
scanFinished: any;
|
|
15
|
-
processingNewData: any;
|
|
16
|
-
responseBuffer: any;
|
|
17
|
-
processedFiles: any;
|
|
18
|
-
running: any;
|
|
19
|
-
filesToScan: any;
|
|
20
|
-
filesNotScanned: any;
|
|
21
|
-
finishPromise: Promise<void>;
|
|
14
|
+
private finishPromise;
|
|
22
15
|
private scannerInput;
|
|
16
|
+
private scanFinished;
|
|
17
|
+
private processingNewData;
|
|
18
|
+
private processedFiles;
|
|
19
|
+
private running;
|
|
20
|
+
private filesToScan;
|
|
21
|
+
private responseBuffer;
|
|
22
|
+
private filesNotScanned;
|
|
23
23
|
constructor(scannerCfg?: ScannerCfg);
|
|
24
24
|
init(): void;
|
|
25
25
|
setWinnowerListeners(): void;
|
|
@@ -41,9 +41,7 @@ export declare class Scanner extends EventEmitter {
|
|
|
41
41
|
scanFromWinnowingFile(wfpFilePath: string): Promise<void>;
|
|
42
42
|
scan(scannerInput: Array<ScannerInput>): Promise<void>;
|
|
43
43
|
private isValidInput;
|
|
44
|
-
getScannerId():
|
|
45
|
-
pause(): void;
|
|
46
|
-
resume(): void;
|
|
44
|
+
getScannerId(): string;
|
|
47
45
|
stop(): void;
|
|
48
|
-
isRunning():
|
|
46
|
+
isRunning(): boolean;
|
|
49
47
|
}
|
|
@@ -9,20 +9,21 @@ exports.Scanner = void 0;
|
|
|
9
9
|
const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
10
10
|
const os_1 = __importDefault(require("os"));
|
|
11
11
|
const fs_1 = __importDefault(require("fs"));
|
|
12
|
-
const Winnower_1 = require("./Winnower/Winnower");
|
|
13
12
|
const Dispatcher_1 = require("./Dispatcher/Dispatcher");
|
|
14
13
|
const DispatchableItem_1 = require("./Dispatcher/DispatchableItem");
|
|
15
14
|
const DispatcherResponse_1 = require("./Dispatcher/DispatcherResponse");
|
|
16
15
|
const ScannerCfg_1 = require("./ScannerCfg");
|
|
17
16
|
const ScannerTypes_1 = require("./ScannerTypes");
|
|
18
17
|
const sort_paths_1 = __importDefault(require("sort-paths"));
|
|
18
|
+
const WfpCalculator_1 = require("./WfpProvider/WfpCalculator/WfpCalculator");
|
|
19
|
+
const WfpSplitter_1 = require("./WfpProvider/WfpSplitter/WfpSplitter");
|
|
19
20
|
let finishPromiseResolve;
|
|
20
21
|
let finishPromiseReject;
|
|
21
22
|
class Scanner extends eventemitter3_1.default {
|
|
22
23
|
constructor(scannerCfg = new ScannerCfg_1.ScannerCfg()) {
|
|
23
24
|
super();
|
|
24
25
|
this.scannerCfg = scannerCfg;
|
|
25
|
-
this.scannerId = new Date().getTime();
|
|
26
|
+
this.scannerId = new Date().getTime().toString();
|
|
26
27
|
}
|
|
27
28
|
init() {
|
|
28
29
|
this.scanFinished = false;
|
|
@@ -32,7 +33,7 @@ class Scanner extends eventemitter3_1.default {
|
|
|
32
33
|
this.responseBuffer = [];
|
|
33
34
|
this.filesToScan = {};
|
|
34
35
|
this.filesNotScanned = {};
|
|
35
|
-
this.
|
|
36
|
+
this.wfpProvider = new WfpCalculator_1.WfpCalculator(this.scannerCfg);
|
|
36
37
|
this.dispatcher = new Dispatcher_1.Dispatcher(this.scannerCfg);
|
|
37
38
|
this.finishPromise = new Promise((resolve, reject) => {
|
|
38
39
|
finishPromiseResolve = resolve;
|
|
@@ -44,28 +45,28 @@ class Scanner extends eventemitter3_1.default {
|
|
|
44
45
|
this.setWorkDirectory(`${os_1.default.tmpdir()}/scanner-${this.getScannerId()}`);
|
|
45
46
|
}
|
|
46
47
|
setWinnowerListeners() {
|
|
47
|
-
this.
|
|
48
|
-
this.emit(ScannerTypes_1.ScannerEvents.WINNOWING_NEW_CONTENT,
|
|
48
|
+
this.wfpProvider.on(ScannerTypes_1.ScannerEvents.WINNOWING_NEW_CONTENT, (fingerprintPacket) => {
|
|
49
|
+
this.emit(ScannerTypes_1.ScannerEvents.WINNOWING_NEW_CONTENT, fingerprintPacket);
|
|
49
50
|
this.reportLog(`[ SCANNER ]: New WFP content`);
|
|
50
|
-
|
|
51
|
-
const disptItem = new DispatchableItem_1.DispatchableItem(
|
|
51
|
+
fingerprintPacket.setEngineFlags(this.scannerInput[0].engineFlags);
|
|
52
|
+
const disptItem = new DispatchableItem_1.DispatchableItem(fingerprintPacket);
|
|
52
53
|
this.dispatcher.dispatchItem(disptItem);
|
|
53
54
|
});
|
|
54
|
-
this.
|
|
55
|
+
this.wfpProvider.on(ScannerTypes_1.ScannerEvents.WINNOWER_LOG, (msg) => {
|
|
55
56
|
this.reportLog(msg);
|
|
56
57
|
});
|
|
57
|
-
this.
|
|
58
|
+
this.wfpProvider.on(ScannerTypes_1.ScannerEvents.ERROR, (error) => {
|
|
58
59
|
this.errorHandler(error, ScannerTypes_1.ScannerEvents.MODULE_WINNOWER);
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
62
|
setDispatcherListeners() {
|
|
62
63
|
this.dispatcher.on(ScannerTypes_1.ScannerEvents.DISPATCHER_QUEUE_SIZE_MAX_LIMIT, () => {
|
|
63
64
|
this.reportLog(`[ SCANNER ]: Maximum queue size reached. Winnower will be paused`);
|
|
64
|
-
this.
|
|
65
|
+
this.wfpProvider.pause();
|
|
65
66
|
});
|
|
66
67
|
this.dispatcher.on(ScannerTypes_1.ScannerEvents.DISPATCHER_QUEUE_SIZE_MIN_LIMIT, () => {
|
|
67
68
|
this.reportLog(`[ SCANNER ]: Minimum queue size reached. Winnower will be resumed`);
|
|
68
|
-
this.
|
|
69
|
+
this.wfpProvider.resume();
|
|
69
70
|
});
|
|
70
71
|
this.dispatcher.on(ScannerTypes_1.ScannerEvents.DISPATCHER_NEW_DATA, async (response) => {
|
|
71
72
|
this.processingNewData = true;
|
|
@@ -80,7 +81,7 @@ class Scanner extends eventemitter3_1.default {
|
|
|
80
81
|
await this.finishJob();
|
|
81
82
|
});
|
|
82
83
|
this.dispatcher.on(ScannerTypes_1.ScannerEvents.DISPATCHER_FINISHED, async () => {
|
|
83
|
-
if (!this.
|
|
84
|
+
if (!this.wfpProvider.hasPendingFiles()) {
|
|
84
85
|
if (this.processingNewData)
|
|
85
86
|
this.scanFinished = true;
|
|
86
87
|
else
|
|
@@ -91,7 +92,7 @@ class Scanner extends eventemitter3_1.default {
|
|
|
91
92
|
const filesNotScanned = disptItem.getWinnowerResponse().getFilesWinnowed();
|
|
92
93
|
this.appendFilesToNotScanned(filesNotScanned);
|
|
93
94
|
});
|
|
94
|
-
this.
|
|
95
|
+
this.wfpProvider.on(ScannerTypes_1.ScannerEvents.DISPATCHER_LOG, (msg) => {
|
|
95
96
|
this.reportLog(msg);
|
|
96
97
|
});
|
|
97
98
|
this.dispatcher.on(ScannerTypes_1.ScannerEvents.ERROR, (error, disptItem) => {
|
|
@@ -154,8 +155,19 @@ class Scanner extends eventemitter3_1.default {
|
|
|
154
155
|
async finishJob() {
|
|
155
156
|
this.scannerInput.shift();
|
|
156
157
|
this.reportLog(`[ SCANNER ]: Job finished. ${this.scannerInput.length} pendings`);
|
|
157
|
-
if (this.scannerInput.length)
|
|
158
|
-
|
|
158
|
+
if (this.scannerInput.length) {
|
|
159
|
+
if (this.scannerInput[0].wfpPath) {
|
|
160
|
+
this.wfpProvider = new WfpSplitter_1.WfpSplitter();
|
|
161
|
+
this.setWinnowerListeners();
|
|
162
|
+
this.wfpProvider.start({ wfpPath: this.scannerInput[0].wfpPath });
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
const folderRoot = this.scannerInput[0].folderRoot;
|
|
166
|
+
const winnowingMode = this.scannerInput[0].winnowingMode;
|
|
167
|
+
const fileList = this.scannerInput[0].fileList;
|
|
168
|
+
this.wfpProvider.start({ folderRoot, winnowingMode, fileList });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
159
171
|
else
|
|
160
172
|
await this.finishScan();
|
|
161
173
|
}
|
|
@@ -206,18 +218,27 @@ class Scanner extends eventemitter3_1.default {
|
|
|
206
218
|
scanFromWinnowingFile(wfpFilePath) {
|
|
207
219
|
this.init();
|
|
208
220
|
this.createOutputFiles();
|
|
209
|
-
this.winnower.startWinnowingFromFile(wfpFilePath);
|
|
210
221
|
return this.finishPromise;
|
|
211
222
|
}
|
|
212
223
|
scan(scannerInput) {
|
|
213
224
|
this.init();
|
|
214
225
|
this.createOutputFiles();
|
|
215
226
|
this.scannerInput = scannerInput;
|
|
216
|
-
if (!this.isValidInput(scannerInput)) {
|
|
217
|
-
|
|
218
|
-
|
|
227
|
+
// if (!this.isValidInput(scannerInput)) {
|
|
228
|
+
// this.finishScan();
|
|
229
|
+
// return this.finishPromise;
|
|
230
|
+
// }
|
|
231
|
+
if (scannerInput[0].wfpPath) {
|
|
232
|
+
this.wfpProvider = new WfpSplitter_1.WfpSplitter();
|
|
233
|
+
this.setWinnowerListeners();
|
|
234
|
+
this.wfpProvider.start({ wfpPath: scannerInput[0].wfpPath });
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
const folderRoot = this.scannerInput[0].folderRoot;
|
|
238
|
+
const winnowingMode = this.scannerInput[0].winnowingMode;
|
|
239
|
+
const fileList = this.scannerInput[0].fileList;
|
|
240
|
+
this.wfpProvider.start({ folderRoot, winnowingMode, fileList });
|
|
219
241
|
}
|
|
220
|
-
this.winnower.startWinnowing(this.scannerInput[0]);
|
|
221
242
|
return this.finishPromise;
|
|
222
243
|
}
|
|
223
244
|
isValidInput(scannerInput) {
|
|
@@ -242,27 +263,17 @@ class Scanner extends eventemitter3_1.default {
|
|
|
242
263
|
getScannerId() {
|
|
243
264
|
return this.scannerId;
|
|
244
265
|
}
|
|
245
|
-
pause() {
|
|
246
|
-
this.running = false;
|
|
247
|
-
this.winnower.pause();
|
|
248
|
-
// this.dispatcher.pause();
|
|
249
|
-
}
|
|
250
|
-
resume() {
|
|
251
|
-
this.running = true;
|
|
252
|
-
this.winnower.resume();
|
|
253
|
-
// this.dispatcher.resume();
|
|
254
|
-
}
|
|
255
266
|
stop() {
|
|
256
267
|
this.reportLog(`[ SCANNER ]: Stopping scanner`);
|
|
257
268
|
this.running = false;
|
|
258
|
-
this.
|
|
269
|
+
this.wfpProvider.removeAllListeners();
|
|
259
270
|
this.dispatcher.removeAllListeners();
|
|
260
271
|
this.dispatcher.stop();
|
|
261
|
-
this.
|
|
272
|
+
this.wfpProvider.stop();
|
|
262
273
|
}
|
|
263
274
|
isRunning() {
|
|
264
275
|
return this.running;
|
|
265
276
|
}
|
|
266
277
|
}
|
|
267
278
|
exports.Scanner = Scanner;
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2Nhbm5lci9TY2FubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixNQUFNO0FBQ04sa0VBQXlDO0FBQ3pDLDRDQUFvQjtBQUNwQiw0Q0FBb0I7QUFFcEIsa0RBQStDO0FBQy9DLHdEQUFxRDtBQUVyRCxvRUFBaUU7QUFDakUsd0VBQXFFO0FBQ3JFLDZDQUEwQztBQUMxQyxpREFBNkQ7QUFFN0QsNERBQW1DO0FBSW5DLElBQUksb0JBQW9CLENBQUM7QUFDekIsSUFBSSxtQkFBbUIsQ0FBQztBQUl4QixNQUFhLE9BQVEsU0FBUSx1QkFBWTtJQW1DdkMsWUFBWSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxFQUFFO1FBQ3ZDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksbUJBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHVCQUFVLENBQUMsSUFBSSxD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
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2Nhbm5lci9TY2FubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixNQUFNO0FBQ04sa0VBQXlDO0FBQ3pDLDRDQUFvQjtBQUNwQiw0Q0FBb0I7QUFHcEIsd0RBQXFEO0FBRXJELG9FQUFpRTtBQUNqRSx3RUFBcUU7QUFDckUsNkNBQTBDO0FBQzFDLGlEQUE2RDtBQUU3RCw0REFBbUM7QUFJbkMsNkVBQTBFO0FBQzFFLHVFQUFvRTtBQUVwRSxJQUFJLG9CQUFvQixDQUFDO0FBQ3pCLElBQUksbUJBQW1CLENBQUM7QUFJeEIsTUFBYSxPQUFRLFNBQVEsdUJBQVk7SUFtQ3ZDLFlBQVksVUFBVSxHQUFHLElBQUksdUJBQVUsRUFBRTtRQUN2QyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLDZCQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxVQUFV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
|
|
@@ -18,10 +18,10 @@ class ScannerCfg {
|
|
|
18
18
|
this.ABORT_ON_MAX_RETRIES = true;
|
|
19
19
|
// Persist results after [ X ] number of server responses.
|
|
20
20
|
this.MAX_RESPONSES_IN_BUFFER = 300;
|
|
21
|
-
this.DISPATCHER_QUEUE_SIZE_MAX_LIMIT =
|
|
22
|
-
this.DISPATCHER_QUEUE_SIZE_MIN_LIMIT =
|
|
21
|
+
this.DISPATCHER_QUEUE_SIZE_MAX_LIMIT = 300;
|
|
22
|
+
this.DISPATCHER_QUEUE_SIZE_MIN_LIMIT = 200;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
exports.ScannerCfg = ScannerCfg;
|
|
26
26
|
;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nhbm5lckNmZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2Nhbm5lci9TY2FubmVyQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQWEsVUFBVTtJQUF2QjtRQUNFLG1CQUFtQjtRQUNuQixxQkFBZ0IsR0FBRyxZQUFZLENBQUE7UUFFL0IsVUFBVTtRQUNWLFlBQU8sR0FBRyxtQ0FBbUMsQ0FBQztRQUU5QyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWIsdUJBQXVCO1FBQ3ZCLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUV2QiwrQkFBK0I7UUFDL0IsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixzQ0FBc0M7UUFDdEMsc0JBQWlCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUU5Qix3Q0FBbUMsR0FBRyxDQUFDLENBQUM7UUFFeEMseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRTVCLDBEQUEwRDtRQUMxRCw0QkFBdUIsR0FBRyxHQUFHLENBQUM7UUFFOUIsb0NBQStCLEdBQUcsR0FBRyxDQUFDO1FBRXRDLG9DQUErQixHQUFHLEdBQUcsQ0FBQztJQUN4QyxDQUFDO0NBQUE7QUE1QkQsZ0NBNEJDO0FBQUEsQ0FBQyJ9
|
|
@@ -32,4 +32,4 @@ var WinnowingMode;
|
|
|
32
32
|
})(WinnowingMode = exports.WinnowingMode || (exports.WinnowingMode = {}));
|
|
33
33
|
;
|
|
34
34
|
;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nhbm5lclR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zY2FubmVyL1NjYW5uZXJUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLGFBNEJYO0FBNUJELFdBQVksYUFBYTtJQUN2QiwwREFBeUMsQ0FBQTtJQUN6QyxnRUFBK0MsQ0FBQTtJQUMvQywwREFBeUMsQ0FBQTtJQUN6Qyw4Q0FBNkIsQ0FBQTtJQUU3QixnRUFBK0MsQ0FBQTtJQUMvQyw0REFBMkMsQ0FBQTtJQUMzQyw0REFBMkMsQ0FBQTtJQUMzQyxnRkFBK0QsQ0FBQTtJQUMvRCwwRUFBeUQsQ0FBQTtJQUN6RCxvRkFBbUUsQ0FBQTtJQUNuRSxrREFBaUMsQ0FBQTtJQUVqQyxnRUFBK0MsQ0FBQTtJQUUvQyx3REFBdUMsQ0FBQTtJQUN2Qyx3REFBdUMsQ0FBQTtJQUV2Qyx3REFBdUMsQ0FBQTtJQUN2QyxvREFBbUMsQ0FBQTtJQUVuQyx3Q0FBdUIsQ0FBQTtJQUN2QixzREFBcUMsQ0FBQTtJQUVyQyw0Q0FBMkIsQ0FBQTtJQUUzQixnQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUE1QlcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUE0QnhCO0FBQUEsQ0FBQztBQUVGLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2QixrREFBaUMsQ0FBQTtJQUNqQywwREFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBSFcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFHeEI7QUFBQSxDQUFDO0FBUUQsQ0FBQyJ9
|