@pnpm/config.parse-overrides 1100.0.2 → 1100.1.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.
- package/CHANGELOG.md +253 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +17 -1
- package/package.json +8 -6
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# @pnpm/parse-overrides
|
|
2
|
+
|
|
3
|
+
## 1100.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Republished every package: the tarballs published by the v11.13.1 through v11.16.0 releases were missing most of their compiled files due to a packing bug [#13164](https://github.com/pnpm/pnpm/issues/13164).
|
|
8
|
+
|
|
9
|
+
- Updated dependencies:
|
|
10
|
+
- @pnpm/catalogs.resolver@1100.0.1
|
|
11
|
+
- @pnpm/catalogs.types@1100.0.1
|
|
12
|
+
- @pnpm/error@1100.1.0
|
|
13
|
+
- @pnpm/resolving.parse-wanted-dependency@1100.0.2
|
|
14
|
+
|
|
15
|
+
## 1100.1.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- Added a new override selector form with an empty range — `"pkg@": "<version>"` — called a convergence override. It rewrites a dependency edge only when its exact version satisfies the edge's declared range, so compatible consumers converge on one version while incompatible consumers keep their own resolution — now and for any dependent added in the future [#12794](https://github.com/pnpm/pnpm/issues/12794).
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
overrides:
|
|
23
|
+
"form-data@": 4.0.6
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The value must be an exact version. When a full resolution detects that every declared range also admits a newer version, pnpm warns that the override is stale and names the version to converge on. Previously an empty range in an override selector was undocumented and behaved like a bare (unscoped) override.
|
|
27
|
+
|
|
28
|
+
## 1100.0.2
|
|
29
|
+
|
|
30
|
+
### Patch Changes
|
|
31
|
+
|
|
32
|
+
- Updated dependencies [852d537]
|
|
33
|
+
- @pnpm/error@1100.0.1
|
|
34
|
+
|
|
35
|
+
## 1100.0.1
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- 184ce26: Fix the package name in README.md.
|
|
40
|
+
- Updated dependencies [184ce26]
|
|
41
|
+
- @pnpm/resolving.parse-wanted-dependency@1100.0.1
|
|
42
|
+
|
|
43
|
+
## 1002.0.0
|
|
44
|
+
|
|
45
|
+
### Major Changes
|
|
46
|
+
|
|
47
|
+
- 491a84f: This package is now pure ESM.
|
|
48
|
+
- 7d2fd48: Node.js v18, 19, 20, and 21 support discontinued.
|
|
49
|
+
|
|
50
|
+
### Patch Changes
|
|
51
|
+
|
|
52
|
+
- Updated dependencies [491a84f]
|
|
53
|
+
- Updated dependencies [7d2fd48]
|
|
54
|
+
- Updated dependencies [831f574]
|
|
55
|
+
- @pnpm/resolving.parse-wanted-dependency@1002.0.0
|
|
56
|
+
- @pnpm/catalogs.resolver@1001.0.0
|
|
57
|
+
- @pnpm/catalogs.types@1001.0.0
|
|
58
|
+
- @pnpm/error@1001.0.0
|
|
59
|
+
|
|
60
|
+
## 1001.0.3
|
|
61
|
+
|
|
62
|
+
### Patch Changes
|
|
63
|
+
|
|
64
|
+
- @pnpm/error@1000.0.5
|
|
65
|
+
|
|
66
|
+
## 1001.0.2
|
|
67
|
+
|
|
68
|
+
### Patch Changes
|
|
69
|
+
|
|
70
|
+
- @pnpm/error@1000.0.4
|
|
71
|
+
- @pnpm/catalogs.resolver@1000.0.5
|
|
72
|
+
|
|
73
|
+
## 1001.0.1
|
|
74
|
+
|
|
75
|
+
### Patch Changes
|
|
76
|
+
|
|
77
|
+
- @pnpm/error@1000.0.3
|
|
78
|
+
- @pnpm/catalogs.resolver@1000.0.4
|
|
79
|
+
|
|
80
|
+
## 1001.0.0
|
|
81
|
+
|
|
82
|
+
### Major Changes
|
|
83
|
+
|
|
84
|
+
- 8a9f3a4: `pref` renamed to `bareSpecifier`.
|
|
85
|
+
|
|
86
|
+
### Patch Changes
|
|
87
|
+
|
|
88
|
+
- Updated dependencies [8a9f3a4]
|
|
89
|
+
- @pnpm/parse-wanted-dependency@1001.0.0
|
|
90
|
+
- @pnpm/catalogs.resolver@1000.0.3
|
|
91
|
+
|
|
92
|
+
## 1000.0.2
|
|
93
|
+
|
|
94
|
+
### Patch Changes
|
|
95
|
+
|
|
96
|
+
- @pnpm/error@1000.0.2
|
|
97
|
+
- @pnpm/catalogs.resolver@1000.0.2
|
|
98
|
+
|
|
99
|
+
## 1000.0.1
|
|
100
|
+
|
|
101
|
+
### Patch Changes
|
|
102
|
+
|
|
103
|
+
- @pnpm/error@1000.0.1
|
|
104
|
+
- @pnpm/catalogs.resolver@1000.0.1
|
|
105
|
+
|
|
106
|
+
## 5.1.2
|
|
107
|
+
|
|
108
|
+
### Patch Changes
|
|
109
|
+
|
|
110
|
+
- @pnpm/error@6.0.3
|
|
111
|
+
- @pnpm/catalogs.resolver@0.1.2
|
|
112
|
+
|
|
113
|
+
## 5.1.1
|
|
114
|
+
|
|
115
|
+
### Patch Changes
|
|
116
|
+
|
|
117
|
+
- @pnpm/error@6.0.2
|
|
118
|
+
- @pnpm/catalogs.resolver@0.1.1
|
|
119
|
+
|
|
120
|
+
## 5.1.0
|
|
121
|
+
|
|
122
|
+
### Minor Changes
|
|
123
|
+
|
|
124
|
+
- 0f0e441: Overrides now support catalogs [#8303](https://github.com/pnpm/pnpm/issues/8303).
|
|
125
|
+
|
|
126
|
+
## 5.0.1
|
|
127
|
+
|
|
128
|
+
### Patch Changes
|
|
129
|
+
|
|
130
|
+
- Updated dependencies [a7aef51]
|
|
131
|
+
- @pnpm/error@6.0.1
|
|
132
|
+
|
|
133
|
+
## 5.0.0
|
|
134
|
+
|
|
135
|
+
### Major Changes
|
|
136
|
+
|
|
137
|
+
- 43cdd87: Node.js v16 support dropped. Use at least Node.js v18.12.
|
|
138
|
+
|
|
139
|
+
### Patch Changes
|
|
140
|
+
|
|
141
|
+
- Updated dependencies [3ded840]
|
|
142
|
+
- Updated dependencies [43cdd87]
|
|
143
|
+
- @pnpm/error@6.0.0
|
|
144
|
+
- @pnpm/parse-wanted-dependency@6.0.0
|
|
145
|
+
|
|
146
|
+
## 4.0.2
|
|
147
|
+
|
|
148
|
+
### Patch Changes
|
|
149
|
+
|
|
150
|
+
- @pnpm/error@5.0.2
|
|
151
|
+
|
|
152
|
+
## 4.0.1
|
|
153
|
+
|
|
154
|
+
### Patch Changes
|
|
155
|
+
|
|
156
|
+
- @pnpm/error@5.0.1
|
|
157
|
+
|
|
158
|
+
## 4.0.0
|
|
159
|
+
|
|
160
|
+
### Major Changes
|
|
161
|
+
|
|
162
|
+
- eceaa8b8b: Node.js 14 support dropped.
|
|
163
|
+
|
|
164
|
+
### Patch Changes
|
|
165
|
+
|
|
166
|
+
- Updated dependencies [eceaa8b8b]
|
|
167
|
+
- @pnpm/parse-wanted-dependency@5.0.0
|
|
168
|
+
- @pnpm/error@5.0.0
|
|
169
|
+
|
|
170
|
+
## 3.0.3
|
|
171
|
+
|
|
172
|
+
### Patch Changes
|
|
173
|
+
|
|
174
|
+
- Updated dependencies [2ae1c449d]
|
|
175
|
+
- @pnpm/parse-wanted-dependency@4.1.0
|
|
176
|
+
|
|
177
|
+
## 3.0.2
|
|
178
|
+
|
|
179
|
+
### Patch Changes
|
|
180
|
+
|
|
181
|
+
- @pnpm/error@4.0.1
|
|
182
|
+
|
|
183
|
+
## 3.0.1
|
|
184
|
+
|
|
185
|
+
### Patch Changes
|
|
186
|
+
|
|
187
|
+
- Updated dependencies [a9d59d8bc]
|
|
188
|
+
- @pnpm/parse-wanted-dependency@4.0.1
|
|
189
|
+
|
|
190
|
+
## 3.0.0
|
|
191
|
+
|
|
192
|
+
### Major Changes
|
|
193
|
+
|
|
194
|
+
- f884689e0: Require `@pnpm/logger` v5.
|
|
195
|
+
|
|
196
|
+
### Patch Changes
|
|
197
|
+
|
|
198
|
+
- Updated dependencies [043d988fc]
|
|
199
|
+
- Updated dependencies [f884689e0]
|
|
200
|
+
- @pnpm/error@4.0.0
|
|
201
|
+
- @pnpm/parse-wanted-dependency@4.0.0
|
|
202
|
+
|
|
203
|
+
## 2.0.4
|
|
204
|
+
|
|
205
|
+
### Patch Changes
|
|
206
|
+
|
|
207
|
+
- Updated dependencies [e8a631bf0]
|
|
208
|
+
- @pnpm/error@3.1.0
|
|
209
|
+
|
|
210
|
+
## 2.0.3
|
|
211
|
+
|
|
212
|
+
### Patch Changes
|
|
213
|
+
|
|
214
|
+
- Updated dependencies [238a165a5]
|
|
215
|
+
- @pnpm/parse-wanted-dependency@3.0.2
|
|
216
|
+
|
|
217
|
+
## 2.0.2
|
|
218
|
+
|
|
219
|
+
### Patch Changes
|
|
220
|
+
|
|
221
|
+
- Updated dependencies [42c1ea1c0]
|
|
222
|
+
- @pnpm/parse-wanted-dependency@3.0.1
|
|
223
|
+
|
|
224
|
+
## 2.0.1
|
|
225
|
+
|
|
226
|
+
### Patch Changes
|
|
227
|
+
|
|
228
|
+
- @pnpm/error@3.0.1
|
|
229
|
+
|
|
230
|
+
## 2.0.0
|
|
231
|
+
|
|
232
|
+
### Major Changes
|
|
233
|
+
|
|
234
|
+
- 542014839: Node.js 12 is not supported.
|
|
235
|
+
|
|
236
|
+
### Patch Changes
|
|
237
|
+
|
|
238
|
+
- Updated dependencies [542014839]
|
|
239
|
+
- @pnpm/error@3.0.0
|
|
240
|
+
- @pnpm/parse-wanted-dependency@3.0.0
|
|
241
|
+
|
|
242
|
+
## 1.0.1
|
|
243
|
+
|
|
244
|
+
### Patch Changes
|
|
245
|
+
|
|
246
|
+
- Updated dependencies [70ba51da9]
|
|
247
|
+
- @pnpm/error@2.1.0
|
|
248
|
+
|
|
249
|
+
## 1.0.0
|
|
250
|
+
|
|
251
|
+
### Major Changes
|
|
252
|
+
|
|
253
|
+
- 613211b16: Initial release.
|
package/lib/index.d.ts
CHANGED
|
@@ -4,6 +4,13 @@ export interface VersionOverride {
|
|
|
4
4
|
parentPkg?: PackageSelector;
|
|
5
5
|
targetPkg: PackageSelector;
|
|
6
6
|
newBareSpecifier: string;
|
|
7
|
+
/**
|
|
8
|
+
* True for empty-range selectors (`"pkg@"`): a convergence override. It
|
|
9
|
+
* applies to a dependency edge only when `newBareSpecifier` (always an
|
|
10
|
+
* exact version) satisfies the edge's declared range, so applying it can
|
|
11
|
+
* never violate a consumer's range.
|
|
12
|
+
*/
|
|
13
|
+
converge?: boolean;
|
|
7
14
|
}
|
|
8
15
|
export interface PackageSelector {
|
|
9
16
|
name: string;
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { matchCatalogResolveResult, resolveFromCatalog } from '@pnpm/catalogs.resolver';
|
|
2
2
|
import { PnpmError } from '@pnpm/error';
|
|
3
3
|
import { parseWantedDependency } from '@pnpm/resolving.parse-wanted-dependency';
|
|
4
|
+
import semver from 'semver';
|
|
4
5
|
const DELIMITER_REGEX = /[^ |@]>/;
|
|
5
6
|
export function parseOverrides(overrides, catalogs) {
|
|
6
7
|
const _resolveFromCatalog = resolveFromCatalog.bind(null, catalogs ?? {});
|
|
@@ -17,13 +18,28 @@ export function parseOverrides(overrides, catalogs) {
|
|
|
17
18
|
throw new PnpmError('CATALOG_IN_OVERRIDES', `Could not resolve a catalog in the overrides: ${error.message}`);
|
|
18
19
|
},
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
+
const override = {
|
|
21
22
|
selector,
|
|
22
23
|
newBareSpecifier: resolvedCatalog ?? newBareSpecifier,
|
|
23
24
|
...result,
|
|
24
25
|
};
|
|
26
|
+
return markConvergeOverride(override);
|
|
25
27
|
});
|
|
26
28
|
}
|
|
29
|
+
function markConvergeOverride(override) {
|
|
30
|
+
const emptyRangeInParentChildSelector = override.parentPkg != null &&
|
|
31
|
+
(override.parentPkg.bareSpecifier === '' || override.targetPkg.bareSpecifier === '');
|
|
32
|
+
if (emptyRangeInParentChildSelector) {
|
|
33
|
+
throw new PnpmError('INVALID_CONVERGENCE_OVERRIDE', `Cannot use an empty range in the "${override.selector}" selector: convergence overrides ("pkg@") cannot be combined with parent>child selectors`);
|
|
34
|
+
}
|
|
35
|
+
if (override.targetPkg.bareSpecifier !== '')
|
|
36
|
+
return override;
|
|
37
|
+
if (semver.valid(override.newBareSpecifier) == null) {
|
|
38
|
+
throw new PnpmError('INVALID_CONVERGENCE_OVERRIDE', `The value of the convergence override "${override.selector}" must be an exact version, but got "${override.newBareSpecifier}"`);
|
|
39
|
+
}
|
|
40
|
+
override.converge = true;
|
|
41
|
+
return override;
|
|
42
|
+
}
|
|
27
43
|
export function parsePkgAndParentSelector(selector) {
|
|
28
44
|
let delimiterIndex = selector.search(DELIMITER_REGEX);
|
|
29
45
|
if (delimiterIndex !== -1) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnpm/config.parse-overrides",
|
|
3
|
-
"version": "1100.
|
|
3
|
+
"version": "1100.1.1",
|
|
4
4
|
"description": "Parse overrides",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pnpm",
|
|
@@ -27,14 +27,16 @@
|
|
|
27
27
|
"!*.map"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@pnpm/catalogs.resolver": "1100.0.
|
|
31
|
-
"@pnpm/catalogs.types": "1100.0.
|
|
32
|
-
"@pnpm/error": "1100.0
|
|
33
|
-
"@pnpm/resolving.parse-wanted-dependency": "1100.0.
|
|
30
|
+
"@pnpm/catalogs.resolver": "1100.0.1",
|
|
31
|
+
"@pnpm/catalogs.types": "1100.0.1",
|
|
32
|
+
"@pnpm/error": "1100.1.0",
|
|
33
|
+
"@pnpm/resolving.parse-wanted-dependency": "1100.0.2",
|
|
34
|
+
"semver": "^7.8.4"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@jest/globals": "30.4.1",
|
|
37
|
-
"@pnpm/config.parse-overrides": "1100.
|
|
38
|
+
"@pnpm/config.parse-overrides": "1100.1.1",
|
|
39
|
+
"@types/semver": "7.7.1"
|
|
38
40
|
},
|
|
39
41
|
"engines": {
|
|
40
42
|
"node": ">=22.13"
|