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.
Files changed (213) hide show
  1. package/CHANGELOG.md +33 -4
  2. package/README.md +23 -8
  3. package/esm/_dnt.shims.js +0 -1
  4. package/esm/bin.js +19 -20
  5. package/esm/deps/deno.land/std@0.205.0/semver/_shared.d.ts +42 -0
  6. package/esm/deps/deno.land/std@0.205.0/semver/_shared.js +230 -0
  7. package/esm/deps/deno.land/std@0.205.0/semver/cmp.d.ts +9 -0
  8. package/esm/deps/deno.land/std@0.205.0/semver/cmp.js +35 -0
  9. package/esm/deps/deno.land/std@0.205.0/semver/comparator_format.d.ts +8 -0
  10. package/esm/deps/deno.land/std@0.205.0/semver/comparator_format.js +11 -0
  11. package/esm/deps/deno.land/std@0.205.0/semver/comparator_intersects.d.ts +8 -0
  12. package/esm/deps/deno.land/std@0.205.0/semver/comparator_intersects.js +45 -0
  13. package/esm/deps/deno.land/std@0.205.0/semver/comparator_max.d.ts +9 -0
  14. package/esm/deps/deno.land/std@0.205.0/semver/comparator_max.js +45 -0
  15. package/esm/deps/deno.land/std@0.205.0/semver/comparator_min.d.ts +8 -0
  16. package/esm/deps/deno.land/std@0.205.0/semver/comparator_min.js +32 -0
  17. package/esm/deps/deno.land/std@0.205.0/semver/compare.d.ts +10 -0
  18. package/esm/deps/deno.land/std@0.205.0/semver/compare.js +18 -0
  19. package/esm/deps/deno.land/std@0.205.0/semver/compare_build.d.ts +13 -0
  20. package/esm/deps/deno.land/std@0.205.0/semver/compare_build.js +23 -0
  21. package/esm/deps/deno.land/std@0.205.0/semver/constants.d.ts +42 -0
  22. package/esm/deps/deno.land/std@0.205.0/semver/constants.js +75 -0
  23. package/esm/deps/deno.land/std@0.205.0/semver/difference.d.ts +4 -0
  24. package/esm/deps/deno.land/std@0.205.0/semver/difference.js +26 -0
  25. package/esm/deps/deno.land/std@0.205.0/semver/eq.d.ts +4 -0
  26. package/esm/deps/deno.land/std@0.205.0/semver/eq.js +7 -0
  27. package/esm/deps/deno.land/std@0.205.0/semver/format.d.ts +12 -0
  28. package/esm/deps/deno.land/std@0.205.0/semver/format.js +54 -0
  29. package/esm/deps/deno.land/std@0.205.0/semver/gt.d.ts +3 -0
  30. package/esm/deps/deno.land/std@0.205.0/semver/gt.js +5 -0
  31. package/esm/deps/deno.land/std@0.205.0/semver/gte.d.ts +3 -0
  32. package/esm/deps/deno.land/std@0.205.0/semver/gte.js +5 -0
  33. package/esm/deps/deno.land/std@0.205.0/semver/gtr.d.ts +3 -0
  34. package/esm/deps/deno.land/std@0.205.0/semver/gtr.js +5 -0
  35. package/esm/deps/deno.land/std@0.205.0/semver/increment.d.ts +28 -0
  36. package/esm/deps/deno.land/std@0.205.0/semver/increment.js +207 -0
  37. package/esm/deps/deno.land/std@0.205.0/semver/is_semver.d.ts +17 -0
  38. package/esm/deps/deno.land/std@0.205.0/semver/is_semver.js +41 -0
  39. package/esm/deps/deno.land/std@0.205.0/semver/is_semver_comparator.d.ts +12 -0
  40. package/esm/deps/deno.land/std@0.205.0/semver/is_semver_comparator.js +31 -0
  41. package/esm/deps/deno.land/std@0.205.0/semver/is_semver_range.d.ts +12 -0
  42. package/esm/deps/deno.land/std@0.205.0/semver/is_semver_range.js +22 -0
  43. package/esm/deps/deno.land/std@0.205.0/semver/lt.d.ts +3 -0
  44. package/esm/deps/deno.land/std@0.205.0/semver/lt.js +5 -0
  45. package/esm/deps/deno.land/std@0.205.0/semver/lte.d.ts +3 -0
  46. package/esm/deps/deno.land/std@0.205.0/semver/lte.js +5 -0
  47. package/esm/deps/deno.land/std@0.205.0/semver/ltr.d.ts +3 -0
  48. package/esm/deps/deno.land/std@0.205.0/semver/ltr.js +5 -0
  49. package/esm/deps/deno.land/std@0.205.0/semver/max_satisfying.d.ts +9 -0
  50. package/esm/deps/deno.land/std@0.205.0/semver/max_satisfying.js +14 -0
  51. package/esm/deps/deno.land/std@0.205.0/semver/min_satisfying.d.ts +9 -0
  52. package/esm/deps/deno.land/std@0.205.0/semver/min_satisfying.js +14 -0
  53. package/esm/deps/deno.land/{std@0.173.0 → std@0.205.0}/semver/mod.d.ts +88 -176
  54. package/esm/deps/deno.land/std@0.205.0/semver/mod.js +313 -0
  55. package/esm/deps/deno.land/std@0.205.0/semver/neq.d.ts +3 -0
  56. package/esm/deps/deno.land/std@0.205.0/semver/neq.js +5 -0
  57. package/esm/deps/deno.land/std@0.205.0/semver/outside.d.ts +11 -0
  58. package/esm/deps/deno.land/std@0.205.0/semver/outside.js +67 -0
  59. package/esm/deps/deno.land/std@0.205.0/semver/parse.d.ts +8 -0
  60. package/esm/deps/deno.land/std@0.205.0/semver/parse.js +66 -0
  61. package/esm/deps/deno.land/std@0.205.0/semver/parse_comparator.d.ts +7 -0
  62. package/esm/deps/deno.land/std@0.205.0/semver/parse_comparator.js +28 -0
  63. package/esm/deps/deno.land/std@0.205.0/semver/parse_range.d.ts +7 -0
  64. package/esm/deps/deno.land/std@0.205.0/semver/parse_range.js +292 -0
  65. package/esm/deps/deno.land/std@0.205.0/semver/range_format.d.ts +8 -0
  66. package/esm/deps/deno.land/std@0.205.0/semver/range_format.js +11 -0
  67. package/esm/deps/deno.land/std@0.205.0/semver/range_intersects.d.ts +8 -0
  68. package/esm/deps/deno.land/std@0.205.0/semver/range_intersects.js +35 -0
  69. package/esm/deps/deno.land/std@0.205.0/semver/range_max.d.ts +7 -0
  70. package/esm/deps/deno.land/std@0.205.0/semver/range_max.js +15 -0
  71. package/esm/deps/deno.land/std@0.205.0/semver/range_min.d.ts +7 -0
  72. package/esm/deps/deno.land/std@0.205.0/semver/range_min.js +14 -0
  73. package/esm/deps/deno.land/std@0.205.0/semver/rcompare.d.ts +8 -0
  74. package/esm/deps/deno.land/std@0.205.0/semver/rcompare.js +10 -0
  75. package/esm/deps/deno.land/std@0.205.0/semver/rsort.d.ts +3 -0
  76. package/esm/deps/deno.land/std@0.205.0/semver/rsort.js +5 -0
  77. package/esm/deps/deno.land/std@0.205.0/semver/sort.d.ts +3 -0
  78. package/esm/deps/deno.land/std@0.205.0/semver/sort.js +5 -0
  79. package/esm/deps/deno.land/std@0.205.0/semver/test_comparator.d.ts +8 -0
  80. package/esm/deps/deno.land/std@0.205.0/semver/test_comparator.js +10 -0
  81. package/esm/deps/deno.land/std@0.205.0/semver/test_range.d.ts +8 -0
  82. package/esm/deps/deno.land/std@0.205.0/semver/test_range.js +16 -0
  83. package/esm/deps/deno.land/std@0.205.0/semver/types.d.ts +44 -0
  84. package/esm/deps/deno.land/std@0.205.0/semver/types.js +2 -0
  85. package/esm/src/Changelog.d.ts +6 -2
  86. package/esm/src/Changelog.js +42 -4
  87. package/esm/src/Release.d.ts +5 -4
  88. package/esm/src/Release.js +21 -22
  89. package/esm/src/deps.d.ts +2 -1
  90. package/esm/src/deps.js +1 -1
  91. package/esm/src/settings.d.ts +17 -0
  92. package/esm/src/settings.js +47 -0
  93. package/esm/test/changelog.custom.type.md +2 -3
  94. package/esm/test/changelog.expected.linted.md +3 -4
  95. package/esm/test/changelog.expected.md +3 -4
  96. package/esm/test/changelog.md +3 -4
  97. package/esm/test/empty.expected.md +2 -2
  98. package/package.json +2 -2
  99. package/script/_dnt.shims.js +0 -1
  100. package/script/bin.js +22 -20
  101. package/script/deps/deno.land/std@0.205.0/semver/_shared.d.ts +42 -0
  102. package/script/deps/deno.land/std@0.205.0/semver/_shared.js +248 -0
  103. package/script/deps/deno.land/std@0.205.0/semver/cmp.d.ts +9 -0
  104. package/script/deps/deno.land/std@0.205.0/semver/cmp.js +39 -0
  105. package/script/deps/deno.land/std@0.205.0/semver/comparator_format.d.ts +8 -0
  106. package/script/deps/deno.land/std@0.205.0/semver/comparator_format.js +15 -0
  107. package/script/deps/deno.land/std@0.205.0/semver/comparator_intersects.d.ts +8 -0
  108. package/script/deps/deno.land/std@0.205.0/semver/comparator_intersects.js +49 -0
  109. package/script/deps/deno.land/std@0.205.0/semver/comparator_max.d.ts +9 -0
  110. package/script/deps/deno.land/std@0.205.0/semver/comparator_max.js +49 -0
  111. package/script/deps/deno.land/std@0.205.0/semver/comparator_min.d.ts +8 -0
  112. package/script/deps/deno.land/std@0.205.0/semver/comparator_min.js +36 -0
  113. package/script/deps/deno.land/std@0.205.0/semver/compare.d.ts +10 -0
  114. package/script/deps/deno.land/std@0.205.0/semver/compare.js +22 -0
  115. package/script/deps/deno.land/std@0.205.0/semver/compare_build.d.ts +13 -0
  116. package/script/deps/deno.land/std@0.205.0/semver/compare_build.js +27 -0
  117. package/script/deps/deno.land/std@0.205.0/semver/constants.d.ts +42 -0
  118. package/script/deps/deno.land/std@0.205.0/semver/constants.js +78 -0
  119. package/script/deps/deno.land/std@0.205.0/semver/difference.d.ts +4 -0
  120. package/script/deps/deno.land/std@0.205.0/semver/difference.js +30 -0
  121. package/script/deps/deno.land/std@0.205.0/semver/eq.d.ts +4 -0
  122. package/script/deps/deno.land/std@0.205.0/semver/eq.js +11 -0
  123. package/script/deps/deno.land/std@0.205.0/semver/format.d.ts +12 -0
  124. package/script/deps/deno.land/std@0.205.0/semver/format.js +58 -0
  125. package/script/deps/deno.land/std@0.205.0/semver/gt.d.ts +3 -0
  126. package/script/deps/deno.land/std@0.205.0/semver/gt.js +9 -0
  127. package/script/deps/deno.land/std@0.205.0/semver/gte.d.ts +3 -0
  128. package/script/deps/deno.land/std@0.205.0/semver/gte.js +9 -0
  129. package/script/deps/deno.land/std@0.205.0/semver/gtr.d.ts +3 -0
  130. package/script/deps/deno.land/std@0.205.0/semver/gtr.js +9 -0
  131. package/script/deps/deno.land/std@0.205.0/semver/increment.d.ts +28 -0
  132. package/script/deps/deno.land/std@0.205.0/semver/increment.js +211 -0
  133. package/script/deps/deno.land/std@0.205.0/semver/is_semver.d.ts +17 -0
  134. package/script/deps/deno.land/std@0.205.0/semver/is_semver.js +45 -0
  135. package/script/deps/deno.land/std@0.205.0/semver/is_semver_comparator.d.ts +12 -0
  136. package/script/deps/deno.land/std@0.205.0/semver/is_semver_comparator.js +35 -0
  137. package/script/deps/deno.land/std@0.205.0/semver/is_semver_range.d.ts +12 -0
  138. package/script/deps/deno.land/std@0.205.0/semver/is_semver_range.js +26 -0
  139. package/script/deps/deno.land/std@0.205.0/semver/lt.d.ts +3 -0
  140. package/script/deps/deno.land/std@0.205.0/semver/lt.js +9 -0
  141. package/script/deps/deno.land/std@0.205.0/semver/lte.d.ts +3 -0
  142. package/script/deps/deno.land/std@0.205.0/semver/lte.js +9 -0
  143. package/script/deps/deno.land/std@0.205.0/semver/ltr.d.ts +3 -0
  144. package/script/deps/deno.land/std@0.205.0/semver/ltr.js +9 -0
  145. package/script/deps/deno.land/std@0.205.0/semver/max_satisfying.d.ts +9 -0
  146. package/script/deps/deno.land/std@0.205.0/semver/max_satisfying.js +18 -0
  147. package/script/deps/deno.land/std@0.205.0/semver/min_satisfying.d.ts +9 -0
  148. package/script/deps/deno.land/std@0.205.0/semver/min_satisfying.js +18 -0
  149. package/script/deps/deno.land/{std@0.173.0 → std@0.205.0}/semver/mod.d.ts +88 -176
  150. package/script/deps/deno.land/std@0.205.0/semver/mod.js +330 -0
  151. package/script/deps/deno.land/std@0.205.0/semver/neq.d.ts +3 -0
  152. package/script/deps/deno.land/std@0.205.0/semver/neq.js +9 -0
  153. package/script/deps/deno.land/std@0.205.0/semver/outside.d.ts +11 -0
  154. package/script/deps/deno.land/std@0.205.0/semver/outside.js +71 -0
  155. package/script/deps/deno.land/std@0.205.0/semver/parse.d.ts +8 -0
  156. package/script/deps/deno.land/std@0.205.0/semver/parse.js +70 -0
  157. package/script/deps/deno.land/std@0.205.0/semver/parse_comparator.d.ts +7 -0
  158. package/script/deps/deno.land/std@0.205.0/semver/parse_comparator.js +32 -0
  159. package/script/deps/deno.land/std@0.205.0/semver/parse_range.d.ts +7 -0
  160. package/script/deps/deno.land/std@0.205.0/semver/parse_range.js +296 -0
  161. package/script/deps/deno.land/std@0.205.0/semver/range_format.d.ts +8 -0
  162. package/script/deps/deno.land/std@0.205.0/semver/range_format.js +15 -0
  163. package/script/deps/deno.land/std@0.205.0/semver/range_intersects.d.ts +8 -0
  164. package/script/deps/deno.land/std@0.205.0/semver/range_intersects.js +39 -0
  165. package/script/deps/deno.land/std@0.205.0/semver/range_max.d.ts +7 -0
  166. package/script/deps/deno.land/std@0.205.0/semver/range_max.js +19 -0
  167. package/script/deps/deno.land/std@0.205.0/semver/range_min.d.ts +7 -0
  168. package/script/deps/deno.land/std@0.205.0/semver/range_min.js +18 -0
  169. package/script/deps/deno.land/std@0.205.0/semver/rcompare.d.ts +8 -0
  170. package/script/deps/deno.land/std@0.205.0/semver/rcompare.js +14 -0
  171. package/script/deps/deno.land/std@0.205.0/semver/rsort.d.ts +3 -0
  172. package/script/deps/deno.land/std@0.205.0/semver/rsort.js +9 -0
  173. package/script/deps/deno.land/std@0.205.0/semver/sort.d.ts +3 -0
  174. package/script/deps/deno.land/std@0.205.0/semver/sort.js +9 -0
  175. package/script/deps/deno.land/std@0.205.0/semver/test_comparator.d.ts +8 -0
  176. package/script/deps/deno.land/std@0.205.0/semver/test_comparator.js +14 -0
  177. package/script/deps/deno.land/std@0.205.0/semver/test_range.d.ts +8 -0
  178. package/script/deps/deno.land/std@0.205.0/semver/test_range.js +20 -0
  179. package/script/deps/deno.land/std@0.205.0/semver/types.d.ts +44 -0
  180. package/script/deps/deno.land/std@0.205.0/semver/types.js +3 -0
  181. package/script/src/Changelog.d.ts +6 -2
  182. package/script/src/Changelog.js +41 -3
  183. package/script/src/Release.d.ts +5 -4
  184. package/script/src/Release.js +20 -21
  185. package/script/src/deps.d.ts +2 -1
  186. package/script/src/deps.js +5 -6
  187. package/script/src/settings.d.ts +17 -0
  188. package/script/src/settings.js +51 -0
  189. package/script/test/changelog.custom.type.md +2 -3
  190. package/script/test/changelog.expected.linted.md +3 -4
  191. package/script/test/changelog.expected.md +3 -4
  192. package/script/test/changelog.md +3 -4
  193. package/script/test/empty.expected.md +2 -2
  194. package/esm/_dnt.test_shims.d.ts +0 -5
  195. package/esm/deps/deno.land/std@0.133.0/fmt/colors.d.ts +0 -270
  196. package/esm/deps/deno.land/std@0.133.0/testing/_diff.d.ts +0 -23
  197. package/esm/deps/deno.land/std@0.133.0/testing/asserts.d.ts +0 -167
  198. package/esm/deps/deno.land/std@0.173.0/semver/mod.js +0 -1420
  199. package/esm/test/Change.test.d.ts +0 -1
  200. package/esm/test/deps.d.ts +0 -1
  201. package/esm/test/fixture/CustomRelease.d.ts +0 -8
  202. package/esm/test/parser.test.d.ts +0 -1
  203. package/esm/test/test.d.ts +0 -1
  204. package/script/_dnt.test_shims.d.ts +0 -5
  205. package/script/deps/deno.land/std@0.133.0/fmt/colors.d.ts +0 -270
  206. package/script/deps/deno.land/std@0.133.0/testing/_diff.d.ts +0 -23
  207. package/script/deps/deno.land/std@0.133.0/testing/asserts.d.ts +0 -167
  208. package/script/deps/deno.land/std@0.173.0/semver/mod.js +0 -1458
  209. package/script/test/Change.test.d.ts +0 -1
  210. package/script/test/deps.d.ts +0 -1
  211. package/script/test/fixture/CustomRelease.d.ts +0 -8
  212. package/script/test/parser.test.d.ts +0 -1
  213. package/script/test/test.d.ts +0 -1
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.increment = void 0;
4
+ function pre(prerelease, identifier) {
5
+ let values = [...prerelease];
6
+ // In reality this will either be 0, 1 or 2 entries.
7
+ let i = values.length;
8
+ while (--i >= 0) {
9
+ if (typeof values[i] === "number") {
10
+ // deno-fmt-ignore
11
+ values[i]++;
12
+ i = -2;
13
+ }
14
+ }
15
+ if (i === -1) {
16
+ // didn't increment anything
17
+ values.push(0);
18
+ }
19
+ if (identifier) {
20
+ // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
21
+ // 1.2.0-beta.foobar or 1.2.0-beta bumps to 1.2.0-beta.0
22
+ if (values[0] === identifier) {
23
+ if (isNaN(values[1])) {
24
+ values = [identifier, 0];
25
+ }
26
+ }
27
+ else {
28
+ values = [identifier, 0];
29
+ }
30
+ }
31
+ return values;
32
+ }
33
+ function parseBuild(build, metadata) {
34
+ return metadata === undefined ? build : metadata.split(".").filter((m) => m);
35
+ }
36
+ /**
37
+ * Returns the new version resulting from an increment by release type.
38
+ *
39
+ * `premajor`, `preminor` and `prepatch` will bump the version up to the next version,
40
+ * based on the type, and will also add prerelease metadata.
41
+ *
42
+ * If called from a non-prerelease version, the `prerelease` will work the same as
43
+ * `prepatch`. The patch version is incremented and then is made into a prerelease. If
44
+ * the input version is already a prerelease it will simply increment the prerelease
45
+ * metadata.
46
+ *
47
+ * If a prerelease identifier is specified without a number then a number will be added.
48
+ * For example `pre` will result in `pre.0`. If the existing version already has a
49
+ * prerelease with a number and its the same prerelease identifier then the number
50
+ * will be incremented. If the identifier differs from the new identifier then the new
51
+ * identifier is applied and the number is reset to `0`.
52
+ *
53
+ * If the input version has build metadata it will be preserved on the resulting version
54
+ * unless a new build parameter is specified. Specifying `""` will unset existing build
55
+ * metadata.
56
+ * @param version The version to increment
57
+ * @param release The type of increment to perform
58
+ * @param prerelease The pre-release metadata of the new version
59
+ * @param build The build metadata of the new version
60
+ * @returns
61
+ */
62
+ function increment(version, release, prerelease, build) {
63
+ let result;
64
+ switch (release) {
65
+ case "premajor":
66
+ result = {
67
+ major: version.major + 1,
68
+ minor: 0,
69
+ patch: 0,
70
+ prerelease: pre(version.prerelease, prerelease),
71
+ build: parseBuild(version.build, build),
72
+ };
73
+ break;
74
+ case "preminor":
75
+ result = {
76
+ major: version.major,
77
+ minor: version.minor + 1,
78
+ patch: 0,
79
+ prerelease: pre(version.prerelease, prerelease),
80
+ build: parseBuild(version.build, build),
81
+ };
82
+ break;
83
+ case "prepatch":
84
+ result = {
85
+ major: version.major,
86
+ minor: version.minor,
87
+ patch: version.patch + 1,
88
+ prerelease: pre(version.prerelease, prerelease),
89
+ build: parseBuild(version.build, build),
90
+ };
91
+ break;
92
+ // If the input is a non-prerelease version, this acts the same as
93
+ // prepatch.
94
+ case "prerelease":
95
+ if (version.prerelease.length === 0) {
96
+ result = {
97
+ major: version.major,
98
+ minor: version.minor,
99
+ patch: version.patch + 1,
100
+ prerelease: pre(version.prerelease, prerelease),
101
+ build: parseBuild(version.build, build),
102
+ };
103
+ break;
104
+ }
105
+ else {
106
+ result = {
107
+ major: version.major,
108
+ minor: version.minor,
109
+ patch: version.patch,
110
+ prerelease: pre(version.prerelease, prerelease),
111
+ build: parseBuild(version.build, build),
112
+ };
113
+ break;
114
+ }
115
+ case "major":
116
+ // If this is a pre-major version, bump up to the same major version.
117
+ // Otherwise increment major.
118
+ // 1.0.0-5 bumps to 1.0.0
119
+ // 1.1.0 bumps to 2.0.0
120
+ if (version.minor !== 0 ||
121
+ version.patch !== 0 ||
122
+ version.prerelease.length === 0) {
123
+ result = {
124
+ major: version.major + 1,
125
+ minor: 0,
126
+ patch: 0,
127
+ prerelease: [],
128
+ build: parseBuild(version.build, build),
129
+ };
130
+ break;
131
+ }
132
+ else {
133
+ result = {
134
+ major: version.major,
135
+ minor: 0,
136
+ patch: 0,
137
+ prerelease: [],
138
+ build: parseBuild(version.build, build),
139
+ };
140
+ break;
141
+ }
142
+ case "minor":
143
+ // If this is a pre-minor version, bump up to the same minor version.
144
+ // Otherwise increment minor.
145
+ // 1.2.0-5 bumps to 1.2.0
146
+ // 1.2.1 bumps to 1.3.0
147
+ if (version.patch !== 0 ||
148
+ version.prerelease.length === 0) {
149
+ result = {
150
+ major: version.major,
151
+ minor: version.minor + 1,
152
+ patch: 0,
153
+ prerelease: [],
154
+ build: parseBuild(version.build, build),
155
+ };
156
+ break;
157
+ }
158
+ else {
159
+ result = {
160
+ major: version.major,
161
+ minor: version.minor,
162
+ patch: 0,
163
+ prerelease: [],
164
+ build: parseBuild(version.build, build),
165
+ };
166
+ break;
167
+ }
168
+ case "patch":
169
+ // If this is not a pre-release version, it will increment the patch.
170
+ // If it is a pre-release it will bump up to the same patch version.
171
+ // 1.2.0-5 patches to 1.2.0
172
+ // 1.2.0 patches to 1.2.1
173
+ if (version.prerelease.length === 0) {
174
+ result = {
175
+ major: version.major,
176
+ minor: version.minor,
177
+ patch: version.patch + 1,
178
+ prerelease: [],
179
+ build: parseBuild(version.build, build),
180
+ };
181
+ break;
182
+ }
183
+ else {
184
+ result = {
185
+ major: version.major,
186
+ minor: version.minor,
187
+ patch: version.patch,
188
+ prerelease: [],
189
+ build: parseBuild(version.build, build),
190
+ };
191
+ break;
192
+ }
193
+ // 1.0.0 "pre" would become 1.0.0-0
194
+ // 1.0.0-0 would become 1.0.0-1
195
+ // 1.0.0-beta.0 would be come 1.0.0-beta.1
196
+ // switching the pre identifier resets the number to 0
197
+ case "pre":
198
+ result = {
199
+ major: version.major,
200
+ minor: version.minor,
201
+ patch: version.patch,
202
+ prerelease: pre(version.prerelease, prerelease),
203
+ build: parseBuild(version.build, build),
204
+ };
205
+ break;
206
+ default:
207
+ throw new Error(`invalid increment argument: ${release}`);
208
+ }
209
+ return result;
210
+ }
211
+ exports.increment = increment;
@@ -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;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSemVer = void 0;
4
+ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
5
+ const constants_js_1 = require("./constants.js");
6
+ const _shared_js_1 = require("./_shared.js");
7
+ /**
8
+ * Checks to see if value is a valid SemVer object. It does a check
9
+ * into each field including prerelease and build.
10
+ *
11
+ * Some invalid SemVer sentinels can still return true such as ANY and INVALID.
12
+ * An object which has the same value as a sentinel but isn't reference equal
13
+ * will still fail.
14
+ *
15
+ * Objects which are valid SemVer objects but have _extra_ fields are still
16
+ * considered SemVer objects and this will return true.
17
+ *
18
+ * A type assertion is added to the value.
19
+ * @param value The value to check to see if its a valid SemVer object
20
+ * @returns True if value is a valid SemVer otherwise false
21
+ */
22
+ function isSemVer(value) {
23
+ if (value === null || value === undefined)
24
+ return false;
25
+ if (Array.isArray(value))
26
+ return false;
27
+ if (typeof value !== "object")
28
+ return false;
29
+ if (value === constants_js_1.INVALID)
30
+ return true;
31
+ if (value === constants_js_1.ANY)
32
+ return true;
33
+ const { major, minor, patch, build, prerelease } = value;
34
+ const result = typeof major === "number" && (0, _shared_js_1.isValidNumber)(major) &&
35
+ typeof minor === "number" && (0, _shared_js_1.isValidNumber)(minor) &&
36
+ typeof patch === "number" && (0, _shared_js_1.isValidNumber)(patch) &&
37
+ Array.isArray(prerelease) &&
38
+ Array.isArray(build) &&
39
+ prerelease.every((v) => typeof v === "string" || typeof v === "number") &&
40
+ prerelease.filter((v) => typeof v === "string").every((v) => (0, _shared_js_1.isValidString)(v)) &&
41
+ prerelease.filter((v) => typeof v === "number").every((v) => (0, _shared_js_1.isValidNumber)(v)) &&
42
+ build.every((v) => typeof v === "string" && (0, _shared_js_1.isValidString)(v));
43
+ return result;
44
+ }
45
+ exports.isSemVer = isSemVer;
@@ -0,0 +1,12 @@
1
+ import type { SemVerComparator } from "./types.js";
2
+ /**
3
+ * Does a deep check on the value to see if it is a valid SemVerComparator object.
4
+ *
5
+ * Objects with extra fields are still considered valid if they have at
6
+ * least the correct fields.
7
+ *
8
+ * Adds a type assertion if true.
9
+ * @param value The value to check if its a SemVerComparator
10
+ * @returns True if the object is a SemVerComparator otherwise false
11
+ */
12
+ export declare function isSemVerComparator(value: unknown): value is SemVerComparator;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSemVerComparator = void 0;
4
+ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
5
+ const is_semver_js_1 = require("./is_semver.js");
6
+ const _shared_js_1 = require("./_shared.js");
7
+ const constants_js_1 = require("./constants.js");
8
+ /**
9
+ * Does a deep check on the value to see if it is a valid SemVerComparator object.
10
+ *
11
+ * Objects with extra fields are still considered valid if they have at
12
+ * least the correct fields.
13
+ *
14
+ * Adds a type assertion if true.
15
+ * @param value The value to check if its a SemVerComparator
16
+ * @returns True if the object is a SemVerComparator otherwise false
17
+ */
18
+ function isSemVerComparator(value) {
19
+ if (value === null || value === undefined)
20
+ return false;
21
+ if (value === constants_js_1.NONE)
22
+ return true;
23
+ if (value === constants_js_1.ALL)
24
+ return true;
25
+ if (Array.isArray(value))
26
+ return false;
27
+ if (typeof value !== "object")
28
+ return false;
29
+ const { operator, semver, min, max } = value;
30
+ return ((0, _shared_js_1.isValidOperator)(operator) &&
31
+ (0, is_semver_js_1.isSemVer)(semver) &&
32
+ (0, is_semver_js_1.isSemVer)(min) &&
33
+ (0, is_semver_js_1.isSemVer)(max));
34
+ }
35
+ exports.isSemVerComparator = isSemVerComparator;
@@ -0,0 +1,12 @@
1
+ import type { SemVerRange } from "./types.js";
2
+ /**
3
+ * Does a deep check on the object to determine if its a valid range.
4
+ *
5
+ * Objects with extra fields are still considered valid if they have at
6
+ * least the correct fields.
7
+ *
8
+ * Adds a type assertion if true.
9
+ * @param value The value to check if its a valid SemVerRange
10
+ * @returns True if its a valid SemVerRange otherwise false.
11
+ */
12
+ export declare function isSemVerRange(value: unknown): value is SemVerRange;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSemVerRange = void 0;
4
+ const is_semver_comparator_js_1 = require("./is_semver_comparator.js");
5
+ /**
6
+ * Does a deep check on the object to determine if its a valid range.
7
+ *
8
+ * Objects with extra fields are still considered valid if they have at
9
+ * least the correct fields.
10
+ *
11
+ * Adds a type assertion if true.
12
+ * @param value The value to check if its a valid SemVerRange
13
+ * @returns True if its a valid SemVerRange otherwise false.
14
+ */
15
+ function isSemVerRange(value) {
16
+ if (value === null || value === undefined)
17
+ return false;
18
+ if (Array.isArray(value))
19
+ return false;
20
+ if (typeof value !== "object")
21
+ return false;
22
+ const { ranges } = value;
23
+ return (Array.isArray(ranges),
24
+ ranges.every((r) => Array.isArray(r) && r.every((c) => (0, is_semver_comparator_js_1.isSemVerComparator)(c))));
25
+ }
26
+ exports.isSemVerRange = isSemVerRange;
@@ -0,0 +1,3 @@
1
+ import type { SemVer } from "./types.js";
2
+ /** Less than comparison */
3
+ export declare function lt(s0: SemVer, s1: SemVer): boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lt = void 0;
4
+ const compare_js_1 = require("./compare.js");
5
+ /** Less than comparison */
6
+ function lt(s0, s1) {
7
+ return (0, compare_js_1.compare)(s0, s1) < 0;
8
+ }
9
+ exports.lt = lt;
@@ -0,0 +1,3 @@
1
+ import type { SemVer } from "./types.js";
2
+ /** Less than or equal to comparison */
3
+ export declare function lte(s0: SemVer, s1: SemVer): boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lte = void 0;
4
+ const compare_js_1 = require("./compare.js");
5
+ /** Less than or equal to comparison */
6
+ function lte(s0, s1) {
7
+ return (0, compare_js_1.compare)(s0, s1) <= 0;
8
+ }
9
+ exports.lte = lte;
@@ -0,0 +1,3 @@
1
+ import type { SemVer, SemVerRange } from "./types.js";
2
+ /** Greater than range comparison */
3
+ export declare function ltr(version: SemVer, range: SemVerRange): boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ltr = void 0;
4
+ const outside_js_1 = require("./outside.js");
5
+ /** Greater than range comparison */
6
+ function ltr(version, range) {
7
+ return (0, outside_js_1.outside)(version, range, "<");
8
+ }
9
+ exports.ltr = ltr;
@@ -0,0 +1,9 @@
1
+ import type { SemVer, SemVerRange } from "./types.js";
2
+ /**
3
+ * Returns the highest version in the list that satisfies the range, or `undefined`
4
+ * if none of them do.
5
+ * @param versions The versions to check.
6
+ * @param range The range of possible versions to compare to.
7
+ * @returns The highest version in versions that satisfies the range.
8
+ */
9
+ export declare function maxSatisfying(versions: SemVer[], range: SemVerRange): SemVer | undefined;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.maxSatisfying = void 0;
4
+ const sort_js_1 = require("./sort.js");
5
+ const test_range_js_1 = require("./test_range.js");
6
+ /**
7
+ * Returns the highest version in the list that satisfies the range, or `undefined`
8
+ * if none of them do.
9
+ * @param versions The versions to check.
10
+ * @param range The range of possible versions to compare to.
11
+ * @returns The highest version in versions that satisfies the range.
12
+ */
13
+ function maxSatisfying(versions, range) {
14
+ const satisfying = versions.filter((v) => (0, test_range_js_1.testRange)(v, range));
15
+ const sorted = (0, sort_js_1.sort)(satisfying);
16
+ return sorted.pop();
17
+ }
18
+ exports.maxSatisfying = maxSatisfying;
@@ -0,0 +1,9 @@
1
+ import type { SemVer, SemVerRange } from "./types.js";
2
+ /**
3
+ * Returns the lowest version in the list that satisfies the range, or `undefined` if
4
+ * none of them do.
5
+ * @param versions The versions to check.
6
+ * @param range The range of possible versions to compare to.
7
+ * @returns The lowest version in versions that satisfies the range.
8
+ */
9
+ export declare function minSatisfying(versions: SemVer[], range: SemVerRange): SemVer | undefined;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.minSatisfying = void 0;
4
+ const sort_js_1 = require("./sort.js");
5
+ const test_range_js_1 = require("./test_range.js");
6
+ /**
7
+ * Returns the lowest version in the list that satisfies the range, or `undefined` if
8
+ * none of them do.
9
+ * @param versions The versions to check.
10
+ * @param range The range of possible versions to compare to.
11
+ * @returns The lowest version in versions that satisfies the range.
12
+ */
13
+ function minSatisfying(versions, range) {
14
+ const satisfying = versions.filter((v) => (0, test_range_js_1.testRange)(v, range));
15
+ const sorted = (0, sort_js_1.sort)(satisfying);
16
+ return sorted.shift();
17
+ }
18
+ exports.minSatisfying = minSatisfying;