@mnaoumov/typescript-dev-toolkit 6.2.0 → 6.3.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/bin/rewrite-changelog.mjs +8 -0
- package/dist/lib/cjs/changelog-grouping.cjs +23 -2
- package/dist/lib/cjs/changelog-grouping.d.cts +11 -0
- package/dist/lib/cjs/changelog-rewrite-cli.cjs +177 -0
- package/dist/lib/cjs/changelog-rewrite-cli.d.cts +105 -0
- package/dist/lib/cjs/changelog-rewrite.cjs +143 -0
- package/dist/lib/cjs/changelog-rewrite.d.cts +108 -0
- package/dist/lib/cjs/index.cjs +7 -1
- package/dist/lib/cjs/index.d.cts +2 -0
- package/dist/lib/cjs/version.cjs +23 -21
- package/dist/lib/cjs/version.d.cts +9 -1
- package/dist/lib/esm/changelog-grouping.d.mts +11 -0
- package/dist/lib/esm/changelog-grouping.mjs +22 -2
- package/dist/lib/esm/changelog-rewrite-cli.d.mts +105 -0
- package/dist/lib/esm/changelog-rewrite-cli.mjs +147 -0
- package/dist/lib/esm/changelog-rewrite.d.mts +108 -0
- package/dist/lib/esm/changelog-rewrite.mjs +118 -0
- package/dist/lib/esm/index.d.mts +2 -0
- package/dist/lib/esm/index.mjs +5 -1
- package/dist/lib/esm/version.d.mts +9 -1
- package/dist/lib/esm/version.mjs +22 -21
- package/package.json +2 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// The `rewrite-changelog` command. The logic lives in `src/changelog-rewrite-cli.ts`, built into `dist/`.
|
|
4
|
+
import process from 'node:process';
|
|
5
|
+
|
|
6
|
+
import { runRewriteChangelogCli } from '../dist/lib/esm/changelog-rewrite-cli.mjs';
|
|
7
|
+
|
|
8
|
+
process.exitCode = await runRewriteChangelogCli(process.argv.slice(2));
|
|
@@ -25,6 +25,7 @@ var changelog_grouping_exports = {};
|
|
|
25
25
|
__export(changelog_grouping_exports, {
|
|
26
26
|
CHANGELOG_STYLES: () => CHANGELOG_STYLES,
|
|
27
27
|
MAINTENANCE_COMMIT_TYPES: () => MAINTENANCE_COMMIT_TYPES,
|
|
28
|
+
escapeLinkBrackets: () => escapeLinkBrackets,
|
|
28
29
|
renderGroupedChangelogSection: () => renderGroupedChangelogSection
|
|
29
30
|
});
|
|
30
31
|
module.exports = __toCommonJS(changelog_grouping_exports);
|
|
@@ -45,6 +46,18 @@ const SECTIONS_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
45
46
|
]);
|
|
46
47
|
const CONVENTIONAL_ENTRY_REG_EXP = /^(?<type>[a-z]+)(?:\((?<scope>[^()]*)\))?(?<breaking>!)?:\s+(?<description>\S.*)$/i;
|
|
47
48
|
const ISSUE_ONLY_DESCRIPTION_REG_EXP = /^re (?<issue>#\d+)$/i;
|
|
49
|
+
const CODE_SPAN_REG_EXP = /(?<!`)(?<fence>`+)(?!`)[\s\S]*?(?<!`)\k<fence>(?!`)/g;
|
|
50
|
+
const BRACKET_REG_EXP = /\\*[[\]]/g;
|
|
51
|
+
function escapeLinkBrackets(text) {
|
|
52
|
+
const parts = [];
|
|
53
|
+
let lastIndex = 0;
|
|
54
|
+
for (const match of text.matchAll(CODE_SPAN_REG_EXP)) {
|
|
55
|
+
parts.push(escapeBracketsInPlainText(text.slice(lastIndex, match.index)), match[0]);
|
|
56
|
+
lastIndex = match.index + match[0].length;
|
|
57
|
+
}
|
|
58
|
+
parts.push(escapeBracketsInPlainText(text.slice(lastIndex)));
|
|
59
|
+
return parts.join("");
|
|
60
|
+
}
|
|
48
61
|
function renderGroupedChangelogSection(entries) {
|
|
49
62
|
const sectionEntries = /* @__PURE__ */ new Map();
|
|
50
63
|
let maintenanceCount = 0;
|
|
@@ -88,7 +101,7 @@ function classifyEntry(entry) {
|
|
|
88
101
|
const issue = ISSUE_ONLY_DESCRIPTION_REG_EXP.exec(description)?.groups?.["issue"];
|
|
89
102
|
const issueTitle = entry.detailLines[0];
|
|
90
103
|
const isIssueTitleUsed = issue !== void 0 && issueTitle !== void 0;
|
|
91
|
-
const text = isIssueTitleUsed ? issueTitle : description;
|
|
104
|
+
const text = isIssueTitleUsed ? escapeLinkBrackets(issueTitle) : description;
|
|
92
105
|
const references = isIssueTitleUsed ? [issue, ...entry.references] : entry.references;
|
|
93
106
|
const scope = groups["scope"];
|
|
94
107
|
return {
|
|
@@ -100,6 +113,13 @@ function classifyEntry(entry) {
|
|
|
100
113
|
function countPhrase(count, section) {
|
|
101
114
|
return `${String(count)} ${count === 1 ? section.singular : section.plural}`;
|
|
102
115
|
}
|
|
116
|
+
function escapeBracketsInPlainText(text) {
|
|
117
|
+
return text.replaceAll(BRACKET_REG_EXP, (match) => {
|
|
118
|
+
const backslashes = match.slice(0, -1);
|
|
119
|
+
const isEscaped = backslashes.replaceAll("\\\\", "") === "\\";
|
|
120
|
+
return isEscaped ? match : `${backslashes}\\${match.slice(-1)}`;
|
|
121
|
+
});
|
|
122
|
+
}
|
|
103
123
|
function joinPhrases(phrases) {
|
|
104
124
|
const last = phrases.slice(-1).join("");
|
|
105
125
|
return phrases.length === 1 ? last : `${phrases.slice(0, -1).join(", ")} and ${last}`;
|
|
@@ -127,6 +147,7 @@ function toTypeSection(type) {
|
|
|
127
147
|
0 && (module.exports = {
|
|
128
148
|
CHANGELOG_STYLES,
|
|
129
149
|
MAINTENANCE_COMMIT_TYPES,
|
|
150
|
+
escapeLinkBrackets,
|
|
130
151
|
renderGroupedChangelogSection
|
|
131
152
|
});
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NoYW5nZWxvZy1ncm91cGluZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEdyb3VwcyB0aGUgY29tbWl0LWRlcml2ZWQgZW50cmllcyBvZiBhIG5ldyBjaGFuZ2Vsb2cgc2VjdGlvbiBpbnRvIHBsYWluLWxhbmd1YWdlIHNlY3Rpb25zLCBzbyB0aGUgcmVsZWFzZSBub3RlcyBhXG4gKiByZWxlYXNlIHdyaXRlcyB3aXRoIG5vYm9keSByZXZpZXdpbmcgdGhlbSBjYW4gYmUgc2Nhbm5lZCByYXRoZXIgdGhhbiByZWFkIGNvbW1pdCBieSBjb21taXQuXG4gKlxuICogVGhlIGlucHV0IGlzIHN0aWxsIHRoZSBmaXJzdC1wYXJlbnQgY29tbWl0IGhpc3RvcnksIHNvIHRoaXMgaXMgYSBkZXRlcm1pbmlzdGljIHRyYW5zZm9ybWF0aW9uIG9mIHdoYXQgdGhlIGF1dGhvclxuICogYWxyZWFkeSB3cm90ZTogaXQgc29ydHMgZW50cmllcyBieSB0aGVpciBDb252ZW50aW9uYWwtQ29tbWl0cyB0eXBlLCBsZWF2ZXMgb3V0IHRoZSBjb21taXQgdHlwZXMgdGhhdCBkbyBub3QgY2hhbmdlXG4gKiB3aGF0IGEgdXNlciBnZXRzLCBtZXJnZXMgZW50cmllcyB0aGF0IHNheSB0aGUgc2FtZSB0aGluZywgYW5kIHN3YXBzIGEgYHJlICM8bj5gIHN1YmplY3QgZm9yIHRoZSBpc3N1ZSB0aXRsZSBpdHMgYm9keVxuICogY2Fycmllcy4gUHJvc2UgYSBodW1hbiAob3IgYW4gYWdlbnQpIHdyaXRlcyBzdGlsbCBnb2VzIGluIHRocm91Z2ggYC0tY2hhbmdlbG9nLWZpbGVgLlxuICovXG5cbi8qKlxuICogSG93IHRoZSBnZW5lcmF0ZWQgY2hhbmdlbG9nIHNlY3Rpb24gb2YgYSByZWxlYXNlIGlzIGxhaWQgb3V0LlxuICpcbiAqIC0gYGdyb3VwZWRgIFx1MjAxNCBhIG9uZS1saW5lIHN1bW1hcnksIHRoZW4gdGhlIGVudHJpZXMgdW5kZXIgYCMjIyBCcmVha2luZyBjaGFuZ2VzYCwgYCMjIyBOZXdgLCBgIyMjIEZpeGVkYCxcbiAqICAgYCMjIyBJbXByb3ZlZGAsIGAjIyMgRG9jdW1lbnRhdGlvbmAgYW5kIGAjIyMgT3RoZXIgY2hhbmdlc2AsIHdpdGggbWFpbnRlbmFuY2UgY29tbWl0cyBjb3VudGVkIHJhdGhlciB0aGFuIGxpc3RlZC5cbiAqIC0gYGNvbW1pdHNgIFx1MjAxNCBvbmUgYnVsbGV0IHBlciBmaXJzdC1wYXJlbnQgY29tbWl0LCBpbiBoaXN0b3J5IG9yZGVyLCBhcyBldmVyeSByZWxlYXNlIHdyb3RlIGJlZm9yZSBgZ3JvdXBlZGAgZXhpc3RlZC5cbiAqL1xuZXhwb3J0IHR5cGUgQ2hhbmdlbG9nU3R5bGUgPSAnY29tbWl0cycgfCAnZ3JvdXBlZCc7XG5cbi8qKlxuICogRXZlcnkge0BsaW5rIENoYW5nZWxvZ1N0eWxlfSwgaW4gdGhlIG9yZGVyIHRoZSBgLS1jaGFuZ2Vsb2ctc3R5bGVgIGVycm9yIGxpc3RzIHRoZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFOR0VMT0dfU1RZTEVTOiByZWFkb25seSBDaGFuZ2Vsb2dTdHlsZVtdID0gWydncm91cGVkJywgJ2NvbW1pdHMnXTtcblxuLyoqXG4gKiBPbmUgZmlyc3QtcGFyZW50IGNvbW1pdCwgYXMge0BsaW5rIHJlbmRlckdyb3VwZWRDaGFuZ2Vsb2dTZWN0aW9ufSB0YWtlcyBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2Vsb2dDb21taXRFbnRyeSB7XG4gIC8qKlxuICAgKiBUaGUgYm9keSBsaW5lcyB0aGF0IGFyZSBuZWl0aGVyIHRoZSBlbnRyeSBpdHNlbGYgbm9yIGFuIGlzc3VlIHJlZmVyZW5jZSBsaW5lIG5vciBhIGJyZWFraW5nLWNoYW5nZSBmb290ZXIsIGluXG4gICAqIG9yZGVyLiBUaGUgZmlyc3Qgb2YgdGhlbSBpcyB0aGUgaXNzdWUgdGl0bGUgYW4gaXNzdWUtY2xvc2luZyBgcmUgIzxuPmAgbWVyZ2UgY2Fycmllcy5cbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbExpbmVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNoYW5nZWxvZyBsaW5lIHRoZSBjb21taXQgcHJvZHVjZXMgYmVmb3JlIGdyb3VwaW5nOiBpdHMgc3ViamVjdCwgb3IgdGhlIGJvZHkgbGluZSBsaWZ0ZWQgb250byBhIGRlZmF1bHQgbWVyZ2VcbiAgICogc3ViamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNvbW1pdCBjYXJyaWVzIGEgYEJSRUFLSU5HIENIQU5HRTpgIGZvb3Rlci4gVGhlIGAhYCBtYXJrZXIgaXMgcmVhZCBvZmYge0BsaW5rIGVudHJ5fSBpdHNlbGYuXG4gICAqL1xuICByZWFkb25seSBoYXNCcmVha2luZ0Zvb3RlcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGlzc3VlIHJlZmVyZW5jZXMgdGhlIGJvZHkgbmFtZXMgdGhhdCB7QGxpbmsgZW50cnl9IGRvZXMgbm90IGFscmVhZHkgc2hvdywgcmVuZGVyZWQgYXMgdGhlIGxpbmUgc2hvd3MgdGhlbS5cbiAgICovXG4gIHJlYWRvbmx5IHJlZmVyZW5jZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRoZSBjb21taXQgdHlwZXMgdGhhdCBjaGFuZ2Ugbm90aGluZyBhIHVzZXIgb2YgdGhlIHJlbGVhc2UgZ2V0cywgc28gdGhlIGdyb3VwZWQgc2VjdGlvbiBjb3VudHMgdGhlbSBpbnN0ZWFkIG9mXG4gKiBsaXN0aW5nIHRoZW0uIEEgY29tbWl0IG9mIG9uZSBvZiB0aGVzZSB0eXBlcyB0aGF0IGlzIG1hcmtlZCBicmVha2luZyBpcyBzdGlsbCBsaXN0ZWQsIHVuZGVyIGJyZWFraW5nIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBNQUlOVEVOQU5DRV9DT01NSVRfVFlQRVM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFsnYnVpbGQnLCAnY2hvcmUnLCAnY2knLCAncmVmYWN0b3InLCAnc3R5bGUnLCAndGVzdCddKTtcblxuaW50ZXJmYWNlIENsYXNzaWZpZWRFbnRyeSB7XG4gIHJlYWRvbmx5IHJlZmVyZW5jZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICByZWFkb25seSBzZWN0aW9uOiBTZWN0aW9uRGVmaW5pdGlvbjtcbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2VjdGlvbkRlZmluaXRpb24ge1xuICByZWFkb25seSBoZWFkaW5nOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsdXJhbDogc3RyaW5nO1xuICByZWFkb25seSBzaW5ndWxhcjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2VjdGlvbkVudHJ5IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQtZGV2LXRvb2xraXQvcmVhZG9ubHktaW50ZXJmYWNlLW1lbWJlcnMgLS0gTWVyZ2VkIGVudHJpZXMgY29sbGVjdCByZWZlcmVuY2VzIGluIHBsYWNlLlxuICByZWZlcmVuY2VzOiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xufVxuXG5jb25zdCBCUkVBS0lOR19TRUNUSU9OOiBTZWN0aW9uRGVmaW5pdGlvbiA9IHsgaGVhZGluZzogJ0JyZWFraW5nIGNoYW5nZXMnLCBwbHVyYWw6ICdicmVha2luZyBjaGFuZ2VzJywgc2luZ3VsYXI6ICdicmVha2luZyBjaGFuZ2UnIH07XG5jb25zdCBORVdfU0VDVElPTjogU2VjdGlvbkRlZmluaXRpb24gPSB7IGhlYWRpbmc6ICdOZXcnLCBwbHVyYWw6ICduZXcgZmVhdHVyZXMnLCBzaW5ndWxhcjogJ25ldyBmZWF0dXJlJyB9O1xuY29uc3QgRklYRURfU0VDVElPTjogU2VjdGlvbkRlZmluaXRpb24gPSB7IGhlYWRpbmc6ICdGaXhlZCcsIHBsdXJhbDogJ2ZpeGVzJywgc2luZ3VsYXI6ICdmaXgnIH07XG5jb25zdCBJTVBST1ZFRF9TRUNUSU9OOiBTZWN0aW9uRGVmaW5pdGlvbiA9IHsgaGVhZGluZzogJ0ltcHJvdmVkJywgcGx1cmFsOiAnaW1wcm92ZW1lbnRzJywgc2luZ3VsYXI6ICdpbXByb3ZlbWVudCcgfTtcbmNvbnN0IERPQ1VNRU5UQVRJT05fU0VDVElPTjogU2VjdGlvbkRlZmluaXRpb24gPSB7IGhlYWRpbmc6ICdEb2N1bWVudGF0aW9uJywgcGx1cmFsOiAnZG9jdW1lbnRhdGlvbiBjaGFuZ2VzJywgc2luZ3VsYXI6ICdkb2N1bWVudGF0aW9uIGNoYW5nZScgfTtcbmNvbnN0IE9USEVSX1NFQ1RJT046IFNlY3Rpb25EZWZpbml0aW9uID0geyBoZWFkaW5nOiAnT3RoZXIgY2hhbmdlcycsIHBsdXJhbDogJ290aGVyIGNoYW5nZXMnLCBzaW5ndWxhcjogJ290aGVyIGNoYW5nZScgfTtcblxuLyoqXG4gKiBUaGUgc2VjdGlvbnMsIGluIHRoZSBvcmRlciB0aGV5IGFyZSByZW5kZXJlZCBhbmQgc3VtbWFyaXplZC5cbiAqL1xuY29uc3QgU0VDVElPTlM6IHJlYWRvbmx5IFNlY3Rpb25EZWZpbml0aW9uW10gPSBbQlJFQUtJTkdfU0VDVElPTiwgTkVXX1NFQ1RJT04sIEZJWEVEX1NFQ1RJT04sIElNUFJPVkVEX1NFQ1RJT04sIERPQ1VNRU5UQVRJT05fU0VDVElPTiwgT1RIRVJfU0VDVElPTl07XG5cbmNvbnN0IFNFQ1RJT05TX0JZX1RZUEUgPSBuZXcgTWFwPHN0cmluZywgU2VjdGlvbkRlZmluaXRpb24+KFtcbiAgWydkb2NzJywgRE9DVU1FTlRBVElPTl9TRUNUSU9OXSxcbiAgWydmZWF0JywgTkVXX1NFQ1RJT05dLFxuICBbJ2ZpeCcsIEZJWEVEX1NFQ1RJT05dLFxuICBbJ3BlcmYnLCBJTVBST1ZFRF9TRUNUSU9OXVxuXSk7XG5cbmNvbnN0IENPTlZFTlRJT05BTF9FTlRSWV9SRUdfRVhQID0gL14oPzx0eXBlPlthLXpdKykoPzpcXCgoPzxzY29wZT5bXigpXSopXFwpKT8oPzxicmVha2luZz4hKT86XFxzKyg/PGRlc2NyaXB0aW9uPlxcUy4qKSQvaTtcblxuLyoqXG4gKiBBbiBpc3N1ZS1jbG9zaW5nIG1lcmdlIHN1YmplY3QsIHdob3NlIHJlYWRhYmxlIGhhbGYgaXMgdGhlIGlzc3VlIHRpdGxlIG9uIHRoZSBib2R5J3MgZmlyc3QgbGluZS5cbiAqL1xuY29uc3QgSVNTVUVfT05MWV9ERVNDUklQVElPTl9SRUdfRVhQID0gL15yZSAoPzxpc3N1ZT4jXFxkKykkL2k7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgYm9keSBvZiBhIG5ldyBjaGFuZ2Vsb2cgc2VjdGlvbiBpbiB0aGUge0BsaW5rIENoYW5nZWxvZ1N0eWxlfSBgZ3JvdXBlZGAgbGF5b3V0LlxuICpcbiAqIEBwYXJhbSBlbnRyaWVzIC0gVGhlIGZpcnN0LXBhcmVudCBjb21taXRzIHNpbmNlIHRoZSBwcmV2aW91cyByZWxlYXNlLCBpbiBgZ2l0IGxvZ2Agb3JkZXIuXG4gKiBAcmV0dXJucyBUaGUgc2VjdGlvbiBib2R5LCB3aXRob3V0IGl0cyBgIyMgPHZlcnNpb24+YCBoZWFkaW5nIGFuZCB3aXRob3V0IGEgdHJhaWxpbmcgbmV3bGluZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckdyb3VwZWRDaGFuZ2Vsb2dTZWN0aW9uKGVudHJpZXM6IHJlYWRvbmx5IENoYW5nZWxvZ0NvbW1pdEVudHJ5W10pOiBzdHJpbmcge1xuICBjb25zdCBzZWN0aW9uRW50cmllcyA9IG5ldyBNYXA8U2VjdGlvbkRlZmluaXRpb24sIFNlY3Rpb25FbnRyeVtdPigpO1xuICBsZXQgbWFpbnRlbmFuY2VDb3VudCA9IDA7XG5cbiAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgY29uc3QgY2xhc3NpZmllZCA9IGNsYXNzaWZ5RW50cnkoZW50cnkpO1xuICAgIGlmICghY2xhc3NpZmllZCkge1xuICAgICAgbWFpbnRlbmFuY2VDb3VudCsrO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHNlY3Rpb25FbnRyaWVzLmdldChjbGFzc2lmaWVkLnNlY3Rpb24pID8/IFtdO1xuICAgIHNlY3Rpb25FbnRyaWVzLnNldChjbGFzc2lmaWVkLnNlY3Rpb24sIGxpc3QpO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gbGlzdC5maW5kKChzZWN0aW9uRW50cnkpID0+IHNlY3Rpb25FbnRyeS50ZXh0ID09PSBjbGFzc2lmaWVkLnRleHQpO1xuICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgIGxpc3QucHVzaCh7IHJlZmVyZW5jZXM6IFsuLi5jbGFzc2lmaWVkLnJlZmVyZW5jZXNdLCB0ZXh0OiBjbGFzc2lmaWVkLnRleHQgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBleGlzdGluZy5yZWZlcmVuY2VzID0gWy4uLm5ldyBTZXQoWy4uLmV4aXN0aW5nLnJlZmVyZW5jZXMsIC4uLmNsYXNzaWZpZWQucmVmZXJlbmNlc10pXTtcbiAgfVxuXG4gIGNvbnN0IGJsb2NrcyA9IFt0b1N1bW1hcnlMaW5lKHNlY3Rpb25FbnRyaWVzLCBtYWludGVuYW5jZUNvdW50KV07XG4gIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBTRUNUSU9OUykge1xuICAgIGNvbnN0IGxpc3QgPSBzZWN0aW9uRW50cmllcy5nZXQoc2VjdGlvbik7XG4gICAgaWYgKCFsaXN0KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBibG9ja3MucHVzaChgIyMjICR7c2VjdGlvbi5oZWFkaW5nfWAsIGxpc3QubWFwKChzZWN0aW9uRW50cnkpID0+IGAtICR7dG9FbnRyeUxpbmUoc2VjdGlvbkVudHJ5KX1gKS5qb2luKCdcXG4nKSk7XG4gIH1cblxuICByZXR1cm4gYmxvY2tzLmpvaW4oJ1xcblxcbicpO1xufVxuXG5mdW5jdGlvbiBjbGFzc2lmeUVudHJ5KGVudHJ5OiBDaGFuZ2Vsb2dDb21taXRFbnRyeSk6IENsYXNzaWZpZWRFbnRyeSB8IG51bGwge1xuICBjb25zdCBncm91cHMgPSBDT05WRU5USU9OQUxfRU5UUllfUkVHX0VYUC5leGVjKGVudHJ5LmVudHJ5KT8uZ3JvdXBzO1xuICBpZiAoIWdyb3Vwcykge1xuICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IGVudHJ5LnJlZmVyZW5jZXMsIHNlY3Rpb246IGVudHJ5Lmhhc0JyZWFraW5nRm9vdGVyID8gQlJFQUtJTkdfU0VDVElPTiA6IE9USEVSX1NFQ1RJT04sIHRleHQ6IGVudHJ5LmVudHJ5IH07XG4gIH1cblxuICAvLyBUaGUgcmVndWxhciBleHByZXNzaW9uJ3MgYHR5cGVgIGFuZCBgZGVzY3JpcHRpb25gIGdyb3VwcyBhcmUgbm90IG9wdGlvbmFsLCBzbyBhIG1hdGNoIGFsd2F5cyBmaWxscyB0aGVtLlxuICBjb25zdCB0eXBlID0gU3RyaW5nKGdyb3Vwc1sndHlwZSddKS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBpc0JyZWFraW5nID0gZ3JvdXBzWydicmVha2luZyddICE9PSB1bmRlZmluZWQgfHwgZW50cnkuaGFzQnJlYWtpbmdGb290ZXI7XG4gIGNvbnN0IHNlY3Rpb24gPSBpc0JyZWFraW5nID8gQlJFQUtJTkdfU0VDVElPTiA6IHRvVHlwZVNlY3Rpb24odHlwZSk7XG4gIGlmICghc2VjdGlvbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgZGVzY3JpcHRpb24gPSBTdHJpbmcoZ3JvdXBzWydkZXNjcmlwdGlvbiddKTtcbiAgY29uc3QgaXNzdWUgPSBJU1NVRV9PTkxZX0RFU0NSSVBUSU9OX1JFR19FWFAuZXhlYyhkZXNjcmlwdGlvbik/Lmdyb3Vwcz8uWydpc3N1ZSddO1xuICBjb25zdCBpc3N1ZVRpdGxlID0gZW50cnkuZGV0YWlsTGluZXNbMF07XG4gIGNvbnN0IGlzSXNzdWVUaXRsZVVzZWQgPSBpc3N1ZSAhPT0gdW5kZWZpbmVkICYmIGlzc3VlVGl0bGUgIT09IHVuZGVmaW5lZDtcbiAgY29uc3QgdGV4dCA9IGlzSXNzdWVUaXRsZVVzZWQgPyBpc3N1ZVRpdGxlIDogZGVzY3JpcHRpb247XG4gIGNvbnN0IHJlZmVyZW5jZXMgPSBpc0lzc3VlVGl0bGVVc2VkID8gW2lzc3VlLCAuLi5lbnRyeS5yZWZlcmVuY2VzXSA6IGVudHJ5LnJlZmVyZW5jZXM7XG4gIGNvbnN0IHNjb3BlID0gZ3JvdXBzWydzY29wZSddO1xuICByZXR1cm4ge1xuICAgIHJlZmVyZW5jZXMsXG4gICAgc2VjdGlvbixcbiAgICB0ZXh0OiBzY29wZSA/IGAqKiR7c2NvcGV9OioqICR7dGV4dH1gIDogdGV4dFxuICB9O1xufVxuXG5mdW5jdGlvbiBjb3VudFBocmFzZShjb3VudDogbnVtYmVyLCBzZWN0aW9uOiBTZWN0aW9uRGVmaW5pdGlvbik6IHN0cmluZyB7XG4gIHJldHVybiBgJHtTdHJpbmcoY291bnQpfSAke2NvdW50ID09PSAxID8gc2VjdGlvbi5zaW5ndWxhciA6IHNlY3Rpb24ucGx1cmFsfWA7XG59XG5cbmZ1bmN0aW9uIGpvaW5QaHJhc2VzKHBocmFzZXM6IHJlYWRvbmx5IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgY29uc3QgbGFzdCA9IHBocmFzZXMuc2xpY2UoLTEpLmpvaW4oJycpO1xuICByZXR1cm4gcGhyYXNlcy5sZW5ndGggPT09IDEgPyBsYXN0IDogYCR7cGhyYXNlcy5zbGljZSgwLCAtMSkuam9pbignLCAnKX0gYW5kICR7bGFzdH1gO1xufVxuXG5mdW5jdGlvbiB0b0VudHJ5TGluZShzZWN0aW9uRW50cnk6IFNlY3Rpb25FbnRyeSk6IHN0cmluZyB7XG4gIHJldHVybiBzZWN0aW9uRW50cnkucmVmZXJlbmNlcy5sZW5ndGggPT09IDAgPyBzZWN0aW9uRW50cnkudGV4dCA6IGAke3NlY3Rpb25FbnRyeS50ZXh0fSAoJHtzZWN0aW9uRW50cnkucmVmZXJlbmNlcy5qb2luKCcsICcpfSlgO1xufVxuXG5mdW5jdGlvbiB0b1N1bW1hcnlMaW5lKHNlY3Rpb25FbnRyaWVzOiBSZWFkb25seU1hcDxTZWN0aW9uRGVmaW5pdGlvbiwgcmVhZG9ubHkgU2VjdGlvbkVudHJ5W10+LCBtYWludGVuYW5jZUNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBwaHJhc2VzID0gU0VDVElPTlNcbiAgICAubWFwKChzZWN0aW9uKSA9PiAoeyBjb3VudDogc2VjdGlvbkVudHJpZXMuZ2V0KHNlY3Rpb24pPy5sZW5ndGggPz8gMCwgc2VjdGlvbiB9KSlcbiAgICAuZmlsdGVyKCh7IGNvdW50IH0pID0+IGNvdW50ID4gMClcbiAgICAubWFwKCh7IGNvdW50LCBzZWN0aW9uIH0pID0+IGNvdW50UGhyYXNlKGNvdW50LCBzZWN0aW9uKSk7XG4gIGNvbnN0IGlzT25lID0gbWFpbnRlbmFuY2VDb3VudCA9PT0gMTtcbiAgY29uc3QgbWFpbnRlbmFuY2UgPSBtYWludGVuYW5jZUNvdW50ID09PSAwXG4gICAgPyAnJ1xuICAgIDogYCAke1N0cmluZyhtYWludGVuYW5jZUNvdW50KX0gbWFpbnRlbmFuY2UgJHtpc09uZSA/ICdjb21taXQnIDogJ2NvbW1pdHMnfSAodGVzdHMsIGJ1aWxkLCBDSSwgcmVmYWN0b3JpbmcsIGRlcGVuZGVuY2llcykgJHtpc09uZSA/ICdpcycgOiAnYXJlJ30gbm90IGxpc3RlZC5gO1xuXG4gIGlmIChwaHJhc2VzLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gYFRoaXMgcmVsZWFzZSBoYXMgJHtqb2luUGhyYXNlcyhwaHJhc2VzKX0uJHttYWludGVuYW5jZX1gO1xuICB9XG5cbiAgcmV0dXJuIG1haW50ZW5hbmNlQ291bnQgPT09IDAgPyAnVGhpcyByZWxlYXNlIGhhcyBubyBjaGFuZ2VzLicgOiBgVGhpcyByZWxlYXNlIGhhcyBtYWludGVuYW5jZSBjaGFuZ2VzIG9ubHkuJHttYWludGVuYW5jZX1gO1xufVxuXG5mdW5jdGlvbiB0b1R5cGVTZWN0aW9uKHR5cGU6IHN0cmluZyk6IG51bGwgfCBTZWN0aW9uRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHNlY3Rpb24gPSBTRUNUSU9OU19CWV9UWVBFLmdldCh0eXBlKTtcbiAgaWYgKHNlY3Rpb24pIHtcbiAgICByZXR1cm4gc2VjdGlvbjtcbiAgfVxuXG4gIHJldHVybiBNQUlOVEVOQU5DRV9DT01NSVRfVFlQRVMuaGFzKHR5cGUpID8gbnVsbCA6IE9USEVSX1NFQ1RJT047XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBd0JPLE1BQU0sbUJBQThDLENBQUMsV0FBVyxTQUFTO0FBaUN6RSxNQUFNLDJCQUFnRCxvQkFBSSxJQUFJLENBQUMsU0FBUyxTQUFTLE1BQU0sWUFBWSxTQUFTLE1BQU0sQ0FBQztBQW9CMUgsTUFBTSxtQkFBc0MsRUFBRSxTQUFTLG9CQUFvQixRQUFRLG9CQUFvQixVQUFVLGtCQUFrQjtBQUNuSSxNQUFNLGNBQWlDLEVBQUUsU0FBUyxPQUFPLFFBQVEsZ0JBQWdCLFVBQVUsY0FBYztBQUN6RyxNQUFNLGdCQUFtQyxFQUFFLFNBQVMsU0FBUyxRQUFRLFNBQVMsVUFBVSxNQUFNO0FBQzlGLE1BQU0sbUJBQXNDLEVBQUUsU0FBUyxZQUFZLFFBQVEsZ0JBQWdCLFVBQVUsY0FBYztBQUNuSCxNQUFNLHdCQUEyQyxFQUFFLFNBQVMsaUJBQWlCLFFBQVEseUJBQXlCLFVBQVUsdUJBQXVCO0FBQy9JLE1BQU0sZ0JBQW1DLEVBQUUsU0FBUyxpQkFBaUIsUUFBUSxpQkFBaUIsVUFBVSxlQUFlO0FBS3ZILE1BQU0sV0FBeUMsQ0FBQyxrQkFBa0IsYUFBYSxlQUFlLGtCQUFrQix1QkFBdUIsYUFBYTtBQUVwSixNQUFNLG1CQUFtQixvQkFBSSxJQUErQjtBQUFBLEVBQzFELENBQUMsUUFBUSxxQkFBcUI7QUFBQSxFQUM5QixDQUFDLFFBQVEsV0FBVztBQUFBLEVBQ3BCLENBQUMsT0FBTyxhQUFhO0FBQUEsRUFDckIsQ0FBQyxRQUFRLGdCQUFnQjtBQUMzQixDQUFDO0FBRUQsTUFBTSw2QkFBNkI7QUFLbkMsTUFBTSxpQ0FBaUM7QUFRaEMsU0FBUyw4QkFBOEIsU0FBa0Q7QUFDOUYsUUFBTSxpQkFBaUIsb0JBQUksSUFBdUM7QUFDbEUsTUFBSSxtQkFBbUI7QUFFdkIsYUFBVyxTQUFTLFNBQVM7QUFDM0IsVUFBTSxhQUFhLGNBQWMsS0FBSztBQUN0QyxRQUFJLENBQUMsWUFBWTtBQUNmO0FBQ0E7QUFBQSxJQUNGO0FBRUEsVUFBTSxPQUFPLGVBQWUsSUFBSSxXQUFXLE9BQU8sS0FBSyxDQUFDO0FBQ3hELG1CQUFlLElBQUksV0FBVyxTQUFTLElBQUk7QUFDM0MsVUFBTSxXQUFXLEtBQUssS0FBSyxDQUFDLGlCQUFpQixhQUFhLFNBQVMsV0FBVyxJQUFJO0FBQ2xGLFFBQUksQ0FBQyxVQUFVO0FBQ2IsV0FBSyxLQUFLLEVBQUUsWUFBWSxDQUFDLEdBQUcsV0FBVyxVQUFVLEdBQUcsTUFBTSxXQUFXLEtBQUssQ0FBQztBQUMzRTtBQUFBLElBQ0Y7QUFFQSxhQUFTLGFBQWEsQ0FBQyxHQUFHLG9CQUFJLElBQUksQ0FBQyxHQUFHLFNBQVMsWUFBWSxHQUFHLFdBQVcsVUFBVSxDQUFDLENBQUM7QUFBQSxFQUN2RjtBQUVBLFFBQU0sU0FBUyxDQUFDLGNBQWMsZ0JBQWdCLGdCQUFnQixDQUFDO0FBQy9ELGFBQVcsV0FBVyxVQUFVO0FBQzlCLFVBQU0sT0FBTyxlQUFlLElBQUksT0FBTztBQUN2QyxRQUFJLENBQUMsTUFBTTtBQUNUO0FBQUEsSUFDRjtBQUVBLFdBQU8sS0FBSyxPQUFPLFFBQVEsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDLGlCQUFpQixLQUFLLFlBQVksWUFBWSxDQUFDLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQztBQUFBLEVBQy9HO0FBRUEsU0FBTyxPQUFPLEtBQUssTUFBTTtBQUMzQjtBQUVBLFNBQVMsY0FBYyxPQUFxRDtBQUMxRSxRQUFNLFNBQVMsMkJBQTJCLEtBQUssTUFBTSxLQUFLLEdBQUc7QUFDN0QsTUFBSSxDQUFDLFFBQVE7QUFDWCxXQUFPLEVBQUUsWUFBWSxNQUFNLFlBQVksU0FBUyxNQUFNLG9CQUFvQixtQkFBbUIsZUFBZSxNQUFNLE1BQU0sTUFBTTtBQUFBLEVBQ2hJO0FBR0EsUUFBTSxPQUFPLE9BQU8sT0FBTyxNQUFNLENBQUMsRUFBRSxZQUFZO0FBQ2hELFFBQU0sYUFBYSxPQUFPLFVBQVUsTUFBTSxVQUFhLE1BQU07QUFDN0QsUUFBTSxVQUFVLGFBQWEsbUJBQW1CLGNBQWMsSUFBSTtBQUNsRSxNQUFJLENBQUMsU0FBUztBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxjQUFjLE9BQU8sT0FBTyxhQUFhLENBQUM7QUFDaEQsUUFBTSxRQUFRLCtCQUErQixLQUFLLFdBQVcsR0FBRyxTQUFTLE9BQU87QUFDaEYsUUFBTSxhQUFhLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLFFBQU0sbUJBQW1CLFVBQVUsVUFBYSxlQUFlO0FBQy9ELFFBQU0sT0FBTyxtQkFBbUIsYUFBYTtBQUM3QyxRQUFNLGFBQWEsbUJBQW1CLENBQUMsT0FBTyxHQUFHLE1BQU0sVUFBVSxJQUFJLE1BQU07QUFDM0UsUUFBTSxRQUFRLE9BQU8sT0FBTztBQUM1QixTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0E7QUFBQSxJQUNBLE1BQU0sUUFBUSxLQUFLLEtBQUssT0FBTyxJQUFJLEtBQUs7QUFBQSxFQUMxQztBQUNGO0FBRUEsU0FBUyxZQUFZLE9BQWUsU0FBb0M7QUFDdEUsU0FBTyxHQUFHLE9BQU8sS0FBSyxDQUFDLElBQUksVUFBVSxJQUFJLFFBQVEsV0FBVyxRQUFRLE1BQU07QUFDNUU7QUFFQSxTQUFTLFlBQVksU0FBb0M7QUFDdkQsUUFBTSxPQUFPLFFBQVEsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFO0FBQ3RDLFNBQU8sUUFBUSxXQUFXLElBQUksT0FBTyxHQUFHLFFBQVEsTUFBTSxHQUFHLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLElBQUk7QUFDckY7QUFFQSxTQUFTLFlBQVksY0FBb0M7QUFDdkQsU0FBTyxhQUFhLFdBQVcsV0FBVyxJQUFJLGFBQWEsT0FBTyxHQUFHLGFBQWEsSUFBSSxLQUFLLGFBQWEsV0FBVyxLQUFLLElBQUksQ0FBQztBQUMvSDtBQUVBLFNBQVMsY0FBYyxnQkFBeUUsa0JBQWtDO0FBQ2hJLFFBQU0sVUFBVSxTQUNiLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxlQUFlLElBQUksT0FBTyxHQUFHLFVBQVUsR0FBRyxRQUFRLEVBQUUsRUFDL0UsT0FBTyxDQUFDLEVBQUUsTUFBTSxNQUFNLFFBQVEsQ0FBQyxFQUMvQixJQUFJLENBQUMsRUFBRSxPQUFPLFFBQVEsTUFBTSxZQUFZLE9BQU8sT0FBTyxDQUFDO0FBQzFELFFBQU0sUUFBUSxxQkFBcUI7QUFDbkMsUUFBTSxjQUFjLHFCQUFxQixJQUNyQyxLQUNBLElBQUksT0FBTyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsUUFBUSxXQUFXLFNBQVMsa0RBQWtELFFBQVEsT0FBTyxLQUFLO0FBRWxKLE1BQUksUUFBUSxTQUFTLEdBQUc7QUFDdEIsV0FBTyxvQkFBb0IsWUFBWSxPQUFPLENBQUMsSUFBSSxXQUFXO0FBQUEsRUFDaEU7QUFFQSxTQUFPLHFCQUFxQixJQUFJLGlDQUFpQyw2Q0FBNkMsV0FBVztBQUMzSDtBQUVBLFNBQVMsY0FBYyxNQUF3QztBQUM3RCxRQUFNLFVBQVUsaUJBQWlCLElBQUksSUFBSTtBQUN6QyxNQUFJLFNBQVM7QUFDWCxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8seUJBQXlCLElBQUksSUFBSSxJQUFJLE9BQU87QUFDckQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NoYW5nZWxvZy1ncm91cGluZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEdyb3VwcyB0aGUgY29tbWl0LWRlcml2ZWQgZW50cmllcyBvZiBhIG5ldyBjaGFuZ2Vsb2cgc2VjdGlvbiBpbnRvIHBsYWluLWxhbmd1YWdlIHNlY3Rpb25zLCBzbyB0aGUgcmVsZWFzZSBub3RlcyBhXG4gKiByZWxlYXNlIHdyaXRlcyB3aXRoIG5vYm9keSByZXZpZXdpbmcgdGhlbSBjYW4gYmUgc2Nhbm5lZCByYXRoZXIgdGhhbiByZWFkIGNvbW1pdCBieSBjb21taXQuXG4gKlxuICogVGhlIGlucHV0IGlzIHN0aWxsIHRoZSBmaXJzdC1wYXJlbnQgY29tbWl0IGhpc3RvcnksIHNvIHRoaXMgaXMgYSBkZXRlcm1pbmlzdGljIHRyYW5zZm9ybWF0aW9uIG9mIHdoYXQgdGhlIGF1dGhvclxuICogYWxyZWFkeSB3cm90ZTogaXQgc29ydHMgZW50cmllcyBieSB0aGVpciBDb252ZW50aW9uYWwtQ29tbWl0cyB0eXBlLCBsZWF2ZXMgb3V0IHRoZSBjb21taXQgdHlwZXMgdGhhdCBkbyBub3QgY2hhbmdlXG4gKiB3aGF0IGEgdXNlciBnZXRzLCBtZXJnZXMgZW50cmllcyB0aGF0IHNheSB0aGUgc2FtZSB0aGluZywgYW5kIHN3YXBzIGEgYHJlICM8bj5gIHN1YmplY3QgZm9yIHRoZSBpc3N1ZSB0aXRsZSBpdHMgYm9keVxuICogY2Fycmllcy4gUHJvc2UgYSBodW1hbiAob3IgYW4gYWdlbnQpIHdyaXRlcyBzdGlsbCBnb2VzIGluIHRocm91Z2ggYC0tY2hhbmdlbG9nLWZpbGVgLlxuICovXG5cbi8qKlxuICogSG93IHRoZSBnZW5lcmF0ZWQgY2hhbmdlbG9nIHNlY3Rpb24gb2YgYSByZWxlYXNlIGlzIGxhaWQgb3V0LlxuICpcbiAqIC0gYGdyb3VwZWRgIFx1MjAxNCBhIG9uZS1saW5lIHN1bW1hcnksIHRoZW4gdGhlIGVudHJpZXMgdW5kZXIgYCMjIyBCcmVha2luZyBjaGFuZ2VzYCwgYCMjIyBOZXdgLCBgIyMjIEZpeGVkYCxcbiAqICAgYCMjIyBJbXByb3ZlZGAsIGAjIyMgRG9jdW1lbnRhdGlvbmAgYW5kIGAjIyMgT3RoZXIgY2hhbmdlc2AsIHdpdGggbWFpbnRlbmFuY2UgY29tbWl0cyBjb3VudGVkIHJhdGhlciB0aGFuIGxpc3RlZC5cbiAqIC0gYGNvbW1pdHNgIFx1MjAxNCBvbmUgYnVsbGV0IHBlciBmaXJzdC1wYXJlbnQgY29tbWl0LCBpbiBoaXN0b3J5IG9yZGVyLCBhcyBldmVyeSByZWxlYXNlIHdyb3RlIGJlZm9yZSBgZ3JvdXBlZGAgZXhpc3RlZC5cbiAqL1xuZXhwb3J0IHR5cGUgQ2hhbmdlbG9nU3R5bGUgPSAnY29tbWl0cycgfCAnZ3JvdXBlZCc7XG5cbi8qKlxuICogRXZlcnkge0BsaW5rIENoYW5nZWxvZ1N0eWxlfSwgaW4gdGhlIG9yZGVyIHRoZSBgLS1jaGFuZ2Vsb2ctc3R5bGVgIGVycm9yIGxpc3RzIHRoZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFOR0VMT0dfU1RZTEVTOiByZWFkb25seSBDaGFuZ2Vsb2dTdHlsZVtdID0gWydncm91cGVkJywgJ2NvbW1pdHMnXTtcblxuLyoqXG4gKiBPbmUgZmlyc3QtcGFyZW50IGNvbW1pdCwgYXMge0BsaW5rIHJlbmRlckdyb3VwZWRDaGFuZ2Vsb2dTZWN0aW9ufSB0YWtlcyBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2Vsb2dDb21taXRFbnRyeSB7XG4gIC8qKlxuICAgKiBUaGUgYm9keSBsaW5lcyB0aGF0IGFyZSBuZWl0aGVyIHRoZSBlbnRyeSBpdHNlbGYgbm9yIGFuIGlzc3VlIHJlZmVyZW5jZSBsaW5lIG5vciBhIGJyZWFraW5nLWNoYW5nZSBmb290ZXIsIGluXG4gICAqIG9yZGVyLiBUaGUgZmlyc3Qgb2YgdGhlbSBpcyB0aGUgaXNzdWUgdGl0bGUgYW4gaXNzdWUtY2xvc2luZyBgcmUgIzxuPmAgbWVyZ2UgY2Fycmllcy5cbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbExpbmVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNoYW5nZWxvZyBsaW5lIHRoZSBjb21taXQgcHJvZHVjZXMgYmVmb3JlIGdyb3VwaW5nOiBpdHMgc3ViamVjdCwgb3IgdGhlIGJvZHkgbGluZSBsaWZ0ZWQgb250byBhIGRlZmF1bHQgbWVyZ2VcbiAgICogc3ViamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNvbW1pdCBjYXJyaWVzIGEgYEJSRUFLSU5HIENIQU5HRTpgIGZvb3Rlci4gVGhlIGAhYCBtYXJrZXIgaXMgcmVhZCBvZmYge0BsaW5rIGVudHJ5fSBpdHNlbGYuXG4gICAqL1xuICByZWFkb25seSBoYXNCcmVha2luZ0Zvb3RlcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGlzc3VlIHJlZmVyZW5jZXMgdGhlIGJvZHkgbmFtZXMgdGhhdCB7QGxpbmsgZW50cnl9IGRvZXMgbm90IGFscmVhZHkgc2hvdywgcmVuZGVyZWQgYXMgdGhlIGxpbmUgc2hvd3MgdGhlbS5cbiAgICovXG4gIHJlYWRvbmx5IHJlZmVyZW5jZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRoZSBjb21taXQgdHlwZXMgdGhhdCBjaGFuZ2Ugbm90aGluZyBhIHVzZXIgb2YgdGhlIHJlbGVhc2UgZ2V0cywgc28gdGhlIGdyb3VwZWQgc2VjdGlvbiBjb3VudHMgdGhlbSBpbnN0ZWFkIG9mXG4gKiBsaXN0aW5nIHRoZW0uIEEgY29tbWl0IG9mIG9uZSBvZiB0aGVzZSB0eXBlcyB0aGF0IGlzIG1hcmtlZCBicmVha2luZyBpcyBzdGlsbCBsaXN0ZWQsIHVuZGVyIGJyZWFraW5nIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBNQUlOVEVOQU5DRV9DT01NSVRfVFlQRVM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFsnYnVpbGQnLCAnY2hvcmUnLCAnY2knLCAncmVmYWN0b3InLCAnc3R5bGUnLCAndGVzdCddKTtcblxuaW50ZXJmYWNlIENsYXNzaWZpZWRFbnRyeSB7XG4gIHJlYWRvbmx5IHJlZmVyZW5jZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICByZWFkb25seSBzZWN0aW9uOiBTZWN0aW9uRGVmaW5pdGlvbjtcbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2VjdGlvbkRlZmluaXRpb24ge1xuICByZWFkb25seSBoZWFkaW5nOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsdXJhbDogc3RyaW5nO1xuICByZWFkb25seSBzaW5ndWxhcjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2VjdGlvbkVudHJ5IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQtZGV2LXRvb2xraXQvcmVhZG9ubHktaW50ZXJmYWNlLW1lbWJlcnMgLS0gTWVyZ2VkIGVudHJpZXMgY29sbGVjdCByZWZlcmVuY2VzIGluIHBsYWNlLlxuICByZWZlcmVuY2VzOiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xufVxuXG5jb25zdCBCUkVBS0lOR19TRUNUSU9OOiBTZWN0aW9uRGVmaW5pdGlvbiA9IHsgaGVhZGluZzogJ0JyZWFraW5nIGNoYW5nZXMnLCBwbHVyYWw6ICdicmVha2luZyBjaGFuZ2VzJywgc2luZ3VsYXI6ICdicmVha2luZyBjaGFuZ2UnIH07XG5jb25zdCBORVdfU0VDVElPTjogU2VjdGlvbkRlZmluaXRpb24gPSB7IGhlYWRpbmc6ICdOZXcnLCBwbHVyYWw6ICduZXcgZmVhdHVyZXMnLCBzaW5ndWxhcjogJ25ldyBmZWF0dXJlJyB9O1xuY29uc3QgRklYRURfU0VDVElPTjogU2VjdGlvbkRlZmluaXRpb24gPSB7IGhlYWRpbmc6ICdGaXhlZCcsIHBsdXJhbDogJ2ZpeGVzJywgc2luZ3VsYXI6ICdmaXgnIH07XG5jb25zdCBJTVBST1ZFRF9TRUNUSU9OOiBTZWN0aW9uRGVmaW5pdGlvbiA9IHsgaGVhZGluZzogJ0ltcHJvdmVkJywgcGx1cmFsOiAnaW1wcm92ZW1lbnRzJywgc2luZ3VsYXI6ICdpbXByb3ZlbWVudCcgfTtcbmNvbnN0IERPQ1VNRU5UQVRJT05fU0VDVElPTjogU2VjdGlvbkRlZmluaXRpb24gPSB7IGhlYWRpbmc6ICdEb2N1bWVudGF0aW9uJywgcGx1cmFsOiAnZG9jdW1lbnRhdGlvbiBjaGFuZ2VzJywgc2luZ3VsYXI6ICdkb2N1bWVudGF0aW9uIGNoYW5nZScgfTtcbmNvbnN0IE9USEVSX1NFQ1RJT046IFNlY3Rpb25EZWZpbml0aW9uID0geyBoZWFkaW5nOiAnT3RoZXIgY2hhbmdlcycsIHBsdXJhbDogJ290aGVyIGNoYW5nZXMnLCBzaW5ndWxhcjogJ290aGVyIGNoYW5nZScgfTtcblxuLyoqXG4gKiBUaGUgc2VjdGlvbnMsIGluIHRoZSBvcmRlciB0aGV5IGFyZSByZW5kZXJlZCBhbmQgc3VtbWFyaXplZC5cbiAqL1xuY29uc3QgU0VDVElPTlM6IHJlYWRvbmx5IFNlY3Rpb25EZWZpbml0aW9uW10gPSBbQlJFQUtJTkdfU0VDVElPTiwgTkVXX1NFQ1RJT04sIEZJWEVEX1NFQ1RJT04sIElNUFJPVkVEX1NFQ1RJT04sIERPQ1VNRU5UQVRJT05fU0VDVElPTiwgT1RIRVJfU0VDVElPTl07XG5cbmNvbnN0IFNFQ1RJT05TX0JZX1RZUEUgPSBuZXcgTWFwPHN0cmluZywgU2VjdGlvbkRlZmluaXRpb24+KFtcbiAgWydkb2NzJywgRE9DVU1FTlRBVElPTl9TRUNUSU9OXSxcbiAgWydmZWF0JywgTkVXX1NFQ1RJT05dLFxuICBbJ2ZpeCcsIEZJWEVEX1NFQ1RJT05dLFxuICBbJ3BlcmYnLCBJTVBST1ZFRF9TRUNUSU9OXVxuXSk7XG5cbmNvbnN0IENPTlZFTlRJT05BTF9FTlRSWV9SRUdfRVhQID0gL14oPzx0eXBlPlthLXpdKykoPzpcXCgoPzxzY29wZT5bXigpXSopXFwpKT8oPzxicmVha2luZz4hKT86XFxzKyg/PGRlc2NyaXB0aW9uPlxcUy4qKSQvaTtcblxuLyoqXG4gKiBBbiBpc3N1ZS1jbG9zaW5nIG1lcmdlIHN1YmplY3QsIHdob3NlIHJlYWRhYmxlIGhhbGYgaXMgdGhlIGlzc3VlIHRpdGxlIG9uIHRoZSBib2R5J3MgZmlyc3QgbGluZS5cbiAqL1xuY29uc3QgSVNTVUVfT05MWV9ERVNDUklQVElPTl9SRUdfRVhQID0gL15yZSAoPzxpc3N1ZT4jXFxkKykkL2k7XG5cbi8qKlxuICogQSBjb2RlIHNwYW46IGEgYmFja3RpY2sgcnVuLCB0aGUgc2hvcnRlc3QgdGV4dCB1cCB0byBhIGJhY2t0aWNrIHJ1biBvZiB0aGUgc2FtZSBsZW5ndGguXG4gKi9cbmNvbnN0IENPREVfU1BBTl9SRUdfRVhQID0gLyg/PCFgKSg/PGZlbmNlPmArKSg/IWApW1xcc1xcU10qPyg/PCFgKVxcazxmZW5jZT4oPyFgKS9nO1xuXG4vKipcbiAqIEEgc3F1YXJlIGJyYWNrZXQgYW5kIHRoZSBiYWNrc2xhc2hlcyByaWdodCBiZWZvcmUgaXQuXG4gKi9cbmNvbnN0IEJSQUNLRVRfUkVHX0VYUCA9IC9cXFxcKltbXFxdXS9nO1xuXG4vKipcbiAqIEVzY2FwZXMgdGhlIHNxdWFyZSBicmFja2V0cyBvZiBhbiBpc3N1ZSB0aXRsZSBvdXRzaWRlIGl0cyBjb2RlIHNwYW5zLCBzbyBhIHRpdGxlIHN1Y2ggYXMgYFtCVUddIExpbmtzIGJyZWFrYCBpc1xuICogcHVibGlzaGVkIGFzIHRleHQgcmF0aGVyIHRoYW4gcmVhZCBhcyBhIHJlZmVyZW5jZSBsaW5rIHdpdGggbm8gZGVmaW5pdGlvbiAobWFya2Rvd25saW50J3MgTUQwNTIpLlxuICpcbiAqIEFuIGlzc3VlIHRpdGxlIGlzIHdyaXR0ZW4gYnkgd2hvZXZlciBvcGVuZWQgdGhlIGlzc3VlLCBhbmQgbm8gY29tbWl0IGhvb2sgZXZlciBjaGVja3MgaXQsIHNvIGl0IGlzIHRoZSBvbmUgcGFydCBvZiBhXG4gKiBnZW5lcmF0ZWQgZW50cnkgdGhhdCBjYW4gY2FycnkgTWFya2Rvd24gdGhlIGF1dGhvciBuZXZlciBtZWFudC4gQSBicmFja2V0IGFscmVhZHkgZXNjYXBlZCBpcyBsZWZ0IGFzIGl0IGlzLlxuICpcbiAqIEBwYXJhbSB0ZXh0IC0gVGhlIGlzc3VlIHRpdGxlLlxuICogQHJldHVybnMgVGhlIHRpdGxlIHdpdGggZXZlcnkgdW5lc2NhcGVkIGBbYCBhbmQgYF1gIG91dHNpZGUgYSBjb2RlIHNwYW4gcHJlY2VkZWQgYnkgYSBiYWNrc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVMaW5rQnJhY2tldHModGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG4gIGxldCBsYXN0SW5kZXggPSAwO1xuICBmb3IgKGNvbnN0IG1hdGNoIG9mIHRleHQubWF0Y2hBbGwoQ09ERV9TUEFOX1JFR19FWFApKSB7XG4gICAgcGFydHMucHVzaChlc2NhcGVCcmFja2V0c0luUGxhaW5UZXh0KHRleHQuc2xpY2UobGFzdEluZGV4LCBtYXRjaC5pbmRleCkpLCBtYXRjaFswXSk7XG4gICAgbGFzdEluZGV4ID0gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGg7XG4gIH1cblxuICBwYXJ0cy5wdXNoKGVzY2FwZUJyYWNrZXRzSW5QbGFpblRleHQodGV4dC5zbGljZShsYXN0SW5kZXgpKSk7XG4gIHJldHVybiBwYXJ0cy5qb2luKCcnKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBib2R5IG9mIGEgbmV3IGNoYW5nZWxvZyBzZWN0aW9uIGluIHRoZSB7QGxpbmsgQ2hhbmdlbG9nU3R5bGV9IGBncm91cGVkYCBsYXlvdXQuXG4gKlxuICogQHBhcmFtIGVudHJpZXMgLSBUaGUgZmlyc3QtcGFyZW50IGNvbW1pdHMgc2luY2UgdGhlIHByZXZpb3VzIHJlbGVhc2UsIGluIGBnaXQgbG9nYCBvcmRlci5cbiAqIEByZXR1cm5zIFRoZSBzZWN0aW9uIGJvZHksIHdpdGhvdXQgaXRzIGAjIyA8dmVyc2lvbj5gIGhlYWRpbmcgYW5kIHdpdGhvdXQgYSB0cmFpbGluZyBuZXdsaW5lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyR3JvdXBlZENoYW5nZWxvZ1NlY3Rpb24oZW50cmllczogcmVhZG9ubHkgQ2hhbmdlbG9nQ29tbWl0RW50cnlbXSk6IHN0cmluZyB7XG4gIGNvbnN0IHNlY3Rpb25FbnRyaWVzID0gbmV3IE1hcDxTZWN0aW9uRGVmaW5pdGlvbiwgU2VjdGlvbkVudHJ5W10+KCk7XG4gIGxldCBtYWludGVuYW5jZUNvdW50ID0gMDtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBjbGFzc2lmaWVkID0gY2xhc3NpZnlFbnRyeShlbnRyeSk7XG4gICAgaWYgKCFjbGFzc2lmaWVkKSB7XG4gICAgICBtYWludGVuYW5jZUNvdW50Kys7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ID0gc2VjdGlvbkVudHJpZXMuZ2V0KGNsYXNzaWZpZWQuc2VjdGlvbikgPz8gW107XG4gICAgc2VjdGlvbkVudHJpZXMuc2V0KGNsYXNzaWZpZWQuc2VjdGlvbiwgbGlzdCk7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBsaXN0LmZpbmQoKHNlY3Rpb25FbnRyeSkgPT4gc2VjdGlvbkVudHJ5LnRleHQgPT09IGNsYXNzaWZpZWQudGV4dCk7XG4gICAgaWYgKCFleGlzdGluZykge1xuICAgICAgbGlzdC5wdXNoKHsgcmVmZXJlbmNlczogWy4uLmNsYXNzaWZpZWQucmVmZXJlbmNlc10sIHRleHQ6IGNsYXNzaWZpZWQudGV4dCB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGV4aXN0aW5nLnJlZmVyZW5jZXMgPSBbLi4ubmV3IFNldChbLi4uZXhpc3RpbmcucmVmZXJlbmNlcywgLi4uY2xhc3NpZmllZC5yZWZlcmVuY2VzXSldO1xuICB9XG5cbiAgY29uc3QgYmxvY2tzID0gW3RvU3VtbWFyeUxpbmUoc2VjdGlvbkVudHJpZXMsIG1haW50ZW5hbmNlQ291bnQpXTtcbiAgZm9yIChjb25zdCBzZWN0aW9uIG9mIFNFQ1RJT05TKSB7XG4gICAgY29uc3QgbGlzdCA9IHNlY3Rpb25FbnRyaWVzLmdldChzZWN0aW9uKTtcbiAgICBpZiAoIWxpc3QpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGJsb2Nrcy5wdXNoKGAjIyMgJHtzZWN0aW9uLmhlYWRpbmd9YCwgbGlzdC5tYXAoKHNlY3Rpb25FbnRyeSkgPT4gYC0gJHt0b0VudHJ5TGluZShzZWN0aW9uRW50cnkpfWApLmpvaW4oJ1xcbicpKTtcbiAgfVxuXG4gIHJldHVybiBibG9ja3Muam9pbignXFxuXFxuJyk7XG59XG5cbmZ1bmN0aW9uIGNsYXNzaWZ5RW50cnkoZW50cnk6IENoYW5nZWxvZ0NvbW1pdEVudHJ5KTogQ2xhc3NpZmllZEVudHJ5IHwgbnVsbCB7XG4gIGNvbnN0IGdyb3VwcyA9IENPTlZFTlRJT05BTF9FTlRSWV9SRUdfRVhQLmV4ZWMoZW50cnkuZW50cnkpPy5ncm91cHM7XG4gIGlmICghZ3JvdXBzKSB7XG4gICAgcmV0dXJuIHsgcmVmZXJlbmNlczogZW50cnkucmVmZXJlbmNlcywgc2VjdGlvbjogZW50cnkuaGFzQnJlYWtpbmdGb290ZXIgPyBCUkVBS0lOR19TRUNUSU9OIDogT1RIRVJfU0VDVElPTiwgdGV4dDogZW50cnkuZW50cnkgfTtcbiAgfVxuXG4gIC8vIFRoZSByZWd1bGFyIGV4cHJlc3Npb24ncyBgdHlwZWAgYW5kIGBkZXNjcmlwdGlvbmAgZ3JvdXBzIGFyZSBub3Qgb3B0aW9uYWwsIHNvIGEgbWF0Y2ggYWx3YXlzIGZpbGxzIHRoZW0uXG4gIGNvbnN0IHR5cGUgPSBTdHJpbmcoZ3JvdXBzWyd0eXBlJ10pLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IGlzQnJlYWtpbmcgPSBncm91cHNbJ2JyZWFraW5nJ10gIT09IHVuZGVmaW5lZCB8fCBlbnRyeS5oYXNCcmVha2luZ0Zvb3RlcjtcbiAgY29uc3Qgc2VjdGlvbiA9IGlzQnJlYWtpbmcgPyBCUkVBS0lOR19TRUNUSU9OIDogdG9UeXBlU2VjdGlvbih0eXBlKTtcbiAgaWYgKCFzZWN0aW9uKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBkZXNjcmlwdGlvbiA9IFN0cmluZyhncm91cHNbJ2Rlc2NyaXB0aW9uJ10pO1xuICBjb25zdCBpc3N1ZSA9IElTU1VFX09OTFlfREVTQ1JJUFRJT05fUkVHX0VYUC5leGVjKGRlc2NyaXB0aW9uKT8uZ3JvdXBzPy5bJ2lzc3VlJ107XG4gIGNvbnN0IGlzc3VlVGl0bGUgPSBlbnRyeS5kZXRhaWxMaW5lc1swXTtcbiAgY29uc3QgaXNJc3N1ZVRpdGxlVXNlZCA9IGlzc3VlICE9PSB1bmRlZmluZWQgJiYgaXNzdWVUaXRsZSAhPT0gdW5kZWZpbmVkO1xuICBjb25zdCB0ZXh0ID0gaXNJc3N1ZVRpdGxlVXNlZCA/IGVzY2FwZUxpbmtCcmFja2V0cyhpc3N1ZVRpdGxlKSA6IGRlc2NyaXB0aW9uO1xuICBjb25zdCByZWZlcmVuY2VzID0gaXNJc3N1ZVRpdGxlVXNlZCA/IFtpc3N1ZSwgLi4uZW50cnkucmVmZXJlbmNlc10gOiBlbnRyeS5yZWZlcmVuY2VzO1xuICBjb25zdCBzY29wZSA9IGdyb3Vwc1snc2NvcGUnXTtcbiAgcmV0dXJuIHtcbiAgICByZWZlcmVuY2VzLFxuICAgIHNlY3Rpb24sXG4gICAgdGV4dDogc2NvcGUgPyBgKioke3Njb3BlfToqKiAke3RleHR9YCA6IHRleHRcbiAgfTtcbn1cblxuZnVuY3Rpb24gY291bnRQaHJhc2UoY291bnQ6IG51bWJlciwgc2VjdGlvbjogU2VjdGlvbkRlZmluaXRpb24pOiBzdHJpbmcge1xuICByZXR1cm4gYCR7U3RyaW5nKGNvdW50KX0gJHtjb3VudCA9PT0gMSA/IHNlY3Rpb24uc2luZ3VsYXIgOiBzZWN0aW9uLnBsdXJhbH1gO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVCcmFja2V0c0luUGxhaW5UZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0ZXh0LnJlcGxhY2VBbGwoQlJBQ0tFVF9SRUdfRVhQLCAobWF0Y2g6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGJhY2tzbGFzaGVzID0gbWF0Y2guc2xpY2UoMCwgLTEpO1xuICAgIC8vIEFuIG9kZCBydW4gb2YgYmFja3NsYXNoZXMgZXNjYXBlcyB0aGUgYnJhY2tldDsgYW4gZXZlbiBvbmUgaXMgZXNjYXBlZCBiYWNrc2xhc2hlcyBvbmx5LlxuICAgIGNvbnN0IGlzRXNjYXBlZCA9IGJhY2tzbGFzaGVzLnJlcGxhY2VBbGwoJ1xcXFxcXFxcJywgJycpID09PSAnXFxcXCc7XG4gICAgcmV0dXJuIGlzRXNjYXBlZCA/IG1hdGNoIDogYCR7YmFja3NsYXNoZXN9XFxcXCR7bWF0Y2guc2xpY2UoLTEpfWA7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBqb2luUGhyYXNlcyhwaHJhc2VzOiByZWFkb25seSBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGNvbnN0IGxhc3QgPSBwaHJhc2VzLnNsaWNlKC0xKS5qb2luKCcnKTtcbiAgcmV0dXJuIHBocmFzZXMubGVuZ3RoID09PSAxID8gbGFzdCA6IGAke3BocmFzZXMuc2xpY2UoMCwgLTEpLmpvaW4oJywgJyl9IGFuZCAke2xhc3R9YDtcbn1cblxuZnVuY3Rpb24gdG9FbnRyeUxpbmUoc2VjdGlvbkVudHJ5OiBTZWN0aW9uRW50cnkpOiBzdHJpbmcge1xuICByZXR1cm4gc2VjdGlvbkVudHJ5LnJlZmVyZW5jZXMubGVuZ3RoID09PSAwID8gc2VjdGlvbkVudHJ5LnRleHQgOiBgJHtzZWN0aW9uRW50cnkudGV4dH0gKCR7c2VjdGlvbkVudHJ5LnJlZmVyZW5jZXMuam9pbignLCAnKX0pYDtcbn1cblxuZnVuY3Rpb24gdG9TdW1tYXJ5TGluZShzZWN0aW9uRW50cmllczogUmVhZG9ubHlNYXA8U2VjdGlvbkRlZmluaXRpb24sIHJlYWRvbmx5IFNlY3Rpb25FbnRyeVtdPiwgbWFpbnRlbmFuY2VDb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgcGhyYXNlcyA9IFNFQ1RJT05TXG4gICAgLm1hcCgoc2VjdGlvbikgPT4gKHsgY291bnQ6IHNlY3Rpb25FbnRyaWVzLmdldChzZWN0aW9uKT8ubGVuZ3RoID8/IDAsIHNlY3Rpb24gfSkpXG4gICAgLmZpbHRlcigoeyBjb3VudCB9KSA9PiBjb3VudCA+IDApXG4gICAgLm1hcCgoeyBjb3VudCwgc2VjdGlvbiB9KSA9PiBjb3VudFBocmFzZShjb3VudCwgc2VjdGlvbikpO1xuICBjb25zdCBpc09uZSA9IG1haW50ZW5hbmNlQ291bnQgPT09IDE7XG4gIGNvbnN0IG1haW50ZW5hbmNlID0gbWFpbnRlbmFuY2VDb3VudCA9PT0gMFxuICAgID8gJydcbiAgICA6IGAgJHtTdHJpbmcobWFpbnRlbmFuY2VDb3VudCl9IG1haW50ZW5hbmNlICR7aXNPbmUgPyAnY29tbWl0JyA6ICdjb21taXRzJ30gKHRlc3RzLCBidWlsZCwgQ0ksIHJlZmFjdG9yaW5nLCBkZXBlbmRlbmNpZXMpICR7aXNPbmUgPyAnaXMnIDogJ2FyZSd9IG5vdCBsaXN0ZWQuYDtcblxuICBpZiAocGhyYXNlcy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGBUaGlzIHJlbGVhc2UgaGFzICR7am9pblBocmFzZXMocGhyYXNlcyl9LiR7bWFpbnRlbmFuY2V9YDtcbiAgfVxuXG4gIHJldHVybiBtYWludGVuYW5jZUNvdW50ID09PSAwID8gJ1RoaXMgcmVsZWFzZSBoYXMgbm8gY2hhbmdlcy4nIDogYFRoaXMgcmVsZWFzZSBoYXMgbWFpbnRlbmFuY2UgY2hhbmdlcyBvbmx5LiR7bWFpbnRlbmFuY2V9YDtcbn1cblxuZnVuY3Rpb24gdG9UeXBlU2VjdGlvbih0eXBlOiBzdHJpbmcpOiBudWxsIHwgU2VjdGlvbkRlZmluaXRpb24ge1xuICBjb25zdCBzZWN0aW9uID0gU0VDVElPTlNfQllfVFlQRS5nZXQodHlwZSk7XG4gIGlmIChzZWN0aW9uKSB7XG4gICAgcmV0dXJuIHNlY3Rpb247XG4gIH1cblxuICByZXR1cm4gTUFJTlRFTkFOQ0VfQ09NTUlUX1RZUEVTLmhhcyh0eXBlKSA/IG51bGwgOiBPVEhFUl9TRUNUSU9OO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7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
|
|
@@ -50,6 +50,17 @@ export interface ChangelogCommitEntry {
|
|
|
50
50
|
* listing them. A commit of one of these types that is marked breaking is still listed, under breaking changes.
|
|
51
51
|
*/
|
|
52
52
|
export declare const MAINTENANCE_COMMIT_TYPES: ReadonlySet<string>;
|
|
53
|
+
/**
|
|
54
|
+
* Escapes the square brackets of an issue title outside its code spans, so a title such as `[BUG] Links break` is
|
|
55
|
+
* published as text rather than read as a reference link with no definition (markdownlint's MD052).
|
|
56
|
+
*
|
|
57
|
+
* An issue title is written by whoever opened the issue, and no commit hook ever checks it, so it is the one part of a
|
|
58
|
+
* generated entry that can carry Markdown the author never meant. A bracket already escaped is left as it is.
|
|
59
|
+
*
|
|
60
|
+
* @param text - The issue title.
|
|
61
|
+
* @returns The title with every unescaped `[` and `]` outside a code span preceded by a backslash.
|
|
62
|
+
*/
|
|
63
|
+
export declare function escapeLinkBrackets(text: string): string;
|
|
53
64
|
/**
|
|
54
65
|
* Renders the body of a new changelog section in the {@link ChangelogStyle} `grouped` layout.
|
|
55
66
|
*
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
var __create = Object.create;
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
13
|
+
var __export = (target, all) => {
|
|
14
|
+
for (var name in all)
|
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
16
|
+
};
|
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
19
|
+
for (let key of __getOwnPropNames(from))
|
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
21
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
26
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
27
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
28
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
29
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
30
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
31
|
+
mod
|
|
32
|
+
));
|
|
33
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
34
|
+
var changelog_rewrite_cli_exports = {};
|
|
35
|
+
__export(changelog_rewrite_cli_exports, {
|
|
36
|
+
createNodeRewriteChangelogDependencies: () => createNodeRewriteChangelogDependencies,
|
|
37
|
+
parseRewriteChangelogArguments: () => parseRewriteChangelogArguments,
|
|
38
|
+
runRewriteChangelogCli: () => runRewriteChangelogCli
|
|
39
|
+
});
|
|
40
|
+
module.exports = __toCommonJS(changelog_rewrite_cli_exports);
|
|
41
|
+
var import_node_child_process = require('node:child_process');
|
|
42
|
+
var import_node_fs = require('node:fs');
|
|
43
|
+
var import_node_process = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('node:process')), 1);
|
|
44
|
+
var import_changelog_rewrite = require('./changelog-rewrite.cjs');
|
|
45
|
+
const DEFAULT_CHANGELOG_PATH = "CHANGELOG.md";
|
|
46
|
+
const KNOWN_ARGUMENTS = ["--write", "--releases", "--overwrite-edited-releases", "--path="];
|
|
47
|
+
function createNodeRewriteChangelogDependencies() {
|
|
48
|
+
return {
|
|
49
|
+
exec(file, arguments_, input) {
|
|
50
|
+
return toResult((0, import_node_child_process.spawnSync)(file, arguments_, { encoding: "utf-8", input, maxBuffer: Number.MAX_SAFE_INTEGER }));
|
|
51
|
+
},
|
|
52
|
+
log(text) {
|
|
53
|
+
import_node_process.default.stdout.write(`${text}
|
|
54
|
+
`);
|
|
55
|
+
},
|
|
56
|
+
readFile(path) {
|
|
57
|
+
return (0, import_node_fs.readFileSync)(path, "utf-8");
|
|
58
|
+
},
|
|
59
|
+
writeFile(path, content) {
|
|
60
|
+
(0, import_node_fs.writeFileSync)(path, content, "utf-8");
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function parseRewriteChangelogArguments(cliArguments) {
|
|
65
|
+
const unknown = cliArguments.filter((argument) => KNOWN_ARGUMENTS.every((known) => !(known.endsWith("=") ? argument.startsWith(known) : argument === known)));
|
|
66
|
+
if (unknown.length > 0) {
|
|
67
|
+
throw new Error(
|
|
68
|
+
`rewrite-changelog: unknown argument ${unknown.map((argument) => `"${argument}"`).join(", ")}. Known: ${KNOWN_ARGUMENTS.join(", ")}.`
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
const path = cliArguments.find((argument) => argument.startsWith("--path="))?.slice("--path=".length);
|
|
72
|
+
return {
|
|
73
|
+
changelogPath: path === void 0 || path === "" ? DEFAULT_CHANGELOG_PATH : path,
|
|
74
|
+
shouldOverwriteEditedReleases: cliArguments.includes("--overwrite-edited-releases"),
|
|
75
|
+
shouldRewriteReleases: cliArguments.includes("--releases"),
|
|
76
|
+
shouldWrite: cliArguments.includes("--write")
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
async function runRewriteChangelogCli(cliArguments, dependencies = createNodeRewriteChangelogDependencies()) {
|
|
80
|
+
try {
|
|
81
|
+
return await runRewriteChangelog(parseRewriteChangelogArguments(cliArguments), dependencies);
|
|
82
|
+
} catch (error) {
|
|
83
|
+
import_node_process.default.stderr.write(`${error instanceof Error ? error.message : String(error)}
|
|
84
|
+
`);
|
|
85
|
+
return 1;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function execOrThrow(dependencies, file, arguments_) {
|
|
89
|
+
const result = dependencies.exec(file, arguments_);
|
|
90
|
+
if (result.exitCode !== 0) {
|
|
91
|
+
throw new Error(`rewrite-changelog: ${file} ${arguments_.join(" ")} failed: ${result.stderr.trim()}`);
|
|
92
|
+
}
|
|
93
|
+
return result.stdout;
|
|
94
|
+
}
|
|
95
|
+
function readReleaseNotes(dependencies) {
|
|
96
|
+
const output = execOrThrow(dependencies, "gh", [
|
|
97
|
+
"api",
|
|
98
|
+
"--paginate",
|
|
99
|
+
"repos/{owner}/{repo}/releases?per_page=100",
|
|
100
|
+
"--jq",
|
|
101
|
+
'.[] | {tag: .tag_name, body: (.body // "")}'
|
|
102
|
+
]);
|
|
103
|
+
const notesByTag = /* @__PURE__ */ new Map();
|
|
104
|
+
for (const line of output.split(/\r?\n/)) {
|
|
105
|
+
if (line.trim() === "") {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const release = JSON.parse(line);
|
|
109
|
+
notesByTag.set(release.tag, release.body);
|
|
110
|
+
}
|
|
111
|
+
return notesByTag;
|
|
112
|
+
}
|
|
113
|
+
function rewriteRelease(section, releaseNotes, options, dependencies) {
|
|
114
|
+
if (releaseNotes === void 0) {
|
|
115
|
+
dependencies.log(`release ${section.tag}: left alone, the repository has no GitHub release for it`);
|
|
116
|
+
return "ok";
|
|
117
|
+
}
|
|
118
|
+
const notes = (0, import_changelog_rewrite.rewriteReleaseNotes)(releaseNotes, section, options.shouldOverwriteEditedReleases);
|
|
119
|
+
if (notes === null) {
|
|
120
|
+
dependencies.log(`release ${section.tag}: left alone, its notes are not the changelog section as it was (--overwrite-edited-releases rewrites it)`);
|
|
121
|
+
return "ok";
|
|
122
|
+
}
|
|
123
|
+
if (!options.shouldWrite) {
|
|
124
|
+
dependencies.log(`release ${section.tag}: would be rewritten`);
|
|
125
|
+
return "ok";
|
|
126
|
+
}
|
|
127
|
+
const edit = dependencies.exec("gh", ["release", "edit", section.tag, "--notes-file", "-"], notes);
|
|
128
|
+
if (edit.exitCode !== 0) {
|
|
129
|
+
dependencies.log(`release ${section.tag}: the edit FAILED: ${edit.stderr.trim()}`);
|
|
130
|
+
return "failed";
|
|
131
|
+
}
|
|
132
|
+
dependencies.log(`release ${section.tag}: rewritten`);
|
|
133
|
+
return "ok";
|
|
134
|
+
}
|
|
135
|
+
async function runRewriteChangelog(options, dependencies) {
|
|
136
|
+
const changelog = dependencies.readFile(options.changelogPath);
|
|
137
|
+
const tags = execOrThrow(dependencies, "git", ["tag", "--list"]).split(/\r?\n/).filter(Boolean);
|
|
138
|
+
const result = await (0, import_changelog_rewrite.rewriteChangelog)(changelog, {
|
|
139
|
+
getCommitMessages: (fromTag, toTag) => Promise.resolve(
|
|
140
|
+
execOrThrow(dependencies, "git", ["log", "--format=%B", "--first-parent", "-z", fromTag === void 0 ? toTag : `${fromTag}..${toTag}`]).split("\0").filter((message) => message.trim() !== "")
|
|
141
|
+
),
|
|
142
|
+
tags
|
|
143
|
+
});
|
|
144
|
+
for (const section of result.rewritten) {
|
|
145
|
+
const tagNote = section.tag === void 0 ? ", no tag, so grouped from the bullets alone" : "";
|
|
146
|
+
dependencies.log(`${section.version}: rewritten, ${String(section.matchedCount)} of ${String(section.oldBody.split("\n").length)} bullets matched to commits${tagNote}`);
|
|
147
|
+
}
|
|
148
|
+
for (const section of result.kept) {
|
|
149
|
+
dependencies.log(`${section.version}: kept, ${section.reason}`);
|
|
150
|
+
}
|
|
151
|
+
if (options.shouldWrite) {
|
|
152
|
+
dependencies.writeFile(options.changelogPath, result.content);
|
|
153
|
+
dependencies.log(`${options.changelogPath}: written`);
|
|
154
|
+
} else {
|
|
155
|
+
dependencies.log(`${options.changelogPath}: dry run, nothing written (pass --write to apply)`);
|
|
156
|
+
}
|
|
157
|
+
let isSuccess = true;
|
|
158
|
+
if (options.shouldRewriteReleases) {
|
|
159
|
+
const notesByTag = readReleaseNotes(dependencies);
|
|
160
|
+
for (const section of result.rewritten) {
|
|
161
|
+
if (section.tag !== void 0) {
|
|
162
|
+
isSuccess = rewriteRelease({ ...section, tag: section.tag }, notesByTag.get(section.tag), options, dependencies) === "ok" && isSuccess;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return isSuccess ? 0 : 1;
|
|
167
|
+
}
|
|
168
|
+
function toResult(result) {
|
|
169
|
+
return result.error ? { exitCode: 1, stderr: result.error.message, stdout: "" } : { exitCode: result.status ?? 1, stderr: result.stderr, stdout: result.stdout };
|
|
170
|
+
}
|
|
171
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
172
|
+
0 && (module.exports = {
|
|
173
|
+
createNodeRewriteChangelogDependencies,
|
|
174
|
+
parseRewriteChangelogArguments,
|
|
175
|
+
runRewriteChangelogCli
|
|
176
|
+
});
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NoYW5nZWxvZy1yZXdyaXRlLWNsaS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBgcmV3cml0ZS1jaGFuZ2Vsb2dgIGNvbW1hbmQ6IHJld3JpdGVzIGEgcHJvamVjdCdzIHB1Ymxpc2hlZCBgQ0hBTkdFTE9HLm1kYCBzZWN0aW9ucywgYW5kIG9wdGlvbmFsbHkgaXRzIEdpdEh1YlxuICogcmVsZWFzZSBub3RlcywgaW50byB0aGUgYGdyb3VwZWRgIGxheW91dCwgYnkgd2lyaW5nIHtAbGluayByZXdyaXRlQ2hhbmdlbG9nfSB0byB0aGUgcmVhbCBnaXQsIGBnaGAgYW5kIGZpbGUgc3lzdGVtLlxuICpcbiAqIEl0IGNoYW5nZXMgbm90aGluZyB1bmxlc3MgYC0td3JpdGVgIGlzIHBhc3NlZCwgc28gdGhlIGZpcnN0IHJ1biBpcyBhbHdheXMgYSByZXBvcnQgb2Ygd2hhdCBpdCB3b3VsZCBkby5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNwYXduU3luY1JldHVybnMgfSBmcm9tICdub2RlOmNoaWxkX3Byb2Nlc3MnO1xuXG5pbXBvcnQgeyBzcGF3blN5bmMgfSBmcm9tICdub2RlOmNoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHtcbiAgcmVhZEZpbGVTeW5jLFxuICB3cml0ZUZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcblxuaW1wb3J0IHR5cGUgeyBSZXdyaXR0ZW5DaGFuZ2Vsb2dTZWN0aW9uIH0gZnJvbSAnLi9jaGFuZ2Vsb2ctcmV3cml0ZS50cyc7XG5cbmltcG9ydCB7XG4gIHJld3JpdGVDaGFuZ2Vsb2csXG4gIHJld3JpdGVSZWxlYXNlTm90ZXNcbn0gZnJvbSAnLi9jaGFuZ2Vsb2ctcmV3cml0ZS50cyc7XG5cbi8qKlxuICogVGhlIHJlc3VsdCBvZiBvbmUgY29tbWFuZCB0aGUgYHJld3JpdGUtY2hhbmdlbG9nYCBjb21tYW5kIHJ1bnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV3cml0ZUNoYW5nZWxvZ0NvbW1hbmRSZXN1bHQge1xuICAvKipcbiAgICogVGhlIGV4aXQgY29kZS5cbiAgICovXG4gIHJlYWRvbmx5IGV4aXRDb2RlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFuZGFyZCBlcnJvci5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZGVycjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhbmRhcmQgb3V0cHV0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3Rkb3V0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIG91dHNpZGUgd29ybGQgb2YgdGhlIGByZXdyaXRlLWNoYW5nZWxvZ2AgY29tbWFuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXdyaXRlQ2hhbmdlbG9nRGVwZW5kZW5jaWVzIHtcbiAgLyoqXG4gICAqIFJ1bnMgYSBjb21tYW5kIGluIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQHBhcmFtIGZpbGUgLSBUaGUgZXhlY3V0YWJsZS5cbiAgICogQHBhcmFtIGFyZ3VtZW50c18gLSBJdHMgYXJndW1lbnRzLlxuICAgKiBAcGFyYW0gaW5wdXQgLSBXaGF0IHRvIHdyaXRlIHRvIGl0cyBzdGFuZGFyZCBpbnB1dC5cbiAgICogQHJldHVybnMgVGhlIHJlc3VsdC5cbiAgICovXG4gIHJlYWRvbmx5IGV4ZWM6IChmaWxlOiBzdHJpbmcsIGFyZ3VtZW50c186IHJlYWRvbmx5IHN0cmluZ1tdLCBpbnB1dD86IHN0cmluZykgPT4gUmV3cml0ZUNoYW5nZWxvZ0NvbW1hbmRSZXN1bHQ7XG5cbiAgLyoqXG4gICAqIFdyaXRlcyBvbmUgbGluZSBvZiB0aGUgcmVwb3J0LlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAtIFRoZSBsaW5lLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nOiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWFkcyBhIHRleHQgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aC5cbiAgICogQHJldHVybnMgVGhlIGNvbnRlbnQuXG4gICAqL1xuICByZWFkb25seSByZWFkRmlsZTogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXcml0ZXMgYSB0ZXh0IGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGguXG4gICAqIEBwYXJhbSBjb250ZW50IC0gVGhlIGNvbnRlbnQuXG4gICAqL1xuICByZWFkb25seSB3cml0ZUZpbGU6IChwYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyBvZiB0aGUgYHJld3JpdGUtY2hhbmdlbG9nYCBjb21tYW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJld3JpdGVDaGFuZ2Vsb2dPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBgQ0hBTkdFTE9HLm1kYCB0byByZXdyaXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlbG9nUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgR2l0SHViIHJlbGVhc2Ugd2hvc2Ugbm90ZXMgYXJlIG5vIGxvbmdlciBpdHMgY2hhbmdlbG9nIHNlY3Rpb24gYXMgaXQgd2FzIGlzIHJld3JpdHRlbiB0b28uXG4gICAqL1xuICByZWFkb25seSBzaG91bGRPdmVyd3JpdGVFZGl0ZWRSZWxlYXNlczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgR2l0SHViIHJlbGVhc2Ugb2YgZWFjaCByZXdyaXR0ZW4gc2VjdGlvbiBpcyByZXdyaXR0ZW4gdG9vLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUmV3cml0ZVJlbGVhc2VzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFueXRoaW5nIGlzIGNoYW5nZWQuIFdpdGhvdXQgaXQgdGhlIGNvbW1hbmQgb25seSByZXBvcnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkV3JpdGU6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBSZWxlYXNlUmVjb3JkIHtcbiAgcmVhZG9ubHkgYm9keTogc3RyaW5nO1xuICByZWFkb25seSB0YWc6IHN0cmluZztcbn1cblxudHlwZSBSZWxlYXNlUmV3cml0ZU91dGNvbWUgPSAnZmFpbGVkJyB8ICdvayc7XG5cbmludGVyZmFjZSBUYWdnZWRSZXdyaXR0ZW5TZWN0aW9uIGV4dGVuZHMgUmV3cml0dGVuQ2hhbmdlbG9nU2VjdGlvbiB7XG4gIHJlYWRvbmx5IHRhZzogc3RyaW5nO1xufVxuXG5jb25zdCBERUZBVUxUX0NIQU5HRUxPR19QQVRIID0gJ0NIQU5HRUxPRy5tZCc7XG5cbmNvbnN0IEtOT1dOX0FSR1VNRU5UUyA9IFsnLS13cml0ZScsICctLXJlbGVhc2VzJywgJy0tb3ZlcndyaXRlLWVkaXRlZC1yZWxlYXNlcycsICctLXBhdGg9J107XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgY29tbWFuZCdzIG91dHNpZGUgd29ybGQ6IGNvbW1hbmRzIHJ1biB3aXRoIGBzcGF3blN5bmNgLCBmaWxlcyByZWFkIGFuZCB3cml0dGVuIHdpdGggYG5vZGU6ZnNgLCB0aGVcbiAqIHJlcG9ydCB3cml0dGVuIHRvIHN0ZG91dC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZGVwZW5kZW5jaWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTm9kZVJld3JpdGVDaGFuZ2Vsb2dEZXBlbmRlbmNpZXMoKTogUmV3cml0ZUNoYW5nZWxvZ0RlcGVuZGVuY2llcyB7XG4gIHJldHVybiB7XG4gICAgZXhlYyhmaWxlLCBhcmd1bWVudHNfLCBpbnB1dCk6IFJld3JpdGVDaGFuZ2Vsb2dDb21tYW5kUmVzdWx0IHtcbiAgICAgIHJldHVybiB0b1Jlc3VsdChzcGF3blN5bmMoZmlsZSwgYXJndW1lbnRzXywgeyBlbmNvZGluZzogJ3V0Zi04JywgaW5wdXQsIG1heEJ1ZmZlcjogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfSkpO1xuICAgIH0sXG4gICAgbG9nKHRleHQpOiB2b2lkIHtcbiAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGAke3RleHR9XFxuYCk7XG4gICAgfSxcbiAgICByZWFkRmlsZShwYXRoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiByZWFkRmlsZVN5bmMocGF0aCwgJ3V0Zi04Jyk7XG4gICAgfSxcbiAgICB3cml0ZUZpbGUocGF0aCwgY29udGVudCk6IHZvaWQge1xuICAgICAgd3JpdGVGaWxlU3luYyhwYXRoLCBjb250ZW50LCAndXRmLTgnKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBjb21tYW5kJ3Mgb3B0aW9ucyBmcm9tIHRoZSBjb21tYW5kIGxpbmU6IGAtLXdyaXRlYCBhcHBsaWVzIHRoZSBjaGFuZ2VzLCBgLS1yZWxlYXNlc2AgYWRkcyB0aGUgR2l0SHViXG4gKiByZWxlYXNlcyB0byB0aGVtLCBgLS1vdmVyd3JpdGUtZWRpdGVkLXJlbGVhc2VzYCBpbmNsdWRlcyB0aGUgcmVsZWFzZXMgd2hvc2Ugbm90ZXMgd2VyZSBlZGl0ZWQgYWZ0ZXIgcHVibGlzaGluZywgYW5kXG4gKiBgLS1wYXRoPTxmaWxlPmAgbmFtZXMgdGhlIGNoYW5nZWxvZyAoYENIQU5HRUxPRy5tZGAgYnkgZGVmYXVsdCkuXG4gKlxuICogQHBhcmFtIGNsaUFyZ3VtZW50cyAtIFRoZSBhcmd1bWVudHMgYWZ0ZXIgdGhlIGNvbW1hbmQgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZXdyaXRlQ2hhbmdlbG9nQXJndW1lbnRzKGNsaUFyZ3VtZW50czogcmVhZG9ubHkgc3RyaW5nW10pOiBSZXdyaXRlQ2hhbmdlbG9nT3B0aW9ucyB7XG4gIGNvbnN0IHVua25vd24gPSBjbGlBcmd1bWVudHMuZmlsdGVyKChhcmd1bWVudCkgPT4gS05PV05fQVJHVU1FTlRTLmV2ZXJ5KChrbm93bikgPT4gIShrbm93bi5lbmRzV2l0aCgnPScpID8gYXJndW1lbnQuc3RhcnRzV2l0aChrbm93bikgOiBhcmd1bWVudCA9PT0ga25vd24pKSk7XG4gIGlmICh1bmtub3duLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcmV3cml0ZS1jaGFuZ2Vsb2c6IHVua25vd24gYXJndW1lbnQgJHt1bmtub3duLm1hcCgoYXJndW1lbnQpID0+IGBcIiR7YXJndW1lbnR9XCJgKS5qb2luKCcsICcpfS4gS25vd246ICR7S05PV05fQVJHVU1FTlRTLmpvaW4oJywgJyl9LmBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgcGF0aCA9IGNsaUFyZ3VtZW50cy5maW5kKChhcmd1bWVudCkgPT4gYXJndW1lbnQuc3RhcnRzV2l0aCgnLS1wYXRoPScpKT8uc2xpY2UoJy0tcGF0aD0nLmxlbmd0aCk7XG4gIHJldHVybiB7XG4gICAgY2hhbmdlbG9nUGF0aDogcGF0aCA9PT0gdW5kZWZpbmVkIHx8IHBhdGggPT09ICcnID8gREVGQVVMVF9DSEFOR0VMT0dfUEFUSCA6IHBhdGgsXG4gICAgc2hvdWxkT3ZlcndyaXRlRWRpdGVkUmVsZWFzZXM6IGNsaUFyZ3VtZW50cy5pbmNsdWRlcygnLS1vdmVyd3JpdGUtZWRpdGVkLXJlbGVhc2VzJyksXG4gICAgc2hvdWxkUmV3cml0ZVJlbGVhc2VzOiBjbGlBcmd1bWVudHMuaW5jbHVkZXMoJy0tcmVsZWFzZXMnKSxcbiAgICBzaG91bGRXcml0ZTogY2xpQXJndW1lbnRzLmluY2x1ZGVzKCctLXdyaXRlJylcbiAgfTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSBgcmV3cml0ZS1jaGFuZ2Vsb2dgIGNvbW1hbmQgaW4gdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCB3aGljaCBpcyB0aGUgcmVwb3NpdG9yeSByb290LlxuICpcbiAqIEBwYXJhbSBjbGlBcmd1bWVudHMgLSBUaGUgYXJndW1lbnRzIGFmdGVyIHRoZSBjb21tYW5kIG5hbWUuXG4gKiBAcGFyYW0gZGVwZW5kZW5jaWVzIC0gVGhlIG91dHNpZGUgd29ybGQuIFRoZSByZWFsIG9uZSB3aGVuIG9taXR0ZWQuXG4gKiBAcmV0dXJucyBUaGUgZXhpdCBjb2RlOiBgMWAgd2hlbiB0aGUgYXJndW1lbnRzIGFyZSB3cm9uZywgZ2l0IGNhbm5vdCBiZSByZWFkIG9yIGEgcmVsZWFzZSBlZGl0IGZhaWxlZCwgYDBgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1blJld3JpdGVDaGFuZ2Vsb2dDbGkoXG4gIGNsaUFyZ3VtZW50czogcmVhZG9ubHkgc3RyaW5nW10sXG4gIGRlcGVuZGVuY2llczogUmV3cml0ZUNoYW5nZWxvZ0RlcGVuZGVuY2llcyA9IGNyZWF0ZU5vZGVSZXdyaXRlQ2hhbmdlbG9nRGVwZW5kZW5jaWVzKClcbik6IFByb21pc2U8bnVtYmVyPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHJ1blJld3JpdGVDaGFuZ2Vsb2cocGFyc2VSZXdyaXRlQ2hhbmdlbG9nQXJndW1lbnRzKGNsaUFyZ3VtZW50cyksIGRlcGVuZGVuY2llcyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gQSB3cm9uZyBhcmd1bWVudCBvciBhbiB1bnJlYWRhYmxlIHJlcG9zaXRvcnkgaXMgdGhlIHVzZXIncyB0byBmaXgsIHNvIGl0IGdldHMgaXRzIG1lc3NhZ2UgcmF0aGVyIHRoYW4gYSBzdGFjayB0cmFjZS5cbiAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9XFxuYCk7XG4gICAgcmV0dXJuIDE7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXhlY09yVGhyb3coZGVwZW5kZW5jaWVzOiBSZXdyaXRlQ2hhbmdlbG9nRGVwZW5kZW5jaWVzLCBmaWxlOiBzdHJpbmcsIGFyZ3VtZW50c186IHJlYWRvbmx5IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgY29uc3QgcmVzdWx0ID0gZGVwZW5kZW5jaWVzLmV4ZWMoZmlsZSwgYXJndW1lbnRzXyk7XG4gIGlmIChyZXN1bHQuZXhpdENvZGUgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHJld3JpdGUtY2hhbmdlbG9nOiAke2ZpbGV9ICR7YXJndW1lbnRzXy5qb2luKCcgJyl9IGZhaWxlZDogJHtyZXN1bHQuc3RkZXJyLnRyaW0oKX1gKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQuc3Rkb3V0O1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBub3RlcyBvZiBldmVyeSBHaXRIdWIgcmVsZWFzZSBvZiB0aGUgcmVwb3NpdG9yeSBpbiBvbmUgcGFnaW5hdGVkIGNhbGwsIHNpbmNlIG9uZSBgZ2ggcmVsZWFzZSB2aWV3YCBwZXJcbiAqIHJlbGVhc2UgdGFrZXMgbWludXRlcyBvbiBhIHByb2plY3Qgd2l0aCBodW5kcmVkcyBvZiB0aGVtLlxuICpcbiAqIEBwYXJhbSBkZXBlbmRlbmNpZXMgLSBUaGUgb3V0c2lkZSB3b3JsZC5cbiAqIEByZXR1cm5zIFRoZSBub3RlcywgYnkgdGFnLlxuICovXG5mdW5jdGlvbiByZWFkUmVsZWFzZU5vdGVzKGRlcGVuZGVuY2llczogUmV3cml0ZUNoYW5nZWxvZ0RlcGVuZGVuY2llcyk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCBvdXRwdXQgPSBleGVjT3JUaHJvdyhkZXBlbmRlbmNpZXMsICdnaCcsIFtcbiAgICAnYXBpJyxcbiAgICAnLS1wYWdpbmF0ZScsXG4gICAgJ3JlcG9zL3tvd25lcn0ve3JlcG99L3JlbGVhc2VzP3Blcl9wYWdlPTEwMCcsXG4gICAgJy0tanEnLFxuICAgICcuW10gfCB7dGFnOiAudGFnX25hbWUsIGJvZHk6ICguYm9keSAvLyBcIlwiKX0nXG4gIF0pO1xuICBjb25zdCBub3Rlc0J5VGFnID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIG91dHB1dC5zcGxpdCgvXFxyP1xcbi8pKSB7XG4gICAgaWYgKGxpbmUudHJpbSgpID09PSAnJykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsZWFzZSA9IEpTT04ucGFyc2UobGluZSkgYXMgUmVsZWFzZVJlY29yZDtcbiAgICBub3Rlc0J5VGFnLnNldChyZWxlYXNlLnRhZywgcmVsZWFzZS5ib2R5KTtcbiAgfVxuXG4gIHJldHVybiBub3Rlc0J5VGFnO1xufVxuXG5mdW5jdGlvbiByZXdyaXRlUmVsZWFzZShcbiAgc2VjdGlvbjogVGFnZ2VkUmV3cml0dGVuU2VjdGlvbixcbiAgcmVsZWFzZU5vdGVzOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM6IFJld3JpdGVDaGFuZ2Vsb2dPcHRpb25zLFxuICBkZXBlbmRlbmNpZXM6IFJld3JpdGVDaGFuZ2Vsb2dEZXBlbmRlbmNpZXNcbik6IFJlbGVhc2VSZXdyaXRlT3V0Y29tZSB7XG4gIGlmIChyZWxlYXNlTm90ZXMgPT09IHVuZGVmaW5lZCkge1xuICAgIGRlcGVuZGVuY2llcy5sb2coYHJlbGVhc2UgJHtzZWN0aW9uLnRhZ306IGxlZnQgYWxvbmUsIHRoZSByZXBvc2l0b3J5IGhhcyBubyBHaXRIdWIgcmVsZWFzZSBmb3IgaXRgKTtcbiAgICByZXR1cm4gJ29rJztcbiAgfVxuXG4gIGNvbnN0IG5vdGVzID0gcmV3cml0ZVJlbGVhc2VOb3RlcyhyZWxlYXNlTm90ZXMsIHNlY3Rpb24sIG9wdGlvbnMuc2hvdWxkT3ZlcndyaXRlRWRpdGVkUmVsZWFzZXMpO1xuICBpZiAobm90ZXMgPT09IG51bGwpIHtcbiAgICBkZXBlbmRlbmNpZXMubG9nKGByZWxlYXNlICR7c2VjdGlvbi50YWd9OiBsZWZ0IGFsb25lLCBpdHMgbm90ZXMgYXJlIG5vdCB0aGUgY2hhbmdlbG9nIHNlY3Rpb24gYXMgaXQgd2FzICgtLW92ZXJ3cml0ZS1lZGl0ZWQtcmVsZWFzZXMgcmV3cml0ZXMgaXQpYCk7XG4gICAgcmV0dXJuICdvayc7XG4gIH1cblxuICBpZiAoIW9wdGlvbnMuc2hvdWxkV3JpdGUpIHtcbiAgICBkZXBlbmRlbmNpZXMubG9nKGByZWxlYXNlICR7c2VjdGlvbi50YWd9OiB3b3VsZCBiZSByZXdyaXR0ZW5gKTtcbiAgICByZXR1cm4gJ29rJztcbiAgfVxuXG4gIGNvbnN0IGVkaXQgPSBkZXBlbmRlbmNpZXMuZXhlYygnZ2gnLCBbJ3JlbGVhc2UnLCAnZWRpdCcsIHNlY3Rpb24udGFnLCAnLS1ub3Rlcy1maWxlJywgJy0nXSwgbm90ZXMpO1xuICBpZiAoZWRpdC5leGl0Q29kZSAhPT0gMCkge1xuICAgIGRlcGVuZGVuY2llcy5sb2coYHJlbGVhc2UgJHtzZWN0aW9uLnRhZ306IHRoZSBlZGl0IEZBSUxFRDogJHtlZGl0LnN0ZGVyci50cmltKCl9YCk7XG4gICAgcmV0dXJuICdmYWlsZWQnO1xuICB9XG5cbiAgZGVwZW5kZW5jaWVzLmxvZyhgcmVsZWFzZSAke3NlY3Rpb24udGFnfTogcmV3cml0dGVuYCk7XG4gIHJldHVybiAnb2snO1xufVxuXG5hc3luYyBmdW5jdGlvbiBydW5SZXdyaXRlQ2hhbmdlbG9nKG9wdGlvbnM6IFJld3JpdGVDaGFuZ2Vsb2dPcHRpb25zLCBkZXBlbmRlbmNpZXM6IFJld3JpdGVDaGFuZ2Vsb2dEZXBlbmRlbmNpZXMpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBjaGFuZ2Vsb2cgPSBkZXBlbmRlbmNpZXMucmVhZEZpbGUob3B0aW9ucy5jaGFuZ2Vsb2dQYXRoKTtcbiAgY29uc3QgdGFncyA9IGV4ZWNPclRocm93KGRlcGVuZGVuY2llcywgJ2dpdCcsIFsndGFnJywgJy0tbGlzdCddKS5zcGxpdCgvXFxyP1xcbi8pLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmV3cml0ZUNoYW5nZWxvZyhjaGFuZ2Vsb2csIHtcbiAgICBnZXRDb21taXRNZXNzYWdlczogKGZyb21UYWcsIHRvVGFnKSA9PlxuICAgICAgUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICBleGVjT3JUaHJvdyhkZXBlbmRlbmNpZXMsICdnaXQnLCBbJ2xvZycsICctLWZvcm1hdD0lQicsICctLWZpcnN0LXBhcmVudCcsICcteicsIGZyb21UYWcgPT09IHVuZGVmaW5lZCA/IHRvVGFnIDogYCR7ZnJvbVRhZ30uLiR7dG9UYWd9YF0pXG4gICAgICAgICAgLnNwbGl0KCdcXDAnKVxuICAgICAgICAgIC5maWx0ZXIoKG1lc3NhZ2UpID0+IG1lc3NhZ2UudHJpbSgpICE9PSAnJylcbiAgICAgICksXG4gICAgdGFnc1xuICB9KTtcblxuICBmb3IgKGNvbnN0IHNlY3Rpb24gb2YgcmVzdWx0LnJld3JpdHRlbikge1xuICAgIGNvbnN0IHRhZ05vdGUgPSBzZWN0aW9uLnRhZyA9PT0gdW5kZWZpbmVkID8gJywgbm8gdGFnLCBzbyBncm91cGVkIGZyb20gdGhlIGJ1bGxldHMgYWxvbmUnIDogJyc7XG4gICAgZGVwZW5kZW5jaWVzLmxvZyhgJHtzZWN0aW9uLnZlcnNpb259OiByZXdyaXR0ZW4sICR7U3RyaW5nKHNlY3Rpb24ubWF0Y2hlZENvdW50KX0gb2YgJHtTdHJpbmcoc2VjdGlvbi5vbGRCb2R5LnNwbGl0KCdcXG4nKS5sZW5ndGgpfSBidWxsZXRzIG1hdGNoZWQgdG8gY29tbWl0cyR7dGFnTm90ZX1gKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qgc2VjdGlvbiBvZiByZXN1bHQua2VwdCkge1xuICAgIGRlcGVuZGVuY2llcy5sb2coYCR7c2VjdGlvbi52ZXJzaW9ufToga2VwdCwgJHtzZWN0aW9uLnJlYXNvbn1gKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnNob3VsZFdyaXRlKSB7XG4gICAgZGVwZW5kZW5jaWVzLndyaXRlRmlsZShvcHRpb25zLmNoYW5nZWxvZ1BhdGgsIHJlc3VsdC5jb250ZW50KTtcbiAgICBkZXBlbmRlbmNpZXMubG9nKGAke29wdGlvbnMuY2hhbmdlbG9nUGF0aH06IHdyaXR0ZW5gKTtcbiAgfSBlbHNlIHtcbiAgICBkZXBlbmRlbmNpZXMubG9nKGAke29wdGlvbnMuY2hhbmdlbG9nUGF0aH06IGRyeSBydW4sIG5vdGhpbmcgd3JpdHRlbiAocGFzcyAtLXdyaXRlIHRvIGFwcGx5KWApO1xuICB9XG5cbiAgbGV0IGlzU3VjY2VzcyA9IHRydWU7XG4gIGlmIChvcHRpb25zLnNob3VsZFJld3JpdGVSZWxlYXNlcykge1xuICAgIGNvbnN0IG5vdGVzQnlUYWcgPSByZWFkUmVsZWFzZU5vdGVzKGRlcGVuZGVuY2llcyk7XG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHJlc3VsdC5yZXdyaXR0ZW4pIHtcbiAgICAgIGlmIChzZWN0aW9uLnRhZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlzU3VjY2VzcyA9IHJld3JpdGVSZWxlYXNlKHsgLi4uc2VjdGlvbiwgdGFnOiBzZWN0aW9uLnRhZyB9LCBub3Rlc0J5VGFnLmdldChzZWN0aW9uLnRhZyksIG9wdGlvbnMsIGRlcGVuZGVuY2llcykgPT09ICdvaycgJiYgaXNTdWNjZXNzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpc1N1Y2Nlc3MgPyAwIDogMTtcbn1cblxuZnVuY3Rpb24gdG9SZXN1bHQocmVzdWx0OiBTcGF3blN5bmNSZXR1cm5zPHN0cmluZz4pOiBSZXdyaXRlQ2hhbmdlbG9nQ29tbWFuZFJlc3VsdCB7XG4gIHJldHVybiByZXN1bHQuZXJyb3JcbiAgICA/IHsgZXhpdENvZGU6IDEsIHN0ZGVycjogcmVzdWx0LmVycm9yLm1lc3NhZ2UsIHN0ZG91dDogJycgfVxuICAgIDogeyBleGl0Q29kZTogcmVzdWx0LnN0YXR1cyA/PyAxLCBzdGRlcnI6IHJlc3VsdC5zdGRlcnIsIHN0ZG91dDogcmVzdWx0LnN0ZG91dCB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQSxnQ0FBMEI7QUFDMUIscUJBR087QUFDUCwwQkFBb0I7QUFJcEIsK0JBR087QUFnR1AsTUFBTSx5QkFBeUI7QUFFL0IsTUFBTSxrQkFBa0IsQ0FBQyxXQUFXLGNBQWMsK0JBQStCLFNBQVM7QUFRbkYsU0FBUyx5Q0FBdUU7QUFDckYsU0FBTztBQUFBLElBQ0wsS0FBSyxNQUFNLFlBQVksT0FB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
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* The `rewrite-changelog` command: rewrites a project's published `CHANGELOG.md` sections, and optionally its GitHub
|
|
6
|
+
* release notes, into the `grouped` layout, by wiring {@link rewriteChangelog} to the real git, `gh` and file system.
|
|
7
|
+
*
|
|
8
|
+
* It changes nothing unless `--write` is passed, so the first run is always a report of what it would do.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* The result of one command the `rewrite-changelog` command runs.
|
|
12
|
+
*/
|
|
13
|
+
export interface RewriteChangelogCommandResult {
|
|
14
|
+
/**
|
|
15
|
+
* The exit code.
|
|
16
|
+
*/
|
|
17
|
+
readonly exitCode: number;
|
|
18
|
+
/**
|
|
19
|
+
* The standard error.
|
|
20
|
+
*/
|
|
21
|
+
readonly stderr: string;
|
|
22
|
+
/**
|
|
23
|
+
* The standard output.
|
|
24
|
+
*/
|
|
25
|
+
readonly stdout: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The outside world of the `rewrite-changelog` command.
|
|
29
|
+
*/
|
|
30
|
+
export interface RewriteChangelogDependencies {
|
|
31
|
+
/**
|
|
32
|
+
* Runs a command in the working directory.
|
|
33
|
+
*
|
|
34
|
+
* @param file - The executable.
|
|
35
|
+
* @param arguments_ - Its arguments.
|
|
36
|
+
* @param input - What to write to its standard input.
|
|
37
|
+
* @returns The result.
|
|
38
|
+
*/
|
|
39
|
+
readonly exec: (file: string, arguments_: readonly string[], input?: string) => RewriteChangelogCommandResult;
|
|
40
|
+
/**
|
|
41
|
+
* Writes one line of the report.
|
|
42
|
+
*
|
|
43
|
+
* @param text - The line.
|
|
44
|
+
*/
|
|
45
|
+
readonly log: (text: string) => void;
|
|
46
|
+
/**
|
|
47
|
+
* Reads a text file.
|
|
48
|
+
*
|
|
49
|
+
* @param path - The path.
|
|
50
|
+
* @returns The content.
|
|
51
|
+
*/
|
|
52
|
+
readonly readFile: (path: string) => string;
|
|
53
|
+
/**
|
|
54
|
+
* Writes a text file.
|
|
55
|
+
*
|
|
56
|
+
* @param path - The path.
|
|
57
|
+
* @param content - The content.
|
|
58
|
+
*/
|
|
59
|
+
readonly writeFile: (path: string, content: string) => void;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The options of the `rewrite-changelog` command.
|
|
63
|
+
*/
|
|
64
|
+
export interface RewriteChangelogOptions {
|
|
65
|
+
/**
|
|
66
|
+
* The `CHANGELOG.md` to rewrite.
|
|
67
|
+
*/
|
|
68
|
+
readonly changelogPath: string;
|
|
69
|
+
/**
|
|
70
|
+
* Whether a GitHub release whose notes are no longer its changelog section as it was is rewritten too.
|
|
71
|
+
*/
|
|
72
|
+
readonly shouldOverwriteEditedReleases: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Whether the GitHub release of each rewritten section is rewritten too.
|
|
75
|
+
*/
|
|
76
|
+
readonly shouldRewriteReleases: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Whether anything is changed. Without it the command only reports.
|
|
79
|
+
*/
|
|
80
|
+
readonly shouldWrite: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Creates the command's outside world: commands run with `spawnSync`, files read and written with `node:fs`, the
|
|
84
|
+
* report written to stdout.
|
|
85
|
+
*
|
|
86
|
+
* @returns The dependencies.
|
|
87
|
+
*/
|
|
88
|
+
export declare function createNodeRewriteChangelogDependencies(): RewriteChangelogDependencies;
|
|
89
|
+
/**
|
|
90
|
+
* Builds the command's options from the command line: `--write` applies the changes, `--releases` adds the GitHub
|
|
91
|
+
* releases to them, `--overwrite-edited-releases` includes the releases whose notes were edited after publishing, and
|
|
92
|
+
* `--path=<file>` names the changelog (`CHANGELOG.md` by default).
|
|
93
|
+
*
|
|
94
|
+
* @param cliArguments - The arguments after the command name.
|
|
95
|
+
* @returns The options.
|
|
96
|
+
*/
|
|
97
|
+
export declare function parseRewriteChangelogArguments(cliArguments: readonly string[]): RewriteChangelogOptions;
|
|
98
|
+
/**
|
|
99
|
+
* Runs the `rewrite-changelog` command in the working directory, which is the repository root.
|
|
100
|
+
*
|
|
101
|
+
* @param cliArguments - The arguments after the command name.
|
|
102
|
+
* @param dependencies - The outside world. The real one when omitted.
|
|
103
|
+
* @returns The exit code: `1` when the arguments are wrong, git cannot be read or a release edit failed, `0` otherwise.
|
|
104
|
+
*/
|
|
105
|
+
export declare function runRewriteChangelogCli(cliArguments: readonly string[], dependencies?: RewriteChangelogDependencies): Promise<number>;
|