Skip to content

Commit 044c54c

Browse files
committed
fix: 2.0.0-rc1 should never be included in ^1.0.0
1 parent 77c95e3 commit 044c54c

File tree

4 files changed

+17
-10
lines changed

4 files changed

+17
-10
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# changes log
22

3+
## 7.2.2
4+
5+
* Fix bug where `2.0.0-pre` would be included in `^1.0.0` if
6+
`includePrerelease` was set to true.
7+
38
## 7.2.0
49

510
* Add `simplifyRange` method to attempt to generate a more human-readable

classes/range.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -243,47 +243,48 @@ const replaceCarets = (comp, options) =>
243243
const replaceCaret = (comp, options) => {
244244
debug('caret', comp, options)
245245
const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
246+
const z = options.includePrerelease ? '-0' : ''
246247
return comp.replace(r, (_, M, m, p, pr) => {
247248
debug('caret', comp, _, M, m, p, pr)
248249
let ret
249250

250251
if (isX(M)) {
251252
ret = ''
252253
} else if (isX(m)) {
253-
ret = `>=${M}.0.0 <${+M + 1}.0.0`
254+
ret = `>=${M}.0.0${z} <${+M + 1}.0.0${z}`
254255
} else if (isX(p)) {
255256
if (M === '0') {
256-
ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0`
257+
ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0${z}`
257258
} else {
258-
ret = `>=${M}.${m}.0 <${+M + 1}.0.0`
259+
ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0${z}`
259260
}
260261
} else if (pr) {
261262
debug('replaceCaret pr', pr)
262263
if (M === '0') {
263264
if (m === '0') {
264265
ret = `>=${M}.${m}.${p}-${pr
265-
} <${M}.${m}.${+p + 1}`
266+
} <${M}.${m}.${+p + 1}${z}`
266267
} else {
267268
ret = `>=${M}.${m}.${p}-${pr
268-
} <${M}.${+m + 1}.0`
269+
} <${M}.${+m + 1}.0${z}`
269270
}
270271
} else {
271272
ret = `>=${M}.${m}.${p}-${pr
272-
} <${+M + 1}.0.0`
273+
} <${+M + 1}.0.0${z}`
273274
}
274275
} else {
275276
debug('no pr')
276277
if (M === '0') {
277278
if (m === '0') {
278279
ret = `>=${M}.${m}.${p
279-
} <${M}.${m}.${+p + 1}`
280+
}${z} <${M}.${m}.${+p + 1}${z}`
280281
} else {
281282
ret = `>=${M}.${m}.${p
282-
} <${M}.${+m + 1}.0`
283+
}${z} <${M}.${+m + 1}.0${z}`
283284
}
284285
} else {
285286
ret = `>=${M}.${m}.${p
286-
} <${+M + 1}.0.0`
287+
} <${+M + 1}.0.0${z}`
287288
}
288289
}
289290

test/fixtures/range-exclude.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,6 @@ module.exports = [
7878
['2.x', '3.0.0-pre.0', { includePrerelease: true }],
7979
['^1.0.0', '1.0.0-rc1', { includePrerelease: true }],
8080
['^1.2.3-rc2', '2.0.0', { includePrerelease: true }],
81+
['^1.0.0', '2.0.0-rc1', { includePrerelease: true }],
82+
['^1.0.0', '2.0.0-rc1'],
8183
]

test/fixtures/range-include.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ module.exports = [
110110
['2.x', '2.0.0-pre.0', { includePrerelease: true }],
111111
['2.x', '2.1.0-pre.0', { includePrerelease: true }],
112112
['*', '1.0.0-rc1', { includePrerelease: true }],
113-
['^1.0.0', '2.0.0-rc1', { includePrerelease: true }],
114113
['^1.0.0-0', '1.0.1-rc1', { includePrerelease: true }],
115114
['^1.0.0-rc2', '1.0.1-rc1', { includePrerelease: true }],
116115
['^1.0.0', '1.0.1-rc1', { includePrerelease: true }],

0 commit comments

Comments
 (0)