keep-a-changelog 2.3.0 → 2.4.1

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 (207) hide show
  1. package/CHANGELOG.md +17 -2
  2. package/README.md +20 -6
  3. package/esm/_dnt.shims.js +0 -1
  4. package/esm/deps/deno.land/std@0.203.0/semver/_shared.d.ts +42 -0
  5. package/esm/deps/deno.land/std@0.203.0/semver/_shared.js +230 -0
  6. package/esm/deps/deno.land/std@0.203.0/semver/cmp.d.ts +9 -0
  7. package/esm/deps/deno.land/std@0.203.0/semver/cmp.js +35 -0
  8. package/esm/deps/deno.land/std@0.203.0/semver/comparator_format.d.ts +8 -0
  9. package/esm/deps/deno.land/std@0.203.0/semver/comparator_format.js +11 -0
  10. package/esm/deps/deno.land/std@0.203.0/semver/comparator_intersects.d.ts +8 -0
  11. package/esm/deps/deno.land/std@0.203.0/semver/comparator_intersects.js +45 -0
  12. package/esm/deps/deno.land/std@0.203.0/semver/comparator_max.d.ts +9 -0
  13. package/esm/deps/deno.land/std@0.203.0/semver/comparator_max.js +45 -0
  14. package/esm/deps/deno.land/std@0.203.0/semver/comparator_min.d.ts +8 -0
  15. package/esm/deps/deno.land/std@0.203.0/semver/comparator_min.js +32 -0
  16. package/esm/deps/deno.land/std@0.203.0/semver/compare.d.ts +10 -0
  17. package/esm/deps/deno.land/std@0.203.0/semver/compare.js +18 -0
  18. package/esm/deps/deno.land/std@0.203.0/semver/compare_build.d.ts +13 -0
  19. package/esm/deps/deno.land/std@0.203.0/semver/compare_build.js +23 -0
  20. package/esm/deps/deno.land/std@0.203.0/semver/constants.d.ts +42 -0
  21. package/esm/deps/deno.land/std@0.203.0/semver/constants.js +75 -0
  22. package/esm/deps/deno.land/std@0.203.0/semver/difference.d.ts +4 -0
  23. package/esm/deps/deno.land/std@0.203.0/semver/difference.js +26 -0
  24. package/esm/deps/deno.land/std@0.203.0/semver/eq.d.ts +4 -0
  25. package/esm/deps/deno.land/std@0.203.0/semver/eq.js +7 -0
  26. package/esm/deps/deno.land/std@0.203.0/semver/format.d.ts +12 -0
  27. package/esm/deps/deno.land/std@0.203.0/semver/format.js +54 -0
  28. package/esm/deps/deno.land/std@0.203.0/semver/gt.d.ts +3 -0
  29. package/esm/deps/deno.land/std@0.203.0/semver/gt.js +5 -0
  30. package/esm/deps/deno.land/std@0.203.0/semver/gte.d.ts +3 -0
  31. package/esm/deps/deno.land/std@0.203.0/semver/gte.js +5 -0
  32. package/esm/deps/deno.land/std@0.203.0/semver/gtr.d.ts +3 -0
  33. package/esm/deps/deno.land/std@0.203.0/semver/gtr.js +5 -0
  34. package/esm/deps/deno.land/std@0.203.0/semver/increment.d.ts +28 -0
  35. package/esm/deps/deno.land/std@0.203.0/semver/increment.js +207 -0
  36. package/esm/deps/deno.land/std@0.203.0/semver/is_semver.d.ts +17 -0
  37. package/esm/deps/deno.land/std@0.203.0/semver/is_semver.js +41 -0
  38. package/esm/deps/deno.land/std@0.203.0/semver/is_semver_comparator.d.ts +12 -0
  39. package/esm/deps/deno.land/std@0.203.0/semver/is_semver_comparator.js +31 -0
  40. package/esm/deps/deno.land/std@0.203.0/semver/is_semver_range.d.ts +12 -0
  41. package/esm/deps/deno.land/std@0.203.0/semver/is_semver_range.js +22 -0
  42. package/esm/deps/deno.land/std@0.203.0/semver/lt.d.ts +3 -0
  43. package/esm/deps/deno.land/std@0.203.0/semver/lt.js +5 -0
  44. package/esm/deps/deno.land/std@0.203.0/semver/lte.d.ts +3 -0
  45. package/esm/deps/deno.land/std@0.203.0/semver/lte.js +5 -0
  46. package/esm/deps/deno.land/std@0.203.0/semver/ltr.d.ts +3 -0
  47. package/esm/deps/deno.land/std@0.203.0/semver/ltr.js +5 -0
  48. package/esm/deps/deno.land/std@0.203.0/semver/max_satisfying.d.ts +9 -0
  49. package/esm/deps/deno.land/std@0.203.0/semver/max_satisfying.js +14 -0
  50. package/esm/deps/deno.land/std@0.203.0/semver/min_satisfying.d.ts +9 -0
  51. package/esm/deps/deno.land/std@0.203.0/semver/min_satisfying.js +14 -0
  52. package/esm/deps/deno.land/{std@0.173.0 → std@0.203.0}/semver/mod.d.ts +88 -176
  53. package/esm/deps/deno.land/std@0.203.0/semver/mod.js +313 -0
  54. package/esm/deps/deno.land/std@0.203.0/semver/neq.d.ts +3 -0
  55. package/esm/deps/deno.land/std@0.203.0/semver/neq.js +5 -0
  56. package/esm/deps/deno.land/std@0.203.0/semver/outside.d.ts +11 -0
  57. package/esm/deps/deno.land/std@0.203.0/semver/outside.js +67 -0
  58. package/esm/deps/deno.land/std@0.203.0/semver/parse.d.ts +8 -0
  59. package/esm/deps/deno.land/std@0.203.0/semver/parse.js +66 -0
  60. package/esm/deps/deno.land/std@0.203.0/semver/parse_comparator.d.ts +7 -0
  61. package/esm/deps/deno.land/std@0.203.0/semver/parse_comparator.js +28 -0
  62. package/esm/deps/deno.land/std@0.203.0/semver/parse_range.d.ts +7 -0
  63. package/esm/deps/deno.land/std@0.203.0/semver/parse_range.js +292 -0
  64. package/esm/deps/deno.land/std@0.203.0/semver/range_format.d.ts +8 -0
  65. package/esm/deps/deno.land/std@0.203.0/semver/range_format.js +11 -0
  66. package/esm/deps/deno.land/std@0.203.0/semver/range_intersects.d.ts +8 -0
  67. package/esm/deps/deno.land/std@0.203.0/semver/range_intersects.js +35 -0
  68. package/esm/deps/deno.land/std@0.203.0/semver/range_max.d.ts +7 -0
  69. package/esm/deps/deno.land/std@0.203.0/semver/range_max.js +15 -0
  70. package/esm/deps/deno.land/std@0.203.0/semver/range_min.d.ts +7 -0
  71. package/esm/deps/deno.land/std@0.203.0/semver/range_min.js +14 -0
  72. package/esm/deps/deno.land/std@0.203.0/semver/rcompare.d.ts +8 -0
  73. package/esm/deps/deno.land/std@0.203.0/semver/rcompare.js +10 -0
  74. package/esm/deps/deno.land/std@0.203.0/semver/rsort.d.ts +3 -0
  75. package/esm/deps/deno.land/std@0.203.0/semver/rsort.js +5 -0
  76. package/esm/deps/deno.land/std@0.203.0/semver/sort.d.ts +3 -0
  77. package/esm/deps/deno.land/std@0.203.0/semver/sort.js +5 -0
  78. package/esm/deps/deno.land/std@0.203.0/semver/test_comparator.d.ts +8 -0
  79. package/esm/deps/deno.land/std@0.203.0/semver/test_comparator.js +10 -0
  80. package/esm/deps/deno.land/std@0.203.0/semver/test_range.d.ts +8 -0
  81. package/esm/deps/deno.land/std@0.203.0/semver/test_range.js +16 -0
  82. package/esm/deps/deno.land/std@0.203.0/semver/types.d.ts +44 -0
  83. package/esm/deps/deno.land/std@0.203.0/semver/types.js +2 -0
  84. package/esm/src/Changelog.d.ts +4 -2
  85. package/esm/src/Changelog.js +25 -4
  86. package/esm/src/Release.d.ts +5 -4
  87. package/esm/src/Release.js +21 -22
  88. package/esm/src/deps.d.ts +2 -1
  89. package/esm/src/deps.js +1 -1
  90. package/esm/test/changelog.custom.type.md +2 -3
  91. package/esm/test/changelog.expected.linted.md +3 -4
  92. package/esm/test/changelog.expected.md +3 -4
  93. package/esm/test/changelog.md +3 -4
  94. package/esm/test/empty.expected.md +2 -2
  95. package/package.json +2 -2
  96. package/script/_dnt.shims.js +0 -1
  97. package/script/deps/deno.land/std@0.203.0/semver/_shared.d.ts +42 -0
  98. package/script/deps/deno.land/std@0.203.0/semver/_shared.js +248 -0
  99. package/script/deps/deno.land/std@0.203.0/semver/cmp.d.ts +9 -0
  100. package/script/deps/deno.land/std@0.203.0/semver/cmp.js +39 -0
  101. package/script/deps/deno.land/std@0.203.0/semver/comparator_format.d.ts +8 -0
  102. package/script/deps/deno.land/std@0.203.0/semver/comparator_format.js +15 -0
  103. package/script/deps/deno.land/std@0.203.0/semver/comparator_intersects.d.ts +8 -0
  104. package/script/deps/deno.land/std@0.203.0/semver/comparator_intersects.js +49 -0
  105. package/script/deps/deno.land/std@0.203.0/semver/comparator_max.d.ts +9 -0
  106. package/script/deps/deno.land/std@0.203.0/semver/comparator_max.js +49 -0
  107. package/script/deps/deno.land/std@0.203.0/semver/comparator_min.d.ts +8 -0
  108. package/script/deps/deno.land/std@0.203.0/semver/comparator_min.js +36 -0
  109. package/script/deps/deno.land/std@0.203.0/semver/compare.d.ts +10 -0
  110. package/script/deps/deno.land/std@0.203.0/semver/compare.js +22 -0
  111. package/script/deps/deno.land/std@0.203.0/semver/compare_build.d.ts +13 -0
  112. package/script/deps/deno.land/std@0.203.0/semver/compare_build.js +27 -0
  113. package/script/deps/deno.land/std@0.203.0/semver/constants.d.ts +42 -0
  114. package/script/deps/deno.land/std@0.203.0/semver/constants.js +78 -0
  115. package/script/deps/deno.land/std@0.203.0/semver/difference.d.ts +4 -0
  116. package/script/deps/deno.land/std@0.203.0/semver/difference.js +30 -0
  117. package/script/deps/deno.land/std@0.203.0/semver/eq.d.ts +4 -0
  118. package/script/deps/deno.land/std@0.203.0/semver/eq.js +11 -0
  119. package/script/deps/deno.land/std@0.203.0/semver/format.d.ts +12 -0
  120. package/script/deps/deno.land/std@0.203.0/semver/format.js +58 -0
  121. package/script/deps/deno.land/std@0.203.0/semver/gt.d.ts +3 -0
  122. package/script/deps/deno.land/std@0.203.0/semver/gt.js +9 -0
  123. package/script/deps/deno.land/std@0.203.0/semver/gte.d.ts +3 -0
  124. package/script/deps/deno.land/std@0.203.0/semver/gte.js +9 -0
  125. package/script/deps/deno.land/std@0.203.0/semver/gtr.d.ts +3 -0
  126. package/script/deps/deno.land/std@0.203.0/semver/gtr.js +9 -0
  127. package/script/deps/deno.land/std@0.203.0/semver/increment.d.ts +28 -0
  128. package/script/deps/deno.land/std@0.203.0/semver/increment.js +211 -0
  129. package/script/deps/deno.land/std@0.203.0/semver/is_semver.d.ts +17 -0
  130. package/script/deps/deno.land/std@0.203.0/semver/is_semver.js +45 -0
  131. package/script/deps/deno.land/std@0.203.0/semver/is_semver_comparator.d.ts +12 -0
  132. package/script/deps/deno.land/std@0.203.0/semver/is_semver_comparator.js +35 -0
  133. package/script/deps/deno.land/std@0.203.0/semver/is_semver_range.d.ts +12 -0
  134. package/script/deps/deno.land/std@0.203.0/semver/is_semver_range.js +26 -0
  135. package/script/deps/deno.land/std@0.203.0/semver/lt.d.ts +3 -0
  136. package/script/deps/deno.land/std@0.203.0/semver/lt.js +9 -0
  137. package/script/deps/deno.land/std@0.203.0/semver/lte.d.ts +3 -0
  138. package/script/deps/deno.land/std@0.203.0/semver/lte.js +9 -0
  139. package/script/deps/deno.land/std@0.203.0/semver/ltr.d.ts +3 -0
  140. package/script/deps/deno.land/std@0.203.0/semver/ltr.js +9 -0
  141. package/script/deps/deno.land/std@0.203.0/semver/max_satisfying.d.ts +9 -0
  142. package/script/deps/deno.land/std@0.203.0/semver/max_satisfying.js +18 -0
  143. package/script/deps/deno.land/std@0.203.0/semver/min_satisfying.d.ts +9 -0
  144. package/script/deps/deno.land/std@0.203.0/semver/min_satisfying.js +18 -0
  145. package/script/deps/deno.land/{std@0.173.0 → std@0.203.0}/semver/mod.d.ts +88 -176
  146. package/script/deps/deno.land/std@0.203.0/semver/mod.js +330 -0
  147. package/script/deps/deno.land/std@0.203.0/semver/neq.d.ts +3 -0
  148. package/script/deps/deno.land/std@0.203.0/semver/neq.js +9 -0
  149. package/script/deps/deno.land/std@0.203.0/semver/outside.d.ts +11 -0
  150. package/script/deps/deno.land/std@0.203.0/semver/outside.js +71 -0
  151. package/script/deps/deno.land/std@0.203.0/semver/parse.d.ts +8 -0
  152. package/script/deps/deno.land/std@0.203.0/semver/parse.js +70 -0
  153. package/script/deps/deno.land/std@0.203.0/semver/parse_comparator.d.ts +7 -0
  154. package/script/deps/deno.land/std@0.203.0/semver/parse_comparator.js +32 -0
  155. package/script/deps/deno.land/std@0.203.0/semver/parse_range.d.ts +7 -0
  156. package/script/deps/deno.land/std@0.203.0/semver/parse_range.js +296 -0
  157. package/script/deps/deno.land/std@0.203.0/semver/range_format.d.ts +8 -0
  158. package/script/deps/deno.land/std@0.203.0/semver/range_format.js +15 -0
  159. package/script/deps/deno.land/std@0.203.0/semver/range_intersects.d.ts +8 -0
  160. package/script/deps/deno.land/std@0.203.0/semver/range_intersects.js +39 -0
  161. package/script/deps/deno.land/std@0.203.0/semver/range_max.d.ts +7 -0
  162. package/script/deps/deno.land/std@0.203.0/semver/range_max.js +19 -0
  163. package/script/deps/deno.land/std@0.203.0/semver/range_min.d.ts +7 -0
  164. package/script/deps/deno.land/std@0.203.0/semver/range_min.js +18 -0
  165. package/script/deps/deno.land/std@0.203.0/semver/rcompare.d.ts +8 -0
  166. package/script/deps/deno.land/std@0.203.0/semver/rcompare.js +14 -0
  167. package/script/deps/deno.land/std@0.203.0/semver/rsort.d.ts +3 -0
  168. package/script/deps/deno.land/std@0.203.0/semver/rsort.js +9 -0
  169. package/script/deps/deno.land/std@0.203.0/semver/sort.d.ts +3 -0
  170. package/script/deps/deno.land/std@0.203.0/semver/sort.js +9 -0
  171. package/script/deps/deno.land/std@0.203.0/semver/test_comparator.d.ts +8 -0
  172. package/script/deps/deno.land/std@0.203.0/semver/test_comparator.js +14 -0
  173. package/script/deps/deno.land/std@0.203.0/semver/test_range.d.ts +8 -0
  174. package/script/deps/deno.land/std@0.203.0/semver/test_range.js +20 -0
  175. package/script/deps/deno.land/std@0.203.0/semver/types.d.ts +44 -0
  176. package/script/deps/deno.land/std@0.203.0/semver/types.js +3 -0
  177. package/script/src/Changelog.d.ts +4 -2
  178. package/script/src/Changelog.js +24 -3
  179. package/script/src/Release.d.ts +5 -4
  180. package/script/src/Release.js +20 -21
  181. package/script/src/deps.d.ts +2 -1
  182. package/script/src/deps.js +5 -6
  183. package/script/test/changelog.custom.type.md +2 -3
  184. package/script/test/changelog.expected.linted.md +3 -4
  185. package/script/test/changelog.expected.md +3 -4
  186. package/script/test/changelog.md +3 -4
  187. package/script/test/empty.expected.md +2 -2
  188. package/esm/_dnt.test_shims.d.ts +0 -5
  189. package/esm/deps/deno.land/std@0.133.0/fmt/colors.d.ts +0 -270
  190. package/esm/deps/deno.land/std@0.133.0/testing/_diff.d.ts +0 -23
  191. package/esm/deps/deno.land/std@0.133.0/testing/asserts.d.ts +0 -167
  192. package/esm/deps/deno.land/std@0.173.0/semver/mod.js +0 -1420
  193. package/esm/test/Change.test.d.ts +0 -1
  194. package/esm/test/deps.d.ts +0 -1
  195. package/esm/test/fixture/CustomRelease.d.ts +0 -8
  196. package/esm/test/parser.test.d.ts +0 -1
  197. package/esm/test/test.d.ts +0 -1
  198. package/script/_dnt.test_shims.d.ts +0 -5
  199. package/script/deps/deno.land/std@0.133.0/fmt/colors.d.ts +0 -270
  200. package/script/deps/deno.land/std@0.133.0/testing/_diff.d.ts +0 -23
  201. package/script/deps/deno.land/std@0.133.0/testing/asserts.d.ts +0 -167
  202. package/script/deps/deno.land/std@0.173.0/semver/mod.js +0 -1458
  203. package/script/test/Change.test.d.ts +0 -1
  204. package/script/test/deps.d.ts +0 -1
  205. package/script/test/fixture/CustomRelease.d.ts +0 -8
  206. package/script/test/parser.test.d.ts +0 -1
  207. package/script/test/test.d.ts +0 -1
@@ -0,0 +1,10 @@
1
+ import { cmp } from "./cmp.js";
2
+ /**
3
+ * Test to see if a semantic version falls within the range of the comparator.
4
+ * @param version The version to compare
5
+ * @param comparator The comparator
6
+ * @returns True if the version is within the comparators set otherwise false
7
+ */
8
+ export function testComparator(version, comparator) {
9
+ return cmp(version, comparator.operator, comparator.semver);
10
+ }
@@ -0,0 +1,8 @@
1
+ import type { SemVer, SemVerRange } from "./types.js";
2
+ /**
3
+ * Test to see if the version satisfies the range.
4
+ * @param version The version to test
5
+ * @param range The range to check
6
+ * @returns true if the version is in the range
7
+ */
8
+ export declare function testRange(version: SemVer, range: SemVerRange): boolean;
@@ -0,0 +1,16 @@
1
+ import { gte } from "./gte.js";
2
+ import { lte } from "./lte.js";
3
+ /**
4
+ * Test to see if the version satisfies the range.
5
+ * @param version The version to test
6
+ * @param range The range to check
7
+ * @returns true if the version is in the range
8
+ */
9
+ export function testRange(version, range) {
10
+ for (const r of range.ranges) {
11
+ if (r.every((c) => gte(version, c.min) && lte(version, c.max))) {
12
+ return true;
13
+ }
14
+ }
15
+ return false;
16
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The possible release types are used as an operator for the
3
+ * increment function and as a result of the difference function.
4
+ */
5
+ export type ReleaseType = "pre" | "major" | "premajor" | "minor" | "preminor" | "patch" | "prepatch" | "prerelease";
6
+ /**
7
+ * SemVer comparison operators.
8
+ */
9
+ export type Operator = "" | "=" | "==" | "===" | "!==" | "!=" | ">" | ">=" | "<" | "<=";
10
+ /**
11
+ * The style to use when formatting a SemVer object into a string
12
+ */
13
+ export type FormatStyle = "full" | "release" | "primary" | "build" | "pre" | "patch" | "minor" | "major";
14
+ /**
15
+ * The shape of a valid semantic version comparator
16
+ * @example >=0.0.0
17
+ */
18
+ export interface SemVerComparator {
19
+ operator: Operator;
20
+ semver: SemVer;
21
+ min: SemVer;
22
+ max: SemVer;
23
+ }
24
+ /**
25
+ * A SemVer object parsed into its constituent parts.
26
+ */
27
+ export interface SemVer {
28
+ major: number;
29
+ minor: number;
30
+ patch: number;
31
+ prerelease: (string | number)[];
32
+ build: string[];
33
+ }
34
+ type SemVerRangeAnd = SemVerComparator[];
35
+ type SemVerRangeOr = SemVerRangeAnd[];
36
+ /**
37
+ * A type representing a semantic version range. The ranges consist of
38
+ * a nested array, which represents a set of OR comparisons while the
39
+ * inner array represents AND comparisons.
40
+ */
41
+ export interface SemVerRange {
42
+ ranges: SemVerRangeOr;
43
+ }
44
+ export {};
@@ -0,0 +1,2 @@
1
+ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
2
+ export {};
@@ -1,5 +1,5 @@
1
1
  import Release from "./Release.js";
2
- import { Semver } from "./deps.js";
2
+ import type { SemVer } from "./deps.js";
3
3
  export default class Changelog {
4
4
  flag?: string;
5
5
  title: string;
@@ -9,11 +9,13 @@ export default class Changelog {
9
9
  url?: string;
10
10
  releases: Release[];
11
11
  tagNameBuilder?: (release: Release) => string;
12
+ compareLinkBuilder?: (previous: Release, release: Release) => string;
12
13
  format: "compact" | "markdownlint";
13
14
  constructor(title: string, description?: string);
14
15
  addRelease(release: Release): this;
15
- findRelease(version?: Semver | string): Release | undefined;
16
+ findRelease(version?: SemVer | string): Release | undefined;
16
17
  sortReleases(): void;
18
+ compareLink(previous: Release, release: Release): string;
17
19
  tagName(release: Release): string;
18
20
  toString(): string;
19
21
  }
@@ -1,4 +1,4 @@
1
- import { eq } from "./deps.js";
1
+ import { eq, parse } from "./deps.js";
2
2
  export default class Changelog {
3
3
  constructor(title, description = "") {
4
4
  Object.defineProperty(this, "flag", {
@@ -49,6 +49,12 @@ export default class Changelog {
49
49
  writable: true,
50
50
  value: void 0
51
51
  });
52
+ Object.defineProperty(this, "compareLinkBuilder", {
53
+ enumerable: true,
54
+ configurable: true,
55
+ writable: true,
56
+ value: void 0
57
+ });
52
58
  Object.defineProperty(this, "format", {
53
59
  enumerable: true,
54
60
  configurable: true,
@@ -68,11 +74,26 @@ export default class Changelog {
68
74
  if (!version) {
69
75
  return this.releases.find((release) => !release.version);
70
76
  }
71
- return this.releases.find((release) => release.version && eq(release.version, version));
77
+ if (typeof version === "string") {
78
+ version = parse(version);
79
+ }
80
+ return this.releases.find((release) => release.parsedVersion && eq(release.parsedVersion, version));
72
81
  }
73
82
  sortReleases() {
74
83
  this.releases.sort((a, b) => a.compare(b));
75
84
  }
85
+ compareLink(previous, release) {
86
+ if (this.compareLinkBuilder) {
87
+ return this.compareLinkBuilder(previous, release);
88
+ }
89
+ if (!previous) {
90
+ return `${this.url}/releases/tag/${this.tagName(release)}`;
91
+ }
92
+ if (!release.date || !release.version) {
93
+ return `${this.url}/compare/${this.tagName(previous)}...${this.head}`;
94
+ }
95
+ return `${this.url}/compare/${this.tagName(previous)}...${this.tagName(release)}`;
96
+ }
76
97
  tagName(release) {
77
98
  if (this.tagNameBuilder) {
78
99
  return this.tagNameBuilder(release);
@@ -94,8 +115,8 @@ export default class Changelog {
94
115
  const description = this.description.trim() ||
95
116
  `All notable changes to this project will be documented in this file.
96
117
 
97
- The format is based on [Keep a Changelog](http://keepachangelog.com/)
98
- and this project adheres to [Semantic Versioning](http://semver.org/).`;
118
+ The format is based on [Keep a Changelog](https://keepachangelog.com/)
119
+ and this project adheres to [Semantic Versioning](https://semver.org/).`;
99
120
  if (description) {
100
121
  t.push(description);
101
122
  }
@@ -1,17 +1,18 @@
1
- import { Semver } from "./deps.js";
2
1
  import Change from "./Change.js";
3
2
  import Changelog from "./Changelog.js";
3
+ import type { SemVer } from "./deps.js";
4
4
  export default class Release {
5
5
  changelog?: Changelog;
6
- version?: Semver;
6
+ parsedVersion?: SemVer;
7
7
  date?: Date;
8
8
  yanked: boolean;
9
9
  description: string;
10
10
  changes: Map<string, Change[]>;
11
- constructor(version?: string | Semver, date?: string | Date, description?: string);
11
+ constructor(version?: string | SemVer, date?: string | Date, description?: string);
12
+ get version(): string | undefined;
12
13
  compare(release: Release): number;
13
14
  isEmpty(): boolean;
14
- setVersion(version?: string | Semver): void;
15
+ setVersion(version?: string | SemVer): void;
15
16
  setDate(date?: Date | string): void;
16
17
  setYanked(yanked?: boolean): this;
17
18
  addChange(type: string, change: Change | string): this;
@@ -1,4 +1,4 @@
1
- import { Semver } from "./deps.js";
1
+ import { compare, format, parse } from "./deps.js";
2
2
  import Change from "./Change.js";
3
3
  export default class Release {
4
4
  constructor(version, date, description = "") {
@@ -8,7 +8,7 @@ export default class Release {
8
8
  writable: true,
9
9
  value: void 0
10
10
  });
11
- Object.defineProperty(this, "version", {
11
+ Object.defineProperty(this, "parsedVersion", {
12
12
  enumerable: true,
13
13
  configurable: true,
14
14
  writable: true,
@@ -50,11 +50,14 @@ export default class Release {
50
50
  ["security", []],
51
51
  ]);
52
52
  }
53
+ get version() {
54
+ return this.parsedVersion ? format(this.parsedVersion) : undefined;
55
+ }
53
56
  compare(release) {
54
- if (!this.version && release.version) {
57
+ if (!this.parsedVersion && release.parsedVersion) {
55
58
  return -1;
56
59
  }
57
- if (!release.version) {
60
+ if (!release.parsedVersion) {
58
61
  return 1;
59
62
  }
60
63
  if (!this.date && release.date) {
@@ -63,8 +66,8 @@ export default class Release {
63
66
  if (!release.date) {
64
67
  return 1;
65
68
  }
66
- if (this.version && release.version) {
67
- return -this.version.compare(release.version);
69
+ if (this.parsedVersion && release.parsedVersion) {
70
+ return -compare(this.parsedVersion, release.parsedVersion);
68
71
  }
69
72
  return 0;
70
73
  }
@@ -76,9 +79,9 @@ export default class Release {
76
79
  }
77
80
  setVersion(version) {
78
81
  if (typeof version === "string") {
79
- version = new Semver(version);
82
+ version = parse(version);
80
83
  }
81
- this.version = version;
84
+ this.parsedVersion = version;
82
85
  //Re-sort the releases of the parent changelog
83
86
  if (this.changelog) {
84
87
  this.changelog.sortReleases();
@@ -126,12 +129,13 @@ export default class Release {
126
129
  let t = [];
127
130
  const hasCompareLink = this.getCompareLink(changelog) !== undefined;
128
131
  const yanked = this.yanked ? " [YANKED]" : "";
129
- if (this.version) {
132
+ const { version } = this;
133
+ if (version) {
130
134
  if (hasCompareLink) {
131
- t.push(`## [${this.version}] - ${formatDate(this.date)}${yanked}`);
135
+ t.push(`## [${version}] - ${formatDate(this.date)}${yanked}`);
132
136
  }
133
137
  else {
134
- t.push(`## ${this.version} - ${formatDate(this.date)}${yanked}`);
138
+ t.push(`## ${version} - ${formatDate(this.date)}${yanked}`);
135
139
  }
136
140
  }
137
141
  else {
@@ -175,19 +179,14 @@ export default class Release {
175
179
  ++offset;
176
180
  previous = changelog.releases[index + offset];
177
181
  }
178
- if (!previous) {
179
- if (!this.version || !this.date) {
180
- return;
181
- }
182
- return `[${this.version}]: ${changelog.url}/releases/tag/${changelog.tagName(this)}`;
183
- }
184
- if (!this.version) {
185
- return `[Unreleased]: ${changelog.url}/compare/${changelog.tagName(previous)}...${changelog.head}`;
182
+ if (!previous && (!this.version || !this.date)) {
183
+ return;
186
184
  }
187
- if (!this.date) {
188
- return `[${this.version}]: ${changelog.url}/compare/${changelog.tagName(previous)}...${changelog.head}`;
185
+ const compareLink = changelog.compareLink(previous, this);
186
+ if (!compareLink) {
187
+ return;
189
188
  }
190
- return `[${this.version}]: ${changelog.url}/compare/${changelog.tagName(previous)}...${changelog.tagName(this)}`;
189
+ return `[${this.version || "Unreleased"}]: ${compareLink}`;
191
190
  }
192
191
  getLinks(changelog) {
193
192
  const links = [];
package/esm/src/deps.d.ts CHANGED
@@ -1 +1,2 @@
1
- export { default as Semver, eq, } from "../deps/deno.land/std@0.173.0/semver/mod.js";
1
+ export { compare, eq, format, parse, } from "../deps/deno.land/std@0.203.0/semver/mod.js";
2
+ export type { SemVer } from "../deps/deno.land/std@0.203.0/semver/mod.js";
package/esm/src/deps.js CHANGED
@@ -1 +1 @@
1
- export { default as Semver, eq, } from "../deps/deno.land/std@0.173.0/semver/mod.js";
1
+ export { compare, eq, format, parse, } from "../deps/deno.land/std@0.203.0/semver/mod.js";
@@ -1,9 +1,8 @@
1
1
  # Changelog - demo
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
- and this project adheres to
6
- [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/)
5
+ and this project adheres to [Semantic Versioning](https://semver.org/).
7
6
 
8
7
  ## [Unreleased]
9
8
  ### Maintenance
@@ -2,9 +2,8 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
- and this project adheres to
7
- [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/)
6
+ and this project adheres to [Semantic Versioning](https://semver.org/).
8
7
 
9
8
  ## [Unreleased] [YANKED]
10
9
 
@@ -96,7 +95,7 @@ This is a brand new releases with:
96
95
  ### Changed
97
96
 
98
97
  - Improve argument against commit logs.
99
- - Start following [SemVer](http://semver.org) properly.
98
+ - Start following [SemVer](https://semver.org) properly.
100
99
 
101
100
  ## [0.0.8] - 2015-02-17
102
101
 
@@ -1,9 +1,8 @@
1
1
  # Changelog - demo
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
- and this project adheres to
6
- [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/)
5
+ and this project adheres to [Semantic Versioning](https://semver.org/).
7
6
 
8
7
  ## [Unreleased] [YANKED]
9
8
  This is a brand new releases with:
@@ -80,7 +79,7 @@ This is a brand new releases with:
80
79
 
81
80
  ### Changed
82
81
  - Improve argument against commit logs.
83
- - Start following [SemVer](http://semver.org) properly.
82
+ - Start following [SemVer](https://semver.org) properly.
84
83
 
85
84
  ## [0.0.8] - 2015-02-17
86
85
  ### Changed
@@ -2,9 +2,8 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
- and this project adheres to
7
- [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/)
6
+ and this project adheres to [Semantic Versioning](https://semver.org/).
8
7
 
9
8
  ## [Unreleased] [Yanked]
10
9
  This is a brand new releases with:
@@ -97,7 +96,7 @@ This is a brand new releases with:
97
96
  ### Changed
98
97
 
99
98
  - Improve argument against commit logs.
100
- - Start following [SemVer](http://semver.org) properly.
99
+ - Start following [SemVer](https://semver.org) properly.
101
100
 
102
101
  ## [0.0.8] - 2015-02-17
103
102
 
@@ -1,5 +1,5 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
- and this project adheres to [Semantic Versioning](http://semver.org/).
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/)
5
+ and this project adheres to [Semantic Versioning](https://semver.org/).
package/package.json CHANGED
@@ -5,8 +5,8 @@
5
5
  "changelog": "./esm/bin.js"
6
6
  },
7
7
  "name": "keep-a-changelog",
8
- "version": "2.3.0",
9
- "description": "Node package to parse and generate changelogs following the [keepachangelog](http://keepachangelog.com/en/1.0.0/) format.",
8
+ "version": "2.4.1",
9
+ "description": "Node package to parse and generate changelogs following the [keepachangelog](https://keepachangelog.com/) format.",
10
10
  "homepage": "https://github.com/oscarotero/keep-a-changelog#readme",
11
11
  "license": "MIT",
12
12
  "keywords": [
@@ -8,7 +8,6 @@ const dntGlobals = {
8
8
  Deno: shim_deno_1.Deno,
9
9
  };
10
10
  exports.dntGlobalThis = createMergeProxy(globalThis, dntGlobals);
11
- // deno-lint-ignore ban-types
12
11
  function createMergeProxy(baseObj, extObj) {
13
12
  return new Proxy(baseObj, {
14
13
  get(_target, prop, _receiver) {
@@ -0,0 +1,42 @@
1
+ import { Operator } from "./types.js";
2
+ export declare function compareNumber(a: number, b: number): 1 | 0 | -1;
3
+ export declare function checkIdentifier(v1: ReadonlyArray<string | number>, v2: ReadonlyArray<string | number>): 1 | 0 | -1;
4
+ export declare function compareIdentifier(v1: ReadonlyArray<string | number>, v2: ReadonlyArray<string | number>): 1 | 0 | -1;
5
+ declare const re: RegExp[];
6
+ declare const src: string[];
7
+ declare const NUMERICIDENTIFIER: number;
8
+ declare const FULL: number;
9
+ declare const XRANGE: number;
10
+ declare const TILDE: number;
11
+ declare const CARET: number;
12
+ declare const COMPARATOR: number;
13
+ declare const HYPHENRANGE: number;
14
+ declare const STAR: number;
15
+ /**
16
+ * Returns true if the value is a valid SemVer number.
17
+ *
18
+ * Must be a number. Must not be NaN. Can be positive or negative infinity.
19
+ * Can be between 0 and MAX_SAFE_INTEGER.
20
+ * @param value The value to check
21
+ * @returns True if its a valid semver number
22
+ */
23
+ export declare function isValidNumber(value: unknown): value is number;
24
+ export declare const MAX_LENGTH = 256;
25
+ /**
26
+ * Returns true if the value is a valid semver pre-release or build identifier.
27
+ *
28
+ * Must be a string. Must be between 1 and 256 characters long. Must match
29
+ * the regular expression /[0-9A-Za-z-]+/.
30
+ * @param value The value to check
31
+ * @returns True if the value is a valid semver string.
32
+ */
33
+ export declare function isValidString(value: unknown): value is string;
34
+ /**
35
+ * Checks to see if the value is a valid Operator string.
36
+ *
37
+ * Adds a type assertion if true.
38
+ * @param value The value to check
39
+ * @returns True if the value is a valid Operator string otherwise false.
40
+ */
41
+ export declare function isValidOperator(value: unknown): value is Operator;
42
+ export { CARET, COMPARATOR, FULL, HYPHENRANGE, NUMERICIDENTIFIER, re, src, STAR, TILDE, XRANGE, };