snyk-cpp-plugin 2.16.0 → 2.16.4

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
@@ -2,6 +2,6 @@ export declare const isWindowsOS: () => boolean;
2
2
  export declare const MAX_SUPPORTED_FILE_SIZE: number;
3
3
  export declare const HASHING_CONCURRENCY_LEVEL: number;
4
4
  export declare const DECOMPRESSING_CONCURRENCY_LEVEL: number;
5
- export declare const DEFAULT_DECOMPRESSING_DEPTH = 1;
6
- export declare const EXTRACTED_DIR_SUFFIX = ".extracted";
5
+ export declare const DECOMPRESSING_WORKSPACE_DIR = "workspace";
6
+ export declare const DECOMPRESSING_IGNORE_DIR = "ignore";
7
7
  export declare const isSupportedSize: (size: number) => boolean;
package/dist/common.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSupportedSize = exports.EXTRACTED_DIR_SUFFIX = exports.DEFAULT_DECOMPRESSING_DEPTH = exports.DECOMPRESSING_CONCURRENCY_LEVEL = exports.HASHING_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()
@@ -9,7 +9,7 @@ exports.isWindowsOS = () => osName()
9
9
  exports.MAX_SUPPORTED_FILE_SIZE = 2 * 1024 * 1024 * 1024 - 1;
10
10
  exports.HASHING_CONCURRENCY_LEVEL = os.cpus().length;
11
11
  exports.DECOMPRESSING_CONCURRENCY_LEVEL = os.cpus().length * 8;
12
- exports.DEFAULT_DECOMPRESSING_DEPTH = 1;
13
- exports.EXTRACTED_DIR_SUFFIX = '.extracted';
12
+ exports.DECOMPRESSING_WORKSPACE_DIR = 'workspace';
13
+ exports.DECOMPRESSING_IGNORE_DIR = 'ignore';
14
14
  exports.isSupportedSize = (size) => 0 < size && size < exports.MAX_SUPPORTED_FILE_SIZE;
15
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,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,CAAC,CAAC;AAEhC,QAAA,oBAAoB,GAAG,YAAY,CAAC;AAEpC,QAAA,eAAe,GAAG,CAAC,IAAY,EAAW,EAAE,CACvD,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,+BAAuB,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"}
@@ -10,42 +10,41 @@ async function display(scanResults, testResults, errors, options) {
10
10
  if (errors.length > 0) {
11
11
  error_1.exitWith(error_1.ExitCode.Error, display_1.displayErrors(errors).join('\n'));
12
12
  }
13
- const result = [];
13
+ let result = [];
14
14
  let hasDependencies = false;
15
15
  let hasVulnerabilities = false;
16
16
  try {
17
17
  if (options === null || options === void 0 ? void 0 : options.path) {
18
18
  const prefix = chalk.bold.white(`\nTesting ${options.path}...\n`);
19
- result.push(prefix);
19
+ result = result.concat(prefix);
20
20
  }
21
21
  if (options === null || options === void 0 ? void 0 : options.debug) {
22
- const signatureLines = display_1.displaySignatures(scanResults);
23
- result.push(...signatureLines);
22
+ result = result.concat(display_1.displaySignatures(scanResults));
24
23
  }
25
24
  for (const testResult of testResults) {
26
25
  const depGraph = dep_graph_1.createFromJSON(testResult.depGraphData);
27
- const [dependencySection, issuesSection] = display_1.selectDisplayStrategy(options, depGraph, testResult);
26
+ const [dependencies, issues] = display_1.selectDisplayStrategy(options, depGraph, testResult);
28
27
  if (testResult.depGraphData.pkgs.length > 1) {
29
28
  hasDependencies = true;
30
29
  }
31
30
  if (testResult.issues.length > 0) {
32
31
  hasVulnerabilities = true;
33
32
  }
34
- result.push(...dependencySection, ...issuesSection);
33
+ result = result.concat(dependencies, issues);
35
34
  }
36
35
  }
37
36
  catch (error) {
38
37
  debug_1.debug(error.message || `Error displaying the results: ${error}`);
39
38
  error_1.exitWith(error_1.ExitCode.Error, 'Error displaying results.');
40
39
  }
40
+ const output = result.join('\n');
41
41
  if (hasVulnerabilities) {
42
- error_1.exitWith(error_1.ExitCode.VulnerabilitiesFound, result.join('\n'));
42
+ error_1.exitWith(error_1.ExitCode.VulnerabilitiesFound, output, testResults);
43
43
  }
44
44
  if (!hasDependencies) {
45
- result.push(`Could not detect supported target files in ${options === null || options === void 0 ? void 0 : options.path}`);
46
- error_1.exitWith(error_1.ExitCode.NoSupportedFiles, result.join('\n'));
45
+ error_1.exitWith(error_1.ExitCode.NoSupportedFiles, `${output}\nCould not detect supported target files in ${options === null || options === void 0 ? void 0 : options.path}`);
47
46
  }
48
- return result.join('\n');
47
+ return output;
49
48
  }
50
49
  exports.display = display;
51
50
  //# sourceMappingURL=index.js.map
@@ -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,IAAI,MAAM,GAAa,EAAE,CAAC;IAE1B,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,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAChC;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE;YAClB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,2BAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;SACxD;QAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,MAAM,QAAQ,GAAG,0BAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACzD,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,+BAAqB,CAClD,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,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;SAC9C;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,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,kBAAkB,EAAE;QACtB,gBAAQ,CAAC,gBAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;KAC9D;IAED,IAAI,CAAC,eAAe,EAAE;QACpB,gBAAQ,CACN,gBAAQ,CAAC,gBAAgB,EACzB,GAAG,MAAM,gDAAgD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CACzE,CAAC;KACH;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA9DD,0BA8DC"}
package/dist/extract.d.ts CHANGED
@@ -3,4 +3,3 @@ export declare function extract(archives: readonly FilePath[], temporaryDir: Fil
3
3
  export declare function isTar(path: FilePath): boolean;
4
4
  export declare function isZip(path: FilePath): boolean;
5
5
  export declare function isArchive(path: FilePath): boolean;
6
- export declare function filterArchives(paths: readonly FilePath[]): FilePath[];
package/dist/extract.js CHANGED
@@ -1,24 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterArchives = exports.isArchive = exports.isZip = exports.isTar = exports.extract = void 0;
3
+ exports.isArchive = exports.isZip = exports.isTar = exports.extract = void 0;
4
4
  const fs_1 = require("fs");
5
5
  const path_1 = require("path");
6
+ const uuid_1 = require("uuid");
6
7
  const common_1 = require("./common");
7
8
  const debug_1 = require("./debug");
8
9
  const pMap = require('p-map');
9
10
  const AdmZip = require('adm-zip');
10
11
  const tar = require('tar');
11
- const { mkdir } = fs_1.promises;
12
+ const { mkdir, rename } = fs_1.promises;
12
13
  const zipFormats = ['.zip', '.zipx'];
13
14
  const tarFormats = ['.tar', '.gz', '.tgz'];
14
- async function handleExtraction(path, temporaryDir, childArchiveHandler) {
15
- const extractionTarget = path_1.join(temporaryDir, path.includes(temporaryDir)
16
- ? path_1.relative(temporaryDir, `${path}${common_1.EXTRACTED_DIR_SUFFIX}`)
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)
17
25
  : path_1.basename(path));
18
26
  await mkdir(extractionTarget, { recursive: true });
19
- if (isTar(path)) {
27
+ if (isTar(extractionSource)) {
20
28
  await tar.x({
21
- file: path,
29
+ file: extractionSource,
22
30
  cwd: extractionTarget,
23
31
  sync: true,
24
32
  onentry: (entry) => {
@@ -29,8 +37,8 @@ async function handleExtraction(path, temporaryDir, childArchiveHandler) {
29
37
  },
30
38
  });
31
39
  }
32
- else if (isZip(path)) {
33
- const zip = new AdmZip(path);
40
+ else if (isZip(extractionSource)) {
41
+ const zip = new AdmZip(extractionSource);
34
42
  await pMap(zip.getEntries(), (entry) => {
35
43
  const childAbsolutePath = path_1.join(extractionTarget, entry.entryName);
36
44
  zip.extractEntryTo(entry.entryName, extractionTarget, true, true);
@@ -47,7 +55,8 @@ async function extract(archives, temporaryDir, depthLimit, depth = 0) {
47
55
  const childArchives = [];
48
56
  for (const archive of archives) {
49
57
  try {
50
- await handleExtraction(archive, temporaryDir, (childArchive) => childArchives.push(childArchive));
58
+ const keepArchive = 0 === depth;
59
+ await handleExtraction(archive, temporaryDir, keepArchive, (childArchive) => childArchives.push(childArchive));
51
60
  }
52
61
  catch (err) {
53
62
  debug_1.debug(`Could not extract archive: ${archive} ${err}`);
@@ -70,8 +79,4 @@ function isArchive(path) {
70
79
  return isTar(path) || isZip(path);
71
80
  }
72
81
  exports.isArchive = isArchive;
73
- function filterArchives(paths) {
74
- return paths.filter((path) => isArchive(path));
75
- }
76
- exports.filterArchives = filterArchives;
77
82
  //# sourceMappingURL=extract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../lib/extract.ts"],"names":[],"mappings":"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"}
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
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,qCAA2C;AAC3C,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,CAAC,wBAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAChC,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,23 +3,22 @@ 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");
11
12
  const extract_1 = require("./extract");
12
- const common_1 = require("./common");
13
13
  const fs_1 = require("./utils/fs");
14
+ const common_1 = require("./common");
14
15
  async function scan(options) {
15
16
  try {
16
17
  debug_1.debug.enabled = !!(options === null || options === void 0 ? void 0 : options.debug);
17
18
  debug_1.debug('options %o \n', options);
18
- const extractionDepthLimit = options['--max-depth'] !== undefined
19
- ? options['--max-depth']
20
- : common_1.DEFAULT_DECOMPRESSING_DEPTH;
19
+ const extractionDepthLimit = options['max-depth'] || 0;
21
20
  if (extractionDepthLimit < 0) {
22
- throw 'invalid options: --max-depth should be a positive number.';
21
+ throw 'invalid options: --max-depth should be greater than or equal to 0.';
23
22
  }
24
23
  if (!options.path) {
25
24
  throw 'invalid options: no path provided.';
@@ -28,25 +27,25 @@ async function scan(options) {
28
27
  throw `'${options.path}' does not exist.`;
29
28
  }
30
29
  const start = Date.now();
31
- const paths = await find_1.find(options.path);
32
- const archives = extract_1.filterArchives(paths);
33
- let temporaryDir = null;
34
- if (archives.length > 0) {
35
- temporaryDir = await fs_1.createTemporaryDir();
36
- await extract_1.extract(archives, temporaryDir, extractionDepthLimit);
37
- paths.push(...(await find_1.find(temporaryDir)));
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);
38
41
  }
39
- debug_1.debug('%d files found \n', paths.length);
40
- const signatures = await signatures_1.computeSignaturesConcurrently(paths);
42
+ debug_1.debug('%d files found \n', filePaths.length);
43
+ const signatures = await signatures_1.computeSignaturesConcurrently(filePaths);
41
44
  signatures.forEach((s) => {
42
- if (temporaryDir && s.path.includes(temporaryDir)) {
43
- s.path = path
44
- .relative(temporaryDir, s.path)
45
- .replace(new RegExp(common_1.EXTRACTED_DIR_SUFFIX, 'g'), '');
46
- }
47
- else {
48
- s.path = path.relative(options.path, s.path);
49
- }
45
+ const src = extractionWorkspace && s.path.includes(extractionWorkspace)
46
+ ? extractionWorkspace
47
+ : options.path;
48
+ s.path = path.relative(src, s.path);
50
49
  });
51
50
  const end = Date.now();
52
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":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../lib/scan.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,+BAA4B;AAW5B,mCAAgC;AAChC,iCAA8B;AAC9B,qDAA0C;AAC1C,6CAA6D;AAC7D,+BAAkC;AAClC,uCAAoC;AACpC,mCAAgD;AAChD,qCAAuD;AAEhD,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;QAChC,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvD,IAAI,oBAAoB,GAAG,CAAC,EAAE;YAC5B,MAAM,oEAAoE,CAAC;SAC5E;QAED,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,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,MAAM,WAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,mBAAmB,GAAoB,IAAI,CAAC;QAEhD,IAAI,CAAC,GAAG,oBAAoB,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE;YACvD,MAAM,YAAY,GAAG,MAAM,uBAAkB,EAAE,CAAC;YAChD,mBAAmB,GAAG,WAAI,CAAC,YAAY,EAAE,oCAA2B,CAAC,CAAC;YAEtE,MAAM,iBAAO,CAAC,YAAY,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC;YAChE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,MAAM,WAAI,CAAC,mBAAmB,CAAC,CAAC;YAExE,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE,GAAG,eAAe,CAAC,CAAC;SACrD;aAAM;YACL,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;SACjC;QAED,aAAK,CAAC,mBAAmB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAsB,MAAM,0CAA6B,CACvE,SAAS,CACV,CAAC;QAEF,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,GAAG,GACP,mBAAmB,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACzD,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;YAEnB,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,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;AAnGD,oBAmGC"}
package/dist/types.d.ts CHANGED
@@ -44,7 +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
+ 'max-depth'?: number;
48
48
  }
49
49
  export interface Issue {
50
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"}
package/package.json CHANGED
@@ -30,13 +30,15 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@snyk/dep-graph": "^1.19.3",
33
+ "@types/uuid": "^8.3.4",
33
34
  "adm-zip": "^0.5.9",
34
35
  "chalk": "^4.1.0",
35
36
  "debug": "^4.1.1",
36
37
  "hosted-git-info": "^3.0.7",
37
38
  "p-map": "^4.0.0",
38
39
  "tar": "^6.1.11",
39
- "tslib": "^2.0.0"
40
+ "tslib": "^2.0.0",
41
+ "uuid": "^8.3.2"
40
42
  },
41
43
  "devDependencies": {
42
44
  "@types/debug": "^4.1.5",
@@ -55,5 +57,5 @@
55
57
  "tsc-watch": "^4.2.9",
56
58
  "typescript": "^3.9.7"
57
59
  },
58
- "version": "2.16.0"
60
+ "version": "2.16.4"
59
61
  }