@pnpm/lockfile.verification 1001.1.7 → 1001.2.1
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.
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface AddedRemoved<Key, Value> {
|
|
2
|
+
key: Key;
|
|
3
|
+
value: Value;
|
|
4
|
+
}
|
|
5
|
+
export interface Modified<Key, Value> {
|
|
6
|
+
key: Key;
|
|
7
|
+
left: Value;
|
|
8
|
+
right: Value;
|
|
9
|
+
}
|
|
10
|
+
export interface Diff<Key, Value> {
|
|
11
|
+
/** Entries that are absent in `left` but present in `right`. */
|
|
12
|
+
added: Array<AddedRemoved<Key, Value>>;
|
|
13
|
+
/** Entries that are present in `left` but absent in `right`. */
|
|
14
|
+
removed: Array<AddedRemoved<Key, Value>>;
|
|
15
|
+
/** Entries that are present in both `left` and `right` but the values are different. */
|
|
16
|
+
modified: Array<Modified<Key, Value>>;
|
|
17
|
+
}
|
|
18
|
+
export declare function diffFlatRecords<Key extends string | number | symbol, Value>(left: Record<Key, Value>, right: Record<Key, Value>): Diff<Key, Value>;
|
|
19
|
+
export declare function isEqual({ added, removed, modified }: Diff<unknown, unknown>): boolean;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.diffFlatRecords = diffFlatRecords;
|
|
4
|
+
exports.isEqual = isEqual;
|
|
5
|
+
function diffFlatRecords(left, right) {
|
|
6
|
+
const result = {
|
|
7
|
+
added: [],
|
|
8
|
+
removed: [],
|
|
9
|
+
modified: [],
|
|
10
|
+
};
|
|
11
|
+
for (const [key, value] of Object.entries(left)) {
|
|
12
|
+
if (!Object.hasOwn(right, key)) {
|
|
13
|
+
result.removed.push({ key, value });
|
|
14
|
+
}
|
|
15
|
+
else if (value !== right[key]) {
|
|
16
|
+
result.modified.push({ key, left: value, right: right[key] });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
for (const [key, value] of Object.entries(right)) {
|
|
20
|
+
if (!Object.hasOwn(left, key)) {
|
|
21
|
+
result.added.push({ key, value });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
function isEqual({ added, removed, modified }) {
|
|
27
|
+
return added.length === 0 && removed.length === 0 && modified.length === 0;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=diffFlatRecords.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diffFlatRecords.js","sourceRoot":"","sources":["../src/diffFlatRecords.ts"],"names":[],"mappings":";;AAoBA,0CAsBC;AAED,0BAEC;AA1BD,SAAgB,eAAe,CAA+C,IAAwB,EAAE,KAAyB;IAC/H,MAAM,MAAM,GAAqB;QAC/B,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;KACb,CAAA;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAwB,EAAE,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QACrC,CAAC;aAAM,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAwB,EAAE,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,OAAO,CAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAA0B;IAC3E,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;AAC5E,CAAC"}
|
|
@@ -8,6 +8,7 @@ const types_1 = require("@pnpm/types");
|
|
|
8
8
|
const equals_1 = __importDefault(require("ramda/src/equals"));
|
|
9
9
|
const pickBy_1 = __importDefault(require("ramda/src/pickBy"));
|
|
10
10
|
const omit_1 = __importDefault(require("ramda/src/omit"));
|
|
11
|
+
const diffFlatRecords_1 = require("./diffFlatRecords");
|
|
11
12
|
function satisfiesPackageManifest(opts, importer, pkg) {
|
|
12
13
|
if (!importer)
|
|
13
14
|
return { satisfies: false, detailedReason: 'no importer' };
|
|
@@ -31,10 +32,11 @@ function satisfiesPackageManifest(opts, importer, pkg) {
|
|
|
31
32
|
existingDeps = pickNonLinkedDeps(existingDeps);
|
|
32
33
|
specs = pickNonLinkedDeps(specs);
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
+
const specsDiff = (0, diffFlatRecords_1.diffFlatRecords)(specs, existingDeps);
|
|
36
|
+
if (!(0, diffFlatRecords_1.isEqual)(specsDiff)) {
|
|
35
37
|
return {
|
|
36
38
|
satisfies: false,
|
|
37
|
-
detailedReason: `specifiers in the lockfile
|
|
39
|
+
detailedReason: `specifiers in the lockfile don't match specifiers in package.json:\n${displaySpecDiff(specsDiff)}`,
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
42
|
if (importer.publishDirectory !== pkg.publishConfig?.directory) {
|
|
@@ -92,4 +94,24 @@ function satisfiesPackageManifest(opts, importer, pkg) {
|
|
|
92
94
|
function countOfNonLinkedDeps(lockfileDeps) {
|
|
93
95
|
return Object.values(lockfileDeps).filter((ref) => !ref.includes('link:') && !ref.includes('file:')).length;
|
|
94
96
|
}
|
|
97
|
+
function displaySpecDiff({ added, removed, modified }) {
|
|
98
|
+
let result = '';
|
|
99
|
+
if (added.length !== 0) {
|
|
100
|
+
result += `* ${added.length} dependencies were added: `;
|
|
101
|
+
result += added.map(({ key, value }) => `${key}@${value}`).join(', ');
|
|
102
|
+
result += '\n';
|
|
103
|
+
}
|
|
104
|
+
if (removed.length !== 0) {
|
|
105
|
+
result += `* ${removed.length} dependencies were removed: `;
|
|
106
|
+
result += removed.map(({ key, value }) => `${key}@${value}`).join(', ');
|
|
107
|
+
result += '\n';
|
|
108
|
+
}
|
|
109
|
+
if (modified.length !== 0) {
|
|
110
|
+
result += `* ${modified.length} dependencies are mismatched:\n`;
|
|
111
|
+
for (const { key, left, right } of modified) {
|
|
112
|
+
result += ` - ${key} (lockfile: ${left}, manifest: ${right})\n`;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
95
117
|
//# sourceMappingURL=satisfiesPackageManifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"satisfiesPackageManifest.js","sourceRoot":"","sources":["../src/satisfiesPackageManifest.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"satisfiesPackageManifest.js","sourceRoot":"","sources":["../src/satisfiesPackageManifest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnpm/lockfile.verification",
|
|
3
|
-
"version": "1001.1
|
|
3
|
+
"version": "1001.2.1",
|
|
4
4
|
"description": "Checks a lockfile",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pnpm",
|
|
@@ -29,13 +29,13 @@
|
|
|
29
29
|
"semver": "^7.7.1",
|
|
30
30
|
"version-selector-type": "^3.0.0",
|
|
31
31
|
"@pnpm/catalogs.types": "1000.0.0",
|
|
32
|
-
"@pnpm/
|
|
33
|
-
"@pnpm/
|
|
34
|
-
"@pnpm/lockfile.types": "1001.0.8",
|
|
32
|
+
"@pnpm/get-context": "1001.1.1",
|
|
33
|
+
"@pnpm/dependency-path": "1001.0.0",
|
|
35
34
|
"@pnpm/crypto.hash": "1000.1.1",
|
|
36
|
-
"@pnpm/lockfile.utils": "
|
|
35
|
+
"@pnpm/lockfile.utils": "1002.0.0",
|
|
36
|
+
"@pnpm/lockfile.types": "1001.0.8",
|
|
37
|
+
"@pnpm/resolver-base": "1004.0.0",
|
|
37
38
|
"@pnpm/read-package-json": "1000.0.9",
|
|
38
|
-
"@pnpm/resolver-base": "1003.0.1",
|
|
39
39
|
"@pnpm/types": "1000.6.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
"@types/semver": "7.5.3",
|
|
47
47
|
"@types/tar-stream": "^2.2.3",
|
|
48
48
|
"tar-stream": "^2.2.0",
|
|
49
|
-
"@pnpm/constants": "1001.1.0",
|
|
50
|
-
"@pnpm/lockfile.verification": "1001.1.7",
|
|
51
49
|
"@pnpm/logger": "1001.0.0",
|
|
52
|
-
"@pnpm/
|
|
50
|
+
"@pnpm/lockfile.verification": "1001.2.1",
|
|
51
|
+
"@pnpm/constants": "1001.1.0",
|
|
52
|
+
"@pnpm/prepare": "0.0.121"
|
|
53
53
|
},
|
|
54
54
|
"engines": {
|
|
55
55
|
"node": ">=18.12"
|