keep-a-changelog 3.0.3 → 3.0.5
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.
- package/{types/bin.d.ts → bin.d.ts} +0 -1
- package/bin.js +201 -205
- package/mod.d.ts +5 -0
- package/mod.js +1 -0
- package/package.json +40 -47
- package/src/Change.d.ts +8 -0
- package/src/Change.js +29 -30
- package/src/Changelog.d.ts +24 -0
- package/src/Changelog.js +113 -114
- package/src/Release.d.ts +29 -0
- package/src/Release.js +205 -189
- package/src/deps.js +1 -0
- package/src/parser.d.ts +13 -0
- package/src/parser.js +216 -165
- package/src/settings.d.ts +15 -0
- package/src/settings.js +57 -57
- package/CHANGELOG.md +0 -187
- package/types/mod.d.ts +0 -5
- package/types/src/Change.d.ts +0 -8
- package/types/src/Changelog.d.ts +0 -25
- package/types/src/Release.d.ts +0 -29
- package/types/src/parser.d.ts +0 -16
- package/types/src/settings.d.ts +0 -17
- /package/{types/src → src}/deps.d.ts +0 -0
package/src/Change.js
CHANGED
|
@@ -1,33 +1,32 @@
|
|
|
1
1
|
export default class Change {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
t.push("");
|
|
29
|
-
t = t.concat(this.description.split("\n").map((line) => ` ${line}`.trimEnd()));
|
|
30
|
-
}
|
|
31
|
-
return t.join("\n").trim();
|
|
2
|
+
title;
|
|
3
|
+
description;
|
|
4
|
+
issues = [];
|
|
5
|
+
static extractIssues(text, issues) {
|
|
6
|
+
return text.replace(/(^|[^\\])\[#(\d+)\](?=[^\(]|$)/g, (_, start, index)=>{
|
|
7
|
+
if (!issues.includes(index)) {
|
|
8
|
+
issues.push(index);
|
|
9
|
+
}
|
|
10
|
+
return `${start}[#${index}]`;
|
|
11
|
+
}).replace(/(^|[\s,])#(\d+)(?=[\s,\.]|$)/g, (_, start, index)=>{
|
|
12
|
+
if (!issues.includes(index)) {
|
|
13
|
+
issues.push(index);
|
|
14
|
+
}
|
|
15
|
+
return `${start}[#${index}]`;
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
constructor(title, description = ""){
|
|
19
|
+
this.title = Change.extractIssues(title, this.issues);
|
|
20
|
+
this.description = Change.extractIssues(description, this.issues);
|
|
21
|
+
}
|
|
22
|
+
toString(bulletStyle = "-") {
|
|
23
|
+
let t = this.title.split("\n").map((line)=>` ${line}`.trimEnd());
|
|
24
|
+
t[0] = bulletStyle + t[0].substr(1);
|
|
25
|
+
if (this.description) {
|
|
26
|
+
t.push("");
|
|
27
|
+
t = t.concat(this.description.split("\n").map((line)=>` ${line}`.trimEnd()));
|
|
32
28
|
}
|
|
29
|
+
return t.join("\n").trim();
|
|
30
|
+
}
|
|
33
31
|
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvb3NjYXJvdGVyby93d3cva2VlcC1hLWNoYW5nZWxvZy9zcmMvQ2hhbmdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIENoYW5nZSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGlzc3Vlczogc3RyaW5nW10gPSBbXTtcblxuICBzdGF0aWMgZXh0cmFjdElzc3Vlcyh0ZXh0OiBzdHJpbmcsIGlzc3Vlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0XG4gICAgICAucmVwbGFjZSgvKF58W15cXFxcXSlcXFsjKFxcZCspXFxdKD89W15cXChdfCQpL2csIChfLCBzdGFydCwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFpc3N1ZXMuaW5jbHVkZXMoaW5kZXgpKSB7XG4gICAgICAgICAgaXNzdWVzLnB1c2goaW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGAke3N0YXJ0fVsjJHtpbmRleH1dYDtcbiAgICAgIH0pXG4gICAgICAucmVwbGFjZSgvKF58W1xccyxdKSMoXFxkKykoPz1bXFxzLFxcLl18JCkvZywgKF8sIHN0YXJ0LCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWlzc3Vlcy5pbmNsdWRlcyhpbmRleCkpIHtcbiAgICAgICAgICBpc3N1ZXMucHVzaChpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7c3RhcnR9WyMke2luZGV4fV1gO1xuICAgICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcih0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbiA9IFwiXCIpIHtcbiAgICB0aGlzLnRpdGxlID0gQ2hhbmdlLmV4dHJhY3RJc3N1ZXModGl0bGUsIHRoaXMuaXNzdWVzKTtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gQ2hhbmdlLmV4dHJhY3RJc3N1ZXMoZGVzY3JpcHRpb24sIHRoaXMuaXNzdWVzKTtcbiAgfVxuXG4gIHRvU3RyaW5nKGJ1bGxldFN0eWxlID0gXCItXCIpOiBzdHJpbmcge1xuICAgIGxldCB0ID0gdGhpcy50aXRsZS5zcGxpdChcIlxcblwiKS5tYXAoKGxpbmUpID0+IGAgICR7bGluZX1gLnRyaW1FbmQoKSk7XG4gICAgdFswXSA9IGJ1bGxldFN0eWxlICsgdFswXS5zdWJzdHIoMSk7XG5cbiAgICBpZiAodGhpcy5kZXNjcmlwdGlvbikge1xuICAgICAgdC5wdXNoKFwiXCIpO1xuXG4gICAgICB0ID0gdC5jb25jYXQoXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24uc3BsaXQoXCJcXG5cIikubWFwKChsaW5lKSA9PiBgICAke2xpbmV9YC50cmltRW5kKCkpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdC5qb2luKFwiXFxuXCIpLnRyaW0oKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsTUFBTTtFQUNuQixNQUFjO0VBQ2QsWUFBb0I7RUFDcEIsU0FBbUIsRUFBRSxDQUFDO0VBRXRCLE9BQU8sY0FBYyxJQUFZLEVBQUUsTUFBZ0IsRUFBVTtJQUMzRCxPQUFPLEtBQ0osT0FBTyxDQUFDLG1DQUFtQyxDQUFDLEdBQUcsT0FBTztNQUNyRCxJQUFJLENBQUMsT0FBTyxRQUFRLENBQUMsUUFBUTtRQUMzQixPQUFPLElBQUksQ0FBQztNQUNkO01BRUEsT0FBTyxHQUFHLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLEdBQ0MsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLEdBQUcsT0FBTztNQUNuRCxJQUFJLENBQUMsT0FBTyxRQUFRLENBQUMsUUFBUTtRQUMzQixPQUFPLElBQUksQ0FBQztNQUNkO01BRUEsT0FBTyxHQUFHLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlCO0VBQ0o7RUFFQSxZQUFZLEtBQWEsRUFBRSxjQUFjLEVBQUUsQ0FBRTtJQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU07SUFDcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLGFBQWEsQ0FBQyxhQUFhLElBQUksQ0FBQyxNQUFNO0VBQ2xFO0VBRUEsU0FBUyxjQUFjLEdBQUcsRUFBVTtJQUNsQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFTLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxPQUFPO0lBQ2hFLENBQUMsQ0FBQyxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztJQUVqQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7TUFDcEIsRUFBRSxJQUFJLENBQUM7TUFFUCxJQUFJLEVBQUUsTUFBTSxDQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBUyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsT0FBTztJQUVsRTtJQUVBLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJO0VBQzFCO0FBQ0YifQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type Release from "./Release.js";
|
|
2
|
+
import type { SemVer } from "./deps.js";
|
|
3
|
+
export default class Changelog {
|
|
4
|
+
flag?: string;
|
|
5
|
+
title: string;
|
|
6
|
+
description: string;
|
|
7
|
+
head: string;
|
|
8
|
+
footer?: string;
|
|
9
|
+
url?: string;
|
|
10
|
+
releases: Release[];
|
|
11
|
+
tagNameBuilder?: (release: Release) => string;
|
|
12
|
+
/** @deprecated: Use tagLinkBuilder() instead */ compareLinkBuilder?: (previous: Release, release: Release) => string;
|
|
13
|
+
tagLinkBuilder?: (url: string, tag: string, previous?: string, head?: string) => string;
|
|
14
|
+
format: "compact" | "markdownlint";
|
|
15
|
+
bulletStyle: "-" | "*" | "+";
|
|
16
|
+
autoSortReleases: boolean;
|
|
17
|
+
constructor(title: string, description?: string);
|
|
18
|
+
addRelease(release: Release): this;
|
|
19
|
+
findRelease(version?: SemVer | string): Release | undefined;
|
|
20
|
+
sortReleases(): void;
|
|
21
|
+
compareLink(previous: Release, release: Release): string;
|
|
22
|
+
tagName(release: Release): string;
|
|
23
|
+
toString(): string;
|
|
24
|
+
}
|
package/src/Changelog.js
CHANGED
|
@@ -1,130 +1,129 @@
|
|
|
1
1
|
import { equals, parse } from "./deps.js";
|
|
2
2
|
export default class Changelog {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
3
|
+
flag;
|
|
4
|
+
title;
|
|
5
|
+
description;
|
|
6
|
+
head = "HEAD";
|
|
7
|
+
footer;
|
|
8
|
+
url;
|
|
9
|
+
releases = [];
|
|
10
|
+
tagNameBuilder;
|
|
11
|
+
/** @deprecated: Use tagLinkBuilder() instead */ compareLinkBuilder;
|
|
12
|
+
tagLinkBuilder;
|
|
13
|
+
format = "compact";
|
|
14
|
+
bulletStyle = "-";
|
|
15
|
+
autoSortReleases = true;
|
|
16
|
+
constructor(title, description = ""){
|
|
17
|
+
this.title = title;
|
|
18
|
+
this.description = description;
|
|
19
|
+
}
|
|
20
|
+
addRelease(release) {
|
|
21
|
+
this.releases.push(release);
|
|
22
|
+
if (this.autoSortReleases) {
|
|
23
|
+
this.sortReleases();
|
|
20
24
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return this;
|
|
25
|
+
release.changelog = this;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
findRelease(version) {
|
|
29
|
+
if (!version) {
|
|
30
|
+
return this.releases.find((release)=>!release.version);
|
|
28
31
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
const parsed = typeof version === "string" ? parse(version) : version;
|
|
33
|
+
return this.releases.find((release)=>release.parsedVersion && equals(release.parsedVersion, parsed));
|
|
34
|
+
}
|
|
35
|
+
sortReleases() {
|
|
36
|
+
this.releases.sort((a, b)=>a.compare(b));
|
|
37
|
+
}
|
|
38
|
+
compareLink(previous, release) {
|
|
39
|
+
if (this.compareLinkBuilder) {
|
|
40
|
+
return this.compareLinkBuilder(previous, release);
|
|
35
41
|
}
|
|
36
|
-
|
|
37
|
-
|
|
42
|
+
if (this.tagLinkBuilder) {
|
|
43
|
+
const url = this.url;
|
|
44
|
+
if (!previous) {
|
|
45
|
+
return this.tagLinkBuilder(this.url, this.tagName(release), undefined, this.head);
|
|
46
|
+
}
|
|
47
|
+
if (!release.date || !release.version) {
|
|
48
|
+
return this.tagLinkBuilder(url, this.head, this.tagName(previous), this.head);
|
|
49
|
+
}
|
|
50
|
+
return this.tagLinkBuilder(url, this.tagName(release), this.tagName(previous), this.head);
|
|
38
51
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return this.compareLinkBuilder(previous, release);
|
|
42
|
-
}
|
|
43
|
-
if (this.tagLinkBuilder) {
|
|
44
|
-
const url = this.url;
|
|
45
|
-
if (!previous) {
|
|
46
|
-
return this.tagLinkBuilder(this.url, this.tagName(release), undefined, this.head);
|
|
47
|
-
}
|
|
48
|
-
if (!release.date || !release.version) {
|
|
49
|
-
return this.tagLinkBuilder(url, this.head, this.tagName(previous), this.head);
|
|
50
|
-
}
|
|
51
|
-
return this.tagLinkBuilder(url, this.tagName(release), this.tagName(previous), this.head);
|
|
52
|
-
}
|
|
53
|
-
if (!previous) {
|
|
54
|
-
return `${this.url}/releases/tag/${this.tagName(release)}`;
|
|
55
|
-
}
|
|
56
|
-
if (!release.date || !release.version) {
|
|
57
|
-
return `${this.url}/compare/${this.tagName(previous)}...${this.head}`;
|
|
58
|
-
}
|
|
59
|
-
return `${this.url}/compare/${this.tagName(previous)}...${this.tagName(release)}`;
|
|
52
|
+
if (!previous) {
|
|
53
|
+
return `${this.url}/releases/tag/${this.tagName(release)}`;
|
|
60
54
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return this.tagNameBuilder(release);
|
|
64
|
-
}
|
|
65
|
-
return `v${release.version}`;
|
|
55
|
+
if (!release.date || !release.version) {
|
|
56
|
+
return `${this.url}/compare/${this.tagName(previous)}...${this.head}`;
|
|
66
57
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
58
|
+
return `${this.url}/compare/${this.tagName(previous)}...${this.tagName(release)}`;
|
|
59
|
+
}
|
|
60
|
+
tagName(release) {
|
|
61
|
+
if (this.tagNameBuilder) {
|
|
62
|
+
return this.tagNameBuilder(release);
|
|
63
|
+
}
|
|
64
|
+
return `v${release.version}`;
|
|
65
|
+
}
|
|
66
|
+
toString() {
|
|
67
|
+
const t = [];
|
|
68
|
+
if (this.flag) {
|
|
69
|
+
t.push(`<!-- ${this.flag} -->`);
|
|
70
|
+
t.push("");
|
|
71
|
+
}
|
|
72
|
+
t.push(`# ${this.title}`);
|
|
73
|
+
if (this.format === "markdownlint") {
|
|
74
|
+
t.push("");
|
|
75
|
+
}
|
|
76
|
+
const links = [];
|
|
77
|
+
const compareLinks = [];
|
|
78
|
+
const description = this.description.trim() || `All notable changes to this project will be documented in this file.
|
|
81
79
|
|
|
82
80
|
The format is based on [Keep a Changelog](https://keepachangelog.com/)
|
|
83
81
|
and this project adheres to [Semantic Versioning](https://semver.org/).`;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
const compareLink = release.getCompareLink(this);
|
|
96
|
-
if (compareLink) {
|
|
97
|
-
compareLinks.push(compareLink);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
if (links.length) {
|
|
101
|
-
t.push("");
|
|
102
|
-
links.sort(compare);
|
|
103
|
-
links.forEach((link) => t.push(link));
|
|
104
|
-
}
|
|
105
|
-
if (compareLinks.length) {
|
|
106
|
-
t.push("");
|
|
107
|
-
compareLinks.forEach((link) => t.push(link));
|
|
108
|
-
}
|
|
109
|
-
t.push("");
|
|
110
|
-
if (this.footer) {
|
|
111
|
-
t.push("---");
|
|
112
|
-
t.push("");
|
|
113
|
-
t.push(this.footer);
|
|
114
|
-
t.push("");
|
|
82
|
+
if (description) {
|
|
83
|
+
t.push(description);
|
|
84
|
+
}
|
|
85
|
+
this.releases.forEach((release)=>{
|
|
86
|
+
t.push("");
|
|
87
|
+
t.push(release.toString(this));
|
|
88
|
+
release.getLinks(this).forEach((link)=>{
|
|
89
|
+
if (!links.includes(link)) {
|
|
90
|
+
links.push(link);
|
|
115
91
|
}
|
|
116
|
-
|
|
92
|
+
});
|
|
93
|
+
const compareLink = release.getCompareLink(this);
|
|
94
|
+
if (compareLink) {
|
|
95
|
+
compareLinks.push(compareLink);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
if (links.length) {
|
|
99
|
+
t.push("");
|
|
100
|
+
links.sort(compare);
|
|
101
|
+
links.forEach((link)=>t.push(link));
|
|
117
102
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return 0;
|
|
103
|
+
if (compareLinks.length) {
|
|
104
|
+
t.push("");
|
|
105
|
+
compareLinks.forEach((link)=>t.push(link));
|
|
122
106
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
107
|
+
t.push("");
|
|
108
|
+
if (this.footer) {
|
|
109
|
+
t.push("---");
|
|
110
|
+
t.push("");
|
|
111
|
+
t.push(this.footer);
|
|
112
|
+
t.push("");
|
|
128
113
|
}
|
|
129
|
-
return
|
|
114
|
+
return t.join("\n");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function compare(a, b) {
|
|
118
|
+
if (a === b) {
|
|
119
|
+
return 0;
|
|
120
|
+
}
|
|
121
|
+
const reg = /^\[#(\d+)\]:/;
|
|
122
|
+
const aNumber = a.match(reg);
|
|
123
|
+
const bNumber = b.match(reg);
|
|
124
|
+
if (aNumber && bNumber) {
|
|
125
|
+
return parseInt(aNumber[1]) - parseInt(bNumber[1]);
|
|
126
|
+
}
|
|
127
|
+
return a < b ? -1 : 1;
|
|
130
128
|
}
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvb3NjYXJvdGVyby93d3cva2VlcC1hLWNoYW5nZWxvZy9zcmMvQ2hhbmdlbG9nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVxdWFscywgcGFyc2UgfSBmcm9tIFwiLi9kZXBzLmpzXCI7XG5pbXBvcnQgdHlwZSBSZWxlYXNlIGZyb20gXCIuL1JlbGVhc2UuanNcIjtcbmltcG9ydCB0eXBlIHsgU2VtVmVyIH0gZnJvbSBcIi4vZGVwcy5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaGFuZ2Vsb2cge1xuICBmbGFnPzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBoZWFkID0gXCJIRUFEXCI7XG4gIGZvb3Rlcj86IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICByZWxlYXNlczogUmVsZWFzZVtdID0gW107XG4gIHRhZ05hbWVCdWlsZGVyPzogKHJlbGVhc2U6IFJlbGVhc2UpID0+IHN0cmluZztcbiAgLyoqIEBkZXByZWNhdGVkOiBVc2UgdGFnTGlua0J1aWxkZXIoKSBpbnN0ZWFkICovXG4gIGNvbXBhcmVMaW5rQnVpbGRlcj86IChwcmV2aW91czogUmVsZWFzZSwgcmVsZWFzZTogUmVsZWFzZSkgPT4gc3RyaW5nO1xuICB0YWdMaW5rQnVpbGRlcj86IChcbiAgICB1cmw6IHN0cmluZyxcbiAgICB0YWc6IHN0cmluZyxcbiAgICBwcmV2aW91cz86IHN0cmluZyxcbiAgICBoZWFkPzogc3RyaW5nLFxuICApID0+IHN0cmluZztcbiAgZm9ybWF0OiBcImNvbXBhY3RcIiB8IFwibWFya2Rvd25saW50XCIgPSBcImNvbXBhY3RcIjtcbiAgYnVsbGV0U3R5bGU6IFwiLVwiIHwgXCIqXCIgfCBcIitcIiA9IFwiLVwiO1xuICBhdXRvU29ydFJlbGVhc2VzID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcih0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbiA9IFwiXCIpIHtcbiAgICB0aGlzLnRpdGxlID0gdGl0bGU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICB9XG5cbiAgYWRkUmVsZWFzZShyZWxlYXNlOiBSZWxlYXNlKTogdGhpcyB7XG4gICAgdGhpcy5yZWxlYXNlcy5wdXNoKHJlbGVhc2UpO1xuICAgIGlmICh0aGlzLmF1dG9Tb3J0UmVsZWFzZXMpIHtcbiAgICAgIHRoaXMuc29ydFJlbGVhc2VzKCk7XG4gICAgfVxuICAgIHJlbGVhc2UuY2hhbmdlbG9nID0gdGhpcztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZmluZFJlbGVhc2UodmVyc2lvbj86IFNlbVZlciB8IHN0cmluZyk6IFJlbGVhc2UgfCB1bmRlZmluZWQge1xuICAgIGlmICghdmVyc2lvbikge1xuICAgICAgcmV0dXJuIHRoaXMucmVsZWFzZXMuZmluZCgocmVsZWFzZSkgPT4gIXJlbGVhc2UudmVyc2lvbik7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZCA9IHR5cGVvZiB2ZXJzaW9uID09PSBcInN0cmluZ1wiID8gcGFyc2UodmVyc2lvbikgOiB2ZXJzaW9uO1xuXG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZXMuZmluZCgocmVsZWFzZSkgPT5cbiAgICAgIHJlbGVhc2UucGFyc2VkVmVyc2lvbiAmJiBlcXVhbHMocmVsZWFzZS5wYXJzZWRWZXJzaW9uLCBwYXJzZWQpXG4gICAgKTtcbiAgfVxuXG4gIHNvcnRSZWxlYXNlcygpOiB2b2lkIHtcbiAgICB0aGlzLnJlbGVhc2VzLnNvcnQoKGEsIGIpID0+IGEuY29tcGFyZShiKSk7XG4gIH1cblxuICBjb21wYXJlTGluayhwcmV2aW91czogUmVsZWFzZSwgcmVsZWFzZTogUmVsZWFzZSk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY29tcGFyZUxpbmtCdWlsZGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlTGlua0J1aWxkZXIocHJldmlvdXMsIHJlbGVhc2UpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRhZ0xpbmtCdWlsZGVyKSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnVybCE7XG5cbiAgICAgIGlmICghcHJldmlvdXMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFnTGlua0J1aWxkZXIoXG4gICAgICAgICAgdGhpcy51cmwhLFxuICAgICAgICAgIHRoaXMudGFnTmFtZShyZWxlYXNlKSxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgdGhpcy5oZWFkLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlbGVhc2UuZGF0ZSB8fCAhcmVsZWFzZS52ZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhZ0xpbmtCdWlsZGVyKFxuICAgICAgICAgIHVybCxcbiAgICAgICAgICB0aGlzLmhlYWQsXG4gICAgICAgICAgdGhpcy50YWdOYW1lKHByZXZpb3VzKSxcbiAgICAgICAgICB0aGlzLmhlYWQsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLnRhZ0xpbmtCdWlsZGVyKFxuICAgICAgICB1cmwsXG4gICAgICAgIHRoaXMudGFnTmFtZShyZWxlYXNlKSxcbiAgICAgICAgdGhpcy50YWdOYW1lKHByZXZpb3VzKSxcbiAgICAgICAgdGhpcy5oZWFkLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXByZXZpb3VzKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy51cmx9L3JlbGVhc2VzL3RhZy8ke3RoaXMudGFnTmFtZShyZWxlYXNlKX1gO1xuICAgIH1cblxuICAgIGlmICghcmVsZWFzZS5kYXRlIHx8ICFyZWxlYXNlLnZlcnNpb24pIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnVybH0vY29tcGFyZS8ke3RoaXMudGFnTmFtZShwcmV2aW91cyl9Li4uJHt0aGlzLmhlYWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7dGhpcy51cmx9L2NvbXBhcmUvJHt0aGlzLnRhZ05hbWUocHJldmlvdXMpfS4uLiR7XG4gICAgICB0aGlzLnRhZ05hbWUocmVsZWFzZSlcbiAgICB9YDtcbiAgfVxuXG4gIHRhZ05hbWUocmVsZWFzZTogUmVsZWFzZSk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudGFnTmFtZUJ1aWxkZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLnRhZ05hbWVCdWlsZGVyKHJlbGVhc2UpO1xuICAgIH1cblxuICAgIHJldHVybiBgdiR7cmVsZWFzZS52ZXJzaW9ufWA7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHQgPSBbXTtcblxuICAgIGlmICh0aGlzLmZsYWcpIHtcbiAgICAgIHQucHVzaChgPCEtLSAke3RoaXMuZmxhZ30gLS0+YCk7XG4gICAgICB0LnB1c2goXCJcIik7XG4gICAgfVxuXG4gICAgdC5wdXNoKGAjICR7dGhpcy50aXRsZX1gKTtcblxuICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gXCJtYXJrZG93bmxpbnRcIikge1xuICAgICAgdC5wdXNoKFwiXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmtzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGNvbXBhcmVMaW5rczogc3RyaW5nW10gPSBbXTtcblxuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5kZXNjcmlwdGlvbi50cmltKCkgfHxcbiAgICAgIGBBbGwgbm90YWJsZSBjaGFuZ2VzIHRvIHRoaXMgcHJvamVjdCB3aWxsIGJlIGRvY3VtZW50ZWQgaW4gdGhpcyBmaWxlLlxuXG5UaGUgZm9ybWF0IGlzIGJhc2VkIG9uIFtLZWVwIGEgQ2hhbmdlbG9nXShodHRwczovL2tlZXBhY2hhbmdlbG9nLmNvbS8pXG5hbmQgdGhpcyBwcm9qZWN0IGFkaGVyZXMgdG8gW1NlbWFudGljIFZlcnNpb25pbmddKGh0dHBzOi8vc2VtdmVyLm9yZy8pLmA7XG5cbiAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgIHQucHVzaChkZXNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy5yZWxlYXNlcy5mb3JFYWNoKChyZWxlYXNlKSA9PiB7XG4gICAgICB0LnB1c2goXCJcIik7XG4gICAgICB0LnB1c2gocmVsZWFzZS50b1N0cmluZyh0aGlzKSk7XG5cbiAgICAgIHJlbGVhc2UuZ2V0TGlua3ModGhpcykuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgICBpZiAoIWxpbmtzLmluY2x1ZGVzKGxpbmspKSB7XG4gICAgICAgICAgbGlua3MucHVzaChsaW5rKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGNvbXBhcmVMaW5rID0gcmVsZWFzZS5nZXRDb21wYXJlTGluayh0aGlzKTtcblxuICAgICAgaWYgKGNvbXBhcmVMaW5rKSB7XG4gICAgICAgIGNvbXBhcmVMaW5rcy5wdXNoKGNvbXBhcmVMaW5rKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChsaW5rcy5sZW5ndGgpIHtcbiAgICAgIHQucHVzaChcIlwiKTtcbiAgICAgIGxpbmtzLnNvcnQoY29tcGFyZSk7XG4gICAgICBsaW5rcy5mb3JFYWNoKChsaW5rKSA9PiB0LnB1c2gobGluaykpO1xuICAgIH1cblxuICAgIGlmIChjb21wYXJlTGlua3MubGVuZ3RoKSB7XG4gICAgICB0LnB1c2goXCJcIik7XG5cbiAgICAgIGNvbXBhcmVMaW5rcy5mb3JFYWNoKChsaW5rKSA9PiB0LnB1c2gobGluaykpO1xuICAgIH1cblxuICAgIHQucHVzaChcIlwiKTtcblxuICAgIGlmICh0aGlzLmZvb3Rlcikge1xuICAgICAgdC5wdXNoKFwiLS0tXCIpO1xuICAgICAgdC5wdXNoKFwiXCIpO1xuICAgICAgdC5wdXNoKHRoaXMuZm9vdGVyKTtcbiAgICAgIHQucHVzaChcIlwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdC5qb2luKFwiXFxuXCIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbXBhcmUoYTogc3RyaW5nLCBiOiBzdHJpbmcpIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICBjb25zdCByZWcgPSAvXlxcWyMoXFxkKylcXF06LztcbiAgY29uc3QgYU51bWJlciA9IGEubWF0Y2gocmVnKTtcbiAgY29uc3QgYk51bWJlciA9IGIubWF0Y2gocmVnKTtcblxuICBpZiAoYU51bWJlciAmJiBiTnVtYmVyKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KGFOdW1iZXJbMV0pIC0gcGFyc2VJbnQoYk51bWJlclsxXSk7XG4gIH1cblxuICByZXR1cm4gYSA8IGIgPyAtMSA6IDE7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxNQUFNLEVBQUUsS0FBSyxRQUFRLFlBQVk7QUFJMUMsZUFBZSxNQUFNO0VBQ25CLEtBQWM7RUFDZCxNQUFjO0VBQ2QsWUFBb0I7RUFDcEIsT0FBTyxPQUFPO0VBQ2QsT0FBZ0I7RUFDaEIsSUFBYTtFQUNiLFdBQXNCLEVBQUUsQ0FBQztFQUN6QixlQUE4QztFQUM5Qyw4Q0FBOEMsR0FDOUMsbUJBQXFFO0VBQ3JFLGVBS1k7RUFDWixTQUFxQyxVQUFVO0VBQy9DLGNBQStCLElBQUk7RUFDbkMsbUJBQW1CLEtBQUs7RUFFeEIsWUFBWSxLQUFhLEVBQUUsY0FBYyxFQUFFLENBQUU7SUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRztJQUNiLElBQUksQ0FBQyxXQUFXLEdBQUc7RUFDckI7RUFFQSxXQUFXLE9BQWdCLEVBQVE7SUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDbkIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7TUFDekIsSUFBSSxDQUFDLFlBQVk7SUFDbkI7SUFDQSxRQUFRLFNBQVMsR0FBRyxJQUFJO0lBRXhCLE9BQU8sSUFBSTtFQUNiO0VBRUEsWUFBWSxPQUF5QixFQUF1QjtJQUMxRCxJQUFJLENBQUMsU0FBUztNQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFZLENBQUMsUUFBUSxPQUFPO0lBQ3pEO0lBQ0EsTUFBTSxTQUFTLE9BQU8sWUFBWSxXQUFXLE1BQU0sV0FBVztJQUU5RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsVUFDekIsUUFBUSxhQUFhLElBQUksT0FBTyxRQUFRLGFBQWEsRUFBRTtFQUUzRDtFQUVBLGVBQXFCO0lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFNLEVBQUUsT0FBTyxDQUFDO0VBQ3pDO0VBRUEsWUFBWSxRQUFpQixFQUFFLE9BQWdCLEVBQVU7SUFDdkQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7TUFDM0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVTtJQUMzQztJQUVBLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtNQUN2QixNQUFNLE1BQU0sSUFBSSxDQUFDLEdBQUc7TUFFcEIsSUFBSSxDQUFDLFVBQVU7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQ3hCLElBQUksQ0FBQyxHQUFHLEVBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUNiLFdBQ0EsSUFBSSxDQUFDLElBQUk7TUFFYjtNQUVBLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsT0FBTyxFQUFFO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsS0FDQSxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxPQUFPLENBQUMsV0FDYixJQUFJLENBQUMsSUFBSTtNQUViO01BRUEsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN4QixLQUNBLElBQUksQ0FBQyxPQUFPLENBQUMsVUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQ2IsSUFBSSxDQUFDLElBQUk7SUFFYjtJQUVBLElBQUksQ0FBQyxVQUFVO01BQ2IsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVTtJQUM1RDtJQUVBLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsT0FBTyxFQUFFO01BQ3JDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7SUFDdkU7SUFFQSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsRUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUNiO0VBQ0o7RUFFQSxRQUFRLE9BQWdCLEVBQVU7SUFDaEMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO01BQ3ZCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QjtJQUVBLE9BQU8sQ0FBQyxDQUFDLEVBQUUsUUFBUSxPQUFPLEVBQUU7RUFDOUI7RUFFQSxXQUFtQjtJQUNqQixNQUFNLElBQUksRUFBRTtJQUVaLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtNQUNiLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO01BQzlCLEVBQUUsSUFBSSxDQUFDO0lBQ1Q7SUFFQSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO0lBRXhCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxnQkFBZ0I7TUFDbEMsRUFBRSxJQUFJLENBQUM7SUFDVDtJQUVBLE1BQU0sUUFBa0IsRUFBRTtJQUMxQixNQUFNLGVBQXlCLEVBQUU7SUFFakMsTUFBTSxjQUFjLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxNQUN2QyxDQUFDOzs7dUVBR2dFLENBQUM7SUFFcEUsSUFBSSxhQUFhO01BQ2YsRUFBRSxJQUFJLENBQUM7SUFDVDtJQUVBLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7TUFDckIsRUFBRSxJQUFJLENBQUM7TUFDUCxFQUFFLElBQUksQ0FBQyxRQUFRLFFBQVEsQ0FBQyxJQUFJO01BRTVCLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxRQUFRLENBQUMsT0FBTztVQUN6QixNQUFNLElBQUksQ0FBQztRQUNiO01BQ0Y7TUFFQSxNQUFNLGNBQWMsUUFBUSxjQUFjLENBQUMsSUFBSTtNQUUvQyxJQUFJLGFBQWE7UUFDZixhQUFhLElBQUksQ0FBQztNQUNwQjtJQUNGO0lBRUEsSUFBSSxNQUFNLE1BQU0sRUFBRTtNQUNoQixFQUFFLElBQUksQ0FBQztNQUNQLE1BQU0sSUFBSSxDQUFDO01BQ1gsTUFBTSxPQUFPLENBQUMsQ0FBQyxPQUFTLEVBQUUsSUFBSSxDQUFDO0lBQ2pDO0lBRUEsSUFBSSxhQUFhLE1BQU0sRUFBRTtNQUN2QixFQUFFLElBQUksQ0FBQztNQUVQLGFBQWEsT0FBTyxDQUFDLENBQUMsT0FBUyxFQUFFLElBQUksQ0FBQztJQUN4QztJQUVBLEVBQUUsSUFBSSxDQUFDO0lBRVAsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO01BQ2YsRUFBRSxJQUFJLENBQUM7TUFDUCxFQUFFLElBQUksQ0FBQztNQUNQLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO01BQ2xCLEVBQUUsSUFBSSxDQUFDO0lBQ1Q7SUFFQSxPQUFPLEVBQUUsSUFBSSxDQUFDO0VBQ2hCO0FBQ0Y7QUFFQSxTQUFTLFFBQVEsQ0FBUyxFQUFFLENBQVM7RUFDbkMsSUFBSSxNQUFNLEdBQUc7SUFDWCxPQUFPO0VBQ1Q7RUFDQSxNQUFNLE1BQU07RUFDWixNQUFNLFVBQVUsRUFBRSxLQUFLLENBQUM7RUFDeEIsTUFBTSxVQUFVLEVBQUUsS0FBSyxDQUFDO0VBRXhCLElBQUksV0FBVyxTQUFTO0lBQ3RCLE9BQU8sU0FBUyxPQUFPLENBQUMsRUFBRSxJQUFJLFNBQVMsT0FBTyxDQUFDLEVBQUU7RUFDbkQ7RUFFQSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUk7QUFDdEIifQ==
|
package/src/Release.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import Change from "./Change.js";
|
|
2
|
+
import type Changelog from "./Changelog.js";
|
|
3
|
+
import type { SemVer } from "./deps.js";
|
|
4
|
+
export default class Release {
|
|
5
|
+
changelog?: Changelog;
|
|
6
|
+
parsedVersion?: SemVer;
|
|
7
|
+
date?: Date;
|
|
8
|
+
yanked: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
changes: Map<string, Change[]>;
|
|
11
|
+
constructor(version?: string | SemVer, date?: string | Date, description?: string);
|
|
12
|
+
get version(): string | undefined;
|
|
13
|
+
compare(release: Release): number;
|
|
14
|
+
combineChanges(changes: Map<string, Change[]>): this;
|
|
15
|
+
isEmpty(): boolean;
|
|
16
|
+
setVersion(version?: string | SemVer): void;
|
|
17
|
+
setDate(date?: Date | string): void;
|
|
18
|
+
setYanked(yanked?: boolean): this;
|
|
19
|
+
addChange(type: string, change: Change | string): this;
|
|
20
|
+
added(change: Change | string): this;
|
|
21
|
+
changed(change: Change | string): this;
|
|
22
|
+
deprecated(change: Change | string): this;
|
|
23
|
+
removed(change: Change | string): this;
|
|
24
|
+
fixed(change: Change | string): this;
|
|
25
|
+
security(change: Change | string): this;
|
|
26
|
+
toString(changelog?: Changelog): string;
|
|
27
|
+
getCompareLink(changelog?: Changelog): string | undefined;
|
|
28
|
+
getLinks(changelog: Changelog): string[];
|
|
29
|
+
}
|