scanoss 0.34.0 → 0.36.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 (44) hide show
  1. package/CHANGELOG.md +15 -1
  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/Dependencies/LocalDependency/LocalDependency.js +3 -1
  8. package/build/main/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +49 -15
  9. package/build/main/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +1 -0
  10. package/build/main/sdk/Dependencies/LocalDependency/parsers/pyParser.js +21 -1
  11. package/build/main/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.js +7 -4
  12. package/build/main/sdk/scanner/Dispatcher/DispatchableItem.d.ts +4 -0
  13. package/build/main/sdk/scanner/Dispatcher/DispatchableItem.js +7 -1
  14. package/build/main/sdk/scanner/Dispatcher/Dispatcher.d.ts +1 -0
  15. package/build/main/sdk/scanner/Dispatcher/Dispatcher.js +20 -8
  16. package/build/main/sdk/scanner/ScanSettingsBuilder.d.ts +13 -0
  17. package/build/main/sdk/scanner/ScanSettingsBuilder.js +95 -0
  18. package/build/main/sdk/scanner/ScanSettingsBuilder.spec.d.ts +1 -0
  19. package/build/main/sdk/scanner/ScanSettingsBuilder.spec.js +238 -0
  20. package/build/main/sdk/scanner/Scanner.js +4 -2
  21. package/build/main/sdk/scanner/ScannnerResultPostProcessor/interfaces/types.d.ts +13 -1
  22. package/build/main/tsconfig.tsbuildinfo +1 -1
  23. package/build/module/cli/bin/cli-bin.js +6 -1
  24. package/build/module/cli/commands/helpers.js +5 -2
  25. package/build/module/cli/commands/scan.js +24 -4
  26. package/build/module/index.d.ts +1 -0
  27. package/build/module/index.js +2 -1
  28. package/build/module/sdk/Dependencies/LocalDependency/LocalDependency.js +4 -2
  29. package/build/module/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +50 -16
  30. package/build/module/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +1 -0
  31. package/build/module/sdk/Dependencies/LocalDependency/parsers/pyParser.js +19 -1
  32. package/build/module/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.js +7 -4
  33. package/build/module/sdk/scanner/Dispatcher/DispatchableItem.d.ts +4 -0
  34. package/build/module/sdk/scanner/Dispatcher/DispatchableItem.js +8 -1
  35. package/build/module/sdk/scanner/Dispatcher/Dispatcher.d.ts +1 -0
  36. package/build/module/sdk/scanner/Dispatcher/Dispatcher.js +20 -8
  37. package/build/module/sdk/scanner/ScanSettingsBuilder.d.ts +13 -0
  38. package/build/module/sdk/scanner/ScanSettingsBuilder.js +86 -0
  39. package/build/module/sdk/scanner/ScanSettingsBuilder.spec.d.ts +1 -0
  40. package/build/module/sdk/scanner/ScanSettingsBuilder.spec.js +236 -0
  41. package/build/module/sdk/scanner/Scanner.js +4 -2
  42. package/build/module/sdk/scanner/ScannnerResultPostProcessor/interfaces/types.d.ts +13 -1
  43. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  44. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
1
  import { ILocalDependency } from "../DependencyTypes";
2
2
  export declare function requirementsParser(fileContent: string, filePath: string): Promise<ILocalDependency>;
3
3
  export declare function pipRequirementsLockParser(fileContent: string, filePath: string): Promise<ILocalDependency>;
4
+ export declare function scopedRequirementsParser(fileContent: string, filePath: string): Promise<ILocalDependency>;
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.requirementsParser = requirementsParser;
7
7
  exports.pipRequirementsLockParser = pipRequirementsLockParser;
8
+ exports.scopedRequirementsParser = scopedRequirementsParser;
8
9
  const path_1 = __importDefault(require("path"));
9
10
  const packageurl_js_1 = require("packageurl-js");
10
11
  const utils_1 = require("./utils");
@@ -78,4 +79,23 @@ function pipRequirementsLockParser(fileContent, filePath) {
78
79
  return Promise.resolve(results);
79
80
  return Promise.resolve(parseRequirementsContent(fileContent, filePath));
80
81
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy9weVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVEQSxnREFRQztBQUtELDhEQU9DO0FBM0VELGdEQUF3QjtBQUN4QixpREFBMkM7QUFFM0MsbUNBQWtEO0FBR2xELFNBQVMsUUFBUSxDQUFFLEdBQVc7O0lBQzVCLE1BQU0sR0FBRyxHQUFHLDBEQUEwRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRixPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sMENBQUUsSUFBSTtRQUN2QixHQUFHLEVBQUUsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSwwQ0FBRSxHQUFHO1FBQ3JCLE9BQU8sRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLDBDQUFFLE9BQU87S0FDOUIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFFekIsU0FBUyx3QkFBd0IsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBQ25FLE1BQU0sT0FBTyxHQUFxQixFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzlELE1BQU0sS0FBSyxHQUFrQixXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXJELEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLFNBQVM7UUFDOUIsSUFBRyxDQUFDLElBQUksQ0FB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
82
+ // Parse scoped requirements files like dev-requirements.txt or requirements-dev.txt
83
+ // Extracts scope from the filename prefix/suffix
84
+ const SCOPED_REQ_PREFIX = /^(.+)-requirements\.txt$/;
85
+ const SCOPED_REQ_SUFFIX = /^requirements-(.+)\.txt$/;
86
+ function scopedRequirementsParser(fileContent, filePath) {
87
+ var _a;
88
+ const fileName = path_1.default.basename(filePath);
89
+ const prefixMatch = SCOPED_REQ_PREFIX.exec(fileName);
90
+ const suffixMatch = SCOPED_REQ_SUFFIX.exec(fileName);
91
+ const scope = (_a = prefixMatch === null || prefixMatch === void 0 ? void 0 : prefixMatch[1]) !== null && _a !== void 0 ? _a : suffixMatch === null || suffixMatch === void 0 ? void 0 : suffixMatch[1];
92
+ const results = { file: filePath, purls: [] };
93
+ if (!scope)
94
+ return Promise.resolve(results);
95
+ const parsed = parseRequirementsContent(fileContent, filePath);
96
+ for (const purl of parsed.purls) {
97
+ purl.scope = scope;
98
+ }
99
+ return Promise.resolve(parsed);
100
+ }
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvcGFyc2Vycy9weVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVEQSxnREFRQztBQUtELDhEQU9DO0FBTUQsNERBY0M7QUEvRkQsZ0RBQXdCO0FBQ3hCLGlEQUEyQztBQUUzQyxtQ0FBa0Q7QUFHbEQsU0FBUyxRQUFRLENBQUUsR0FBVzs7SUFDNUIsTUFBTSxHQUFHLEdBQUcsMERBQTBELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pGLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSwwQ0FBRSxJQUFJO1FBQ3ZCLEdBQUcsRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLDBDQUFFLEdBQUc7UUFDckIsT0FBTyxFQUFFLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sMENBQUUsT0FBTztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztBQUV6QixTQUFTLHdCQUF3QixDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7SUFDbkUsTUFBTSxPQUFPLEdBQXFCLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDOUQsTUFBTSxLQUFLLEdBQWtCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckQsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsU0FBUztRQUM5QixJQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsK0JBQStCO1lBQ3hFLElBQUcsSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLHNGQUFzRjtnQkFDdEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO2dCQUN4RixTQUFTO1lBQ2IsQ0FBQztpQkFDSSxJQUFHLElBQUEsbUJBQVcsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUFBLFNBQVM7WUFBQSxDQUFDLENBQUMsbUNBQW1DO2lCQUNyRSxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFBQSxTQUFTO1lBQUEsQ0FBQyxDQUFDLDZDQUE2QztpQkFDbkYsSUFBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQUEsU0FBUztZQUFBLENBQUMsQ0FBQywrQ0FBK0M7aUJBQ3BGLENBQUM7Z0JBRUYsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNiLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDOUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztnQkFDekMsQ0FBQztxQkFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2hILE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLFVBQVUsR0FBRyxJQUFJLDBCQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzlHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBQyxHQUFHLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQztnQkFDM0UsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUNILE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxxREFBcUQ7QUFDckQsc0ZBQXNGO0FBQ3RGLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ3pDLFNBQWdCLGtCQUFrQixDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7SUFFcEUscUVBQXFFO0lBQ3JFLE1BQU0sT0FBTyxHQUFxQixFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzlELElBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxhQUFhO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVwQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELDZFQUE2RTtBQUM3RSwwRUFBMEU7QUFDMUUsTUFBTSxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQztBQUN2RCxTQUFnQix5QkFBeUIsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRTNFLE1BQU0sT0FBTyxHQUFxQixFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzlELElBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxrQkFBa0I7UUFDNUMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXBDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUM1RSxDQUFDO0FBRUQsb0ZBQW9GO0FBQ3BGLGlEQUFpRDtBQUNqRCxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDO0FBQ3JELE1BQU0saUJBQWlCLEdBQUcsMEJBQTBCLENBQUM7QUFDckQsU0FBZ0Isd0JBQXdCLENBQUMsV0FBbUIsRUFBRSxRQUFnQjs7SUFDMUUsTUFBTSxRQUFRLEdBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sS0FBSyxHQUFHLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFHLENBQUMsQ0FBQyxtQ0FBSSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUcsQ0FBQyxDQUFDLENBQUM7SUFFbkQsTUFBTSxPQUFPLEdBQXFCLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFNUMsTUFBTSxNQUFNLEdBQUcsd0JBQXdCLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9ELEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkMsQ0FBQyJ9
@@ -85,13 +85,16 @@ const pyProjectToml = async (fileContent, filePath) => {
85
85
  }
86
86
  // Fallback: Try Poetry format
87
87
  // Matches [tool.poetry.dependencies], [tool.poetry.dev-dependencies], [tool.poetry.group.<name>.dependencies]
88
- const rPoetryDepsSection = /\[tool\.poetry(?:\.group\.[\w-]+)?\.(?:dev-)?dependencies\]\s*\n([\s\S]*?)(?=\n\s*\[|$)/g;
88
+ const rPoetryDepsSection = /\[tool\.poetry(?:\.group\.([\w-]+))?\.(?:(dev-)?)dependencies\]\s*\n([\s\S]*?)(?=\n\s*\[|$)/g;
89
89
  const poetryMatches = fileContent.matchAll(rPoetryDepsSection);
90
90
  for (const match of poetryMatches) {
91
- const deps = parsePoetryDeps(match[1]);
92
- result.purls.push(...deps);
91
+ const groupName = match[1]; // e.g. "dev", "test", "ci", "doc" (undefined for non-group sections)
92
+ const isLegacyDev = !!match[2]; // "dev-" prefix in [tool.poetry.dev-dependencies]
93
+ const scope = isLegacyDev ? 'dev' : groupName !== null && groupName !== void 0 ? groupName : 'dependency';
94
+ const deps = parsePoetryDeps(match[3]);
95
+ result.purls.push(...deps.map(d => ({ ...d, scope })));
93
96
  }
94
97
  return result;
95
98
  };
96
99
  exports.default = pyProjectToml;
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHlQcm9qZWN0VG9tbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvRGVwZW5kZW5jaWVzL0xvY2FsRGVwZW5kZW5jeS9wYXJzZXJzL3B5dGhvbi9QeVByb2plY3RUb21sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBQ3BGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxNQUFNLENBQUUsOENBQThDLENBQUMsQ0FBQztBQUV6RixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFFL0I7OztHQUdHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxjQUFzQixFQUE0QyxFQUFFO0lBQzNGLE1BQU0sT0FBTyxHQUE2QyxFQUFFLENBQUM7SUFDN0QsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQUUsU0FBUztRQUVsRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU87WUFBRSxTQUFTO1FBRXZCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFaEMsaUNBQWlDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVE7WUFBRSxTQUFTO1FBRTlDLElBQUksV0FBVyxHQUFr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
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHlQcm9qZWN0VG9tbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvRGVwZW5kZW5jaWVzL0xvY2FsRGVwZW5kZW5jeS9wYXJzZXJzL3B5dGhvbi9QeVByb2plY3RUb21sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBQ3BGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxNQUFNLENBQUUsOENBQThDLENBQUMsQ0FBQztBQUV6RixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFFL0I7OztHQUdHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxjQUFzQixFQUE0QyxFQUFFO0lBQzNGLE1BQU0sT0FBTyxHQUE2QyxFQUFFLENBQUM7SUFDN0QsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQUUsU0FBUztRQUVsRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU87WUFBRSxTQUFTO1FBRXZCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFaEMsaUNBQWlDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVE7WUFBRSxTQUFTO1FBRTlDLElBQUksV0FBVyxHQUFr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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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NhblNldHRpbmdzQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9TY2FuU2V0dGluZ3NCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLFNBQVMsU0FBUyxDQUFDLEtBQXVCO0lBQ3hDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sS0FBSyxLQUFLLE1BQU0sQ0FBQztJQUN2RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFhLG1CQUFtQjtJQUk5QixZQUFZLG1CQUF5QztRQUZwQyx3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRzdELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztJQUNqRCxDQUFDO0lBRUQsK0RBQStEO0lBQy9ELGlDQUFpQztJQUNqQyxrQkFBa0IsQ0FBQyxRQUEwQjs7UUFDM0MsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMxRSxNQUFNLE1BQU0sR0FBRyxNQUFBLE1BQUEsSUFBSSxDQUFDLG1CQUFtQiwwQ0FBRSxnQkFBZ0IsbUNBQUksaUJBQWlCLENBQUM7UUFDL0UsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlDQUFpQztJQUNqQyxtQkFBbUIsQ0FBQyxRQUEwQjs7UUFDNUMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMzRSxNQUFNLE1BQU0sR0FBRyxNQUFBLE1BQUEsSUFBSSxDQUFDLG1CQUFtQiwwQ0FBRSxpQkFBaUIsbUNBQUksa0JBQWtCLENBQUM7UUFDakYsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixXQUFXLENBQUMsUUFBMkI7O1FBQ3JDLE1BQU0sVUFBVSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLE1BQUEsTUFBQSxJQUFJLENBQUMsbUJBQW1CLDBDQUFFLGVBQWUsbUNBQUksVUFBVSxDQUFDO1FBQ3ZFLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsb0JBQW9CLENBQUMsUUFBMEI7O1FBQzdDLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUUsTUFBTSxNQUFNLEdBQUcsTUFBQSxNQUFBLElBQUksQ0FBQyxtQkFBbUIsMENBQUUsaUJBQWlCLG1DQUFJLG1CQUFtQixDQUFDO1FBQ2xGLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDckIsSUFBSSxPQUFPLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsT0FBTyw2QkFBNkIscUJBQXFCLGlCQUFpQixxQkFBcUIsR0FBRyxDQUFDLENBQUM7Z0JBQ3RKLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQztZQUNsQyxDQUFDO2lCQUFNLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLE9BQU8sZ0RBQWdELENBQUMsQ0FBQztnQkFDM0csT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztZQUNELElBQUksT0FBTyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUM7WUFDdkQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsbUJBQW1CLENBQUMsUUFBMkI7O1FBQzdDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0UsTUFBTSxNQUFNLEdBQUcsTUFBQSxNQUFBLElBQUksQ0FBQyxtQkFBbUIsMENBQUUsZ0JBQWdCLG1DQUFJLGlCQUFpQixDQUFDO1FBQy9FLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixzQkFBc0IsQ0FBQyxRQUEyQjs7UUFDaEQsTUFBTSxxQkFBcUIsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNqRixNQUFNLE1BQU0sR0FBRyxNQUFBLE1BQUEsSUFBSSxDQUFDLG1CQUFtQiwwQ0FBRSxtQkFBbUIsbUNBQUkscUJBQXFCLENBQUM7UUFDdEYsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztRQUN4RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQXRGRCxrREFzRkMifQ==