JezK
Edit File: semver.js.map
{"version":3,"file":"semver.js","names":["satisfiesWithPrereleases","version","range","loose","semverRange","semver","Range","err","semverVersion","SemVer","set","some","comparatorSet","map","comparator","operator","value","prerelease","length","inc","comparatorString","Comparator","test","PRE_RELEASES","major","minor","patch","diffWithUnstable","version1","version2","eq","v1","parse","v2","isPreRelease","preMajor","preMinor","diff"],"sourceRoot":"../../src","sources":["util/semver.js"],"sourcesContent":["/* @flow */\n\nimport semver, {type Release} from 'semver';\n\n/**\n * Returns whether the given semver version satisfies the given range. Notably this supports\n * prerelease versions so that \"2.0.0-rc.0\" satisfies the range \">=1.0.0\", for example.\n */\n\nexport function satisfiesWithPrereleases(version: string, range: string, loose?: boolean = false): boolean {\n let semverRange;\n try {\n // $FlowFixMe: Add a definition for the Range class\n semverRange = new semver.Range(range, loose);\n } catch (err) {\n return false;\n }\n\n if (!version) {\n return false;\n }\n let semverVersion;\n try {\n semverVersion = new semver.SemVer(version, semverRange.loose);\n } catch (err) {\n return false;\n }\n\n // A range has multiple sets of comparators. A version must satisfy all comparators in a set\n // and at least one set to satisfy the range.\n return semverRange.set.some(comparatorSet => {\n // node-semver converts ~ and ^ ranges into pairs of >= and < ranges but the upper bounds don't\n // properly exclude prerelease versions. For example, \"^1.0.0\" is converted to \">=1.0.0 <2.0.0\",\n // which includes \"2.0.0-pre\" since prerelease versions are lower than their non-prerelease\n // counterparts. As a practical workaround we make upper-bound ranges exclude prereleases and\n // convert \"<2.0.0\" to \"<2.0.0-0\", for example.\n comparatorSet = comparatorSet.map(comparator => {\n if (comparator.operator !== '<' || !comparator.value || comparator.semver.prerelease.length) {\n return comparator;\n }\n\n // \"0\" is the lowest prerelease version\n comparator.semver.inc('pre', 0);\n\n const comparatorString = comparator.operator + comparator.semver.version;\n // $FlowFixMe: Add a definition for the Comparator class\n return new semver.Comparator(comparatorString, comparator.loose);\n });\n\n return !comparatorSet.some(comparator => !comparator.test(semverVersion));\n });\n}\n\nconst PRE_RELEASES = {\n major: 'premajor',\n minor: 'preminor',\n patch: 'prepatch',\n};\n\n/**\n * Returns the difference between two versions as a semantic string representation.\n * Similar to the `diff` method in node-semver, but it also accounts for unstable versions,\n * like 0.x.x or 0.0.x.\n */\n\nexport function diffWithUnstable(version1: string, version2: string): Release | null {\n if (semver.eq(version1, version2) === false) {\n const v1 = semver.parse(version1);\n const v2 = semver.parse(version2);\n\n if (v1 != null && v2 != null) {\n const isPreRelease = v1.prerelease.length > 0 || v2.prerelease.length > 0;\n const preMajor = v1.major === 0 || v2.major === 0;\n const preMinor = preMajor && (v1.minor === 0 || v2.minor === 0);\n\n let diff = null;\n\n if (v1.major !== v2.major) {\n diff = 'major';\n } else if (v1.minor !== v2.minor) {\n if (preMajor) {\n // If the major version number is zero (0.x.x), treat a change\n // of the minor version number as a major change.\n diff = 'major';\n } else {\n diff = 'minor';\n }\n } else if (v1.patch !== v2.patch) {\n if (preMinor) {\n // If the major & minor version numbers are zero (0.0.x), treat a change\n // of the patch version number as a major change.\n diff = 'major';\n } else if (preMajor) {\n // If the major version number is zero (0.x.x), treat a change\n // of the patch version number as a minor change.\n diff = 'minor';\n } else {\n diff = 'patch';\n }\n }\n\n if (isPreRelease) {\n if (diff != null) {\n diff = PRE_RELEASES[diff];\n } else {\n diff = 'prerelease';\n }\n }\n\n return diff;\n }\n }\n\n return null;\n}\n"],"mappings":"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"}