semver
Advanced tools
Comparing version 4.1.1 to 4.2.0
{ | ||
"name": "semver", | ||
"version": "4.1.1", | ||
"version": "4.2.0", | ||
"description": "The semantic version parser used by npm.", | ||
@@ -5,0 +5,0 @@ "main": "semver.js", |
@@ -270,2 +270,5 @@ semver(1) -- The semantic versioner for npm | ||
in descending order when passed to `Array.sort()`. | ||
* `diff(v1, v2)`: Returns difference between two versions by the release type | ||
(`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), | ||
or null if the versions are the same. | ||
@@ -272,0 +275,0 @@ |
@@ -457,2 +457,29 @@ ;(function(exports) { | ||
exports.diff = diff; | ||
function diff(version1, version2) { | ||
if (eq(version1, version2)) { | ||
return null; | ||
} else { | ||
var v1 = parse(version1); | ||
var v2 = parse(version2); | ||
if (v1.prerelease.length || v2.prerelease.length) { | ||
for (var key in v1) { | ||
if (key === 'major' || key === 'minor' || key === 'patch') { | ||
if (v1[key] !== v2[key]) { | ||
return 'pre'+key; | ||
} | ||
} | ||
} | ||
return 'prerelease'; | ||
} | ||
for (var key in v1) { | ||
if (key === 'major' || key === 'minor' || key === 'patch') { | ||
if (v1[key] !== v2[key]) { | ||
return key; | ||
} | ||
} | ||
} | ||
} | ||
} | ||
exports.compareIdentifiers = compareIdentifiers; | ||
@@ -459,0 +486,0 @@ |
@@ -467,2 +467,29 @@ // export the class if we are in a Node-like system. | ||
exports.diff = diff; | ||
function diff(version1, version2) { | ||
if (eq(version1, version2)) { | ||
return null; | ||
} else { | ||
var v1 = parse(version1); | ||
var v2 = parse(version2); | ||
if (v1.prerelease.length || v2.prerelease.length) { | ||
for (var key in v1) { | ||
if (key === 'major' || key === 'minor' || key === 'patch') { | ||
if (v1[key] !== v2[key]) { | ||
return 'pre'+key; | ||
} | ||
} | ||
} | ||
return 'prerelease'; | ||
} | ||
for (var key in v1) { | ||
if (key === 'major' || key === 'minor' || key === 'patch') { | ||
if (v1[key] !== v2[key]) { | ||
return key; | ||
} | ||
} | ||
} | ||
} | ||
} | ||
exports.compareIdentifiers = compareIdentifiers; | ||
@@ -469,0 +496,0 @@ |
@@ -16,2 +16,3 @@ 'use strict'; | ||
var inc = semver.inc; | ||
var diff = semver.diff; | ||
var replaceStars = semver.replaceStars; | ||
@@ -415,2 +416,30 @@ var toComparators = semver.toComparators; | ||
test('\ndiff versions test', function(t) { | ||
// [version1, version2, result] | ||
// diff(version1, version2) -> result | ||
[['1.2.3', '0.2.3', 'major'], | ||
['1.4.5', '0.2.3', 'major'], | ||
['1.2.3', '2.0.0-pre', 'premajor'], | ||
['1.2.3', '1.3.3', 'minor'], | ||
['1.0.1', '1.1.0-pre', 'preminor'], | ||
['1.2.3', '1.2.4', 'patch'], | ||
['1.2.3', '1.2.4-pre', 'prepatch'], | ||
['0.0.1', '0.0.1-pre', 'prerelease'], | ||
['0.0.1', '0.0.1-pre-2', 'prerelease'], | ||
['1.1.0', '1.1.0-pre', 'prerelease'], | ||
['1.1.0-pre-1', '1.1.0-pre-2', 'prerelease'], | ||
['1.0.0', '1.0.0', null] | ||
].forEach(function(v) { | ||
var version1 = v[0]; | ||
var version2 = v[1]; | ||
var wanted = v[2]; | ||
var found = diff(version1, version2); | ||
var cmd = 'diff(' + version1 + ', ' + version2 + ')'; | ||
t.equal(found, wanted, cmd + ' === ' + wanted); | ||
}); | ||
t.end(); | ||
}); | ||
test('\nvalid range test', function(t) { | ||
@@ -417,0 +446,0 @@ // [range, result] |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
139048
3009
301
0