{"_id":"sver-compat","_rev":"76526","name":"sver-compat","description":"Simple Semver and SemverRange classes","dist-tags":{"latest":"1.5.0"},"maintainers":[{"name":"phated","email":"blaine.bublitz@gmail.com"}],"time":{"modified":"2021-06-03T10:24:41.000Z","created":"2017-08-18T20:59:11.324Z","1.5.0":"2017-08-18T21:40:57.813Z","1.3.5":"2017-08-18T20:59:11.324Z"},"users":{},"author":{"name":"Guy Bedford"},"repository":{"type":"git","url":"git+ssh://git@github.com/phated/sver-compat.git"},"versions":{"1.5.0":{"name":"sver-compat","version":"1.5.0","description":"Simple Semver and SemverRange classes","main":"sver.js","scripts":{"test":"mocha -u tdd -R dot"},"repository":{"type":"git","url":"git+ssh://git@github.com/phated/sver-compat.git"},"keywords":["semver"],"author":{"name":"Guy Bedford"},"license":"MIT","bugs":{"url":"https://github.com/phated/sver-compat/issues"},"homepage":"https://github.com/phated/sver-compat#readme","devDependencies":{"mocha":"^3.4.2","semver":"^5.3.0"},"dependencies":{"es6-iterator":"^2.0.1","es6-symbol":"^3.1.1"},"gitHead":"4d50b542f86d67d8be40c80cd817301cea3f2322","_id":"sver-compat@1.5.0","_shasum":"3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8","_from":".","_npmVersion":"2.15.1","_nodeVersion":"0.10.48","_npmUser":{"name":"phated","email":"blaine.bublitz@gmail.com"},"maintainers":[{"name":"phated","email":"blaine.bublitz@gmail.com"}],"dist":{"shasum":"3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8","size":6612,"noattachment":false,"key":"/sver-compat/-/sver-compat-1.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sver-compat/download/sver-compat-1.5.0.tgz"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sver-compat-1.5.0.tgz_1503092457744_0.9544048304669559"},"directories":{},"publish_time":1503092457813,"_hasShrinkwrap":false,"_cnpm_publish_time":1503092457813},"1.3.5":{"name":"sver-compat","version":"1.3.5","description":"Simple Semver and SemverRange classes","main":"sver.js","scripts":{"test":"mocha -u tdd -R dot"},"repository":{"type":"git","url":"git+ssh://git@github.com/phated/sver-compat.git"},"keywords":["semver"],"author":{"name":"Guy Bedford"},"license":"MIT","bugs":{"url":"https://github.com/phated/sver-compat/issues"},"homepage":"https://github.com/phated/sver-compat#readme","devDependencies":{"mocha":"^3.4.2","semver":"^5.3.0"},"dependencies":{"es6-iterator":"^2.0.1","es6-symbol":"^3.1.1"},"gitHead":"455c4106fee2921307aeb98dc4a8810398f8a983","_id":"sver-compat@1.3.5","_shasum":"ed05bbf0de0533c76097e47be38acfb2c7332b34","_from":".","_npmVersion":"2.15.1","_nodeVersion":"0.10.48","_npmUser":{"name":"phated","email":"blaine.bublitz@gmail.com"},"maintainers":[{"name":"phated","email":"blaine.bublitz@gmail.com"}],"dist":{"shasum":"ed05bbf0de0533c76097e47be38acfb2c7332b34","size":6554,"noattachment":false,"key":"/sver-compat/-/sver-compat-1.3.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/sver-compat/download/sver-compat-1.3.5.tgz"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sver-compat-1.3.5.tgz_1503089951167_0.4153023646213114"},"directories":{},"publish_time":1503089951324,"_cnpm_publish_time":1503089951324,"_hasShrinkwrap":false}},"readme":"# sver-compat\n\n[![Build Status](https://travis-ci.org/phated/sver-compat.svg?branch=master)](https://travis-ci.org/phated/sver-compat)\n\nFork of @guybedford's [Sver](https://github.com/guybedford/sver) library. Adds compatibility for node <6.\n\n```\nnpm install sver-compat\n```\n\n```js\nvar Semver = require('sver-compat').Semver;\nvar SemverRange = require('sver-compat').SemverRange;\n\n// Static usage:\nSemverRange.match('^1.2.3', '1.2.4'); // true\n\n// Class usage:\nvar range = new SemverRange('^1.2.3');\nvar version = new Semver('1.2.4');\nversion.matches(range);               // true\nrange.has(version);                   // true\n```\n\n### Range support\n\nRestricts version ranges to the simplified cases:\n* `*`: Wildcard range\n* `MAJOR`: Match exact major\n* `MAJOR.MINOR` Match exact major and minor\n* `MAJOR.MINOR.PATCH[-PRE]` Match exact semver\n* `~MAJOR.MINOR.PATCH[-PRE]`: Match patch bumps\n* `^MAJOR.MINOR.PATCH[-PRE]`: Match minor and patch bumps\n\nInvalid ranges will fallback to being detected as exact string matches.\n\n### Prerelease Matching\n\nBy default, as per convention, ranges like `^1.2.3-alpha` only match prerelease ranges on the same patch (`1.2.3-alpha.4`), but\nnot prerelease ranges from further patches (`1.3.4-alpha`).\n\nTo alter this matching, a third boolean argument can be provided to the match function to support these unstable matches:\n\n```js\nSemverRange.match('^1.2.3', '1.5.6-beta');       // false\nSemverRange.match('^1.2.3', '1.5.6-beta', true); // true\n```\n\n### Best Version Match\n\n```js\nvar versions = ['1.2.3', '1.3.4-alpha', '1.3.4-alpha.1', '1.3.4-beta'];\nvar range = new SemverRange('*');\n\nvar bestStableMatch = range.bestMatch(versions);\nbestStableMatch.toString();                     // 1.2.3\n\nvar bestUnstableMatch = range.bestMatch(versions, true);\nbestUnstableMatch.toString();                   // 1.3.4-beta\n```\n\n### Version and Range Sorting\n\n```js\nvar versions = ['2.4.5', '2.3.4-alpha', '1.2.3', '2.3.4-alpha.2'];\nvar ranges = ['^1.2.3', '1.2', '2.3.4'];\n\nversions.sort(Semver.compare);   // [1.2.3, 2.3.4-alpha, 2.3.4-alpha.2, 2.4.5]\nranges.sort(SemverRange.compare) // [1.2, ^1.2.3, 2.3.4]\n```\n\n### Conversion from Node Semver Ranges\n\nA utility function is included to convert Node Semver ranges into Semver ranges.\n\nThis requires `semver` to be installed in the application running this process.\n\n_Note this conversion is lossy by definition._\n\n```js\nvar convertRange = require('sver-compat/convert-range');\n\nconvertRange('>=2.3.4 <3.0.0').toString(); // ^2.3.4\nconvertRange('1 || 2 || 3').toString();    // ^3.0.0\n```\n\n### Semver and Semver Range Validation\n\nWhen a version string fails semver validation it falls back to being treated as a tag, still as a `Semver` instance.\n\nFor example:\n\n```js\nvar version = new Semver('x.y.z');\nversion.tag === 'x.y.z';             // true\n\nversion = new Semver('^1.2.3');\nversion.major === undefined;         // true\nversion.tag === '^1.2.3';            // true\n```\n\nFor validation, rather use `Semver.isValid` and `SemverRange.isValid`:\n\n```js\nSemver.isValid('x.y.z');             // false\nSemver.isValid('^1.2.3');            // false\nSemverRange.isValid('^1.2.3');       // true\n```\n\n## API\n\n### Semver\n\nStatic methods:\n\n* `Semver.isValid(version: string): boolean`: Whether the given string is a valid semver.\n* `Semver.compare(v1: Semver|string, v2: Semver|string): number`: 1 if v1 > v2, -1 if v1 < v2, 0 if equal.\n\nFor a given Semver instance `version = new Semver('X.Y.Z')`,\n\n* `version.major`: The major version number.\n* `version.minor`: The minor version number.\n* `version.patch`: The patch version number.\n* `version.pre`: The prerelease identifer, as an array of strings (`.`-separated).\n* `version.build`: The build identifier, as a string.\n* `version.tag`: If not a valid semver, the full tag string.\n* `version.gt(otherVersion: Semver|string): bool`: Whether this version is greater than the other version.\n* `version.lt(otherVersion: Semver|string): bool`: Whether this version is less than the other version.\n* `version.eq(otherVerion: Semver|string): bool`: Whether this version equals the other version.\n* `version.matches(range: SemverRange|string, unstable?: bool): bool`: Whether this version matches the given version range.\n* `version.toString(): string`: Convert the version back to a string.\n\n### SemverRange\n\nStatic methods:\n\n* `SemverRange.match(range: SemverRange|string, version: Semver|string, unstable = false): bool`: Whether the version matches the range.\n* `SemverRange.isValid(range: string): bool`: Whether the given range string is a valid semver range (in this simplified grammar).\n* `SemverRange.compare(r1: SemverRange|string, r2: SemverRange|string): number`: 1 if r1 > r2, -1 if r1 < r2, 0 if equal.\n\nFor a given SemverRange instance `range = new SemverRange('^X.Y.Z')`,\n\n* `range.type: string`: Returns `'wildcard'`, `'major'`, `'stable'` or `'exact'`.\n* `range.version: Smever`: Returns the `Semver` instance corresponding to the range.\n* `range.isExact: string`: Returns true if the range is an exact version only.\n* `range.isStable: string`: Returns true if the range is a stable version range.\n* `range.isMajor: string`: Returns true if the range is a major version range.\n* `range.isWildcard: string`: Returns true if the range is the wildcard version range.\n* `range.gt(otherRange: SemverRange|string): bool`: Whether the range is greater than the other range.\n* `range.lt(otherRange: SemverRange|string): bool`: Whether the range is less than the other range.\n* `range.eq(otherRange: SemverRange|string): bool`: Whether the range is exactly the same as the other range.\n* `range.has(version: Semver|string, unstable = false): bool`: Whether the range includes the given version.\n* `range.contains(otherRange: SemverRange|string): bool`: Whether the range fully contains the other range.\n* `range.intersect(otherRange: SemverRange|string): SemverRange|undefined`: The intersection range, if any.\n* `range.bestMatch(versions: (Semver|string)[], unstable = false): Semver|undefined`: The intersection range, if any.\n* `range.toString()`: Convert the range back to a string.\n\n## License\n\nMIT\n","_attachments":{},"homepage":"https://github.com/phated/sver-compat#readme","bugs":{"url":"https://github.com/phated/sver-compat/issues"},"license":"MIT"}