conventional-commits-parser 4.0.0 → 6.0.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.
- package/README.md +194 -140
- package/dist/CommitParser.d.ts +40 -0
- package/dist/CommitParser.d.ts.map +1 -0
- package/dist/CommitParser.js +317 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +103 -0
- package/dist/cli/options.d.ts +3 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +40 -0
- package/dist/cli/utils.d.ts +8 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +64 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/options.d.ts +3 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +25 -0
- package/dist/regex.d.ts +8 -0
- package/dist/regex.d.ts.map +1 -0
- package/dist/regex.js +49 -0
- package/dist/stream.d.ts +16 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/stream.js +38 -0
- package/dist/types.d.ts +98 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/utils.d.ts +32 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +59 -0
- package/package.json +21 -26
- package/cli.js +0 -170
- package/index.js +0 -105
- package/lib/parser.js +0 -316
- package/lib/regex.js +0 -61
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import { getParserRegexes } from './regex.js';
|
|
2
|
+
import { trimNewLines, appendLine, getCommentFilter, gpgFilter, truncateToScissor } from './utils.js';
|
|
3
|
+
import { defaultOptions } from './options.js';
|
|
4
|
+
/**
|
|
5
|
+
* Helper to create commit object.
|
|
6
|
+
* @param initialData - Initial commit data.
|
|
7
|
+
* @returns Commit object with empty data.
|
|
8
|
+
*/
|
|
9
|
+
export function createCommitObject(initialData = {}) {
|
|
10
|
+
// @ts-expect-error: You can read properties from `Commit` without problems, but you can't assign object to this type. So here is helper for that.
|
|
11
|
+
return {
|
|
12
|
+
merge: null,
|
|
13
|
+
revert: null,
|
|
14
|
+
header: null,
|
|
15
|
+
body: null,
|
|
16
|
+
footer: null,
|
|
17
|
+
notes: [],
|
|
18
|
+
mentions: [],
|
|
19
|
+
references: [],
|
|
20
|
+
...initialData
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Commit message parser.
|
|
25
|
+
*/
|
|
26
|
+
export class CommitParser {
|
|
27
|
+
options;
|
|
28
|
+
regexes;
|
|
29
|
+
lines = [];
|
|
30
|
+
lineIndex = 0;
|
|
31
|
+
commit = createCommitObject();
|
|
32
|
+
constructor(options = {}) {
|
|
33
|
+
this.options = {
|
|
34
|
+
...defaultOptions,
|
|
35
|
+
...options
|
|
36
|
+
};
|
|
37
|
+
this.regexes = getParserRegexes(this.options);
|
|
38
|
+
}
|
|
39
|
+
currentLine() {
|
|
40
|
+
return this.lines[this.lineIndex];
|
|
41
|
+
}
|
|
42
|
+
nextLine() {
|
|
43
|
+
return this.lines[this.lineIndex++];
|
|
44
|
+
}
|
|
45
|
+
isLineAvailable() {
|
|
46
|
+
return this.lineIndex < this.lines.length;
|
|
47
|
+
}
|
|
48
|
+
parseReference(input, action) {
|
|
49
|
+
const { regexes } = this;
|
|
50
|
+
const matches = regexes.referenceParts.exec(input);
|
|
51
|
+
if (!matches) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
let [raw, repository = null, prefix, issue] = matches;
|
|
55
|
+
let owner = null;
|
|
56
|
+
if (repository) {
|
|
57
|
+
const slashIndex = repository.indexOf('/');
|
|
58
|
+
if (slashIndex !== -1) {
|
|
59
|
+
owner = repository.slice(0, slashIndex);
|
|
60
|
+
repository = repository.slice(slashIndex + 1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
raw,
|
|
65
|
+
action,
|
|
66
|
+
owner,
|
|
67
|
+
repository,
|
|
68
|
+
prefix,
|
|
69
|
+
issue
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
parseReferences(input) {
|
|
73
|
+
const { regexes } = this;
|
|
74
|
+
const regex = input.match(regexes.references)
|
|
75
|
+
? regexes.references
|
|
76
|
+
: /()(.+)/gi;
|
|
77
|
+
const references = [];
|
|
78
|
+
let matches;
|
|
79
|
+
let action;
|
|
80
|
+
let sentence;
|
|
81
|
+
let reference;
|
|
82
|
+
while (true) {
|
|
83
|
+
matches = regex.exec(input);
|
|
84
|
+
if (!matches) {
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
action = matches[1] || null;
|
|
88
|
+
sentence = matches[2] || '';
|
|
89
|
+
while (true) {
|
|
90
|
+
reference = this.parseReference(sentence, action);
|
|
91
|
+
if (!reference) {
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
references.push(reference);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return references;
|
|
98
|
+
}
|
|
99
|
+
skipEmptyLines() {
|
|
100
|
+
let line = this.currentLine();
|
|
101
|
+
while (line !== undefined && !line.trim()) {
|
|
102
|
+
this.nextLine();
|
|
103
|
+
line = this.currentLine();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
parseMerge() {
|
|
107
|
+
const { commit, options } = this;
|
|
108
|
+
const correspondence = options.mergeCorrespondence || [];
|
|
109
|
+
const merge = this.currentLine();
|
|
110
|
+
const matches = merge && options.mergePattern
|
|
111
|
+
? merge.match(options.mergePattern)
|
|
112
|
+
: null;
|
|
113
|
+
if (matches) {
|
|
114
|
+
this.nextLine();
|
|
115
|
+
commit.merge = matches[0] || null;
|
|
116
|
+
correspondence.forEach((key, index) => {
|
|
117
|
+
commit[key] = matches[index + 1] || null;
|
|
118
|
+
});
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
parseHeader(isMergeCommit) {
|
|
124
|
+
if (isMergeCommit) {
|
|
125
|
+
this.skipEmptyLines();
|
|
126
|
+
}
|
|
127
|
+
const { commit, options } = this;
|
|
128
|
+
const correspondence = options.headerCorrespondence || [];
|
|
129
|
+
const header = this.nextLine();
|
|
130
|
+
let matches = null;
|
|
131
|
+
if (header) {
|
|
132
|
+
if (options.breakingHeaderPattern) {
|
|
133
|
+
matches = header.match(options.breakingHeaderPattern);
|
|
134
|
+
}
|
|
135
|
+
if (!matches && options.headerPattern) {
|
|
136
|
+
matches = header.match(options.headerPattern);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (header) {
|
|
140
|
+
commit.header = header;
|
|
141
|
+
}
|
|
142
|
+
if (matches) {
|
|
143
|
+
correspondence.forEach((key, index) => {
|
|
144
|
+
commit[key] = matches[index + 1] || null;
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
parseMeta() {
|
|
149
|
+
const { options, commit } = this;
|
|
150
|
+
if (!options.fieldPattern || !this.isLineAvailable()) {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
let matches;
|
|
154
|
+
let field = null;
|
|
155
|
+
let parsed = false;
|
|
156
|
+
while (this.isLineAvailable()) {
|
|
157
|
+
matches = this.currentLine().match(options.fieldPattern);
|
|
158
|
+
if (matches) {
|
|
159
|
+
field = matches[1] || null;
|
|
160
|
+
this.nextLine();
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (field) {
|
|
164
|
+
parsed = true;
|
|
165
|
+
commit[field] = appendLine(commit[field], this.currentLine());
|
|
166
|
+
this.nextLine();
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return parsed;
|
|
173
|
+
}
|
|
174
|
+
parseNotes() {
|
|
175
|
+
const { regexes, commit } = this;
|
|
176
|
+
if (!this.isLineAvailable()) {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
const matches = this.currentLine().match(regexes.notes);
|
|
180
|
+
let references = [];
|
|
181
|
+
if (matches) {
|
|
182
|
+
const note = {
|
|
183
|
+
title: matches[1],
|
|
184
|
+
text: matches[2]
|
|
185
|
+
};
|
|
186
|
+
commit.notes.push(note);
|
|
187
|
+
commit.footer = appendLine(commit.footer, this.currentLine());
|
|
188
|
+
this.nextLine();
|
|
189
|
+
while (this.isLineAvailable()) {
|
|
190
|
+
if (this.parseMeta()) {
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
if (this.parseNotes()) {
|
|
194
|
+
return true;
|
|
195
|
+
}
|
|
196
|
+
references = this.parseReferences(this.currentLine());
|
|
197
|
+
if (references.length) {
|
|
198
|
+
commit.references.push(...references);
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
note.text = appendLine(note.text, this.currentLine());
|
|
202
|
+
}
|
|
203
|
+
commit.footer = appendLine(commit.footer, this.currentLine());
|
|
204
|
+
this.nextLine();
|
|
205
|
+
if (references.length) {
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
parseBodyAndFooter(isBody) {
|
|
214
|
+
const { commit } = this;
|
|
215
|
+
if (!this.isLineAvailable()) {
|
|
216
|
+
return isBody;
|
|
217
|
+
}
|
|
218
|
+
const references = this.parseReferences(this.currentLine());
|
|
219
|
+
const isStillBody = !references.length && isBody;
|
|
220
|
+
if (isStillBody) {
|
|
221
|
+
commit.body = appendLine(commit.body, this.currentLine());
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
commit.references.push(...references);
|
|
225
|
+
commit.footer = appendLine(commit.footer, this.currentLine());
|
|
226
|
+
}
|
|
227
|
+
this.nextLine();
|
|
228
|
+
return isStillBody;
|
|
229
|
+
}
|
|
230
|
+
parseBreakingHeader() {
|
|
231
|
+
const { commit, options } = this;
|
|
232
|
+
if (!options.breakingHeaderPattern || commit.notes.length || !commit.header) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
const matches = commit.header.match(options.breakingHeaderPattern);
|
|
236
|
+
if (matches) {
|
|
237
|
+
commit.notes.push({
|
|
238
|
+
title: 'BREAKING CHANGE',
|
|
239
|
+
text: matches[3]
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
parseMentions(input) {
|
|
244
|
+
const { commit, regexes } = this;
|
|
245
|
+
let matches;
|
|
246
|
+
for (;;) {
|
|
247
|
+
matches = regexes.mentions.exec(input);
|
|
248
|
+
if (!matches) {
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
commit.mentions.push(matches[1]);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
parseRevert(input) {
|
|
255
|
+
const { commit, options } = this;
|
|
256
|
+
const correspondence = options.revertCorrespondence || [];
|
|
257
|
+
const matches = options.revertPattern
|
|
258
|
+
? input.match(options.revertPattern)
|
|
259
|
+
: null;
|
|
260
|
+
if (matches) {
|
|
261
|
+
commit.revert = correspondence.reduce((meta, key, index) => {
|
|
262
|
+
meta[key] = matches[index + 1] || null;
|
|
263
|
+
return meta;
|
|
264
|
+
}, {});
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
cleanupCommit() {
|
|
268
|
+
const { commit } = this;
|
|
269
|
+
if (commit.body) {
|
|
270
|
+
commit.body = trimNewLines(commit.body);
|
|
271
|
+
}
|
|
272
|
+
if (commit.footer) {
|
|
273
|
+
commit.footer = trimNewLines(commit.footer);
|
|
274
|
+
}
|
|
275
|
+
commit.notes.forEach((note) => {
|
|
276
|
+
note.text = trimNewLines(note.text);
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Parse commit message string into an object.
|
|
281
|
+
* @param input - Commit message string.
|
|
282
|
+
* @returns Commit object.
|
|
283
|
+
*/
|
|
284
|
+
parse(input) {
|
|
285
|
+
if (!input.trim()) {
|
|
286
|
+
throw new TypeError('Expected a raw commit');
|
|
287
|
+
}
|
|
288
|
+
const commentFilter = getCommentFilter(this.options.commentChar);
|
|
289
|
+
const rawLines = trimNewLines(input).split(/\r?\n/);
|
|
290
|
+
const lines = truncateToScissor(rawLines).filter(line => commentFilter(line) && gpgFilter(line));
|
|
291
|
+
const commit = createCommitObject();
|
|
292
|
+
this.lines = lines;
|
|
293
|
+
this.lineIndex = 0;
|
|
294
|
+
this.commit = commit;
|
|
295
|
+
const isMergeCommit = this.parseMerge();
|
|
296
|
+
this.parseHeader(isMergeCommit);
|
|
297
|
+
if (commit.header) {
|
|
298
|
+
commit.references = this.parseReferences(commit.header);
|
|
299
|
+
}
|
|
300
|
+
let isBody = true;
|
|
301
|
+
while (this.isLineAvailable()) {
|
|
302
|
+
this.parseMeta();
|
|
303
|
+
if (this.parseNotes()) {
|
|
304
|
+
isBody = false;
|
|
305
|
+
}
|
|
306
|
+
if (!this.parseBodyAndFooter(isBody)) {
|
|
307
|
+
isBody = false;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
this.parseBreakingHeader();
|
|
311
|
+
this.parseMentions(input);
|
|
312
|
+
this.parseRevert(input);
|
|
313
|
+
this.cleanupCommit();
|
|
314
|
+
return commit;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWl0UGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0NvbW1pdFBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDN0MsT0FBTyxFQUNMLFlBQVksRUFDWixVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU3Qzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLGNBQStCLEVBQUU7SUFDbEUsa0pBQWtKO0lBQ2xKLE9BQU87UUFDTCxLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxJQUFJO1FBQ1osTUFBTSxFQUFFLElBQUk7UUFDWixJQUFJLEVBQUUsSUFBSTtRQUNWLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLEVBQUU7UUFDVCxRQUFRLEVBQUUsRUFBRTtRQUNaLFVBQVUsRUFBRSxFQUFFO1FBQ2QsR0FBRyxXQUFXO0tBQ2YsQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ04sT0FBTyxDQUFlO0lBQ3RCLE9BQU8sQ0FBZTtJQUMvQixLQUFLLEdBQWEsRUFBRSxDQUFBO0lBQ3BCLFNBQVMsR0FBRyxDQUFDLENBQUE7SUFDYixNQUFNLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQTtJQUVyQyxZQUFZLFVBQXlCLEVBQUU7UUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsY0FBYztZQUNqQixHQUFHLE9BQU87U0FDWCxDQUFBO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRU8sUUFBUTtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUE7SUFDM0MsQ0FBQztJQUVPLGNBQWMsQ0FDcEIsS0FBYSxFQUNiLE1BQXFCO1FBRXJCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDeEIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFbEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxJQUFJLENBQ0YsR0FBRyxFQUNILFVBQVUsR0FBRyxJQUFJLEVBQ2pCLE1BQU0sRUFDTixLQUFLLENBQ04sR0FBRyxPQUFPLENBQUE7UUFDWCxJQUFJLEtBQUssR0FBa0IsSUFBSSxDQUFBO1FBRS9CLElBQUksVUFBVSxFQUFFO1lBQ2QsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUUxQyxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDckIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFBO2dCQUN2QyxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUE7YUFDOUM7U0FDRjtRQUVELE9BQU87WUFDTCxHQUFHO1lBQ0gsTUFBTTtZQUNOLEtBQUs7WUFDTCxVQUFVO1lBQ1YsTUFBTTtZQUNOLEtBQUs7U0FDTixDQUFBO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FDckIsS0FBYTtRQUViLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDeEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQzNDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUNwQixDQUFDLENBQUMsVUFBVSxDQUFBO1FBQ2QsTUFBTSxVQUFVLEdBQXNCLEVBQUUsQ0FBQTtRQUN4QyxJQUFJLE9BQStCLENBQUE7UUFDbkMsSUFBSSxNQUFxQixDQUFBO1FBQ3pCLElBQUksUUFBZ0IsQ0FBQTtRQUNwQixJQUFJLFNBQWlDLENBQUE7UUFFckMsT0FBTyxJQUFJLEVBQUU7WUFDWCxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUUzQixJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLE1BQUs7YUFDTjtZQUVELE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFBO1lBQzNCLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO1lBRTNCLE9BQU8sSUFBSSxFQUFFO2dCQUNYLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFFakQsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDZCxNQUFLO2lCQUNOO2dCQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7YUFDM0I7U0FDRjtRQUVELE9BQU8sVUFBVSxDQUFBO0lBQ25CLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUU3QixPQUFPLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQ2YsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtTQUMxQjtJQUNILENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ2hDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUE7UUFDeEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLEtBQUssSUFBSSxPQUFPLENBQUMsWUFBWTtZQUMzQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFFUixJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUVmLE1BQU0sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQTtZQUVqQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUE7WUFDMUMsQ0FBQyxDQUFDLENBQUE7WUFFRixPQUFPLElBQUksQ0FBQTtTQUNaO1FBRUQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRU8sV0FBVyxDQUFDLGFBQXNCO1FBQ3hDLElBQUksYUFBYSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtTQUN0QjtRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ2hDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUE7UUFDekQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQzlCLElBQUksT0FBTyxHQUE0QixJQUFJLENBQUE7UUFFM0MsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtnQkFDakMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUE7YUFDdEQ7WUFFRCxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7Z0JBQ3JDLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTthQUM5QztTQUNGO1FBRUQsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtTQUN2QjtRQUVELElBQUksT0FBTyxFQUFFO1lBQ1gsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDcEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFBO1lBQzNDLENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRU8sU0FBUztRQUNmLE1BQU0sRUFDSixPQUFPLEVBQ1AsTUFBTSxFQUNQLEdBQUcsSUFBSSxDQUFBO1FBRVIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDcEQsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUVELElBQUksT0FBZ0MsQ0FBQTtRQUNwQyxJQUFJLEtBQUssR0FBa0IsSUFBSSxDQUFBO1FBQy9CLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUVsQixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM3QixPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7WUFFeEQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUE7Z0JBQzFCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtnQkFDZixTQUFRO2FBQ1Q7WUFFRCxJQUFJLEtBQUssRUFBRTtnQkFDVCxNQUFNLEdBQUcsSUFBSSxDQUFBO2dCQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO2dCQUM3RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7YUFDaEI7aUJBQU07Z0JBQ0wsTUFBSzthQUNOO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sRUFDSixPQUFPLEVBQ1AsTUFBTSxFQUNQLEdBQUcsSUFBSSxDQUFBO1FBRVIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQTtTQUNiO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdkQsSUFBSSxVQUFVLEdBQXNCLEVBQUUsQ0FBQTtRQUV0QyxJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sSUFBSSxHQUFlO2dCQUN2QixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDakIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDakIsQ0FBQTtZQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7WUFDN0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBRWYsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQzdCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFO29CQUNwQixPQUFPLElBQUksQ0FBQTtpQkFDWjtnQkFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtvQkFDckIsT0FBTyxJQUFJLENBQUE7aUJBQ1o7Z0JBRUQsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7Z0JBRXJELElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtvQkFDckIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQTtpQkFDdEM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtpQkFDdEQ7Z0JBRUQsTUFBTSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtnQkFDN0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO2dCQUVmLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtvQkFDckIsTUFBSztpQkFDTjthQUNGO1lBRUQsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE1BQWU7UUFDeEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQTtRQUV2QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQzNCLE9BQU8sTUFBTSxDQUFBO1NBQ2Q7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQzNELE1BQU0sV0FBVyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUE7UUFFaEQsSUFBSSxXQUFXLEVBQUU7WUFDZixNQUFNLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1NBQzFEO2FBQU07WUFDTCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFBO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7U0FDOUQ7UUFFRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFZixPQUFPLFdBQVcsQ0FBQTtJQUNwQixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLE1BQU0sRUFDSixNQUFNLEVBQ04sT0FBTyxFQUNSLEdBQUcsSUFBSSxDQUFBO1FBRVIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDM0UsT0FBTTtTQUNQO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFFbEUsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDaEIsS0FBSyxFQUFFLGlCQUFpQjtnQkFDeEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDakIsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQWE7UUFDakMsTUFBTSxFQUNKLE1BQU0sRUFDTixPQUFPLEVBQ1IsR0FBRyxJQUFJLENBQUE7UUFDUixJQUFJLE9BQStCLENBQUE7UUFFbkMsU0FBUztZQUNQLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUV0QyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLE1BQUs7YUFDTjtZQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2pDO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFhO1FBQy9CLE1BQU0sRUFDSixNQUFNLEVBQ04sT0FBTyxFQUNSLEdBQUcsSUFBSSxDQUFBO1FBQ1IsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQTtRQUN6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsYUFBYTtZQUNuQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFFUixJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBYSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3JFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQTtnQkFFdEMsT0FBTyxJQUFJLENBQUE7WUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7U0FDUDtJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFFdkIsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ2YsTUFBTSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3hDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUM1QztRQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBYTtRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtTQUM3QztRQUVELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDaEUsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNuRCxNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDaEcsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQTtRQUVuQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUVwQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFFdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUUvQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakIsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUN4RDtRQUVELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQTtRQUVqQixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7WUFFaEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3JCLE1BQU0sR0FBRyxLQUFLLENBQUE7YUFDZjtZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sR0FBRyxLQUFLLENBQUE7YUFDZjtTQUNGO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUVwQixPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { pipeline } from 'stream/promises';
|
|
3
|
+
import meow from 'meow';
|
|
4
|
+
import { parseCommits } from '../index.js';
|
|
5
|
+
import { parseOptions } from './options.js';
|
|
6
|
+
import { readRawCommitsFromFiles, readRawCommitsFromLine, readRawCommitsFromStdin, stringify } from './utils.js';
|
|
7
|
+
const DEFAULT_SEPARATOR = '\n\n\n';
|
|
8
|
+
const cli = meow(`
|
|
9
|
+
Practice writing commit messages or parse messages from files.
|
|
10
|
+
If used without specifying a text file path, you will enter an interactive shell.
|
|
11
|
+
Otherwise the commit messages in the files are parsed and printed
|
|
12
|
+
By default, commits will be split by three newlines ('\\n\\n\\n') or you can specify a separator.
|
|
13
|
+
|
|
14
|
+
Usage
|
|
15
|
+
conventional-commits-parser [-s <commit-separator>]
|
|
16
|
+
conventional-commits-parser [-s <commit-separator>] <path> [<path> ...]
|
|
17
|
+
cat <path> | conventional-commits-parser [-s <commit-separator>]
|
|
18
|
+
|
|
19
|
+
Example
|
|
20
|
+
conventional-commits-parser
|
|
21
|
+
conventional-commits-parser log.txt
|
|
22
|
+
cat log.txt | conventional-commits-parser
|
|
23
|
+
conventional-commits-parser log2.txt -s '===' >> parsed.txt
|
|
24
|
+
|
|
25
|
+
Options
|
|
26
|
+
-s, --separator Commit separator
|
|
27
|
+
-p, --header-pattern Regex to match header pattern
|
|
28
|
+
-c, --header-correspondence Comma separated parts used to define what capturing group of 'headerPattern' captures what
|
|
29
|
+
-r, --reference-actions Comma separated keywords that used to reference issues
|
|
30
|
+
-i, --issue-prefixes Comma separated prefixes of an issue
|
|
31
|
+
--issue-prefixes-case-sensitive Treat issue prefixes as case sensitive
|
|
32
|
+
-n, --note-keywords Comma separated keywords for important notes
|
|
33
|
+
-f, --field-pattern Regex to match other fields
|
|
34
|
+
--revert-pattern Regex to match revert pattern
|
|
35
|
+
--revert-correspondence Comma separated fields used to define what the commit reverts
|
|
36
|
+
-v, --verbose Verbose output
|
|
37
|
+
`, {
|
|
38
|
+
importMeta: import.meta,
|
|
39
|
+
flags: {
|
|
40
|
+
separator: {
|
|
41
|
+
shortFlag: 's',
|
|
42
|
+
type: 'string',
|
|
43
|
+
default: DEFAULT_SEPARATOR
|
|
44
|
+
},
|
|
45
|
+
headerPattern: {
|
|
46
|
+
shortFlag: 'p',
|
|
47
|
+
type: 'string'
|
|
48
|
+
},
|
|
49
|
+
headerCorrespondence: {
|
|
50
|
+
shortFlag: 'c',
|
|
51
|
+
type: 'string'
|
|
52
|
+
},
|
|
53
|
+
referenceActions: {
|
|
54
|
+
shortFlag: 'r',
|
|
55
|
+
type: 'string'
|
|
56
|
+
},
|
|
57
|
+
issuePrefixes: {
|
|
58
|
+
shortFlag: 'i',
|
|
59
|
+
type: 'string'
|
|
60
|
+
},
|
|
61
|
+
issuePrefixesCaseSensitive: {
|
|
62
|
+
type: 'boolean'
|
|
63
|
+
},
|
|
64
|
+
noteKeywords: {
|
|
65
|
+
shortFlag: 'n',
|
|
66
|
+
type: 'string'
|
|
67
|
+
},
|
|
68
|
+
fieldPattern: {
|
|
69
|
+
shortFlag: 'f',
|
|
70
|
+
type: 'string'
|
|
71
|
+
},
|
|
72
|
+
revertPattern: {
|
|
73
|
+
type: 'string'
|
|
74
|
+
},
|
|
75
|
+
revertCorrespondence: {
|
|
76
|
+
type: 'string'
|
|
77
|
+
},
|
|
78
|
+
verbose: {
|
|
79
|
+
shortFlag: 'v',
|
|
80
|
+
type: 'boolean'
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
const { separator } = cli.flags;
|
|
85
|
+
const options = parseOptions(cli.flags);
|
|
86
|
+
let inputStream;
|
|
87
|
+
try {
|
|
88
|
+
if (cli.input.length) {
|
|
89
|
+
inputStream = readRawCommitsFromFiles(cli.input, separator);
|
|
90
|
+
}
|
|
91
|
+
else if (process.stdin.isTTY) {
|
|
92
|
+
inputStream = readRawCommitsFromLine(separator);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
inputStream = readRawCommitsFromStdin(separator);
|
|
96
|
+
}
|
|
97
|
+
await pipeline(inputStream, parseCommits(options), stringify, process.stdout);
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
console.error(err);
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMzQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsU0FBUyxFQUNWLE1BQU0sWUFBWSxDQUFBO0FBRW5CLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFBO0FBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E2QmhCLEVBQUU7SUFDRCxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUk7SUFDdkIsS0FBSyxFQUFFO1FBQ0wsU0FBUyxFQUFFO1lBQ1QsU0FBUyxFQUFFLEdBQUc7WUFDZCxJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxpQkFBaUI7U0FDM0I7UUFDRCxhQUFhLEVBQUU7WUFDYixTQUFTLEVBQUUsR0FBRztZQUNkLElBQUksRUFBRSxRQUFRO1NBQ2Y7UUFDRCxvQkFBb0IsRUFBRTtZQUNwQixTQUFTLEVBQUUsR0FBRztZQUNkLElBQUksRUFBRSxRQUFRO1NBQ2Y7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixTQUFTLEVBQUUsR0FBRztZQUNkLElBQUksRUFBRSxRQUFRO1NBQ2Y7UUFDRCxhQUFhLEVBQUU7WUFDYixTQUFTLEVBQUUsR0FBRztZQUNkLElBQUksRUFBRSxRQUFRO1NBQ2Y7UUFDRCwwQkFBMEIsRUFBRTtZQUMxQixJQUFJLEVBQUUsU0FBUztTQUNoQjtRQUNELFlBQVksRUFBRTtZQUNaLFNBQVMsRUFBRSxHQUFHO1lBQ2QsSUFBSSxFQUFFLFFBQVE7U0FDZjtRQUNELFlBQVksRUFBRTtZQUNaLFNBQVMsRUFBRSxHQUFHO1lBQ2QsSUFBSSxFQUFFLFFBQVE7U0FDZjtRQUNELGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxRQUFRO1NBQ2Y7UUFDRCxvQkFBb0IsRUFBRTtZQUNwQixJQUFJLEVBQUUsUUFBUTtTQUNmO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLEdBQUc7WUFDZCxJQUFJLEVBQUUsU0FBUztTQUNoQjtLQUNGO0NBQ0YsQ0FBQyxDQUFBO0FBQ0YsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUE7QUFDL0IsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUN2QyxJQUFJLFdBQWtDLENBQUE7QUFFdEMsSUFBSTtJQUNGLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDcEIsV0FBVyxHQUFHLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUE7S0FDNUQ7U0FDQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQ3ZCLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQTtLQUNoRDtTQUFNO1FBQ0wsV0FBVyxHQUFHLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFBO0tBQ2pEO0lBRUgsTUFBTSxRQUFRLENBQ1osV0FBVyxFQUNYLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFDckIsU0FBUyxFQUNULE9BQU8sQ0FBQyxNQUFNLENBQ2YsQ0FBQTtDQUNGO0FBQUMsT0FBTyxHQUFHLEVBQUU7SUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7Q0FDaEIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMtD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,CA4ClF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
function trim(str) {
|
|
2
|
+
return str.trim();
|
|
3
|
+
}
|
|
4
|
+
export function parseOptions(options) {
|
|
5
|
+
if (typeof options.headerPattern === 'string') {
|
|
6
|
+
options.headerPattern = new RegExp(options.headerPattern);
|
|
7
|
+
}
|
|
8
|
+
if (typeof options.headerCorrespondence === 'string') {
|
|
9
|
+
options.headerCorrespondence = options.headerCorrespondence.split(',').map(trim);
|
|
10
|
+
}
|
|
11
|
+
if (typeof options.referenceActions === 'string') {
|
|
12
|
+
options.referenceActions = options.referenceActions.split(',').map(trim);
|
|
13
|
+
}
|
|
14
|
+
if (typeof options.issuePrefixes === 'string') {
|
|
15
|
+
options.issuePrefixes = options.issuePrefixes.split(',').map(trim);
|
|
16
|
+
}
|
|
17
|
+
if (typeof options.noteKeywords === 'string') {
|
|
18
|
+
options.noteKeywords = options.noteKeywords.split(',').map(trim);
|
|
19
|
+
}
|
|
20
|
+
if (typeof options.fieldPattern === 'string') {
|
|
21
|
+
options.fieldPattern = new RegExp(options.fieldPattern);
|
|
22
|
+
}
|
|
23
|
+
if (typeof options.revertPattern === 'string') {
|
|
24
|
+
options.revertPattern = new RegExp(options.revertPattern);
|
|
25
|
+
}
|
|
26
|
+
if (typeof options.revertCorrespondence === 'string') {
|
|
27
|
+
options.revertCorrespondence = options.revertCorrespondence.split(',').map(trim);
|
|
28
|
+
}
|
|
29
|
+
if (typeof options.mergePattern === 'string') {
|
|
30
|
+
options.mergePattern = new RegExp(options.mergePattern);
|
|
31
|
+
}
|
|
32
|
+
if (options.verbose) {
|
|
33
|
+
options.warn = console.warn.bind(console);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
options.warn = true;
|
|
37
|
+
}
|
|
38
|
+
return options;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGkvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxTQUFTLElBQUksQ0FBQyxHQUFXO0lBQ3ZCLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFBO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQWdDO0lBQzNELElBQUksT0FBTyxPQUFPLENBQUMsYUFBYSxLQUFLLFFBQVEsRUFBRTtRQUM3QyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtLQUMxRDtJQUVELElBQUksT0FBTyxPQUFPLENBQUMsb0JBQW9CLEtBQUssUUFBUSxFQUFFO1FBQ3BELE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtLQUNqRjtJQUVELElBQUksT0FBTyxPQUFPLENBQUMsZ0JBQWdCLEtBQUssUUFBUSxFQUFFO1FBQ2hELE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtLQUN6RTtJQUVELElBQUksT0FBTyxPQUFPLENBQUMsYUFBYSxLQUFLLFFBQVEsRUFBRTtRQUM3QyxPQUFPLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtLQUNuRTtJQUVELElBQUksT0FBTyxPQUFPLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtRQUM1QyxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtLQUNqRTtJQUVELElBQUksT0FBTyxPQUFPLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtRQUM1QyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtLQUN4RDtJQUVELElBQUksT0FBTyxPQUFPLENBQUMsYUFBYSxLQUFLLFFBQVEsRUFBRTtRQUM3QyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtLQUMxRDtJQUVELElBQUksT0FBTyxPQUFPLENBQUMsb0JBQW9CLEtBQUssUUFBUSxFQUFFO1FBQ3BELE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtLQUNqRjtJQUVELElBQUksT0FBTyxPQUFPLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtRQUM1QyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtLQUN4RDtJQUVELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUNuQixPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQzFDO1NBQU07UUFDTCxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtLQUNwQjtJQUVELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMifQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import type { Readable } from 'stream';
|
|
3
|
+
export declare function splitStream(stream: Readable, separator: string): AsyncGenerator<string, void, undefined>;
|
|
4
|
+
export declare function readRawCommitsFromFiles(files: string[], separator: string): AsyncGenerator<string, void, undefined>;
|
|
5
|
+
export declare function readRawCommitsFromLine(separator: string): AsyncGenerator<string, void, unknown>;
|
|
6
|
+
export declare function readRawCommitsFromStdin(separator: string): AsyncGenerator<string, void, undefined>;
|
|
7
|
+
export declare function stringify(commits: AsyncIterable<Record<string, unknown>>): AsyncGenerator<string, void, unknown>;
|
|
8
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAItC,wBAAuB,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2CAmBrE;AAED,wBAAuB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,2CAQhF;AAED,wBAAuB,sBAAsB,CAAC,SAAS,EAAE,MAAM,yCAmB9D;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,2CAExD;AAMD,wBAAuB,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,yCAe/E"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import readline from 'readline';
|
|
3
|
+
export async function* splitStream(stream, separator) {
|
|
4
|
+
let chunk;
|
|
5
|
+
let payload;
|
|
6
|
+
let buffer = '';
|
|
7
|
+
for await (chunk of stream) {
|
|
8
|
+
buffer += chunk.toString();
|
|
9
|
+
if (buffer.includes(separator)) {
|
|
10
|
+
payload = buffer.split(separator);
|
|
11
|
+
buffer = payload.pop() || '';
|
|
12
|
+
yield* payload;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (buffer) {
|
|
16
|
+
yield buffer;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export async function* readRawCommitsFromFiles(files, separator) {
|
|
20
|
+
for (const file of files) {
|
|
21
|
+
try {
|
|
22
|
+
yield* splitStream(fs.createReadStream(file), separator);
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
console.warn(`Failed to read file ${file}:\n ${err}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export async function* readRawCommitsFromLine(separator) {
|
|
30
|
+
const rl = readline.createInterface({
|
|
31
|
+
input: process.stdin,
|
|
32
|
+
output: process.stdout,
|
|
33
|
+
terminal: true
|
|
34
|
+
});
|
|
35
|
+
let line = '';
|
|
36
|
+
let commit = '';
|
|
37
|
+
for await (line of rl) {
|
|
38
|
+
commit += `${line}\n`;
|
|
39
|
+
if (!commit.includes(separator)) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
yield commit;
|
|
43
|
+
commit = '';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export function readRawCommitsFromStdin(separator) {
|
|
47
|
+
return splitStream(process.stdin, separator);
|
|
48
|
+
}
|
|
49
|
+
const JSON_STREAM_OPEN = '[\n';
|
|
50
|
+
const JSON_STREAM_SEPARATOR = '\n,\n';
|
|
51
|
+
const JSON_STREAM_CLOSE = '\n]\n';
|
|
52
|
+
export async function* stringify(commits) {
|
|
53
|
+
let jsonStreamOpened = false;
|
|
54
|
+
yield JSON_STREAM_OPEN;
|
|
55
|
+
for await (const commit of commits) {
|
|
56
|
+
if (jsonStreamOpened) {
|
|
57
|
+
yield JSON_STREAM_SEPARATOR;
|
|
58
|
+
}
|
|
59
|
+
yield JSON.stringify(commit);
|
|
60
|
+
jsonStreamOpened = true;
|
|
61
|
+
}
|
|
62
|
+
yield JSON_STREAM_CLOSE;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNuQixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUE7QUFFL0IsTUFBTSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQWdCLEVBQUUsU0FBaUI7SUFDcEUsSUFBSSxLQUFhLENBQUE7SUFDakIsSUFBSSxPQUFpQixDQUFBO0lBQ3JCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQTtJQUVmLElBQUksS0FBSyxFQUFFLEtBQUssSUFBSSxNQUFNLEVBQUU7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUUxQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDakMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUE7WUFFNUIsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFBO1NBQ2Y7S0FDRjtJQUVELElBQUksTUFBTSxFQUFFO1FBQ1YsTUFBTSxNQUFNLENBQUE7S0FDYjtBQUNILENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFlLEVBQUUsU0FBaUI7SUFDL0UsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDeEIsSUFBSTtZQUNGLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUE7U0FDekQ7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQyxDQUFBO1NBQ2pFO0tBQ0Y7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsc0JBQXNCLENBQUMsU0FBaUI7SUFDN0QsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUNsQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFBO0lBRWYsSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRTtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQTtRQUVyQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMvQixPQUFNO1NBQ1A7UUFFRCxNQUFNLE1BQU0sQ0FBQTtRQUNaLE1BQU0sR0FBRyxFQUFFLENBQUE7S0FDWjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBaUI7SUFDdkQsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUM5QyxDQUFDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7QUFDOUIsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUE7QUFDckMsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUE7QUFFakMsTUFBTSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQStDO0lBQzlFLElBQUksZ0JBQWdCLEdBQUcsS0FBSyxDQUFBO0lBRTVCLE1BQU0sZ0JBQWdCLENBQUE7SUFFdEIsSUFBSSxLQUFLLEVBQUUsTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1FBQ2xDLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsTUFBTSxxQkFBcUIsQ0FBQTtTQUM1QjtRQUVELE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM1QixnQkFBZ0IsR0FBRyxJQUFJLENBQUE7S0FDeEI7SUFFRCxNQUFNLGlCQUFpQixDQUFBO0FBQ3pCLENBQUMifQ==
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './CommitParser.js';
|
|
3
|
+
export * from './stream.js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLGFBQWEsQ0FBQSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,eAAO,MAAM,cAAc,EAAE,aAuB5B,CAAA"}
|
package/dist/options.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const defaultOptions = {
|
|
2
|
+
noteKeywords: ['BREAKING CHANGE', 'BREAKING-CHANGE'],
|
|
3
|
+
issuePrefixes: ['#'],
|
|
4
|
+
referenceActions: [
|
|
5
|
+
'close',
|
|
6
|
+
'closes',
|
|
7
|
+
'closed',
|
|
8
|
+
'fix',
|
|
9
|
+
'fixes',
|
|
10
|
+
'fixed',
|
|
11
|
+
'resolve',
|
|
12
|
+
'resolves',
|
|
13
|
+
'resolved'
|
|
14
|
+
],
|
|
15
|
+
headerPattern: /^(\w*)(?:\(([\w$.\-*/ ]*)\))?: (.*)$/,
|
|
16
|
+
headerCorrespondence: [
|
|
17
|
+
'type',
|
|
18
|
+
'scope',
|
|
19
|
+
'subject'
|
|
20
|
+
],
|
|
21
|
+
revertPattern: /^Revert\s"([\s\S]*)"\s*This reverts commit (\w*)\./,
|
|
22
|
+
revertCorrespondence: ['header', 'hash'],
|
|
23
|
+
fieldPattern: /^-(.*?)-$/
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBa0I7SUFDM0MsWUFBWSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7SUFDcEQsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDO0lBQ3BCLGdCQUFnQixFQUFFO1FBQ2hCLE9BQU87UUFDUCxRQUFRO1FBQ1IsUUFBUTtRQUNSLEtBQUs7UUFDTCxPQUFPO1FBQ1AsT0FBTztRQUNQLFNBQVM7UUFDVCxVQUFVO1FBQ1YsVUFBVTtLQUNYO0lBQ0QsYUFBYSxFQUFFLHNDQUFzQztJQUNyRCxvQkFBb0IsRUFBRTtRQUNwQixNQUFNO1FBQ04sT0FBTztRQUNQLFNBQVM7S0FDVjtJQUNELGFBQWEsRUFBRSxvREFBb0Q7SUFDbkUsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ3hDLFlBQVksRUFBRSxXQUFXO0NBQzFCLENBQUEifQ==
|
package/dist/regex.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ParserOptions, ParserRegexes } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Make the regexes used to parse a commit.
|
|
4
|
+
* @param options
|
|
5
|
+
* @returns Regexes.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getParserRegexes(options?: Pick<ParserOptions, 'noteKeywords' | 'notesPattern' | 'issuePrefixes' | 'issuePrefixesCaseSensitive' | 'referenceActions'>): ParserRegexes;
|
|
8
|
+
//# sourceMappingURL=regex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../src/regex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACd,MAAM,YAAY,CAAA;AAsDnB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,4BAA4B,GAAG,kBAAkB,CAAM,GACvI,aAAa,CAWf"}
|