snyk-cpp-plugin 2.15.4 → 2.16.3

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/dist/common.d.ts CHANGED
@@ -1,3 +1,7 @@
1
1
  export declare const isWindowsOS: () => boolean;
2
2
  export declare const MAX_SUPPORTED_FILE_SIZE: number;
3
- export declare const CONCURRENCY_LEVEL: number;
3
+ export declare const HASHING_CONCURRENCY_LEVEL: number;
4
+ export declare const DECOMPRESSING_CONCURRENCY_LEVEL: number;
5
+ export declare const DECOMPRESSING_WORKSPACE_DIR = "workspace";
6
+ export declare const DECOMPRESSING_IGNORE_DIR = "ignore";
7
+ export declare const isSupportedSize: (size: number) => boolean;
package/dist/common.js CHANGED
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CONCURRENCY_LEVEL = exports.MAX_SUPPORTED_FILE_SIZE = exports.isWindowsOS = void 0;
3
+ exports.isSupportedSize = exports.DECOMPRESSING_IGNORE_DIR = exports.DECOMPRESSING_WORKSPACE_DIR = exports.DECOMPRESSING_CONCURRENCY_LEVEL = exports.HASHING_CONCURRENCY_LEVEL = exports.MAX_SUPPORTED_FILE_SIZE = exports.isWindowsOS = void 0;
4
4
  const os = require("os");
5
5
  const osName = require('os-name');
6
6
  exports.isWindowsOS = () => osName()
7
7
  .toLowerCase()
8
8
  .indexOf('windows') === 0;
9
9
  exports.MAX_SUPPORTED_FILE_SIZE = 2 * 1024 * 1024 * 1024 - 1;
10
- exports.CONCURRENCY_LEVEL = os.cpus().length;
10
+ exports.HASHING_CONCURRENCY_LEVEL = os.cpus().length;
11
+ exports.DECOMPRESSING_CONCURRENCY_LEVEL = os.cpus().length * 8;
12
+ exports.DECOMPRESSING_WORKSPACE_DIR = 'workspace';
13
+ exports.DECOMPRESSING_IGNORE_DIR = 'ignore';
14
+ exports.isSupportedSize = (size) => 0 < size && size < exports.MAX_SUPPORTED_FILE_SIZE;
11
15
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../lib/common.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAErB,QAAA,WAAW,GAAG,GAAY,EAAE,CACvC,MAAM,EAAE;KACL,WAAW,EAAE;KACb,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAEjB,QAAA,uBAAuB,GAAW,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAE7D,QAAA,iBAAiB,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../lib/common.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAErB,QAAA,WAAW,GAAG,GAAY,EAAE,CACvC,MAAM,EAAE;KACL,WAAW,EAAE;KACb,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAEjB,QAAA,uBAAuB,GAAW,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAE7D,QAAA,yBAAyB,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;AAE7C,QAAA,+BAA+B,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAEvD,QAAA,2BAA2B,GAAG,WAAW,CAAC;AAE1C,QAAA,wBAAwB,GAAG,QAAQ,CAAC;AAEpC,QAAA,eAAe,GAAG,CAAC,IAAY,EAAW,EAAE,CACvD,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,+BAAuB,CAAC"}
@@ -39,7 +39,7 @@ async function display(scanResults, testResults, errors, options) {
39
39
  error_1.exitWith(error_1.ExitCode.Error, 'Error displaying results.');
40
40
  }
41
41
  if (hasVulnerabilities) {
42
- error_1.exitWith(error_1.ExitCode.VulnerabilitiesFound, result.join('\n'));
42
+ error_1.exitWith(error_1.ExitCode.VulnerabilitiesFound, result.join('\n'), testResults);
43
43
  }
44
44
  if (!hasDependencies) {
45
45
  result.push(`Could not detect supported target files in ${options === null || options === void 0 ? void 0 : options.path}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/display/index.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,oCAAiC;AACjC,+CAAiD;AAEjD,uCAImB;AACnB,0CAAoD;AAE7C,KAAK,UAAU,OAAO,CAC3B,WAAyB,EACzB,WAAyB,EACzB,MAAgB,EAChB,OAAiB;IAEjB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,gBAAQ,CAAC,gBAAQ,CAAC,KAAK,EAAE,uBAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC5D;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,IAAI;QACF,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE;YACjB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACrB;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE;YAClB,MAAM,cAAc,GAAG,2BAAiB,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;SAChC;QAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,MAAM,QAAQ,GAAG,0BAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACzD,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAAG,+BAAqB,CAC9D,OAAO,EACP,QAAQ,EACR,UAAU,CACX,CAAC;YAEF,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,eAAe,GAAG,IAAI,CAAC;aACxB;YAED,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,kBAAkB,GAAG,IAAI,CAAC;aAC3B;YAED,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC,CAAC;SACrD;KACF;IAAC,OAAO,KAAK,EAAE;QACd,aAAK,CAAC,KAAK,CAAC,OAAO,IAAI,iCAAiC,KAAK,EAAE,CAAC,CAAC;QACjE,gBAAQ,CAAC,gBAAQ,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;KACvD;IAED,IAAI,kBAAkB,EAAE;QACtB,gBAAQ,CAAC,gBAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC5D;IAED,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,CAAC,IAAI,CAAC,8CAA8C,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,gBAAQ,CAAC,gBAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACxD;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AA1DD,0BA0DC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/display/index.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,oCAAiC;AACjC,+CAAiD;AAEjD,uCAImB;AACnB,0CAAoD;AAE7C,KAAK,UAAU,OAAO,CAC3B,WAAyB,EACzB,WAAyB,EACzB,MAAgB,EAChB,OAAiB;IAEjB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,gBAAQ,CAAC,gBAAQ,CAAC,KAAK,EAAE,uBAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC5D;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,IAAI;QACF,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE;YACjB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACrB;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE;YAClB,MAAM,cAAc,GAAG,2BAAiB,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;SAChC;QAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,MAAM,QAAQ,GAAG,0BAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACzD,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAAG,+BAAqB,CAC9D,OAAO,EACP,QAAQ,EACR,UAAU,CACX,CAAC;YAEF,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,eAAe,GAAG,IAAI,CAAC;aACxB;YAED,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,kBAAkB,GAAG,IAAI,CAAC;aAC3B;YAED,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC,CAAC;SACrD;KACF;IAAC,OAAO,KAAK,EAAE;QACd,aAAK,CAAC,KAAK,CAAC,OAAO,IAAI,iCAAiC,KAAK,EAAE,CAAC,CAAC;QACjE,gBAAQ,CAAC,gBAAQ,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;KACvD;IAED,IAAI,kBAAkB,EAAE;QACtB,gBAAQ,CAAC,gBAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;KACzE;IAED,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,CAAC,IAAI,CAAC,8CAA8C,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,gBAAQ,CAAC,gBAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACxD;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AA1DD,0BA0DC"}
@@ -0,0 +1,5 @@
1
+ import { FilePath } from './types';
2
+ export declare function extract(archives: readonly FilePath[], temporaryDir: FilePath, depthLimit: number, depth?: number): Promise<void>;
3
+ export declare function isTar(path: FilePath): boolean;
4
+ export declare function isZip(path: FilePath): boolean;
5
+ export declare function isArchive(path: FilePath): boolean;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isArchive = exports.isZip = exports.isTar = exports.extract = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const uuid_1 = require("uuid");
7
+ const common_1 = require("./common");
8
+ const debug_1 = require("./debug");
9
+ const pMap = require('p-map');
10
+ const AdmZip = require('adm-zip');
11
+ const tar = require('tar');
12
+ const { mkdir, rename } = fs_1.promises;
13
+ const zipFormats = ['.zip', '.zipx'];
14
+ const tarFormats = ['.tar', '.gz', '.tgz'];
15
+ async function handleExtraction(path, temporaryDir, keepArchive, childArchiveHandler) {
16
+ const extractionSource = keepArchive
17
+ ? path
18
+ : path_1.join(temporaryDir, common_1.DECOMPRESSING_IGNORE_DIR, `${uuid_1.v4()}-${path_1.basename(path)}`);
19
+ if (!keepArchive) {
20
+ await mkdir(path_1.dirname(extractionSource), { recursive: true });
21
+ await rename(path, extractionSource);
22
+ }
23
+ const extractionTarget = path_1.join(temporaryDir, common_1.DECOMPRESSING_WORKSPACE_DIR, path.includes(temporaryDir)
24
+ ? path_1.relative(path_1.join(temporaryDir, common_1.DECOMPRESSING_WORKSPACE_DIR), path)
25
+ : path_1.basename(path));
26
+ await mkdir(extractionTarget, { recursive: true });
27
+ if (isTar(extractionSource)) {
28
+ await tar.x({
29
+ file: extractionSource,
30
+ cwd: extractionTarget,
31
+ sync: true,
32
+ onentry: (entry) => {
33
+ const childAbsolutePath = path_1.join(extractionTarget, entry.path);
34
+ if (isArchive(childAbsolutePath)) {
35
+ childArchiveHandler(childAbsolutePath);
36
+ }
37
+ },
38
+ });
39
+ }
40
+ else if (isZip(extractionSource)) {
41
+ const zip = new AdmZip(extractionSource);
42
+ await pMap(zip.getEntries(), (entry) => {
43
+ const childAbsolutePath = path_1.join(extractionTarget, entry.entryName);
44
+ zip.extractEntryTo(entry.entryName, extractionTarget, true, true);
45
+ if (isArchive(childAbsolutePath)) {
46
+ childArchiveHandler(childAbsolutePath);
47
+ }
48
+ }, { concurrency: common_1.DECOMPRESSING_CONCURRENCY_LEVEL });
49
+ }
50
+ }
51
+ async function extract(archives, temporaryDir, depthLimit, depth = 0) {
52
+ if (depth >= depthLimit) {
53
+ return;
54
+ }
55
+ const childArchives = [];
56
+ for (const archive of archives) {
57
+ try {
58
+ const keepArchive = 0 === depth;
59
+ await handleExtraction(archive, temporaryDir, keepArchive, (childArchive) => childArchives.push(childArchive));
60
+ }
61
+ catch (err) {
62
+ debug_1.debug(`Could not extract archive: ${archive} ${err}`);
63
+ }
64
+ }
65
+ if (childArchives.length > 0) {
66
+ await extract(childArchives, temporaryDir, depthLimit, depth + 1);
67
+ }
68
+ }
69
+ exports.extract = extract;
70
+ function isTar(path) {
71
+ return tarFormats.includes(path_1.extname(path));
72
+ }
73
+ exports.isTar = isTar;
74
+ function isZip(path) {
75
+ return zipFormats.includes(path_1.extname(path));
76
+ }
77
+ exports.isZip = isZip;
78
+ function isArchive(path) {
79
+ return isTar(path) || isZip(path);
80
+ }
81
+ exports.isArchive = isArchive;
82
+ //# sourceMappingURL=extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../lib/extract.ts"],"names":[],"mappings":"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"}
package/dist/find.d.ts CHANGED
@@ -2,4 +2,4 @@
2
2
  import { promises } from 'fs';
3
3
  import { FilePath } from './types';
4
4
  export declare const readdir: typeof promises.readdir, lstat: typeof promises.lstat;
5
- export declare function find(src: string): Promise<FilePath[]>;
5
+ export declare function find(src: string): Promise<[FilePath[], FilePath[]]>;
package/dist/find.js CHANGED
@@ -5,16 +5,22 @@ const fs_1 = require("fs");
5
5
  const path_1 = require("path");
6
6
  const common_1 = require("./common");
7
7
  const debug_1 = require("./debug");
8
+ const extract_1 = require("./extract");
8
9
  exports.readdir = fs_1.promises.readdir, exports.lstat = fs_1.promises.lstat;
9
10
  async function find(src) {
10
- const result = [];
11
+ const fileResults = [];
12
+ const archiveResults = [];
11
13
  await traverse(src, async (path, stats) => {
12
- if (stats.size > common_1.MAX_SUPPORTED_FILE_SIZE || stats.size <= 0) {
14
+ if (!common_1.isSupportedSize(stats.size)) {
13
15
  return;
14
16
  }
15
- result.push(path);
17
+ if (extract_1.isArchive(path)) {
18
+ archiveResults.push(path);
19
+ return;
20
+ }
21
+ fileResults.push(path);
16
22
  });
17
- return result;
23
+ return [fileResults, archiveResults];
18
24
  }
19
25
  exports.find = find;
20
26
  async function traverse(src, handle) {
package/dist/find.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../lib/find.ts"],"names":[],"mappings":";;;AAAA,2BAAqC;AACrC,+BAA4B;AAC5B,qCAAmD;AACnD,mCAAgC;AAGjB,eAAO,GAAY,aAAQ,UAAlB,aAAK,GAAK,aAAQ,OAAC;AAMpC,KAAK,UAAU,IAAI,CAAC,GAAW;IACpC,MAAM,MAAM,GAAe,EAAE,CAAC;IAE9B,MAAM,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAc,EAAE,KAAY,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,IAAI,GAAG,gCAAuB,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE;YAC3D,OAAO;SACR;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,oBAYC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,MAAmB;IACtD,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,aAAK,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE;YAC1B,OAAO;SACR;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;YAClB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACnB,OAAO;SACR;QAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,MAAM,eAAO,CAAC,GAAG,CAAC,CAAC;YAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,MAAM,QAAQ,GAAG,WAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAElC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAClC;SACF;KACF;IAAC,OAAO,KAAK,EAAE;QACd,aAAK,CAAC,KAAK,CAAC,OAAO,IAAI,sBAAsB,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;KAC/D;AACH,CAAC"}
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../lib/find.ts"],"names":[],"mappings":";;;AAAA,2BAAqC;AACrC,+BAA4B;AAC5B,qCAA2C;AAC3C,mCAAgC;AAEhC,uCAAsC;AAEvB,eAAO,GAAY,aAAQ,UAAlB,aAAK,GAAK,aAAQ,OAAC;AAMpC,KAAK,UAAU,IAAI,CAAC,GAAW;IACpC,MAAM,WAAW,GAAe,EAAE,CAAC;IACnC,MAAM,cAAc,GAAe,EAAE,CAAC;IAEtC,MAAM,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAc,EAAE,KAAY,EAAE,EAAE;QACzD,IAAI,CAAC,wBAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAChC,OAAO;SACR;QAED,IAAI,mBAAS,CAAC,IAAI,CAAC,EAAE;YACnB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO;SACR;QAED,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AACvC,CAAC;AAlBD,oBAkBC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,MAAmB;IACtD,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,aAAK,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE;YAC1B,OAAO;SACR;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;YAClB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACnB,OAAO;SACR;QAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,MAAM,eAAO,CAAC,GAAG,CAAC,CAAC;YAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,MAAM,QAAQ,GAAG,WAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAElC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAClC;SACF;KACF;IAAC,OAAO,KAAK,EAAE;QACd,aAAK,CAAC,KAAK,CAAC,OAAO,IAAI,sBAAsB,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;KAC/D;AACH,CAAC"}
package/dist/scan.js CHANGED
@@ -3,15 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.scan = void 0;
4
4
  const fs = require("fs");
5
5
  const path = require("path");
6
+ const path_1 = require("path");
6
7
  const debug_1 = require("./debug");
7
8
  const find_1 = require("./find");
8
9
  const hosted_git_info_1 = require("hosted-git-info");
9
10
  const signatures_1 = require("./signatures");
10
11
  const git_1 = require("./git");
12
+ const extract_1 = require("./extract");
13
+ const fs_1 = require("./utils/fs");
14
+ const common_1 = require("./common");
11
15
  async function scan(options) {
12
16
  try {
13
17
  debug_1.debug.enabled = !!(options === null || options === void 0 ? void 0 : options.debug);
14
18
  debug_1.debug('options %o \n', options);
19
+ const extractionDepthLimit = options['max-depth'] || 0;
20
+ if (extractionDepthLimit < 0) {
21
+ throw 'invalid options: --max-depth should be greater than or equal to 0.';
22
+ }
15
23
  if (!options.path) {
16
24
  throw 'invalid options: no path provided.';
17
25
  }
@@ -19,11 +27,25 @@ async function scan(options) {
19
27
  throw `'${options.path}' does not exist.`;
20
28
  }
21
29
  const start = Date.now();
22
- const paths = await find_1.find(options.path);
23
- debug_1.debug('%d files found \n', paths.length);
24
- const signatures = await signatures_1.computeSignaturesConcurrently(paths);
30
+ const [filePaths, archivePaths] = await find_1.find(options.path);
31
+ let extractionWorkspace = null;
32
+ if (0 < extractionDepthLimit && 0 < archivePaths.length) {
33
+ const temporaryDir = await fs_1.createTemporaryDir();
34
+ extractionWorkspace = path_1.join(temporaryDir, common_1.DECOMPRESSING_WORKSPACE_DIR);
35
+ await extract_1.extract(archivePaths, temporaryDir, extractionDepthLimit);
36
+ const [newFilePaths, newArchivePaths] = await find_1.find(extractionWorkspace);
37
+ filePaths.push(...newFilePaths, ...newArchivePaths);
38
+ }
39
+ else {
40
+ filePaths.push(...archivePaths);
41
+ }
42
+ debug_1.debug('%d files found \n', filePaths.length);
43
+ const signatures = await signatures_1.computeSignaturesConcurrently(filePaths);
25
44
  signatures.forEach((s) => {
26
- s.path = path.relative(options.path, s.path);
45
+ const src = extractionWorkspace && s.path.includes(extractionWorkspace)
46
+ ? extractionWorkspace
47
+ : options.path;
48
+ s.path = path.relative(src, s.path);
27
49
  });
28
50
  const end = Date.now();
29
51
  const totalMilliseconds = end - start;
package/dist/scan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../lib/scan.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAW7B,mCAAgC;AAChC,iCAA8B;AAC9B,qDAA0C;AAC1C,6CAA6D;AAC7D,+BAAkC;AAE3B,KAAK,UAAU,IAAI,CAAC,OAAgB;IACzC,IAAI;QACF,aAAK,CAAC,OAAO,GAAG,CAAC,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,CAAC;QACjC,aAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjB,MAAM,oCAAoC,CAAC;SAC5C;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,IAAI,OAAO,CAAC,IAAI,mBAAmB,CAAC;SAC3C;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,MAAM,KAAK,GAAe,MAAM,WAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,aAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,UAAU,GAAsB,MAAM,0CAA6B,CACvE,KAAK,CACN,CAAC;QAEF,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,iBAAiB,GAAG,GAAG,GAAG,KAAK,CAAC;QACtC,MAAM,mBAAmB,GAAG,UAAU,CAAC,MAAM,CAAC;QAC9C,MAAM,2CAA2C,GAAG,IAAI,CAAC,KAAK,CAC5D,iBAAiB,GAAG,IAAI,CACzB,CAAC;QAEF,aAAK,CAAC,yBAAyB,mBAAmB,KAAK,CAAC,CAAC;QACzD,aAAK,CACH,uDAAuD,2CAA2C,MAAM,CACzG,CAAC;QAEF,MAAM,KAAK,GAAY,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAEtE,MAAM,SAAS,GAAgB;YAC7B;gBACE,IAAI,EAAE,gCAAgC;gBACtC,IAAI,EAAE;oBACJ,mBAAmB;oBACnB,2CAA2C;iBAC5C;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,eAAS,EAAE,CAAC;QACjC,aAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,yBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,IAAI,GACR,OAAO,CAAC,WAAW,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzE,aAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC1B,MAAM,WAAW,GAAiB;YAChC;gBACE,KAAK;gBACL,QAAQ,EAAE;oBACR,IAAI,EAAE,KAAK;iBACZ;gBACD,IAAI;gBACJ,MAAM;gBACN,SAAS;aACV;SACF,CAAC;QAEF,OAAO;YACL,WAAW;SACZ,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;KAC3D;AACH,CAAC;AA3ED,oBA2EC"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../lib/scan.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ async function computeSignaturesConcurrently(paths) {
10
10
  return pMap(paths, async (path) => {
11
11
  const content = await readFile(path);
12
12
  return await hash_1.computeHash(path, content);
13
- }, { concurrency: common_1.CONCURRENCY_LEVEL });
13
+ }, { concurrency: common_1.HASHING_CONCURRENCY_LEVEL });
14
14
  }
15
15
  exports.computeSignaturesConcurrently = computeSignaturesConcurrently;
16
16
  //# sourceMappingURL=signatures.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signatures.js","sourceRoot":"","sources":["../lib/signatures.ts"],"names":[],"mappings":";;;AAAA,2BAA8B;AAE9B,iCAAqC;AACrC,qCAA6C;AAE7C,8BAA+B;AAE/B,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAQ,CAAC;AAEvB,KAAK,UAAU,6BAA6B,CACjD,KAAiB;IAEjB,OAAO,IAAI,CACT,KAAK,EACL,KAAK,EAAE,IAAc,EAAE,EAAE;QACvB,MAAM,OAAO,GAAgB,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,MAAM,kBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,EACD,EAAE,WAAW,EAAE,0BAAiB,EAAE,CACnC,CAAC;AACJ,CAAC;AAXD,sEAWC"}
1
+ {"version":3,"file":"signatures.js","sourceRoot":"","sources":["../lib/signatures.ts"],"names":[],"mappings":";;;AAAA,2BAA8B;AAE9B,iCAAqC;AACrC,qCAAqD;AAErD,8BAA+B;AAE/B,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAQ,CAAC;AAEvB,KAAK,UAAU,6BAA6B,CACjD,KAAiB;IAEjB,OAAO,IAAI,CACT,KAAK,EACL,KAAK,EAAE,IAAc,EAAE,EAAE;QACvB,MAAM,OAAO,GAAgB,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,MAAM,kBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,EACD,EAAE,WAAW,EAAE,kCAAyB,EAAE,CAC3C,CAAC;AACJ,CAAC;AAXD,sEAWC"}
package/dist/types.d.ts CHANGED
@@ -44,6 +44,7 @@ export interface Options {
44
44
  'print-deps'?: boolean;
45
45
  'print-dep-paths'?: boolean;
46
46
  supportUnmanagedVulnDB?: boolean;
47
+ 'max-depth'?: number;
47
48
  }
48
49
  export interface Issue {
49
50
  pkgName: string;
@@ -1,6 +1,7 @@
1
+ import { TestResult } from '../types';
1
2
  export declare enum ExitCode {
2
3
  VulnerabilitiesFound = "VULNS",
3
4
  Error = 2,
4
5
  NoSupportedFiles = 3
5
6
  }
6
- export declare function exitWith(exitCode: ExitCode, message: string): void;
7
+ export declare function exitWith(exitCode: ExitCode, message: string, testResults?: TestResult[]): void;
@@ -7,10 +7,14 @@ var ExitCode;
7
7
  ExitCode[ExitCode["Error"] = 2] = "Error";
8
8
  ExitCode[ExitCode["NoSupportedFiles"] = 3] = "NoSupportedFiles";
9
9
  })(ExitCode = exports.ExitCode || (exports.ExitCode = {}));
10
- function exitWith(exitCode, message) {
10
+ function exitWith(exitCode, message, testResults = []) {
11
11
  const err = new Error();
12
12
  err.message = message;
13
13
  err.code = exitCode.valueOf();
14
+ if (0 < testResults.length) {
15
+ const jsonData = testResults.length === 1 ? testResults[0] : testResults;
16
+ err.jsonStringifiedResults = JSON.stringify(jsonData);
17
+ }
14
18
  throw err;
15
19
  }
16
20
  exports.exitWith = exitWith;
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../lib/utils/error.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,0CAA8B,CAAA;IAC9B,yCAAS,CAAA;IACT,+DAAoB,CAAA;AACtB,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB;AAED,SAAgB,QAAQ,CAAC,QAAkB,EAAE,OAAe;IAC1D,MAAM,GAAG,GAAG,IAAI,KAAK,EAAS,CAAC;IAC/B,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;IAE9B,MAAM,GAAG,CAAC;AACZ,CAAC;AAND,4BAMC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../lib/utils/error.ts"],"names":[],"mappings":";;;AAEA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,0CAA8B,CAAA;IAC9B,yCAAS,CAAA;IACT,+DAAoB,CAAA;AACtB,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB;AAED,SAAgB,QAAQ,CACtB,QAAkB,EAClB,OAAe,EACf,cAA4B,EAAE;IAE9B,MAAM,GAAG,GAAG,IAAI,KAAK,EAAS,CAAC;IAC/B,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;IAE9B,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACzE,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KACvD;IAED,MAAM,GAAG,CAAC;AACZ,CAAC;AAfD,4BAeC"}
@@ -0,0 +1,2 @@
1
+ import { FilePath } from '../types';
2
+ export declare function createTemporaryDir(): Promise<FilePath>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTemporaryDir = void 0;
4
+ const os = require("os");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const { mkdtemp } = fs_1.promises;
8
+ async function createTemporaryDir() {
9
+ return await mkdtemp(path_1.join(os.tmpdir(), 'snyk'));
10
+ }
11
+ exports.createTemporaryDir = createTemporaryDir;
12
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../lib/utils/fs.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AAEzB,2BAA8B;AAC9B,+BAA4B;AAG5B,MAAM,EAAE,OAAO,EAAE,GAAG,aAAQ,CAAC;AAEtB,KAAK,UAAU,kBAAkB;IACtC,OAAO,MAAM,OAAO,CAAC,WAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC;AAFD,gDAEC"}
package/package.json CHANGED
@@ -30,11 +30,15 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@snyk/dep-graph": "^1.19.3",
33
+ "@types/uuid": "^8.3.4",
34
+ "adm-zip": "^0.5.9",
33
35
  "chalk": "^4.1.0",
34
36
  "debug": "^4.1.1",
35
37
  "hosted-git-info": "^3.0.7",
36
38
  "p-map": "^4.0.0",
37
- "tslib": "^2.0.0"
39
+ "tar": "^6.1.11",
40
+ "tslib": "^2.0.0",
41
+ "uuid": "^8.3.2"
38
42
  },
39
43
  "devDependencies": {
40
44
  "@types/debug": "^4.1.5",
@@ -53,5 +57,5 @@
53
57
  "tsc-watch": "^4.2.9",
54
58
  "typescript": "^3.9.7"
55
59
  },
56
- "version": "2.15.4"
60
+ "version": "2.16.3"
57
61
  }