semver 2.3.0 → 3.0.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/README.md +5 -5
- package/bin/semver +2 -2
- package/package.json +1 -1
- package/semver.browser.js +21 -25
- package/semver.browser.js.gz +0 -0
- package/semver.js +21 -25
- package/semver.min.js +1 -1
- package/semver.min.js.gz +0 -0
- package/test/clean.js +25 -0
- package/test/index.js +9 -5
- package/test/ltr.js +2 -1
package/README.md
CHANGED
|
@@ -66,11 +66,11 @@ The following range styles are supported:
|
|
|
66
66
|
prerelease) will be supported up to, but not including, the next
|
|
67
67
|
major version (or its prereleases). `1.5.1` will satisfy `^1.2.3`,
|
|
68
68
|
while `1.2.2` and `2.0.0-beta` will not.
|
|
69
|
-
* `^0.1.3` :=
|
|
70
|
-
special: the
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
* `^0.0.2` :=
|
|
69
|
+
* `^0.1.3` := `0.1.3` "Compatible with `0.1.3`". `0.x.x` versions are
|
|
70
|
+
special: since the semver spec specifies that `0.x.x` versions make
|
|
71
|
+
no stability guarantees, only the version specified is considered
|
|
72
|
+
valid.
|
|
73
|
+
* `^0.0.2` := `0.0.2` "Only the version `0.0.2` is considered compatible"
|
|
74
74
|
* `~1.2` := `>=1.2.0-0 <1.3.0-0` "Any version starting with `1.2`"
|
|
75
75
|
* `^1.2` := `>=1.2.0-0 <2.0.0-0` "Any version compatible with `1.2`"
|
|
76
76
|
* `1.2.x` := `>=1.2.0-0 <1.3.0-0` "Any version starting with `1.2`"
|
package/bin/semver
CHANGED
|
@@ -107,8 +107,8 @@ function help () {
|
|
|
107
107
|
,""
|
|
108
108
|
,"-i --increment [<level>]"
|
|
109
109
|
," Increment a version by the specified level. Level can"
|
|
110
|
-
," be one of: major, minor, patch,
|
|
111
|
-
," Default level is 'patch'."
|
|
110
|
+
," be one of: major, minor, patch, premajor, preminor,"
|
|
111
|
+
," prepatch, or prerelease. Default level is 'patch'."
|
|
112
112
|
," Only one version may be specified."
|
|
113
113
|
,""
|
|
114
114
|
,"-l --loose"
|
package/package.json
CHANGED
package/semver.browser.js
CHANGED
|
@@ -236,7 +236,7 @@ function valid(version, loose) {
|
|
|
236
236
|
|
|
237
237
|
exports.clean = clean;
|
|
238
238
|
function clean(version, loose) {
|
|
239
|
-
var s = parse(version, loose);
|
|
239
|
+
var s = parse(version.trim().replace(/^[=v]+/, ""), loose);
|
|
240
240
|
return s ? s.version : null;
|
|
241
241
|
}
|
|
242
242
|
|
|
@@ -356,6 +356,10 @@ SemVer.prototype.inc = function(release) {
|
|
|
356
356
|
this.inc('pre');
|
|
357
357
|
break;
|
|
358
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;
|
|
359
363
|
this.inc('patch');
|
|
360
364
|
this.inc('pre');
|
|
361
365
|
break;
|
|
@@ -548,6 +552,9 @@ Comparator.prototype.parse = function(comp) {
|
|
|
548
552
|
throw new TypeError('Invalid comparator: ' + comp);
|
|
549
553
|
|
|
550
554
|
this.operator = m[1];
|
|
555
|
+
if (this.operator === '=')
|
|
556
|
+
this.operator = '';
|
|
557
|
+
|
|
551
558
|
// if it literally is just '>' or '' then allow anything.
|
|
552
559
|
if (!m[2])
|
|
553
560
|
this.semver = ANY;
|
|
@@ -753,6 +760,11 @@ function replaceCaret(comp, loose) {
|
|
|
753
760
|
return comp.replace(r, function(_, M, m, p, pr) {
|
|
754
761
|
;
|
|
755
762
|
var ret;
|
|
763
|
+
if (pr) {
|
|
764
|
+
if (pr.charAt(0) !== '-')
|
|
765
|
+
pr = '-' + pr;
|
|
766
|
+
} else
|
|
767
|
+
pr = '';
|
|
756
768
|
|
|
757
769
|
if (isX(M))
|
|
758
770
|
ret = '';
|
|
@@ -763,30 +775,14 @@ function replaceCaret(comp, loose) {
|
|
|
763
775
|
ret = '>=' + M + '.' + m + '.0-0 <' + M + '.' + (+m + 1) + '.0-0';
|
|
764
776
|
else
|
|
765
777
|
ret = '>=' + M + '.' + m + '.0-0 <' + (+M + 1) + '.0.0-0';
|
|
766
|
-
} else if (
|
|
767
|
-
;
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
ret = '>=' + M + '.' + m + '.' + p + pr +
|
|
775
|
-
' <' + M + '.' + (+m + 1) + '.0-0';
|
|
776
|
-
} else
|
|
777
|
-
ret = '>=' + M + '.' + m + '.' + p + pr +
|
|
778
|
-
' <' + (+M + 1) + '.0.0-0';
|
|
779
|
-
} else {
|
|
780
|
-
if (M === '0') {
|
|
781
|
-
if (m === '0')
|
|
782
|
-
ret = '=' + M + '.' + m + '.' + p;
|
|
783
|
-
else
|
|
784
|
-
ret = '>=' + M + '.' + m + '.' + p + '-0' +
|
|
785
|
-
' <' + M + '.' + (+m + 1) + '.0-0';
|
|
786
|
-
} else
|
|
787
|
-
ret = '>=' + M + '.' + m + '.' + p + '-0' +
|
|
788
|
-
' <' + (+M + 1) + '.0.0-0';
|
|
789
|
-
}
|
|
778
|
+
} else if (M === '0')
|
|
779
|
+
ret = '=' + M + '.' + m + '.' + p + pr;
|
|
780
|
+
else if (pr)
|
|
781
|
+
ret = '>=' + M + '.' + m + '.' + p + pr +
|
|
782
|
+
' <' + (+M + 1) + '.0.0-0';
|
|
783
|
+
else
|
|
784
|
+
ret = '>=' + M + '.' + m + '.' + p + '-0' +
|
|
785
|
+
' <' + (+M + 1) + '.0.0-0';
|
|
790
786
|
|
|
791
787
|
;
|
|
792
788
|
return ret;
|
package/semver.browser.js.gz
CHANGED
|
Binary file
|
package/semver.js
CHANGED
|
@@ -246,7 +246,7 @@ function valid(version, loose) {
|
|
|
246
246
|
|
|
247
247
|
exports.clean = clean;
|
|
248
248
|
function clean(version, loose) {
|
|
249
|
-
var s = parse(version, loose);
|
|
249
|
+
var s = parse(version.trim().replace(/^[=v]+/, ""), loose);
|
|
250
250
|
return s ? s.version : null;
|
|
251
251
|
}
|
|
252
252
|
|
|
@@ -366,6 +366,10 @@ SemVer.prototype.inc = function(release) {
|
|
|
366
366
|
this.inc('pre');
|
|
367
367
|
break;
|
|
368
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;
|
|
369
373
|
this.inc('patch');
|
|
370
374
|
this.inc('pre');
|
|
371
375
|
break;
|
|
@@ -558,6 +562,9 @@ Comparator.prototype.parse = function(comp) {
|
|
|
558
562
|
throw new TypeError('Invalid comparator: ' + comp);
|
|
559
563
|
|
|
560
564
|
this.operator = m[1];
|
|
565
|
+
if (this.operator === '=')
|
|
566
|
+
this.operator = '';
|
|
567
|
+
|
|
561
568
|
// if it literally is just '>' or '' then allow anything.
|
|
562
569
|
if (!m[2])
|
|
563
570
|
this.semver = ANY;
|
|
@@ -763,6 +770,11 @@ function replaceCaret(comp, loose) {
|
|
|
763
770
|
return comp.replace(r, function(_, M, m, p, pr) {
|
|
764
771
|
debug('caret', comp, _, M, m, p, pr);
|
|
765
772
|
var ret;
|
|
773
|
+
if (pr) {
|
|
774
|
+
if (pr.charAt(0) !== '-')
|
|
775
|
+
pr = '-' + pr;
|
|
776
|
+
} else
|
|
777
|
+
pr = '';
|
|
766
778
|
|
|
767
779
|
if (isX(M))
|
|
768
780
|
ret = '';
|
|
@@ -773,30 +785,14 @@ function replaceCaret(comp, loose) {
|
|
|
773
785
|
ret = '>=' + M + '.' + m + '.0-0 <' + M + '.' + (+m + 1) + '.0-0';
|
|
774
786
|
else
|
|
775
787
|
ret = '>=' + M + '.' + m + '.0-0 <' + (+M + 1) + '.0.0-0';
|
|
776
|
-
} else if (
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
ret = '>=' + M + '.' + m + '.' + p + pr +
|
|
785
|
-
' <' + M + '.' + (+m + 1) + '.0-0';
|
|
786
|
-
} else
|
|
787
|
-
ret = '>=' + M + '.' + m + '.' + p + pr +
|
|
788
|
-
' <' + (+M + 1) + '.0.0-0';
|
|
789
|
-
} else {
|
|
790
|
-
if (M === '0') {
|
|
791
|
-
if (m === '0')
|
|
792
|
-
ret = '=' + M + '.' + m + '.' + p;
|
|
793
|
-
else
|
|
794
|
-
ret = '>=' + M + '.' + m + '.' + p + '-0' +
|
|
795
|
-
' <' + M + '.' + (+m + 1) + '.0-0';
|
|
796
|
-
} else
|
|
797
|
-
ret = '>=' + M + '.' + m + '.' + p + '-0' +
|
|
798
|
-
' <' + (+M + 1) + '.0.0-0';
|
|
799
|
-
}
|
|
788
|
+
} else if (M === '0')
|
|
789
|
+
ret = '=' + M + '.' + m + '.' + p + pr;
|
|
790
|
+
else if (pr)
|
|
791
|
+
ret = '>=' + M + '.' + m + '.' + p + pr +
|
|
792
|
+
' <' + (+M + 1) + '.0.0-0';
|
|
793
|
+
else
|
|
794
|
+
ret = '>=' + M + '.' + m + '.' + p + '-0' +
|
|
795
|
+
' <' + (+M + 1) + '.0.0-0';
|
|
800
796
|
|
|
801
797
|
debug('caret return', ret);
|
|
802
798
|
return ret;
|
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 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.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(!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={});
|
|
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.trim().replace(/^[=v]+/,""),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(i){if(i.charAt(0)!=="-")i="-"+i}else i="";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(r==="0")s="="+r+"."+t+"."+n+i;else if(i)s=">="+r+"."+t+"."+n+i+" <"+(+r+1)+".0.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/clean.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var tap = require('tap');
|
|
2
|
+
var test = tap.test;
|
|
3
|
+
var semver = require('../semver.js');
|
|
4
|
+
var clean = semver.clean;
|
|
5
|
+
|
|
6
|
+
test('\nclean tests', function(t) {
|
|
7
|
+
// [range, version]
|
|
8
|
+
// Version should be detectable despite extra characters
|
|
9
|
+
[
|
|
10
|
+
['1.2.3', '1.2.3'],
|
|
11
|
+
[' 1.2.3 ', '1.2.3'],
|
|
12
|
+
[' 1.2.3-4 ', '1.2.3-4'],
|
|
13
|
+
[' 1.2.3-pre ', '1.2.3-pre'],
|
|
14
|
+
[' =v1.2.3 ', '1.2.3'],
|
|
15
|
+
['v1.2.3', '1.2.3'],
|
|
16
|
+
[' v1.2.3 ', '1.2.3'],
|
|
17
|
+
['\t1.2.3', '1.2.3']
|
|
18
|
+
].forEach(function(tuple) {
|
|
19
|
+
var range = tuple[0];
|
|
20
|
+
var version = tuple[1];
|
|
21
|
+
var msg = 'clean(' + range + ') = ' + version;
|
|
22
|
+
t.equal(clean(range), version, msg);
|
|
23
|
+
});
|
|
24
|
+
t.end();
|
|
25
|
+
});
|
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');
|
|
@@ -327,10 +329,12 @@ test('\nincrement versions test', function(t) {
|
|
|
327
329
|
['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta'],
|
|
328
330
|
['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta'],
|
|
329
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'],
|
|
330
334
|
['1.2.0', 'preminor', '1.3.0-0'],
|
|
335
|
+
['1.2.0-1', 'preminor', '1.3.0-0'],
|
|
331
336
|
['1.2.0', 'premajor', '2.0.0-0'],
|
|
332
|
-
['1.2.0', '
|
|
333
|
-
['1.2.0', 'premajor', '2.0.0-0']
|
|
337
|
+
['1.2.0-1', 'premajor', '2.0.0-0']
|
|
334
338
|
|
|
335
339
|
|
|
336
340
|
].forEach(function(v) {
|
|
@@ -404,9 +408,9 @@ test('\nvalid range test', function(t) {
|
|
|
404
408
|
['^0.1', '>=0.1.0-0 <0.2.0-0'],
|
|
405
409
|
['^1.0', '>=1.0.0-0 <2.0.0-0'],
|
|
406
410
|
['^1.2', '>=1.2.0-0 <2.0.0-0'],
|
|
407
|
-
['^0.0.1', '
|
|
408
|
-
['^0.0.1-beta', '
|
|
409
|
-
['^0.1.2', '
|
|
411
|
+
['^0.0.1', '0.0.1'],
|
|
412
|
+
['^0.0.1-beta', '0.0.1-beta'],
|
|
413
|
+
['^0.1.2', '0.1.2'],
|
|
410
414
|
['^1.2.3', '>=1.2.3-0 <2.0.0-0'],
|
|
411
415
|
['^1.2.3-beta.4', '>=1.2.3-beta.4 <2.0.0-0'],
|
|
412
416
|
['<1', '<1.0.0-0'],
|
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];
|