scanoss 0.33.0 → 0.35.0

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +16 -2
  2. package/build/main/cli/bin/cli-bin.js +6 -1
  3. package/build/main/cli/commands/helpers.js +5 -2
  4. package/build/main/cli/commands/scan.js +25 -4
  5. package/build/main/index.d.ts +1 -0
  6. package/build/main/index.js +2 -1
  7. package/build/main/sdk/Decompress/Decompressor/DecompressZips.js +3 -2
  8. package/build/main/sdk/Dependencies/LocalDependency/LocalDependency.js +4 -1
  9. package/build/main/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +54 -1
  10. package/build/main/sdk/Dependencies/LocalDependency/parsers/pnpmParser.d.ts +2 -0
  11. package/build/main/sdk/Dependencies/LocalDependency/parsers/pnpmParser.js +257 -0
  12. package/build/main/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +1 -0
  13. package/build/main/sdk/Dependencies/LocalDependency/parsers/pyParser.js +26 -9
  14. package/build/main/sdk/scanner/Dispatcher/DispatchableItem.d.ts +4 -0
  15. package/build/main/sdk/scanner/Dispatcher/DispatchableItem.js +7 -1
  16. package/build/main/sdk/scanner/Dispatcher/Dispatcher.d.ts +1 -0
  17. package/build/main/sdk/scanner/Dispatcher/Dispatcher.js +20 -8
  18. package/build/main/sdk/scanner/ScanSettingsBuilder.d.ts +13 -0
  19. package/build/main/sdk/scanner/ScanSettingsBuilder.js +95 -0
  20. package/build/main/sdk/scanner/ScanSettingsBuilder.spec.d.ts +1 -0
  21. package/build/main/sdk/scanner/ScanSettingsBuilder.spec.js +238 -0
  22. package/build/main/sdk/scanner/Scanner.js +4 -2
  23. package/build/main/sdk/scanner/ScannnerResultPostProcessor/interfaces/types.d.ts +13 -1
  24. package/build/main/tsconfig.tsbuildinfo +1 -1
  25. package/build/module/cli/bin/cli-bin.js +6 -1
  26. package/build/module/cli/commands/helpers.js +5 -2
  27. package/build/module/cli/commands/scan.js +24 -4
  28. package/build/module/index.d.ts +1 -0
  29. package/build/module/index.js +2 -1
  30. package/build/module/sdk/Decompress/Decompressor/DecompressZips.js +3 -2
  31. package/build/module/sdk/Dependencies/LocalDependency/LocalDependency.js +5 -2
  32. package/build/module/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +54 -1
  33. package/build/module/sdk/Dependencies/LocalDependency/parsers/pnpmParser.d.ts +2 -0
  34. package/build/module/sdk/Dependencies/LocalDependency/parsers/pnpmParser.js +251 -0
  35. package/build/module/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +1 -0
  36. package/build/module/sdk/Dependencies/LocalDependency/parsers/pyParser.js +25 -9
  37. package/build/module/sdk/scanner/Dispatcher/DispatchableItem.d.ts +4 -0
  38. package/build/module/sdk/scanner/Dispatcher/DispatchableItem.js +8 -1
  39. package/build/module/sdk/scanner/Dispatcher/Dispatcher.d.ts +1 -0
  40. package/build/module/sdk/scanner/Dispatcher/Dispatcher.js +20 -8
  41. package/build/module/sdk/scanner/ScanSettingsBuilder.d.ts +13 -0
  42. package/build/module/sdk/scanner/ScanSettingsBuilder.js +86 -0
  43. package/build/module/sdk/scanner/ScanSettingsBuilder.spec.d.ts +1 -0
  44. package/build/module/sdk/scanner/ScanSettingsBuilder.spec.js +236 -0
  45. package/build/module/sdk/scanner/Scanner.js +4 -2
  46. package/build/module/sdk/scanner/ScannnerResultPostProcessor/interfaces/types.d.ts +13 -1
  47. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,257 @@
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.pnpmLockParser = pnpmLockParser;
7
+ const path_1 = __importDefault(require("path"));
8
+ const packageurl_js_1 = require("packageurl-js");
9
+ const PURL_TYPE = "npm";
10
+ const MANIFEST_FILE = "pnpm-lock.yaml";
11
+ // Regex for pnpm lockfile v5 format: /package-name/version or /@scope/package-name/version
12
+ // May include peer dep suffixes like /@scope/pkg/1.0.0_peer@2.0.0
13
+ const V5_PACKAGE_REGEX = /^\s{2,4}\/?(?<fullname>(?:@(?<scope>[^/]+)\/)?(?<name>[^/]+))\/(?<version>\d[^_:]*)/;
14
+ // Regex for pnpm lockfile v6+ format: /package-name@version or /@scope/package-name@version
15
+ // May include peer dep suffixes like /@scope/pkg@1.0.0(@peer/pkg@2.0.0)
16
+ const V6_PACKAGE_REGEX = /^\s{2,4}'?\/?(?<fullname>(?:@(?<scope>[^/@]+)\/)?(?<name>[^@']+))@(?<version>\d[^(':\s]*)/;
17
+ function parseLockfileVersion(fileContent) {
18
+ const match = fileContent.match(/^lockfileVersion:\s*'?(\d+)/m);
19
+ if (match)
20
+ return parseInt(match[1], 10);
21
+ return 0;
22
+ }
23
+ // For pnpm v9+: Parse importers section to get direct prod/dev dependency resolved versions.
24
+ // Returns sets of package keys like "express@4.18.2" or "@angular/core@14.2.0".
25
+ function parseImportersDeps(lines) {
26
+ const prodKeys = new Set();
27
+ const devKeys = new Set();
28
+ let inImporters = false;
29
+ let currentTarget = null;
30
+ let pkgName = null;
31
+ for (const line of lines) {
32
+ const trimmed = line.trimEnd();
33
+ if (trimmed === '')
34
+ continue;
35
+ if (/^importers:\s*$/.test(trimmed)) {
36
+ inImporters = true;
37
+ currentTarget = null;
38
+ pkgName = null;
39
+ continue;
40
+ }
41
+ if (!inImporters)
42
+ continue;
43
+ // End of importers section (next top-level key)
44
+ if (/^\S/.test(trimmed) && !trimmed.startsWith('#')) {
45
+ inImporters = false;
46
+ break;
47
+ }
48
+ const indent = line.search(/\S/);
49
+ // Workspace key at indent 2 (e.g., " .:" or " packages/app:")
50
+ if (indent === 2) {
51
+ currentTarget = null;
52
+ pkgName = null;
53
+ continue;
54
+ }
55
+ // Section header at indent 4 (dependencies:, devDependencies:, etc.)
56
+ if (indent === 4) {
57
+ if (/^\s{4}dependencies:\s*$/.test(trimmed) || /^\s{4}optionalDependencies:\s*$/.test(trimmed)) {
58
+ currentTarget = prodKeys;
59
+ }
60
+ else if (/^\s{4}devDependencies:\s*$/.test(trimmed)) {
61
+ currentTarget = devKeys;
62
+ }
63
+ else {
64
+ currentTarget = null;
65
+ }
66
+ pkgName = null;
67
+ continue;
68
+ }
69
+ if (!currentTarget)
70
+ continue;
71
+ // Package name at indent 6 (e.g., " express:" or " '@angular/core':")
72
+ if (indent === 6) {
73
+ const match = trimmed.match(/^\s{6}'?([^':]+)'?:\s*$/);
74
+ if (match) {
75
+ pkgName = match[1];
76
+ }
77
+ continue;
78
+ }
79
+ // Version at indent 8 (e.g., " version: 4.18.2" or " version: 14.2.0(rxjs@7.8.0)")
80
+ if (indent === 8 && pkgName) {
81
+ const match = trimmed.match(/^\s{8}version:\s*'?([^'\s]+)'?\s*$/);
82
+ if (match) {
83
+ // Strip peer dep suffixes in parentheses
84
+ const version = match[1].replace(/\(.*$/, '');
85
+ currentTarget.add(`${pkgName}@${version}`);
86
+ pkgName = null;
87
+ }
88
+ }
89
+ }
90
+ return { prodKeys, devKeys };
91
+ }
92
+ // For pnpm v9+: Build dependency graph from snapshots section.
93
+ // Maps each package key (e.g., "express@4.18.2") to its dependency keys.
94
+ function buildSnapshotGraph(lines) {
95
+ const graph = new Map();
96
+ let inSnapshots = false;
97
+ let currentKey = null;
98
+ let inDeps = false;
99
+ for (const line of lines) {
100
+ const trimmed = line.trimEnd();
101
+ if (trimmed === '')
102
+ continue;
103
+ if (/^snapshots:\s*$/.test(trimmed)) {
104
+ inSnapshots = true;
105
+ currentKey = null;
106
+ inDeps = false;
107
+ continue;
108
+ }
109
+ if (!inSnapshots)
110
+ continue;
111
+ // End of snapshots section (next top-level key)
112
+ if (/^\S/.test(trimmed) && !trimmed.startsWith('#')) {
113
+ inSnapshots = false;
114
+ break;
115
+ }
116
+ const indent = line.search(/\S/);
117
+ // Snapshot entry at indent 2 (e.g., " express@4.18.2:" or " lodash@4.17.21: {}")
118
+ if (indent === 2) {
119
+ const match = trimmed.match(/^\s{2}'?(.+?)(?:\([^)]*\))*'?:\s*(\{\})?\s*$/);
120
+ if (match) {
121
+ // Strip peer dep suffixes from key
122
+ currentKey = match[1].replace(/\(.*$/, '');
123
+ if (!graph.has(currentKey)) {
124
+ graph.set(currentKey, []);
125
+ }
126
+ inDeps = false;
127
+ // Empty entry like " lodash@4.17.21: {}"
128
+ if (match[2] === '{}') {
129
+ currentKey = null;
130
+ }
131
+ }
132
+ continue;
133
+ }
134
+ if (!currentKey)
135
+ continue;
136
+ // Subsection header at indent 4
137
+ if (indent === 4) {
138
+ inDeps = /^\s{4}(?:dependencies|optionalDependencies):\s*$/.test(trimmed);
139
+ continue;
140
+ }
141
+ // Dependency entry at indent 6 (e.g., " accepts: 1.3.8")
142
+ if (indent === 6 && inDeps) {
143
+ const match = trimmed.match(/^\s{6}'?([^':]+)'?:\s*'?([^'\s]+)'?/);
144
+ if (match) {
145
+ const depVersion = match[2].replace(/\(.*$/, '');
146
+ const depKey = `${match[1]}@${depVersion}`;
147
+ graph.get(currentKey).push(depKey);
148
+ }
149
+ }
150
+ }
151
+ return graph;
152
+ }
153
+ // BFS from prod dependencies through the snapshot graph to find all production-reachable packages.
154
+ function findProductionPackages(prodKeys, graph) {
155
+ const visited = new Set();
156
+ const queue = [...prodKeys];
157
+ while (queue.length > 0) {
158
+ const key = queue.shift();
159
+ if (visited.has(key))
160
+ continue;
161
+ visited.add(key);
162
+ const deps = graph.get(key);
163
+ if (deps) {
164
+ for (const dep of deps) {
165
+ if (!visited.has(dep)) {
166
+ queue.push(dep);
167
+ }
168
+ }
169
+ }
170
+ }
171
+ return visited;
172
+ }
173
+ function parsePackagesSection(fileContent) {
174
+ const entries = [];
175
+ const lines = fileContent.split('\n');
176
+ const lockfileVersion = parseLockfileVersion(fileContent);
177
+ let inPackagesSection = false;
178
+ let currentEntry = null;
179
+ const packageRegex = lockfileVersion >= 6 ? V6_PACKAGE_REGEX : V5_PACKAGE_REGEX;
180
+ // For v9+, determine dev scope from importers + snapshots instead of dev: flag
181
+ let prodPackages = null;
182
+ if (lockfileVersion >= 9) {
183
+ const { prodKeys, devKeys } = parseImportersDeps(lines);
184
+ // Only use v9 logic if importers section was found; otherwise fall back to defaults
185
+ if (prodKeys.size > 0 || devKeys.size > 0) {
186
+ const graph = buildSnapshotGraph(lines);
187
+ prodPackages = findProductionPackages(prodKeys, graph);
188
+ }
189
+ }
190
+ for (const line of lines) {
191
+ // Detect start of packages section
192
+ if (/^packages:/.test(line)) {
193
+ inPackagesSection = true;
194
+ continue;
195
+ }
196
+ // Detect end of packages section (next top-level key)
197
+ if (inPackagesSection && /^\S/.test(line) && !line.startsWith('#')) {
198
+ // Save last entry
199
+ if (currentEntry)
200
+ entries.push(currentEntry);
201
+ inPackagesSection = false;
202
+ continue;
203
+ }
204
+ if (!inPackagesSection)
205
+ continue;
206
+ // Try to match a package key line
207
+ const match = line.match(packageRegex);
208
+ if (match && match.groups) {
209
+ // Save previous entry
210
+ if (currentEntry)
211
+ entries.push(currentEntry);
212
+ const pkgScope = match.groups.scope || undefined;
213
+ const pkgName = match.groups.name;
214
+ const pkgVersion = match.groups.version;
215
+ let isDev = false;
216
+ if (lockfileVersion >= 9 && prodPackages) {
217
+ // For v9+, a package is dev if it's NOT reachable from production dependencies
218
+ const key = pkgScope ? `@${pkgScope}/${pkgName}@${pkgVersion}` : `${pkgName}@${pkgVersion}`;
219
+ isDev = !prodPackages.has(key);
220
+ }
221
+ currentEntry = {
222
+ scope: pkgScope,
223
+ name: pkgName,
224
+ version: pkgVersion,
225
+ dev: isDev,
226
+ };
227
+ continue;
228
+ }
229
+ // Check for dev flag within current entry (v5-v8 only)
230
+ if (lockfileVersion < 9 && currentEntry && /^\s+dev:\s*true/.test(line)) {
231
+ currentEntry.dev = true;
232
+ }
233
+ }
234
+ // Don't forget last entry
235
+ if (currentEntry)
236
+ entries.push(currentEntry);
237
+ return entries;
238
+ }
239
+ function pnpmLockParser(fileContent, filePath) {
240
+ const results = { file: filePath, purls: [] };
241
+ if (path_1.default.basename(filePath) != MANIFEST_FILE)
242
+ return Promise.resolve(results);
243
+ try {
244
+ const packages = parsePackagesSection(fileContent);
245
+ for (const pkg of packages) {
246
+ const namespace = pkg.scope ? `@${pkg.scope}` : undefined;
247
+ const purlString = new packageurl_js_1.PackageURL(PURL_TYPE, namespace, pkg.name, pkg.version, undefined, undefined).toString();
248
+ const scope = pkg.dev ? "devDependencies" : "dependencies";
249
+ results.purls.push({ purl: purlString, requirement: pkg.version, scope: scope });
250
+ }
251
+ }
252
+ catch (e) {
253
+ console.error(e);
254
+ }
255
+ return Promise.resolve(results);
256
+ }
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG5wbVBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvRGVwZW5kZW5jaWVzL0xvY2FsRGVwZW5kZW5jeS9wYXJzZXJzL3BucG1QYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFxUkEsd0NBb0JDO0FBelNELGdEQUF3QjtBQUN4QixpREFBMkM7QUFHM0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBQ3hCLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDO0FBRXZDLDJGQUEyRjtBQUMzRixrRUFBa0U7QUFDbEUsTUFBTSxnQkFBZ0IsR0FBRyxxRkFBcUYsQ0FBQztBQUUvRyw0RkFBNEY7QUFDNUYsd0VBQXdFO0FBQ3hFLE1BQU0sZ0JBQWdCLEdBQUcsMkZBQTJGLENBQUM7QUFTckgsU0FBUyxvQkFBb0IsQ0FBQyxXQUFtQjtJQUMvQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDaEUsSUFBSSxLQUFLO1FBQUUsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVELDZGQUE2RjtBQUM3RixnRkFBZ0Y7QUFDaEYsU0FBUyxrQkFBa0IsQ0FBQyxLQUFlO0lBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUVsQyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDeEIsSUFBSSxhQUFhLEdBQXVCLElBQUksQ0FBQztJQUM3QyxJQUFJLE9BQU8sR0FBa0IsSUFBSSxDQUFDO0lBRWxDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFB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
@@ -1,2 +1,3 @@
1
1
  import { ILocalDependency } from "../DependencyTypes";
2
2
  export declare function requirementsParser(fileContent: string, filePath: string): Promise<ILocalDependency>;
3
+ export declare function pipRequirementsLockParser(fileContent: string, filePath: string): Promise<ILocalDependency>;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.requirementsParser = requirementsParser;
7
+ exports.pipRequirementsLockParser = pipRequirementsLockParser;
7
8
  const path_1 = __importDefault(require("path"));
8
9
  const packageurl_js_1 = require("packageurl-js");
9
10
  const utils_1 = require("./utils");
@@ -17,14 +18,8 @@ function parseDep(str) {
17
18
  };
18
19
  }
19
20
  const PURL_TYPE = 'pypi';
20
- // Parse a requirements.txt file from python projects
21
- // See reference on: https://pip.pypa.io/en/stable/reference/requirements-file-format/
22
- const MANIFEST_FILE = 'requirements.txt';
23
- function requirementsParser(fileContent, filePath) {
24
- // If the file is not a python manifest file, return an empty results
21
+ function parseRequirementsContent(fileContent, filePath) {
25
22
  const results = { file: filePath, purls: [] };
26
- if (path_1.default.basename(filePath) != MANIFEST_FILE)
27
- return Promise.resolve(results);
28
23
  const lines = fileContent.split('\n');
29
24
  for (let line of lines) {
30
25
  line = line.trim();
@@ -42,6 +37,9 @@ function requirementsParser(fileContent, filePath) {
42
37
  else if (line.startsWith('-r')) {
43
38
  continue;
44
39
  } // Recursive dependencies (NOT SUPPORTED YET)
40
+ else if (line.startsWith('-')) {
41
+ continue;
42
+ } // Skip pip options (e.g. --hash, -i, -e, etc.)
45
43
  else {
46
44
  const dep = parseDep(line);
47
45
  if (!dep.sym) {
@@ -59,6 +57,25 @@ function requirementsParser(fileContent, filePath) {
59
57
  }
60
58
  }
61
59
  }
62
- return Promise.resolve(results);
60
+ return results;
61
+ }
62
+ // Parse a requirements.txt file from python projects
63
+ // See reference on: https://pip.pypa.io/en/stable/reference/requirements-file-format/
64
+ const MANIFEST_FILE = 'requirements.txt';
65
+ function requirementsParser(fileContent, filePath) {
66
+ // If the file is not a python manifest file, return an empty results
67
+ const results = { file: filePath, purls: [] };
68
+ if (path_1.default.basename(filePath) != MANIFEST_FILE)
69
+ return Promise.resolve(results);
70
+ return Promise.resolve(parseRequirementsContent(fileContent, filePath));
71
+ }
72
+ // Parse a pip_requirements_lock.txt file (pip-compile / pip-tools lock file)
73
+ // Same format as requirements.txt but typically with pinned versions (==)
74
+ const LOCK_MANIFEST_FILE = 'pip_requirements_lock.txt';
75
+ function pipRequirementsLockParser(fileContent, filePath) {
76
+ const results = { file: filePath, purls: [] };
77
+ if (path_1.default.basename(filePath) != LOCK_MANIFEST_FILE)
78
+ return Promise.resolve(results);
79
+ return Promise.resolve(parseRequirementsContent(fileContent, filePath));
63
80
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy9weVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW9CQSxnREFxQ0M7QUF6REQsZ0RBQXdCO0FBQ3hCLGlEQUEyQztBQUUzQyxtQ0FBa0Q7QUFHbEQsU0FBUyxRQUFRLENBQUUsR0FBVzs7SUFDNUIsTUFBTSxHQUFHLEdBQUcsMERBQTBELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pGLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSwwQ0FBRSxJQUFJO1FBQ3ZCLEdBQUcsRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLDBDQUFFLEdBQUc7UUFDckIsT0FBTyxFQUFFLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sMENBQUUsT0FBTztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztBQUV6QixxREFBcUQ7QUFDckQsc0ZBQXNGO0FBQ3RGLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ3pDLFNBQWdCLGtCQUFrQixDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7SUFFcEUscUVBQXFFO0lBQ3JFLE1BQU0sT0FBTyxHQUFxQixFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzlELElBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxhQUFhO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVwQyxNQUFNLEtBQUssR0FBa0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVyRCxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3JCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxTQUFTO1FBQzlCLElBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQywrQkFBK0I7WUFDeEUsSUFBRyxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsc0ZBQXNGO2dCQUN0RixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUM7Z0JBQ3hGLFNBQVM7WUFDYixDQUFDO2lCQUNJLElBQUcsSUFBQSxtQkFBVyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQUEsU0FBUztZQUFBLENBQUMsQ0FBQyxtQ0FBbUM7aUJBQ3JFLElBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUFBLFNBQVM7WUFBQSxDQUFDLENBQUMsNkNBQTZDO2lCQUNuRixDQUFDO2dCQUVGLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDYixNQUFNLFVBQVUsR0FBRyxJQUFJLDBCQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzlHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7cUJBQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLDBCQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNoSCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxVQUFVLEdBQUcsSUFBSSwwQkFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM5RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUMsR0FBRyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7Z0JBQzNFLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFDSCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbEMsQ0FBQyJ9
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy9weVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVEQSxnREFRQztBQUtELDhEQU9DO0FBM0VELGdEQUF3QjtBQUN4QixpREFBMkM7QUFFM0MsbUNBQWtEO0FBR2xELFNBQVMsUUFBUSxDQUFFLEdBQVc7O0lBQzVCLE1BQU0sR0FBRyxHQUFHLDBEQUEwRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRixPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sMENBQUUsSUFBSTtRQUN2QixHQUFHLEVBQUUsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSwwQ0FBRSxHQUFHO1FBQ3JCLE9BQU8sRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLDBDQUFFLE9BQU87S0FDOUIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFFekIsU0FBUyx3QkFBd0IsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBQ25FLE1BQU0sT0FBTyxHQUFxQixFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzlELE1BQU0sS0FBSyxHQUFrQixXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXJELEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLFNBQVM7UUFDOUIsSUFBRyxDQUFDLElBQUksQ0FB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
@@ -1,6 +1,7 @@
1
1
  import { FingerprintPackage } from '../WfpProvider/FingerprintPackage';
2
2
  import FormData from 'form-data';
3
3
  import { SbomMode } from '../ScannerTypes';
4
+ import { FileSnippetSettings } from "../ScannnerResultPostProcessor/interfaces/types";
4
5
  export declare class DispatchableItem {
5
6
  private form;
6
7
  private errorCounter;
@@ -8,15 +9,18 @@ export declare class DispatchableItem {
8
9
  private engineFlags;
9
10
  private sbom;
10
11
  private sbomMode;
12
+ private scanSettings;
11
13
  constructor();
12
14
  private _uuid;
13
15
  get uuid(): string;
14
16
  set uuid(uuid: string);
15
17
  getForm(): FormData;
18
+ getScanSettings(): FileSnippetSettings | undefined;
16
19
  increaseErrorCounter(): void;
17
20
  getErrorCounter(): number;
18
21
  setFingerprintPackage(fingerprintPackage: FingerprintPackage): void;
19
22
  getFingerprintPackage(): FingerprintPackage;
20
23
  setEngineFlags(engineFlags: number): void;
21
24
  setSbom(sbom: string, sbomMode: SbomMode): void;
25
+ setScanSettings(fileSnippetSettings: FileSnippetSettings): void;
22
26
  }
@@ -27,6 +27,9 @@ class DispatchableItem {
27
27
  }
28
28
  return this.form;
29
29
  }
30
+ getScanSettings() {
31
+ return this.scanSettings;
32
+ }
30
33
  increaseErrorCounter() {
31
34
  this.errorCounter += 1;
32
35
  }
@@ -46,6 +49,9 @@ class DispatchableItem {
46
49
  this.sbom = sbom;
47
50
  this.sbomMode = sbomMode;
48
51
  }
52
+ setScanSettings(fileSnippetSettings) {
53
+ this.scanSettings = fileSnippetSettings;
54
+ }
49
55
  }
50
56
  exports.DispatchableItem = DispatchableItem;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hhYmxlSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoYWJsZUl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsMERBQWlDO0FBR2pDLE1BQWEsZ0JBQWdCO0lBYTNCO1FBQ0UsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLG1CQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBSUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLElBQUksQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLG1CQUFRLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FDZCxNQUFNLEVBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUMsRUFDakQsVUFBVSxDQUNYLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxrQkFBc0M7UUFDakUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0lBQy9DLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxXQUFtQjtRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQVksRUFBRSxRQUFrQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUF0RUQsNENBc0VDIn0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hhYmxlSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoYWJsZUl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsMERBQWlDO0FBSWpDLE1BQWEsZ0JBQWdCO0lBZTNCO1FBQ0UsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLG1CQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBSUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLElBQUksQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLG1CQUFRLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FDZCxNQUFNLEVBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUMsRUFDakQsVUFBVSxDQUNYLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRU0scUJBQXFCLENBQUMsa0JBQXNDO1FBQ2pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztJQUMvQyxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFTSxjQUFjLENBQUMsV0FBbUI7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZLEVBQUUsUUFBa0I7UUFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxtQkFBd0M7UUFDN0QsSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFoRkQsNENBZ0ZDIn0=
@@ -15,5 +15,6 @@ export declare class Dispatcher extends EventEmitter {
15
15
  emitUnrecoberableError(error: any, disptItem: any, response: string): void;
16
16
  emitNoDispatchedItem(disptItem: any): void;
17
17
  errorHandler(error: Error, disptItem: DispatchableItem, response: string): void;
18
+ private buildScanSettingsHeader;
18
19
  dispatch(item: DispatchableItem): Promise<void>;
19
20
  }
@@ -138,6 +138,13 @@ class Dispatcher extends eventemitter3_1.default {
138
138
  return;
139
139
  }
140
140
  }
141
+ buildScanSettingsHeader(fileSnippetSettings) {
142
+ if (!fileSnippetSettings || Object.keys(fileSnippetSettings).length === 0) {
143
+ return undefined;
144
+ }
145
+ const jsonStr = JSON.stringify(fileSnippetSettings);
146
+ return Buffer.from(jsonStr).toString('base64');
147
+ }
141
148
  async dispatch(item) {
142
149
  const timeoutController = this.globalAbortController.getAbortController();
143
150
  const timeoutId = setTimeout(() => timeoutController.abort(), this.scannerCfg.TIMEOUT);
@@ -145,17 +152,22 @@ class Dispatcher extends eventemitter3_1.default {
145
152
  try {
146
153
  this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_WFP_SENDED);
147
154
  const scanURL = new URL('/scan/direct', this.scannerCfg.API_URL);
155
+ const headers = {
156
+ 'User-Agent': this.scannerCfg.CLIENT_TIMESTAMP
157
+ ? this.scannerCfg.CLIENT_TIMESTAMP
158
+ : `scanoss-js/v${Utils_1.Utils.getPackageVersion()}`,
159
+ 'X-Session': this.scannerCfg.API_KEY,
160
+ 'x-request-id': item.uuid,
161
+ };
162
+ const scanSettingsHeader = this.buildScanSettingsHeader(item.getScanSettings());
163
+ if (scanSettingsHeader) {
164
+ headers['scanoss-settings'] = scanSettingsHeader;
165
+ }
148
166
  const response = await (0, node_fetch_1.default)(scanURL.href, {
149
167
  agent: this.proxyAgent,
150
168
  method: 'post',
151
169
  body: item.getForm(),
152
- headers: {
153
- 'User-Agent': this.scannerCfg.CLIENT_TIMESTAMP
154
- ? this.scannerCfg.CLIENT_TIMESTAMP
155
- : `scanoss-js/v${Utils_1.Utils.getPackageVersion()}`,
156
- 'X-Session': this.scannerCfg.API_KEY,
157
- 'x-request-id': item.uuid,
158
- },
170
+ headers,
159
171
  signal: timeoutController.signal,
160
172
  });
161
173
  clearTimeout(timeoutId);
@@ -181,4 +193,4 @@ class Dispatcher extends eventemitter3_1.default {
181
193
  }
182
194
  }
183
195
  exports.Dispatcher = Dispatcher;
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUNBQWlDO0FBQ2pDLHlDQUF5QztBQUN6QyxrRUFBeUM7QUFDekMsNERBQTZDO0FBQzdDLHNEQUE2QjtBQUM3QixrREFBZ0Q7QUFDaEQsNkRBQTBEO0FBQzFELDhDQUEyQztBQUMzQyx1RUFBb0U7QUFFcEUsNkNBQTBDO0FBQzFDLDZDQUF5QztBQUN6QyxnREFBNkM7QUFHN0MsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFFbEMsSUFBSyxNQUlKO0FBSkQsV0FBSyxNQUFNO0lBQ1QsdUJBQWEsQ0FBQTtJQUNiLHlDQUErQixDQUFBO0lBQy9CLDZCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFKSSxNQUFNLEtBQU4sTUFBTSxRQUlWO0FBRUQsTUFBYSxVQUFXLFNBQVEsdUJBQVk7SUFhMUMsWUFBWSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxFQUFFO1FBQ3ZDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQjtZQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJOztRQUVGLHVDQUF1QztRQUN2QyxNQUFNLGdCQUFnQixHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsbUNBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsS0FBSyxHQUFHLENBQUM7UUFDaEgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksT0FBTyxD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
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUNBQWlDO0FBQ2pDLHlDQUF5QztBQUN6QyxrRUFBeUM7QUFDekMsNERBQStCO0FBQy9CLHNEQUE2QjtBQUM3QixrREFBZ0Q7QUFDaEQsNkRBQTBEO0FBQzFELDhDQUEyQztBQUMzQyx1RUFBb0U7QUFFcEUsNkNBQTBDO0FBQzFDLDZDQUF5QztBQUN6QyxnREFBNkM7QUFJN0MsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFFbEMsSUFBSyxNQUlKO0FBSkQsV0FBSyxNQUFNO0lBQ1QsdUJBQWEsQ0FBQTtJQUNiLHlDQUErQixDQUFBO0lBQy9CLDZCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFKSSxNQUFNLEtBQU4sTUFBTSxRQUlWO0FBRUQsTUFBYSxVQUFXLFNBQVEsdUJBQVk7SUFhMUMsWUFBWSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxFQUFFO1FBQ3ZDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQjtZQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJOztRQUVGLHVDQUF1QztRQUN2QyxNQUFNLGdCQUFnQixHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsbUNBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsS0FBSyxHQUFHLENBQUM7UUFDaEgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksT0FBTyxD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
@@ -0,0 +1,13 @@
1
+ import { FileSnippetSettings } from "./ScannnerResultPostProcessor/interfaces/types";
2
+ export declare class ScanSettingsBuilder {
3
+ private readonly settingsFileSnippet;
4
+ private readonly fileSnippetSettings;
5
+ constructor(settingsFileSnippet?: FileSnippetSettings);
6
+ withMinSnippetHits(cliValue?: number | string): this;
7
+ withMinSnippetLines(cliValue?: number | string): this;
8
+ withRanking(cliValue?: boolean | string): this;
9
+ withRankingThreshold(cliValue?: number | string): this;
10
+ withHonourFileExist(cliValue?: boolean | string): this;
11
+ withDependencyAnalysis(cliValue?: boolean | string): this;
12
+ build(): FileSnippetSettings | undefined;
13
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScanSettingsBuilder = void 0;
4
+ function toBoolean(value) {
5
+ if (typeof value === 'string')
6
+ return value === 'true';
7
+ return value;
8
+ }
9
+ class ScanSettingsBuilder {
10
+ constructor(settingsFileSnippet) {
11
+ this.fileSnippetSettings = {};
12
+ this.settingsFileSnippet = settingsFileSnippet;
13
+ }
14
+ // Priority: scanoss.json file_snippet settings > CLI arguments
15
+ // 0 means defer to server config
16
+ withMinSnippetHits(cliValue) {
17
+ var _a, _b;
18
+ const cliMinSnippetHits = cliValue != null ? Number(cliValue) : undefined;
19
+ const merged = (_b = (_a = this.settingsFileSnippet) === null || _a === void 0 ? void 0 : _a.min_snippet_hits) !== null && _b !== void 0 ? _b : cliMinSnippetHits;
20
+ if (merged != null && merged !== 0) {
21
+ this.fileSnippetSettings.min_snippet_hits = Math.max(0, merged);
22
+ }
23
+ return this;
24
+ }
25
+ // 0 means defer to server config
26
+ withMinSnippetLines(cliValue) {
27
+ var _a, _b;
28
+ const cliMinSnippetLines = cliValue != null ? Number(cliValue) : undefined;
29
+ const merged = (_b = (_a = this.settingsFileSnippet) === null || _a === void 0 ? void 0 : _a.min_snippet_lines) !== null && _b !== void 0 ? _b : cliMinSnippetLines;
30
+ if (merged != null && merged !== 0) {
31
+ this.fileSnippetSettings.min_snippet_lines = Math.max(0, merged);
32
+ }
33
+ return this;
34
+ }
35
+ // Only send if explicitly set
36
+ withRanking(cliValue) {
37
+ var _a, _b;
38
+ const cliRanking = cliValue != null ? toBoolean(cliValue) : undefined;
39
+ const merged = (_b = (_a = this.settingsFileSnippet) === null || _a === void 0 ? void 0 : _a.ranking_enabled) !== null && _b !== void 0 ? _b : cliRanking;
40
+ if (merged != null) {
41
+ this.fileSnippetSettings.ranking_enabled = merged;
42
+ }
43
+ return this;
44
+ }
45
+ // -1 means defer to server config, valid range -1 to 10
46
+ withRankingThreshold(cliValue) {
47
+ var _a, _b;
48
+ const MAX_RANKING_THRESHOLD = 10;
49
+ const cliRankingThreshold = cliValue != null ? Number(cliValue) : undefined;
50
+ const merged = (_b = (_a = this.settingsFileSnippet) === null || _a === void 0 ? void 0 : _a.ranking_threshold) !== null && _b !== void 0 ? _b : cliRankingThreshold;
51
+ if (merged != null && merged !== -1) {
52
+ let clamped = merged;
53
+ if (clamped > MAX_RANKING_THRESHOLD) {
54
+ console.error(`WARNING: ranking-threshold value ${clamped} exceeds maximum allowed (${MAX_RANKING_THRESHOLD}). Setting to ${MAX_RANKING_THRESHOLD}.`);
55
+ clamped = MAX_RANKING_THRESHOLD;
56
+ }
57
+ else if (clamped < -1) {
58
+ console.error(`WARNING: ranking-threshold value ${clamped} is below minimum allowed (-1). Setting to -1.`);
59
+ clamped = -1;
60
+ }
61
+ if (clamped !== -1) {
62
+ this.fileSnippetSettings.ranking_threshold = clamped;
63
+ }
64
+ }
65
+ return this;
66
+ }
67
+ // Only send if explicitly set
68
+ withHonourFileExist(cliValue) {
69
+ var _a, _b;
70
+ const cliHonourFileExts = cliValue != null ? toBoolean(cliValue) : undefined;
71
+ const merged = (_b = (_a = this.settingsFileSnippet) === null || _a === void 0 ? void 0 : _a.honour_file_exts) !== null && _b !== void 0 ? _b : cliHonourFileExts;
72
+ if (merged != null) {
73
+ this.fileSnippetSettings.honour_file_exts = merged;
74
+ }
75
+ return this;
76
+ }
77
+ // Only send if explicitly set
78
+ withDependencyAnalysis(cliValue) {
79
+ var _a, _b;
80
+ const cliDependencyAnalysis = cliValue != null ? toBoolean(cliValue) : undefined;
81
+ const merged = (_b = (_a = this.settingsFileSnippet) === null || _a === void 0 ? void 0 : _a.dependency_analysis) !== null && _b !== void 0 ? _b : cliDependencyAnalysis;
82
+ if (merged != null) {
83
+ this.fileSnippetSettings.dependency_analysis = merged;
84
+ }
85
+ return this;
86
+ }
87
+ build() {
88
+ if (Object.keys(this.fileSnippetSettings).length > 0) {
89
+ return this.fileSnippetSettings;
90
+ }
91
+ return undefined;
92
+ }
93
+ }
94
+ exports.ScanSettingsBuilder = ScanSettingsBuilder;
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NhblNldHRpbmdzQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9TY2FuU2V0dGluZ3NCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLFNBQVMsU0FBUyxDQUFDLEtBQXVCO0lBQ3hDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sS0FBSyxLQUFLLE1BQU0sQ0FBQztJQUN2RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFhLG1CQUFtQjtJQUk5QixZQUFZLG1CQUF5QztRQUZwQyx3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRzdELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztJQUNqRCxDQUFDO0lBRUQsK0RBQStEO0lBQy9ELGlDQUFpQztJQUNqQyxrQkFBa0IsQ0FBQyxRQUEwQjs7UUFDM0MsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMxRSxNQUFNLE1BQU0sR0FBRyxNQUFBLE1BQUEsSUFBSSxDQUFDLG1CQUFtQiwwQ0FBRSxnQkFBZ0IsbUNBQUksaUJBQWlCLENBQUM7UUFDL0UsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlDQUFpQztJQUNqQyxtQkFBbUIsQ0FBQyxRQUEwQjs7UUFDNUMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxD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