scanoss 0.2.8 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +6 -5
- package/build/main/bin/cli-bin.js +4 -3
- package/build/main/commands/scan.js +20 -38
- package/build/main/index.d.ts +1 -1
- package/build/main/index.js +2 -2
- package/build/main/lib/scanner/Dispatcher/DispatchableItem.js +1 -1
- package/build/main/lib/scanner/Dispatcher/Dispatcher.d.ts +3 -2
- package/build/main/lib/scanner/Dispatcher/Dispatcher.js +15 -13
- package/build/main/lib/scanner/Scannable/ScannableItem.d.ts +4 -3
- package/build/main/lib/scanner/Scannable/ScannableItem.js +6 -6
- package/build/main/lib/scanner/Scanner.d.ts +5 -5
- package/build/main/lib/scanner/Scanner.js +37 -40
- package/build/main/lib/scanner/ScannerTypes.d.ts +32 -0
- package/build/main/lib/scanner/ScannerTypes.js +35 -0
- package/build/main/lib/scanner/Winnower/Winnower.d.ts +5 -2
- package/build/main/lib/scanner/Winnower/Winnower.js +25 -22
- package/build/main/lib/scanner/Winnower/WinnowerResponse.d.ts +3 -0
- package/build/main/lib/scanner/Winnower/WinnowerResponse.js +7 -1
- package/build/main/lib/tree/Tree.js +3 -3
- package/build/module/bin/cli-bin.js +4 -3
- package/build/module/commands/scan.js +16 -34
- package/build/module/index.d.ts +1 -1
- package/build/module/index.js +2 -2
- package/build/module/lib/scanner/Dispatcher/DispatchableItem.js +1 -1
- package/build/module/lib/scanner/Dispatcher/Dispatcher.d.ts +3 -2
- package/build/module/lib/scanner/Dispatcher/Dispatcher.js +6 -4
- package/build/module/lib/scanner/Scannable/ScannableItem.d.ts +4 -3
- package/build/module/lib/scanner/Scannable/ScannableItem.js +7 -7
- package/build/module/lib/scanner/Scanner.d.ts +5 -5
- package/build/module/lib/scanner/Scanner.js +18 -20
- package/build/module/lib/scanner/ScannerTypes.d.ts +32 -0
- package/build/module/lib/scanner/ScannerTypes.js +32 -0
- package/build/module/lib/scanner/Winnower/Winnower.d.ts +5 -2
- package/build/module/lib/scanner/Winnower/Winnower.js +20 -16
- package/build/module/lib/scanner/Winnower/WinnowerResponse.d.ts +3 -0
- package/build/module/lib/scanner/Winnower/WinnowerResponse.js +8 -2
- package/build/module/lib/tree/Tree.js +3 -3
- package/build/tsconfig.module.tsbuildinfo +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package-lock.json +18266 -0
- package/package.json +1 -1
- package/src/bin/cli-bin.ts +6 -3
- package/src/commands/scan.ts +15 -47
- package/src/index.ts +1 -1
- package/src/lib/scanner/Dispatcher/DispatchableItem.ts +1 -1
- package/src/lib/scanner/Dispatcher/Dispatcher.ts +10 -6
- package/src/lib/scanner/Scannable/ScannableItem.ts +10 -7
- package/src/lib/scanner/Scanner.ts +20 -23
- package/src/lib/scanner/{ScannerEvents.ts → ScannerTypes.ts} +12 -0
- package/src/lib/scanner/Winnower/Winnower.ts +21 -15
- package/src/lib/scanner/Winnower/WinnowerResponse.ts +9 -1
- package/src/lib/tree/Tree.ts +2 -2
- package/yarn.lock +5209 -5127
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.2.10](https://github.com/scanoss/scanoss.js/compare/v0.2.8...v0.2.10) (2022-01-11)
|
|
6
|
+
|
|
5
7
|
### [0.2.8](https://github.com/scanoss/scanoss.js/compare/v0.2.6...v0.2.8) (2022-01-10)
|
|
6
8
|
|
|
7
9
|
### [0.2.6](https://github.com/scanoss/scanoss.js/compare/v0.2.4...v0.2.6) (2022-01-06)
|
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ A simple example that scans two files and writes the result in the project folde
|
|
|
40
40
|
|
|
41
41
|
```typescript
|
|
42
42
|
// Import as ES6
|
|
43
|
-
import { Scanner, ScannerEvents } from 'scanoss';
|
|
43
|
+
import { Scanner, ScannerEvents, ScannerTypes } from 'scanoss';
|
|
44
44
|
|
|
45
45
|
// Import as CommonJS
|
|
46
46
|
// const { Scanner, ScannerEvents } = require('scanoss');
|
|
@@ -60,11 +60,12 @@ scanner.on(ScannerEvents.SCAN_DONE, (resultPath) => {
|
|
|
60
60
|
console.log('Path to results: ', resultPath);
|
|
61
61
|
});
|
|
62
62
|
|
|
63
|
+
const scannerInput = {
|
|
64
|
+
fileList: ['/yourProjectFolder/example1.c', '/yourProjectFolder/example2.c'],
|
|
65
|
+
};
|
|
66
|
+
|
|
63
67
|
// Launch the scanner
|
|
64
|
-
scanner.
|
|
65
|
-
'/yourProjectFolder/example1.c': 'FULL_SCAN',
|
|
66
|
-
'/yourProjectFolder/example2.c': 'FULL_SCAN',
|
|
67
|
-
});
|
|
68
|
+
scanner.scan(scannerInput);
|
|
68
69
|
```
|
|
69
70
|
|
|
70
71
|
### Events
|
|
@@ -10,15 +10,16 @@ function CLIErrorHandler(e) {
|
|
|
10
10
|
}
|
|
11
11
|
async function main() {
|
|
12
12
|
commander_1.program
|
|
13
|
-
.version(
|
|
13
|
+
.version("0.2.9")
|
|
14
14
|
.description('The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.');
|
|
15
15
|
commander_1.program
|
|
16
16
|
.command('scan <source>')
|
|
17
17
|
.description('Scan a folder/file')
|
|
18
18
|
//.option('-w, --wfp', 'Scan a .wfp file instead of a folder') // In progress
|
|
19
19
|
.option('-c, --concurrency <number>', 'Number of concurrent connections to use while scanning (optional -default 10)')
|
|
20
|
-
.option('
|
|
20
|
+
.option('--filter <path>', 'Loads an user defined filter (optional)')
|
|
21
21
|
.option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
|
|
22
|
+
.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)')
|
|
22
23
|
.option('-P, --post-size <postsize>', 'Number of kilobytes to limit the post to while scanning (optional - default 64)')
|
|
23
24
|
.option('-R, --max-retry <retry>', 'Max number of retries for each POST (optional -default 5)')
|
|
24
25
|
.option('-M, --timeout <timeout>', 'Timeout (in seconds) for API communication (optional -default 120)')
|
|
@@ -38,4 +39,4 @@ catch (e) {
|
|
|
38
39
|
console.error(e);
|
|
39
40
|
process.exit(1);
|
|
40
41
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vY2xpLWJpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx5Q0FBb0M7QUFDcEMsMkNBQStDO0FBRS9DLFNBQVMsZUFBZSxDQUFDLENBQVE7SUFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUtELEtBQUssVUFBVSxJQUFJO0lBQ2pCLG1CQUFPO1NBQ0osT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUNoQixXQUFXLENBQUMsNEdBQTRHLENBQUMsQ0FBQTtJQUU1SCxtQkFBTztTQUNKLE9BQU8sQ0FBQyxlQUFlLENBQUM7U0FDeEIsV0FBVyxDQUFDLG9CQUFvQixDQUFDO1FBQ2xDLDZFQUE2RTtTQUM1RSxNQUFNLENBQUMsNEJBQTRCLEVBQUUsK0VBQStFLENBQUM7U0FDckgsTUFBTSxDQUFDLGlCQUFpQixFQUFFLHlDQUF5QyxDQUFDO1NBQ3BFLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxxREFBcUQsQ0FBQztTQUN4RixNQUFNLENBQUMscUJBQXFCLEVBQUUsbVJBQW1SLENBQUM7U0FDbFQsTUFBTSxDQUFDLDRCQUE0QixFQUFFLGlGQUFpRixDQUFDO1NBQ3ZILE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSwyREFBMkQsQ0FBQztTQUM5RixNQUFNLENBQUMseUJBQXlCLEVBQUUsb0VBQW9FLENBQUM7U0FDdkcsTUFBTSxDQUFDLHVCQUF1QixFQUFFLHlFQUF5RSxDQUFDO1NBQzFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSx1RUFBdUUsQ0FBQztTQUNsRyxNQUFNLENBQUMsZUFBZSxFQUFFLDhCQUE4QixDQUFDO1NBQ3ZELE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFFLElBQUEsa0JBQVcsRUFBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQztTQUM5RixXQUFXLENBQUMsT0FBTyxFQUFFOzswREFFZ0MsQ0FDckQsQ0FBQztJQUdGLE1BQU0sbUJBQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRzNDLENBQUM7QUFHRCxJQUFJO0lBQ0YsSUFBSSxFQUFFLENBQUM7Q0FDUjtBQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2pCIn0=
|
|
@@ -5,21 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.scanHandler = void 0;
|
|
7
7
|
const Scanner_1 = require("../lib/scanner/Scanner");
|
|
8
|
-
const
|
|
8
|
+
const ScannerTypes_1 = require("../lib/scanner/ScannerTypes");
|
|
9
9
|
const ScannerCfg_1 = require("../lib/scanner/ScannerCfg");
|
|
10
10
|
const Tree_1 = require("../lib/tree/Tree");
|
|
11
11
|
const cli_progress_1 = __importDefault(require("cli-progress"));
|
|
12
12
|
const defaultFilter_1 = require("../lib/filters/defaultFilter");
|
|
13
13
|
const filtering_1 = require("../lib/filters/filtering");
|
|
14
14
|
const fs_1 = __importDefault(require("fs"));
|
|
15
|
-
var FilterTypes;
|
|
16
|
-
(function (FilterTypes) {
|
|
17
|
-
FilterTypes["BANNED"] = "BANNED";
|
|
18
|
-
FilterTypes["WHITELIST"] = "WHITELIST";
|
|
19
|
-
FilterTypes["FULL_SCAN"] = "FULL_SCAN";
|
|
20
|
-
FilterTypes["QUICK_SCAN"] = "QUICK_SCAN";
|
|
21
|
-
})(FilterTypes || (FilterTypes = {}));
|
|
22
|
-
;
|
|
23
15
|
// Async function that verify if a path is a folder. If the path is not valid the promise will be rejected
|
|
24
16
|
const isFolder = (path) => {
|
|
25
17
|
return new Promise((resolve, reject) => {
|
|
@@ -33,14 +25,10 @@ const isFolder = (path) => {
|
|
|
33
25
|
});
|
|
34
26
|
});
|
|
35
27
|
};
|
|
36
|
-
async function printJSON(path) {
|
|
37
|
-
const jsonTxt = await fs_1.default.promises.readFile(path, 'utf8');
|
|
38
|
-
console.log(jsonTxt);
|
|
39
|
-
}
|
|
40
28
|
async function scanHandler(rootPath, options) {
|
|
41
|
-
let
|
|
42
|
-
|
|
43
|
-
|
|
29
|
+
let scannerInput = { fileList: [] };
|
|
30
|
+
rootPath = rootPath.replace(/\/$/, ''); // Remove trailing slash if exists
|
|
31
|
+
rootPath = rootPath.replace(/^\./, process.env.PWD); // Convert relative path to absolute path.
|
|
44
32
|
const pathIsFolder = await isFolder(rootPath);
|
|
45
33
|
// Create scanner and set connections parameters
|
|
46
34
|
const scannerCfg = new ScannerCfg_1.ScannerCfg();
|
|
@@ -48,7 +36,7 @@ async function scanHandler(rootPath, options) {
|
|
|
48
36
|
scannerCfg.CONCURRENCY_LIMIT = parseInt(options.concurrency);
|
|
49
37
|
if (options.postSize)
|
|
50
38
|
scannerCfg.WFP_FILE_MAX_SIZE = parseInt(options.postSize) * 1024;
|
|
51
|
-
if (options.
|
|
39
|
+
if (options.apiurl)
|
|
52
40
|
scannerCfg.API_URL = options.apiurl;
|
|
53
41
|
if (options.key)
|
|
54
42
|
scannerCfg.API_KEY = options.key;
|
|
@@ -57,10 +45,11 @@ async function scanHandler(rootPath, options) {
|
|
|
57
45
|
if (options.maxRetry)
|
|
58
46
|
scannerCfg.MAX_RETRIES_FOR_RECOVERABLES_ERRORS = options.maxRetry;
|
|
59
47
|
const scanner = new Scanner_1.Scanner(scannerCfg);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
48
|
+
scannerInput.folderRoot = rootPath + '/'; // This will remove the project root path from the results.
|
|
49
|
+
if (options.flags)
|
|
50
|
+
scannerInput.engineFlags = options.flags;
|
|
51
|
+
if (!options.wfp) {
|
|
52
|
+
if (pathIsFolder) {
|
|
64
53
|
const tree = new Tree_1.Tree(rootPath);
|
|
65
54
|
const filter = new filtering_1.FilterList('');
|
|
66
55
|
if (options.filter) {
|
|
@@ -74,36 +63,29 @@ async function scanHandler(rootPath, options) {
|
|
|
74
63
|
console.error('Reading directory... ');
|
|
75
64
|
tree.loadFilter(filter);
|
|
76
65
|
tree.buildTree();
|
|
77
|
-
fileList = tree.getFileList();
|
|
78
|
-
filesCounter = fileList.length;
|
|
79
|
-
// Converts to scanner input format
|
|
80
|
-
// This is temporary, until the scanner is ready to receive a ScannerInput object
|
|
81
|
-
for (let f of fileList)
|
|
82
|
-
scannerInput = Object.assign(scannerInput, { [f]: 'FULL_SCAN' });
|
|
66
|
+
scannerInput.fileList = tree.getFileList();
|
|
83
67
|
}
|
|
84
68
|
else {
|
|
85
|
-
scannerInput =
|
|
86
|
-
filesCounter = 1;
|
|
69
|
+
scannerInput.fileList = [rootPath];
|
|
87
70
|
}
|
|
88
71
|
}
|
|
89
72
|
else {
|
|
90
73
|
const winnowing = fs_1.default.readFileSync(rootPath, { encoding: 'utf-8' });
|
|
91
|
-
|
|
92
|
-
filesCounter = [...winnowing.matchAll(reg)].length;
|
|
74
|
+
//filesCounter = [...winnowing.matchAll(/file=/g)].length;
|
|
93
75
|
}
|
|
94
76
|
if (!options.verbose) {
|
|
95
77
|
const optBar1 = { format: 'Scan Progress: [{bar}] {percentage}% | Scanned {value} files of {total}' };
|
|
96
78
|
const bar1 = new cli_progress_1.default.SingleBar(optBar1, cli_progress_1.default.Presets.shades_classic);
|
|
97
|
-
bar1.start(
|
|
98
|
-
scanner.on(
|
|
79
|
+
bar1.start(scannerInput.fileList.length, 0);
|
|
80
|
+
scanner.on(ScannerTypes_1.ScannerEvents.DISPATCHER_NEW_DATA, (dispResp) => {
|
|
99
81
|
bar1.increment(dispResp.getFilesScanned().length);
|
|
100
82
|
});
|
|
101
|
-
scanner.on(
|
|
83
|
+
scanner.on(ScannerTypes_1.ScannerEvents.SCAN_DONE, async (resultPath) => { bar1.stop(); });
|
|
102
84
|
}
|
|
103
85
|
else {
|
|
104
|
-
scanner.on(
|
|
86
|
+
scanner.on(ScannerTypes_1.ScannerEvents.SCANNER_LOG, (logText) => console.error(logText));
|
|
105
87
|
}
|
|
106
|
-
scanner.on(
|
|
88
|
+
scanner.on(ScannerTypes_1.ScannerEvents.SCAN_DONE, async (resultPath) => {
|
|
107
89
|
if (options.output)
|
|
108
90
|
await fs_1.default.promises.copyFile(resultPath, options.output);
|
|
109
91
|
else
|
|
@@ -112,7 +94,7 @@ async function scanHandler(rootPath, options) {
|
|
|
112
94
|
if (options.wfp)
|
|
113
95
|
await scanner.scanFromWinnowingFile(rootPath);
|
|
114
96
|
else
|
|
115
|
-
await scanner.
|
|
97
|
+
await scanner.scan(scannerInput);
|
|
116
98
|
}
|
|
117
99
|
exports.scanHandler = scanHandler;
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUFpRDtBQUNqRCw4REFBMEU7QUFDMUUsMERBQXVEO0FBQ3ZELDJDQUF3QztBQUV4QyxnRUFBdUM7QUFFdkMsZ0VBQTZEO0FBQzdELHdEQUFzRDtBQUV0RCw0Q0FBb0I7QUFFcEIsMEdBQTBHO0FBQzFHLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFvQixFQUFFO0lBQ2xELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsWUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQTtBQUVNLEtBQUssVUFBVSxXQUFXLENBQUMsUUFBZ0IsRUFBRSxPQUFZO0lBRTlELElBQUksWUFBWSxHQUFpQixFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUVoRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBRSxrQ0FBa0M7SUFDM0UsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSwwQ0FBMEM7SUFDaEcsTUFBTSxZQUFZLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFOUMsZ0RBQWdEO0lBQ2hELE1B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
|
package/build/main/index.d.ts
CHANGED
package/build/main/index.js
CHANGED
|
@@ -10,7 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
10
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./lib/scanner/
|
|
13
|
+
__exportStar(require("./lib/scanner/ScannerTypes"), exports);
|
|
14
14
|
__exportStar(require("./lib/scanner/ScannerCfg"), exports);
|
|
15
15
|
__exportStar(require("./lib/scanner/Scanner"), exports);
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTJDO0FBQzNDLDJEQUF3QztBQUN4Qyx3REFBcUMifQ==
|
|
@@ -20,4 +20,4 @@ class DispatchableItem {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
exports.DispatchableItem = DispatchableItem;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hhYmxlSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoYWJsZUl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBYSxnQkFBZ0I7SUFLM0IsWUFBWSxnQkFBZ0I7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7Q0FFRjtBQTFCRCw0Q0EwQkMifQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import EventEmitter from 'eventemitter3';
|
|
2
2
|
import { ScannerCfg } from "../ScannerCfg";
|
|
3
|
+
import { DispatchableItem } from './DispatchableItem';
|
|
3
4
|
export declare class Dispatcher extends EventEmitter {
|
|
4
5
|
private scannerCfg;
|
|
5
6
|
private pQueue;
|
|
@@ -10,9 +11,9 @@ export declare class Dispatcher extends EventEmitter {
|
|
|
10
11
|
constructor(scannerCfg?: ScannerCfg);
|
|
11
12
|
init(): void;
|
|
12
13
|
stop(): void;
|
|
13
|
-
dispatchItem(disptItem:
|
|
14
|
+
dispatchItem(disptItem: DispatchableItem): void;
|
|
14
15
|
handleUnrecoverableError(error: any, disptItem: any): void;
|
|
15
16
|
emitNoDispatchedItem(disptItem: any): void;
|
|
16
17
|
errorHandler(error: any, disptItem: any): void;
|
|
17
|
-
dispatch(disptItem:
|
|
18
|
+
dispatch(disptItem: DispatchableItem): Promise<void>;
|
|
18
19
|
}
|
|
@@ -10,7 +10,7 @@ const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
|
10
10
|
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
11
11
|
const p_queue_1 = __importDefault(require("p-queue"));
|
|
12
12
|
const form_data_1 = __importDefault(require("form-data"));
|
|
13
|
-
const
|
|
13
|
+
const ScannerTypes_1 = require("../ScannerTypes");
|
|
14
14
|
const DispatcherResponse_1 = require("./DispatcherResponse");
|
|
15
15
|
const ScannerCfg_1 = require("../ScannerCfg");
|
|
16
16
|
const GlobalControllerAborter_1 = require("./GlobalControllerAborter");
|
|
@@ -26,11 +26,11 @@ class Dispatcher extends eventemitter3_1.default {
|
|
|
26
26
|
});
|
|
27
27
|
this.pQueue.clear();
|
|
28
28
|
this.pQueue.on('idle', () => {
|
|
29
|
-
this.emit(
|
|
29
|
+
this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_FINISHED);
|
|
30
30
|
});
|
|
31
31
|
this.pQueue.on('next', () => {
|
|
32
32
|
if ((this.pQueue.size + this.pQueue.pending) < this.scannerCfg.DISPATCHER_QUEUE_SIZE_MIN_LIMIT && !this.queueMinLimitReached) {
|
|
33
|
-
this.emit(
|
|
33
|
+
this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_QUEUE_SIZE_MIN_LIMIT);
|
|
34
34
|
this.queueMinLimitReached = true;
|
|
35
35
|
this.queueMaxLimitReached = false;
|
|
36
36
|
}
|
|
@@ -51,7 +51,7 @@ class Dispatcher extends eventemitter3_1.default {
|
|
|
51
51
|
this.pQueue.add(() => this.dispatch(disptItem));
|
|
52
52
|
if (this.pQueue.size + this.pQueue.pending >= this.scannerCfg.DISPATCHER_QUEUE_SIZE_MAX_LIMIT &&
|
|
53
53
|
!this.queueMaxLimitReached) {
|
|
54
|
-
this.emit(
|
|
54
|
+
this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_QUEUE_SIZE_MAX_LIMIT);
|
|
55
55
|
this.queueMaxLimitReached = true;
|
|
56
56
|
this.queueMinLimitReached = false;
|
|
57
57
|
}
|
|
@@ -60,8 +60,8 @@ class Dispatcher extends eventemitter3_1.default {
|
|
|
60
60
|
this.emit('error', error, disptItem);
|
|
61
61
|
}
|
|
62
62
|
emitNoDispatchedItem(disptItem) {
|
|
63
|
-
this.emit(
|
|
64
|
-
this.emit(
|
|
63
|
+
this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_LOG, `[ SCANNER ]: WFP content sended to many times. Some files won't be scanned`);
|
|
64
|
+
this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_ITEM_NO_DISPATCHED, disptItem);
|
|
65
65
|
}
|
|
66
66
|
errorHandler(error, disptItem) {
|
|
67
67
|
if (!this.globalAbortController.isAborting()) {
|
|
@@ -76,7 +76,7 @@ class Dispatcher extends eventemitter3_1.default {
|
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
78
|
// const leftRetry = this.scannerCfg.MAX_RETRIES_FOR_RECOVERABLES_ERRORS - disptItem.getErrorCounter();
|
|
79
|
-
this.emit(
|
|
79
|
+
this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_LOG, `[ SCANNER ]: Recoverable error happened sending WFP content to server. Reason: ${error.code || error.name}`);
|
|
80
80
|
this.dispatchItem(disptItem);
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
@@ -88,9 +88,11 @@ class Dispatcher extends eventemitter3_1.default {
|
|
|
88
88
|
const timeoutId = setTimeout(() => timeoutController.abort(), this.scannerCfg.TIMEOUT);
|
|
89
89
|
try {
|
|
90
90
|
const form = new form_data_1.default();
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
form.append('filename', Buffer.from(disptItem.getContent()), 'data.wfp');
|
|
92
|
+
const engineFlag = disptItem.getWinnowerResponse().getEngineFlags();
|
|
93
|
+
if (engineFlag)
|
|
94
|
+
form.append('flags', engineFlag);
|
|
95
|
+
this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_WFP_SENDED);
|
|
94
96
|
const response = await (0, node_fetch_1.default)(this.scannerCfg.API_URL, {
|
|
95
97
|
method: 'post',
|
|
96
98
|
body: form,
|
|
@@ -103,13 +105,13 @@ class Dispatcher extends eventemitter3_1.default {
|
|
|
103
105
|
const msg = await response.text();
|
|
104
106
|
const err = new Error(msg);
|
|
105
107
|
err["code"] = response.status;
|
|
106
|
-
err.name =
|
|
108
|
+
err.name = ScannerTypes_1.ScannerEvents.ERROR_SERVER_SIDE;
|
|
107
109
|
throw err;
|
|
108
110
|
}
|
|
109
111
|
const dataAsText = await response.text();
|
|
110
112
|
const dataAsObj = JSON.parse(dataAsText);
|
|
111
113
|
const dispatcherResponse = new DispatcherResponse_1.DispatcherResponse(dataAsObj, disptItem.getContent());
|
|
112
|
-
this.emit(
|
|
114
|
+
this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_NEW_DATA, dispatcherResponse);
|
|
113
115
|
return Promise.resolve();
|
|
114
116
|
}
|
|
115
117
|
catch (e) {
|
|
@@ -121,4 +123,4 @@ class Dispatcher extends eventemitter3_1.default {
|
|
|
121
123
|
}
|
|
122
124
|
}
|
|
123
125
|
exports.Dispatcher = Dispatcher;
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUNBQWlDO0FBQ2pDLHlDQUF5QztBQUN6QyxrRUFBeUM7QUFDekMsNERBQStCO0FBQy9CLHNEQUE2QjtBQUM3QiwwREFBaUM7QUFFakMsa0RBQWdEO0FBQ2hELDZEQUEwRDtBQUMxRCw4Q0FBMkM7QUFDM0MsdUVBQW9FO0FBR3BFLE1BQWEsVUFBVyxTQUFRLHVCQUFZO0lBYTFDLFlBQVksVUFBVSxHQUFHLElBQUksdUJBQVUsRUFBRTtRQUN2QyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlCQUFNLENBQUM7WUFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCO1NBQy9DLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLDRCQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsSUFBSSxDQUFDLElBQUks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
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import { WinnowingMode } from "../ScannerTypes";
|
|
2
3
|
export declare class ScannableItem {
|
|
3
4
|
private contentSource;
|
|
4
5
|
private content;
|
|
5
|
-
private
|
|
6
|
+
private winnowingMode;
|
|
6
7
|
private fingerprint;
|
|
7
8
|
private maxSizeWfp;
|
|
8
|
-
constructor(content: Buffer, contentSource: string,
|
|
9
|
+
constructor(content: Buffer, contentSource: string, winnowingMode: any, maxSizeWfp: number);
|
|
9
10
|
getContent(): Buffer;
|
|
10
11
|
getContentSource(): string;
|
|
11
|
-
getScanMode(): any;
|
|
12
12
|
getFingerprint(): any;
|
|
13
|
+
getWinnowingMode(): WinnowingMode;
|
|
13
14
|
getMaxSizeWfp(): any;
|
|
14
15
|
}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ScannableItem = void 0;
|
|
4
4
|
class ScannableItem {
|
|
5
|
-
constructor(content, contentSource,
|
|
5
|
+
constructor(content, contentSource, winnowingMode, maxSizeWfp) {
|
|
6
6
|
this.contentSource = contentSource;
|
|
7
7
|
this.content = content;
|
|
8
|
-
this.
|
|
8
|
+
this.winnowingMode = winnowingMode;
|
|
9
9
|
this.maxSizeWfp = maxSizeWfp;
|
|
10
10
|
}
|
|
11
11
|
getContent() {
|
|
@@ -14,15 +14,15 @@ class ScannableItem {
|
|
|
14
14
|
getContentSource() {
|
|
15
15
|
return this.contentSource;
|
|
16
16
|
}
|
|
17
|
-
getScanMode() {
|
|
18
|
-
return this.scanMode;
|
|
19
|
-
}
|
|
20
17
|
getFingerprint() {
|
|
21
18
|
return this.fingerprint;
|
|
22
19
|
}
|
|
20
|
+
getWinnowingMode() {
|
|
21
|
+
return this.winnowingMode;
|
|
22
|
+
}
|
|
23
23
|
getMaxSizeWfp() {
|
|
24
24
|
return this.maxSizeWfp;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
exports.ScannableItem = ScannableItem;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nhbm5hYmxlSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2Nhbm5lci9TY2FubmFibGUvU2Nhbm5hYmxlSXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxNQUFhLGFBQWE7SUFXeEIsWUFBWSxPQUFlLEVBQUUsYUFBcUIsRUFBRSxhQUFrQixFQUFFLFVBQWtCO1FBQ3hGLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRU0sYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztDQUdGO0FBdkNELHNDQXVDQyJ9
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import EventEmitter from 'eventemitter3';
|
|
2
|
-
import { Winnower } from './Winnower/Winnower';
|
|
3
2
|
import { DispatcherResponse } from './Dispatcher/DispatcherResponse';
|
|
4
3
|
import { ScannerCfg } from './ScannerCfg';
|
|
4
|
+
import { ScannerInput } from './ScannerTypes';
|
|
5
5
|
export declare class Scanner extends EventEmitter {
|
|
6
6
|
scannerCfg: any;
|
|
7
7
|
workDirectory: any;
|
|
8
8
|
scanRoot: any;
|
|
9
9
|
scannerId: any;
|
|
10
|
-
winnower
|
|
11
|
-
dispatcher
|
|
10
|
+
private winnower;
|
|
11
|
+
private dispatcher;
|
|
12
12
|
resultFilePath: any;
|
|
13
13
|
wfpFilePath: any;
|
|
14
14
|
scanFinished: any;
|
|
@@ -19,6 +19,7 @@ export declare class Scanner extends EventEmitter {
|
|
|
19
19
|
filesToScan: any;
|
|
20
20
|
filesNotScanned: any;
|
|
21
21
|
finishPromise: Promise<void>;
|
|
22
|
+
private scannerInput;
|
|
22
23
|
constructor(scannerCfg?: ScannerCfg);
|
|
23
24
|
init(): void;
|
|
24
25
|
setWinnowerListeners(): void;
|
|
@@ -36,9 +37,8 @@ export declare class Scanner extends EventEmitter {
|
|
|
36
37
|
errorHandler(error: any, origin: any): void;
|
|
37
38
|
createOutputFiles(): void;
|
|
38
39
|
appendOutputFiles(wfpContent: any, serverResponse: any): void;
|
|
39
|
-
scanList(files: any, scanRoot?: string): Promise<void>;
|
|
40
40
|
scanFromWinnowingFile(wfpFilePath: string): Promise<void>;
|
|
41
|
-
scan(
|
|
41
|
+
scan(scannerInput: ScannerInput): Promise<void>;
|
|
42
42
|
getScannerId(): any;
|
|
43
43
|
pause(): void;
|
|
44
44
|
resume(): void;
|