semver 2.2.0 → 2.3.2
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/Makefile +1 -1
- package/README.md +53 -37
- package/bin/semver +3 -2
- package/package.json +1 -1
- package/semver.browser.js +46 -7
- package/semver.browser.js.gz +0 -0
- package/semver.js +46 -7
- package/semver.min.js +1 -1
- package/semver.min.js.gz +0 -0
- package/test/index.js +36 -4
- package/test/ltr.js +2 -1
package/Makefile
CHANGED
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ As a command-line utility:
|
|
|
34
34
|
|
|
35
35
|
## Versions
|
|
36
36
|
|
|
37
|
-
A "version" is described by the v2.0.0 specification found at
|
|
37
|
+
A "version" is described by the `v2.0.0` specification found at
|
|
38
38
|
<http://semver.org/>.
|
|
39
39
|
|
|
40
40
|
A leading `"="` or `"v"` character is stripped off and ignored.
|
|
@@ -43,9 +43,10 @@ A leading `"="` or `"v"` character is stripped off and ignored.
|
|
|
43
43
|
|
|
44
44
|
The following range styles are supported:
|
|
45
45
|
|
|
46
|
-
* `1.2.3` A specific version. When nothing else will do.
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
* `1.2.3` A specific version. When nothing else will do. Must be a full
|
|
47
|
+
version number, with major, minor, and patch versions specified.
|
|
48
|
+
Note that build metadata is still ignored, so `1.2.3+build2012` will
|
|
49
|
+
satisfy this range.
|
|
49
50
|
* `>1.2.3` Greater than a specific version.
|
|
50
51
|
* `<1.2.3` Less than a specific version. If there is no prerelease
|
|
51
52
|
tag on the version range, then no prerelease version will be allowed
|
|
@@ -56,26 +57,33 @@ The following range styles are supported:
|
|
|
56
57
|
* `<=1.2.3` Less than or equal to. In this case, prerelease versions
|
|
57
58
|
ARE allowed, so `1.2.3-beta` would satisfy.
|
|
58
59
|
* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`
|
|
59
|
-
* `~1.2.3` := `>=1.2.3-0 <1.3.0-0` "Reasonably close to 1.2.3". When
|
|
60
|
+
* `~1.2.3` := `>=1.2.3-0 <1.3.0-0` "Reasonably close to `1.2.3`". When
|
|
60
61
|
using tilde operators, prerelease versions are supported as well,
|
|
61
62
|
but a prerelease of the next significant digit will NOT be
|
|
62
63
|
satisfactory, so `1.3.0-beta` will not satisfy `~1.2.3`.
|
|
63
|
-
* `^1.2.3` := `>=1.2.3-0 <2.0.0-0` "Compatible with 1.2.3". When
|
|
64
|
+
* `^1.2.3` := `>=1.2.3-0 <2.0.0-0` "Compatible with `1.2.3`". When
|
|
64
65
|
using caret operators, anything from the specified version (including
|
|
65
66
|
prerelease) will be supported up to, but not including, the next
|
|
66
67
|
major version (or its prereleases). `1.5.1` will satisfy `^1.2.3`,
|
|
67
68
|
while `1.2.2` and `2.0.0-beta` will not.
|
|
68
|
-
* `^0.1.3` := `>=0.1.3-0 <0.2.0-0` "Compatible with 0.1.3". 0.x.x versions are
|
|
69
|
+
* `^0.1.3` := `>=0.1.3-0 <0.2.0-0` "Compatible with `0.1.3`". `0.x.x` versions are
|
|
69
70
|
special: the first non-zero component indicates potentially breaking changes,
|
|
70
71
|
meaning the caret operator matches any version with the same first non-zero
|
|
71
72
|
component starting at the specified version.
|
|
72
|
-
* `^0.0.2` := `=0.0.2` "Only the version 0.0.2 is considered compatible"
|
|
73
|
-
* `~1.2` := `>=1.2.0-0 <1.3.0-0` "Any version starting with 1.2"
|
|
74
|
-
* `^1.2` := `>=1.2.0-0 <2.0.0-0` "Any version compatible with 1.2"
|
|
75
|
-
* `1.2.x` := `>=1.2.0-0 <1.3.0-0` "Any version starting with 1.2"
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
73
|
+
* `^0.0.2` := `=0.0.2` "Only the version `0.0.2` is considered compatible"
|
|
74
|
+
* `~1.2` := `>=1.2.0-0 <1.3.0-0` "Any version starting with `1.2`"
|
|
75
|
+
* `^1.2` := `>=1.2.0-0 <2.0.0-0` "Any version compatible with `1.2`"
|
|
76
|
+
* `1.2.x` := `>=1.2.0-0 <1.3.0-0` "Any version starting with `1.2`"
|
|
77
|
+
* `1.2.*` Same as `1.2.x`.
|
|
78
|
+
* `1.2` Same as `1.2.x`.
|
|
79
|
+
* `~1` := `>=1.0.0-0 <2.0.0-0` "Any version starting with `1`"
|
|
80
|
+
* `^1` := `>=1.0.0-0 <2.0.0-0` "Any version compatible with `1`"
|
|
81
|
+
* `1.x` := `>=1.0.0-0 <2.0.0-0` "Any version starting with `1`"
|
|
82
|
+
* `1.*` Same as `1.x`.
|
|
83
|
+
* `1` Same as `1.x`.
|
|
84
|
+
* `*` Any version whatsoever.
|
|
85
|
+
* `x` Same as `*`.
|
|
86
|
+
* `""` (just an empty string) Same as `*`.
|
|
79
87
|
|
|
80
88
|
|
|
81
89
|
Ranges can be joined with either a space (which implies "and") or a
|
|
@@ -90,42 +98,50 @@ The resulting output will always be 100% strict, of course.
|
|
|
90
98
|
Strict-mode Comparators and Ranges will be strict about the SemVer
|
|
91
99
|
strings that they parse.
|
|
92
100
|
|
|
93
|
-
* valid(v)
|
|
94
|
-
* inc(v, release)
|
|
95
|
-
(major
|
|
101
|
+
* `valid(v)`: Return the parsed version, or null if it's not valid.
|
|
102
|
+
* `inc(v, release)`: Return the version incremented by the release
|
|
103
|
+
type (`major`, `premajor`, `minor`, `preminor`, `patch`,
|
|
104
|
+
`prepatch`, or `prerelease`), or null if it's not valid
|
|
105
|
+
* `premajor` in one call will bump the version up to the next major
|
|
106
|
+
version and down to a prerelease of that major version.
|
|
107
|
+
`preminor`, and `prepatch` work the same way.
|
|
108
|
+
* If called from a non-prerelease version, the `prerelease` will work the
|
|
109
|
+
same as `prepatch`. It increments the patch version, then makes a
|
|
110
|
+
prerelease. If the input version is already a prerelease it simply
|
|
111
|
+
increments it.
|
|
96
112
|
|
|
97
113
|
### Comparison
|
|
98
114
|
|
|
99
|
-
* gt(v1, v2)
|
|
100
|
-
* gte(v1, v2)
|
|
101
|
-
* lt(v1, v2)
|
|
102
|
-
* lte(v1, v2)
|
|
103
|
-
* eq(v1, v2)
|
|
115
|
+
* `gt(v1, v2)`: `v1 > v2`
|
|
116
|
+
* `gte(v1, v2)`: `v1 >= v2`
|
|
117
|
+
* `lt(v1, v2)`: `v1 < v2`
|
|
118
|
+
* `lte(v1, v2)`: `v1 <= v2`
|
|
119
|
+
* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent,
|
|
104
120
|
even if they're not the exact same string. You already know how to
|
|
105
121
|
compare strings.
|
|
106
|
-
* neq(v1, v2)
|
|
107
|
-
* cmp(v1, comparator, v2)
|
|
122
|
+
* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`.
|
|
123
|
+
* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call
|
|
108
124
|
the corresponding function above. `"==="` and `"!=="` do simple
|
|
109
125
|
string comparison, but are included for completeness. Throws if an
|
|
110
126
|
invalid comparison string is provided.
|
|
111
|
-
* compare(v1, v2)
|
|
112
|
-
v2 is greater. Sorts in ascending order if passed to Array.sort()
|
|
113
|
-
* rcompare(v1, v2)
|
|
114
|
-
in descending order when passed to Array.sort()
|
|
127
|
+
* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if
|
|
128
|
+
`v2` is greater. Sorts in ascending order if passed to `Array.sort()`.
|
|
129
|
+
* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions
|
|
130
|
+
in descending order when passed to `Array.sort()`.
|
|
115
131
|
|
|
116
132
|
|
|
117
133
|
### Ranges
|
|
118
134
|
|
|
119
|
-
* validRange(range)
|
|
120
|
-
* satisfies(version, range)
|
|
135
|
+
* `validRange(range)`: Return the valid range or null if it's not valid
|
|
136
|
+
* `satisfies(version, range)`: Return true if the version satisfies the
|
|
121
137
|
range.
|
|
122
|
-
* maxSatisfying(versions, range)
|
|
123
|
-
that satisfies the range, or null if none of them do.
|
|
124
|
-
* gtr(version, range)
|
|
138
|
+
* `maxSatisfying(versions, range)`: Return the highest version in the list
|
|
139
|
+
that satisfies the range, or `null` if none of them do.
|
|
140
|
+
* `gtr(version, range)`: Return `true` if version is greater than all the
|
|
125
141
|
versions possible in the range.
|
|
126
|
-
* ltr(version, range)
|
|
142
|
+
* `ltr(version, range)`: Return `true` if version is less than all the
|
|
127
143
|
versions possible in the range.
|
|
128
|
-
* outside(version, range, hilo)
|
|
144
|
+
* `outside(version, range, hilo)`: Return true if the version is outside
|
|
129
145
|
the bounds of the range in either the high or low direction. The
|
|
130
146
|
`hilo` argument must be either the string `'>'` or `'<'`. (This is
|
|
131
147
|
the function called by `gtr` and `ltr`.)
|
|
@@ -134,8 +150,8 @@ Note that, since ranges may be non-contiguous, a version might not be
|
|
|
134
150
|
greater than a range, less than a range, *or* satisfy a range! For
|
|
135
151
|
example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9`
|
|
136
152
|
until `2.0.0`, so the version `1.2.10` would not be greater than the
|
|
137
|
-
range (because 2.0.1 satisfies, which is higher), nor less than the
|
|
138
|
-
range (since 1.2.8 satisfies, which is lower), and it also does not
|
|
153
|
+
range (because `2.0.1` satisfies, which is higher), nor less than the
|
|
154
|
+
range (since `1.2.8` satisfies, which is lower), and it also does not
|
|
139
155
|
satisfy the range.
|
|
140
156
|
|
|
141
157
|
If you want to know if a version satisfies or does not satisfy a
|
package/bin/semver
CHANGED
|
@@ -39,6 +39,7 @@ function main () {
|
|
|
39
39
|
case "-i": case "--inc": case "--increment":
|
|
40
40
|
switch (argv[0]) {
|
|
41
41
|
case "major": case "minor": case "patch": case "prerelease":
|
|
42
|
+
case "premajor": case "preminor": case "prepatch":
|
|
42
43
|
inc = argv.shift()
|
|
43
44
|
break
|
|
44
45
|
default:
|
|
@@ -106,8 +107,8 @@ function help () {
|
|
|
106
107
|
,""
|
|
107
108
|
,"-i --increment [<level>]"
|
|
108
109
|
," Increment a version by the specified level. Level can"
|
|
109
|
-
," be one of: major, minor, patch,
|
|
110
|
-
," Default level is 'patch'."
|
|
110
|
+
," be one of: major, minor, patch, premajor, preminor,"
|
|
111
|
+
," prepatch, or prerelease. Default level is 'patch'."
|
|
111
112
|
," Only one version may be specified."
|
|
112
113
|
,""
|
|
113
114
|
,"-l --loose"
|
package/package.json
CHANGED
package/semver.browser.js
CHANGED
|
@@ -248,6 +248,8 @@ function SemVer(version, loose) {
|
|
|
248
248
|
return version;
|
|
249
249
|
else
|
|
250
250
|
version = version.version;
|
|
251
|
+
} else if (typeof version !== 'string') {
|
|
252
|
+
throw new TypeError('Invalid Version: ' + version);
|
|
251
253
|
}
|
|
252
254
|
|
|
253
255
|
if (!(this instanceof SemVer))
|
|
@@ -320,7 +322,7 @@ SemVer.prototype.comparePre = function(other) {
|
|
|
320
322
|
return -1;
|
|
321
323
|
else if (!this.prerelease.length && other.prerelease.length)
|
|
322
324
|
return 1;
|
|
323
|
-
else if (!this.prerelease.
|
|
325
|
+
else if (!this.prerelease.length && !other.prerelease.length)
|
|
324
326
|
return 0;
|
|
325
327
|
|
|
326
328
|
var i = 0;
|
|
@@ -341,19 +343,53 @@ SemVer.prototype.comparePre = function(other) {
|
|
|
341
343
|
} while (++i);
|
|
342
344
|
};
|
|
343
345
|
|
|
346
|
+
// preminor will bump the version up to the next minor release, and immediately
|
|
347
|
+
// down to pre-release. premajor and prepatch work the same way.
|
|
344
348
|
SemVer.prototype.inc = function(release) {
|
|
345
349
|
switch (release) {
|
|
350
|
+
case 'premajor':
|
|
351
|
+
this.inc('major');
|
|
352
|
+
this.inc('pre');
|
|
353
|
+
break;
|
|
354
|
+
case 'preminor':
|
|
355
|
+
this.inc('minor');
|
|
356
|
+
this.inc('pre');
|
|
357
|
+
break;
|
|
358
|
+
case 'prepatch':
|
|
359
|
+
// If this is already a prerelease, it will bump to the next version
|
|
360
|
+
// drop any prereleases that might already exist, since they are not
|
|
361
|
+
// relevant at this point.
|
|
362
|
+
this.prerelease.length = 0
|
|
363
|
+
this.inc('patch');
|
|
364
|
+
this.inc('pre');
|
|
365
|
+
break;
|
|
366
|
+
// If the input is a non-prerelease version, this acts the same as
|
|
367
|
+
// prepatch.
|
|
368
|
+
case 'prerelease':
|
|
369
|
+
if (this.prerelease.length === 0)
|
|
370
|
+
this.inc('patch');
|
|
371
|
+
this.inc('pre');
|
|
372
|
+
break;
|
|
346
373
|
case 'major':
|
|
347
374
|
this.major++;
|
|
348
375
|
this.minor = -1;
|
|
349
376
|
case 'minor':
|
|
350
377
|
this.minor++;
|
|
351
|
-
this.patch =
|
|
378
|
+
this.patch = 0;
|
|
379
|
+
this.prerelease = [];
|
|
380
|
+
break;
|
|
352
381
|
case 'patch':
|
|
353
|
-
this.
|
|
382
|
+
// If this is not a pre-release version, it will increment the patch.
|
|
383
|
+
// If it is a pre-release it will bump up to the same patch version.
|
|
384
|
+
// 1.2.0-5 patches to 1.2.0
|
|
385
|
+
// 1.2.0 patches to 1.2.1
|
|
386
|
+
if (this.prerelease.length === 0)
|
|
387
|
+
this.patch++;
|
|
354
388
|
this.prerelease = [];
|
|
355
389
|
break;
|
|
356
|
-
|
|
390
|
+
// This probably shouldn't be used publically.
|
|
391
|
+
// 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
|
|
392
|
+
case 'pre':
|
|
357
393
|
if (this.prerelease.length === 0)
|
|
358
394
|
this.prerelease = [0];
|
|
359
395
|
else {
|
|
@@ -516,6 +552,9 @@ Comparator.prototype.parse = function(comp) {
|
|
|
516
552
|
throw new TypeError('Invalid comparator: ' + comp);
|
|
517
553
|
|
|
518
554
|
this.operator = m[1];
|
|
555
|
+
if (this.operator === '=')
|
|
556
|
+
this.operator = '';
|
|
557
|
+
|
|
519
558
|
// if it literally is just '>' or '' then allow anything.
|
|
520
559
|
if (!m[2])
|
|
521
560
|
this.semver = ANY;
|
|
@@ -920,13 +959,13 @@ function validRange(range, loose) {
|
|
|
920
959
|
// Determine if version is less than all the versions possible in the range
|
|
921
960
|
exports.ltr = ltr;
|
|
922
961
|
function ltr(version, range, loose) {
|
|
923
|
-
return outside(version, range, '
|
|
962
|
+
return outside(version, range, '<', loose);
|
|
924
963
|
}
|
|
925
964
|
|
|
926
965
|
// Determine if version is greater than all the versions possible in the range.
|
|
927
966
|
exports.gtr = gtr;
|
|
928
967
|
function gtr(version, range, loose) {
|
|
929
|
-
return outside(version, range, '
|
|
968
|
+
return outside(version, range, '>', loose);
|
|
930
969
|
}
|
|
931
970
|
|
|
932
971
|
exports.outside = outside;
|
|
@@ -934,7 +973,7 @@ function outside(version, range, hilo, loose) {
|
|
|
934
973
|
version = new SemVer(version, loose);
|
|
935
974
|
range = new Range(range, loose);
|
|
936
975
|
|
|
937
|
-
var gtfn, ltefn, comp, ecomp;
|
|
976
|
+
var gtfn, ltefn, ltfn, comp, ecomp;
|
|
938
977
|
switch (hilo) {
|
|
939
978
|
case '>':
|
|
940
979
|
gtfn = gt;
|
package/semver.browser.js.gz
CHANGED
|
Binary file
|
package/semver.js
CHANGED
|
@@ -258,6 +258,8 @@ function SemVer(version, loose) {
|
|
|
258
258
|
return version;
|
|
259
259
|
else
|
|
260
260
|
version = version.version;
|
|
261
|
+
} else if (typeof version !== 'string') {
|
|
262
|
+
throw new TypeError('Invalid Version: ' + version);
|
|
261
263
|
}
|
|
262
264
|
|
|
263
265
|
if (!(this instanceof SemVer))
|
|
@@ -330,7 +332,7 @@ SemVer.prototype.comparePre = function(other) {
|
|
|
330
332
|
return -1;
|
|
331
333
|
else if (!this.prerelease.length && other.prerelease.length)
|
|
332
334
|
return 1;
|
|
333
|
-
else if (!this.prerelease.
|
|
335
|
+
else if (!this.prerelease.length && !other.prerelease.length)
|
|
334
336
|
return 0;
|
|
335
337
|
|
|
336
338
|
var i = 0;
|
|
@@ -351,19 +353,53 @@ SemVer.prototype.comparePre = function(other) {
|
|
|
351
353
|
} while (++i);
|
|
352
354
|
};
|
|
353
355
|
|
|
356
|
+
// preminor will bump the version up to the next minor release, and immediately
|
|
357
|
+
// down to pre-release. premajor and prepatch work the same way.
|
|
354
358
|
SemVer.prototype.inc = function(release) {
|
|
355
359
|
switch (release) {
|
|
360
|
+
case 'premajor':
|
|
361
|
+
this.inc('major');
|
|
362
|
+
this.inc('pre');
|
|
363
|
+
break;
|
|
364
|
+
case 'preminor':
|
|
365
|
+
this.inc('minor');
|
|
366
|
+
this.inc('pre');
|
|
367
|
+
break;
|
|
368
|
+
case 'prepatch':
|
|
369
|
+
// If this is already a prerelease, it will bump to the next version
|
|
370
|
+
// drop any prereleases that might already exist, since they are not
|
|
371
|
+
// relevant at this point.
|
|
372
|
+
this.prerelease.length = 0
|
|
373
|
+
this.inc('patch');
|
|
374
|
+
this.inc('pre');
|
|
375
|
+
break;
|
|
376
|
+
// If the input is a non-prerelease version, this acts the same as
|
|
377
|
+
// prepatch.
|
|
378
|
+
case 'prerelease':
|
|
379
|
+
if (this.prerelease.length === 0)
|
|
380
|
+
this.inc('patch');
|
|
381
|
+
this.inc('pre');
|
|
382
|
+
break;
|
|
356
383
|
case 'major':
|
|
357
384
|
this.major++;
|
|
358
385
|
this.minor = -1;
|
|
359
386
|
case 'minor':
|
|
360
387
|
this.minor++;
|
|
361
|
-
this.patch =
|
|
388
|
+
this.patch = 0;
|
|
389
|
+
this.prerelease = [];
|
|
390
|
+
break;
|
|
362
391
|
case 'patch':
|
|
363
|
-
this.
|
|
392
|
+
// If this is not a pre-release version, it will increment the patch.
|
|
393
|
+
// If it is a pre-release it will bump up to the same patch version.
|
|
394
|
+
// 1.2.0-5 patches to 1.2.0
|
|
395
|
+
// 1.2.0 patches to 1.2.1
|
|
396
|
+
if (this.prerelease.length === 0)
|
|
397
|
+
this.patch++;
|
|
364
398
|
this.prerelease = [];
|
|
365
399
|
break;
|
|
366
|
-
|
|
400
|
+
// This probably shouldn't be used publically.
|
|
401
|
+
// 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
|
|
402
|
+
case 'pre':
|
|
367
403
|
if (this.prerelease.length === 0)
|
|
368
404
|
this.prerelease = [0];
|
|
369
405
|
else {
|
|
@@ -526,6 +562,9 @@ Comparator.prototype.parse = function(comp) {
|
|
|
526
562
|
throw new TypeError('Invalid comparator: ' + comp);
|
|
527
563
|
|
|
528
564
|
this.operator = m[1];
|
|
565
|
+
if (this.operator === '=')
|
|
566
|
+
this.operator = '';
|
|
567
|
+
|
|
529
568
|
// if it literally is just '>' or '' then allow anything.
|
|
530
569
|
if (!m[2])
|
|
531
570
|
this.semver = ANY;
|
|
@@ -930,13 +969,13 @@ function validRange(range, loose) {
|
|
|
930
969
|
// Determine if version is less than all the versions possible in the range
|
|
931
970
|
exports.ltr = ltr;
|
|
932
971
|
function ltr(version, range, loose) {
|
|
933
|
-
return outside(version, range, '
|
|
972
|
+
return outside(version, range, '<', loose);
|
|
934
973
|
}
|
|
935
974
|
|
|
936
975
|
// Determine if version is greater than all the versions possible in the range.
|
|
937
976
|
exports.gtr = gtr;
|
|
938
977
|
function gtr(version, range, loose) {
|
|
939
|
-
return outside(version, range, '
|
|
978
|
+
return outside(version, range, '>', loose);
|
|
940
979
|
}
|
|
941
980
|
|
|
942
981
|
exports.outside = outside;
|
|
@@ -944,7 +983,7 @@ function outside(version, range, hilo, loose) {
|
|
|
944
983
|
version = new SemVer(version, loose);
|
|
945
984
|
range = new Range(range, loose);
|
|
946
985
|
|
|
947
|
-
var gtfn, ltefn, comp, ecomp;
|
|
986
|
+
var gtfn, ltefn, ltfn, comp, ecomp;
|
|
948
987
|
switch (hilo) {
|
|
949
988
|
case '>':
|
|
950
989
|
gtfn = gt;
|
package/semver.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e){if(typeof module==="object"&&module.exports===e)e=module.exports=H;e.SEMVER_SPEC_VERSION="2.0.0";var r=e.re=[];var t=e.src=[];var n=0;var i=n++;t[i]="0|[1-9]\\d*";var s=n++;t[s]="[0-9]+";var o=n++;t[o]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var a=n++;t[a]="("+t[i]+")\\."+"("+t[i]+")\\."+"("+t[i]+")";var f=n++;t[f]="("+t[s]+")\\."+"("+t[s]+")\\."+"("+t[s]+")";var u=n++;t[u]="(?:"+t[i]+"|"+t[o]+")";var l=n++;t[l]="(?:"+t[s]+"|"+t[o]+")";var c=n++;t[c]="(?:-("+t[u]+"(?:\\."+t[u]+")*))";var p=n++;t[p]="(?:-?("+t[l]+"(?:\\."+t[l]+")*))";var h=n++;t[h]="[0-9A-Za-z-]+";var v=n++;t[v]="(?:\\+("+t[h]+"(?:\\."+t[h]+")*))";var m=n++;var g="v?"+t[a]+t[c]+"?"+t[v]+"?";t[m]="^"+g+"$";var w="[v=\\s]*"+t[f]+t[p]+"?"+t[v]+"?";var d=n++;t[d]="^"+w+"$";var y=n++;t[y]="((?:<|>)?=?)";var $=n++;t[$]=t[s]+"|x|X|\\*";var j=n++;t[j]=t[i]+"|x|X|\\*";var b=n++;t[b]="[v=\\s]*("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:("+t[c]+")"+")?)?)?";var E=n++;t[E]="[v=\\s]*("+t[$]+")"+"(?:\\.("+t[$]+")"+"(?:\\.("+t[$]+")"+"(?:("+t[p]+")"+")?)?)?";var k=n++;t[k]="^"+t[y]+"\\s*"+t[b]+"$";var x=n++;t[x]="^"+t[y]+"\\s*"+t[E]+"$";var R=n++;t[R]="(?:~>?)";var S=n++;t[S]="(\\s*)"+t[R]+"\\s+";r[S]=new RegExp(t[S],"g");var V="$1~";var I=n++;t[I]="^"+t[R]+t[b]+"$";var A=n++;t[A]="^"+t[R]+t[E]+"$";var C=n++;t[C]="(?:\\^)";var T=n++;t[T]="(\\s*)"+t[C]+"\\s+";r[T]=new RegExp(t[T],"g");var M="$1^";var z=n++;t[z]="^"+t[C]+t[b]+"$";var P=n++;t[P]="^"+t[C]+t[E]+"$";var Z=n++;t[Z]="^"+t[y]+"\\s*("+w+")$|^$";var q=n++;t[q]="^"+t[y]+"\\s*("+g+")$|^$";var L=n++;t[L]="(\\s*)"+t[y]+"\\s*("+w+"|"+t[b]+")";r[L]=new RegExp(t[L],"g");var X="$1$2$3";var _=n++;t[_]="^\\s*("+t[b]+")"+"\\s+-\\s+"+"("+t[b]+")"+"\\s*$";var N=n++;t[N]="^\\s*("+t[E]+")"+"\\s+-\\s+"+"("+t[E]+")"+"\\s*$";var O=n++;t[O]="(<|>)?=?\\s*\\*";for(var B=0;B<n;B++){if(!r[B])r[B]=new RegExp(t[B])}e.parse=D;function D(e,t){var n=t?r[d]:r[m];return n.test(e)?new H(e,t):null}e.valid=F;function F(e,r){var t=D(e,r);return t?t.version:null}e.clean=G;function G(e,r){var t=D(e,r);return t?t.version:null}e.SemVer=H;function H(e,t){if(e instanceof H){if(e.loose===t)return e;else e=e.version}if(!(this instanceof H))return new H(e,t);this.loose=t;var n=e.trim().match(t?r[d]:r[m]);if(!n)throw new TypeError("Invalid Version: "+e);this.raw=e;this.major=+n[1];this.minor=+n[2];this.patch=+n[3];if(!n[4])this.prerelease=[];else this.prerelease=n[4].split(".").map(function(e){return/^[0-9]+$/.test(e)?+e:e});this.build=n[5]?n[5].split("."):[];this.format()}H.prototype.format=function(){this.version=this.major+"."+this.minor+"."+this.patch;if(this.prerelease.length)this.version+="-"+this.prerelease.join(".");return this.version};H.prototype.inspect=function(){return'<SemVer "'+this+'">'};H.prototype.toString=function(){return this.version};H.prototype.compare=function(e){if(!(e instanceof H))e=new H(e,this.loose);return this.compareMain(e)||this.comparePre(e)};H.prototype.compareMain=function(e){if(!(e instanceof H))e=new H(e,this.loose);return Q(this.major,e.major)||Q(this.minor,e.minor)||Q(this.patch,e.patch)};H.prototype.comparePre=function(e){if(!(e instanceof H))e=new H(e,this.loose);if(this.prerelease.length&&!e.prerelease.length)return-1;else if(!this.prerelease.length&&e.prerelease.length)return 1;else if(!this.prerelease.lenth&&!e.prerelease.length)return 0;var r=0;do{var t=this.prerelease[r];var n=e.prerelease[r];if(t===undefined&&n===undefined)return 0;else if(n===undefined)return 1;else if(t===undefined)return-1;else if(t===n)continue;else return Q(t,n)}while(++r)};H.prototype.inc=function(e){switch(e){case"major":this.major++;this.minor=-1;case"minor":this.minor++;this.patch=-1;case"patch":this.patch++;this.prerelease=[];break;case"prerelease":if(this.prerelease.length===0)this.prerelease=[0];else{var r=this.prerelease.length;while(--r>=0){if(typeof this.prerelease[r]==="number"){this.prerelease[r]++;r=-2}}if(r===-1)this.prerelease.push(0)}break;default:throw new Error("invalid increment argument: "+e)}this.format();return this};e.inc=J;function J(e,r,t){try{return new H(e,t).inc(r).version}catch(n){return null}}e.compareIdentifiers=Q;var K=/^[0-9]+$/;function Q(e,r){var t=K.test(e);var n=K.test(r);if(t&&n){e=+e;r=+r}return t&&!n?-1:n&&!t?1:e<r?-1:e>r?1:0}e.rcompareIdentifiers=U;function U(e,r){return Q(r,e)}e.compare=W;function W(e,r,t){return new H(e,t).compare(r)}e.compareLoose=Y;function Y(e,r){return W(e,r,true)}e.rcompare=er;function er(e,r,t){return W(r,e,t)}e.sort=rr;function rr(r,t){return r.sort(function(r,n){return e.compare(r,n,t)})}e.rsort=tr;function tr(r,t){return r.sort(function(r,n){return e.rcompare(r,n,t)})}e.gt=nr;function nr(e,r,t){return W(e,r,t)>0}e.lt=ir;function ir(e,r,t){return W(e,r,t)<0}e.eq=sr;function sr(e,r,t){return W(e,r,t)===0}e.neq=or;function or(e,r,t){return W(e,r,t)!==0}e.gte=ar;function ar(e,r,t){return W(e,r,t)>=0}e.lte=fr;function fr(e,r,t){return W(e,r,t)<=0}e.cmp=ur;function ur(e,r,t,n){var i;switch(r){case"===":i=e===t;break;case"!==":i=e!==t;break;case"":case"=":case"==":i=sr(e,t,n);break;case"!=":i=or(e,t,n);break;case">":i=nr(e,t,n);break;case">=":i=ar(e,t,n);break;case"<":i=ir(e,t,n);break;case"<=":i=fr(e,t,n);break;default:throw new TypeError("Invalid operator: "+r)}return i}e.Comparator=lr;function lr(e,r){if(e instanceof lr){if(e.loose===r)return e;else e=e.value}if(!(this instanceof lr))return new lr(e,r);this.loose=r;this.parse(e);if(this.semver===cr)this.value="";else this.value=this.operator+this.semver.version}var cr={};lr.prototype.parse=function(e){var t=this.loose?r[Z]:r[q];var n=e.match(t);if(!n)throw new TypeError("Invalid comparator: "+e);this.operator=n[1];if(!n[2])this.semver=cr;else{this.semver=new H(n[2],this.loose);if(this.operator==="<"&&!this.semver.prerelease.length){this.semver.prerelease=["0"];this.semver.format()}}};lr.prototype.inspect=function(){return'<SemVer Comparator "'+this+'">'};lr.prototype.toString=function(){return this.value};lr.prototype.test=function(e){return this.semver===cr?true:ur(e,this.operator,this.semver,this.loose)};e.Range=pr;function pr(e,r){if(e instanceof pr&&e.loose===r)return e;if(!(this instanceof pr))return new pr(e,r);this.loose=r;this.raw=e;this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length});if(!this.set.length){throw new TypeError("Invalid SemVer Range: "+e)}this.format()}pr.prototype.inspect=function(){return'<SemVer Range "'+this.range+'">'};pr.prototype.format=function(){this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim();return this.range};pr.prototype.toString=function(){return this.range};pr.prototype.parseRange=function(e){var t=this.loose;e=e.trim();var n=t?r[N]:r[_];e=e.replace(n,Er);e=e.replace(r[L],X);e=e.replace(r[S],V);e=e.replace(r[T],M);e=e.split(/\s+/).join(" ");var i=t?r[Z]:r[q];var s=e.split(" ").map(function(e){return vr(e,t)}).join(" ").split(/\s+/);if(this.loose){s=s.filter(function(e){return!!e.match(i)})}s=s.map(function(e){return new lr(e,t)});return s};e.toComparators=hr;function hr(e,r){return new pr(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function vr(e,r){e=dr(e,r);e=gr(e,r);e=$r(e,r);e=br(e,r);return e}function mr(e){return!e||e.toLowerCase()==="x"||e==="*"}function gr(e,r){return e.trim().split(/\s+/).map(function(e){return wr(e,r)}).join(" ")}function wr(e,t){var n=t?r[A]:r[I];return e.replace(n,function(e,r,t,n,i){var s;if(mr(r))s="";else if(mr(t))s=">="+r+".0.0-0 <"+(+r+1)+".0.0-0";else if(mr(n))s=">="+r+"."+t+".0-0 <"+r+"."+(+t+1)+".0-0";else if(i){if(i.charAt(0)!=="-")i="-"+i;s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0-0"}else s=">="+r+"."+t+"."+n+"-0"+" <"+r+"."+(+t+1)+".0-0";return s})}function dr(e,r){return e.trim().split(/\s+/).map(function(e){return yr(e,r)}).join(" ")}function yr(e,t){var n=t?r[P]:r[z];return e.replace(n,function(e,r,t,n,i){var s;if(mr(r))s="";else if(mr(t))s=">="+r+".0.0-0 <"+(+r+1)+".0.0-0";else if(mr(n)){if(r==="0")s=">="+r+"."+t+".0-0 <"+r+"."+(+t+1)+".0-0";else s=">="+r+"."+t+".0-0 <"+(+r+1)+".0.0-0"}else if(i){if(i.charAt(0)!=="-")i="-"+i;if(r==="0"){if(t==="0")s="="+r+"."+t+"."+n+i;else s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0-0"}else s=">="+r+"."+t+"."+n+i+" <"+(+r+1)+".0.0-0"}else{if(r==="0"){if(t==="0")s="="+r+"."+t+"."+n;else s=">="+r+"."+t+"."+n+"-0"+" <"+r+"."+(+t+1)+".0-0"}else s=">="+r+"."+t+"."+n+"-0"+" <"+(+r+1)+".0.0-0"}return s})}function $r(e,r){return e.split(/\s+/).map(function(e){return jr(e,r)}).join(" ")}function jr(e,t){e=e.trim();var n=t?r[x]:r[k];return e.replace(n,function(e,r,t,n,i,s){var o=mr(t);var a=o||mr(n);var f=a||mr(i);var u=f;if(r==="="&&u)r="";if(r&&u){if(o)t=0;if(a)n=0;if(f)i=0;if(r===">"){r=">=";if(o){}else if(a){t=+t+1;n=0;i=0}else if(f){n=+n+1;i=0}}e=r+t+"."+n+"."+i+"-0"}else if(o){e="*"}else if(a){e=">="+t+".0.0-0 <"+(+t+1)+".0.0-0"}else if(f){e=">="+t+"."+n+".0-0 <"+t+"."+(+n+1)+".0-0"}return e})}function br(e,t){return e.trim().replace(r[O],"")}function Er(e,r,t,n,i,s,o,a,f,u,l,c,p){if(mr(t))r="";else if(mr(n))r=">="+t+".0.0-0";else if(mr(i))r=">="+t+"."+n+".0-0";else r=">="+r;if(mr(f))a="";else if(mr(u))a="<"+(+f+1)+".0.0-0";else if(mr(l))a="<"+f+"."+(+u+1)+".0-0";else if(c)a="<="+f+"."+u+"."+l+"-"+c;else a="<="+a;return(r+" "+a).trim()}pr.prototype.test=function(e){if(!e)return false;for(var r=0;r<this.set.length;r++){if(kr(this.set[r],e))return true}return false};function kr(e,r){for(var t=0;t<e.length;t++){if(!e[t].test(r))return false}return true}e.satisfies=xr;function xr(e,r,t){try{r=new pr(r,t)}catch(n){return false}return r.test(e)}e.maxSatisfying=Rr;function Rr(e,r,t){return e.filter(function(e){return xr(e,r,t)}).sort(function(e,r){return er(e,r,t)})[0]||null}e.validRange=Sr;function Sr(e,r){try{return new pr(e,r).range||"*"}catch(t){return null}}e.ltr=Vr;function Vr(e,r,t){return Ar(e,r,"lo",t)}e.gtr=Ir;function Ir(e,r,t){return Ar(e,r,"hi",t)}e.outside=Ar;function Ar(e,r,t,n){e=new H(e,n);r=new pr(r,n);var i,s,o,a;switch(t){case">":i=nr;s=fr;ltfn=ir;o=">";a=">=";break;case"<":i=ir;s=ar;ltfn=nr;o="<";a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(xr(e,r,n)){return false}for(var f=0;f<r.set.length;++f){var u=r.set[f];var l=null;var c=null;u.forEach(function(e){l=l||e;c=c||e;if(i(e.semver,l.semver,n)){l=e}else if(ltfn(e.semver,c.semver,n)){c=e}});if(l.operator===o||l.operator===a){return false}if((!c.operator||c.operator===o)&&s(e,c.semver)){return false}else if(c.operator===a&<fn(e,c.semver)){return false}}return true}if(typeof define==="function"&&define.amd)define(e)})(typeof exports==="object"?exports:typeof define==="function"&&define.amd?{}:semver={});
|
|
1
|
+
(function(e){if(typeof module==="object"&&module.exports===e)e=module.exports=H;e.SEMVER_SPEC_VERSION="2.0.0";var r=e.re=[];var t=e.src=[];var n=0;var i=n++;t[i]="0|[1-9]\\d*";var s=n++;t[s]="[0-9]+";var a=n++;t[a]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var o=n++;t[o]="("+t[i]+")\\."+"("+t[i]+")\\."+"("+t[i]+")";var f=n++;t[f]="("+t[s]+")\\."+"("+t[s]+")\\."+"("+t[s]+")";var u=n++;t[u]="(?:"+t[i]+"|"+t[a]+")";var c=n++;t[c]="(?:"+t[s]+"|"+t[a]+")";var l=n++;t[l]="(?:-("+t[u]+"(?:\\."+t[u]+")*))";var p=n++;t[p]="(?:-?("+t[c]+"(?:\\."+t[c]+")*))";var h=n++;t[h]="[0-9A-Za-z-]+";var v=n++;t[v]="(?:\\+("+t[h]+"(?:\\."+t[h]+")*))";var m=n++;var g="v?"+t[o]+t[l]+"?"+t[v]+"?";t[m]="^"+g+"$";var w="[v=\\s]*"+t[f]+t[p]+"?"+t[v]+"?";var d=n++;t[d]="^"+w+"$";var y=n++;t[y]="((?:<|>)?=?)";var b=n++;t[b]=t[s]+"|x|X|\\*";var $=n++;t[$]=t[i]+"|x|X|\\*";var j=n++;t[j]="[v=\\s]*("+t[$]+")"+"(?:\\.("+t[$]+")"+"(?:\\.("+t[$]+")"+"(?:("+t[l]+")"+")?)?)?";var k=n++;t[k]="[v=\\s]*("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:("+t[p]+")"+")?)?)?";var E=n++;t[E]="^"+t[y]+"\\s*"+t[j]+"$";var x=n++;t[x]="^"+t[y]+"\\s*"+t[k]+"$";var R=n++;t[R]="(?:~>?)";var S=n++;t[S]="(\\s*)"+t[R]+"\\s+";r[S]=new RegExp(t[S],"g");var V="$1~";var I=n++;t[I]="^"+t[R]+t[j]+"$";var T=n++;t[T]="^"+t[R]+t[k]+"$";var A=n++;t[A]="(?:\\^)";var C=n++;t[C]="(\\s*)"+t[A]+"\\s+";r[C]=new RegExp(t[C],"g");var M="$1^";var z=n++;t[z]="^"+t[A]+t[j]+"$";var P=n++;t[P]="^"+t[A]+t[k]+"$";var Z=n++;t[Z]="^"+t[y]+"\\s*("+w+")$|^$";var q=n++;t[q]="^"+t[y]+"\\s*("+g+")$|^$";var L=n++;t[L]="(\\s*)"+t[y]+"\\s*("+w+"|"+t[j]+")";r[L]=new RegExp(t[L],"g");var X="$1$2$3";var _=n++;t[_]="^\\s*("+t[j]+")"+"\\s+-\\s+"+"("+t[j]+")"+"\\s*$";var N=n++;t[N]="^\\s*("+t[k]+")"+"\\s+-\\s+"+"("+t[k]+")"+"\\s*$";var O=n++;t[O]="(<|>)?=?\\s*\\*";for(var B=0;B<n;B++){if(!r[B])r[B]=new RegExp(t[B])}e.parse=D;function D(e,t){var n=t?r[d]:r[m];return n.test(e)?new H(e,t):null}e.valid=F;function F(e,r){var t=D(e,r);return t?t.version:null}e.clean=G;function G(e,r){var t=D(e,r);return t?t.version:null}e.SemVer=H;function H(e,t){if(e instanceof H){if(e.loose===t)return e;else e=e.version}else if(typeof e!=="string"){throw new TypeError("Invalid Version: "+e)}if(!(this instanceof H))return new H(e,t);this.loose=t;var n=e.trim().match(t?r[d]:r[m]);if(!n)throw new TypeError("Invalid Version: "+e);this.raw=e;this.major=+n[1];this.minor=+n[2];this.patch=+n[3];if(!n[4])this.prerelease=[];else this.prerelease=n[4].split(".").map(function(e){return/^[0-9]+$/.test(e)?+e:e});this.build=n[5]?n[5].split("."):[];this.format()}H.prototype.format=function(){this.version=this.major+"."+this.minor+"."+this.patch;if(this.prerelease.length)this.version+="-"+this.prerelease.join(".");return this.version};H.prototype.inspect=function(){return'<SemVer "'+this+'">'};H.prototype.toString=function(){return this.version};H.prototype.compare=function(e){if(!(e instanceof H))e=new H(e,this.loose);return this.compareMain(e)||this.comparePre(e)};H.prototype.compareMain=function(e){if(!(e instanceof H))e=new H(e,this.loose);return Q(this.major,e.major)||Q(this.minor,e.minor)||Q(this.patch,e.patch)};H.prototype.comparePre=function(e){if(!(e instanceof H))e=new H(e,this.loose);if(this.prerelease.length&&!e.prerelease.length)return-1;else if(!this.prerelease.length&&e.prerelease.length)return 1;else if(!this.prerelease.length&&!e.prerelease.length)return 0;var r=0;do{var t=this.prerelease[r];var n=e.prerelease[r];if(t===undefined&&n===undefined)return 0;else if(n===undefined)return 1;else if(t===undefined)return-1;else if(t===n)continue;else return Q(t,n)}while(++r)};H.prototype.inc=function(e){switch(e){case"premajor":this.inc("major");this.inc("pre");break;case"preminor":this.inc("minor");this.inc("pre");break;case"prepatch":this.prerelease.length=0;this.inc("patch");this.inc("pre");break;case"prerelease":if(this.prerelease.length===0)this.inc("patch");this.inc("pre");break;case"major":this.major++;this.minor=-1;case"minor":this.minor++;this.patch=0;this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{var r=this.prerelease.length;while(--r>=0){if(typeof this.prerelease[r]==="number"){this.prerelease[r]++;r=-2}}if(r===-1)this.prerelease.push(0)}break;default:throw new Error("invalid increment argument: "+e)}this.format();return this};e.inc=J;function J(e,r,t){try{return new H(e,t).inc(r).version}catch(n){return null}}e.compareIdentifiers=Q;var K=/^[0-9]+$/;function Q(e,r){var t=K.test(e);var n=K.test(r);if(t&&n){e=+e;r=+r}return t&&!n?-1:n&&!t?1:e<r?-1:e>r?1:0}e.rcompareIdentifiers=U;function U(e,r){return Q(r,e)}e.compare=W;function W(e,r,t){return new H(e,t).compare(r)}e.compareLoose=Y;function Y(e,r){return W(e,r,true)}e.rcompare=er;function er(e,r,t){return W(r,e,t)}e.sort=rr;function rr(r,t){return r.sort(function(r,n){return e.compare(r,n,t)})}e.rsort=tr;function tr(r,t){return r.sort(function(r,n){return e.rcompare(r,n,t)})}e.gt=nr;function nr(e,r,t){return W(e,r,t)>0}e.lt=ir;function ir(e,r,t){return W(e,r,t)<0}e.eq=sr;function sr(e,r,t){return W(e,r,t)===0}e.neq=ar;function ar(e,r,t){return W(e,r,t)!==0}e.gte=or;function or(e,r,t){return W(e,r,t)>=0}e.lte=fr;function fr(e,r,t){return W(e,r,t)<=0}e.cmp=ur;function ur(e,r,t,n){var i;switch(r){case"===":i=e===t;break;case"!==":i=e!==t;break;case"":case"=":case"==":i=sr(e,t,n);break;case"!=":i=ar(e,t,n);break;case">":i=nr(e,t,n);break;case">=":i=or(e,t,n);break;case"<":i=ir(e,t,n);break;case"<=":i=fr(e,t,n);break;default:throw new TypeError("Invalid operator: "+r)}return i}e.Comparator=cr;function cr(e,r){if(e instanceof cr){if(e.loose===r)return e;else e=e.value}if(!(this instanceof cr))return new cr(e,r);this.loose=r;this.parse(e);if(this.semver===lr)this.value="";else this.value=this.operator+this.semver.version}var lr={};cr.prototype.parse=function(e){var t=this.loose?r[Z]:r[q];var n=e.match(t);if(!n)throw new TypeError("Invalid comparator: "+e);this.operator=n[1];if(this.operator==="=")this.operator="";if(!n[2])this.semver=lr;else{this.semver=new H(n[2],this.loose);if(this.operator==="<"&&!this.semver.prerelease.length){this.semver.prerelease=["0"];this.semver.format()}}};cr.prototype.inspect=function(){return'<SemVer Comparator "'+this+'">'};cr.prototype.toString=function(){return this.value};cr.prototype.test=function(e){return this.semver===lr?true:ur(e,this.operator,this.semver,this.loose)};e.Range=pr;function pr(e,r){if(e instanceof pr&&e.loose===r)return e;if(!(this instanceof pr))return new pr(e,r);this.loose=r;this.raw=e;this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length});if(!this.set.length){throw new TypeError("Invalid SemVer Range: "+e)}this.format()}pr.prototype.inspect=function(){return'<SemVer Range "'+this.range+'">'};pr.prototype.format=function(){this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim();return this.range};pr.prototype.toString=function(){return this.range};pr.prototype.parseRange=function(e){var t=this.loose;e=e.trim();var n=t?r[N]:r[_];e=e.replace(n,kr);e=e.replace(r[L],X);e=e.replace(r[S],V);e=e.replace(r[C],M);e=e.split(/\s+/).join(" ");var i=t?r[Z]:r[q];var s=e.split(" ").map(function(e){return vr(e,t)}).join(" ").split(/\s+/);if(this.loose){s=s.filter(function(e){return!!e.match(i)})}s=s.map(function(e){return new cr(e,t)});return s};e.toComparators=hr;function hr(e,r){return new pr(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function vr(e,r){e=dr(e,r);e=gr(e,r);e=br(e,r);e=jr(e,r);return e}function mr(e){return!e||e.toLowerCase()==="x"||e==="*"}function gr(e,r){return e.trim().split(/\s+/).map(function(e){return wr(e,r)}).join(" ")}function wr(e,t){var n=t?r[T]:r[I];return e.replace(n,function(e,r,t,n,i){var s;if(mr(r))s="";else if(mr(t))s=">="+r+".0.0-0 <"+(+r+1)+".0.0-0";else if(mr(n))s=">="+r+"."+t+".0-0 <"+r+"."+(+t+1)+".0-0";else if(i){if(i.charAt(0)!=="-")i="-"+i;s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0-0"}else s=">="+r+"."+t+"."+n+"-0"+" <"+r+"."+(+t+1)+".0-0";return s})}function dr(e,r){return e.trim().split(/\s+/).map(function(e){return yr(e,r)}).join(" ")}function yr(e,t){var n=t?r[P]:r[z];return e.replace(n,function(e,r,t,n,i){var s;if(mr(r))s="";else if(mr(t))s=">="+r+".0.0-0 <"+(+r+1)+".0.0-0";else if(mr(n)){if(r==="0")s=">="+r+"."+t+".0-0 <"+r+"."+(+t+1)+".0-0";else s=">="+r+"."+t+".0-0 <"+(+r+1)+".0.0-0"}else if(i){if(i.charAt(0)!=="-")i="-"+i;if(r==="0"){if(t==="0")s="="+r+"."+t+"."+n+i;else s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0-0"}else s=">="+r+"."+t+"."+n+i+" <"+(+r+1)+".0.0-0"}else{if(r==="0"){if(t==="0")s="="+r+"."+t+"."+n;else s=">="+r+"."+t+"."+n+"-0"+" <"+r+"."+(+t+1)+".0-0"}else s=">="+r+"."+t+"."+n+"-0"+" <"+(+r+1)+".0.0-0"}return s})}function br(e,r){return e.split(/\s+/).map(function(e){return $r(e,r)}).join(" ")}function $r(e,t){e=e.trim();var n=t?r[x]:r[E];return e.replace(n,function(e,r,t,n,i,s){var a=mr(t);var o=a||mr(n);var f=o||mr(i);var u=f;if(r==="="&&u)r="";if(r&&u){if(a)t=0;if(o)n=0;if(f)i=0;if(r===">"){r=">=";if(a){}else if(o){t=+t+1;n=0;i=0}else if(f){n=+n+1;i=0}}e=r+t+"."+n+"."+i+"-0"}else if(a){e="*"}else if(o){e=">="+t+".0.0-0 <"+(+t+1)+".0.0-0"}else if(f){e=">="+t+"."+n+".0-0 <"+t+"."+(+n+1)+".0-0"}return e})}function jr(e,t){return e.trim().replace(r[O],"")}function kr(e,r,t,n,i,s,a,o,f,u,c,l,p){if(mr(t))r="";else if(mr(n))r=">="+t+".0.0-0";else if(mr(i))r=">="+t+"."+n+".0-0";else r=">="+r;if(mr(f))o="";else if(mr(u))o="<"+(+f+1)+".0.0-0";else if(mr(c))o="<"+f+"."+(+u+1)+".0-0";else if(l)o="<="+f+"."+u+"."+c+"-"+l;else o="<="+o;return(r+" "+o).trim()}pr.prototype.test=function(e){if(!e)return false;for(var r=0;r<this.set.length;r++){if(Er(this.set[r],e))return true}return false};function Er(e,r){for(var t=0;t<e.length;t++){if(!e[t].test(r))return false}return true}e.satisfies=xr;function xr(e,r,t){try{r=new pr(r,t)}catch(n){return false}return r.test(e)}e.maxSatisfying=Rr;function Rr(e,r,t){return e.filter(function(e){return xr(e,r,t)}).sort(function(e,r){return er(e,r,t)})[0]||null}e.validRange=Sr;function Sr(e,r){try{return new pr(e,r).range||"*"}catch(t){return null}}e.ltr=Vr;function Vr(e,r,t){return Tr(e,r,"<",t)}e.gtr=Ir;function Ir(e,r,t){return Tr(e,r,">",t)}e.outside=Tr;function Tr(e,r,t,n){e=new H(e,n);r=new pr(r,n);var i,s,a,o,f;switch(t){case">":i=nr;s=fr;a=ir;o=">";f=">=";break;case"<":i=ir;s=or;a=nr;o="<";f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(xr(e,r,n)){return false}for(var u=0;u<r.set.length;++u){var c=r.set[u];var l=null;var p=null;c.forEach(function(e){l=l||e;p=p||e;if(i(e.semver,l.semver,n)){l=e}else if(a(e.semver,p.semver,n)){p=e}});if(l.operator===o||l.operator===f){return false}if((!p.operator||p.operator===o)&&s(e,p.semver)){return false}else if(p.operator===f&&a(e,p.semver)){return false}}return true}if(typeof define==="function"&&define.amd)define(e)})(typeof exports==="object"?exports:typeof define==="function"&&define.amd?{}:semver={});
|
package/semver.min.js.gz
CHANGED
|
Binary file
|
package/test/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
1
3
|
var tap = require('tap');
|
|
2
4
|
var test = tap.test;
|
|
3
5
|
var semver = require('../semver.js');
|
|
@@ -302,8 +304,15 @@ test('\nincrement versions test', function(t) {
|
|
|
302
304
|
['1.2.3tag', 'major', '2.0.0', true],
|
|
303
305
|
['1.2.3-tag', 'major', '2.0.0'],
|
|
304
306
|
['1.2.3', 'fake', null],
|
|
307
|
+
['1.2.0-0', 'patch', '1.2.0'],
|
|
305
308
|
['fake', 'major', null],
|
|
306
|
-
['1.2.3', '
|
|
309
|
+
['1.2.3-4', 'major', '2.0.0'],
|
|
310
|
+
['1.2.3-4', 'minor', '1.3.0'],
|
|
311
|
+
['1.2.3-4', 'patch', '1.2.3'],
|
|
312
|
+
['1.2.3-alpha.0.beta', 'major', '2.0.0'],
|
|
313
|
+
['1.2.3-alpha.0.beta', 'minor', '1.3.0'],
|
|
314
|
+
['1.2.3-alpha.0.beta', 'patch', '1.2.3'],
|
|
315
|
+
['1.2.4', 'prerelease', '1.2.5-0'],
|
|
307
316
|
['1.2.3-0', 'prerelease', '1.2.3-1'],
|
|
308
317
|
['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1'],
|
|
309
318
|
['1.2.3-alpha.1', 'prerelease', '1.2.3-alpha.2'],
|
|
@@ -319,7 +328,15 @@ test('\nincrement versions test', function(t) {
|
|
|
319
328
|
['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3'],
|
|
320
329
|
['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta'],
|
|
321
330
|
['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta'],
|
|
322
|
-
['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta']
|
|
331
|
+
['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta'],
|
|
332
|
+
['1.2.0', 'prepatch', '1.2.1-0'],
|
|
333
|
+
['1.2.0-1', 'prepatch', '1.2.1-0'],
|
|
334
|
+
['1.2.0', 'preminor', '1.3.0-0'],
|
|
335
|
+
['1.2.0-1', 'preminor', '1.3.0-0'],
|
|
336
|
+
['1.2.0', 'premajor', '2.0.0-0'],
|
|
337
|
+
['1.2.0-1', 'premajor', '2.0.0-0']
|
|
338
|
+
|
|
339
|
+
|
|
323
340
|
].forEach(function(v) {
|
|
324
341
|
var pre = v[0];
|
|
325
342
|
var what = v[1];
|
|
@@ -391,8 +408,8 @@ test('\nvalid range test', function(t) {
|
|
|
391
408
|
['^0.1', '>=0.1.0-0 <0.2.0-0'],
|
|
392
409
|
['^1.0', '>=1.0.0-0 <2.0.0-0'],
|
|
393
410
|
['^1.2', '>=1.2.0-0 <2.0.0-0'],
|
|
394
|
-
['^0.0.1', '
|
|
395
|
-
['^0.0.1-beta', '
|
|
411
|
+
['^0.0.1', '0.0.1'],
|
|
412
|
+
['^0.0.1-beta', '0.0.1-beta'],
|
|
396
413
|
['^0.1.2', '>=0.1.2-0 <0.2.0-0'],
|
|
397
414
|
['^1.2.3', '>=1.2.3-0 <2.0.0-0'],
|
|
398
415
|
['^1.2.3-beta.4', '>=1.2.3-beta.4 <2.0.0-0'],
|
|
@@ -500,6 +517,21 @@ test('\ncomparators test', function(t) {
|
|
|
500
517
|
t.end();
|
|
501
518
|
});
|
|
502
519
|
|
|
520
|
+
test('\ninvalid version numbers', function(t) {
|
|
521
|
+
['1.2.3.4',
|
|
522
|
+
'NOT VALID',
|
|
523
|
+
1.2,
|
|
524
|
+
null,
|
|
525
|
+
'Infinity.NaN.Infinity'
|
|
526
|
+
].forEach(function(v) {
|
|
527
|
+
t.throws(function() {
|
|
528
|
+
new SemVer(v);
|
|
529
|
+
}, {name:'TypeError', message:'Invalid Version: ' + v});
|
|
530
|
+
});
|
|
531
|
+
|
|
532
|
+
t.end();
|
|
533
|
+
});
|
|
534
|
+
|
|
503
535
|
test('\nstrict vs loose version numbers', function(t) {
|
|
504
536
|
[['=1.2.3', '1.2.3'],
|
|
505
537
|
['01.02.03', '1.2.3'],
|
package/test/ltr.js
CHANGED
|
@@ -162,7 +162,8 @@ test('\nnegative ltr tests', function(t) {
|
|
|
162
162
|
['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'],
|
|
163
163
|
['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true],
|
|
164
164
|
['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true],
|
|
165
|
-
['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0']
|
|
165
|
+
['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0'],
|
|
166
|
+
['=0.1.0', '1.0.0']
|
|
166
167
|
].forEach(function(tuple) {
|
|
167
168
|
var range = tuple[0];
|
|
168
169
|
var version = tuple[1];
|