retire 4.2.2 → 4.2.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/CHANGELOG.md +6 -0
- package/lib/repo.js +1 -1
- package/lib/reporters/cyclonedx-json.js +3 -2
- package/lib/reporters/cyclonedx.js +2 -1
- package/lib/reporters/utils.d.ts +2 -0
- package/lib/reporters/utils.js +8 -0
- package/lib/retire.js +4 -3
- package/lib/types.d.ts +3 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/lib/repo.js
CHANGED
|
@@ -125,7 +125,7 @@ function loadFromCache(url, cachedir, options) {
|
|
|
125
125
|
function asbowerrepo(jsRepo) {
|
|
126
126
|
const result = {};
|
|
127
127
|
Object.keys(jsRepo).map((k) => {
|
|
128
|
-
|
|
128
|
+
(jsRepo[k].bowername || [k]).map((b) => {
|
|
129
129
|
result[b] = result[b] || { vulnerabilities: [] };
|
|
130
130
|
result[b].vulnerabilities = result[b].vulnerabilities.concat(jsRepo[k].vulnerabilities);
|
|
131
131
|
});
|
|
@@ -27,6 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
27
27
|
const retire = __importStar(require("../retire"));
|
|
28
28
|
const fs = __importStar(require("fs"));
|
|
29
29
|
const uuid_1 = require("uuid");
|
|
30
|
+
const utils_1 = require("./utils");
|
|
30
31
|
function configureCycloneDXJSONLogger(logger, writer, config, hash) {
|
|
31
32
|
let vulnsFound = false;
|
|
32
33
|
const finalResults = {
|
|
@@ -71,7 +72,7 @@ function configureCycloneDXJSONLogger(logger, writer, config, hash) {
|
|
|
71
72
|
{ alg: 'SHA-512', content: hash.sha512(file) },
|
|
72
73
|
];
|
|
73
74
|
}
|
|
74
|
-
const purl =
|
|
75
|
+
const purl = (0, utils_1.generatePURL)(dep);
|
|
75
76
|
if (seen.has(purl))
|
|
76
77
|
return undefined;
|
|
77
78
|
seen.add(purl);
|
|
@@ -84,7 +85,7 @@ function configureCycloneDXJSONLogger(logger, writer, config, hash) {
|
|
|
84
85
|
};
|
|
85
86
|
})
|
|
86
87
|
.filter((x) => x != undefined))
|
|
87
|
-
.reduce((a, b) => a.concat(b));
|
|
88
|
+
.reduce((a, b) => a.concat(b), []);
|
|
88
89
|
write(JSON.stringify({
|
|
89
90
|
bomFormat: 'CycloneDX',
|
|
90
91
|
specVersion: '1.4',
|
|
@@ -27,6 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
27
27
|
const retire = __importStar(require("../retire"));
|
|
28
28
|
const fs = __importStar(require("fs"));
|
|
29
29
|
const uuid_1 = require("uuid");
|
|
30
|
+
const utils_1 = require("./utils");
|
|
30
31
|
function configureCycloneDXLogger(logger, writer, config, hash) {
|
|
31
32
|
let vulnsFound = false;
|
|
32
33
|
const finalResults = {
|
|
@@ -72,7 +73,7 @@ function configureCycloneDXLogger(logger, writer, config, hash) {
|
|
|
72
73
|
<hash alg="SHA-512">${hash.sha512(file)}</hash>
|
|
73
74
|
</hashes>`;
|
|
74
75
|
}
|
|
75
|
-
const purl =
|
|
76
|
+
const purl = (0, utils_1.generatePURL)(dep);
|
|
76
77
|
if (seen.has(purl))
|
|
77
78
|
return '';
|
|
78
79
|
seen.add(purl);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generatePURL = void 0;
|
|
4
|
+
function generatePURL(component) {
|
|
5
|
+
const compName = component.npmname || component.component;
|
|
6
|
+
return `pkg:npm/${compName}@${component.version}`;
|
|
7
|
+
}
|
|
8
|
+
exports.generatePURL = generatePURL;
|
package/lib/retire.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
var exports = exports || {};
|
|
7
|
-
exports.version = '4.2.
|
|
7
|
+
exports.version = '4.2.3';
|
|
8
8
|
|
|
9
9
|
function isDefined(o) {
|
|
10
10
|
return typeof o !== 'undefined';
|
|
@@ -29,7 +29,7 @@ function scan(data, extractor, repo, matcher) {
|
|
|
29
29
|
var match = matcher(extractors[i], data);
|
|
30
30
|
if (match) {
|
|
31
31
|
match = match.replace(/(\.|-)min$/, '');
|
|
32
|
-
detected.push({ version: match, component: component, detection: extractor });
|
|
32
|
+
detected.push({ version: match, component: component, npmname: repo[component].npmname, detection: extractor });
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -65,7 +65,7 @@ function scanhash(hash, repo) {
|
|
|
65
65
|
var hashes = repo[component].extractors.hashes;
|
|
66
66
|
if (!isDefined(hashes)) continue;
|
|
67
67
|
if (hashes.hasOwnProperty(hash)) {
|
|
68
|
-
return [{ version: hashes[hash], component: component, detection: 'hash' }];
|
|
68
|
+
return [{ version: hashes[hash], component: component, npmname: repo[component].npmname, detection: 'hash' }];
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
return [];
|
|
@@ -76,6 +76,7 @@ function check(results, repo) {
|
|
|
76
76
|
var result = results[r];
|
|
77
77
|
if (!isDefined(repo[result.component])) continue;
|
|
78
78
|
var vulns = repo[result.component].vulnerabilities;
|
|
79
|
+
result.npmname = repo[result.component].npmname;
|
|
79
80
|
for (var i in vulns) {
|
|
80
81
|
if (!isDefined(vulns[i].below) || !isAtOrAbove(result.version, vulns[i].below)) {
|
|
81
82
|
if (isDefined(vulns[i].atOrAbove) && !isAtOrAbove(result.version, vulns[i].atOrAbove)) {
|
package/lib/types.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Logger } from './reporting';
|
|
3
3
|
export type Repository = Record<string, {
|
|
4
|
-
bowername?: string;
|
|
4
|
+
bowername?: string[];
|
|
5
|
+
npmname?: string;
|
|
5
6
|
vulnerabilities: Vulnerability[];
|
|
6
7
|
extractors: {
|
|
7
8
|
func?: string[];
|
|
@@ -28,6 +29,7 @@ export type Vulnerability = {
|
|
|
28
29
|
};
|
|
29
30
|
export type Component = {
|
|
30
31
|
component: string;
|
|
32
|
+
npmname?: string;
|
|
31
33
|
version: string;
|
|
32
34
|
vulnerabilities?: Vulnerability[];
|
|
33
35
|
};
|
package/package.json
CHANGED