@matter/tools 0.14.0-alpha.0-20250528-ad0054c84 → 0.14.0-alpha.0-20250528-d6d12ae65
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/dist/cjs/util/progress.d.ts.map +1 -1
- package/dist/cjs/util/progress.js +7 -0
- package/dist/cjs/util/progress.js.map +1 -1
- package/dist/esm/util/progress.d.ts.map +1 -1
- package/dist/esm/util/progress.js +8 -1
- package/dist/esm/util/progress.js.map +1 -1
- package/package.json +1 -1
- package/src/util/progress.ts +8 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/util/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAO,MAAM,mBAAmB,oDAAkB,CAAC;AACnD,eAAO,MAAM,mBAAmB,oDAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,oDAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/util/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAO,MAAM,mBAAmB,oDAAkB,CAAC;AACnD,eAAO,MAAM,mBAAmB,oDAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,oDAAsB,CAAC;AAkFvD,qBAAa,QAAQ;;IACjB,MAAM,kBAA2B;;IAWjC,SAAS,CAAC,IAAI,EAAE,OAAO;IAIvB,WAAW,CAAC,IAAI,EAAE,OAAO;IAIzB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO;IAcxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAuBnC,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,KAAK;IAQL,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,OAAO;IAMD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IA4B7C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAiBtD;AAED,yBAAiB,QAAQ,CAAC;IACtB,KAAY,MAAM;QACd,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;KACtB;IAED,SAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAyB9C;CACJ"}
|
|
@@ -48,6 +48,7 @@ function packageIdentity(pkg) {
|
|
|
48
48
|
const writeStatus = (() => {
|
|
49
49
|
let lastStatus;
|
|
50
50
|
let needNewline = false;
|
|
51
|
+
let needsClear = false;
|
|
51
52
|
function intercept(stream) {
|
|
52
53
|
const actualWrite = stream.write;
|
|
53
54
|
stream.write = (payload, ...params) => {
|
|
@@ -71,6 +72,10 @@ const writeStatus = (() => {
|
|
|
71
72
|
needNewline = true;
|
|
72
73
|
break;
|
|
73
74
|
}
|
|
75
|
+
if (needsClear) {
|
|
76
|
+
actualWrite.call(stream, import_screen.screen.erase.toEol);
|
|
77
|
+
needsClear = false;
|
|
78
|
+
}
|
|
74
79
|
return actualWrite.call(stream, payload, ...params);
|
|
75
80
|
};
|
|
76
81
|
}
|
|
@@ -91,6 +96,7 @@ const writeStatus = (() => {
|
|
|
91
96
|
import_std.std.out.writeTruncated(text);
|
|
92
97
|
});
|
|
93
98
|
lastStatus = text;
|
|
99
|
+
needsClear = willOverwrite;
|
|
94
100
|
};
|
|
95
101
|
})();
|
|
96
102
|
class Progress {
|
|
@@ -182,6 +188,7 @@ class Progress {
|
|
|
182
188
|
}
|
|
183
189
|
async subtask(text, fn) {
|
|
184
190
|
this.#subtasks.push(text);
|
|
191
|
+
this.#writeOngoing();
|
|
185
192
|
try {
|
|
186
193
|
await fn();
|
|
187
194
|
} finally {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/progress.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAA+B;AAC/B,oBAAuB;AACvB,iBAAoB;AACpB,0BAAqB;AATrB;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,sBAAsB,yBAAK,MAAM,QAAG;AAC1C,MAAM,sBAAsB,yBAAK,OAAO,IAAI,QAAG;AAC/C,MAAM,sBAAsB,yBAAK,IAAI,MAAM,QAAG;AAErD,MAAM,UAAU;AAChB,MAAM,mBAAmB;AAEzB,SAAS,gBAAgB,KAAc;AACnC,MAAI,WAAW,yBAAK,KAAK,IAAI,IAAI,EAAE,SAAS;AAC5C,MAAI,IAAI,KAAK,SAAS;AAClB,eAAW,GAAG,QAAQ,IAAI,IAAI,KAAK,OAAO;AAAA,EAC9C;AACA,SAAO;AACX;AAKA,MAAM,eAAe,MAAM;AACvB,MAAI;AACJ,MAAI,cAAc;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["writeStatus", "Progress", "Status"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/util/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAO,MAAM,mBAAmB,oDAAkB,CAAC;AACnD,eAAO,MAAM,mBAAmB,oDAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,oDAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/util/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAO,MAAM,mBAAmB,oDAAkB,CAAC;AACnD,eAAO,MAAM,mBAAmB,oDAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,oDAAsB,CAAC;AAkFvD,qBAAa,QAAQ;;IACjB,MAAM,kBAA2B;;IAWjC,SAAS,CAAC,IAAI,EAAE,OAAO;IAIvB,WAAW,CAAC,IAAI,EAAE,OAAO;IAIzB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO;IAcxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAuBnC,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,KAAK;IAQL,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,OAAO;IAMD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IA4B7C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAiBtD;AAED,yBAAiB,QAAQ,CAAC;IACtB,KAAY,MAAM;QACd,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;KACtB;IAED,SAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAyB9C;CACJ"}
|
|
@@ -22,6 +22,7 @@ function packageIdentity(pkg) {
|
|
|
22
22
|
const writeStatus = (() => {
|
|
23
23
|
let lastStatus;
|
|
24
24
|
let needNewline = false;
|
|
25
|
+
let needsClear = false;
|
|
25
26
|
function intercept(stream) {
|
|
26
27
|
const actualWrite = stream.write;
|
|
27
28
|
stream.write = (payload, ...params) => {
|
|
@@ -45,6 +46,10 @@ const writeStatus = (() => {
|
|
|
45
46
|
needNewline = true;
|
|
46
47
|
break;
|
|
47
48
|
}
|
|
49
|
+
if (needsClear) {
|
|
50
|
+
actualWrite.call(stream, screen.erase.toEol);
|
|
51
|
+
needsClear = false;
|
|
52
|
+
}
|
|
48
53
|
return actualWrite.call(stream, payload, ...params);
|
|
49
54
|
};
|
|
50
55
|
}
|
|
@@ -65,6 +70,7 @@ const writeStatus = (() => {
|
|
|
65
70
|
std.out.writeTruncated(text);
|
|
66
71
|
});
|
|
67
72
|
lastStatus = text;
|
|
73
|
+
needsClear = willOverwrite;
|
|
68
74
|
};
|
|
69
75
|
})();
|
|
70
76
|
class Progress {
|
|
@@ -156,6 +162,7 @@ class Progress {
|
|
|
156
162
|
}
|
|
157
163
|
async subtask(text, fn) {
|
|
158
164
|
this.#subtasks.push(text);
|
|
165
|
+
this.#writeOngoing();
|
|
159
166
|
try {
|
|
160
167
|
await fn();
|
|
161
168
|
} finally {
|
|
@@ -234,4 +241,4 @@ export {
|
|
|
234
241
|
STATUS_ICON_SKIPPED,
|
|
235
242
|
STATUS_ICON_SUCCESS
|
|
236
243
|
};
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvcHJvZ3Jlc3MudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjUgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgc3RkZXJyLCBzdGRvdXQgfSBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5pbXBvcnQgeyBzY3JlZW4gfSBmcm9tIFwiLi4vYW5zaS10ZXh0L3NjcmVlbi5qc1wiO1xuaW1wb3J0IHsgc3RkIH0gZnJvbSBcIi4uL2Fuc2ktdGV4dC9zdGQuanNcIjtcbmltcG9ydCB7IGFuc2kgfSBmcm9tIFwiLi4vYW5zaS10ZXh0L3RleHQtYnVpbGRlci5qc1wiO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gXCIuL3BhY2thZ2UuanNcIjtcblxuZXhwb3J0IGNvbnN0IFNUQVRVU19JQ09OX1NVQ0NFU1MgPSBhbnNpLmdyZWVuKFwiXHUyNzEzXCIpO1xuZXhwb3J0IGNvbnN0IFNUQVRVU19JQ09OX0ZBSUxVUkUgPSBhbnNpLmJyaWdodC5yZWQoXCJcdTI3MTdcIik7XG5leHBvcnQgY29uc3QgU1RBVFVTX0lDT05fU0tJUFBFRCA9IGFuc2kuZGltLndoaXRlKFwiXHUyMDQzXCIpO1xuXG5jb25zdCBTUElOTkVSID0gXCJcdTI1RDBcdTI1RDNcdTI1RDFcdTI1RDJcIjsgLy9cIlx1Mjg1Q1x1MjgxNFx1MjgyMlx1MjhBM1wiOyAvL1tcIlx1MjZBQlx1RkUwRVwiLCBcIlx1MjZBQVx1RkUwRVwiXTsgXCJcdTI4NDhcdTI4MTRcdTI4MjJcdTI4ODFcIjtcbmNvbnN0IFNQSU5ORVJfSU5URVJWQUwgPSAxMDA7XG5cbmZ1bmN0aW9uIHBhY2thZ2VJZGVudGl0eShwa2c6IFBhY2thZ2UpIHtcbiAgICBsZXQgaWRlbnRpdHkgPSBhbnNpLmJvbGQocGtnLm5hbWUpLnRvU3RyaW5nKCk7XG4gICAgaWYgKHBrZy5qc29uLnZlcnNpb24pIHtcbiAgICAgICAgaWRlbnRpdHkgPSBgJHtpZGVudGl0eX1AJHtwa2cuanNvbi52ZXJzaW9ufWA7XG4gICAgfVxuICAgIHJldHVybiBpZGVudGl0eTtcbn1cblxuLyoqXG4gKiBJbnRlcmNlcHQgd3JpdGVzIHRvIHN0ZGVyciBhbmQgc3Rkb3V0IHNvIHdlIGNhbiBlbnN1cmUgb3VyIHVwZGF0ZXMgYXBwZWFyIG9uIGRpZmZlcmVudCBsaW5lcyBmcm9tIG90aGVyIG91dHB1dC5cbiAqL1xuY29uc3Qgd3JpdGVTdGF0dXMgPSAoKCkgPT4ge1xuICAgIGxldCBsYXN0U3RhdHVzOiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgbGV0IG5lZWROZXdsaW5lID0gZmFsc2U7XG5cbiAgICBmdW5jdGlvbiBpbnRlcmNlcHQoc3RyZWFtOiBOb2RlSlMuV3JpdGVTdHJlYW0pIHtcbiAgICAgICAgY29uc3QgYWN0dWFsV3JpdGUgPSBzdHJlYW0ud3JpdGU7XG4gICAgICAgIHN0cmVhbS53cml0ZSA9IChwYXlsb2FkOiBVaW50OEFycmF5IHwgc3RyaW5nLCAuLi5wYXJhbXM6IGFueVtdKSA9PiB7XG4gICAgICAgICAgICBpZiAobGFzdFN0YXR1cykge1xuICAgICAgICAgICAgICAgIGlmIChwYXlsb2FkWzBdICE9PSBcIlxcblwiICYmIHBheWxvYWRbMF0gIT09IDB4YSAmJiBuZWVkTmV3bGluZSkge1xuICAgICAgICAgICAgICAgICAgICBhY3R1YWxXcml0ZS5jYWxsKHN0cmVhbSwgXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxhc3RTdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUmVxdWlyZSBhIG5ld2xpbmUgZm9yIHN0YXR1cyB1cGRhdGVzIGFueSB0aW1lIHRoZSBjdXJzb3IgZG9lcyBub3QgZW5kIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lXG4gICAgICAgICAgICBzd2l0Y2ggKHBheWxvYWRbcGF5bG9hZC5sZW5ndGggLSAxXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJcXG5cIjpcbiAgICAgICAgICAgICAgICBjYXNlIDB4YTpcbiAgICAgICAgICAgICAgICBjYXNlIFwiXFxyXCI6XG4gICAgICAgICAgICAgICAgY2FzZSAweGQ6XG4gICAgICAgICAgICAgICAgICAgIG5lZWROZXdsaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgbmVlZE5ld2xpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbFdyaXRlLmNhbGwoc3RyZWFtLCBwYXlsb2FkLCAuLi5wYXJhbXMpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGludGVyY2VwdChzdGRvdXQpO1xuICAgIGludGVyY2VwdChzdGRlcnIpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHdyaXRlU3RhdHVzKHRleHQ6IHN0cmluZywgd2lsbE92ZXJ3cml0ZSA9IGZhbHNlKSB7XG4gICAgICAgIHRleHQgKz0gd2lsbE92ZXJ3cml0ZSA/IGAke3NjcmVlbi5lcmFzZS50b0VvbH1cXHJgIDogYCR7c2NyZWVuLmVyYXNlLnRvRW9sfVxcbmA7XG4gICAgICAgIGlmICh0ZXh0ID09PSBsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdGQub3V0LnN0YXRlKHsgYnVmZmVyOiB0cnVlIH0sICgpID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgbGFzdFN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmVlZE5ld2xpbmUgJiYgIXRleHQuc3RhcnRzV2l0aChcIlxcblwiKSkge1xuICAgICAgICAgICAgICAgIHN0ZC5vdXQoXCJcXG5cIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0ZC5vdXQud3JpdGVUcnVuY2F0ZWQodGV4dCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxhc3RTdGF0dXMgPSB0ZXh0O1xuICAgIH07XG59KSgpO1xuXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3Mge1xuICAgIHN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5TdGFydHVwO1xuICAgICNvbmdvaW5nPzogeyB0ZXh0OiBzdHJpbmc7IGV4dHJhPzogc3RyaW5nIH07XG4gICAgI3N0YXJ0PzogbnVtYmVyO1xuICAgICNzcGlubmVyID0gXCJcdTI5RDdcIjtcbiAgICAjcmVmcmVzaEludGVydmFsPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+O1xuICAgICNzcGlubmVyUG9zaXRpb24gPSAwO1xuICAgICNzcGlubmVyV2luZG93PzogbnVtYmVyO1xuICAgICNzdWJ0YXNrcyA9IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIGVtcGhhc2l6ZSh0ZXh0OiB1bmtub3duKSB7XG4gICAgICAgIHJldHVybiBhbnNpLmJvbGQoYCR7dGV4dH1gKTtcbiAgICB9XG5cbiAgICBkZWVtcGhhc2l6ZSh0ZXh0OiB1bmtub3duKSB7XG4gICAgICAgIHJldHVybiBhbnNpLmRpbShgJHt0ZXh0fWApO1xuICAgIH1cblxuICAgIHNraXAod2h5OiBzdHJpbmcsIHBrZzogUGFja2FnZSkge1xuICAgICAgICBzdGQub3V0LndyaXRlKGFuc2kuZGltKGBTa2lwICR7cGFja2FnZUlkZW50aXR5KHBrZyl9OiAke3doeX1cXG5cXG5gKSk7XG4gICAgfVxuXG4gICAgc3RhcnR1cCh3aGF0OiBzdHJpbmcsIHBrZ09yT3ZlcndyaXRlPzogUGFja2FnZSB8IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHByb2Nlc3Muc3Rkb3V0LmlzVFRZKSB7XG4gICAgICAgICAgICB0aGlzLiN1cGRhdGVTcGlubmVyKCk7XG4gICAgICAgICAgICB0aGlzLiNyZWZyZXNoSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwgU1BJTk5FUl9JTlRFUlZBTCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5TdGFydHVwO1xuICAgICAgICBpZiAocGtnT3JPdmVyd3JpdGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgcGtnT3JPdmVyd3JpdGUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICB3cml0ZVN0YXR1cyh3aGF0LCBwa2dPck92ZXJ3cml0ZSA/PyB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdyaXRlU3RhdHVzKGAke3doYXR9ICR7cGFja2FnZUlkZW50aXR5KHBrZ09yT3ZlcndyaXRlKX1gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZSh0ZXh0OiBzdHJpbmcsIGV4dHJhPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gUHJvZ3Jlc3MuU3RhdHVzLk9uZ29pbmc7XG4gICAgICAgIGlmICh0aGlzLiNzdGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLiNzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICB9XG4gICAgICAgIGV4dHJhID0gZXh0cmEgPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBgICR7ZXh0cmF9YDtcbiAgICAgICAgdGhpcy4jb25nb2luZyA9IHsgdGV4dCwgZXh0cmEgfTtcbiAgICAgICAgdGhpcy4jd3JpdGVPbmdvaW5nKCk7XG4gICAgfVxuXG4gICAgI3dyaXRlT25nb2luZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLiNvbmdvaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleHRyYSA9IHRoaXMuI29uZ29pbmcuZXh0cmEgPyBgICR7dGhpcy4jb25nb2luZy5leHRyYX1gIDogXCJcIjtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGAke3RoaXMuI29uZ29pbmcudGV4dH0gJHt0aGlzLiNkdXJhdGlvbn0ke2V4dHJhfWA7XG5cbiAgICAgICAgY29uc3Qgc3VidGFzayA9IHRoaXMuI3N1YnRhc2tzLmxlbmd0aCA/IGFuc2kuZGltKGAgKCR7dGhpcy4jc3VidGFza3NbdGhpcy4jc3VidGFza3MubGVuZ3RoIC0gMV19KWApIDogXCJcIjtcblxuICAgICAgICB3cml0ZVN0YXR1cyhgICAke2Fuc2kueWVsbG93KHRoaXMuI3NwaW5uZXIpfSAke21lc3NhZ2V9JHtzdWJ0YXNrfWAsIHRydWUpO1xuICAgIH1cblxuICAgIHN1Y2Nlc3ModGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gUHJvZ3Jlc3MuU3RhdHVzLlN1Y2Nlc3M7XG4gICAgICAgIHdyaXRlU3RhdHVzKGAgICR7U1RBVFVTX0lDT05fU1VDQ0VTU30gJHt0ZXh0fSAke3RoaXMuI2R1cmF0aW9ufWApO1xuICAgICAgICB0aGlzLiNzdGFydCA9IHRoaXMuI29uZ29pbmcgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZmFpbHVyZSh0ZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBQcm9ncmVzcy5TdGF0dXMuRmFpbHVyZTtcbiAgICAgICAgd3JpdGVTdGF0dXMoYCAgJHtTVEFUVVNfSUNPTl9GQUlMVVJFfSAke3RleHR9ICR7dGhpcy4jZHVyYXRpb259YCk7XG4gICAgICAgIHRoaXMuI3N0YXJ0ID0gdGhpcy4jb25nb2luZyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpbmZvKGxhYmVsOiBzdHJpbmcsIHZhbHVlPzogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgbGFiZWwgPSBgJHthbnNpLmRpbShsYWJlbCl9ICR7dmFsdWV9YDtcbiAgICAgICAgfVxuICAgICAgICB3cml0ZVN0YXR1cyhgICAke2Fuc2kuZGltKFwiXHUyMDIzXCIpfSAke2xhYmVsfWApO1xuICAgIH1cblxuICAgIHdhcm4odGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHN0ZC5vdXQud3JpdGUoYCAgICAke2Fuc2kueWVsbG93KFwiV2FybmluZzpcIil9ICR7dGV4dH1cXG5gKTtcbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuI3JlZnJlc2hJbnRlcnZhbCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLiNyZWZyZXNoSW50ZXJ2YWwpO1xuICAgICAgICAgICAgdGhpcy4jcmVmcmVzaEludGVydmFsID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHdyaXRlU3RhdHVzKFwiXCIpO1xuICAgIH1cblxuICAgIFtTeW1ib2wuZGlzcG9zZV0oKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICByZWZyZXNoKCkge1xuICAgICAgICBpZiAodGhpcy4jdXBkYXRlU3Bpbm5lcigpKSB7XG4gICAgICAgICAgICB0aGlzLiN3cml0ZU9uZ29pbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIHN1YnRhc2sodGV4dDogc3RyaW5nLCBmbjogKCkgPT4gUHJvbWlzZTx2b2lkPikge1xuICAgICAgICB0aGlzLiNzdWJ0YXNrcy5wdXNoKHRleHQpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBmbigpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy4jc3VidGFza3MucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjdXBkYXRlU3Bpbm5lcigpIHtcbiAgICAgICAgaWYgKCFzdGRvdXQuaXNUVFkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyBTUElOTkVSX0lOVEVSVkFMKTtcbiAgICAgICAgaWYgKHRoaXMuI3NwaW5uZXJXaW5kb3cgPT09IHdpbmRvdykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI3NwaW5uZXJXaW5kb3cgPSB3aW5kb3c7XG5cbiAgICAgICAgdGhpcy4jc3Bpbm5lclBvc2l0aW9uID0gKHRoaXMuI3NwaW5uZXJQb3NpdGlvbiArIDEpICUgU1BJTk5FUi5sZW5ndGg7XG4gICAgICAgIHRoaXMuI3NwaW5uZXIgPSBTUElOTkVSW3RoaXMuI3NwaW5uZXJQb3NpdGlvbl07XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYXN5bmMgcnVuPFQ+KHdoYXQ6IHN0cmluZywgZm46ICgpID0+IFQgfCBQcm9taXNlPFQ+KSB7XG4gICAgICAgIHRoaXMudXBkYXRlKHdoYXQpO1xuICAgICAgICBsZXQgcmVzdWx0OiBUO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZm4oKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5mYWlsdXJlKHdoYXQpO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN1Y2Nlc3Mod2hhdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0ICNkdXJhdGlvbigpIHtcbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLiNzdGFydCA/IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGhpcy4jc3RhcnQgOiAwO1xuICAgICAgICByZXR1cm4gUHJvZ3Jlc3MuZm9ybWF0RHVyYXRpb24oZHVyYXRpb24pO1xuICAgIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQcm9ncmVzcyB7XG4gICAgZXhwb3J0IGVudW0gU3RhdHVzIHtcbiAgICAgICAgU3RhcnR1cCA9IFwic3RhcnR1cFwiLFxuICAgICAgICBPbmdvaW5nID0gXCJvbmdvaW5nXCIsXG4gICAgICAgIFN1Y2Nlc3MgPSBcInN1Y2Nlc3NcIixcbiAgICAgICAgRmFpbHVyZSA9IFwiZmFpbHVyZVwiLFxuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBmb3JtYXREdXJhdGlvbihkdXJhdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIGR1cmF0aW9uIC89IDEwMDA7XG4gICAgICAgIGxldCB0aW1lO1xuICAgICAgICBpZiAoZHVyYXRpb24gPCAxMCkge1xuICAgICAgICAgICAgdGltZSA9IGR1cmF0aW9uLnRvUHJlY2lzaW9uKDIpO1xuICAgICAgICAgICAgaWYgKHRpbWUuc3RhcnRzV2l0aChcIjAuXCIpKSB7XG4gICAgICAgICAgICAgICAgdGltZSA9IHRpbWUuc2xpY2UoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aGlsZSAodGltZS5lbmRzV2l0aChcIjBcIikpIHtcbiAgICAgICAgICAgICAgICB0aW1lID0gdGltZS5zbGljZSgwLCB0aW1lLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRpbWUuZW5kc1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRpbWUubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWUgPSBcIjBcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aW1lID0gdGltZS5zbGljZSgwLCB0aW1lLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRpbWUgKz0gXCJzXCI7XG4gICAgICAgIH0gZWxzZSBpZiAoZHVyYXRpb24gPCA2MCkge1xuICAgICAgICAgICAgdGltZSA9IGAke01hdGgudHJ1bmMoZHVyYXRpb24pfXNgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGltZSA9IGAke01hdGgudHJ1bmMoZHVyYXRpb24gLyA2MCl9bSAke01hdGgudHJ1bmMoZHVyYXRpb24pICUgNjB9c2A7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke2Fuc2kuZGltLnllbGxvd30oJHt0aW1lfSkke2Fuc2kubm90LmRpbS5ub3QueWVsbG93fWA7XG4gICAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLFNBQVMsUUFBUSxjQUFjO0FBQy9CLFNBQVMsY0FBYztBQUN2QixTQUFTLFdBQVc7QUFDcEIsU0FBUyxZQUFZO0FBR2QsTUFBTSxzQkFBc0IsS0FBSyxNQUFNLFFBQUc7QUFDMUMsTUFBTSxzQkFBc0IsS0FBSyxPQUFPLElBQUksUUFBRztBQUMvQyxNQUFNLHNCQUFzQixLQUFLLElBQUksTUFBTSxRQUFHO0FBRXJELE1BQU0sVUFBVTtBQUNoQixNQUFNLG1CQUFtQjtBQUV6QixTQUFTLGdCQUFnQixLQUFjO0FBQ25DLE1BQUksV0FBVyxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsU0FBUztBQUM1QyxNQUFJLElBQUksS0FBSyxTQUFTO0FBQ2xCLGVBQVcsR0FBRyxRQUFRLElBQUksSUFBSSxLQUFLLE9BQU87QUFBQSxFQUM5QztBQUNBLFNBQU87QUFDWDtBQUtBLE1BQU0sZUFBZSxNQUFNO0FBQ3ZCLE1BQUk7QUFDSixNQUFJLGNBQWM7QUFFbEIsV0FBUyxVQUFVLFFBQTRCO0FBQzNDLFVBQU0sY0FBYyxPQUFPO0FBQzNCLFdBQU8sUUFBUSxDQUFDLFlBQWlDLFdBQWtCO0FBQy9ELFVBQUksWUFBWTtBQUNaLFlBQUksUUFBUSxDQUFDLE1BQU0sUUFBUSxRQUFRLENBQUMsTUFBTSxNQUFPLGFBQWE7QUFDMUQsc0JBQVksS0FBSyxRQUFRLElBQUk7QUFBQSxRQUNqQztBQUNBLHFCQUFhO0FBQUEsTUFDakI7QUFFQSxVQUFJLENBQUMsUUFBUSxRQUFRO0FBQ2pCLGVBQU87QUFBQSxNQUNYO0FBR0Es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
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvcHJvZ3Jlc3MudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjUgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgc3RkZXJyLCBzdGRvdXQgfSBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5pbXBvcnQgeyBzY3JlZW4gfSBmcm9tIFwiLi4vYW5zaS10ZXh0L3NjcmVlbi5qc1wiO1xuaW1wb3J0IHsgc3RkIH0gZnJvbSBcIi4uL2Fuc2ktdGV4dC9zdGQuanNcIjtcbmltcG9ydCB7IGFuc2kgfSBmcm9tIFwiLi4vYW5zaS10ZXh0L3RleHQtYnVpbGRlci5qc1wiO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gXCIuL3BhY2thZ2UuanNcIjtcblxuZXhwb3J0IGNvbnN0IFNUQVRVU19JQ09OX1NVQ0NFU1MgPSBhbnNpLmdyZWVuKFwiXHUyNzEzXCIpO1xuZXhwb3J0IGNvbnN0IFNUQVRVU19JQ09OX0ZBSUxVUkUgPSBhbnNpLmJyaWdodC5yZWQoXCJcdTI3MTdcIik7XG5leHBvcnQgY29uc3QgU1RBVFVTX0lDT05fU0tJUFBFRCA9IGFuc2kuZGltLndoaXRlKFwiXHUyMDQzXCIpO1xuXG5jb25zdCBTUElOTkVSID0gXCJcdTI1RDBcdTI1RDNcdTI1RDFcdTI1RDJcIjsgLy9cIlx1Mjg1Q1x1MjgxNFx1MjgyMlx1MjhBM1wiOyAvL1tcIlx1MjZBQlx1RkUwRVwiLCBcIlx1MjZBQVx1RkUwRVwiXTsgXCJcdTI4NDhcdTI4MTRcdTI4MjJcdTI4ODFcIjtcbmNvbnN0IFNQSU5ORVJfSU5URVJWQUwgPSAxMDA7XG5cbmZ1bmN0aW9uIHBhY2thZ2VJZGVudGl0eShwa2c6IFBhY2thZ2UpIHtcbiAgICBsZXQgaWRlbnRpdHkgPSBhbnNpLmJvbGQocGtnLm5hbWUpLnRvU3RyaW5nKCk7XG4gICAgaWYgKHBrZy5qc29uLnZlcnNpb24pIHtcbiAgICAgICAgaWRlbnRpdHkgPSBgJHtpZGVudGl0eX1AJHtwa2cuanNvbi52ZXJzaW9ufWA7XG4gICAgfVxuICAgIHJldHVybiBpZGVudGl0eTtcbn1cblxuLyoqXG4gKiBJbnRlcmNlcHQgd3JpdGVzIHRvIHN0ZGVyciBhbmQgc3Rkb3V0IHNvIHdlIGNhbiBlbnN1cmUgb3VyIHVwZGF0ZXMgYXBwZWFyIG9uIGRpZmZlcmVudCBsaW5lcyBmcm9tIG90aGVyIG91dHB1dC5cbiAqL1xuY29uc3Qgd3JpdGVTdGF0dXMgPSAoKCkgPT4ge1xuICAgIGxldCBsYXN0U3RhdHVzOiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgbGV0IG5lZWROZXdsaW5lID0gZmFsc2U7XG4gICAgbGV0IG5lZWRzQ2xlYXIgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIGludGVyY2VwdChzdHJlYW06IE5vZGVKUy5Xcml0ZVN0cmVhbSkge1xuICAgICAgICBjb25zdCBhY3R1YWxXcml0ZSA9IHN0cmVhbS53cml0ZTtcbiAgICAgICAgc3RyZWFtLndyaXRlID0gKHBheWxvYWQ6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBheWxvYWRbMF0gIT09IFwiXFxuXCIgJiYgcGF5bG9hZFswXSAhPT0gMHhhICYmIG5lZWROZXdsaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdHVhbFdyaXRlLmNhbGwoc3RyZWFtLCBcIlxcblwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGFzdFN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwYXlsb2FkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZXF1aXJlIGEgbmV3bGluZSBmb3Igc3RhdHVzIHVwZGF0ZXMgYW55IHRpbWUgdGhlIGN1cnNvciBkb2VzIG5vdCBlbmQgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmVcbiAgICAgICAgICAgIHN3aXRjaCAocGF5bG9hZFtwYXlsb2FkLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcIlxcblwiOlxuICAgICAgICAgICAgICAgIGNhc2UgMHhhOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJcXHJcIjpcbiAgICAgICAgICAgICAgICBjYXNlIDB4ZDpcbiAgICAgICAgICAgICAgICAgICAgbmVlZE5ld2xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBuZWVkTmV3bGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmVlZHNDbGVhcikge1xuICAgICAgICAgICAgICAgIGFjdHVhbFdyaXRlLmNhbGwoc3RyZWFtLCBzY3JlZW4uZXJhc2UudG9Fb2wpO1xuICAgICAgICAgICAgICAgIG5lZWRzQ2xlYXIgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbFdyaXRlLmNhbGwoc3RyZWFtLCBwYXlsb2FkLCAuLi5wYXJhbXMpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGludGVyY2VwdChzdGRvdXQpO1xuICAgIGludGVyY2VwdChzdGRlcnIpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHdyaXRlU3RhdHVzKHRleHQ6IHN0cmluZywgd2lsbE92ZXJ3cml0ZSA9IGZhbHNlKSB7XG4gICAgICAgIHRleHQgKz0gd2lsbE92ZXJ3cml0ZSA/IGAke3NjcmVlbi5lcmFzZS50b0VvbH1cXHJgIDogYCR7c2NyZWVuLmVyYXNlLnRvRW9sfVxcbmA7XG4gICAgICAgIGlmICh0ZXh0ID09PSBsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdGQub3V0LnN0YXRlKHsgYnVmZmVyOiB0cnVlIH0sICgpID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgbGFzdFN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmVlZE5ld2xpbmUgJiYgIXRleHQuc3RhcnRzV2l0aChcIlxcblwiKSkge1xuICAgICAgICAgICAgICAgIHN0ZC5vdXQoXCJcXG5cIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0ZC5vdXQud3JpdGVUcnVuY2F0ZWQodGV4dCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxhc3RTdGF0dXMgPSB0ZXh0O1xuICAgICAgICBuZWVkc0NsZWFyID0gd2lsbE92ZXJ3cml0ZTtcbiAgICB9O1xufSkoKTtcblxuZXhwb3J0IGNsYXNzIFByb2dyZXNzIHtcbiAgICBzdGF0dXMgPSBQcm9ncmVzcy5TdGF0dXMuU3RhcnR1cDtcbiAgICAjb25nb2luZz86IHsgdGV4dDogc3RyaW5nOyBleHRyYT86IHN0cmluZyB9O1xuICAgICNzdGFydD86IG51bWJlcjtcbiAgICAjc3Bpbm5lciA9IFwiXHUyOUQ3XCI7XG4gICAgI3JlZnJlc2hJbnRlcnZhbD86IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcbiAgICAjc3Bpbm5lclBvc2l0aW9uID0gMDtcbiAgICAjc3Bpbm5lcldpbmRvdz86IG51bWJlcjtcbiAgICAjc3VidGFza3MgPSBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBlbXBoYXNpemUodGV4dDogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gYW5zaS5ib2xkKGAke3RleHR9YCk7XG4gICAgfVxuXG4gICAgZGVlbXBoYXNpemUodGV4dDogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gYW5zaS5kaW0oYCR7dGV4dH1gKTtcbiAgICB9XG5cbiAgICBza2lwKHdoeTogc3RyaW5nLCBwa2c6IFBhY2thZ2UpIHtcbiAgICAgICAgc3RkLm91dC53cml0ZShhbnNpLmRpbShgU2tpcCAke3BhY2thZ2VJZGVudGl0eShwa2cpfTogJHt3aHl9XFxuXFxuYCkpO1xuICAgIH1cblxuICAgIHN0YXJ0dXAod2hhdDogc3RyaW5nLCBwa2dPck92ZXJ3cml0ZT86IFBhY2thZ2UgfCBib29sZWFuKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLnN0ZG91dC5pc1RUWSkge1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlU3Bpbm5lcigpO1xuICAgICAgICAgICAgdGhpcy4jcmVmcmVzaEludGVydmFsID0gc2V0SW50ZXJ2YWwodGhpcy5yZWZyZXNoLmJpbmQodGhpcyksIFNQSU5ORVJfSU5URVJWQUwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0dXMgPSBQcm9ncmVzcy5TdGF0dXMuU3RhcnR1cDtcbiAgICAgICAgaWYgKHBrZ09yT3ZlcndyaXRlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHBrZ09yT3ZlcndyaXRlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgd3JpdGVTdGF0dXMod2hhdCwgcGtnT3JPdmVyd3JpdGUgPz8gdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cml0ZVN0YXR1cyhgJHt3aGF0fSAke3BhY2thZ2VJZGVudGl0eShwa2dPck92ZXJ3cml0ZSl9YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGUodGV4dDogc3RyaW5nLCBleHRyYT86IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5PbmdvaW5nO1xuICAgICAgICBpZiAodGhpcy4jc3RhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgfVxuICAgICAgICBleHRyYSA9IGV4dHJhID09PSB1bmRlZmluZWQgPyBcIlwiIDogYCAke2V4dHJhfWA7XG4gICAgICAgIHRoaXMuI29uZ29pbmcgPSB7IHRleHQsIGV4dHJhIH07XG4gICAgICAgIHRoaXMuI3dyaXRlT25nb2luZygpO1xuICAgIH1cblxuICAgICN3cml0ZU9uZ29pbmcoKSB7XG4gICAgICAgIGlmICghdGhpcy4jb25nb2luZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXh0cmEgPSB0aGlzLiNvbmdvaW5nLmV4dHJhID8gYCAke3RoaXMuI29uZ29pbmcuZXh0cmF9YCA6IFwiXCI7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHt0aGlzLiNvbmdvaW5nLnRleHR9ICR7dGhpcy4jZHVyYXRpb259JHtleHRyYX1gO1xuXG4gICAgICAgIGNvbnN0IHN1YnRhc2sgPSB0aGlzLiNzdWJ0YXNrcy5sZW5ndGggPyBhbnNpLmRpbShgICgke3RoaXMuI3N1YnRhc2tzW3RoaXMuI3N1YnRhc2tzLmxlbmd0aCAtIDFdfSlgKSA6IFwiXCI7XG5cbiAgICAgICAgd3JpdGVTdGF0dXMoYCAgJHthbnNpLnllbGxvdyh0aGlzLiNzcGlubmVyKX0gJHttZXNzYWdlfSR7c3VidGFza31gLCB0cnVlKTtcbiAgICB9XG5cbiAgICBzdWNjZXNzKHRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5TdWNjZXNzO1xuICAgICAgICB3cml0ZVN0YXR1cyhgICAke1NUQVRVU19JQ09OX1NVQ0NFU1N9ICR7dGV4dH0gJHt0aGlzLiNkdXJhdGlvbn1gKTtcbiAgICAgICAgdGhpcy4jc3RhcnQgPSB0aGlzLiNvbmdvaW5nID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGZhaWx1cmUodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gUHJvZ3Jlc3MuU3RhdHVzLkZhaWx1cmU7XG4gICAgICAgIHdyaXRlU3RhdHVzKGAgICR7U1RBVFVTX0lDT05fRkFJTFVSRX0gJHt0ZXh0fSAke3RoaXMuI2R1cmF0aW9ufWApO1xuICAgICAgICB0aGlzLiNzdGFydCA9IHRoaXMuI29uZ29pbmcgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaW5mbyhsYWJlbDogc3RyaW5nLCB2YWx1ZT86IGFueSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGxhYmVsID0gYCR7YW5zaS5kaW0obGFiZWwpfSAke3ZhbHVlfWA7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVTdGF0dXMoYCAgJHthbnNpLmRpbShcIlx1MjAyM1wiKX0gJHtsYWJlbH1gKTtcbiAgICB9XG5cbiAgICB3YXJuKHRleHQ6IHN0cmluZykge1xuICAgICAgICBzdGQub3V0LndyaXRlKGAgICAgJHthbnNpLnllbGxvdyhcIldhcm5pbmc6XCIpfSAke3RleHR9XFxuYCk7XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGlmICh0aGlzLiNyZWZyZXNoSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy4jcmVmcmVzaEludGVydmFsKTtcbiAgICAgICAgICAgIHRoaXMuI3JlZnJlc2hJbnRlcnZhbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB3cml0ZVN0YXR1cyhcIlwiKTtcbiAgICB9XG5cbiAgICBbU3ltYm9sLmRpc3Bvc2VdKCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcmVmcmVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuI3VwZGF0ZVNwaW5uZXIoKSkge1xuICAgICAgICAgICAgdGhpcy4jd3JpdGVPbmdvaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBzdWJ0YXNrKHRleHQ6IHN0cmluZywgZm46ICgpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgICAgICAgdGhpcy4jc3VidGFza3MucHVzaCh0ZXh0KTtcbiAgICAgICAgdGhpcy4jd3JpdGVPbmdvaW5nKCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGZuKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLiNzdWJ0YXNrcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN1cGRhdGVTcGlubmVyKCkge1xuICAgICAgICBpZiAoIXN0ZG91dC5pc1RUWSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2luZG93ID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIFNQSU5ORVJfSU5URVJWQUwpO1xuICAgICAgICBpZiAodGhpcy4jc3Bpbm5lcldpbmRvdyA9PT0gd2luZG93KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jc3Bpbm5lcldpbmRvdyA9IHdpbmRvdztcblxuICAgICAgICB0aGlzLiNzcGlubmVyUG9zaXRpb24gPSAodGhpcy4jc3Bpbm5lclBvc2l0aW9uICsgMSkgJSBTUElOTkVSLmxlbmd0aDtcbiAgICAgICAgdGhpcy4jc3Bpbm5lciA9IFNQSU5ORVJbdGhpcy4jc3Bpbm5lclBvc2l0aW9uXTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBhc3luYyBydW48VD4od2hhdDogc3RyaW5nLCBmbjogKCkgPT4gVCB8IFByb21pc2U8VD4pIHtcbiAgICAgICAgdGhpcy51cGRhdGUod2hhdCk7XG4gICAgICAgIGxldCByZXN1bHQ6IFQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmbigpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLmZhaWx1cmUod2hhdCk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3VjY2Vzcyh3aGF0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBnZXQgI2R1cmF0aW9uKCkge1xuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMuI3N0YXJ0ID8gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLiNzdGFydCA6IDA7XG4gICAgICAgIHJldHVybiBQcm9ncmVzcy5mb3JtYXREdXJhdGlvbihkdXJhdGlvbik7XG4gICAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFByb2dyZXNzIHtcbiAgICBleHBvcnQgZW51bSBTdGF0dXMge1xuICAgICAgICBTdGFydHVwID0gXCJzdGFydHVwXCIsXG4gICAgICAgIE9uZ29pbmcgPSBcIm9uZ29pbmdcIixcbiAgICAgICAgU3VjY2VzcyA9IFwic3VjY2Vzc1wiLFxuICAgICAgICBGYWlsdXJlID0gXCJmYWlsdXJlXCIsXG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdER1cmF0aW9uKGR1cmF0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgZHVyYXRpb24gLz0gMTAwMDtcbiAgICAgICAgbGV0IHRpbWU7XG4gICAgICAgIGlmIChkdXJhdGlvbiA8IDEwKSB7XG4gICAgICAgICAgICB0aW1lID0gZHVyYXRpb24udG9QcmVjaXNpb24oMik7XG4gICAgICAgICAgICBpZiAodGltZS5zdGFydHNXaXRoKFwiMC5cIikpIHtcbiAgICAgICAgICAgICAgICB0aW1lID0gdGltZS5zbGljZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlICh0aW1lLmVuZHNXaXRoKFwiMFwiKSkge1xuICAgICAgICAgICAgICAgIHRpbWUgPSB0aW1lLnNsaWNlKDAsIHRpbWUubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGltZS5lbmRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgICAgICBpZiAodGltZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGltZSA9IFwiMFwiO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWUgPSB0aW1lLnNsaWNlKDAsIHRpbWUubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGltZSArPSBcInNcIjtcbiAgICAgICAgfSBlbHNlIGlmIChkdXJhdGlvbiA8IDYwKSB7XG4gICAgICAgICAgICB0aW1lID0gYCR7TWF0aC50cnVuYyhkdXJhdGlvbil9c2A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aW1lID0gYCR7TWF0aC50cnVuYyhkdXJhdGlvbiAvIDYwKX1tICR7TWF0aC50cnVuYyhkdXJhdGlvbikgJSA2MH1zYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7YW5zaS5kaW0ueWVsbG93fSgke3RpbWV9KSR7YW5zaS5ub3QuZGltLm5vdC55ZWxsb3d9YDtcbiAgICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsU0FBUyxRQUFRLGNBQWM7QUFDL0IsU0FBUyxjQUFjO0FBQ3ZCLFNBQVMsV0FBVztBQUNwQixTQUFTLFlBQVk7QUFHZCxNQUFNLHNCQUFzQixLQUFLLE1BQU0sUUFBRztBQUMxQyxNQUFNLHNCQUFzQixLQUFLLE9BQU8sSUFBSSxRQUFHO0FBQy9DLE1BQU0sc0JBQXNCLEtBQUssSUFBSSxNQUFNLFFBQUc7QUFFckQsTUFBTSxVQUFVO0FBQ2hCLE1BQU0sbUJBQW1CO0FBRXpCLFNBQVMsZ0JBQWdCLEtBQWM7QUFDbkMsTUFBSSxXQUFXLEtBQUssS0FBSyxJQUFJLElBQUksRUFBRSxTQUFTO0FBQzVDLE1BQUksSUFBSSxLQUFLLFNBQVM7QUFDbEIsZUFBVyxHQUFHLFFBQVEsSUFBSSxJQUFJLEtBQUssT0FBTztBQUFBLEVBQzlDO0FBQ0EsU0FBTztBQUNYO0FBS0EsTUFBTSxlQUFlLE1BQU07QUFDdkIsTUFBSTtBQUNKLE1BQUksY0FBYztBQUNsQixNQUFJLGFB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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/progress.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,QAAQ,cAAc;AAC/B,SAAS,cAAc;AACvB,SAAS,WAAW;AACpB,SAAS,YAAY;AAGd,MAAM,sBAAsB,KAAK,MAAM,QAAG;AAC1C,MAAM,sBAAsB,KAAK,OAAO,IAAI,QAAG;AAC/C,MAAM,sBAAsB,KAAK,IAAI,MAAM,QAAG;AAErD,MAAM,UAAU;AAChB,MAAM,mBAAmB;AAEzB,SAAS,gBAAgB,KAAc;AACnC,MAAI,WAAW,KAAK,KAAK,IAAI,IAAI,EAAE,SAAS;AAC5C,MAAI,IAAI,KAAK,SAAS;AAClB,eAAW,GAAG,QAAQ,IAAI,IAAI,KAAK,OAAO;AAAA,EAC9C;AACA,SAAO;AACX;AAKA,MAAM,eAAe,MAAM;AACvB,MAAI;AACJ,MAAI,cAAc;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["writeStatus", "Progress", "Status"]
|
|
6
6
|
}
|
package/package.json
CHANGED
package/src/util/progress.ts
CHANGED
|
@@ -31,6 +31,7 @@ function packageIdentity(pkg: Package) {
|
|
|
31
31
|
const writeStatus = (() => {
|
|
32
32
|
let lastStatus: undefined | string;
|
|
33
33
|
let needNewline = false;
|
|
34
|
+
let needsClear = false;
|
|
34
35
|
|
|
35
36
|
function intercept(stream: NodeJS.WriteStream) {
|
|
36
37
|
const actualWrite = stream.write;
|
|
@@ -60,6 +61,11 @@ const writeStatus = (() => {
|
|
|
60
61
|
break;
|
|
61
62
|
}
|
|
62
63
|
|
|
64
|
+
if (needsClear) {
|
|
65
|
+
actualWrite.call(stream, screen.erase.toEol);
|
|
66
|
+
needsClear = false;
|
|
67
|
+
}
|
|
68
|
+
|
|
63
69
|
return actualWrite.call(stream, payload, ...params);
|
|
64
70
|
};
|
|
65
71
|
}
|
|
@@ -84,6 +90,7 @@ const writeStatus = (() => {
|
|
|
84
90
|
});
|
|
85
91
|
|
|
86
92
|
lastStatus = text;
|
|
93
|
+
needsClear = willOverwrite;
|
|
87
94
|
};
|
|
88
95
|
})();
|
|
89
96
|
|
|
@@ -191,6 +198,7 @@ export class Progress {
|
|
|
191
198
|
|
|
192
199
|
async subtask(text: string, fn: () => Promise<void>) {
|
|
193
200
|
this.#subtasks.push(text);
|
|
201
|
+
this.#writeOngoing();
|
|
194
202
|
|
|
195
203
|
try {
|
|
196
204
|
await fn();
|