keep-a-changelog 2.3.0 → 2.5.0
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.
- package/CHANGELOG.md +33 -4
- package/README.md +23 -8
- package/esm/_dnt.shims.js +0 -1
- package/esm/bin.js +19 -20
- package/esm/deps/deno.land/std@0.205.0/semver/_shared.d.ts +42 -0
- package/esm/deps/deno.land/std@0.205.0/semver/_shared.js +230 -0
- package/esm/deps/deno.land/std@0.205.0/semver/cmp.d.ts +9 -0
- package/esm/deps/deno.land/std@0.205.0/semver/cmp.js +35 -0
- package/esm/deps/deno.land/std@0.205.0/semver/comparator_format.d.ts +8 -0
- package/esm/deps/deno.land/std@0.205.0/semver/comparator_format.js +11 -0
- package/esm/deps/deno.land/std@0.205.0/semver/comparator_intersects.d.ts +8 -0
- package/esm/deps/deno.land/std@0.205.0/semver/comparator_intersects.js +45 -0
- package/esm/deps/deno.land/std@0.205.0/semver/comparator_max.d.ts +9 -0
- package/esm/deps/deno.land/std@0.205.0/semver/comparator_max.js +45 -0
- package/esm/deps/deno.land/std@0.205.0/semver/comparator_min.d.ts +8 -0
- package/esm/deps/deno.land/std@0.205.0/semver/comparator_min.js +32 -0
- package/esm/deps/deno.land/std@0.205.0/semver/compare.d.ts +10 -0
- package/esm/deps/deno.land/std@0.205.0/semver/compare.js +18 -0
- package/esm/deps/deno.land/std@0.205.0/semver/compare_build.d.ts +13 -0
- package/esm/deps/deno.land/std@0.205.0/semver/compare_build.js +23 -0
- package/esm/deps/deno.land/std@0.205.0/semver/constants.d.ts +42 -0
- package/esm/deps/deno.land/std@0.205.0/semver/constants.js +75 -0
- package/esm/deps/deno.land/std@0.205.0/semver/difference.d.ts +4 -0
- package/esm/deps/deno.land/std@0.205.0/semver/difference.js +26 -0
- package/esm/deps/deno.land/std@0.205.0/semver/eq.d.ts +4 -0
- package/esm/deps/deno.land/std@0.205.0/semver/eq.js +7 -0
- package/esm/deps/deno.land/std@0.205.0/semver/format.d.ts +12 -0
- package/esm/deps/deno.land/std@0.205.0/semver/format.js +54 -0
- package/esm/deps/deno.land/std@0.205.0/semver/gt.d.ts +3 -0
- package/esm/deps/deno.land/std@0.205.0/semver/gt.js +5 -0
- package/esm/deps/deno.land/std@0.205.0/semver/gte.d.ts +3 -0
- package/esm/deps/deno.land/std@0.205.0/semver/gte.js +5 -0
- package/esm/deps/deno.land/std@0.205.0/semver/gtr.d.ts +3 -0
- package/esm/deps/deno.land/std@0.205.0/semver/gtr.js +5 -0
- package/esm/deps/deno.land/std@0.205.0/semver/increment.d.ts +28 -0
- package/esm/deps/deno.land/std@0.205.0/semver/increment.js +207 -0
- package/esm/deps/deno.land/std@0.205.0/semver/is_semver.d.ts +17 -0
- package/esm/deps/deno.land/std@0.205.0/semver/is_semver.js +41 -0
- package/esm/deps/deno.land/std@0.205.0/semver/is_semver_comparator.d.ts +12 -0
- package/esm/deps/deno.land/std@0.205.0/semver/is_semver_comparator.js +31 -0
- package/esm/deps/deno.land/std@0.205.0/semver/is_semver_range.d.ts +12 -0
- package/esm/deps/deno.land/std@0.205.0/semver/is_semver_range.js +22 -0
- package/esm/deps/deno.land/std@0.205.0/semver/lt.d.ts +3 -0
- package/esm/deps/deno.land/std@0.205.0/semver/lt.js +5 -0
- package/esm/deps/deno.land/std@0.205.0/semver/lte.d.ts +3 -0
- package/esm/deps/deno.land/std@0.205.0/semver/lte.js +5 -0
- package/esm/deps/deno.land/std@0.205.0/semver/ltr.d.ts +3 -0
- package/esm/deps/deno.land/std@0.205.0/semver/ltr.js +5 -0
- package/esm/deps/deno.land/std@0.205.0/semver/max_satisfying.d.ts +9 -0
- package/esm/deps/deno.land/std@0.205.0/semver/max_satisfying.js +14 -0
- package/esm/deps/deno.land/std@0.205.0/semver/min_satisfying.d.ts +9 -0
- package/esm/deps/deno.land/std@0.205.0/semver/min_satisfying.js +14 -0
- package/esm/deps/deno.land/{std@0.173.0 → std@0.205.0}/semver/mod.d.ts +88 -176
- package/esm/deps/deno.land/std@0.205.0/semver/mod.js +313 -0
- package/esm/deps/deno.land/std@0.205.0/semver/neq.d.ts +3 -0
- package/esm/deps/deno.land/std@0.205.0/semver/neq.js +5 -0
- package/esm/deps/deno.land/std@0.205.0/semver/outside.d.ts +11 -0
- package/esm/deps/deno.land/std@0.205.0/semver/outside.js +67 -0
- package/esm/deps/deno.land/std@0.205.0/semver/parse.d.ts +8 -0
- package/esm/deps/deno.land/std@0.205.0/semver/parse.js +66 -0
- package/esm/deps/deno.land/std@0.205.0/semver/parse_comparator.d.ts +7 -0
- package/esm/deps/deno.land/std@0.205.0/semver/parse_comparator.js +28 -0
- package/esm/deps/deno.land/std@0.205.0/semver/parse_range.d.ts +7 -0
- package/esm/deps/deno.land/std@0.205.0/semver/parse_range.js +292 -0
- package/esm/deps/deno.land/std@0.205.0/semver/range_format.d.ts +8 -0
- package/esm/deps/deno.land/std@0.205.0/semver/range_format.js +11 -0
- package/esm/deps/deno.land/std@0.205.0/semver/range_intersects.d.ts +8 -0
- package/esm/deps/deno.land/std@0.205.0/semver/range_intersects.js +35 -0
- package/esm/deps/deno.land/std@0.205.0/semver/range_max.d.ts +7 -0
- package/esm/deps/deno.land/std@0.205.0/semver/range_max.js +15 -0
- package/esm/deps/deno.land/std@0.205.0/semver/range_min.d.ts +7 -0
- package/esm/deps/deno.land/std@0.205.0/semver/range_min.js +14 -0
- package/esm/deps/deno.land/std@0.205.0/semver/rcompare.d.ts +8 -0
- package/esm/deps/deno.land/std@0.205.0/semver/rcompare.js +10 -0
- package/esm/deps/deno.land/std@0.205.0/semver/rsort.d.ts +3 -0
- package/esm/deps/deno.land/std@0.205.0/semver/rsort.js +5 -0
- package/esm/deps/deno.land/std@0.205.0/semver/sort.d.ts +3 -0
- package/esm/deps/deno.land/std@0.205.0/semver/sort.js +5 -0
- package/esm/deps/deno.land/std@0.205.0/semver/test_comparator.d.ts +8 -0
- package/esm/deps/deno.land/std@0.205.0/semver/test_comparator.js +10 -0
- package/esm/deps/deno.land/std@0.205.0/semver/test_range.d.ts +8 -0
- package/esm/deps/deno.land/std@0.205.0/semver/test_range.js +16 -0
- package/esm/deps/deno.land/std@0.205.0/semver/types.d.ts +44 -0
- package/esm/deps/deno.land/std@0.205.0/semver/types.js +2 -0
- package/esm/src/Changelog.d.ts +6 -2
- package/esm/src/Changelog.js +42 -4
- package/esm/src/Release.d.ts +5 -4
- package/esm/src/Release.js +21 -22
- package/esm/src/deps.d.ts +2 -1
- package/esm/src/deps.js +1 -1
- package/esm/src/settings.d.ts +17 -0
- package/esm/src/settings.js +47 -0
- package/esm/test/changelog.custom.type.md +2 -3
- package/esm/test/changelog.expected.linted.md +3 -4
- package/esm/test/changelog.expected.md +3 -4
- package/esm/test/changelog.md +3 -4
- package/esm/test/empty.expected.md +2 -2
- package/package.json +2 -2
- package/script/_dnt.shims.js +0 -1
- package/script/bin.js +22 -20
- package/script/deps/deno.land/std@0.205.0/semver/_shared.d.ts +42 -0
- package/script/deps/deno.land/std@0.205.0/semver/_shared.js +248 -0
- package/script/deps/deno.land/std@0.205.0/semver/cmp.d.ts +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/cmp.js +39 -0
- package/script/deps/deno.land/std@0.205.0/semver/comparator_format.d.ts +8 -0
- package/script/deps/deno.land/std@0.205.0/semver/comparator_format.js +15 -0
- package/script/deps/deno.land/std@0.205.0/semver/comparator_intersects.d.ts +8 -0
- package/script/deps/deno.land/std@0.205.0/semver/comparator_intersects.js +49 -0
- package/script/deps/deno.land/std@0.205.0/semver/comparator_max.d.ts +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/comparator_max.js +49 -0
- package/script/deps/deno.land/std@0.205.0/semver/comparator_min.d.ts +8 -0
- package/script/deps/deno.land/std@0.205.0/semver/comparator_min.js +36 -0
- package/script/deps/deno.land/std@0.205.0/semver/compare.d.ts +10 -0
- package/script/deps/deno.land/std@0.205.0/semver/compare.js +22 -0
- package/script/deps/deno.land/std@0.205.0/semver/compare_build.d.ts +13 -0
- package/script/deps/deno.land/std@0.205.0/semver/compare_build.js +27 -0
- package/script/deps/deno.land/std@0.205.0/semver/constants.d.ts +42 -0
- package/script/deps/deno.land/std@0.205.0/semver/constants.js +78 -0
- package/script/deps/deno.land/std@0.205.0/semver/difference.d.ts +4 -0
- package/script/deps/deno.land/std@0.205.0/semver/difference.js +30 -0
- package/script/deps/deno.land/std@0.205.0/semver/eq.d.ts +4 -0
- package/script/deps/deno.land/std@0.205.0/semver/eq.js +11 -0
- package/script/deps/deno.land/std@0.205.0/semver/format.d.ts +12 -0
- package/script/deps/deno.land/std@0.205.0/semver/format.js +58 -0
- package/script/deps/deno.land/std@0.205.0/semver/gt.d.ts +3 -0
- package/script/deps/deno.land/std@0.205.0/semver/gt.js +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/gte.d.ts +3 -0
- package/script/deps/deno.land/std@0.205.0/semver/gte.js +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/gtr.d.ts +3 -0
- package/script/deps/deno.land/std@0.205.0/semver/gtr.js +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/increment.d.ts +28 -0
- package/script/deps/deno.land/std@0.205.0/semver/increment.js +211 -0
- package/script/deps/deno.land/std@0.205.0/semver/is_semver.d.ts +17 -0
- package/script/deps/deno.land/std@0.205.0/semver/is_semver.js +45 -0
- package/script/deps/deno.land/std@0.205.0/semver/is_semver_comparator.d.ts +12 -0
- package/script/deps/deno.land/std@0.205.0/semver/is_semver_comparator.js +35 -0
- package/script/deps/deno.land/std@0.205.0/semver/is_semver_range.d.ts +12 -0
- package/script/deps/deno.land/std@0.205.0/semver/is_semver_range.js +26 -0
- package/script/deps/deno.land/std@0.205.0/semver/lt.d.ts +3 -0
- package/script/deps/deno.land/std@0.205.0/semver/lt.js +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/lte.d.ts +3 -0
- package/script/deps/deno.land/std@0.205.0/semver/lte.js +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/ltr.d.ts +3 -0
- package/script/deps/deno.land/std@0.205.0/semver/ltr.js +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/max_satisfying.d.ts +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/max_satisfying.js +18 -0
- package/script/deps/deno.land/std@0.205.0/semver/min_satisfying.d.ts +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/min_satisfying.js +18 -0
- package/script/deps/deno.land/{std@0.173.0 → std@0.205.0}/semver/mod.d.ts +88 -176
- package/script/deps/deno.land/std@0.205.0/semver/mod.js +330 -0
- package/script/deps/deno.land/std@0.205.0/semver/neq.d.ts +3 -0
- package/script/deps/deno.land/std@0.205.0/semver/neq.js +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/outside.d.ts +11 -0
- package/script/deps/deno.land/std@0.205.0/semver/outside.js +71 -0
- package/script/deps/deno.land/std@0.205.0/semver/parse.d.ts +8 -0
- package/script/deps/deno.land/std@0.205.0/semver/parse.js +70 -0
- package/script/deps/deno.land/std@0.205.0/semver/parse_comparator.d.ts +7 -0
- package/script/deps/deno.land/std@0.205.0/semver/parse_comparator.js +32 -0
- package/script/deps/deno.land/std@0.205.0/semver/parse_range.d.ts +7 -0
- package/script/deps/deno.land/std@0.205.0/semver/parse_range.js +296 -0
- package/script/deps/deno.land/std@0.205.0/semver/range_format.d.ts +8 -0
- package/script/deps/deno.land/std@0.205.0/semver/range_format.js +15 -0
- package/script/deps/deno.land/std@0.205.0/semver/range_intersects.d.ts +8 -0
- package/script/deps/deno.land/std@0.205.0/semver/range_intersects.js +39 -0
- package/script/deps/deno.land/std@0.205.0/semver/range_max.d.ts +7 -0
- package/script/deps/deno.land/std@0.205.0/semver/range_max.js +19 -0
- package/script/deps/deno.land/std@0.205.0/semver/range_min.d.ts +7 -0
- package/script/deps/deno.land/std@0.205.0/semver/range_min.js +18 -0
- package/script/deps/deno.land/std@0.205.0/semver/rcompare.d.ts +8 -0
- package/script/deps/deno.land/std@0.205.0/semver/rcompare.js +14 -0
- package/script/deps/deno.land/std@0.205.0/semver/rsort.d.ts +3 -0
- package/script/deps/deno.land/std@0.205.0/semver/rsort.js +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/sort.d.ts +3 -0
- package/script/deps/deno.land/std@0.205.0/semver/sort.js +9 -0
- package/script/deps/deno.land/std@0.205.0/semver/test_comparator.d.ts +8 -0
- package/script/deps/deno.land/std@0.205.0/semver/test_comparator.js +14 -0
- package/script/deps/deno.land/std@0.205.0/semver/test_range.d.ts +8 -0
- package/script/deps/deno.land/std@0.205.0/semver/test_range.js +20 -0
- package/script/deps/deno.land/std@0.205.0/semver/types.d.ts +44 -0
- package/script/deps/deno.land/std@0.205.0/semver/types.js +3 -0
- package/script/src/Changelog.d.ts +6 -2
- package/script/src/Changelog.js +41 -3
- package/script/src/Release.d.ts +5 -4
- package/script/src/Release.js +20 -21
- package/script/src/deps.d.ts +2 -1
- package/script/src/deps.js +5 -6
- package/script/src/settings.d.ts +17 -0
- package/script/src/settings.js +51 -0
- package/script/test/changelog.custom.type.md +2 -3
- package/script/test/changelog.expected.linted.md +3 -4
- package/script/test/changelog.expected.md +3 -4
- package/script/test/changelog.md +3 -4
- package/script/test/empty.expected.md +2 -2
- package/esm/_dnt.test_shims.d.ts +0 -5
- package/esm/deps/deno.land/std@0.133.0/fmt/colors.d.ts +0 -270
- package/esm/deps/deno.land/std@0.133.0/testing/_diff.d.ts +0 -23
- package/esm/deps/deno.land/std@0.133.0/testing/asserts.d.ts +0 -167
- package/esm/deps/deno.land/std@0.173.0/semver/mod.js +0 -1420
- package/esm/test/Change.test.d.ts +0 -1
- package/esm/test/deps.d.ts +0 -1
- package/esm/test/fixture/CustomRelease.d.ts +0 -8
- package/esm/test/parser.test.d.ts +0 -1
- package/esm/test/test.d.ts +0 -1
- package/script/_dnt.test_shims.d.ts +0 -5
- package/script/deps/deno.land/std@0.133.0/fmt/colors.d.ts +0 -270
- package/script/deps/deno.land/std@0.133.0/testing/_diff.d.ts +0 -23
- package/script/deps/deno.land/std@0.133.0/testing/asserts.d.ts +0 -167
- package/script/deps/deno.land/std@0.173.0/semver/mod.js +0 -1458
- package/script/test/Change.test.d.ts +0 -1
- package/script/test/deps.d.ts +0 -1
- package/script/test/fixture/CustomRelease.d.ts +0 -8
- package/script/test/parser.test.d.ts +0 -1
- package/script/test/test.d.ts +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Operator, SemVer } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* The minimum semantic version that could match this comparator
|
|
4
|
+
* @param semver The semantic version of the comparator
|
|
5
|
+
* @param operator The operator of the comparator
|
|
6
|
+
* @returns The minimum valid semantic version
|
|
7
|
+
*/
|
|
8
|
+
export declare function comparatorMin(semver: SemVer, operator: Operator): SemVer;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ANY, MAX, MIN } from "./constants.js";
|
|
2
|
+
import { gt } from "./gt.js";
|
|
3
|
+
import { increment } from "./increment.js";
|
|
4
|
+
/**
|
|
5
|
+
* The minimum semantic version that could match this comparator
|
|
6
|
+
* @param semver The semantic version of the comparator
|
|
7
|
+
* @param operator The operator of the comparator
|
|
8
|
+
* @returns The minimum valid semantic version
|
|
9
|
+
*/
|
|
10
|
+
export function comparatorMin(semver, operator) {
|
|
11
|
+
if (semver === ANY) {
|
|
12
|
+
return MIN;
|
|
13
|
+
}
|
|
14
|
+
switch (operator) {
|
|
15
|
+
case ">":
|
|
16
|
+
return semver.prerelease.length > 0
|
|
17
|
+
? increment(semver, "pre")
|
|
18
|
+
: increment(semver, "patch");
|
|
19
|
+
case "!=":
|
|
20
|
+
case "!==":
|
|
21
|
+
case "<=":
|
|
22
|
+
case "<":
|
|
23
|
+
// The min(<0.0.0) is MAX
|
|
24
|
+
return gt(semver, MIN) ? MIN : MAX;
|
|
25
|
+
case ">=":
|
|
26
|
+
case "":
|
|
27
|
+
case "=":
|
|
28
|
+
case "==":
|
|
29
|
+
case "===":
|
|
30
|
+
return semver;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SemVer } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Compare two semantic version objects.
|
|
4
|
+
*
|
|
5
|
+
* Returns `0` if `v1 === v2`, or `1` if `v1` is greater, or `-1` if `v2` is
|
|
6
|
+
* greater.
|
|
7
|
+
*
|
|
8
|
+
* Sorts in ascending order if passed to `Array.sort()`,
|
|
9
|
+
*/
|
|
10
|
+
export declare function compare(s0: SemVer, s1: SemVer): 1 | 0 | -1;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { checkIdentifier, compareIdentifier, compareNumber, } from "./_shared.js";
|
|
2
|
+
/**
|
|
3
|
+
* Compare two semantic version objects.
|
|
4
|
+
*
|
|
5
|
+
* Returns `0` if `v1 === v2`, or `1` if `v1` is greater, or `-1` if `v2` is
|
|
6
|
+
* greater.
|
|
7
|
+
*
|
|
8
|
+
* Sorts in ascending order if passed to `Array.sort()`,
|
|
9
|
+
*/
|
|
10
|
+
export function compare(s0, s1) {
|
|
11
|
+
if (s0 === s1)
|
|
12
|
+
return 0;
|
|
13
|
+
return (compareNumber(s0.major, s1.major) ||
|
|
14
|
+
compareNumber(s0.minor, s1.minor) ||
|
|
15
|
+
compareNumber(s0.patch, s1.patch) ||
|
|
16
|
+
checkIdentifier(s0.prerelease, s1.prerelease) ||
|
|
17
|
+
compareIdentifier(s0.prerelease, s1.prerelease));
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SemVer } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Compare two semantic version objects including build metadata.
|
|
4
|
+
*
|
|
5
|
+
* Returns `0` if `v1 === v2`, or `1` if `v1` is greater, or `-1` if `v2` is
|
|
6
|
+
* greater.
|
|
7
|
+
*
|
|
8
|
+
* Sorts in ascending order if passed to `Array.sort()`,
|
|
9
|
+
* @param s0
|
|
10
|
+
* @param s1
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export declare function compareBuild(s0: SemVer, s1: SemVer): 1 | 0 | -1;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { checkIdentifier, compareIdentifier, compareNumber, } from "./_shared.js";
|
|
2
|
+
/**
|
|
3
|
+
* Compare two semantic version objects including build metadata.
|
|
4
|
+
*
|
|
5
|
+
* Returns `0` if `v1 === v2`, or `1` if `v1` is greater, or `-1` if `v2` is
|
|
6
|
+
* greater.
|
|
7
|
+
*
|
|
8
|
+
* Sorts in ascending order if passed to `Array.sort()`,
|
|
9
|
+
* @param s0
|
|
10
|
+
* @param s1
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export function compareBuild(s0, s1) {
|
|
14
|
+
if (s0 === s1)
|
|
15
|
+
return 0;
|
|
16
|
+
return (compareNumber(s0.major, s1.major) ||
|
|
17
|
+
compareNumber(s0.minor, s1.minor) ||
|
|
18
|
+
compareNumber(s0.patch, s1.patch) ||
|
|
19
|
+
checkIdentifier(s0.prerelease, s1.prerelease) ||
|
|
20
|
+
compareIdentifier(s0.prerelease, s1.prerelease) ||
|
|
21
|
+
checkIdentifier(s1.build, s0.build) ||
|
|
22
|
+
compareIdentifier(s0.build, s1.build));
|
|
23
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { SemVer, SemVerComparator } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* MAX is a sentinel value used by some range calculations.
|
|
4
|
+
* It is equivalent to `∞.∞.∞`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MAX: SemVer;
|
|
7
|
+
/**
|
|
8
|
+
* The minimum valid SemVer object. Equivalent to `0.0.0`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MIN: SemVer;
|
|
11
|
+
/**
|
|
12
|
+
* A sentinel value used to denote an invalid SemVer object
|
|
13
|
+
* which may be the result of impossible ranges or comparator operations.
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { eq } from "https://deno.land/std@$STD_VERSION/semver/eq.ts";
|
|
17
|
+
* import { parse } from "https://deno.land/std@$STD_VERSION/semver/parse.ts";
|
|
18
|
+
* import { INVALID } from "https://deno.land/std@$STD_VERSION/semver/constants.ts"
|
|
19
|
+
* eq(parse("1.2.3"), INVALID);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare const INVALID: SemVer;
|
|
23
|
+
/**
|
|
24
|
+
* ANY is a sentinel value used by some range calculations. It is not a valid
|
|
25
|
+
* SemVer object and should not be used directly.
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { eq } from "https://deno.land/std@$STD_VERSION/semver/eq.ts";
|
|
29
|
+
* import { parse } from "https://deno.land/std@$STD_VERSION/semver/parse.ts";
|
|
30
|
+
* import { ANY } from "https://deno.land/std@$STD_VERSION/semver/constants.ts"
|
|
31
|
+
* eq(parse("1.2.3"), ANY); // false
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare const ANY: SemVer;
|
|
35
|
+
/**
|
|
36
|
+
* A comparator which will span all valid semantic versions
|
|
37
|
+
*/
|
|
38
|
+
export declare const ALL: SemVerComparator;
|
|
39
|
+
/**
|
|
40
|
+
* A comparator which will not span any semantic versions
|
|
41
|
+
*/
|
|
42
|
+
export declare const NONE: SemVerComparator;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MAX is a sentinel value used by some range calculations.
|
|
3
|
+
* It is equivalent to `∞.∞.∞`.
|
|
4
|
+
*/
|
|
5
|
+
export const MAX = {
|
|
6
|
+
major: Number.POSITIVE_INFINITY,
|
|
7
|
+
minor: Number.POSITIVE_INFINITY,
|
|
8
|
+
patch: Number.POSITIVE_INFINITY,
|
|
9
|
+
prerelease: [],
|
|
10
|
+
build: [],
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* The minimum valid SemVer object. Equivalent to `0.0.0`.
|
|
14
|
+
*/
|
|
15
|
+
export const MIN = {
|
|
16
|
+
major: 0,
|
|
17
|
+
minor: 0,
|
|
18
|
+
patch: 0,
|
|
19
|
+
prerelease: [],
|
|
20
|
+
build: [],
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* A sentinel value used to denote an invalid SemVer object
|
|
24
|
+
* which may be the result of impossible ranges or comparator operations.
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* import { eq } from "https://deno.land/std@$STD_VERSION/semver/eq.ts";
|
|
28
|
+
* import { parse } from "https://deno.land/std@$STD_VERSION/semver/parse.ts";
|
|
29
|
+
* import { INVALID } from "https://deno.land/std@$STD_VERSION/semver/constants.ts"
|
|
30
|
+
* eq(parse("1.2.3"), INVALID);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export const INVALID = {
|
|
34
|
+
major: Number.NEGATIVE_INFINITY,
|
|
35
|
+
minor: Number.POSITIVE_INFINITY,
|
|
36
|
+
patch: Number.POSITIVE_INFINITY,
|
|
37
|
+
prerelease: [],
|
|
38
|
+
build: [],
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* ANY is a sentinel value used by some range calculations. It is not a valid
|
|
42
|
+
* SemVer object and should not be used directly.
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { eq } from "https://deno.land/std@$STD_VERSION/semver/eq.ts";
|
|
46
|
+
* import { parse } from "https://deno.land/std@$STD_VERSION/semver/parse.ts";
|
|
47
|
+
* import { ANY } from "https://deno.land/std@$STD_VERSION/semver/constants.ts"
|
|
48
|
+
* eq(parse("1.2.3"), ANY); // false
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export const ANY = {
|
|
52
|
+
major: Number.NaN,
|
|
53
|
+
minor: Number.NaN,
|
|
54
|
+
patch: Number.NaN,
|
|
55
|
+
prerelease: [],
|
|
56
|
+
build: [],
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* A comparator which will span all valid semantic versions
|
|
60
|
+
*/
|
|
61
|
+
export const ALL = {
|
|
62
|
+
operator: "",
|
|
63
|
+
semver: ANY,
|
|
64
|
+
min: MIN,
|
|
65
|
+
max: MAX,
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* A comparator which will not span any semantic versions
|
|
69
|
+
*/
|
|
70
|
+
export const NONE = {
|
|
71
|
+
operator: "<",
|
|
72
|
+
semver: MIN,
|
|
73
|
+
min: MAX,
|
|
74
|
+
max: MIN,
|
|
75
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { eq } from "./eq.js";
|
|
2
|
+
/** Returns difference between two versions by the release type, or
|
|
3
|
+
* `undefined` if the versions are the same. */
|
|
4
|
+
export function difference(s0, s1) {
|
|
5
|
+
if (eq(s0, s1)) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
let prefix = "";
|
|
10
|
+
let defaultResult = undefined;
|
|
11
|
+
if (s0 && s1) {
|
|
12
|
+
if (s0.prerelease.length || s1.prerelease.length) {
|
|
13
|
+
prefix = "pre";
|
|
14
|
+
defaultResult = "prerelease";
|
|
15
|
+
}
|
|
16
|
+
for (const key in s0) {
|
|
17
|
+
if (key === "major" || key === "minor" || key === "patch") {
|
|
18
|
+
if (s0[key] !== s1[key]) {
|
|
19
|
+
return (prefix + key);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return defaultResult; // may be undefined
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
|
2
|
+
import { compare } from "./compare.js";
|
|
3
|
+
/** Returns `true` if they're logically equivalent, even if they're not the exact
|
|
4
|
+
* same version object. */
|
|
5
|
+
export function eq(s0, s1) {
|
|
6
|
+
return compare(s0, s1) === 0;
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FormatStyle, SemVer } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Format a SemVer object into a string.
|
|
4
|
+
*
|
|
5
|
+
* If any number is NaN then NaN will be printed.
|
|
6
|
+
*
|
|
7
|
+
* If any number is positive or negative infinity then '∞' or '⧞' will be printed instead.
|
|
8
|
+
*
|
|
9
|
+
* @param semver The semantic version to format
|
|
10
|
+
* @returns The string representation of a semantic version.
|
|
11
|
+
*/
|
|
12
|
+
export declare function format(semver: SemVer, style?: FormatStyle): string;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
|
2
|
+
import { ANY } from "./constants.js";
|
|
3
|
+
function formatNumber(value) {
|
|
4
|
+
if (value === Number.POSITIVE_INFINITY) {
|
|
5
|
+
return "∞";
|
|
6
|
+
}
|
|
7
|
+
else if (value === Number.NEGATIVE_INFINITY) {
|
|
8
|
+
return "⧞";
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return value.toFixed(0);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Format a SemVer object into a string.
|
|
16
|
+
*
|
|
17
|
+
* If any number is NaN then NaN will be printed.
|
|
18
|
+
*
|
|
19
|
+
* If any number is positive or negative infinity then '∞' or '⧞' will be printed instead.
|
|
20
|
+
*
|
|
21
|
+
* @param semver The semantic version to format
|
|
22
|
+
* @returns The string representation of a semantic version.
|
|
23
|
+
*/
|
|
24
|
+
export function format(semver, style = "full") {
|
|
25
|
+
if (semver === ANY) {
|
|
26
|
+
return "*";
|
|
27
|
+
}
|
|
28
|
+
const major = formatNumber(semver.major);
|
|
29
|
+
const minor = formatNumber(semver.minor);
|
|
30
|
+
const patch = formatNumber(semver.patch);
|
|
31
|
+
const pre = semver.prerelease.join(".");
|
|
32
|
+
const build = semver.build.join(".");
|
|
33
|
+
const primary = `${major}.${minor}.${patch}`;
|
|
34
|
+
const release = [primary, pre].filter((v) => v).join("-");
|
|
35
|
+
const full = [release, build].filter((v) => v).join("+");
|
|
36
|
+
switch (style) {
|
|
37
|
+
case "full":
|
|
38
|
+
return full;
|
|
39
|
+
case "release":
|
|
40
|
+
return release;
|
|
41
|
+
case "primary":
|
|
42
|
+
return primary;
|
|
43
|
+
case "build":
|
|
44
|
+
return build;
|
|
45
|
+
case "pre":
|
|
46
|
+
return pre;
|
|
47
|
+
case "patch":
|
|
48
|
+
return patch;
|
|
49
|
+
case "minor":
|
|
50
|
+
return minor;
|
|
51
|
+
case "major":
|
|
52
|
+
return major;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ReleaseType, SemVer } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the new version resulting from an increment by release type.
|
|
4
|
+
*
|
|
5
|
+
* `premajor`, `preminor` and `prepatch` will bump the version up to the next version,
|
|
6
|
+
* based on the type, and will also add prerelease metadata.
|
|
7
|
+
*
|
|
8
|
+
* If called from a non-prerelease version, the `prerelease` will work the same as
|
|
9
|
+
* `prepatch`. The patch version is incremented and then is made into a prerelease. If
|
|
10
|
+
* the input version is already a prerelease it will simply increment the prerelease
|
|
11
|
+
* metadata.
|
|
12
|
+
*
|
|
13
|
+
* If a prerelease identifier is specified without a number then a number will be added.
|
|
14
|
+
* For example `pre` will result in `pre.0`. If the existing version already has a
|
|
15
|
+
* prerelease with a number and its the same prerelease identifier then the number
|
|
16
|
+
* will be incremented. If the identifier differs from the new identifier then the new
|
|
17
|
+
* identifier is applied and the number is reset to `0`.
|
|
18
|
+
*
|
|
19
|
+
* If the input version has build metadata it will be preserved on the resulting version
|
|
20
|
+
* unless a new build parameter is specified. Specifying `""` will unset existing build
|
|
21
|
+
* metadata.
|
|
22
|
+
* @param version The version to increment
|
|
23
|
+
* @param release The type of increment to perform
|
|
24
|
+
* @param prerelease The pre-release metadata of the new version
|
|
25
|
+
* @param build The build metadata of the new version
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
export declare function increment(version: SemVer, release: ReleaseType, prerelease?: string, build?: string): SemVer;
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
function pre(prerelease, identifier) {
|
|
2
|
+
let values = [...prerelease];
|
|
3
|
+
// In reality this will either be 0, 1 or 2 entries.
|
|
4
|
+
let i = values.length;
|
|
5
|
+
while (--i >= 0) {
|
|
6
|
+
if (typeof values[i] === "number") {
|
|
7
|
+
// deno-fmt-ignore
|
|
8
|
+
values[i]++;
|
|
9
|
+
i = -2;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
if (i === -1) {
|
|
13
|
+
// didn't increment anything
|
|
14
|
+
values.push(0);
|
|
15
|
+
}
|
|
16
|
+
if (identifier) {
|
|
17
|
+
// 1.2.0-beta.1 bumps to 1.2.0-beta.2,
|
|
18
|
+
// 1.2.0-beta.foobar or 1.2.0-beta bumps to 1.2.0-beta.0
|
|
19
|
+
if (values[0] === identifier) {
|
|
20
|
+
if (isNaN(values[1])) {
|
|
21
|
+
values = [identifier, 0];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
values = [identifier, 0];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return values;
|
|
29
|
+
}
|
|
30
|
+
function parseBuild(build, metadata) {
|
|
31
|
+
return metadata === undefined ? build : metadata.split(".").filter((m) => m);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Returns the new version resulting from an increment by release type.
|
|
35
|
+
*
|
|
36
|
+
* `premajor`, `preminor` and `prepatch` will bump the version up to the next version,
|
|
37
|
+
* based on the type, and will also add prerelease metadata.
|
|
38
|
+
*
|
|
39
|
+
* If called from a non-prerelease version, the `prerelease` will work the same as
|
|
40
|
+
* `prepatch`. The patch version is incremented and then is made into a prerelease. If
|
|
41
|
+
* the input version is already a prerelease it will simply increment the prerelease
|
|
42
|
+
* metadata.
|
|
43
|
+
*
|
|
44
|
+
* If a prerelease identifier is specified without a number then a number will be added.
|
|
45
|
+
* For example `pre` will result in `pre.0`. If the existing version already has a
|
|
46
|
+
* prerelease with a number and its the same prerelease identifier then the number
|
|
47
|
+
* will be incremented. If the identifier differs from the new identifier then the new
|
|
48
|
+
* identifier is applied and the number is reset to `0`.
|
|
49
|
+
*
|
|
50
|
+
* If the input version has build metadata it will be preserved on the resulting version
|
|
51
|
+
* unless a new build parameter is specified. Specifying `""` will unset existing build
|
|
52
|
+
* metadata.
|
|
53
|
+
* @param version The version to increment
|
|
54
|
+
* @param release The type of increment to perform
|
|
55
|
+
* @param prerelease The pre-release metadata of the new version
|
|
56
|
+
* @param build The build metadata of the new version
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
export function increment(version, release, prerelease, build) {
|
|
60
|
+
let result;
|
|
61
|
+
switch (release) {
|
|
62
|
+
case "premajor":
|
|
63
|
+
result = {
|
|
64
|
+
major: version.major + 1,
|
|
65
|
+
minor: 0,
|
|
66
|
+
patch: 0,
|
|
67
|
+
prerelease: pre(version.prerelease, prerelease),
|
|
68
|
+
build: parseBuild(version.build, build),
|
|
69
|
+
};
|
|
70
|
+
break;
|
|
71
|
+
case "preminor":
|
|
72
|
+
result = {
|
|
73
|
+
major: version.major,
|
|
74
|
+
minor: version.minor + 1,
|
|
75
|
+
patch: 0,
|
|
76
|
+
prerelease: pre(version.prerelease, prerelease),
|
|
77
|
+
build: parseBuild(version.build, build),
|
|
78
|
+
};
|
|
79
|
+
break;
|
|
80
|
+
case "prepatch":
|
|
81
|
+
result = {
|
|
82
|
+
major: version.major,
|
|
83
|
+
minor: version.minor,
|
|
84
|
+
patch: version.patch + 1,
|
|
85
|
+
prerelease: pre(version.prerelease, prerelease),
|
|
86
|
+
build: parseBuild(version.build, build),
|
|
87
|
+
};
|
|
88
|
+
break;
|
|
89
|
+
// If the input is a non-prerelease version, this acts the same as
|
|
90
|
+
// prepatch.
|
|
91
|
+
case "prerelease":
|
|
92
|
+
if (version.prerelease.length === 0) {
|
|
93
|
+
result = {
|
|
94
|
+
major: version.major,
|
|
95
|
+
minor: version.minor,
|
|
96
|
+
patch: version.patch + 1,
|
|
97
|
+
prerelease: pre(version.prerelease, prerelease),
|
|
98
|
+
build: parseBuild(version.build, build),
|
|
99
|
+
};
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
result = {
|
|
104
|
+
major: version.major,
|
|
105
|
+
minor: version.minor,
|
|
106
|
+
patch: version.patch,
|
|
107
|
+
prerelease: pre(version.prerelease, prerelease),
|
|
108
|
+
build: parseBuild(version.build, build),
|
|
109
|
+
};
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
case "major":
|
|
113
|
+
// If this is a pre-major version, bump up to the same major version.
|
|
114
|
+
// Otherwise increment major.
|
|
115
|
+
// 1.0.0-5 bumps to 1.0.0
|
|
116
|
+
// 1.1.0 bumps to 2.0.0
|
|
117
|
+
if (version.minor !== 0 ||
|
|
118
|
+
version.patch !== 0 ||
|
|
119
|
+
version.prerelease.length === 0) {
|
|
120
|
+
result = {
|
|
121
|
+
major: version.major + 1,
|
|
122
|
+
minor: 0,
|
|
123
|
+
patch: 0,
|
|
124
|
+
prerelease: [],
|
|
125
|
+
build: parseBuild(version.build, build),
|
|
126
|
+
};
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
result = {
|
|
131
|
+
major: version.major,
|
|
132
|
+
minor: 0,
|
|
133
|
+
patch: 0,
|
|
134
|
+
prerelease: [],
|
|
135
|
+
build: parseBuild(version.build, build),
|
|
136
|
+
};
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
case "minor":
|
|
140
|
+
// If this is a pre-minor version, bump up to the same minor version.
|
|
141
|
+
// Otherwise increment minor.
|
|
142
|
+
// 1.2.0-5 bumps to 1.2.0
|
|
143
|
+
// 1.2.1 bumps to 1.3.0
|
|
144
|
+
if (version.patch !== 0 ||
|
|
145
|
+
version.prerelease.length === 0) {
|
|
146
|
+
result = {
|
|
147
|
+
major: version.major,
|
|
148
|
+
minor: version.minor + 1,
|
|
149
|
+
patch: 0,
|
|
150
|
+
prerelease: [],
|
|
151
|
+
build: parseBuild(version.build, build),
|
|
152
|
+
};
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
result = {
|
|
157
|
+
major: version.major,
|
|
158
|
+
minor: version.minor,
|
|
159
|
+
patch: 0,
|
|
160
|
+
prerelease: [],
|
|
161
|
+
build: parseBuild(version.build, build),
|
|
162
|
+
};
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
case "patch":
|
|
166
|
+
// If this is not a pre-release version, it will increment the patch.
|
|
167
|
+
// If it is a pre-release it will bump up to the same patch version.
|
|
168
|
+
// 1.2.0-5 patches to 1.2.0
|
|
169
|
+
// 1.2.0 patches to 1.2.1
|
|
170
|
+
if (version.prerelease.length === 0) {
|
|
171
|
+
result = {
|
|
172
|
+
major: version.major,
|
|
173
|
+
minor: version.minor,
|
|
174
|
+
patch: version.patch + 1,
|
|
175
|
+
prerelease: [],
|
|
176
|
+
build: parseBuild(version.build, build),
|
|
177
|
+
};
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
result = {
|
|
182
|
+
major: version.major,
|
|
183
|
+
minor: version.minor,
|
|
184
|
+
patch: version.patch,
|
|
185
|
+
prerelease: [],
|
|
186
|
+
build: parseBuild(version.build, build),
|
|
187
|
+
};
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
// 1.0.0 "pre" would become 1.0.0-0
|
|
191
|
+
// 1.0.0-0 would become 1.0.0-1
|
|
192
|
+
// 1.0.0-beta.0 would be come 1.0.0-beta.1
|
|
193
|
+
// switching the pre identifier resets the number to 0
|
|
194
|
+
case "pre":
|
|
195
|
+
result = {
|
|
196
|
+
major: version.major,
|
|
197
|
+
minor: version.minor,
|
|
198
|
+
patch: version.patch,
|
|
199
|
+
prerelease: pre(version.prerelease, prerelease),
|
|
200
|
+
build: parseBuild(version.build, build),
|
|
201
|
+
};
|
|
202
|
+
break;
|
|
203
|
+
default:
|
|
204
|
+
throw new Error(`invalid increment argument: ${release}`);
|
|
205
|
+
}
|
|
206
|
+
return result;
|
|
207
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SemVer } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Checks to see if value is a valid SemVer object. It does a check
|
|
4
|
+
* into each field including prerelease and build.
|
|
5
|
+
*
|
|
6
|
+
* Some invalid SemVer sentinels can still return true such as ANY and INVALID.
|
|
7
|
+
* An object which has the same value as a sentinel but isn't reference equal
|
|
8
|
+
* will still fail.
|
|
9
|
+
*
|
|
10
|
+
* Objects which are valid SemVer objects but have _extra_ fields are still
|
|
11
|
+
* considered SemVer objects and this will return true.
|
|
12
|
+
*
|
|
13
|
+
* A type assertion is added to the value.
|
|
14
|
+
* @param value The value to check to see if its a valid SemVer object
|
|
15
|
+
* @returns True if value is a valid SemVer otherwise false
|
|
16
|
+
*/
|
|
17
|
+
export declare function isSemVer(value: unknown): value is SemVer;
|