keep-a-changelog 2.2.1 → 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 (258) hide show
  1. package/CHANGELOG.md +26 -2
  2. package/README.md +27 -8
  3. package/esm/_dnt.shims.js +0 -1
  4. package/esm/bin.js +8 -3
  5. package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/flags/mod.js +3 -2
  6. package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/path/_util.d.ts +3 -0
  7. package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/_util.js +46 -0
  8. package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/path/mod.d.ts +3 -1
  9. package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/mod.js +4 -1
  10. package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/path/posix.d.ts +7 -5
  11. package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/posix.js +50 -108
  12. package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/path/win32.d.ts +7 -5
  13. package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/win32.js +23 -82
  14. package/esm/deps/deno.land/std@0.203.0/semver/_shared.d.ts +42 -0
  15. package/esm/deps/deno.land/std@0.203.0/semver/_shared.js +230 -0
  16. package/esm/deps/deno.land/std@0.203.0/semver/cmp.d.ts +9 -0
  17. package/esm/deps/deno.land/std@0.203.0/semver/cmp.js +35 -0
  18. package/esm/deps/deno.land/std@0.203.0/semver/comparator_format.d.ts +8 -0
  19. package/esm/deps/deno.land/std@0.203.0/semver/comparator_format.js +11 -0
  20. package/esm/deps/deno.land/std@0.203.0/semver/comparator_intersects.d.ts +8 -0
  21. package/esm/deps/deno.land/std@0.203.0/semver/comparator_intersects.js +45 -0
  22. package/esm/deps/deno.land/std@0.203.0/semver/comparator_max.d.ts +9 -0
  23. package/esm/deps/deno.land/std@0.203.0/semver/comparator_max.js +45 -0
  24. package/esm/deps/deno.land/std@0.203.0/semver/comparator_min.d.ts +8 -0
  25. package/esm/deps/deno.land/std@0.203.0/semver/comparator_min.js +32 -0
  26. package/esm/deps/deno.land/std@0.203.0/semver/compare.d.ts +10 -0
  27. package/esm/deps/deno.land/std@0.203.0/semver/compare.js +18 -0
  28. package/esm/deps/deno.land/std@0.203.0/semver/compare_build.d.ts +13 -0
  29. package/esm/deps/deno.land/std@0.203.0/semver/compare_build.js +23 -0
  30. package/esm/deps/deno.land/std@0.203.0/semver/constants.d.ts +42 -0
  31. package/esm/deps/deno.land/std@0.203.0/semver/constants.js +75 -0
  32. package/esm/deps/deno.land/std@0.203.0/semver/difference.d.ts +4 -0
  33. package/esm/deps/deno.land/std@0.203.0/semver/difference.js +26 -0
  34. package/esm/deps/deno.land/std@0.203.0/semver/eq.d.ts +4 -0
  35. package/esm/deps/deno.land/std@0.203.0/semver/eq.js +7 -0
  36. package/esm/deps/deno.land/std@0.203.0/semver/format.d.ts +12 -0
  37. package/esm/deps/deno.land/std@0.203.0/semver/format.js +54 -0
  38. package/esm/deps/deno.land/std@0.203.0/semver/gt.d.ts +3 -0
  39. package/esm/deps/deno.land/std@0.203.0/semver/gt.js +5 -0
  40. package/esm/deps/deno.land/std@0.203.0/semver/gte.d.ts +3 -0
  41. package/esm/deps/deno.land/std@0.203.0/semver/gte.js +5 -0
  42. package/esm/deps/deno.land/std@0.203.0/semver/gtr.d.ts +3 -0
  43. package/esm/deps/deno.land/std@0.203.0/semver/gtr.js +5 -0
  44. package/esm/deps/deno.land/std@0.203.0/semver/increment.d.ts +28 -0
  45. package/esm/deps/deno.land/std@0.203.0/semver/increment.js +207 -0
  46. package/esm/deps/deno.land/std@0.203.0/semver/is_semver.d.ts +17 -0
  47. package/esm/deps/deno.land/std@0.203.0/semver/is_semver.js +41 -0
  48. package/esm/deps/deno.land/std@0.203.0/semver/is_semver_comparator.d.ts +12 -0
  49. package/esm/deps/deno.land/std@0.203.0/semver/is_semver_comparator.js +31 -0
  50. package/esm/deps/deno.land/std@0.203.0/semver/is_semver_range.d.ts +12 -0
  51. package/esm/deps/deno.land/std@0.203.0/semver/is_semver_range.js +22 -0
  52. package/esm/deps/deno.land/std@0.203.0/semver/lt.d.ts +3 -0
  53. package/esm/deps/deno.land/std@0.203.0/semver/lt.js +5 -0
  54. package/esm/deps/deno.land/std@0.203.0/semver/lte.d.ts +3 -0
  55. package/esm/deps/deno.land/std@0.203.0/semver/lte.js +5 -0
  56. package/esm/deps/deno.land/std@0.203.0/semver/ltr.d.ts +3 -0
  57. package/esm/deps/deno.land/std@0.203.0/semver/ltr.js +5 -0
  58. package/esm/deps/deno.land/std@0.203.0/semver/max_satisfying.d.ts +9 -0
  59. package/esm/deps/deno.land/std@0.203.0/semver/max_satisfying.js +14 -0
  60. package/esm/deps/deno.land/std@0.203.0/semver/min_satisfying.d.ts +9 -0
  61. package/esm/deps/deno.land/std@0.203.0/semver/min_satisfying.js +14 -0
  62. package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.203.0}/semver/mod.d.ts +88 -176
  63. package/esm/deps/deno.land/std@0.203.0/semver/mod.js +313 -0
  64. package/esm/deps/deno.land/std@0.203.0/semver/neq.d.ts +3 -0
  65. package/esm/deps/deno.land/std@0.203.0/semver/neq.js +5 -0
  66. package/esm/deps/deno.land/std@0.203.0/semver/outside.d.ts +11 -0
  67. package/esm/deps/deno.land/std@0.203.0/semver/outside.js +67 -0
  68. package/esm/deps/deno.land/std@0.203.0/semver/parse.d.ts +8 -0
  69. package/esm/deps/deno.land/std@0.203.0/semver/parse.js +66 -0
  70. package/esm/deps/deno.land/std@0.203.0/semver/parse_comparator.d.ts +7 -0
  71. package/esm/deps/deno.land/std@0.203.0/semver/parse_comparator.js +28 -0
  72. package/esm/deps/deno.land/std@0.203.0/semver/parse_range.d.ts +7 -0
  73. package/esm/deps/deno.land/std@0.203.0/semver/parse_range.js +292 -0
  74. package/esm/deps/deno.land/std@0.203.0/semver/range_format.d.ts +8 -0
  75. package/esm/deps/deno.land/std@0.203.0/semver/range_format.js +11 -0
  76. package/esm/deps/deno.land/std@0.203.0/semver/range_intersects.d.ts +8 -0
  77. package/esm/deps/deno.land/std@0.203.0/semver/range_intersects.js +35 -0
  78. package/esm/deps/deno.land/std@0.203.0/semver/range_max.d.ts +7 -0
  79. package/esm/deps/deno.land/std@0.203.0/semver/range_max.js +15 -0
  80. package/esm/deps/deno.land/std@0.203.0/semver/range_min.d.ts +7 -0
  81. package/esm/deps/deno.land/std@0.203.0/semver/range_min.js +14 -0
  82. package/esm/deps/deno.land/std@0.203.0/semver/rcompare.d.ts +8 -0
  83. package/esm/deps/deno.land/std@0.203.0/semver/rcompare.js +10 -0
  84. package/esm/deps/deno.land/std@0.203.0/semver/rsort.d.ts +3 -0
  85. package/esm/deps/deno.land/std@0.203.0/semver/rsort.js +5 -0
  86. package/esm/deps/deno.land/std@0.203.0/semver/sort.d.ts +3 -0
  87. package/esm/deps/deno.land/std@0.203.0/semver/sort.js +5 -0
  88. package/esm/deps/deno.land/std@0.203.0/semver/test_comparator.d.ts +8 -0
  89. package/esm/deps/deno.land/std@0.203.0/semver/test_comparator.js +10 -0
  90. package/esm/deps/deno.land/std@0.203.0/semver/test_range.d.ts +8 -0
  91. package/esm/deps/deno.land/std@0.203.0/semver/test_range.js +16 -0
  92. package/esm/deps/deno.land/std@0.203.0/semver/types.d.ts +44 -0
  93. package/esm/deps/deno.land/std@0.203.0/semver/types.js +2 -0
  94. package/{types → esm}/src/Changelog.d.ts +4 -2
  95. package/esm/src/Changelog.js +25 -4
  96. package/{types → esm}/src/Release.d.ts +5 -4
  97. package/esm/src/Release.js +21 -22
  98. package/esm/src/deps.d.ts +2 -0
  99. package/esm/src/deps.js +1 -1
  100. package/esm/test/changelog.custom.type.md +2 -3
  101. package/esm/test/changelog.expected.linted.md +3 -4
  102. package/esm/test/changelog.expected.md +3 -4
  103. package/esm/test/changelog.md +3 -4
  104. package/esm/test/empty.expected.md +2 -2
  105. package/package.json +6 -13
  106. package/script/_dnt.polyfills.d.ts +11 -0
  107. package/script/_dnt.shims.d.ts +5 -0
  108. package/script/_dnt.shims.js +0 -1
  109. package/script/bin.d.ts +2 -0
  110. package/script/bin.js +8 -3
  111. package/script/deps/deno.land/std@0.189.0/_util/asserts.d.ts +10 -0
  112. package/script/deps/deno.land/std@0.189.0/_util/os.d.ts +4 -0
  113. package/script/deps/deno.land/std@0.189.0/flags/mod.d.ts +166 -0
  114. package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/flags/mod.js +4 -3
  115. package/script/deps/deno.land/std@0.189.0/path/_constants.d.ts +39 -0
  116. package/script/deps/deno.land/std@0.189.0/path/_interface.d.ts +26 -0
  117. package/script/deps/deno.land/std@0.189.0/path/_util.d.ts +11 -0
  118. package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/_util.js +50 -1
  119. package/script/deps/deno.land/std@0.189.0/path/common.d.ts +13 -0
  120. package/script/deps/deno.land/std@0.189.0/path/glob.d.ts +83 -0
  121. package/script/deps/deno.land/std@0.189.0/path/mod.d.ts +11 -0
  122. package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/mod.js +5 -2
  123. package/script/deps/deno.land/std@0.189.0/path/posix.d.ts +86 -0
  124. package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/posix.js +48 -106
  125. package/script/deps/deno.land/std@0.189.0/path/separator.d.ts +2 -0
  126. package/script/deps/deno.land/std@0.189.0/path/win32.d.ts +91 -0
  127. package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/win32.js +22 -81
  128. package/script/deps/deno.land/std@0.203.0/semver/_shared.d.ts +42 -0
  129. package/script/deps/deno.land/std@0.203.0/semver/_shared.js +248 -0
  130. package/script/deps/deno.land/std@0.203.0/semver/cmp.d.ts +9 -0
  131. package/script/deps/deno.land/std@0.203.0/semver/cmp.js +39 -0
  132. package/script/deps/deno.land/std@0.203.0/semver/comparator_format.d.ts +8 -0
  133. package/script/deps/deno.land/std@0.203.0/semver/comparator_format.js +15 -0
  134. package/script/deps/deno.land/std@0.203.0/semver/comparator_intersects.d.ts +8 -0
  135. package/script/deps/deno.land/std@0.203.0/semver/comparator_intersects.js +49 -0
  136. package/script/deps/deno.land/std@0.203.0/semver/comparator_max.d.ts +9 -0
  137. package/script/deps/deno.land/std@0.203.0/semver/comparator_max.js +49 -0
  138. package/script/deps/deno.land/std@0.203.0/semver/comparator_min.d.ts +8 -0
  139. package/script/deps/deno.land/std@0.203.0/semver/comparator_min.js +36 -0
  140. package/script/deps/deno.land/std@0.203.0/semver/compare.d.ts +10 -0
  141. package/script/deps/deno.land/std@0.203.0/semver/compare.js +22 -0
  142. package/script/deps/deno.land/std@0.203.0/semver/compare_build.d.ts +13 -0
  143. package/script/deps/deno.land/std@0.203.0/semver/compare_build.js +27 -0
  144. package/script/deps/deno.land/std@0.203.0/semver/constants.d.ts +42 -0
  145. package/script/deps/deno.land/std@0.203.0/semver/constants.js +78 -0
  146. package/script/deps/deno.land/std@0.203.0/semver/difference.d.ts +4 -0
  147. package/script/deps/deno.land/std@0.203.0/semver/difference.js +30 -0
  148. package/script/deps/deno.land/std@0.203.0/semver/eq.d.ts +4 -0
  149. package/script/deps/deno.land/std@0.203.0/semver/eq.js +11 -0
  150. package/script/deps/deno.land/std@0.203.0/semver/format.d.ts +12 -0
  151. package/script/deps/deno.land/std@0.203.0/semver/format.js +58 -0
  152. package/script/deps/deno.land/std@0.203.0/semver/gt.d.ts +3 -0
  153. package/script/deps/deno.land/std@0.203.0/semver/gt.js +9 -0
  154. package/script/deps/deno.land/std@0.203.0/semver/gte.d.ts +3 -0
  155. package/script/deps/deno.land/std@0.203.0/semver/gte.js +9 -0
  156. package/script/deps/deno.land/std@0.203.0/semver/gtr.d.ts +3 -0
  157. package/script/deps/deno.land/std@0.203.0/semver/gtr.js +9 -0
  158. package/script/deps/deno.land/std@0.203.0/semver/increment.d.ts +28 -0
  159. package/script/deps/deno.land/std@0.203.0/semver/increment.js +211 -0
  160. package/script/deps/deno.land/std@0.203.0/semver/is_semver.d.ts +17 -0
  161. package/script/deps/deno.land/std@0.203.0/semver/is_semver.js +45 -0
  162. package/script/deps/deno.land/std@0.203.0/semver/is_semver_comparator.d.ts +12 -0
  163. package/script/deps/deno.land/std@0.203.0/semver/is_semver_comparator.js +35 -0
  164. package/script/deps/deno.land/std@0.203.0/semver/is_semver_range.d.ts +12 -0
  165. package/script/deps/deno.land/std@0.203.0/semver/is_semver_range.js +26 -0
  166. package/script/deps/deno.land/std@0.203.0/semver/lt.d.ts +3 -0
  167. package/script/deps/deno.land/std@0.203.0/semver/lt.js +9 -0
  168. package/script/deps/deno.land/std@0.203.0/semver/lte.d.ts +3 -0
  169. package/script/deps/deno.land/std@0.203.0/semver/lte.js +9 -0
  170. package/script/deps/deno.land/std@0.203.0/semver/ltr.d.ts +3 -0
  171. package/script/deps/deno.land/std@0.203.0/semver/ltr.js +9 -0
  172. package/script/deps/deno.land/std@0.203.0/semver/max_satisfying.d.ts +9 -0
  173. package/script/deps/deno.land/std@0.203.0/semver/max_satisfying.js +18 -0
  174. package/script/deps/deno.land/std@0.203.0/semver/min_satisfying.d.ts +9 -0
  175. package/script/deps/deno.land/std@0.203.0/semver/min_satisfying.js +18 -0
  176. package/script/deps/deno.land/std@0.203.0/semver/mod.d.ts +310 -0
  177. package/script/deps/deno.land/std@0.203.0/semver/mod.js +330 -0
  178. package/script/deps/deno.land/std@0.203.0/semver/neq.d.ts +3 -0
  179. package/script/deps/deno.land/std@0.203.0/semver/neq.js +9 -0
  180. package/script/deps/deno.land/std@0.203.0/semver/outside.d.ts +11 -0
  181. package/script/deps/deno.land/std@0.203.0/semver/outside.js +71 -0
  182. package/script/deps/deno.land/std@0.203.0/semver/parse.d.ts +8 -0
  183. package/script/deps/deno.land/std@0.203.0/semver/parse.js +70 -0
  184. package/script/deps/deno.land/std@0.203.0/semver/parse_comparator.d.ts +7 -0
  185. package/script/deps/deno.land/std@0.203.0/semver/parse_comparator.js +32 -0
  186. package/script/deps/deno.land/std@0.203.0/semver/parse_range.d.ts +7 -0
  187. package/script/deps/deno.land/std@0.203.0/semver/parse_range.js +296 -0
  188. package/script/deps/deno.land/std@0.203.0/semver/range_format.d.ts +8 -0
  189. package/script/deps/deno.land/std@0.203.0/semver/range_format.js +15 -0
  190. package/script/deps/deno.land/std@0.203.0/semver/range_intersects.d.ts +8 -0
  191. package/script/deps/deno.land/std@0.203.0/semver/range_intersects.js +39 -0
  192. package/script/deps/deno.land/std@0.203.0/semver/range_max.d.ts +7 -0
  193. package/script/deps/deno.land/std@0.203.0/semver/range_max.js +19 -0
  194. package/script/deps/deno.land/std@0.203.0/semver/range_min.d.ts +7 -0
  195. package/script/deps/deno.land/std@0.203.0/semver/range_min.js +18 -0
  196. package/script/deps/deno.land/std@0.203.0/semver/rcompare.d.ts +8 -0
  197. package/script/deps/deno.land/std@0.203.0/semver/rcompare.js +14 -0
  198. package/script/deps/deno.land/std@0.203.0/semver/rsort.d.ts +3 -0
  199. package/script/deps/deno.land/std@0.203.0/semver/rsort.js +9 -0
  200. package/script/deps/deno.land/std@0.203.0/semver/sort.d.ts +3 -0
  201. package/script/deps/deno.land/std@0.203.0/semver/sort.js +9 -0
  202. package/script/deps/deno.land/std@0.203.0/semver/test_comparator.d.ts +8 -0
  203. package/script/deps/deno.land/std@0.203.0/semver/test_comparator.js +14 -0
  204. package/script/deps/deno.land/std@0.203.0/semver/test_range.d.ts +8 -0
  205. package/script/deps/deno.land/std@0.203.0/semver/test_range.js +20 -0
  206. package/script/deps/deno.land/std@0.203.0/semver/types.d.ts +44 -0
  207. package/script/deps/deno.land/std@0.203.0/semver/types.js +3 -0
  208. package/script/deps/deno.land/std@0.51.0/fs/eol.d.ts +12 -0
  209. package/script/deps/deno.land/x/ini@v2.1.0/ini.d.ts +53 -0
  210. package/script/deps/deno.land/x/ini@v2.1.0/mod.d.ts +1 -0
  211. package/script/mod.d.ts +6 -0
  212. package/script/src/Change.d.ts +8 -0
  213. package/script/src/Changelog.d.ts +21 -0
  214. package/script/src/Changelog.js +24 -3
  215. package/script/src/Release.d.ts +28 -0
  216. package/script/src/Release.js +20 -21
  217. package/script/src/deps.d.ts +2 -0
  218. package/script/src/deps.js +5 -6
  219. package/script/src/parser.d.ts +11 -0
  220. package/script/test/changelog.custom.type.md +2 -3
  221. package/script/test/changelog.expected.linted.md +3 -4
  222. package/script/test/changelog.expected.md +3 -4
  223. package/script/test/changelog.md +3 -4
  224. package/script/test/empty.expected.md +2 -2
  225. package/esm/deps/deno.land/std@0.173.0/semver/mod.js +0 -1420
  226. package/script/deps/deno.land/std@0.173.0/semver/mod.js +0 -1458
  227. package/types/src/deps.d.ts +0 -1
  228. /package/{types → esm}/_dnt.polyfills.d.ts +0 -0
  229. /package/{types → esm}/_dnt.shims.d.ts +0 -0
  230. /package/{types → esm}/bin.d.ts +0 -0
  231. /package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/_util/asserts.d.ts +0 -0
  232. /package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/_util/asserts.js +0 -0
  233. /package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/_util/os.d.ts +0 -0
  234. /package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/_util/os.js +0 -0
  235. /package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/flags/mod.d.ts +0 -0
  236. /package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/path/_constants.d.ts +0 -0
  237. /package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/_constants.js +0 -0
  238. /package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/path/_interface.d.ts +0 -0
  239. /package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/_interface.js +0 -0
  240. /package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/path/common.d.ts +0 -0
  241. /package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/common.js +0 -0
  242. /package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/path/glob.d.ts +0 -0
  243. /package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/glob.js +0 -0
  244. /package/{types/deps/deno.land/std@0.173.0 → esm/deps/deno.land/std@0.189.0}/path/separator.d.ts +0 -0
  245. /package/esm/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/separator.js +0 -0
  246. /package/{types → esm}/deps/deno.land/std@0.51.0/fs/eol.d.ts +0 -0
  247. /package/{types → esm}/deps/deno.land/x/ini@v2.1.0/ini.d.ts +0 -0
  248. /package/{types → esm}/deps/deno.land/x/ini@v2.1.0/mod.d.ts +0 -0
  249. /package/{types → esm}/mod.d.ts +0 -0
  250. /package/{types → esm}/src/Change.d.ts +0 -0
  251. /package/{types → esm}/src/parser.d.ts +0 -0
  252. /package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/_util/asserts.js +0 -0
  253. /package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/_util/os.js +0 -0
  254. /package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/_constants.js +0 -0
  255. /package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/_interface.js +0 -0
  256. /package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/common.js +0 -0
  257. /package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/glob.js +0 -0
  258. /package/script/deps/deno.land/{std@0.173.0 → std@0.189.0}/path/separator.js +0 -0
@@ -0,0 +1,292 @@
1
+ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
2
+ import { ALL } from "./constants.js";
3
+ import { CARET, HYPHENRANGE, re, STAR, TILDE, XRANGE } from "./_shared.js";
4
+ import { parseComparator } from "./parse_comparator.js";
5
+ // ~, ~> --> * (any, kinda silly)
6
+ // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
7
+ // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
8
+ // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
9
+ // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
10
+ // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
11
+ function replaceTildes(comp) {
12
+ return comp
13
+ .trim()
14
+ .split(/\s+/)
15
+ .map((comp) => replaceTilde(comp))
16
+ .join(" ");
17
+ }
18
+ function replaceTilde(comp) {
19
+ const r = re[TILDE];
20
+ return comp.replace(r, (_, M, m, p, pr) => {
21
+ let ret;
22
+ if (isX(M)) {
23
+ ret = "";
24
+ }
25
+ else if (isX(m)) {
26
+ ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0";
27
+ }
28
+ else if (isX(p)) {
29
+ // ~1.2 == >=1.2.0 <1.3.0
30
+ ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0";
31
+ }
32
+ else if (pr) {
33
+ ret = ">=" +
34
+ M +
35
+ "." +
36
+ m +
37
+ "." +
38
+ p +
39
+ "-" +
40
+ pr +
41
+ " <" +
42
+ M +
43
+ "." +
44
+ (+m + 1) +
45
+ ".0";
46
+ }
47
+ else {
48
+ // ~1.2.3 == >=1.2.3 <1.3.0
49
+ ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0";
50
+ }
51
+ return ret;
52
+ });
53
+ }
54
+ // ^ --> * (any, kinda silly)
55
+ // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
56
+ // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
57
+ // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
58
+ // ^1.2.3 --> >=1.2.3 <2.0.0
59
+ // ^1.2.0 --> >=1.2.0 <2.0.0
60
+ function replaceCarets(comp) {
61
+ return comp
62
+ .trim()
63
+ .split(/\s+/)
64
+ .map((comp) => replaceCaret(comp))
65
+ .join(" ");
66
+ }
67
+ function replaceCaret(comp) {
68
+ const r = re[CARET];
69
+ return comp.replace(r, (_, M, m, p, pr) => {
70
+ let ret;
71
+ if (isX(M)) {
72
+ ret = "";
73
+ }
74
+ else if (isX(m)) {
75
+ ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0";
76
+ }
77
+ else if (isX(p)) {
78
+ if (M === "0") {
79
+ ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0";
80
+ }
81
+ else {
82
+ ret = ">=" + M + "." + m + ".0 <" + (+M + 1) + ".0.0";
83
+ }
84
+ }
85
+ else if (pr) {
86
+ if (M === "0") {
87
+ if (m === "0") {
88
+ ret = ">=" +
89
+ M +
90
+ "." +
91
+ m +
92
+ "." +
93
+ p +
94
+ "-" +
95
+ pr +
96
+ " <" +
97
+ M +
98
+ "." +
99
+ m +
100
+ "." +
101
+ (+p + 1);
102
+ }
103
+ else {
104
+ ret = ">=" +
105
+ M +
106
+ "." +
107
+ m +
108
+ "." +
109
+ p +
110
+ "-" +
111
+ pr +
112
+ " <" +
113
+ M +
114
+ "." +
115
+ (+m + 1) +
116
+ ".0";
117
+ }
118
+ }
119
+ else {
120
+ ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + (+M + 1) +
121
+ ".0.0";
122
+ }
123
+ }
124
+ else {
125
+ if (M === "0") {
126
+ if (m === "0") {
127
+ ret = ">=" + M + "." + m + "." + p + " <" + M + "." + m + "." +
128
+ (+p + 1);
129
+ }
130
+ else {
131
+ ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0";
132
+ }
133
+ }
134
+ else {
135
+ ret = ">=" + M + "." + m + "." + p + " <" + (+M + 1) + ".0.0";
136
+ }
137
+ }
138
+ return ret;
139
+ });
140
+ }
141
+ function replaceXRanges(comp) {
142
+ return comp
143
+ .split(/\s+/)
144
+ .map((comp) => replaceXRange(comp))
145
+ .join(" ");
146
+ }
147
+ function replaceXRange(comp) {
148
+ comp = comp.trim();
149
+ const r = re[XRANGE];
150
+ return comp.replace(r, (ret, gtlt, M, m, p, _pr) => {
151
+ const xM = isX(M);
152
+ const xm = xM || isX(m);
153
+ const xp = xm || isX(p);
154
+ const anyX = xp;
155
+ if (gtlt === "=" && anyX) {
156
+ gtlt = "";
157
+ }
158
+ if (xM) {
159
+ if (gtlt === ">" || gtlt === "<") {
160
+ // nothing is allowed
161
+ ret = "<0.0.0";
162
+ }
163
+ else {
164
+ // nothing is forbidden
165
+ ret = "*";
166
+ }
167
+ }
168
+ else if (gtlt && anyX) {
169
+ // we know patch is an x, because we have any x at all.
170
+ // replace X with 0
171
+ if (xm) {
172
+ m = 0;
173
+ }
174
+ p = 0;
175
+ if (gtlt === ">") {
176
+ // >1 => >=2.0.0
177
+ // >1.2 => >=1.3.0
178
+ // >1.2.3 => >= 1.2.4
179
+ gtlt = ">=";
180
+ if (xm) {
181
+ M = +M + 1;
182
+ m = 0;
183
+ p = 0;
184
+ }
185
+ else {
186
+ m = +m + 1;
187
+ p = 0;
188
+ }
189
+ }
190
+ else if (gtlt === "<=") {
191
+ // <=0.7.x is actually <0.8.0, since any 0.7.x should
192
+ // pass. Similarly, <=7.x is actually <8.0.0, etc.
193
+ gtlt = "<";
194
+ if (xm) {
195
+ M = +M + 1;
196
+ }
197
+ else {
198
+ m = +m + 1;
199
+ }
200
+ }
201
+ ret = gtlt + M + "." + m + "." + p;
202
+ }
203
+ else if (xm) {
204
+ ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0";
205
+ }
206
+ else if (xp) {
207
+ ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0";
208
+ }
209
+ return ret;
210
+ });
211
+ }
212
+ // Because * is AND-ed with everything else in the comparator,
213
+ // and '' means "any version", just remove the *s entirely.
214
+ function replaceStars(comp) {
215
+ return comp.trim().replace(re[STAR], "");
216
+ }
217
+ // This function is passed to string.replace(re[HYPHENRANGE])
218
+ // M, m, patch, prerelease, build
219
+ // 1.2 - 3.4.5 -> >=1.2.0 <=3.4.5
220
+ // 1.2.3 - 3.4 -> >=1.2.0 <3.5.0 Any 3.4.x will do
221
+ // 1.2 - 3.4 -> >=1.2.0 <3.5.0
222
+ function hyphenReplace(_$0, from, fM, fm, fp, _fpr, _fb, to, tM, tm, tp, tpr, _tb) {
223
+ if (isX(fM)) {
224
+ from = "";
225
+ }
226
+ else if (isX(fm)) {
227
+ from = ">=" + fM + ".0.0";
228
+ }
229
+ else if (isX(fp)) {
230
+ from = ">=" + fM + "." + fm + ".0";
231
+ }
232
+ else {
233
+ from = ">=" + from;
234
+ }
235
+ if (isX(tM)) {
236
+ to = "";
237
+ }
238
+ else if (isX(tm)) {
239
+ to = "<" + (+tM + 1) + ".0.0";
240
+ }
241
+ else if (isX(tp)) {
242
+ to = "<" + tM + "." + (+tm + 1) + ".0";
243
+ }
244
+ else if (tpr) {
245
+ to = "<=" + tM + "." + tm + "." + tp + "-" + tpr;
246
+ }
247
+ else {
248
+ to = "<=" + to;
249
+ }
250
+ return (from + " " + to).trim();
251
+ }
252
+ function isX(id) {
253
+ return !id || id.toLowerCase() === "x" || id === "*";
254
+ }
255
+ /**
256
+ * Parses a range string into a SemVerRange object or throws a TypeError.
257
+ * @param range The range string
258
+ * @returns A valid semantic version range
259
+ */
260
+ export function parseRange(range) {
261
+ // handle spaces around and between comparator and version
262
+ range = range.trim().replaceAll(/(?<=<|>|=) /g, "");
263
+ if (range === "") {
264
+ return { ranges: [[ALL]] };
265
+ }
266
+ // Split into groups of comparators, these are considered OR'd together.
267
+ const ranges = range
268
+ .trim()
269
+ .split(/\s*\|\|\s*/)
270
+ .map((range) => {
271
+ // convert `1.2.3 - 1.2.4` into `>=1.2.3 <=1.2.4`
272
+ const hr = re[HYPHENRANGE];
273
+ range = range.replace(hr, hyphenReplace);
274
+ range = replaceCarets(range);
275
+ range = replaceTildes(range);
276
+ range = replaceXRanges(range);
277
+ range = replaceStars(range);
278
+ // At this point, the range is completely trimmed and
279
+ // ready to be split into comparators.
280
+ // These are considered AND's
281
+ if (range === "") {
282
+ return [ALL];
283
+ }
284
+ else {
285
+ return range
286
+ .split(" ")
287
+ .filter((r) => r)
288
+ .map((r) => parseComparator(r));
289
+ }
290
+ });
291
+ return { ranges };
292
+ }
@@ -0,0 +1,8 @@
1
+ import type { SemVerRange } from "./types.js";
2
+ /**
3
+ * Formats the range into a string
4
+ * @example >=0.0.0 || <1.0.0
5
+ * @param range The range to format
6
+ * @returns A string representation of the range
7
+ */
8
+ export declare function rangeFormat(range: SemVerRange): string;
@@ -0,0 +1,11 @@
1
+ import { comparatorFormat } from "./comparator_format.js";
2
+ /**
3
+ * Formats the range into a string
4
+ * @example >=0.0.0 || <1.0.0
5
+ * @param range The range to format
6
+ * @returns A string representation of the range
7
+ */
8
+ export function rangeFormat(range) {
9
+ return range.ranges.map((c) => c.map((c) => comparatorFormat(c)).join(" "))
10
+ .join("||");
11
+ }
@@ -0,0 +1,8 @@
1
+ import type { SemVerRange } from "./types.js";
2
+ /**
3
+ * The ranges intersect every range of AND comparators intersects with a least one range of OR ranges.
4
+ * @param r0 range 0
5
+ * @param r1 range 1
6
+ * @returns returns true if any
7
+ */
8
+ export declare function rangeIntersects(r0: SemVerRange, r1: SemVerRange): boolean;
@@ -0,0 +1,35 @@
1
+ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
2
+ import { comparatorIntersects } from "./comparator_intersects.js";
3
+ function rangesSatisfiable(ranges) {
4
+ return ranges.every((r) => {
5
+ // For each OR at least one AND must be satisfiable
6
+ return r.ranges.some((comparators) => comparatorsSatisfiable(comparators));
7
+ });
8
+ }
9
+ function comparatorsSatisfiable(comparators) {
10
+ // Comparators are satisfiable if they all intersect with each other
11
+ for (let i = 0; i < comparators.length - 1; i++) {
12
+ const c0 = comparators[i];
13
+ for (const c1 of comparators.slice(i + 1)) {
14
+ if (!comparatorIntersects(c0, c1)) {
15
+ return false;
16
+ }
17
+ }
18
+ }
19
+ return true;
20
+ }
21
+ /**
22
+ * The ranges intersect every range of AND comparators intersects with a least one range of OR ranges.
23
+ * @param r0 range 0
24
+ * @param r1 range 1
25
+ * @returns returns true if any
26
+ */
27
+ export function rangeIntersects(r0, r1) {
28
+ return rangesSatisfiable([r0, r1]) && r0.ranges.some((r00) => {
29
+ return r1.ranges.some((r11) => {
30
+ return r00.every((c0) => {
31
+ return r11.every((c1) => comparatorIntersects(c0, c1));
32
+ });
33
+ });
34
+ });
35
+ }
@@ -0,0 +1,7 @@
1
+ import type { SemVer, SemVerRange } from "./types.js";
2
+ /**
3
+ * The maximum valid SemVer for a given range or INVALID
4
+ * @param range The range to calculate the max for
5
+ * @returns A valid SemVer or INVALID
6
+ */
7
+ export declare function rangeMax(range: SemVerRange): SemVer | undefined;
@@ -0,0 +1,15 @@
1
+ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
2
+ import { INVALID } from "./constants.js";
3
+ import { sort } from "./sort.js";
4
+ import { testRange } from "./test_range.js";
5
+ /**
6
+ * The maximum valid SemVer for a given range or INVALID
7
+ * @param range The range to calculate the max for
8
+ * @returns A valid SemVer or INVALID
9
+ */
10
+ export function rangeMax(range) {
11
+ // For and's, you take the smallest max
12
+ // For or's, you take the biggest max
13
+ //[ [1 and 2] or [2 and 3] ] = [ 1 or 2 ] = 2
14
+ return sort(range.ranges.map((r) => sort(r.filter((c) => testRange(c.max, range)).map((c) => c.max)).shift())).filter((v) => v).pop() ?? INVALID;
15
+ }
@@ -0,0 +1,7 @@
1
+ import type { SemVer, SemVerRange } from "./types.js";
2
+ /**
3
+ * The minimum valid SemVer for a given range or INVALID
4
+ * @param range The range to calculate the min for
5
+ * @returns A valid SemVer or INVALID
6
+ */
7
+ export declare function rangeMin(range: SemVerRange): SemVer;
@@ -0,0 +1,14 @@
1
+ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
2
+ import { INVALID } from "./constants.js";
3
+ import { sort } from "./sort.js";
4
+ import { testRange } from "./test_range.js";
5
+ /**
6
+ * The minimum valid SemVer for a given range or INVALID
7
+ * @param range The range to calculate the min for
8
+ * @returns A valid SemVer or INVALID
9
+ */
10
+ export function rangeMin(range) {
11
+ // For or's, you take the smallest min
12
+ //[ [1 and 2] or [2 and 3] ] = [ 2 or 3 ] = 2
13
+ return sort(range.ranges.map((r) => sort(r.filter((c) => testRange(c.min, range)).map((c) => c.min)).pop()).filter((v) => v)).shift() ?? INVALID;
14
+ }
@@ -0,0 +1,8 @@
1
+ import type { SemVer } from "./types.js";
2
+ /**
3
+ * A reverse comparison of two versions. Same as compare but
4
+ * `1` and `-1` are inverted.
5
+ *
6
+ * Sorts in descending order if passed to `Array.sort()`,
7
+ */
8
+ export declare function rcompare(s0: SemVer, s1: SemVer): 1 | 0 | -1;
@@ -0,0 +1,10 @@
1
+ import { compare } from "./compare.js";
2
+ /**
3
+ * A reverse comparison of two versions. Same as compare but
4
+ * `1` and `-1` are inverted.
5
+ *
6
+ * Sorts in descending order if passed to `Array.sort()`,
7
+ */
8
+ export function rcompare(s0, s1) {
9
+ return compare(s1, s0);
10
+ }
@@ -0,0 +1,3 @@
1
+ import type { SemVer } from "./types.js";
2
+ /** Sorts a list of semantic versions in descending order. */
3
+ export declare function rsort(list: SemVer[]): SemVer[];
@@ -0,0 +1,5 @@
1
+ import { compare } from "./compare.js";
2
+ /** Sorts a list of semantic versions in descending order. */
3
+ export function rsort(list) {
4
+ return list.sort((a, b) => compare(b, a));
5
+ }
@@ -0,0 +1,3 @@
1
+ import type { SemVer } from "./types.js";
2
+ /** Sorts a list of semantic versions in ascending order. */
3
+ export declare function sort(list: SemVer[]): SemVer[];
@@ -0,0 +1,5 @@
1
+ import { compare } from "./compare.js";
2
+ /** Sorts a list of semantic versions in ascending order. */
3
+ export function sort(list) {
4
+ return list.sort((a, b) => compare(a, b));
5
+ }
@@ -0,0 +1,8 @@
1
+ import type { SemVer, SemVerComparator } from "./types.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 declare function testComparator(version: SemVer, comparator: SemVerComparator): boolean;
@@ -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;