Skip to content

Commit c009145

Browse files
authored
refactor(scanner)!: implement name and version in rootDependency (#563)
1 parent dbc2562 commit c009145

15 files changed

+68
-24
lines changed

.changeset/tough-colts-taste.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@nodesecure/scanner": major
3+
---
4+
5+
Refactor payload rootDependency to include name and version

workspaces/scanner/src/comparePayloads.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,17 @@ export function comparePayloads(
9494
);
9595
}
9696

97-
if (payload.rootDependencyName !== comparedPayload.rootDependencyName) {
97+
if (payload.rootDependency.name !== comparedPayload.rootDependency.name) {
9898
throw new Error(
99-
`You can't compare different package payloads '${payload.rootDependencyName}' and '${comparedPayload.rootDependencyName}'`
99+
`You can't compare different package payloads '${payload.rootDependency.name}' and '${comparedPayload.rootDependency.name}'`
100100
);
101101
}
102102

103-
const givenVersion = Object.keys(payload.dependencies[payload.rootDependencyName].versions)[0];
104-
const comparedVersion = Object.keys(comparedPayload.dependencies[comparedPayload.rootDependencyName].versions)[0];
103+
const givenVersion = payload.rootDependency.version;
104+
const comparedVersion = comparedPayload.rootDependency.version;
105105

106106
return {
107-
title: `'${payload.rootDependencyName}@${givenVersion}' -> '${comparedPayload.rootDependencyName}@${comparedVersion}'`,
107+
title: `'${payload.rootDependency.name}@${givenVersion}' -> '${comparedPayload.rootDependency.name}@${comparedVersion}'`,
108108
warnings: arrayDiff(
109109
payload.warnings,
110110
comparedPayload.warnings

workspaces/scanner/src/depWalker.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,10 @@ export async function depWalker(
113113

114114
const payload: Partial<Payload> = {
115115
id: tempDir.id,
116-
rootDependencyName: manifest.name ?? "workspace",
116+
rootDependency: {
117+
name: manifest.name ?? "workspace",
118+
version: manifest.version ?? "0.0.0"
119+
},
117120
scannerVersion: packageVersion,
118121
vulnerabilityStrategy,
119122
warnings: []

workspaces/scanner/src/types.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,10 @@ export interface Payload {
188188
/** Payload unique id */
189189
id: string;
190190
/** Name of the analyzed package */
191-
rootDependencyName: string;
191+
rootDependency: {
192+
name: string;
193+
version: string;
194+
};
192195
/** Global warnings list */
193196
warnings: GlobalWarning[];
194197
highlighted: {

workspaces/scanner/test/depWalker.spec.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,13 @@ test("fetch payload of pacote on the npm registry", async() => {
168168

169169
assert.deepEqual(Object.keys(result), [
170170
"id",
171-
"rootDependencyName",
171+
"rootDependency",
172172
"scannerVersion",
173173
"vulnerabilityStrategy",
174174
"warnings",
175+
"integrity",
175176
"highlighted",
176-
"dependencies",
177-
"integrity"
177+
"dependencies"
178178
]);
179179
assert.strictEqual(typeof result.integrity, "string");
180180
});
@@ -188,13 +188,13 @@ test("fetch payload of pacote on the gitlab registry", async() => {
188188

189189
assert.deepEqual(Object.keys(result), [
190190
"id",
191-
"rootDependencyName",
191+
"rootDependency",
192192
"scannerVersion",
193193
"vulnerabilityStrategy",
194194
"warnings",
195+
"integrity",
195196
"highlighted",
196-
"dependencies",
197-
"integrity"
197+
"dependencies"
198198
]);
199199
assert.strictEqual(typeof result.integrity, "string");
200200
});
@@ -262,7 +262,10 @@ describe("scanner.cwd()", () => {
262262
path.join(kFixturePath, "workspace-no-name-version")
263263
);
264264

265-
assert.strictEqual(result.rootDependencyName, "workspace");
265+
assert.deepStrictEqual(result.rootDependency, {
266+
name: "workspace",
267+
version: "0.0.0"
268+
});
266269
assert.strictEqual(result.integrity, null);
267270
});
268271
});

workspaces/scanner/test/fixtures/extractors/express.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
22
"id": "XcwpAJ",
3-
"rootDependencyName": "express",
3+
"rootDependency": {
4+
"name": "express",
5+
"version": "4.21.2"
6+
},
47
"scannerVersion": "6.1.0",
58
"vulnerabilityStrategy": "none",
69
"warnings": [

workspaces/scanner/test/fixtures/extractors/strnum.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
22
"id": "54mMPc",
3-
"rootDependencyName": "strnum",
3+
"rootDependency": {
4+
"name": "strnum",
5+
"version": "1.1.2"
6+
},
47
"scannerVersion": "6.4.0",
58
"vulnerabilityStrategy": "none",
69
"warnings": [],

workspaces/scanner/test/fixtures/scannerPayloads/deeplyUpdatedPayload.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
22
"id": "hjnfnJ",
3-
"rootDependencyName": "foo",
3+
"rootDependency": {
4+
"name": "foo",
5+
"version": "2.0.0"
6+
},
47
"warnings": [],
58
"dependencies": {
69
"foo": {

workspaces/scanner/test/fixtures/scannerPayloads/nullAuthor.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
22
"id": "YtK0Cx",
3-
"rootDependencyName": "foo",
3+
"rootDependency": {
4+
"name": "foo",
5+
"version": "2.0.0"
6+
},
47
"warnings": [],
58
"highlighted": {},
69
"vulnerabilityStrategy": "npm",
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
{
22
"id": "hjnfnJ",
3-
"rootDependencyName": "bar"
3+
"rootDependency": {
4+
"name": "bar",
5+
"version": "0.0.0"
6+
}
47
}

0 commit comments

Comments
 (0)