@vltpkg/semver 1.0.0-rc.18 → 1.0.0-rc.22

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"comparator.js","sourceRoot":"","sources":["../src/comparator.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: it might be faster to not have Version objects in the\n// comparator tuples, and instead just keep the parsed number arrays?\nimport { syntaxError } from '@vltpkg/error-cause'\nimport { fastSplit } from '@vltpkg/fast-split'\nimport { Version } from './version.ts'\n\n/** all comparators are expressed in terms of these operators */\nexport type SimpleOperator = '' | '<' | '<=' | '>' | '>='\n/** operators that are expanded to simpler forms */\nexport type ComplexOperator = '^' | '~' | '~>'\n\nconst isOperator = (\n o?: string,\n): o is ComplexOperator | SimpleOperator =>\n !!o &&\n (o === '>' ||\n o === '<' ||\n o === '>=' ||\n o === '<=' ||\n o === '' ||\n o === '~' ||\n o === '^' ||\n o === '~>')\n\n/** comparator expressed as a [operator,version] tuple */\nexport type OVTuple = [SimpleOperator, Version]\n\nconst preJunk = new Set('=v \\t')\n\nconst invalidComp = (c: string, message: string): SyntaxError =>\n syntaxError(\n `invalid comparator: '${c}' ${message}`,\n { found: c },\n Comparator,\n )\n\nconst assertNumber = (value: string, c: string, field: string) => {\n const n = Number(value)\n if (n !== n) {\n throw invalidComp(\n c,\n `${field} must be numeric or 'x', got: '${value}'`,\n )\n }\n return n\n}\n\nconst assertVersion = (v: string, comp: string) => {\n if (!v) {\n throw invalidComp(comp, 'no value provided for operator')\n }\n}\n\nconst assertMissing = (\n value: string | undefined,\n c: string,\n field: string,\n) => {\n if (value && !isX(value)) {\n throw invalidComp(\n c,\n `cannot omit '${field}' and include subsequent fields`,\n )\n }\n}\n\nconst MAJOR = 0\nconst MINOR = 1\nconst PATCH = 2\n\nconst isX = (c?: string) => !c || c === 'X' || c === 'x' || c === '*'\n\n/**\n * The result of parsing a version value that might be either a full\n * version like `1.2.3` or an X-Range like `1.2.x`\n */\nexport type ParsedXRange =\n | ParsedXMajor\n | ParsedXMinor\n | ParsedXPatch\n | ParsedXVersion\n/**\n * a {@link ParsedXRange} that is just a `*`\n */\nexport type ParsedXMajor = []\n/**\n * a {@link ParsedXRange} that is just a major version\n */\nexport type ParsedXMinor = [number]\n/**\n * a {@link ParsedXRange} that is just a major and minor version\n */\nexport type ParsedXPatch = [number, number]\n/**\n * a {@link ParsedXRange} that is a full version\n */\nexport type ParsedXVersion = [\n M: number,\n m: number,\n p: number,\n pr?: string | undefined,\n b?: string | undefined,\n]\n\nconst isFullVersion = (\n parsed: ParsedXRange,\n): parsed is ParsedXVersion => undefined !== parsed[PATCH]\nconst isXPatch = (parsed: ParsedXRange): parsed is ParsedXPatch =>\n undefined !== parsed[MINOR] && undefined === parsed[PATCH]\nconst isXMinor = (parsed: ParsedXRange): parsed is ParsedXMinor =>\n undefined !== parsed[MAJOR] && undefined === parsed[MINOR]\nconst isXMajor = (parsed: ParsedXRange): parsed is ParsedXMajor =>\n undefined === parsed[MAJOR]\n\n/**\n * Class used to parse the `||` separated portions\n * of a range, and evaluate versions against it.\n *\n * This does most of the heavy lifting of range testing, and provides\n * little affordance for improperly formatted strings. It should be\n * considered an internal class, and usually not accessed directly.\n */\nexport class Comparator {\n /**\n * does this range include prereleases, even when they do not\n * match the tuple in the comparator?\n */\n includePrerelease: boolean\n /** raw string used to create this comparator */\n raw: string\n /** tokens extracted from the raw string input */\n tokens: string[]\n /**\n * Either the `any` comparator, the `none` comparator, or an operator\n * and a {@link ParsedXRange}\n */\n tuples: (Comparator | OVTuple)[] = []\n /** true if this comparator can not match anything */\n isNone = false\n /**\n * true if this comparator is a `'*'` type of range.\n *\n * Note that it still will not match versions with a prerelease value,\n * unless the tuple in the version matches the tuple provided to the\n * comparator, and the comparator version also has a prerelease value,\n * unless `includePrerelease` is set.\n */\n isAny = false\n\n /** the canonical strict simplified parsed form of this constructor */\n toString() {\n return (\n this.isNone ? '<0.0.0-0'\n : this.isAny ? '*'\n : /* c8 ignore next */\n this.tuples.map(c => (isAny(c) ? '*' : c.join(''))).join(' ')\n )\n }\n\n constructor(comp: string, includePrerelease = false) {\n this.includePrerelease = includePrerelease\n comp = comp.trim()\n this.raw = comp\n let hyphen = false as boolean\n const rawComps = fastSplit(comp, ' ', -1, (part, parts, i) => {\n if (part === '-') {\n if (hyphen) {\n throw invalidComp(\n comp,\n 'multiple hyphen ranges not allowed',\n )\n }\n if (parts.length !== 1 || i === -1) {\n throw invalidComp(\n comp,\n 'hyphen must be between two versions',\n )\n }\n hyphen = true\n } else if (hyphen && parts.length !== 2) {\n throw invalidComp(comp, 'hyphen range must be alone')\n }\n })\n\n // remove excess spaces, `> 1 2` => `>1 2`\n const comps: string[] = []\n let followingOperator = false\n\n let l = 0\n for (const c of rawComps) {\n if (c === '') continue\n if (!followingOperator) {\n followingOperator = isOperator(c)\n comps.push(c)\n l++\n continue\n }\n // we know this is not undefined since followingOperator guards that\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n comps[l - 1]! += c\n followingOperator = false\n }\n\n // TS mistakenly thinks hyphen is always false here\n if (hyphen) {\n const [min, _, max] = comps\n /* c8 ignore start - defense in depth for TS, already guaranteed */\n if (!min || !max) {\n throw invalidComp(comp, 'hyphen must be between two versions')\n }\n /* c8 ignore stop */\n this.#parseHyphenRange(min, max)\n } else if (\n !comps.length ||\n (comps.length === 1 && isX(comps[0]))\n ) {\n this.tuples.push(this.#getComparatorAny())\n } else {\n for (const c of comps) {\n this.#parse(c)\n if (this.isNone) break\n }\n }\n this.tokens = comps\n this.isAny = true\n for (const c of this.tuples) {\n if (Array.isArray(c) || !c.isAny) {\n this.isAny = false\n break\n }\n }\n }\n\n // inclusive min\n #xInclusiveMin(raw: string): Comparator | OVTuple {\n const z = this.includePrerelease ? '0' : undefined\n const [M, m = 0, p = 0, pr = z, build] = this.#parseX(raw)\n return M === undefined ?\n this.#getComparatorAny()\n : ['>=', new Version(raw, M, m, p, pr, build)]\n }\n\n // exclusive min\n #xExclusiveMin(raw: string): Comparator | OVTuple {\n const parsed = this.#parseX(raw)\n if (isFullVersion(parsed)) {\n return ['>', new Version(raw, ...parsed)]\n }\n const z = this.includePrerelease ? '0' : undefined\n if (isXPatch(parsed)) {\n // >1.2 => >=1.3.0\n return [\n '>=',\n new Version(\n raw,\n parsed[MAJOR],\n parsed[MINOR] + 1,\n 0,\n z,\n undefined,\n ),\n ]\n }\n if (isXMinor(parsed)) {\n // >1 => >=2.0.0\n return [\n '>=',\n new Version(raw, parsed[MAJOR] + 1, 0, 0, z, undefined),\n ]\n }\n this.isNone = true\n this.tuples.length = 0\n return comparatorNone\n }\n\n #xInclusiveMax(raw: string): Comparator | OVTuple {\n const parsed = this.#parseX(raw)\n return (\n isFullVersion(parsed) ? ['<=', new Version(raw, ...parsed)]\n : isXPatch(parsed) ?\n [\n '<',\n new Version(\n raw,\n parsed[MAJOR],\n parsed[MINOR] + 1,\n 0,\n '0',\n undefined,\n ),\n ]\n : isXMinor(parsed) ?\n [\n '<',\n new Version(raw, parsed[MAJOR] + 1, 0, 0, '0', undefined),\n ]\n : this.#getComparatorAny()\n )\n }\n\n #xExclusiveMax(raw: string): Comparator | OVTuple {\n const z = this.includePrerelease ? '0' : undefined\n const [M = 0, m = 0, p = 0, pr = z, build] = this.#parseX(raw)\n if (M === 0 && m === 0 && p === 0 && pr === '0') {\n this.isNone = true\n this.tuples.length = 0\n return comparatorNone\n }\n return ['<', new Version(raw, M, m, p, pr, build)]\n }\n\n #validXM(raw: string, m?: string, p?: string): ParsedXMajor {\n assertMissing(m, raw, 'major')\n assertMissing(p, raw, 'major')\n if (m === '' || p === '') {\n throw invalidComp(raw, `(Did you mean '*'?)`)\n }\n return []\n }\n #validXm(\n raw: string,\n M: string,\n m?: string,\n p?: string,\n ): ParsedXMinor {\n assertMissing(p, raw, 'major')\n if (m === '' || p === '') {\n throw invalidComp(raw, `(Did you mean '${M}'?)`)\n }\n return [assertNumber(M, raw, 'major')]\n }\n #validXp(\n raw: string,\n M: string,\n m: string,\n p?: string,\n ): ParsedXPatch {\n if (p === '') {\n throw invalidComp(raw, `(Did you mean '${M}.${m}'?)`)\n }\n return [\n assertNumber(M, raw, 'major'),\n assertNumber(m, raw, 'minor'),\n ]\n }\n #validTuple(\n raw: string,\n M: string,\n m: string,\n p: string,\n ): ParsedXVersion {\n return [\n assertNumber(M, raw, 'major'),\n assertNumber(m, raw, 'minor'),\n assertNumber(p, raw, 'patch'),\n ]\n }\n #validXbuild(\n raw: string,\n M: string,\n m: string,\n p: string,\n pl: number,\n ): ParsedXVersion {\n // build, no prerelease\n const patch = p.substring(0, pl)\n const build = p.substring(pl + 1)\n if (!patch) {\n throw invalidComp(raw, 'cannot specify build without patch')\n }\n if (!build) {\n throw invalidComp(raw, `encountered '+', but no build value`)\n }\n return [\n assertNumber(M, raw, 'major'),\n assertNumber(m, raw, 'minor'),\n assertNumber(patch, raw, 'patch'),\n undefined,\n build,\n ]\n }\n\n #validXpr(\n raw: string,\n M: string,\n m: string,\n p: string,\n hy: number,\n ): ParsedXVersion {\n {\n // prerelease, no build\n const patch = p.substring(0, hy)\n const pr = p.substring(hy + 1)\n if (!patch) {\n throw invalidComp(\n raw,\n 'cannot specify prerelease without patch',\n )\n }\n if (!pr) {\n throw invalidComp(\n raw,\n `encountered '-', but no prerelease value`,\n )\n }\n return [\n assertNumber(M, raw, 'major'),\n assertNumber(m, raw, 'minor'),\n assertNumber(patch, raw, 'patch'),\n pr,\n undefined,\n ]\n }\n }\n #validXprbuild(\n raw: string,\n M: string,\n m: string,\n p: string,\n hy: number,\n pl: number,\n ): ParsedXVersion {\n // both prerelease and build\n const patch = p.substring(0, hy)\n const pr = p.substring(hy + 1, pl)\n const build = p.substring(pl + 1)\n if (!patch) {\n throw invalidComp(\n raw,\n 'cannot specify prerelease without patch',\n )\n }\n if (!pr) {\n throw invalidComp(\n raw,\n `encountered '-', but no prerelease value`,\n )\n }\n if (!build) {\n throw invalidComp(raw, `encountered '+', but no build value`)\n }\n return [\n assertNumber(M, raw, 'major'),\n assertNumber(m, raw, 'minor'),\n assertNumber(patch, raw, 'patch'),\n pr,\n build,\n ]\n }\n\n // pull the relevant values out of an X-range or version\n // return the fields for creating a Version object.\n // only call once operator is stripped off\n #parseX(raw: string): ParsedXRange {\n let [M, m, p] = fastSplit(raw, '.', 3)\n let prune = 0\n while (M && preJunk.has(M.charAt(prune))) prune++\n if (M !== undefined && prune !== 0) M = M.substring(prune)\n // the `|| !M` is so TS knows we've handled undefined\n if (!M || isX(M)) return this.#validXM(raw, m, p)\n if (!m || isX(m)) return this.#validXm(raw, M, m, p)\n if (!p || isX(p)) return this.#validXp(raw, M, m, p)\n\n const hy = p.indexOf('-')\n const pl = p.indexOf('+')\n if (pl === -1 && hy === -1) return this.#validTuple(raw, M, m, p)\n if (pl === -1) return this.#validXpr(raw, M, m, p, hy)\n if (hy === -1) return this.#validXbuild(raw, M, m, p, pl)\n return this.#validXprbuild(raw, M, m, p, hy, pl)\n }\n\n #parseHyphenRange(min: string, max: string) {\n const minv = this.#xInclusiveMin(min)\n const maxv = this.#xInclusiveMax(max)\n const minAny = isAny(minv)\n const maxAny = isAny(maxv)\n if (minAny && maxAny) this.tuples.push(this.#getComparatorAny())\n else if (minAny) this.tuples.push(maxv)\n else if (maxAny) this.tuples.push(minv)\n else this.tuples.push(minv, maxv)\n }\n\n #parse(comp: string) {\n const first = comp.charAt(0)\n const first2 = comp.substring(0, 2)\n const v1 = comp.substring(1)\n const v2 = comp.substring(2)\n switch (first2) {\n case '~>':\n assertVersion(v2, comp)\n return this.#parseTilde(v2)\n case '>=':\n assertVersion(v2, comp)\n return this.tuples.push(this.#xInclusiveMin(v2))\n case '<=':\n assertVersion(v2, comp)\n return this.tuples.push(this.#xInclusiveMax(v2))\n }\n switch (first) {\n case '~':\n assertVersion(v1, comp)\n return this.#parseTilde(v1)\n case '^':\n assertVersion(v1, comp)\n return this.#parseCaret(v1)\n case '>':\n assertVersion(v1, comp)\n return this.tuples.push(this.#xExclusiveMin(v1))\n case '<':\n assertVersion(v1, comp)\n return this.tuples.push(this.#xExclusiveMax(v1))\n }\n return this.#parseEq(comp)\n }\n\n #parseTilde(comp: string) {\n const parsed = this.#parseX(comp)\n if (isXMajor(parsed)) {\n this.tuples.push(this.#getComparatorAny())\n return\n }\n const z = this.includePrerelease ? '0' : undefined\n if (isXMinor(parsed)) {\n const [M] = parsed\n this.tuples.push(\n ['>=', new Version(comp, M, 0, 0, z, undefined)],\n ['<', new Version(comp, M + 1, 0, 0, '0', undefined)],\n )\n return\n }\n if (isXPatch(parsed)) {\n const [M, m] = parsed\n const z = this.includePrerelease ? '0' : undefined\n this.tuples.push(\n ['>=', new Version(comp, M, m, 0, z, undefined)],\n ['<', new Version(comp, M, m + 1, 0, '0', undefined)],\n )\n return\n }\n const [M, m, p, pr = z, build] = parsed\n this.tuples.push(\n ['>=', new Version(comp, M, m, p, pr, build)],\n ['<', new Version(comp, M, m + 1, 0, '0', build)],\n )\n }\n\n #parseCaret(comp: string) {\n const min = this.#xInclusiveMin(comp)\n if (isAny(min)) {\n this.tuples.push(min)\n return\n }\n const minv = min[1]\n if (minv.major !== 0) {\n this.tuples.push(min, [\n '<',\n new Version(comp, minv.major + 1, 0, 0, '0', undefined),\n ])\n } else if (minv.minor !== 0) {\n this.tuples.push(min, [\n '<',\n new Version(\n comp,\n minv.major,\n minv.minor + 1,\n 0,\n '0',\n undefined,\n ),\n ])\n } else if (!minv.prerelease?.length) {\n this.tuples.push(['', minv])\n } else {\n this.tuples.push(min, [\n '<',\n new Version(\n comp,\n minv.major,\n minv.minor,\n minv.patch + 1,\n '0',\n undefined,\n ),\n ])\n }\n }\n\n #parseEq(comp: string) {\n const parsed = this.#parseX(comp)\n const z = this.includePrerelease ? '0' : undefined\n if (isFullVersion(parsed)) {\n this.tuples.push(['', new Version(comp, ...parsed)])\n } else if (isXMajor(parsed)) {\n this.tuples.push(this.#getComparatorAny())\n } else if (isXMinor(parsed)) {\n this.tuples.push([\n '>=',\n new Version(comp, parsed[MAJOR], 0, 0, z, undefined),\n ])\n this.tuples.push([\n '<',\n new Version(comp, parsed[MAJOR] + 1, 0, 0, '0', undefined),\n ])\n } else if (isXPatch(parsed)) {\n this.tuples.push(\n [\n '>=',\n new Version(\n comp,\n parsed[MAJOR],\n parsed[MINOR],\n 0,\n z,\n undefined,\n ),\n ],\n [\n '<',\n new Version(\n comp,\n parsed[MAJOR],\n parsed[MINOR] + 1,\n 0,\n '0',\n undefined,\n ),\n ],\n )\n }\n }\n\n /** return true if the version is a match for this comparator */\n test(v: Version) {\n if (this.isNone) return false\n const ip = this.includePrerelease\n const hasPR = !!v.prerelease?.length\n let prOK = ip || !hasPR\n for (const c of this.tuples) {\n if (isAny(c)) {\n continue\n }\n const [op, cv] = c\n prOK ||= !!cv.prerelease?.length && v.tupleEquals(cv)\n switch (op) {\n case '':\n if (!v.equals(cv)) return false\n continue\n case '>':\n if (!v.greaterThan(cv)) return false\n continue\n case '>=':\n if (!v.greaterThanEqual(cv)) return false\n continue\n case '<':\n if (!v.lessThan(cv)) return false\n continue\n case '<=':\n if (!v.lessThanEqual(cv)) return false\n continue\n }\n }\n // they all passed, so it can only fail for having a prerelease\n // if we allow prereleases, or saw a matching tuple, that's ok.\n return prOK\n }\n\n #getComparatorAny() {\n return this.includePrerelease ? comparatorAnyPR : comparatorAny\n }\n}\n\nconst isAny = (c: Comparator | OVTuple): c is Comparator =>\n c === comparatorAny || c === comparatorAnyPR\nconst comparatorAny = {\n isAny: true,\n toString: () => '*',\n includePrerelease: false,\n test: (v: Version) => !v.prerelease?.length,\n} as Comparator\nconst comparatorAnyPR = {\n isAny: true,\n toString: () => '*',\n includePrerelease: true,\n test: (_: Version) => true,\n} as Comparator\nconst comparatorNone = {\n isNone: true,\n toString: () => '<0.0.0-0',\n includePrerelease: false,\n test: (_: Version) => false,\n} as unknown as Comparator\n"]}
package/dist/index.d.ts DELETED
@@ -1,204 +0,0 @@
1
- import { Range } from './range.ts';
2
- import { Version } from './version.ts';
3
- import type { IncrementType } from './version.ts';
4
- export * from './comparator.ts';
5
- export * from './range.ts';
6
- export * from './version.ts';
7
- /** Return the parsed version string, or `undefined` if invalid */
8
- export declare const parse: (version: Version | string) => Version | undefined;
9
- /** Return the parsed version range, or `undefined` if invalid */
10
- export declare const parseRange: (range: Range | string, includePrerelease?: boolean) => Range | undefined;
11
- /**
12
- * return true if the version is valid
13
- *
14
- * Note: do not use this if you intend to immediately parse the version if it's
15
- * valid. Just use {@link parse}, and guard the possible undefined value, or
16
- * use `Version.parse(..)` to throw on invalid values.
17
- */
18
- export declare const valid: (version: Version | string) => boolean;
19
- /**
20
- * return true if the range is valid
21
- *
22
- * Note: do not use this if you intend to immediately parse the range if it's
23
- * valid. Just use {@link parseRange}, and guard the possible undefined value,
24
- * or use `new Range(..)` to throw on invalid values.
25
- */
26
- export declare const validRange: (range: Range | string) => boolean;
27
- /**
28
- * Return true if the version satisfies the range.
29
- */
30
- export declare const satisfies: (version: Version | string, range: Range | string, includePrerelease?: boolean) => boolean;
31
- /**
32
- * Increment the specified part of the version, and return the resulting
33
- * object. If a Version object is provided, it will be modified in-place.
34
- *
35
- * See {@link Version.inc} for full description.
36
- */
37
- export declare const inc: (version: Version | string, part: IncrementType, prereleaseIdentifier?: string) => Version;
38
- /**
39
- * The method used by {@link sort}, exported for passing directly to
40
- * `Array.sort`.
41
- *
42
- * Usage:
43
- *
44
- * ```ts
45
- * import { sortMethod } from '@vltpkg/semver'
46
- * const versions = ['1.2.3', '5.2.3', '2.3.4']
47
- * console.log(versions.sort(sortMethod))
48
- * // ['1.2.3', '2.3.4', '5.2.3']
49
- * ```
50
- */
51
- export declare const sortMethod: (a: Version | string, b: Version | string) => number;
52
- /**
53
- * Sort an array of version strings or objects in ascending SemVer precedence
54
- * order (ie, lowest versions first).
55
- *
56
- * Invalid version strings are sorted to the end of the array in ascending
57
- * alphabetical order.
58
- *
59
- * Note: when using this method, the list is cloned prior to sorting, to
60
- * prevent surprising mutation. To sort the list in place, see
61
- * {@link sortMethod}.
62
- */
63
- export declare const sort: <T extends Version | string = string | Version>(list: T[]) => T[];
64
- /**
65
- * Sort an array of version strings or objects in descending SemVer
66
- * precedence order (ie, highest versions first).
67
- *
68
- * Invalid version strings are sorted to the end of the array in ascending
69
- * alphabetical order.
70
- *
71
- * Note: when using this method, the list is cloned prior to sorting, to
72
- * prevent surprising mutation. To sort the list in place, see
73
- * {@link rsortMethod}.
74
- */
75
- export declare const rsort: <T extends Version | string = string | Version>(list: T[]) => T[];
76
- /**
77
- * The method used by {@link rsort}, exported for passing directly to
78
- * `Array.sort`.
79
- *
80
- * Usage:
81
- *
82
- * ```ts
83
- * import { rsortMethod } from '@vltpkg/semver'
84
- * const versions = ['1.2.3', '5.2.3', '2.3.4']
85
- * console.log(versions.sort(rsortMethod))
86
- * // ['5.2.3', '2.3.4', '1.2.3']
87
- * ```
88
- */
89
- export declare const rsortMethod: (a: Version | string, b: Version | string) => number;
90
- /**
91
- * Method used by {@link filter}, for use in `Array.filter` directly.
92
- *
93
- * Usage:
94
- *
95
- * ```ts
96
- * import { filterMethod } from '@vltpkg/semver'
97
- * const versions = ['1.2.3', '5.2.3', '2.3.4']
98
- * console.log(versions.filter(filterMethod('>=2.x')))
99
- * // ['5.2.3', '2.3.4']
100
- * ```
101
- */
102
- export declare const filterMethod: (range: Range | string, includePrerelease?: boolean) => ((version: Version | string) => boolean);
103
- /**
104
- * Filter a list of versions to find all that match a given range.
105
- */
106
- export declare const filter: <T extends Version | string = string | Version>(list: T[], range: Range | string, includePrerelease?: boolean) => T[];
107
- /**
108
- * Find the highest-precedence match for a range within a list of versions
109
- *
110
- * Returns `undefined` if no match was found.
111
- */
112
- export declare const highest: (list: (Version | string)[], range: Range | string, includePrerelease?: boolean) => Version | undefined;
113
- /**
114
- * Faster form of {@link highest}, for use when the list is sorted
115
- * in precedence order (lower-precedence versions first).
116
- *
117
- * Note: This stops at the first match, and will produce incorrect results
118
- * when the list is not properly sorted!
119
- */
120
- export declare const sortedHighest: (list: (Version | string)[], range: Range | string, includePrerelease?: boolean) => Version | undefined;
121
- /**
122
- * Faster form of {@link highest}, for use when the list is sorted
123
- * in reverse precedence order (higher-precedence versions first).
124
- *
125
- * Note: This stops at the first match, and will produce incorrect results
126
- * when the list is not properly sorted!
127
- */
128
- export declare const rsortedHighest: (list: (Version | string)[], range: Range | string, includePrerelease?: boolean) => Version | undefined;
129
- /**
130
- * Find the lowest-precedence match for a range within a list of versions
131
- *
132
- * Returns `undefined` if no match was found.
133
- */
134
- export declare const lowest: (list: (Version | string)[], range: Range | string, includePrerelease?: boolean) => Version | undefined;
135
- /**
136
- * Faster form of {@link lowest}, for use when the list is sorted
137
- * in precedence order (lower-precedence versions first).
138
- *
139
- * Note: This stops at the first match, and will produce incorrect results
140
- * when the list is not properly sorted!
141
- */
142
- export declare const sortedLowest: (list: (Version | string)[], range: Range | string, includePrerelease?: boolean) => Version | undefined;
143
- /**
144
- * Faster form of {@link lowest}, for use when the list is sorted
145
- * in reverse precedence order (higher-precedence versions first).
146
- *
147
- * Note: This stops at the first match, and will produce incorrect results
148
- * when the list is not properly sorted!
149
- */
150
- export declare const rsortedLowest: (list: (Version | string)[], range: Range | string, includePrerelease?: boolean) => Version | undefined;
151
- /**
152
- * Same as {@link sortMethod}, but throws if either version is not valid.
153
- * 1 if versionA is higher precedence than versionB
154
- * -1 if versionA is lower precedence than versionB
155
- * 0 if they have equal precedence
156
- */
157
- export declare const compare: (versionA: Version | string, versionB: Version | string) => 0 | 1 | -1;
158
- /**
159
- * Inverse of {@link compare}
160
- *
161
- * Same as {@link rsortMethod}, but throws if either version is not valid.
162
- *
163
- * -1 if versionA is higher precedence than versionB
164
- * 1 if versionA is lower precedence than versionB
165
- * 0 if they have equal precedence
166
- */
167
- export declare const rcompare: (versionA: Version | string, versionB: Version | string) => 0 | 1 | -1;
168
- /** true if versionA is > versionB. throws on invalid values */
169
- export declare const gt: (versionA: Version | string, versionB: Version | string) => boolean;
170
- /** true if versionA is >= versionB. throws on invalid values */
171
- export declare const gte: (versionA: Version | string, versionB: Version | string) => boolean;
172
- /** true if versionA is < versionB. throws on invalid values */
173
- export declare const lt: (versionA: Version | string, versionB: Version | string) => boolean;
174
- /** true if versionA is &lt;= versionB. throws on invalid values */
175
- export declare const lte: (versionA: Version | string, versionB: Version | string) => boolean;
176
- /** true if versionA is not equal to versionB. throws on invalid values */
177
- export declare const neq: (versionA: Version | string, versionB: Version | string) => boolean;
178
- /** true if versionA is equal to versionB. throws on invalid values */
179
- export declare const eq: (versionA: Version | string, versionB: Version | string) => boolean;
180
- /** extract the major version number, or undefined if invalid */
181
- export declare const major: (version: Version | string) => number | undefined;
182
- /** extract the minor version number, or undefined if invalid */
183
- export declare const minor: (version: Version | string) => number | undefined;
184
- /** extract the patch version number, or undefined if invalid */
185
- export declare const patch: (version: Version | string) => number | undefined;
186
- /**
187
- * extract the list of prerelease identifiers, or undefined if the version
188
- * is invalid. If no prerelease identifiers are present, returns `[]`.
189
- */
190
- export declare const prerelease: (version: Version | string) => (string | number)[] | undefined;
191
- /**
192
- * extract the list of build identifiers, or undefined if the version
193
- * is invalid. If no build identifiers are present, returns `[]`.
194
- */
195
- export declare const build: (version: Version | string) => string[] | undefined;
196
- /** return all versions that do not have any prerelease identifiers */
197
- export declare const stable: <T extends Version | string = string | Version>(versions: T[]) => T[];
198
- /**
199
- * Return true if the range r1 intersects any of the ranges r2
200
- * r1 and r2 are either Range objects or range strings.
201
- * Returns true if any version would satisfy both ranges.
202
- */
203
- export declare const intersects: (r1: Range | string, r2: Range | string, includePrerelease?: boolean) => boolean;
204
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}