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
@@ -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.205.0/semver/mod.js";
2
+ export type { SemVer } from "../deps/deno.land/std@0.205.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.205.0/semver/mod.js";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Temporary URLPattern shim
3
+ * @see https://github.com/denoland/dnt/issues/336
4
+ */
5
+ declare class URLPatternShim {
6
+ private readonly pattern;
7
+ constructor(pattern: string | RegExp);
8
+ test(url: string): boolean;
9
+ }
10
+ export interface Settings {
11
+ pattern: URLPatternShim;
12
+ tagLink: (url: string, tag: string, previous?: string) => string;
13
+ head: string;
14
+ }
15
+ export default function getSettingsForURL(url: string): Settings | undefined;
16
+ export declare const settings: Settings[];
17
+ export {};
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Temporary URLPattern shim
3
+ * @see https://github.com/denoland/dnt/issues/336
4
+ */
5
+ class URLPatternShim {
6
+ constructor(pattern) {
7
+ Object.defineProperty(this, "pattern", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: void 0
12
+ });
13
+ if (typeof pattern === "string") {
14
+ pattern = pattern.replace(/\*/g, ".*");
15
+ pattern = new RegExp(`^${pattern}$`);
16
+ }
17
+ this.pattern = pattern;
18
+ }
19
+ test(url) {
20
+ return this.pattern.test(url);
21
+ }
22
+ }
23
+ export default function getSettingsForURL(url) {
24
+ return settings.find((settings) => settings.pattern.test(url));
25
+ }
26
+ export const settings = [
27
+ {
28
+ pattern: new URLPatternShim("https://github.com/*"),
29
+ head: "HEAD",
30
+ tagLink(url, tag, previous) {
31
+ if (!previous) {
32
+ return `${url}/releases/tag/${tag}`;
33
+ }
34
+ return `${url}/compare/${previous}...${tag}`;
35
+ },
36
+ },
37
+ {
38
+ pattern: new URLPatternShim("https://gitlab.*/*"),
39
+ head: "master",
40
+ tagLink(url, tag, previous) {
41
+ if (!previous) {
42
+ return `${url}/-/tags/${tag}`;
43
+ }
44
+ return `${url}/-/compare/${previous}...${tag}`;
45
+ },
46
+ },
47
+ ];
@@ -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.5.0",
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) {
package/script/bin.js CHANGED
@@ -23,6 +23,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  __setModuleDefault(result, mod);
24
24
  return result;
25
25
  };
26
+ var __importDefault = (this && this.__importDefault) || function (mod) {
27
+ return (mod && mod.__esModule) ? mod : { "default": mod };
28
+ };
26
29
  Object.defineProperty(exports, "__esModule", { value: true });
27
30
  require("./_dnt.polyfills.js");
28
31
  const dntShim = __importStar(require("./_dnt.shims.js"));
@@ -30,6 +33,7 @@ const mod_js_1 = require("./deps/deno.land/std@0.189.0/path/mod.js");
30
33
  const mod_js_2 = require("./mod.js");
31
34
  const mod_js_3 = require("./deps/deno.land/std@0.189.0/flags/mod.js");
32
35
  const mod_js_4 = require("./deps/deno.land/x/ini@v2.1.0/mod.js");
36
+ const settings_js_1 = __importDefault(require("./src/settings.js"));
33
37
  const argv = (0, mod_js_3.parse)(dntShim.Deno.args, {
34
38
  default: {
35
39
  file: "CHANGELOG.md",
@@ -39,8 +43,9 @@ const argv = (0, mod_js_3.parse)(dntShim.Deno.args, {
39
43
  url: null,
40
44
  https: true,
41
45
  quiet: false,
46
+ head: null,
42
47
  },
43
- string: ["file", "format", "url"],
48
+ string: ["file", "format", "url", "head"],
44
49
  boolean: ["https", "init", "latest-release", "quiet"],
45
50
  });
46
51
  const file = (0, mod_js_1.join)(dntShim.Deno.cwd(), argv.file);
@@ -85,21 +90,6 @@ try {
85
90
  const version = typeof argv.create === "string" ? argv.create : undefined;
86
91
  changelog.addRelease(new mod_js_2.Release(version));
87
92
  }
88
- if (!changelog.url) {
89
- if (argv.url) {
90
- changelog.url = argv.url;
91
- }
92
- else {
93
- const url = getRemoteUrl(argv.https);
94
- if (url) {
95
- changelog.url = url;
96
- }
97
- else {
98
- console.error(red('Please, set the repository url with --url="https://github.com/username/repository"'));
99
- dntShim.Deno.exit(1);
100
- }
101
- }
102
- }
103
93
  save(file, changelog);
104
94
  }
105
95
  catch (err) {
@@ -109,9 +99,20 @@ catch (err) {
109
99
  }
110
100
  }
111
101
  function save(file, changelog, isNew = false) {
112
- const url = changelog.url;
113
- if (url && url.includes("gitlab.com")) {
114
- changelog.head = "master";
102
+ changelog.url = argv.url || changelog.url || getRemoteUrl(argv.https);
103
+ if (!changelog.url) {
104
+ console.error(red('Please, set the repository url with --url="https://github.com/username/repository"'));
105
+ changelog.url = "https://example.com";
106
+ }
107
+ if (changelog.url) {
108
+ const settings = (0, settings_js_1.default)(changelog.url);
109
+ if (settings) {
110
+ changelog.head = settings.head;
111
+ changelog.tagLinkBuilder = settings.tagLink;
112
+ }
113
+ }
114
+ if (argv.head) {
115
+ changelog.head = argv.head;
115
116
  }
116
117
  dntShim.Deno.writeTextFileSync(file, changelog.toString());
117
118
  if (isNew) {
@@ -140,7 +141,8 @@ function getRemoteUrl(https = true) {
140
141
  if (https) {
141
142
  remoteUrl.protocol = "https:";
142
143
  }
143
- return remoteUrl.href;
144
+ // remove trailing slashes
145
+ return remoteUrl.href.replace(/\/+$/, "");
144
146
  }
145
147
  catch (err) {
146
148
  console.error(red(err.message));
@@ -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, };
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.XRANGE = exports.TILDE = exports.STAR = exports.src = exports.re = exports.NUMERICIDENTIFIER = exports.HYPHENRANGE = exports.FULL = exports.COMPARATOR = exports.CARET = exports.isValidOperator = exports.isValidString = exports.MAX_LENGTH = exports.isValidNumber = exports.compareIdentifier = exports.checkIdentifier = exports.compareNumber = void 0;
5
+ function compareNumber(a, b) {
6
+ if (isNaN(a) || isNaN(b)) {
7
+ throw new Error("Comparison against non-numbers");
8
+ }
9
+ return a === b ? 0 : a < b ? -1 : 1;
10
+ }
11
+ exports.compareNumber = compareNumber;
12
+ function checkIdentifier(v1, v2) {
13
+ // NOT having a prerelease is > having one
14
+ // But NOT having a build is < having one
15
+ if (v1.length && !v2.length) {
16
+ return -1;
17
+ }
18
+ else if (!v1.length && v2.length) {
19
+ return 1;
20
+ }
21
+ else {
22
+ return 0;
23
+ }
24
+ }
25
+ exports.checkIdentifier = checkIdentifier;
26
+ function compareIdentifier(v1, v2) {
27
+ let i = 0;
28
+ do {
29
+ const a = v1[i];
30
+ const b = v2[i];
31
+ if (a === undefined && b === undefined) {
32
+ // same length is equal
33
+ return 0;
34
+ }
35
+ else if (b === undefined) {
36
+ // longer > shorter
37
+ return 1;
38
+ }
39
+ else if (a === undefined) {
40
+ // shorter < longer
41
+ return -1;
42
+ }
43
+ else if (typeof a === "string" && typeof b === "number") {
44
+ // string > number
45
+ return 1;
46
+ }
47
+ else if (typeof a === "number" && typeof b === "string") {
48
+ // number < string
49
+ return -1;
50
+ }
51
+ else if (a < b) {
52
+ return -1;
53
+ }
54
+ else if (a > b) {
55
+ return 1;
56
+ }
57
+ else {
58
+ // If they're equal, continue comparing segments.
59
+ continue;
60
+ }
61
+ } while (++i);
62
+ // It can't ever reach here, but typescript doesn't realize that so
63
+ // add this line so the return type is inferred correctly.
64
+ return 0;
65
+ }
66
+ exports.compareIdentifier = compareIdentifier;
67
+ // The actual regexps
68
+ const re = [];
69
+ exports.re = re;
70
+ const src = [];
71
+ exports.src = src;
72
+ let R = 0;
73
+ // The following Regular Expressions can be used for tokenizing,
74
+ // validating, and parsing SemVer version strings.
75
+ // ## Numeric Identifier
76
+ // A single `0`, or a non-zero digit followed by zero or more digits.
77
+ const NUMERICIDENTIFIER = R++;
78
+ exports.NUMERICIDENTIFIER = NUMERICIDENTIFIER;
79
+ src[NUMERICIDENTIFIER] = "0|[1-9]\\d*";
80
+ // ## Non-numeric Identifier
81
+ // Zero or more digits, followed by a letter or hyphen, and then zero or
82
+ // more letters, digits, or hyphens.
83
+ const NONNUMERICIDENTIFIER = R++;
84
+ src[NONNUMERICIDENTIFIER] = "\\d*[a-zA-Z-][a-zA-Z0-9-]*";
85
+ // ## Main Version
86
+ // Three dot-separated numeric identifiers.
87
+ const MAINVERSION = R++;
88
+ const nid = src[NUMERICIDENTIFIER];
89
+ src[MAINVERSION] = `(${nid})\\.(${nid})\\.(${nid})`;
90
+ // ## Pre-release Version Identifier
91
+ // A numeric identifier, or a non-numeric identifier.
92
+ const PRERELEASEIDENTIFIER = R++;
93
+ src[PRERELEASEIDENTIFIER] = "(?:" + src[NUMERICIDENTIFIER] + "|" +
94
+ src[NONNUMERICIDENTIFIER] + ")";
95
+ // ## Pre-release Version
96
+ // Hyphen, followed by one or more dot-separated pre-release version
97
+ // identifiers.
98
+ const PRERELEASE = R++;
99
+ src[PRERELEASE] = "(?:-(" +
100
+ src[PRERELEASEIDENTIFIER] +
101
+ "(?:\\." +
102
+ src[PRERELEASEIDENTIFIER] +
103
+ ")*))";
104
+ // ## Build Metadata Identifier
105
+ // Any combination of digits, letters, or hyphens.
106
+ const BUILDIDENTIFIER = R++;
107
+ src[BUILDIDENTIFIER] = "[0-9A-Za-z-]+";
108
+ // ## Build Metadata
109
+ // Plus sign, followed by one or more period-separated build metadata
110
+ // identifiers.
111
+ const BUILD = R++;
112
+ src[BUILD] = "(?:\\+(" + src[BUILDIDENTIFIER] + "(?:\\." +
113
+ src[BUILDIDENTIFIER] + ")*))";
114
+ // ## Full Version String
115
+ // A main version, followed optionally by a pre-release version and
116
+ // build metadata.
117
+ // Note that the only major, minor, patch, and pre-release sections of
118
+ // the version string are capturing groups. The build metadata is not a
119
+ // capturing group, because it should not ever be used in version
120
+ // comparison.
121
+ const FULL = R++;
122
+ exports.FULL = FULL;
123
+ const FULLPLAIN = "v?" + src[MAINVERSION] + src[PRERELEASE] + "?" + src[BUILD] +
124
+ "?";
125
+ src[FULL] = "^" + FULLPLAIN + "$";
126
+ const GTLT = R++;
127
+ src[GTLT] = "((?:<|>)?=?)";
128
+ // Something like "2.*" or "1.2.x".
129
+ // Note that "x.x" is a valid xRange identifier, meaning "any version"
130
+ // Only the first item is strictly required.
131
+ const XRANGEIDENTIFIER = R++;
132
+ src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + "|x|X|\\*";
133
+ const XRANGEPLAIN = R++;
134
+ src[XRANGEPLAIN] = "[v=\\s]*(" +
135
+ src[XRANGEIDENTIFIER] +
136
+ ")" +
137
+ "(?:\\.(" +
138
+ src[XRANGEIDENTIFIER] +
139
+ ")" +
140
+ "(?:\\.(" +
141
+ src[XRANGEIDENTIFIER] +
142
+ ")" +
143
+ "(?:" +
144
+ src[PRERELEASE] +
145
+ ")?" +
146
+ src[BUILD] +
147
+ "?" +
148
+ ")?)?";
149
+ const XRANGE = R++;
150
+ exports.XRANGE = XRANGE;
151
+ src[XRANGE] = "^" + src[GTLT] + "\\s*" + src[XRANGEPLAIN] + "$";
152
+ // Tilde ranges.
153
+ // Meaning is "reasonably at or greater than"
154
+ const LONETILDE = R++;
155
+ src[LONETILDE] = "(?:~>?)";
156
+ const TILDE = R++;
157
+ exports.TILDE = TILDE;
158
+ src[TILDE] = "^" + src[LONETILDE] + src[XRANGEPLAIN] + "$";
159
+ // Caret ranges.
160
+ // Meaning is "at least and backwards compatible with"
161
+ const LONECARET = R++;
162
+ src[LONECARET] = "(?:\\^)";
163
+ const CARET = R++;
164
+ exports.CARET = CARET;
165
+ src[CARET] = "^" + src[LONECARET] + src[XRANGEPLAIN] + "$";
166
+ // A simple gt/lt/eq thing, or just "" to indicate "any version"
167
+ const COMPARATOR = R++;
168
+ exports.COMPARATOR = COMPARATOR;
169
+ src[COMPARATOR] = "^" + src[GTLT] + "\\s*(" + FULLPLAIN + ")$|^$";
170
+ // Something like `1.2.3 - 1.2.4`
171
+ const HYPHENRANGE = R++;
172
+ exports.HYPHENRANGE = HYPHENRANGE;
173
+ src[HYPHENRANGE] = "^\\s*(" +
174
+ src[XRANGEPLAIN] +
175
+ ")" +
176
+ "\\s+-\\s+" +
177
+ "(" +
178
+ src[XRANGEPLAIN] +
179
+ ")" +
180
+ "\\s*$";
181
+ // Star ranges basically just allow anything at all.
182
+ const STAR = R++;
183
+ exports.STAR = STAR;
184
+ src[STAR] = "(<|>)?=?\\s*\\*";
185
+ // Compile to actual regexp objects.
186
+ // All are flag-free, unless they were created above with a flag.
187
+ for (let i = 0; i < R; i++) {
188
+ if (!re[i]) {
189
+ re[i] = new RegExp(src[i]);
190
+ }
191
+ }
192
+ /**
193
+ * Returns true if the value is a valid SemVer number.
194
+ *
195
+ * Must be a number. Must not be NaN. Can be positive or negative infinity.
196
+ * Can be between 0 and MAX_SAFE_INTEGER.
197
+ * @param value The value to check
198
+ * @returns True if its a valid semver number
199
+ */
200
+ function isValidNumber(value) {
201
+ return (typeof value === "number" &&
202
+ !Number.isNaN(value) && (!Number.isFinite(value) ||
203
+ (0 <= value && value <= Number.MAX_SAFE_INTEGER)));
204
+ }
205
+ exports.isValidNumber = isValidNumber;
206
+ exports.MAX_LENGTH = 256;
207
+ /**
208
+ * Returns true if the value is a valid semver pre-release or build identifier.
209
+ *
210
+ * Must be a string. Must be between 1 and 256 characters long. Must match
211
+ * the regular expression /[0-9A-Za-z-]+/.
212
+ * @param value The value to check
213
+ * @returns True if the value is a valid semver string.
214
+ */
215
+ function isValidString(value) {
216
+ return (typeof value === "string" &&
217
+ value.length > 0 &&
218
+ value.length <= exports.MAX_LENGTH &&
219
+ !!value.match(/[0-9A-Za-z-]+/));
220
+ }
221
+ exports.isValidString = isValidString;
222
+ /**
223
+ * Checks to see if the value is a valid Operator string.
224
+ *
225
+ * Adds a type assertion if true.
226
+ * @param value The value to check
227
+ * @returns True if the value is a valid Operator string otherwise false.
228
+ */
229
+ function isValidOperator(value) {
230
+ if (typeof value !== "string")
231
+ return false;
232
+ switch (value) {
233
+ case "":
234
+ case "=":
235
+ case "==":
236
+ case "===":
237
+ case "!==":
238
+ case "!=":
239
+ case ">":
240
+ case ">=":
241
+ case "<":
242
+ case "<=":
243
+ return true;
244
+ default:
245
+ return false;
246
+ }
247
+ }
248
+ exports.isValidOperator = isValidOperator;
@@ -0,0 +1,9 @@
1
+ import type { Operator, SemVer } from "./types.js";
2
+ /**
3
+ * Do a comparison of two semantic version objects based on the given operator
4
+ * @param s0 The left side of the comparison
5
+ * @param operator The operator to use for the comparison
6
+ * @param s1 The right side of the comparison
7
+ * @returns True or false based on the operator
8
+ */
9
+ export declare function cmp(s0: SemVer, operator: Operator, s1: SemVer): boolean;