keep-a-changelog 2.0.1 → 2.2.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 (117) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/README.md +21 -6
  3. package/esm/_dnt.polyfills.js +15 -0
  4. package/esm/bin.js +9 -4
  5. package/esm/deps/deno.land/std@0.173.0/_util/asserts.js +21 -0
  6. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/_util/os.js +4 -1
  7. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/flags/mod.js +145 -36
  8. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/_constants.js +1 -0
  9. package/esm/deps/deno.land/std@0.173.0/path/_interface.js +3 -0
  10. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/_util.js +1 -0
  11. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/common.js +1 -1
  12. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/glob.js +1 -1
  13. package/esm/deps/deno.land/std@0.173.0/path/mod.js +32 -0
  14. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/posix.js +23 -16
  15. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/separator.js +1 -1
  16. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/win32.js +20 -15
  17. package/esm/deps/{deno_land/x/semver_v1.4.0 → deno.land/std@0.173.0/semver}/mod.js +227 -334
  18. package/esm/deps/{deno_land/std_0.51.0 → deno.land/std@0.51.0}/fs/eol.js +0 -0
  19. package/esm/deps/{deno_land/x/ini_v2.1.0 → deno.land/x/ini@v2.1.0}/ini.js +1 -1
  20. package/esm/deps/{deno_land/x/ini_v2.1.0 → deno.land/x/ini@v2.1.0}/mod.js +0 -0
  21. package/esm/mod.js +1 -0
  22. package/esm/src/Change.js +15 -15
  23. package/esm/src/Changelog.js +9 -1
  24. package/esm/src/Release.js +21 -4
  25. package/esm/src/deps.js +1 -1
  26. package/esm/src/parser.js +24 -5
  27. package/esm/test/changelog.custom.type.md +0 -1
  28. package/esm/test/changelog.expected.linted.md +208 -0
  29. package/esm/test/changelog.expected.md +6 -4
  30. package/esm/test/changelog.md +7 -3
  31. package/esm/test/empty.expected.md +0 -1
  32. package/package.json +13 -8
  33. package/script/_dnt.polyfills.js +16 -0
  34. package/script/_dnt.shims.js +66 -0
  35. package/script/bin.js +144 -0
  36. package/script/deps/deno.land/std@0.173.0/_util/asserts.js +27 -0
  37. package/script/deps/deno.land/std@0.173.0/_util/os.js +44 -0
  38. package/script/deps/deno.land/std@0.173.0/flags/mod.js +368 -0
  39. package/script/deps/deno.land/std@0.173.0/path/_constants.js +49 -0
  40. package/script/deps/deno.land/std@0.173.0/path/_interface.js +4 -0
  41. package/script/deps/deno.land/std@0.173.0/path/_util.js +125 -0
  42. package/script/deps/deno.land/std@0.173.0/path/common.js +40 -0
  43. package/script/deps/deno.land/std@0.173.0/path/glob.js +391 -0
  44. package/script/deps/deno.land/std@0.173.0/path/mod.js +63 -0
  45. package/script/deps/deno.land/std@0.173.0/path/posix.js +539 -0
  46. package/script/deps/deno.land/std@0.173.0/path/separator.js +8 -0
  47. package/script/deps/deno.land/std@0.173.0/path/win32.js +1007 -0
  48. package/script/deps/deno.land/std@0.173.0/semver/mod.js +1458 -0
  49. package/script/deps/deno.land/std@0.51.0/fs/eol.js +34 -0
  50. package/script/deps/deno.land/x/ini@v2.1.0/ini.js +256 -0
  51. package/script/deps/deno.land/x/ini@v2.1.0/mod.js +17 -0
  52. package/script/mod.js +15 -0
  53. package/{umd → script}/package.json +0 -0
  54. package/script/src/Change.js +51 -0
  55. package/script/src/Changelog.js +148 -0
  56. package/script/src/Release.js +227 -0
  57. package/script/src/deps.js +9 -0
  58. package/script/src/parser.js +184 -0
  59. package/{umd → script}/test/changelog.custom.type.md +0 -1
  60. package/script/test/changelog.expected.linted.md +208 -0
  61. package/{umd → script}/test/changelog.expected.md +6 -4
  62. package/{umd → script}/test/changelog.md +7 -3
  63. package/{umd → script}/test/empty.expected.md +0 -1
  64. package/types/_dnt.polyfills.d.ts +11 -0
  65. package/types/_dnt.shims.d.ts +0 -4
  66. package/types/bin.d.ts +1 -1
  67. package/types/deps/deno.land/std@0.173.0/_util/asserts.d.ts +10 -0
  68. package/types/deps/deno.land/std@0.173.0/_util/os.d.ts +4 -0
  69. package/types/deps/deno.land/std@0.173.0/flags/mod.d.ts +166 -0
  70. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/_constants.d.ts +0 -0
  71. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/_interface.d.ts +1 -1
  72. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/_util.d.ts +0 -0
  73. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/common.d.ts +0 -0
  74. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/glob.d.ts +10 -5
  75. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/mod.d.ts +0 -0
  76. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/posix.d.ts +9 -5
  77. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/separator.d.ts +0 -0
  78. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.173.0}/path/win32.d.ts +7 -5
  79. package/types/deps/deno.land/std@0.173.0/semver/mod.d.ts +398 -0
  80. package/types/deps/{deno_land/std_0.51.0 → deno.land/std@0.51.0}/fs/eol.d.ts +0 -0
  81. package/types/deps/{deno_land/x/ini_v2.1.0 → deno.land/x/ini@v2.1.0}/ini.d.ts +0 -0
  82. package/types/deps/{deno_land/x/ini_v2.1.0 → deno.land/x/ini@v2.1.0}/mod.d.ts +0 -0
  83. package/types/mod.d.ts +1 -0
  84. package/types/src/Changelog.d.ts +1 -0
  85. package/types/src/Release.d.ts +2 -0
  86. package/types/src/deps.d.ts +1 -1
  87. package/esm/deps/deno_land/std_0.120.0/_util/assert.js +0 -13
  88. package/esm/deps/deno_land/std_0.120.0/path/_interface.js +0 -3
  89. package/esm/deps/deno_land/std_0.120.0/path/mod.js +0 -14
  90. package/types/deps/deno_land/std_0.120.0/_util/assert.d.ts +0 -5
  91. package/types/deps/deno_land/std_0.120.0/_util/os.d.ts +0 -3
  92. package/types/deps/deno_land/std_0.120.0/flags/mod.d.ts +0 -50
  93. package/types/deps/deno_land/x/semver_v1.4.0/mod.d.ts +0 -116
  94. package/umd/_dnt.shims.js +0 -76
  95. package/umd/bin.js +0 -145
  96. package/umd/deps/deno_land/std_0.120.0/_util/assert.js +0 -28
  97. package/umd/deps/deno_land/std_0.120.0/_util/os.js +0 -47
  98. package/umd/deps/deno_land/std_0.120.0/flags/mod.js +0 -269
  99. package/umd/deps/deno_land/std_0.120.0/path/_constants.js +0 -58
  100. package/umd/deps/deno_land/std_0.120.0/path/_interface.js +0 -14
  101. package/umd/deps/deno_land/std_0.120.0/path/_util.js +0 -134
  102. package/umd/deps/deno_land/std_0.120.0/path/common.js +0 -50
  103. package/umd/deps/deno_land/std_0.120.0/path/glob.js +0 -397
  104. package/umd/deps/deno_land/std_0.120.0/path/mod.js +0 -51
  105. package/umd/deps/deno_land/std_0.120.0/path/posix.js +0 -538
  106. package/umd/deps/deno_land/std_0.120.0/path/separator.js +0 -18
  107. package/umd/deps/deno_land/std_0.120.0/path/win32.js +0 -1008
  108. package/umd/deps/deno_land/std_0.51.0/fs/eol.js +0 -44
  109. package/umd/deps/deno_land/x/ini_v2.1.0/ini.js +0 -262
  110. package/umd/deps/deno_land/x/ini_v2.1.0/mod.js +0 -23
  111. package/umd/deps/deno_land/x/semver_v1.4.0/mod.js +0 -1578
  112. package/umd/mod.js +0 -24
  113. package/umd/src/Change.js +0 -61
  114. package/umd/src/Changelog.js +0 -150
  115. package/umd/src/Release.js +0 -220
  116. package/umd/src/deps.js +0 -19
  117. package/umd/src/parser.js +0 -175
@@ -1,5 +1,5 @@
1
1
  import * as dntShim from "../../../../_dnt.shims.js";
2
- import * as eol from '../../std_0.51.0/fs/eol.js';
2
+ import * as eol from '../../std@0.51.0/fs/eol.js';
3
3
  const isWindows = dntShim.Deno.build.os == "windows";
4
4
  const EOL = isWindows ? eol.EOL.CRLF : eol.EOL.LF;
5
5
  export const parse = decode;
package/esm/mod.js CHANGED
@@ -1,3 +1,4 @@
1
+ import "./_dnt.polyfills.js";
1
2
  import parser from "./src/parser.js";
2
3
  import Change from "./src/Change.js";
3
4
  import Changelog from "./src/Changelog.js";
package/esm/src/Change.js CHANGED
@@ -1,4 +1,19 @@
1
1
  export default class Change {
2
+ static extractIssues(text, issues) {
3
+ return text
4
+ .replace(/(^|[^\\])\[#(\d+)\](?=[^\(]|$)/g, (_, start, index) => {
5
+ if (!issues.includes(index)) {
6
+ issues.push(index);
7
+ }
8
+ return `${start}[#${index}]`;
9
+ })
10
+ .replace(/(^|[\s,])#(\d+)(?=[\s,\.]|$)/g, (_, start, index) => {
11
+ if (!issues.includes(index)) {
12
+ issues.push(index);
13
+ }
14
+ return `${start}[#${index}]`;
15
+ });
16
+ }
2
17
  constructor(title, description = "") {
3
18
  Object.defineProperty(this, "title", {
4
19
  enumerable: true,
@@ -21,21 +36,6 @@ export default class Change {
21
36
  this.title = Change.extractIssues(title, this.issues);
22
37
  this.description = Change.extractIssues(description, this.issues);
23
38
  }
24
- static extractIssues(text, issues) {
25
- return text
26
- .replace(/(^|[^\\])\[#(\d+)\](?=[^\(]|$)/g, (_, start, index) => {
27
- if (!issues.includes(index)) {
28
- issues.push(index);
29
- }
30
- return `${start}[#${index}]`;
31
- })
32
- .replace(/(^|[\s,])#(\d+)(?=[\s,\.]|$)/g, (_, start, index) => {
33
- if (!issues.includes(index)) {
34
- issues.push(index);
35
- }
36
- return `${start}[#${index}]`;
37
- });
38
- }
39
39
  toString() {
40
40
  let t = this.title.split("\n").map((line) => ` ${line}`.trimEnd());
41
41
  t[0] = "-" + t[0].substr(1);
@@ -49,6 +49,12 @@ export default class Changelog {
49
49
  writable: true,
50
50
  value: void 0
51
51
  });
52
+ Object.defineProperty(this, "format", {
53
+ enumerable: true,
54
+ configurable: true,
55
+ writable: true,
56
+ value: "compact"
57
+ });
52
58
  this.title = title;
53
59
  this.description = description;
54
60
  }
@@ -80,6 +86,9 @@ export default class Changelog {
80
86
  t.push("");
81
87
  }
82
88
  t.push(`# ${this.title}`);
89
+ if (this.format === "markdownlint") {
90
+ t.push("");
91
+ }
83
92
  const links = [];
84
93
  const compareLinks = [];
85
94
  const description = this.description.trim() ||
@@ -88,7 +97,6 @@ export default class Changelog {
88
97
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
89
98
  and this project adheres to [Semantic Versioning](http://semver.org/).`;
90
99
  if (description) {
91
- t.push("");
92
100
  t.push(description);
93
101
  }
94
102
  this.releases.forEach((release) => {
@@ -20,6 +20,12 @@ export default class Release {
20
20
  writable: true,
21
21
  value: void 0
22
22
  });
23
+ Object.defineProperty(this, "yanked", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: false
28
+ });
23
29
  Object.defineProperty(this, "description", {
24
30
  enumerable: true,
25
31
  configurable: true,
@@ -84,6 +90,10 @@ export default class Release {
84
90
  }
85
91
  this.date = date;
86
92
  }
93
+ setYanked(yanked = true) {
94
+ this.yanked = yanked;
95
+ return this;
96
+ }
87
97
  addChange(type, change) {
88
98
  if (!(change instanceof Change)) {
89
99
  change = new Change(change);
@@ -115,22 +125,26 @@ export default class Release {
115
125
  toString(changelog) {
116
126
  let t = [];
117
127
  const hasCompareLink = this.getCompareLink(changelog) !== undefined;
128
+ const yanked = this.yanked ? " [YANKED]" : "";
118
129
  if (this.version) {
119
130
  if (hasCompareLink) {
120
- t.push(`## [${this.version}] - ${formatDate(this.date)}`);
131
+ t.push(`## [${this.version}] - ${formatDate(this.date)}${yanked}`);
121
132
  }
122
133
  else {
123
- t.push(`## ${this.version} - ${formatDate(this.date)}`);
134
+ t.push(`## ${this.version} - ${formatDate(this.date)}${yanked}`);
124
135
  }
125
136
  }
126
137
  else {
127
138
  if (hasCompareLink) {
128
- t.push("## [Unreleased]");
139
+ t.push(`## [Unreleased]${yanked}`);
129
140
  }
130
141
  else {
131
- t.push("## Unreleased");
142
+ t.push(`## Unreleased${yanked}`);
132
143
  }
133
144
  }
145
+ if (changelog?.format === "markdownlint") {
146
+ t.push("");
147
+ }
134
148
  if (this.description.trim()) {
135
149
  t.push(this.description.trim());
136
150
  t.push("");
@@ -138,6 +152,9 @@ export default class Release {
138
152
  this.changes.forEach((changes, type) => {
139
153
  if (changes.length) {
140
154
  t.push(`### ${type[0].toUpperCase()}${type.substring(1)}`);
155
+ if (changelog?.format === "markdownlint") {
156
+ t.push("");
157
+ }
141
158
  t = t.concat(changes.map((change) => change.toString()));
142
159
  t.push("");
143
160
  }
package/esm/src/deps.js CHANGED
@@ -1 +1 @@
1
- export { default as Semver, eq, } from "../deps/deno_land/x/semver_v1.4.0/mod.js";
1
+ export { default as Semver, eq, } from "../deps/deno.land/std@0.173.0/semver/mod.js";
package/esm/src/parser.js CHANGED
@@ -19,25 +19,28 @@ function processTokens(tokens, opts) {
19
19
  const changelog = new Changelog("");
20
20
  changelog.flag = getContent(tokens, "flag");
21
21
  changelog.title = getContent(tokens, "h1", true);
22
- changelog.description = getContent(tokens, "p");
22
+ changelog.description = getTextContent(tokens);
23
23
  //Releases
24
24
  let release;
25
25
  while ((release = getContent(tokens, "h2").toLowerCase())) {
26
- const matches = release.match(/\[?([^\]]+)\]?\s*-\s*([\d]{4}-[\d]{1,2}-[\d]{1,2})$/);
26
+ const matches = release.match(/\[?([^\]]+)\]?\s*-\s*([\d]{4}-[\d]{1,2}-[\d]{1,2})(\s+\[yanked\])?$/);
27
27
  if (matches) {
28
28
  release = opts.releaseCreator(matches[1], matches[2]);
29
+ release.yanked = !!matches[3];
29
30
  }
30
31
  else if (release.includes("unreleased")) {
31
- const matches = release.match(/\[?([^\]]+)\]?\s*-\s*unreleased$/);
32
+ const matches = release.match(/\[?([^\]]+)\]?\s*-\s*unreleased(\s+\[yanked\])?$/);
33
+ const yanked = release.includes("[yanked]");
32
34
  release = matches
33
35
  ? opts.releaseCreator(matches[1])
34
36
  : opts.releaseCreator();
37
+ release.yanked = yanked;
35
38
  }
36
39
  else {
37
40
  throw new Error(`Syntax error in the release title`);
38
41
  }
39
42
  changelog.addRelease(release);
40
- release.description = getContent(tokens, "p");
43
+ release.description = getTextContent(tokens);
41
44
  let type;
42
45
  while ((type = getContent(tokens, "h3").toLowerCase())) {
43
46
  let change;
@@ -68,7 +71,8 @@ function processTokens(tokens, opts) {
68
71
  }
69
72
  /** Returns the content of a token */
70
73
  function getContent(tokens, type, required = false) {
71
- if (!tokens[0] || tokens[0][1] !== type) {
74
+ const types = Array.isArray(type) ? type : [type];
75
+ if (!tokens[0] || types.indexOf(tokens[0][1]) === -1) {
72
76
  if (required) {
73
77
  throw new Error(`Required token missing in: "${tokens[0][0]}"`);
74
78
  }
@@ -76,6 +80,21 @@ function getContent(tokens, type, required = false) {
76
80
  }
77
81
  return tokens.shift()[2].join("\n");
78
82
  }
83
+ /** Return the next text content */
84
+ function getTextContent(tokens) {
85
+ const lines = [];
86
+ const types = ["p", "li"];
87
+ while (tokens[0] && types.indexOf(tokens[0][1]) !== -1) {
88
+ const token = tokens.shift();
89
+ if (token[1] === "li") {
90
+ lines.push("- " + token[2].join("\n"));
91
+ }
92
+ else {
93
+ lines.push(token[2].join("\n"));
94
+ }
95
+ }
96
+ return lines.join("\n");
97
+ }
79
98
  /** Tokenize a markdown string */
80
99
  function tokenize(markdown) {
81
100
  const tokens = [];
@@ -1,5 +1,4 @@
1
1
  # Changelog - demo
2
-
3
2
  All notable changes to this project will be documented in this file.
4
3
 
5
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
@@ -0,0 +1,208 @@
1
+ # Changelog - demo
2
+
3
+ All notable changes to this project will be documented in this file.
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).
8
+
9
+ ## [Unreleased] [YANKED]
10
+
11
+ This is a brand new releases with:
12
+ - Configuration is now done within the Web client, for authorized users.
13
+
14
+ ### Added
15
+
16
+ - Test
17
+
18
+ ## [2.0.0] - Unreleased [YANKED]
19
+
20
+ ### Added
21
+
22
+ - None
23
+ - Test with issue link [#1]
24
+ - Test with issue link [#4] in the middle of the text
25
+ - [#3] Test with issue link in the beginning of the text
26
+ - Test with issue dot [#2], [#10].
27
+ - Test with no issue link #123b
28
+ - Test with `package#2.0`
29
+
30
+ ## [1.0.0] - 2017-06-20
31
+
32
+ ### Added
33
+
34
+ - New visual identity by @tylerfortune8.
35
+ - Version navigation.
36
+ - Links to latest released version in previous versions.
37
+ - "Why keep a changelog?" section.
38
+ - "Who needs a changelog?" section.
39
+ - "How do I make a changelog?" section.
40
+ - "Frequently Asked Questions" section.
41
+ - New "Guiding Principles" sub-section to "How do I make a changelog?".
42
+ - Simplified and Traditional Chinese translations from @tianshuo.
43
+ - German translation from @mpbzh & @Art4.
44
+ - Italian translation from @azkidenz.
45
+ - Swedish translation from @magol.
46
+ - Turkish translation from @karalamalar.
47
+ - French translation from @zapashcanon.
48
+ - Brazilian Portugese translation from @aisamu.
49
+ - Polish translation from @amielucha.
50
+ - Russian translation from @aishek.
51
+ - Czech translation from @h4vry.
52
+ - Slovak translation from @jkostolansky.
53
+
54
+ ### Changed
55
+
56
+ - Start using "changelog" over "change log" since it's the common usage.
57
+ - Start versioning based on the current English version at 0.3.0 to help
58
+ translation authors keep things up-to-date.
59
+ - Rewrite "What makes unicorns cry?" section.
60
+ - Rewrite "Ignoring Deprecations" sub-section to clarify the ideal scenario.
61
+ - Improve "Commit log diffs" sub-section to further argument against them.
62
+ - Merge "Why can’t people just use a git log diff?" with "Commit log diffs"
63
+ - Fix typos in Simplified Chinese and Traditional Chinese translations.
64
+ - Fix typos in Brazilian Portugese translation.
65
+ - Fix typos in Turkish translation.
66
+ - Fix typos in Czech translation.
67
+ - Fix typos in Swedish translation.
68
+ - Improve phrasing in French translation.
69
+ - Fix phrasing and spelling in German translation.
70
+
71
+ ### Removed
72
+
73
+ - Section about "changelog" vs "CHANGELOG".
74
+
75
+ ## [0.3.0] - 2015-12-03
76
+
77
+ ### Added
78
+
79
+ - RU translation from @aishek.
80
+ - pt-BR translation from @tallesl.
81
+ - es-ES translation from @ZeliosAriex.
82
+
83
+ ## [0.2.0] - 2015-10-06
84
+
85
+ ### Changed
86
+
87
+ - Remove exclusionary mentions of "open source" since this project can benefit
88
+ both "open" and "closed" source projects equally.
89
+
90
+ ## [0.1.0] - 2015-10-06
91
+
92
+ ### Added
93
+
94
+ - Answer "Should you ever rewrite a change log?".
95
+
96
+ ### Changed
97
+
98
+ - Improve argument against commit logs.
99
+ - Start following [SemVer](http://semver.org) properly.
100
+
101
+ ## [0.0.8] - 2015-02-17
102
+
103
+ ### Changed
104
+
105
+ - Update year to match in every README example.
106
+ - Reluctantly stop making fun of Brits only, since most of the world writes
107
+ dates in a strange way.
108
+
109
+ ### Fixed
110
+
111
+ - Fix typos in recent README changes.
112
+ - Update outdated unreleased diff link.
113
+
114
+ ## [0.0.7] - 2015-02-16
115
+
116
+ ### Added
117
+
118
+ - Link, and make it obvious that date format is ISO 8601.
119
+
120
+ ### Changed
121
+
122
+ - Clarified the section on "Is there a standard change log format?".
123
+
124
+ ### Fixed
125
+
126
+ - Fix Markdown links to tag comparison URL with footnote-style links.
127
+
128
+ ## [0.0.6] - 2014-12-12 [YANKED]
129
+
130
+ ### Added
131
+
132
+ - README section on "yanked" releases.
133
+
134
+ ## [0.0.5] - 2014-08-09
135
+
136
+ ### Added
137
+
138
+ - Markdown links to version tags on release headings.
139
+ - Unreleased section to gather unreleased changes and encourage note keeping
140
+ prior to releases.
141
+
142
+ ## [0.0.4] - 2014-08-09
143
+
144
+ ### Added
145
+
146
+ - Better explanation of the difference between the file ("CHANGELOG") and its
147
+ function "the change log".
148
+
149
+ ### Changed
150
+
151
+ - Refer to a "change log" instead of a "CHANGELOG" throughout the site to
152
+ differentiate between the file and the purpose of the file — the logging of
153
+ changes.
154
+
155
+ ### Removed
156
+
157
+ - Remove empty sections from CHANGELOG, they occupy too much space and create
158
+ too much noise in the file. People will have to assume that the missing
159
+ sections were intentionally left out because they contained no notable
160
+ changes.
161
+
162
+ ## [0.0.3] - 2014-08-09
163
+
164
+ ### Added
165
+
166
+ - "Why should I care?" section mentioning The Changelog podcast.
167
+
168
+ ## [0.0.2] - 2014-07-10
169
+
170
+ ### Added
171
+
172
+ - Explanation of the recommended reverse chronological release ordering.
173
+
174
+ ## [0.0.1] - 2014-05-31
175
+
176
+ ### Added
177
+
178
+ - This CHANGELOG file to hopefully serve as an evolving example of a
179
+ standardized open source project CHANGELOG.
180
+ - CNAME file to enable GitHub Pages custom domain
181
+ - README now contains answers to common questions about CHANGELOGs
182
+ - Good examples and basic guidelines, including proper date formatting.
183
+ - Counter-examples: "What makes unicorns cry?"
184
+
185
+ [#1]: https://github.com/olivierlacan/keep-a-changelog/issues/1
186
+ [#2]: https://github.com/olivierlacan/keep-a-changelog/issues/2
187
+ [#3]: https://github.com/olivierlacan/keep-a-changelog/issues/3
188
+ [#4]: https://github.com/olivierlacan/keep-a-changelog/issues/4
189
+ [#10]: https://github.com/olivierlacan/keep-a-changelog/issues/10
190
+
191
+ [Unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.0.0...HEAD
192
+ [2.0.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.0.0...HEAD
193
+ [1.0.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.3.0...v1.0.0
194
+ [0.3.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.2.0...v0.3.0
195
+ [0.2.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.1.0...v0.2.0
196
+ [0.1.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.8...v0.1.0
197
+ [0.0.8]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.7...v0.0.8
198
+ [0.0.7]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.6...v0.0.7
199
+ [0.0.6]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.5...v0.0.6
200
+ [0.0.5]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.4...v0.0.5
201
+ [0.0.4]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.3...v0.0.4
202
+ [0.0.3]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.2...v0.0.3
203
+ [0.0.2]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.1...v0.0.2
204
+ [0.0.1]: https://github.com/olivierlacan/keep-a-changelog/releases/tag/v0.0.1
205
+
206
+ ---
207
+
208
+ This is a footer
@@ -1,16 +1,18 @@
1
1
  # Changelog - demo
2
-
3
2
  All notable changes to this project will be documented in this file.
4
3
 
5
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
5
  and this project adheres to
7
6
  [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
8
7
 
9
- ## [Unreleased]
8
+ ## [Unreleased] [YANKED]
9
+ This is a brand new releases with:
10
+ - Configuration is now done within the Web client, for authorized users.
11
+
10
12
  ### Added
11
13
  - Test
12
14
 
13
- ## [2.0.0] - Unreleased
15
+ ## [2.0.0] - Unreleased [YANKED]
14
16
  ### Added
15
17
  - None
16
18
  - Test with issue link [#1]
@@ -100,7 +102,7 @@ and this project adheres to
100
102
  ### Fixed
101
103
  - Fix Markdown links to tag comparison URL with footnote-style links.
102
104
 
103
- ## [0.0.6] - 2014-12-12
105
+ ## [0.0.6] - 2014-12-12 [YANKED]
104
106
  ### Added
105
107
  - README section on "yanked" releases.
106
108
 
@@ -6,13 +6,17 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
6
  and this project adheres to
7
7
  [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
8
8
 
9
- ## [Unreleased]
9
+ ## [Unreleased] [Yanked]
10
+ This is a brand new releases with:
11
+
12
+
13
+ - Configuration is now done within the Web client, for authorized users.
10
14
 
11
15
  ### Added
12
16
 
13
17
  - Test
14
18
 
15
- ## [2.0.0] - unreleased
19
+ ## [2.0.0] - unreleased [Yanked]
16
20
 
17
21
  ### Added
18
22
 
@@ -122,7 +126,7 @@ and this project adheres to
122
126
 
123
127
  - Fix Markdown links to tag comparison URL with footnote-style links.
124
128
 
125
- ## [0.0.6] - 2014-12-12
129
+ ## [0.0.6] - 2014-12-12 [YANKED]
126
130
 
127
131
  ### Added
128
132
 
@@ -1,5 +1,4 @@
1
1
  # Changelog
2
-
3
2
  All notable changes to this project will be documented in this file.
4
3
 
5
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "module": "./esm/mod.js",
3
- "main": "./umd/mod.js",
3
+ "main": "./script/mod.js",
4
4
  "types": "./types/mod.d.ts",
5
5
  "bin": {
6
6
  "changelog": "./esm/bin.js"
7
7
  },
8
8
  "name": "keep-a-changelog",
9
- "version": "2.0.1",
9
+ "version": "2.2.1",
10
10
  "description": "Node package to parse and generate changelogs following the [keepachangelog](http://keepachangelog.com/en/1.0.0/) format.",
11
11
  "homepage": "https://github.com/oscarotero/keep-a-changelog#readme",
12
12
  "license": "MIT",
@@ -25,19 +25,24 @@
25
25
  },
26
26
  "exports": {
27
27
  ".": {
28
- "import": "./esm/mod.js",
29
- "require": "./umd/mod.js",
30
- "types": "./types/mod.d.ts"
28
+ "import": {
29
+ "types": "./types/mod.d.ts",
30
+ "default": "./esm/mod.js"
31
+ },
32
+ "require": {
33
+ "types": "./types/mod.d.ts",
34
+ "default": "./script/mod.js"
35
+ }
31
36
  }
32
37
  },
33
38
  "scripts": {
34
39
  "test": "node test_runner.js"
35
40
  },
36
41
  "dependencies": {
37
- "@deno/shim-deno": "~0.1.1"
42
+ "@deno/shim-deno": "~0.12.0"
38
43
  },
39
44
  "devDependencies": {
40
- "@types/node": "16.11.1",
41
- "chalk": "4.1.2"
45
+ "@types/node": "^18.11.9",
46
+ "chalk": "^4.1.2"
42
47
  }
43
48
  }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // https://github.com/tc39/proposal-accessible-object-hasownproperty/blob/main/polyfill.js
4
+ if (!Object.hasOwn) {
5
+ Object.defineProperty(Object, "hasOwn", {
6
+ value: function (object, property) {
7
+ if (object == null) {
8
+ throw new TypeError("Cannot convert undefined or null to object");
9
+ }
10
+ return Object.prototype.hasOwnProperty.call(Object(object), property);
11
+ },
12
+ configurable: true,
13
+ enumerable: false,
14
+ writable: true,
15
+ });
16
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dntGlobalThis = exports.Deno = void 0;
4
+ const shim_deno_1 = require("@deno/shim-deno");
5
+ var shim_deno_2 = require("@deno/shim-deno");
6
+ Object.defineProperty(exports, "Deno", { enumerable: true, get: function () { return shim_deno_2.Deno; } });
7
+ const dntGlobals = {
8
+ Deno: shim_deno_1.Deno,
9
+ };
10
+ exports.dntGlobalThis = createMergeProxy(globalThis, dntGlobals);
11
+ // deno-lint-ignore ban-types
12
+ function createMergeProxy(baseObj, extObj) {
13
+ return new Proxy(baseObj, {
14
+ get(_target, prop, _receiver) {
15
+ if (prop in extObj) {
16
+ return extObj[prop];
17
+ }
18
+ else {
19
+ return baseObj[prop];
20
+ }
21
+ },
22
+ set(_target, prop, value) {
23
+ if (prop in extObj) {
24
+ delete extObj[prop];
25
+ }
26
+ baseObj[prop] = value;
27
+ return true;
28
+ },
29
+ deleteProperty(_target, prop) {
30
+ let success = false;
31
+ if (prop in extObj) {
32
+ delete extObj[prop];
33
+ success = true;
34
+ }
35
+ if (prop in baseObj) {
36
+ delete baseObj[prop];
37
+ success = true;
38
+ }
39
+ return success;
40
+ },
41
+ ownKeys(_target) {
42
+ const baseKeys = Reflect.ownKeys(baseObj);
43
+ const extKeys = Reflect.ownKeys(extObj);
44
+ const extKeysSet = new Set(extKeys);
45
+ return [...baseKeys.filter((k) => !extKeysSet.has(k)), ...extKeys];
46
+ },
47
+ defineProperty(_target, prop, desc) {
48
+ if (prop in extObj) {
49
+ delete extObj[prop];
50
+ }
51
+ Reflect.defineProperty(baseObj, prop, desc);
52
+ return true;
53
+ },
54
+ getOwnPropertyDescriptor(_target, prop) {
55
+ if (prop in extObj) {
56
+ return Reflect.getOwnPropertyDescriptor(extObj, prop);
57
+ }
58
+ else {
59
+ return Reflect.getOwnPropertyDescriptor(baseObj, prop);
60
+ }
61
+ },
62
+ has(_target, prop) {
63
+ return prop in extObj || prop in baseObj;
64
+ },
65
+ });
66
+ }