Comparing version 1.0.2 to 1.0.3
{ "name" : "semver" | ||
, "version" : "1.0.2" | ||
, "version" : "1.0.3" | ||
, "description" : "The semantic version parser used by npm." | ||
@@ -4,0 +4,0 @@ , "main" : "semver.js" |
@@ -11,4 +11,5 @@ | ||
+ "([a-zA-Z-][a-zA-Z0-9-\.:]*)?" // tag | ||
, exprComparator = "^((<|>)?=?)("+semver+")$|^$" | ||
, xRange = "((?:<|>)?=?)([0-9]+|x|X)(?:\\.([0-9]+|x|X)(?:\\.([0-9]+|x|X))?)?" | ||
, exprComparator = "^((<|>)?=?)\s*("+semver+")$|^$" | ||
, xRangePlain = "([0-9]+|x|X)(?:\\.([0-9]+|x|X)(?:\\.([0-9]+|x|X))?)?" | ||
, xRange = "((?:<|>)?=?)?\\s*" + xRangePlain | ||
, exprSpermy = "(?:~>?)"+xRange | ||
@@ -59,17 +60,23 @@ , expressions = exports.expressions = | ||
, starReplace = "" | ||
, compTrimExpression = new RegExp("((<|>)?=?)\\s*("+semver+")", "g") | ||
, compTrimExpression = new RegExp("((<|>)?=?)\\s*(" | ||
+semver+"|"+xRangePlain+")", "g") | ||
, compTrimReplace = "$1$3" | ||
function toComparators (range) { | ||
return (range || "").trim() | ||
var ret = (range || "").trim() | ||
.replace(expressions.parseRange, exports.rangeReplace) | ||
.replace(compTrimExpression, compTrimReplace) | ||
.split(/\s+/) | ||
.map(replaceSpermies) | ||
.map(replaceXRanges) | ||
.join(" ") | ||
.replace(compTrimExpression, compTrimReplace) | ||
.replace(starExpression, starReplace) | ||
.split("||") | ||
.map(function (orchunk) { | ||
return orchunk | ||
.split(" ") | ||
.map(replaceXRanges) | ||
.map(replaceSpermies) | ||
.map(replaceStars) | ||
.join(" ").trim() | ||
}) | ||
.map(function (orchunk) { | ||
return orchunk | ||
.trim() | ||
@@ -80,4 +87,10 @@ .split(/\s+/) | ||
.filter(function (c) { return c.length }) | ||
//console.error("comparators", range, ret) | ||
return ret | ||
} | ||
function replaceStars (stars) { | ||
return stars.replace(starExpression, starReplace) | ||
} | ||
// "2.x","2.x.x" --> ">=2.0.0 <2.1" | ||
@@ -96,2 +109,3 @@ // "2.3.x" --> ">=2.3.0 <2.4.0" | ||
|| !p || p.toLowerCase() === "x" | ||
, ret = v | ||
@@ -103,15 +117,12 @@ if (gtlt && anyX) { | ||
;(!p || p.toLowerCase() === "x") && (p = 0) | ||
return gtlt + M+"."+m+"."+p | ||
ret = gtlt + M+"."+m+"."+p | ||
} else if (!M || M.toLowerCase() === "x") { | ||
ret = "*" // allow any | ||
} else if (!m || m.toLowerCase() === "x") { | ||
ret = ">="+M+".0.0a <"+(+M+1)+".0.0" | ||
} else if (!p || p.toLowerCase() === "x") { | ||
ret = ">="+M+"."+m+".0a <"+M+"."+(+m+1)+".0" | ||
} | ||
if (!M || M.toLowerCase() === "x") { | ||
return "*" // allow any | ||
} | ||
if (!m || m.toLowerCase() === "x") { | ||
return ">="+M+".0.0a <"+(+M+1)+".0.0" | ||
} | ||
if (!p || p.toLowerCase() === "x") { | ||
return ">="+M+"."+m+".0a <"+M+"."+(+m+1)+".0" | ||
} | ||
return v // impossible? | ||
//console.error("parseXRange", [].slice.call(arguments), ret) | ||
return ret | ||
}) | ||
@@ -293,6 +304,11 @@ } | ||
, ["~>1", "1.2.3"] | ||
, ["~> 1", "1.2.3"] | ||
, ["~1.0", "1.0.2"] // >=1.0.0 <1.1.0 | ||
, ["~ 1.0", "1.0.2"] | ||
, ["<1", "1.0.0beta"] | ||
, ["< 1", "1.0.0beta"] | ||
, [">=1", "1.0.0"] | ||
, [">= 1", "1.0.0"] | ||
, ["<1.2", "1.1.1"] | ||
, ["< 1.2", "1.1.1"] | ||
, ["1", "1.0.0beta"] | ||
@@ -299,0 +315,0 @@ ].forEach(function (v) { |
Sorry, the diff of this file is not supported yet
15239
329