retire 4.4.2 → 4.4.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/CHANGELOG.md CHANGED
@@ -1,12 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.4.4]
4
+
5
+ ### Bugfix
6
+
7
+ - CLI argument `--ext` was not working
8
+
9
+ ## [4.4.3]
10
+
11
+ ### Bugfix
12
+
13
+ - JSON format should not include results without vulnerabilities unless `--verbose` is specified.
14
+
3
15
  ## [4.4.2]
4
16
 
5
17
  ### Fix
6
18
 
7
19
  - Fix matching to include all matches
8
20
 
9
-
10
21
  ## [4.4.1]
11
22
 
12
23
  ### Chore
package/lib/cli.js CHANGED
@@ -108,6 +108,7 @@ const config = {
108
108
  includeOsv: !!prg.includeOsv,
109
109
  verbose: !!prg.verbose,
110
110
  proxy: prg.proxy,
111
+ ext: prg.ext ?? 'js',
111
112
  };
112
113
  log.info(`retire.js v${retire.version}`);
113
114
  function exitWithError(msg) {
package/lib/depsdev.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.checkOSV = void 0;
6
+ exports.checkOSV = checkOSV;
7
7
  const https_1 = __importDefault(require("https"));
8
8
  const retire_1 = require("./retire");
9
9
  function loadJson(url, options) {
@@ -80,4 +80,3 @@ async function checkOSV(packageName, version, options) {
80
80
  return [];
81
81
  }
82
82
  }
83
- exports.checkOSV = checkOSV;
package/lib/repo.js CHANGED
@@ -23,7 +23,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.loadrepositoryFromFile = exports.loadrepository = exports.asbowerrepo = exports.validateRepository = void 0;
26
+ exports.validateRepository = validateRepository;
27
+ exports.asbowerrepo = asbowerrepo;
28
+ exports.loadrepository = loadrepository;
29
+ exports.loadrepositoryFromFile = loadrepositoryFromFile;
27
30
  const fs = __importStar(require("fs"));
28
31
  const path = __importStar(require("path"));
29
32
  const http = __importStar(require("http"));
@@ -150,7 +153,6 @@ function validateRepository(repo, replacer) {
150
153
  .strict());
151
154
  return validator.safeParse(repo);
152
155
  }
153
- exports.validateRepository = validateRepository;
154
156
  function formatValidationError(error) {
155
157
  return JSON.stringify(error.format(), (key, value) => (Array.isArray(value) && value.length === 0 ? undefined : value), 2);
156
158
  }
@@ -254,7 +256,6 @@ function asbowerrepo(jsRepo) {
254
256
  });
255
257
  return result;
256
258
  }
257
- exports.asbowerrepo = asbowerrepo;
258
259
  async function loadrepository(repoUrl, options) {
259
260
  options = { ...options, process: retire.replaceVersion };
260
261
  if (options.nocache) {
@@ -262,9 +263,7 @@ async function loadrepository(repoUrl, options) {
262
263
  }
263
264
  return await loadFromCache(repoUrl, options.cachedir, options);
264
265
  }
265
- exports.loadrepository = loadrepository;
266
266
  async function loadrepositoryFromFile(filepath, options) {
267
267
  options = { ...options, process: retire.replaceVersion };
268
268
  return await loadJsonFromFile(filepath, options);
269
269
  }
270
- exports.loadrepositoryFromFile = loadrepositoryFromFile;
@@ -44,6 +44,9 @@ exports.default = {
44
44
  };
45
45
  logger.warn = logger.error = (message) => finalResults.errors.push(message);
46
46
  logger.logVulnerableDependency = (finding) => {
47
+ if (!config.verbose) {
48
+ finding.results = finding.results.filter((r) => retire.isVulnerable([r]));
49
+ }
47
50
  finalResults.data.push(finding);
48
51
  };
49
52
  logger.logDependency = function (finding) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generatePURL = void 0;
3
+ exports.generatePURL = generatePURL;
4
4
  function generatePURL(component) {
5
5
  if (component.basePurl) {
6
6
  return component.basePurl + '@' + component.version;
@@ -8,4 +8,3 @@ function generatePURL(component) {
8
8
  const compName = component.npmname || component.component;
9
9
  return `pkg:npm/${compName}@${component.version}`;
10
10
  }
11
- exports.generatePURL = generatePURL;
@@ -1,6 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
1
  import { Finding } from './types';
5
2
  export type LoggerOptions = {
6
3
  outputpath: string;
package/lib/reporting.js CHANGED
@@ -26,7 +26,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.open = exports.hash = void 0;
29
+ exports.hash = void 0;
30
+ exports.open = open;
30
31
  const fs = __importStar(require("fs"));
31
32
  const crypto = __importStar(require("crypto"));
32
33
  const console_1 = __importDefault(require("./reporters/console"));
@@ -127,4 +128,3 @@ function open(config) {
127
128
  configureFileWriter(config);
128
129
  return logger;
129
130
  }
130
- exports.open = open;
package/lib/resolve.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { EventEmitter as Emitter } from 'events';
3
2
  import { Options } from './types';
4
3
  export declare function scanJsFiles(path: string, options: Options): Emitter;
package/lib/resolve.js CHANGED
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.scanJsFiles = void 0;
26
+ exports.scanJsFiles = scanJsFiles;
27
27
  const fs = __importStar(require("fs"));
28
28
  const walkdir = __importStar(require("walkdir"));
29
29
  function scanJsFiles(path, options) {
@@ -51,4 +51,3 @@ function scanJsFiles(path, options) {
51
51
  });
52
52
  return finder;
53
53
  }
54
- exports.scanJsFiles = scanJsFiles;
package/lib/retire.js CHANGED
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  var exports = exports || {};
7
- exports.version = '4.4.2';
7
+ exports.version = '4.4.4';
8
8
 
9
9
  function isDefined(o) {
10
10
  return typeof o !== 'undefined';
@@ -26,7 +26,7 @@ function scan(data, extractor, repo, matcher = simpleMatch) {
26
26
  if (!isDefined(extractors)) continue;
27
27
  for (var i in extractors) {
28
28
  var matches = matcher(extractors[i], data);
29
- matches.forEach(match => {
29
+ matches.forEach((match) => {
30
30
  match = match.replace(/(\.|-)min$/, '');
31
31
  detected.push({
32
32
  version: match,
@@ -42,20 +42,20 @@ function scan(data, extractor, repo, matcher = simpleMatch) {
42
42
  }
43
43
 
44
44
  function simpleMatch(regex, data) {
45
- var re = new RegExp(regex, "g");
45
+ var re = new RegExp(regex, 'g');
46
46
  const result = [];
47
47
  let match;
48
- while (match = re.exec(data)) {
48
+ while ((match = re.exec(data))) {
49
49
  result.push(match[1]);
50
50
  }
51
51
  return result;
52
52
  }
53
53
  function replacementMatch(regex, data) {
54
54
  var ar = /^\/(.*[^\\])\/([^\/]+)\/$/.exec(regex);
55
- var re = new RegExp(ar[1], "g");
55
+ var re = new RegExp(ar[1], 'g');
56
56
  const result = [];
57
57
  let match;
58
- while(match = re.exec(data)) {
58
+ while ((match = re.exec(data))) {
59
59
  var ver = null;
60
60
  if (match) {
61
61
  ver = match[0].replace(new RegExp(ar[1]), ar[2]);
package/lib/scanner.js CHANGED
@@ -23,7 +23,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.on = exports.scanBowerFile = exports.scanJsFile = void 0;
26
+ exports.scanJsFile = scanJsFile;
27
+ exports.scanBowerFile = scanBowerFile;
28
+ exports.on = on;
27
29
  const events_1 = require("events");
28
30
  const retire = __importStar(require("./retire"));
29
31
  const fs = __importStar(require("fs"));
@@ -132,7 +134,6 @@ function scanJsFile(file, repo, options) {
132
134
  }
133
135
  emitResults({ file: file, results: results }, options);
134
136
  }
135
- exports.scanJsFile = scanJsFile;
136
137
  function scanBowerFile(file, repo, options) {
137
138
  if (options.ignore && shouldIgnorePath([file], options.ignore)) {
138
139
  return;
@@ -148,8 +149,6 @@ function scanBowerFile(file, repo, options) {
148
149
  options.log.warn(`Could not parse file: ${file}`);
149
150
  }
150
151
  }
151
- exports.scanBowerFile = scanBowerFile;
152
152
  function on(event, handler) {
153
153
  events.on(event, handler);
154
154
  }
155
- exports.on = on;
package/lib/types.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Logger } from './reporting';
3
2
  export type Repository = Record<string, {
4
3
  bowername?: string[];
package/lib/utils.js CHANGED
@@ -1,18 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.flatten = exports.pick = exports.warn = exports.info = void 0;
3
+ exports.info = info;
4
+ exports.warn = warn;
5
+ exports.pick = pick;
6
+ exports.flatten = flatten;
4
7
  function info(options) {
5
8
  return function (...message) {
6
9
  (options.logger || console.log)(message);
7
10
  };
8
11
  }
9
- exports.info = info;
10
12
  function warn(options) {
11
13
  return function (...message) {
12
14
  (options.warnlogger || options.logger || console.warn)(message);
13
15
  };
14
16
  }
15
- exports.warn = warn;
16
17
  function pick(p, keys) {
17
18
  const result = {};
18
19
  keys.forEach((k) => {
@@ -22,8 +23,6 @@ function pick(p, keys) {
22
23
  });
23
24
  return result;
24
25
  }
25
- exports.pick = pick;
26
26
  function flatten(e) {
27
27
  return e.reduce((x, y) => x.concat(y), []);
28
28
  }
29
- exports.flatten = flatten;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "author": "Erlend Oftedal <erlend@oftedal.no>",
3
3
  "name": "retire",
4
4
  "description": "Retire is a tool for detecting use of vulnerable libraries",
5
- "version": "4.4.2",
5
+ "version": "4.4.4",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
@@ -29,10 +29,10 @@
29
29
  "eslint": "^8.34.0",
30
30
  "eslint-config-prettier": "^9.0.0",
31
31
  "jsonschema": "^1.4.1",
32
- "libxmljs": "^1.0.8",
33
32
  "mocha": "^10.2.0",
34
33
  "prettier": "^3.1.0",
35
- "typescript": "^5.0.4"
34
+ "typescript": "^5.0.4",
35
+ "xsd-schema-validator": "^0.9.0"
36
36
  },
37
37
  "scripts": {
38
38
  "test": "./test",