scanoss 0.2.22 → 0.2.23
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 +2 -2
- package/build/main/commands/scan.js +4 -5
- 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 +2 -2
- 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 +11 -0
- package/build/main/lib/scanner/WfpProvider/FingerprintPacket.js +32 -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 +62 -0
- package/build/main/lib/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +20 -0
- package/build/main/lib/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +96 -0
- package/build/main/lib/scanner/Winnower/WinnowerExtractor.js +1 -1
- package/build/module/bin/cli-bin.js +2 -2
- package/build/module/commands/scan.js +4 -5
- 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 +2 -2
- 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 +11 -0
- package/build/module/lib/scanner/WfpProvider/FingerprintPacket.js +31 -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 +64 -0
- package/build/module/lib/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +20 -0
- package/build/module/lib/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +95 -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 +19948 -0
- package/package.json +1 -1
- package/src/bin/cli-bin.ts +3 -3
- package/src/commands/scan.ts +3 -3
- package/src/index.js +1 -0
- 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} +5 -5
- package/src/lib/scanner/{Winnower/Winnower.ts → WfpProvider/WfpCalculator/WfpCalculator.ts} +33 -119
- package/src/lib/scanner/WfpProvider/WfpProvider.ts +90 -0
- package/src/lib/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts +122 -0
- package/src/lib/scanner/Winnower/WinnowerExtractor.ts +0 -1
package/.cspell.json
CHANGED
|
@@ -16,7 +16,7 @@ async function main() {
|
|
|
16
16
|
commander_1.program
|
|
17
17
|
.command('scan <source>')
|
|
18
18
|
.description('Scan a folder/file')
|
|
19
|
-
|
|
19
|
+
.option('-w, --wfp', 'Scan a .wfp file instead of a folder')
|
|
20
20
|
.option('-c, --concurrency <number>', 'Number of concurrent connections to use while scanning (optional -default 10)')
|
|
21
21
|
.option('--filter <path>', 'Loads an user defined filter (optional)')
|
|
22
22
|
.option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
|
|
@@ -47,4 +47,4 @@ catch (e) {
|
|
|
47
47
|
console.error(e);
|
|
48
48
|
process.exit(1);
|
|
49
49
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vY2xpLWJpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx5Q0FBb0M7QUFDcEMseUNBQTZDO0FBQzdDLDJDQUErQztBQUUvQyxTQUFTLGVBQWUsQ0FBQyxDQUFRO0lBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFLRCxLQUFLLFVBQVUsSUFBSTtJQUNqQixtQkFBTztTQUNKLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDakIsV0FBVyxDQUFDLDRHQUE0RyxDQUFDLENBQUE7SUFFNUgsbUJBQU87U0FDSixPQUFPLENBQUMsZUFBZSxDQUFDO1NBQ3hCLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztTQUNqQyxNQUFNLENBQUMsV0FBVyxFQUFFLHNDQUFzQyxDQUFDO1NBQzNELE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSwrRUFBK0UsQ0FBQztTQUNySCxNQUFNLENBQUMsaUJBQWlCLEVBQUUseUNBQXlDLENBQUM7U0FDcEUsTUFBTSxDQUFDLHlCQUF5QixFQUFFLHFEQUFxRCxDQUFDO1NBQ3hGLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxtUkFBbVIsQ0FBQztTQUNsVCxNQUFNLENBQUMsNEJBQTRCLEVBQUUsaUZBQWlGLENBQUM7U0FDdkgsTUFBTSxDQUFDLHlCQUF5QixFQUFFLDJEQUEyRCxDQUFDO1NBQzlGLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxvRUFBb0UsQ0FBQztTQUN2RyxNQUFNLENBQUMsdUJBQXVCLEVBQUUseUVBQXlFLENBQUM7U0FDMUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFLHVFQUF1RSxDQUFDO1NBQ2xHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsOEJBQThCLENBQUM7U0FDdkQsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUUsSUFBQSxrQkFBVyxFQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDO1NBQzlGLFdBQVcsQ0FBQyxPQUFPLEVBQUU7OzBEQUVnQyxDQUNyRCxDQUFDO0lBRUYsbUJBQU87U0FDTixPQUFPLENBQUMsY0FBYyxDQUFDO1NBQ3ZCLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUM3QyxNQUFNLENBQUMseUJBQXlCLEVBQUUscURBQXFELENBQUM7U0FDeEYsTUFBTSxDQUFDLHdCQUF3QixFQUFFLHFEQUFxRCxDQUFDO1NBQ3ZGLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSw4Q0FBOEMsQ0FBQztTQUVoRixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRSxJQUFBLGdCQUFVLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQTtJQUU5RixNQUFNLG1CQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBR0QsSUFBSTtJQUNGLElBQUksRUFBRSxDQUFDO0NBQ1I7QUFBQyxPQUFPLENBQUMsRUFBRTtJQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNqQiJ9
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUFpRDtBQUNqRCw4REFBMEU7QUFDMUUsMERBQXVEO0FBQ3ZELDJDQUF3QztBQUV4QyxnRUFBdUM7QUFFdkMsZ0VBQTZEO0FBQzdELHdEQUFzRDtBQUV0RCx1Q0FBcUM7QUFFckMsNENBQW9CO0FBSWIsS0FBSyxVQUFVLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE9BQVk7SUFFOUQsSUFBSSxZQUFZLEdBQWlCLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBRWhELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGtDQUFrQztJQUMzRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLDBDQUEwQztJQUNoRyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUEsa0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxnREFBZ0Q7SUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxFQUFFLENBQUM7SUFDcEMsSUFBRyxPQUFPLENBQUMsV0FBVztRQUFFLFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JGLElBQUcsT0FBTyxDQUFDLFFBQVE7UUFBRSxVQUFVLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDdEYsSUFBRyxPQUFPLENBQUMsTUFBTTtRQUFFLFVBQVUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUN2RCxJQUFHLE9BQU8sQ0FBQyxHQUFHO1FBQUUsVUFBVSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ2pELElBQUcsT0FBTyxDQUFDLE9BQU87UUFBRSxVQUFVLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ2hFLElBQUcsT0FBTyxDQUFDLFFBQVE7UUFBRSxVQUFVLENBQUMsbUNBQW1DLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN2RixNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFeEMsWUFBWSxDQUFDLFVBQVUsR0FBRyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsMkRBQTJEO0lBQ3JHLElBQUcsT0FBTyxDQUFDLEtBQUs7UUFBRSxZQUFZLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFFM0QsSUFBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDZixJQUFHLFlBQVksRUFBRTtZQUNmLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksc0JBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVsQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3RCxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7Z0JBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTJCLENBQUMsQ0FBQzthQUMxQztZQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixZQUFZLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QzthQUFNO1lBQ0wsWUFBWSxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3BDO0tBQ0Y7U0FBTTtRQUNMLE1BQU0sU0FBUyxHQUFHLFlBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDakUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7S0FDekU7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUNwQixNQUFNLE9BQU8sR0FBRyxFQUFFLE1BQU0sRUFBRSx5RUFBeUUsRUFBRSxDQUFDO1FBQ3RHLE1BQU0sSUFBSSxHQUFHLElBQUksc0JBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLHNCQUFXLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFNUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyw0QkFBYSxDQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBNEIsRUFBRSxFQUFFO1lBQzdFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEVBQUUsQ0FBQyw0QkFBYSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsR0FBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztLQUMzRTtTQUFNO1FBQ0wsT0FBTyxDQUFDLEVBQUUsQ0FBQyw0QkFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0tBQzVFO0lBRUQsT0FBTyxDQUFDLEVBQUUsQ0FBQyw0QkFBYSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUU7UUFDdkQsSUFBRyxPQUFPLENBQUMsTUFBTTtZQUNmLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzs7WUFFdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxPQUFPLENBQUMsR0FBRztRQUFFLFlBQVksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO0lBQ2pELE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFFckMsQ0FBQztBQXJFRCxrQ0FxRUMifQ==
|
|
@@ -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,8 +18,8 @@ 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 = 20;
|
|
22
|
+
this.DISPATCHER_QUEUE_SIZE_MIN_LIMIT = 16;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
exports.ScannerCfg = ScannerCfg;
|
|
@@ -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
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class FingerprintPacket {
|
|
2
|
+
private wfpContent;
|
|
3
|
+
private engineFlags;
|
|
4
|
+
private scanRoot;
|
|
5
|
+
constructor(wfpContent: string, scanRoot?: string);
|
|
6
|
+
isEqual(fingerprintPacket: FingerprintPacket): boolean;
|
|
7
|
+
getContent(): string;
|
|
8
|
+
setEngineFlags(engineFlags: number): void;
|
|
9
|
+
getEngineFlags(): number;
|
|
10
|
+
getFilesFingerprinted(): any[] | "";
|
|
11
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FingerprintPacket = void 0;
|
|
4
|
+
class FingerprintPacket {
|
|
5
|
+
constructor(wfpContent, scanRoot = '') {
|
|
6
|
+
this.wfpContent = wfpContent;
|
|
7
|
+
this.scanRoot = scanRoot;
|
|
8
|
+
}
|
|
9
|
+
isEqual(fingerprintPacket) {
|
|
10
|
+
return this.getContent() === fingerprintPacket.getContent();
|
|
11
|
+
}
|
|
12
|
+
getContent() {
|
|
13
|
+
return this.wfpContent;
|
|
14
|
+
}
|
|
15
|
+
setEngineFlags(engineFlags) {
|
|
16
|
+
this.engineFlags = engineFlags;
|
|
17
|
+
}
|
|
18
|
+
getEngineFlags() {
|
|
19
|
+
return this.engineFlags;
|
|
20
|
+
}
|
|
21
|
+
getFilesFingerprinted() {
|
|
22
|
+
const files = [];
|
|
23
|
+
const regExp = new RegExp(/,(\/.*)/g);
|
|
24
|
+
let result;
|
|
25
|
+
// eslint-disable-next-line no-cond-assign
|
|
26
|
+
while ((result = regExp.exec(this.wfpContent)))
|
|
27
|
+
files.push(this.scanRoot + result[1]);
|
|
28
|
+
return files || '';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.FingerprintPacket = FingerprintPacket;
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmluZ2VycHJpbnRQYWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NjYW5uZXIvV2ZwUHJvdmlkZXIvRmluZ2VycHJpbnRQYWNrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxpQkFBaUI7SUFPNUIsWUFBWSxVQUFrQixFQUFFLFFBQVEsR0FBRyxFQUFFO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFTSxPQUFPLENBQUMsaUJBQW9DO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxjQUFjLENBQUMsV0FBbUI7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksTUFBTSxDQUFDO1FBQ1gsMENBQTBDO1FBQzFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEYsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQXBDRCw4Q0FvQ0MifQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ScannableItem } from '../../Scannable/ScannableItem';
|
|
2
|
+
import { ScannerCfg } from '../../ScannerCfg';
|
|
3
|
+
import { IWfpProviderInput, WfpProvider } from '../WfpProvider';
|
|
4
|
+
export declare class WfpCalculator extends WfpProvider {
|
|
5
|
+
private fileList;
|
|
6
|
+
private fileListIndex;
|
|
7
|
+
private continue;
|
|
8
|
+
constructor(scannerCfg?: ScannerCfg);
|
|
9
|
+
init(): void;
|
|
10
|
+
prepareWorker(): void;
|
|
11
|
+
recoveryIndex(): 0 | -1;
|
|
12
|
+
forceStopWorker(): void;
|
|
13
|
+
protected processPackedWfp(content: any): void;
|
|
14
|
+
getNextScannableItem(): Promise<ScannableItem>;
|
|
15
|
+
nextStepMachine(): Promise<void>;
|
|
16
|
+
start(params: IWfpProviderInput): void;
|
|
17
|
+
pause(): void;
|
|
18
|
+
resume(): void;
|
|
19
|
+
stop(): void;
|
|
20
|
+
}
|