scanoss 0.32.0 → 0.33.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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file. See [standa
4
4
 
5
5
  ## [Unreleased]
6
6
  - Upcoming changes...
7
+ -
8
+ ## [0.33.0] (2026-02-11)
9
+ ### Added
10
+ - Added support for Poetry dependency format in `pyproject.toml` parser (`[tool.poetry.dependencies]`, `[tool.poetry.dev-dependencies]`, `[tool.poetry.group.<name>.dependencies]`)
11
+ ### Fixed
12
+ - Throttled file system operations in `excludeBinariesAndLargeFiles` using `PQueue` (concurrency: 10) to prevent EMFILE errors when processing large file lists
13
+ - Switched from async `isBinaryFile` to sync `isBinaryFileSync` for more predictable concurrency behavior
7
14
 
8
15
  ## [0.32.0] (2026-02-09)
9
16
  ### Changed
@@ -6,28 +6,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.excludeBinariesAndLargeFiles = excludeBinariesAndLargeFiles;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const isbinaryfile_1 = require("isbinaryfile");
9
+ const p_queue_1 = __importDefault(require("p-queue"));
9
10
  // Maximum file size (2GB)
10
11
  const MAX_FILE_SIZE = 2 * 1024 * 1024 * 1024;
12
+ const FILE_CONCURRENCY = 10;
11
13
  /**
12
14
  * Filters out binary files and files larger than 2GB
13
15
  * @param {Array<string>} files - Files to filter
14
16
  * @returns {Promise<Array<string>>} Filtered files
15
17
  */
16
18
  async function excludeBinariesAndLargeFiles(files) {
17
- const results = await Promise.all(files.map(async (file) => {
19
+ const queue = new p_queue_1.default({ concurrency: FILE_CONCURRENCY });
20
+ const filtered = [];
21
+ await queue.addAll(files.map((file) => async () => {
18
22
  try {
19
23
  const stats = await fs_1.default.promises.stat(file);
20
- // Skip files that are too large or binary
21
- if (stats.size > MAX_FILE_SIZE || await (0, isbinaryfile_1.isBinaryFile)(file)) {
22
- return null;
24
+ if (stats.size > MAX_FILE_SIZE || (0, isbinaryfile_1.isBinaryFileSync)(file)) {
25
+ return;
23
26
  }
24
- return file;
27
+ filtered.push(file);
25
28
  }
26
29
  catch (error) {
27
30
  console.error(`[ Cryptography Helper ] excludeBinariesAndLargeFiles: ${file}:`, error);
28
- return null;
29
31
  }
30
32
  }));
31
- return results.filter(Boolean);
33
+ return filtered;
32
34
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5SGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvSGVscGVyL0NyeXB0b2dyYXBoeUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVdBLG9FQWlCQztBQTVCRCw0Q0FBb0I7QUFDcEIsK0NBQTRDO0FBRTVDLDBCQUEwQjtBQUMxQixNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFFN0M7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSw0QkFBNEIsQ0FBQyxLQUFvQjtJQUNyRSxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQy9CLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3ZCLElBQUksQ0FBQztZQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsMENBQTBDO1lBQzFDLElBQUksS0FBSyxDQUFDLElBQUksR0FBRyxhQUFhLElBQUksTUFBTSxJQUFBLDJCQUFZLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDM0QsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMseURBQXlELElBQUksR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDakMsQ0FBQyJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5SGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvSGVscGVyL0NyeXB0b2dyYXBoeUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWNBLG9FQW1CQztBQWpDRCw0Q0FBb0I7QUFDcEIsK0NBQWdEO0FBQ2hELHNEQUE2QjtBQUU3QiwwQkFBMEI7QUFDMUIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBRTdDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0FBRTVCOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsNEJBQTRCLENBQUMsS0FBb0I7SUFDckUsTUFBTSxLQUFLLEdBQUcsSUFBSSxpQkFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUM1RCxNQUFNLFFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBRW5DLE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FDaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDN0IsSUFBSSxDQUFDO1lBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsYUFBYSxJQUFJLElBQUEsK0JBQWdCLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDekQsT0FBTztZQUNULENBQUM7WUFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyx5REFBeUQsSUFBSSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekYsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIn0=