@matter/tools 0.13.0-alpha.0-20250327-8b06e5a79 → 0.13.0-alpha.0-20250328-6dde053de
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/ansi-text/std.js +2 -2
- package/dist/cjs/ansi-text/std.js.map +1 -1
- package/dist/cjs/ansi-text/wrapper.d.ts +1 -0
- package/dist/cjs/ansi-text/wrapper.d.ts.map +1 -1
- package/dist/cjs/ansi-text/wrapper.js +8 -3
- package/dist/cjs/ansi-text/wrapper.js.map +1 -1
- package/dist/esm/ansi-text/std.js +3 -3
- package/dist/esm/ansi-text/std.js.map +1 -1
- package/dist/esm/ansi-text/wrapper.d.ts +1 -0
- package/dist/esm/ansi-text/wrapper.d.ts.map +1 -1
- package/dist/esm/ansi-text/wrapper.js +9 -4
- package/dist/esm/ansi-text/wrapper.js.map +1 -1
- package/package.json +1 -1
- package/src/ansi-text/std.ts +2 -2
- package/src/ansi-text/wrapper.ts +9 -3
|
@@ -34,10 +34,10 @@ const DEFAULT_WRAP_PREFIX = ` ${import_text_builder.ansi.dim}\u2937${import_tex
|
|
|
34
34
|
var std;
|
|
35
35
|
((std2) => {
|
|
36
36
|
std2.out = (0, import_printer.Printer)(new import_text_writer.TextWriter((text) => import_node_process.stdout.write(text), { terminalWidth: import_node_process.stdout.columns }), {
|
|
37
|
-
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX }
|
|
37
|
+
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX, preserveSpace: true }
|
|
38
38
|
});
|
|
39
39
|
std2.err = (0, import_printer.Printer)(new import_text_writer.TextWriter((text) => import_node_process.stderr.write(text), { terminalWidth: import_node_process.stderr.columns }), {
|
|
40
|
-
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX }
|
|
40
|
+
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX, preserveSpace: true }
|
|
41
41
|
});
|
|
42
42
|
})(std || (std = {}));
|
|
43
43
|
//# sourceMappingURL=std.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/ansi-text/std.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAA+B;AAC/B,qBAAwB;AACxB,0BAAqB;AACrB,yBAA2B;AAT3B;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,sBAAsB,KAAK,yBAAK,GAAG,SAAI,yBAAK,IAAI,GAAG;AAElD,IAAU;AAAA,CAAV,CAAUA,SAAV;AAII,EAAMA,KAAA,UAAM,wBAAQ,IAAI,8BAAW,UAAQ,2BAAO,MAAM,IAAI,GAAG,EAAE,eAAe,2BAAO,QAAQ,CAAC,GAAG;AAAA,IACtG,MAAM,EAAE,YAAY,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAA+B;AAC/B,qBAAwB;AACxB,0BAAqB;AACrB,yBAA2B;AAT3B;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,sBAAsB,KAAK,yBAAK,GAAG,SAAI,yBAAK,IAAI,GAAG;AAElD,IAAU;AAAA,CAAV,CAAUA,SAAV;AAII,EAAMA,KAAA,UAAM,wBAAQ,IAAI,8BAAW,UAAQ,2BAAO,MAAM,IAAI,GAAG,EAAE,eAAe,2BAAO,QAAQ,CAAC,GAAG;AAAA,IACtG,MAAM,EAAE,YAAY,qBAAqB,eAAe,KAAK;AAAA,EACjE,CAAC;AAKM,EAAMA,KAAA,UAAM,wBAAQ,IAAI,8BAAW,UAAQ,2BAAO,MAAM,IAAI,GAAG,EAAE,eAAe,2BAAO,QAAQ,CAAC,GAAG;AAAA,IACtG,MAAM,EAAE,YAAY,qBAAqB,eAAe,KAAK;AAAA,EACjE,CAAC;AAAA,GAbY;",
|
|
5
5
|
"names": ["std"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/wrapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC;;GAEG;AACH,qBAAa,OAAQ,YAAW,QAAQ;;
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/wrapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC;;GAEG;AACH,qBAAa,OAAQ,YAAW,QAAQ;;gBAgBxB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;IAetD,IAAI,KAAK,mBAER;IAED,KAAK,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,QAAQ;IAWhC,KAAK;IAML,CAAC,MAAM,CAAC,OAAO,CAAC;CA8JnB;AAED,yBAAiB,OAAO,CAAC;IACrB,UAAiB,OAAO;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;KAC1B;IAED;;OAEG;IACI,MAAM,WAAW,eAAa,CAAC;IAEtC;;OAEG;IACI,MAAM,UAAU,eAAa,CAAC;CACxC"}
|
|
@@ -36,6 +36,7 @@ class Wrapper {
|
|
|
36
36
|
#target;
|
|
37
37
|
#wrapPrefix;
|
|
38
38
|
#preserveIndent;
|
|
39
|
+
#preserveSpace;
|
|
39
40
|
#splitStyling;
|
|
40
41
|
#inputState = "newline";
|
|
41
42
|
#outputState = "newline";
|
|
@@ -45,12 +46,13 @@ class Wrapper {
|
|
|
45
46
|
this.#emit();
|
|
46
47
|
};
|
|
47
48
|
constructor(target, options) {
|
|
48
|
-
const { wrapPrefix, preserveIndent, splitStyling } = options;
|
|
49
|
+
const { wrapPrefix, preserveIndent, splitStyling, preserveSpace } = options;
|
|
49
50
|
this.#target = target;
|
|
50
51
|
if (wrapPrefix !== void 0) {
|
|
51
52
|
this.#wrapPrefix = new import_contiguous_output_segment.ContiguousOutputSegment(...(0, import_tokenize.tokenize)(wrapPrefix));
|
|
52
53
|
}
|
|
53
54
|
this.#preserveIndent = preserveIndent ?? true;
|
|
55
|
+
this.#preserveSpace = preserveSpace ?? true;
|
|
54
56
|
this.#splitStyling = splitStyling ?? !!(this.#preserveIndent || this.#wrapPrefix || !this.#target.state.linePrefix);
|
|
55
57
|
this.#target.state.onRevert(this.#onRevert);
|
|
56
58
|
}
|
|
@@ -123,6 +125,9 @@ class Wrapper {
|
|
|
123
125
|
this.#enqueue(token);
|
|
124
126
|
break;
|
|
125
127
|
case "word":
|
|
128
|
+
if (this.#preserveSpace) {
|
|
129
|
+
this.#enqueue(token);
|
|
130
|
+
}
|
|
126
131
|
this.#emit();
|
|
127
132
|
this.#inputState = "space";
|
|
128
133
|
break;
|
|
@@ -146,7 +151,7 @@ class Wrapper {
|
|
|
146
151
|
remainingWidth--;
|
|
147
152
|
}
|
|
148
153
|
if (remainingWidth === void 0 || output.width <= remainingWidth) {
|
|
149
|
-
if (outputState === "inline") {
|
|
154
|
+
if (outputState === "inline" && !this.#preserveSpace) {
|
|
150
155
|
this.#target.write(SPACE);
|
|
151
156
|
}
|
|
152
157
|
this.#target.write(...output.tokens);
|
|
@@ -164,7 +169,7 @@ class Wrapper {
|
|
|
164
169
|
return;
|
|
165
170
|
}
|
|
166
171
|
const scanner = output.scan();
|
|
167
|
-
if (outputState === "inline") {
|
|
172
|
+
if (outputState === "inline" && !this.#preserveSpace) {
|
|
168
173
|
this.#target.write(SPACE);
|
|
169
174
|
}
|
|
170
175
|
this.#target.write(...scanner.take(remainingWidth));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/ansi-text/wrapper.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,uCAAwC;AACxC,sBAAyB;AACzB,mBAAsB;AAGtB,sBAAyB;AAZzB;AAAA;AAAA;AAAA;AAAA;AAcA,MAAM,UAAiB,EAAE,MAAM,UAAU;AACzC,MAAM,QAAe,EAAE,MAAM,eAAe,KAAK,KAAK,OAAO,EAAE;AAKxD,MAAM,QAA4B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAkE;AAAA,EAClE,eAAiD;AAAA,EACjD;AAAA,EACA;AAAA,EACA,YAAY,MAAM;AAGd,SAAK,MAAM;AAAA,EACf;AAAA,EAEA,YAAY,QAAkB,SAA0B;AACpD,UAAM,EAAE,YAAY,gBAAgB,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Wrapper"]
|
|
6
6
|
}
|
|
@@ -11,13 +11,13 @@ const DEFAULT_WRAP_PREFIX = ` ${ansi.dim}\u2937${ansi.not.dim} `;
|
|
|
11
11
|
var std;
|
|
12
12
|
((std2) => {
|
|
13
13
|
std2.out = Printer(new TextWriter((text) => stdout.write(text), { terminalWidth: stdout.columns }), {
|
|
14
|
-
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX }
|
|
14
|
+
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX, preserveSpace: true }
|
|
15
15
|
});
|
|
16
16
|
std2.err = Printer(new TextWriter((text) => stderr.write(text), { terminalWidth: stderr.columns }), {
|
|
17
|
-
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX }
|
|
17
|
+
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX, preserveSpace: true }
|
|
18
18
|
});
|
|
19
19
|
})(std || (std = {}));
|
|
20
20
|
export {
|
|
21
21
|
std
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Fuc2ktdGV4dC9zdGQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjUgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgc3RkZXJyLCBzdGRvdXQgfSBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5pbXBvcnQgeyBQcmludGVyIH0gZnJvbSBcIi4vcHJpbnRlci5qc1wiO1xuaW1wb3J0IHsgYW5zaSB9IGZyb20gXCIuL3RleHQtYnVpbGRlci5qc1wiO1xuaW1wb3J0IHsgVGV4dFdyaXRlciB9IGZyb20gXCIuL3RleHQtd3JpdGVyLmpzXCI7XG5cbmNvbnN0IERFRkFVTFRfV1JBUF9QUkVGSVggPSBgICAke2Fuc2kuZGltfVx1MjkzNyR7YW5zaS5ub3QuZGltfSBgO1xuXG5leHBvcnQgbmFtZXNwYWNlIHN0ZCB7XG4gICAgLyoqXG4gICAgICogV3JpdGVyIHRoYXQgd3JpdGVzIHRvIE5vZGUncyBzdGRvdXQuXG4gICAgICovXG4gICAgZXhwb3J0IGNvbnN0IG91dCA9IFByaW50ZXIobmV3IFRleHRXcml0ZXIodGV4dCA9PiBzdGRvdXQud3JpdGUodGV4dCksIHsgdGVybWluYWxXaWR0aDogc3Rkb3V0LmNvbHVtbnMgfSksIHtcbiAgICAgICAgd3JhcDogeyB3cmFwUHJlZml4OiBERUZBVUxUX1dSQVBfUFJFRklYLCBwcmVzZXJ2ZVNwYWNlOiB0cnVlIH0sXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXIgdGhhdCB3cml0ZXMgdG8gTm9kZSdzIHN0ZG91dC5cbiAgICAgKi9cbiAgICBleHBvcnQgY29uc3QgZXJyID0gUHJpbnRlcihuZXcgVGV4dFdyaXRlcih0ZXh0ID0+IHN0ZGVyci53cml0ZSh0ZXh0KSwgeyB0ZXJtaW5hbFdpZHRoOiBzdGRlcnIuY29sdW1ucyB9KSwge1xuICAgICAgICB3cmFwOiB7IHdyYXBQcmVmaXg6IERFRkFVTFRfV1JBUF9QUkVGSVgsIHByZXNlcnZlU3BhY2U6IHRydWUgfSxcbiAgICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxTQUFTLFFBQVEsY0FBYztBQUMvQixTQUFTLGVBQWU7QUFDeEIsU0FBUyxZQUFZO0FBQ3JCLFNBQVMsa0JBQWtCO0FBRTNCLE1BQU0sc0JBQXNCLEtBQUssS0FBSyxHQUFHLFNBQUksS0FBSyxJQUFJLEdBQUc7QUFFbEQsSUFBVTtBQUFBLENBQVYsQ0FBVUEsU0FBVjtBQUlJLEVBQU1BLEtBQUEsTUFBTSxRQUFRLElBQUksV0FBVyxVQUFRLE9BQU8sTUFBTSxJQUFJLEdBQUcsRUFBRSxlQUFlLE9BQU8sUUFBUSxDQUFDLEdBQUc7QUFBQSxJQUN0RyxNQUFNLEVBQUUsWUFBWSxxQkFBcUIsZUFBZSxLQUFLO0FBQUEsRUFDakUsQ0FBQztBQUtNLEVBQU1BLEtBQUEsTUFBTSxRQUFRLElBQUksV0FBVyxVQUFRLE9BQU8sTUFBTSxJQUFJLEdBQUcsRUFBRSxlQUFlLE9BQU8sUUFBUSxDQUFDLEdBQUc7QUFBQSxJQUN0RyxNQUFNLEVBQUUsWUFBWSxxQkFBcUIsZUFBZSxLQUFLO0FBQUEsRUFDakUsQ0FBQztBQUFBLEdBYlk7IiwKICAibmFtZXMiOiBbInN0ZCJdCn0K
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/ansi-text/std.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,QAAQ,cAAc;AAC/B,SAAS,eAAe;AACxB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAE3B,MAAM,sBAAsB,KAAK,KAAK,GAAG,SAAI,KAAK,IAAI,GAAG;AAElD,IAAU;AAAA,CAAV,CAAUA,SAAV;AAII,EAAMA,KAAA,MAAM,QAAQ,IAAI,WAAW,UAAQ,OAAO,MAAM,IAAI,GAAG,EAAE,eAAe,OAAO,QAAQ,CAAC,GAAG;AAAA,IACtG,MAAM,EAAE,YAAY,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,QAAQ,cAAc;AAC/B,SAAS,eAAe;AACxB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAE3B,MAAM,sBAAsB,KAAK,KAAK,GAAG,SAAI,KAAK,IAAI,GAAG;AAElD,IAAU;AAAA,CAAV,CAAUA,SAAV;AAII,EAAMA,KAAA,MAAM,QAAQ,IAAI,WAAW,UAAQ,OAAO,MAAM,IAAI,GAAG,EAAE,eAAe,OAAO,QAAQ,CAAC,GAAG;AAAA,IACtG,MAAM,EAAE,YAAY,qBAAqB,eAAe,KAAK;AAAA,EACjE,CAAC;AAKM,EAAMA,KAAA,MAAM,QAAQ,IAAI,WAAW,UAAQ,OAAO,MAAM,IAAI,GAAG,EAAE,eAAe,OAAO,QAAQ,CAAC,GAAG;AAAA,IACtG,MAAM,EAAE,YAAY,qBAAqB,eAAe,KAAK;AAAA,EACjE,CAAC;AAAA,GAbY;",
|
|
5
5
|
"names": ["std"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/wrapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC;;GAEG;AACH,qBAAa,OAAQ,YAAW,QAAQ;;
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/wrapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC;;GAEG;AACH,qBAAa,OAAQ,YAAW,QAAQ;;gBAgBxB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;IAetD,IAAI,KAAK,mBAER;IAED,KAAK,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,QAAQ;IAWhC,KAAK;IAML,CAAC,MAAM,CAAC,OAAO,CAAC;CA8JnB;AAED,yBAAiB,OAAO,CAAC;IACrB,UAAiB,OAAO;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;KAC1B;IAED;;OAEG;IACI,MAAM,WAAW,eAAa,CAAC;IAEtC;;OAEG;IACI,MAAM,UAAU,eAAa,CAAC;CACxC"}
|
|
@@ -13,6 +13,7 @@ class Wrapper {
|
|
|
13
13
|
#target;
|
|
14
14
|
#wrapPrefix;
|
|
15
15
|
#preserveIndent;
|
|
16
|
+
#preserveSpace;
|
|
16
17
|
#splitStyling;
|
|
17
18
|
#inputState = "newline";
|
|
18
19
|
#outputState = "newline";
|
|
@@ -22,12 +23,13 @@ class Wrapper {
|
|
|
22
23
|
this.#emit();
|
|
23
24
|
};
|
|
24
25
|
constructor(target, options) {
|
|
25
|
-
const { wrapPrefix, preserveIndent, splitStyling } = options;
|
|
26
|
+
const { wrapPrefix, preserveIndent, splitStyling, preserveSpace } = options;
|
|
26
27
|
this.#target = target;
|
|
27
28
|
if (wrapPrefix !== void 0) {
|
|
28
29
|
this.#wrapPrefix = new ContiguousOutputSegment(...tokenize(wrapPrefix));
|
|
29
30
|
}
|
|
30
31
|
this.#preserveIndent = preserveIndent ?? true;
|
|
32
|
+
this.#preserveSpace = preserveSpace ?? true;
|
|
31
33
|
this.#splitStyling = splitStyling ?? !!(this.#preserveIndent || this.#wrapPrefix || !this.#target.state.linePrefix);
|
|
32
34
|
this.#target.state.onRevert(this.#onRevert);
|
|
33
35
|
}
|
|
@@ -100,6 +102,9 @@ class Wrapper {
|
|
|
100
102
|
this.#enqueue(token);
|
|
101
103
|
break;
|
|
102
104
|
case "word":
|
|
105
|
+
if (this.#preserveSpace) {
|
|
106
|
+
this.#enqueue(token);
|
|
107
|
+
}
|
|
103
108
|
this.#emit();
|
|
104
109
|
this.#inputState = "space";
|
|
105
110
|
break;
|
|
@@ -123,7 +128,7 @@ class Wrapper {
|
|
|
123
128
|
remainingWidth--;
|
|
124
129
|
}
|
|
125
130
|
if (remainingWidth === void 0 || output.width <= remainingWidth) {
|
|
126
|
-
if (outputState === "inline") {
|
|
131
|
+
if (outputState === "inline" && !this.#preserveSpace) {
|
|
127
132
|
this.#target.write(SPACE);
|
|
128
133
|
}
|
|
129
134
|
this.#target.write(...output.tokens);
|
|
@@ -141,7 +146,7 @@ class Wrapper {
|
|
|
141
146
|
return;
|
|
142
147
|
}
|
|
143
148
|
const scanner = output.scan();
|
|
144
|
-
if (outputState === "inline") {
|
|
149
|
+
if (outputState === "inline" && !this.#preserveSpace) {
|
|
145
150
|
this.#target.write(SPACE);
|
|
146
151
|
}
|
|
147
152
|
this.#target.write(...scanner.take(remainingWidth));
|
|
@@ -185,4 +190,4 @@ class Wrapper {
|
|
|
185
190
|
export {
|
|
186
191
|
Wrapper
|
|
187
192
|
};
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Fuc2ktdGV4dC93cmFwcGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI1IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IENvbnN1bWVyIH0gZnJvbSBcIi4vY29uc3VtZXIuanNcIjtcbmltcG9ydCB7IENvbnRpZ3VvdXNPdXRwdXRTZWdtZW50IH0gZnJvbSBcIi4vY29udGlndW91cy1vdXRwdXQtc2VnbWVudC5qc1wiO1xuaW1wb3J0IHsgUHJvZHVjZXIgfSBmcm9tIFwiLi9wcm9kdWNlci5qc1wiO1xuaW1wb3J0IHsgU3R5bGUgfSBmcm9tIFwiLi9zdHlsZS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBUZXh0V3JpdGVyIH0gZnJvbSBcIi4vdGV4dC13cml0ZXIuanNcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4vdG9rZW4uanNcIjtcbmltcG9ydCB7IHRva2VuaXplIH0gZnJvbSBcIi4vdG9rZW5pemUuanNcIjtcblxuY29uc3QgTkVXTElORTogVG9rZW4gPSB7IGtpbmQ6IFwibmV3bGluZVwiIH07XG5jb25zdCBTUEFDRTogVG9rZW4gPSB7IGtpbmQ6IFwibm9uYnJlYWtpbmdcIiwgc3RyOiBcIiBcIiwgd2lkdGg6IDEgfTtcblxuLyoqXG4gKiBXcml0ZXMgdG8gYSB7QGxpbmsgVGV4dFdyaXRlcn0gd2l0aCBzdXBwb3J0IGZvciBzbWFydCB3cmFwcGluZyBvZiB0ZXh0LlxuICovXG5leHBvcnQgY2xhc3MgV3JhcHBlciBpbXBsZW1lbnRzIENvbnN1bWVyIHtcbiAgICAjdGFyZ2V0OiBDb25zdW1lcjtcbiAgICAjd3JhcFByZWZpeD86IENvbnRpZ3VvdXNPdXRwdXRTZWdtZW50O1xuICAgICNwcmVzZXJ2ZUluZGVudDogYm9vbGVhbjtcbiAgICAjc3BsaXRTdHlsaW5nOiBib29sZWFuO1xuICAgICNpbnB1dFN0YXRlOiBcIm5ld2xpbmVcIiB8IFwicHJlZml4XCIgfCBcImluZGVudFwiIHwgXCJ3b3JkXCIgfCBcInNwYWNlXCIgPSBcIm5ld2xpbmVcIjtcbiAgICAjb3V0cHV0U3RhdGU6IFwibmV3bGluZVwiIHwgXCJuZXd3cmFwXCIgfCBcImlubGluZVwiID0gXCJuZXdsaW5lXCI7XG4gICAgI2luZGVudD86IENvbnRpZ3VvdXNPdXRwdXRTZWdtZW50O1xuICAgICNvdXRwdXQ/OiBDb250aWd1b3VzT3V0cHV0U2VnbWVudDtcbiAgICAjb25SZXZlcnQgPSAoKSA9PiB7XG4gICAgICAgIC8vIFdoZW4gc3RhdGUgcmV2ZXJ0cyB3ZSBtYXkgaGF2ZSBidWZmZXJlZCBvdXRwdXQgd2UgaGF2ZSB5ZXQgdG8gZW1pdC4gIERvIHNvIG5vdyB0byBlbnN1cmUgaXQgcmVjZWl2ZXMgcHJvcGVyXG4gICAgICAgIC8vIHN0eWxpbmdcbiAgICAgICAgdGhpcy4jZW1pdCgpO1xuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcih0YXJnZXQ6IENvbnN1bWVyLCBvcHRpb25zOiBXcmFwcGVyLk9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyB3cmFwUHJlZml4LCBwcmVzZXJ2ZUluZGVudCwgc3BsaXRTdHlsaW5nIH0gPSBvcHRpb25zO1xuXG4gICAgICAgIHRoaXMuI3RhcmdldCA9IHRhcmdldDtcbiAgICAgICAgaWYgKHdyYXBQcmVmaXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jd3JhcFByZWZpeCA9IG5ldyBDb250aWd1b3VzT3V0cHV0U2VnbWVudCguLi50b2tlbml6ZSh3cmFwUHJlZml4KSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jcHJlc2VydmVJbmRlbnQgPSBwcmVzZXJ2ZUluZGVudCA/PyB0cnVlO1xuICAgICAgICB0aGlzLiNzcGxpdFN0eWxpbmcgPVxuICAgICAgICAgICAgc3BsaXRTdHlsaW5nID8/ICEhKHRoaXMuI3ByZXNlcnZlSW5kZW50IHx8IHRoaXMuI3dyYXBQcmVmaXggfHwgIXRoaXMuI3RhcmdldC5zdGF0ZS5saW5lUHJlZml4KTtcblxuICAgICAgICB0aGlzLiN0YXJnZXQuc3RhdGUub25SZXZlcnQodGhpcy4jb25SZXZlcnQpO1xuICAgIH1cblxuICAgIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI3RhcmdldC5zdGF0ZTtcbiAgICB9XG5cbiAgICB3cml0ZSguLi50ZXh0OiBQcm9kdWNlci5TZXF1ZW5jZSkge1xuICAgICAgICBpZiAodGhpcy4jdGFyZ2V0LnN0YXRlLnRlcm1pbmFsV2lkdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKC4uLnRleHQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBQcm9kdWNlci5vZih0ZXh0KSkge1xuICAgICAgICAgICAgdGhpcy4jYWRkVG9rZW4odG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuI2VtaXQoKTtcbiAgICAgICAgdGhpcy4jdGFyZ2V0LnN0YXRlLm9mZlJldmVydCh0aGlzLiNvblJldmVydCk7XG4gICAgICAgIHRoaXMuI3RhcmdldC5jbG9zZSgpO1xuICAgIH1cblxuICAgIFtTeW1ib2wuZGlzcG9zZV0oKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAjYWRkVG9rZW4odG9rZW46IFRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodG9rZW4ua2luZCkge1xuICAgICAgICAgICAgY2FzZSBcIm5ld2xpbmVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJjYXJyaWFnZS1yZXR1cm5cIjpcbiAgICAgICAgICAgICAgICB0aGlzLiNlbWl0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLiNpbmRlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy4jb3V0cHV0U3RhdGUgPSB0aGlzLiNpbnB1dFN0YXRlID0gXCJuZXdsaW5lXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgXCJhbnNpXCI6XG4gICAgICAgICAgICAgICAgdGhpcy4jZW5xdWV1ZSh0b2tlbik7XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRva2VuLnNlcXVlbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgV3JhcHBlci5wcmVmaXhTdGFydDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuI2lucHV0U3RhdGUgPSBcInByZWZpeFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBXcmFwcGVyLnByZWZpeFN0b3A6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiNpbnB1dFN0YXRlID0gXCJpbmRlbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBcInN0eWxlXCI6XG4gICAgICAgICAgICAgICAgdGhpcy4jZW5xdWV1ZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgXCJub25icmVha2luZ1wiOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLiNpbnB1dFN0YXRlID09PSBcInByZWZpeFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI2VucXVldWUodG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuI2lucHV0U3RhdGUgPT09IFwiaW5kZW50XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jaW5kZW50ID0gdGhpcy4jb3V0cHV0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNvdXRwdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuI2lucHV0U3RhdGUgPSBcIndvcmRcIjtcbiAgICAgICAgICAgICAgICB0aGlzLiNlbnF1ZXVlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBcInRhYlwiOlxuICAgICAgICAgICAgY2FzZSBcImJyZWFraW5nXCI6XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLiNpbnB1dFN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJuZXdsaW5lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy4jcHJlc2VydmVJbmRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiNlbnF1ZXVlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuI2lucHV0U3RhdGUgPSBcImluZGVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcInByZWZpeFwiOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiaW5kZW50XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiNlbnF1ZXVlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ3b3JkXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiNlbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiNpbnB1dFN0YXRlID0gXCJzcGFjZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2VtaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLiNvdXRwdXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3V0cHV0U3RhdGUgPSB0aGlzLiNvdXRwdXRTdGF0ZTtcbiAgICAgICAgaWYgKG91dHB1dFN0YXRlID09PSBcIm5ld2xpbmVcIikge1xuICAgICAgICAgICAgdGhpcy4jZW1pdFByZWZpeCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI291dHB1dFN0YXRlID0gXCJpbmxpbmVcIjtcblxuICAgICAgICBjb25zdCBvdXRwdXQgPSB0aGlzLiNvdXRwdXQ7XG4gICAgICAgIHRoaXMuI291dHB1dCA9IHVuZGVmaW5lZDtcblxuICAgICAgICBsZXQgcmVtYWluaW5nV2lkdGggPSB0aGlzLiN0YXJnZXQuc3RhdGUucmVtYWluaW5nV2lkdGghO1xuXG4gICAgICAgIC8vIExlYXZlIHJvb20gZm9yIGEgc3BhY2UgZXhjZXB0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmVcbiAgICAgICAgaWYgKHJlbWFpbmluZ1dpZHRoICE9PSB1bmRlZmluZWQgJiYgb3V0cHV0U3RhdGUgPT09IFwiaW5saW5lXCIpIHtcbiAgICAgICAgICAgIHJlbWFpbmluZ1dpZHRoLS07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZGVhbCBjYXNlIC0gbm90IHdyYXBwaW5nIG9yIHNlZ21lbnQgZml0cyBvbiBjdXJyZW50IGxpbmVcbiAgICAgICAgaWYgKHJlbWFpbmluZ1dpZHRoID09PSB1bmRlZmluZWQgfHwgb3V0cHV0LndpZHRoIDw9IHJlbWFpbmluZ1dpZHRoKSB7XG4gICAgICAgICAgICBpZiAob3V0cHV0U3RhdGUgPT09IFwiaW5saW5lXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiN0YXJnZXQud3JpdGUoU1BBQ0UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKC4uLm91dHB1dC50b2tlbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTGVhc3QgaWRlYWwgY2FzZSAtIHRoZSBmaXJzdC0gb3IgdGVydGlhcnktIHByZWZpeCBmaWxscyB1cCB0aGUgbGluZSBieSBpdHNlbGYuICBHaXZlIHVwIG9uIHdyYXBwaW5nXG4gICAgICAgIGNvbnN0IHdyYXBQcmVmaXhXaWR0aCA9ICh0aGlzLiN3cmFwUHJlZml4Py53aWR0aCA/PyAwKSArICh0aGlzLiNpbmRlbnQ/LndpZHRoID8/IDApO1xuICAgICAgICBjb25zdCBhdmFpbGFibGVXcmFwcGVkV2lkdGggPSB0aGlzLiN0YXJnZXQuc3RhdGUuYXZhaWxhYmxlV2lkdGghIC0gd3JhcFByZWZpeFdpZHRoO1xuICAgICAgICBpZiAoKG91dHB1dFN0YXRlID09PSBcIm5ld2xpbmVcIiAmJiByZW1haW5pbmdXaWR0aCA8PSAwKSB8fCBhdmFpbGFibGVXcmFwcGVkV2lkdGggPCAwKSB7XG4gICAgICAgICAgICB0aGlzLiN0YXJnZXQud3JpdGUoLi4ub3V0cHV0LnRva2Vucyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWNvbmQgYmVzdCBjYXNlIC0gdGhlIHNlZ21lbnQgZml0cyBvbiBhIG5ldyBsaW5lXG4gICAgICAgIGlmIChvdXRwdXQud2lkdGggPCBhdmFpbGFibGVXcmFwcGVkV2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuI3dyYXAoKTtcbiAgICAgICAgICAgIHRoaXMuI3RhcmdldC53cml0ZSguLi5vdXRwdXQudG9rZW5zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXJkIGJlc3QgY2FzZSAtIHdlIG5lZWQgdG8gd3JhcCB0aGUgc2VnbWVudCBpdHNlbGZcbiAgICAgICAgY29uc3Qgc2Nhbm5lciA9IG91dHB1dC5zY2FuKCk7XG4gICAgICAgIGlmIChvdXRwdXRTdGF0ZSA9PT0gXCJpbmxpbmVcIikge1xuICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKFNQQUNFKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLiN0YXJnZXQud3JpdGUoLi4uc2Nhbm5lci50YWtlKHJlbWFpbmluZ1dpZHRoKSk7XG4gICAgICAgIHdoaWxlICghc2Nhbm5lci5kb25lKSB7XG4gICAgICAgICAgICB0aGlzLiN3cmFwKCk7XG4gICAgICAgICAgICB0aGlzLiN0YXJnZXQud3JpdGUoLi4uc2Nhbm5lci50YWtlKGF2YWlsYWJsZVdyYXBwZWRXaWR0aCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2VtaXRQcmVmaXgoZXh0cmE/OiBDb250aWd1b3VzT3V0cHV0U2VnbWVudCkge1xuICAgICAgICBpZiAodGhpcy4jaW5kZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuI3RhcmdldC53cml0ZSguLi50aGlzLiNpbmRlbnQudG9rZW5zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXh0cmEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKC4uLmV4dHJhLnRva2Vucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjd3JhcCgpIHtcbiAgICAgICAgbGV0IHN0eWxlOiBTdHlsZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMuI3NwbGl0U3R5bGluZykge1xuICAgICAgICAgICAgc3R5bGUgPSB0aGlzLiN0YXJnZXQuc3RhdGUuc3R5bGU7XG4gICAgICAgICAgICB0aGlzLiN0YXJnZXQud3JpdGUoeyBraW5kOiBcInN0eWxlXCIsIHN0eWxlOiBTdHlsZS5Ob25lIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI3RhcmdldC53cml0ZShORVdMSU5FKTtcbiAgICAgICAgdGhpcy4jZW1pdFByZWZpeCh0aGlzLiN3cmFwUHJlZml4KTtcbiAgICAgICAgaWYgKHN0eWxlKSB7XG4gICAgICAgICAgICB0aGlzLiN0YXJnZXQud3JpdGUoeyBraW5kOiBcInN0eWxlXCIsIHN0eWxlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2VucXVldWUodG9rZW46IFRva2VuKSB7XG4gICAgICAgIGlmICh0aGlzLiNvdXRwdXQpIHtcbiAgICAgICAgICAgIHRoaXMuI291dHB1dC5wdXNoKHRva2VuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI291dHB1dCA9IG5ldyBDb250aWd1b3VzT3V0cHV0U2VnbWVudCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgV3JhcHBlciB7XG4gICAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICAgICAgd3JhcFByZWZpeD86IHN0cmluZztcbiAgICAgICAgcHJlc2VydmVJbmRlbnQ/OiBib29sZWFuO1xuICAgICAgICBzcGxpdFN0eWxpbmc/OiBib29sZWFuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByaXZhdGUgLSBiZWdpbiBkZW1hcmNhdGlvbiBvZiBsaW5lIHByZWZpeC5cbiAgICAgKi9cbiAgICBleHBvcnQgY29uc3QgcHJlZml4U3RhcnQgPSBcIlxceDFiWzw8flwiO1xuXG4gICAgLyoqXG4gICAgICogUHJpdmF0ZSAtIGVuZCBkZW1hcmNhdGlvbiBvZiBsaW5lIHByZWZpeC5cbiAgICAgKi9cbiAgICBleHBvcnQgY29uc3QgcHJlZml4U3RvcCA9IFwiXFx4MWJbPj5+XCI7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsU0FBUywrQkFBK0I7QUFDeEMsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxhQUFhO0FBR3RCLFNBQVMsZ0JBQWdCO0FBRXpCLE1BQU0sVUFBaUIsRUFBRSxNQUFNLFVBQVU7QUFDekMsTUFBTSxRQUFlLEVBQUUsTUFBTSxlQUFlLEtBQUssS0FBSyxPQUFPLEVBQUU7QUFL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
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Fuc2ktdGV4dC93cmFwcGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI1IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IENvbnN1bWVyIH0gZnJvbSBcIi4vY29uc3VtZXIuanNcIjtcbmltcG9ydCB7IENvbnRpZ3VvdXNPdXRwdXRTZWdtZW50IH0gZnJvbSBcIi4vY29udGlndW91cy1vdXRwdXQtc2VnbWVudC5qc1wiO1xuaW1wb3J0IHsgUHJvZHVjZXIgfSBmcm9tIFwiLi9wcm9kdWNlci5qc1wiO1xuaW1wb3J0IHsgU3R5bGUgfSBmcm9tIFwiLi9zdHlsZS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBUZXh0V3JpdGVyIH0gZnJvbSBcIi4vdGV4dC13cml0ZXIuanNcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4vdG9rZW4uanNcIjtcbmltcG9ydCB7IHRva2VuaXplIH0gZnJvbSBcIi4vdG9rZW5pemUuanNcIjtcblxuY29uc3QgTkVXTElORTogVG9rZW4gPSB7IGtpbmQ6IFwibmV3bGluZVwiIH07XG5jb25zdCBTUEFDRTogVG9rZW4gPSB7IGtpbmQ6IFwibm9uYnJlYWtpbmdcIiwgc3RyOiBcIiBcIiwgd2lkdGg6IDEgfTtcblxuLyoqXG4gKiBXcml0ZXMgdG8gYSB7QGxpbmsgVGV4dFdyaXRlcn0gd2l0aCBzdXBwb3J0IGZvciBzbWFydCB3cmFwcGluZyBvZiB0ZXh0LlxuICovXG5leHBvcnQgY2xhc3MgV3JhcHBlciBpbXBsZW1lbnRzIENvbnN1bWVyIHtcbiAgICAjdGFyZ2V0OiBDb25zdW1lcjtcbiAgICAjd3JhcFByZWZpeD86IENvbnRpZ3VvdXNPdXRwdXRTZWdtZW50O1xuICAgICNwcmVzZXJ2ZUluZGVudDogYm9vbGVhbjtcbiAgICAjcHJlc2VydmVTcGFjZTogYm9vbGVhbjtcbiAgICAjc3BsaXRTdHlsaW5nOiBib29sZWFuO1xuICAgICNpbnB1dFN0YXRlOiBcIm5ld2xpbmVcIiB8IFwicHJlZml4XCIgfCBcImluZGVudFwiIHwgXCJ3b3JkXCIgfCBcInNwYWNlXCIgPSBcIm5ld2xpbmVcIjtcbiAgICAjb3V0cHV0U3RhdGU6IFwibmV3bGluZVwiIHwgXCJuZXd3cmFwXCIgfCBcImlubGluZVwiID0gXCJuZXdsaW5lXCI7XG4gICAgI2luZGVudD86IENvbnRpZ3VvdXNPdXRwdXRTZWdtZW50O1xuICAgICNvdXRwdXQ/OiBDb250aWd1b3VzT3V0cHV0U2VnbWVudDtcbiAgICAjb25SZXZlcnQgPSAoKSA9PiB7XG4gICAgICAgIC8vIFdoZW4gc3RhdGUgcmV2ZXJ0cyB3ZSBtYXkgaGF2ZSBidWZmZXJlZCBvdXRwdXQgd2UgaGF2ZSB5ZXQgdG8gZW1pdC4gIERvIHNvIG5vdyB0byBlbnN1cmUgaXQgcmVjZWl2ZXMgcHJvcGVyXG4gICAgICAgIC8vIHN0eWxpbmdcbiAgICAgICAgdGhpcy4jZW1pdCgpO1xuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcih0YXJnZXQ6IENvbnN1bWVyLCBvcHRpb25zOiBXcmFwcGVyLk9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyB3cmFwUHJlZml4LCBwcmVzZXJ2ZUluZGVudCwgc3BsaXRTdHlsaW5nLCBwcmVzZXJ2ZVNwYWNlIH0gPSBvcHRpb25zO1xuXG4gICAgICAgIHRoaXMuI3RhcmdldCA9IHRhcmdldDtcbiAgICAgICAgaWYgKHdyYXBQcmVmaXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jd3JhcFByZWZpeCA9IG5ldyBDb250aWd1b3VzT3V0cHV0U2VnbWVudCguLi50b2tlbml6ZSh3cmFwUHJlZml4KSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jcHJlc2VydmVJbmRlbnQgPSBwcmVzZXJ2ZUluZGVudCA/PyB0cnVlO1xuICAgICAgICB0aGlzLiNwcmVzZXJ2ZVNwYWNlID0gcHJlc2VydmVTcGFjZSA/PyB0cnVlO1xuICAgICAgICB0aGlzLiNzcGxpdFN0eWxpbmcgPVxuICAgICAgICAgICAgc3BsaXRTdHlsaW5nID8/ICEhKHRoaXMuI3ByZXNlcnZlSW5kZW50IHx8IHRoaXMuI3dyYXBQcmVmaXggfHwgIXRoaXMuI3RhcmdldC5zdGF0ZS5saW5lUHJlZml4KTtcblxuICAgICAgICB0aGlzLiN0YXJnZXQuc3RhdGUub25SZXZlcnQodGhpcy4jb25SZXZlcnQpO1xuICAgIH1cblxuICAgIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI3RhcmdldC5zdGF0ZTtcbiAgICB9XG5cbiAgICB3cml0ZSguLi50ZXh0OiBQcm9kdWNlci5TZXF1ZW5jZSkge1xuICAgICAgICBpZiAodGhpcy4jdGFyZ2V0LnN0YXRlLnRlcm1pbmFsV2lkdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKC4uLnRleHQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBQcm9kdWNlci5vZih0ZXh0KSkge1xuICAgICAgICAgICAgdGhpcy4jYWRkVG9rZW4odG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuI2VtaXQoKTtcbiAgICAgICAgdGhpcy4jdGFyZ2V0LnN0YXRlLm9mZlJldmVydCh0aGlzLiNvblJldmVydCk7XG4gICAgICAgIHRoaXMuI3RhcmdldC5jbG9zZSgpO1xuICAgIH1cblxuICAgIFtTeW1ib2wuZGlzcG9zZV0oKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAjYWRkVG9rZW4odG9rZW46IFRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodG9rZW4ua2luZCkge1xuICAgICAgICAgICAgY2FzZSBcIm5ld2xpbmVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJjYXJyaWFnZS1yZXR1cm5cIjpcbiAgICAgICAgICAgICAgICB0aGlzLiNlbWl0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLiNpbmRlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy4jb3V0cHV0U3RhdGUgPSB0aGlzLiNpbnB1dFN0YXRlID0gXCJuZXdsaW5lXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgXCJhbnNpXCI6XG4gICAgICAgICAgICAgICAgdGhpcy4jZW5xdWV1ZSh0b2tlbik7XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRva2VuLnNlcXVlbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgV3JhcHBlci5wcmVmaXhTdGFydDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuI2lucHV0U3RhdGUgPSBcInByZWZpeFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBXcmFwcGVyLnByZWZpeFN0b3A6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiNpbnB1dFN0YXRlID0gXCJpbmRlbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBcInN0eWxlXCI6XG4gICAgICAgICAgICAgICAgdGhpcy4jZW5xdWV1ZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgXCJub25icmVha2luZ1wiOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLiNpbnB1dFN0YXRlID09PSBcInByZWZpeFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI2VucXVldWUodG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuI2lucHV0U3RhdGUgPT09IFwiaW5kZW50XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jaW5kZW50ID0gdGhpcy4jb3V0cHV0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNvdXRwdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuI2lucHV0U3RhdGUgPSBcIndvcmRcIjtcbiAgICAgICAgICAgICAgICB0aGlzLiNlbnF1ZXVlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBcInRhYlwiOlxuICAgICAgICAgICAgY2FzZSBcImJyZWFraW5nXCI6XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLiNpbnB1dFN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJuZXdsaW5lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy4jcHJlc2VydmVJbmRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiNlbnF1ZXVlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuI2lucHV0U3RhdGUgPSBcImluZGVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcInByZWZpeFwiOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiaW5kZW50XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiNlbnF1ZXVlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ3b3JkXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy4jcHJlc2VydmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuI2VucXVldWUodG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4jZW1pdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4jaW5wdXRTdGF0ZSA9IFwic3BhY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNlbWl0KCkge1xuICAgICAgICBpZiAodGhpcy4jb3V0cHV0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG91dHB1dFN0YXRlID0gdGhpcy4jb3V0cHV0U3RhdGU7XG4gICAgICAgIGlmIChvdXRwdXRTdGF0ZSA9PT0gXCJuZXdsaW5lXCIpIHtcbiAgICAgICAgICAgIHRoaXMuI2VtaXRQcmVmaXgoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLiNvdXRwdXRTdGF0ZSA9IFwiaW5saW5lXCI7XG5cbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gdGhpcy4jb3V0cHV0O1xuICAgICAgICB0aGlzLiNvdXRwdXQgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgbGV0IHJlbWFpbmluZ1dpZHRoID0gdGhpcy4jdGFyZ2V0LnN0YXRlLnJlbWFpbmluZ1dpZHRoITtcblxuICAgICAgICAvLyBMZWF2ZSByb29tIGZvciBhIHNwYWNlIGV4Y2VwdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lXG4gICAgICAgIGlmIChyZW1haW5pbmdXaWR0aCAhPT0gdW5kZWZpbmVkICYmIG91dHB1dFN0YXRlID09PSBcImlubGluZVwiKSB7XG4gICAgICAgICAgICByZW1haW5pbmdXaWR0aC0tO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWRlYWwgY2FzZSAtIG5vdCB3cmFwcGluZyBvciBzZWdtZW50IGZpdHMgb24gY3VycmVudCBsaW5lXG4gICAgICAgIGlmIChyZW1haW5pbmdXaWR0aCA9PT0gdW5kZWZpbmVkIHx8IG91dHB1dC53aWR0aCA8PSByZW1haW5pbmdXaWR0aCkge1xuICAgICAgICAgICAgaWYgKG91dHB1dFN0YXRlID09PSBcImlubGluZVwiICYmICF0aGlzLiNwcmVzZXJ2ZVNwYWNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKFNQQUNFKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuI3RhcmdldC53cml0ZSguLi5vdXRwdXQudG9rZW5zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExlYXN0IGlkZWFsIGNhc2UgLSB0aGUgZmlyc3QtIG9yIHRlcnRpYXJ5LSBwcmVmaXggZmlsbHMgdXAgdGhlIGxpbmUgYnkgaXRzZWxmLiAgR2l2ZSB1cCBvbiB3cmFwcGluZ1xuICAgICAgICBjb25zdCB3cmFwUHJlZml4V2lkdGggPSAodGhpcy4jd3JhcFByZWZpeD8ud2lkdGggPz8gMCkgKyAodGhpcy4jaW5kZW50Py53aWR0aCA/PyAwKTtcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlV3JhcHBlZFdpZHRoID0gdGhpcy4jdGFyZ2V0LnN0YXRlLmF2YWlsYWJsZVdpZHRoISAtIHdyYXBQcmVmaXhXaWR0aDtcbiAgICAgICAgaWYgKChvdXRwdXRTdGF0ZSA9PT0gXCJuZXdsaW5lXCIgJiYgcmVtYWluaW5nV2lkdGggPD0gMCkgfHwgYXZhaWxhYmxlV3JhcHBlZFdpZHRoIDwgMCkge1xuICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKC4uLm91dHB1dC50b2tlbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2Vjb25kIGJlc3QgY2FzZSAtIHRoZSBzZWdtZW50IGZpdHMgb24gYSBuZXcgbGluZVxuICAgICAgICBpZiAob3V0cHV0LndpZHRoIDwgYXZhaWxhYmxlV3JhcHBlZFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLiN3cmFwKCk7XG4gICAgICAgICAgICB0aGlzLiN0YXJnZXQud3JpdGUoLi4ub3V0cHV0LnRva2Vucyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlyZCBiZXN0IGNhc2UgLSB3ZSBuZWVkIHRvIHdyYXAgdGhlIHNlZ21lbnQgaXRzZWxmXG4gICAgICAgIGNvbnN0IHNjYW5uZXIgPSBvdXRwdXQuc2NhbigpO1xuICAgICAgICBpZiAob3V0cHV0U3RhdGUgPT09IFwiaW5saW5lXCIgJiYgIXRoaXMuI3ByZXNlcnZlU3BhY2UpIHtcbiAgICAgICAgICAgIHRoaXMuI3RhcmdldC53cml0ZShTUEFDRSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKC4uLnNjYW5uZXIudGFrZShyZW1haW5pbmdXaWR0aCkpO1xuICAgICAgICB3aGlsZSAoIXNjYW5uZXIuZG9uZSkge1xuICAgICAgICAgICAgdGhpcy4jd3JhcCgpO1xuICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKC4uLnNjYW5uZXIudGFrZShhdmFpbGFibGVXcmFwcGVkV2lkdGgpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNlbWl0UHJlZml4KGV4dHJhPzogQ29udGlndW91c091dHB1dFNlZ21lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuI2luZGVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLiN0YXJnZXQud3JpdGUoLi4udGhpcy4jaW5kZW50LnRva2Vucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4dHJhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuI3RhcmdldC53cml0ZSguLi5leHRyYS50b2tlbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3dyYXAoKSB7XG4gICAgICAgIGxldCBzdHlsZTogU3R5bGUgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0aGlzLiNzcGxpdFN0eWxpbmcpIHtcbiAgICAgICAgICAgIHN0eWxlID0gdGhpcy4jdGFyZ2V0LnN0YXRlLnN0eWxlO1xuICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKHsga2luZDogXCJzdHlsZVwiLCBzdHlsZTogU3R5bGUuTm9uZSB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLiN0YXJnZXQud3JpdGUoTkVXTElORSk7XG4gICAgICAgIHRoaXMuI2VtaXRQcmVmaXgodGhpcy4jd3JhcFByZWZpeCk7XG4gICAgICAgIGlmIChzdHlsZSkge1xuICAgICAgICAgICAgdGhpcy4jdGFyZ2V0LndyaXRlKHsga2luZDogXCJzdHlsZVwiLCBzdHlsZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNlbnF1ZXVlKHRva2VuOiBUb2tlbikge1xuICAgICAgICBpZiAodGhpcy4jb3V0cHV0KSB7XG4gICAgICAgICAgICB0aGlzLiNvdXRwdXQucHVzaCh0b2tlbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNvdXRwdXQgPSBuZXcgQ29udGlndW91c091dHB1dFNlZ21lbnQodG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFdyYXBwZXIge1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gICAgICAgIHdyYXBQcmVmaXg/OiBzdHJpbmc7XG4gICAgICAgIHByZXNlcnZlSW5kZW50PzogYm9vbGVhbjtcbiAgICAgICAgcHJlc2VydmVTcGFjZT86IGJvb2xlYW47XG4gICAgICAgIHNwbGl0U3R5bGluZz86IGJvb2xlYW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJpdmF0ZSAtIGJlZ2luIGRlbWFyY2F0aW9uIG9mIGxpbmUgcHJlZml4LlxuICAgICAqL1xuICAgIGV4cG9ydCBjb25zdCBwcmVmaXhTdGFydCA9IFwiXFx4MWJbPDx+XCI7XG5cbiAgICAvKipcbiAgICAgKiBQcml2YXRlIC0gZW5kIGRlbWFyY2F0aW9uIG9mIGxpbmUgcHJlZml4LlxuICAgICAqL1xuICAgIGV4cG9ydCBjb25zdCBwcmVmaXhTdG9wID0gXCJcXHgxYls+Pn5cIjtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQSxTQUFTLCtCQUErQjtBQUN4QyxTQUFTLGdCQUFnQjtBQUN6QixTQUFTLGFBQWE7QUFHdEIsU0FBUyxnQkFBZ0I7QUFFekIsTUFBTSxVQUFpQixFQUFFLE1BQU0sVUFBVTtBQUN6QyxNQUFNLFFBQWUsRUFBRSxNQUFNLGVBQWUsS0FBSyxLQUFLLE9BQU8sRUFBRTtBQUt4RCxNQUFNLFFBQTRCO0FBQUEsRUFDckM7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQSxjQUFrRTtBQUFBLEVBQ2xFLGVBQWlEO0FBQUEsRUFDakQ7QUFBQSxFQUNBO0FBQUEsRUFDQSxZQUFZLE1BQU07QUFHZCxTQUFLLE1BQU07QUFBQSxFQUNmO0FBQUEsRUFFQSxZQUFZLFFBQWtCLFNBQTBCO0FBQ3BELFVBQU0sRUFBRSxZQUFZLGdCQUFnQixjQUFjLGNBQWMsSUFBSTtBQUVwRSxTQUFLLFVBQVU7QUFDZixRQUFJLGVBQWUsUUFBVztBQUMxQixXQUFLLGNBQWMsSUFBSSx3QkFBd0IsR0FBRyxTQUFTLFVBQVUsQ0FBQztBQUFBLElBQzFFO0FBQ0EsU0FBSyxrQkFBa0Isa0JBQWtCO0FBQ3pDLFNBQUssaUJBQWlCLGlCQUFpQjtBQUN2QyxTQUFLLGdCQUNELGdCQUFnQixDQUFDLEVBQUUsS0FBSyxtQkFBbUIsS0FBSyxlQUFlLENBQUMsS0FBSyxRQUFRLE1BQU07QUFFdkYsU0FBSyxRQUFRLE1BQU0sU0FBUyxLQUFLLFNBQVM7QUFBQSxFQUM5QztBQUFBLEVBRUEsSUFBSSxRQUFRO0FBQ1IsV0FBTyxLQUFLLFFBQVE7QUFBQSxFQUN4QjtBQUFBLEVBRUEsU0FBUyxNQUF5QjtBQUM5QixRQUFJLEtBQUss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QUFDbkM7QUFBQSxJQUNKO0FBR0EsUUFBSSxPQUFPLFFBQVEsdUJBQXVCO0FBQ3RDLFdBQUssTUFBTTtBQUNYLFdBQUssUUFBUSxNQUFNLEdBQUcsT0FBTyxNQUFNO0FBQ25DO0FBQUEsSUFDSjtBQUdBLFVBQU0sVUFBVSxPQUFPLEtBQUs7QUFDNUIsUUFBSSxnQkFBZ0IsWUFBWSxDQUFDLEtBQUssZ0JBQWdCO0FBQ2xELFdBQUssUUFBUSxNQUFNLEtBQUs7QUFBQSxJQUM1QjtBQUNBLFNBQUssUUFBUSxNQUFNLEdBQUcsUUFBUSxLQUFLLGNBQWMsQ0FBQztBQUNsRCxXQUFPLENBQUMsUUFBUSxNQUFNO0FBQ2xCLFdBQUssTUFBTTtBQUNYLFdBQUssUUFBUSxNQUFNLEdBQUcsUUFBUSxLQUFLLHFCQUFxQixDQUFDO0FBQUEsSUFDN0Q7QUFBQSxFQUNKO0FBQUEsRUFFQSxZQUFZLE9BQWlDO0FBQ3pDLFFBQUksS0FBSyxZQUFZLFFBQVc7QUFDNUIsV0FBSyxRQUFRLE1BQU0sR0FBRyxLQUFLLFFBQVEsTUFBTTtBQUFBLElBQzdDO0FBQ0EsUUFBSSxVQUFVLFFBQVc7QUFDckIsV0FBSyxRQUFRLE1BQU0sR0FBRyxNQUFNLE1BQU07QUFBQSxJQUN0QztBQUFBLEVBQ0o7QUFBQSxFQUVBLFFBQVE7QUFDSixRQUFJO0FBQ0osUUFBSSxLQUFLLGVBQWU7QUFDcEIsY0FBUSxLQUFLLFFBQVEsTUFBTTtBQUMzQixXQUFLLFFBQVEsTUFBTSxFQUFFLE1BQU0sU0FBUyxPQUFPLE1BQU0sS0FBSyxDQUFDO0FBQUEsSUFDM0Q7QUFDQSxTQUFLLFFBQVEsTUFBTSxPQUFPO0FBQzFCLFNBQUssWUFBWSxLQUFLLFdBQVc7QUFDakMsUUFBSSxPQUFPO0FBQ1AsV0FBSyxRQUFRLE1BQU0sRUFBRSxNQUFNLFNBQVMsTUFBTSxDQUFDO0FBQUEsSUFDL0M7QUFBQSxFQUNKO0FBQUEsRUFFQSxTQUFTLE9BQWM7QUFDbkIsUUFBSSxLQUFLLFNBQVM7QUFDZCxXQUFLLFFBQVEsS0FBSyxLQUFLO0FBQUEsSUFDM0IsT0FBTztBQUNILFdBQUssVUFBVSxJQUFJLHdCQUF3QixLQUFLO0FBQUEsSUFDcEQ7QUFBQSxFQUNKO0FBQ0o7QUFBQSxDQUVPLENBQVVBLGFBQVY7QUFXSSxFQUFNQSxTQUFBLGNBQWM7QUFLcEIsRUFBTUEsU0FBQSxhQUFhO0FBQUEsR0FoQmI7IiwKICAibmFtZXMiOiBbIldyYXBwZXIiXQp9Cg==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/ansi-text/wrapper.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,+BAA+B;AACxC,SAAS,gBAAgB;AACzB,SAAS,aAAa;AAGtB,SAAS,gBAAgB;AAEzB,MAAM,UAAiB,EAAE,MAAM,UAAU;AACzC,MAAM,QAAe,EAAE,MAAM,eAAe,KAAK,KAAK,OAAO,EAAE;AAKxD,MAAM,QAA4B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAkE;AAAA,EAClE,eAAiD;AAAA,EACjD;AAAA,EACA;AAAA,EACA,YAAY,MAAM;AAGd,SAAK,MAAM;AAAA,EACf;AAAA,EAEA,YAAY,QAAkB,SAA0B;AACpD,UAAM,EAAE,YAAY,gBAAgB,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Wrapper"]
|
|
6
6
|
}
|
package/package.json
CHANGED
package/src/ansi-text/std.ts
CHANGED
|
@@ -16,13 +16,13 @@ export namespace std {
|
|
|
16
16
|
* Writer that writes to Node's stdout.
|
|
17
17
|
*/
|
|
18
18
|
export const out = Printer(new TextWriter(text => stdout.write(text), { terminalWidth: stdout.columns }), {
|
|
19
|
-
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX },
|
|
19
|
+
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX, preserveSpace: true },
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Writer that writes to Node's stdout.
|
|
24
24
|
*/
|
|
25
25
|
export const err = Printer(new TextWriter(text => stderr.write(text), { terminalWidth: stderr.columns }), {
|
|
26
|
-
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX },
|
|
26
|
+
wrap: { wrapPrefix: DEFAULT_WRAP_PREFIX, preserveSpace: true },
|
|
27
27
|
});
|
|
28
28
|
}
|
package/src/ansi-text/wrapper.ts
CHANGED
|
@@ -22,6 +22,7 @@ export class Wrapper implements Consumer {
|
|
|
22
22
|
#target: Consumer;
|
|
23
23
|
#wrapPrefix?: ContiguousOutputSegment;
|
|
24
24
|
#preserveIndent: boolean;
|
|
25
|
+
#preserveSpace: boolean;
|
|
25
26
|
#splitStyling: boolean;
|
|
26
27
|
#inputState: "newline" | "prefix" | "indent" | "word" | "space" = "newline";
|
|
27
28
|
#outputState: "newline" | "newwrap" | "inline" = "newline";
|
|
@@ -34,13 +35,14 @@ export class Wrapper implements Consumer {
|
|
|
34
35
|
};
|
|
35
36
|
|
|
36
37
|
constructor(target: Consumer, options: Wrapper.Options) {
|
|
37
|
-
const { wrapPrefix, preserveIndent, splitStyling } = options;
|
|
38
|
+
const { wrapPrefix, preserveIndent, splitStyling, preserveSpace } = options;
|
|
38
39
|
|
|
39
40
|
this.#target = target;
|
|
40
41
|
if (wrapPrefix !== undefined) {
|
|
41
42
|
this.#wrapPrefix = new ContiguousOutputSegment(...tokenize(wrapPrefix));
|
|
42
43
|
}
|
|
43
44
|
this.#preserveIndent = preserveIndent ?? true;
|
|
45
|
+
this.#preserveSpace = preserveSpace ?? true;
|
|
44
46
|
this.#splitStyling =
|
|
45
47
|
splitStyling ?? !!(this.#preserveIndent || this.#wrapPrefix || !this.#target.state.linePrefix);
|
|
46
48
|
|
|
@@ -129,6 +131,9 @@ export class Wrapper implements Consumer {
|
|
|
129
131
|
break;
|
|
130
132
|
|
|
131
133
|
case "word":
|
|
134
|
+
if (this.#preserveSpace) {
|
|
135
|
+
this.#enqueue(token);
|
|
136
|
+
}
|
|
132
137
|
this.#emit();
|
|
133
138
|
this.#inputState = "space";
|
|
134
139
|
break;
|
|
@@ -160,7 +165,7 @@ export class Wrapper implements Consumer {
|
|
|
160
165
|
|
|
161
166
|
// Ideal case - not wrapping or segment fits on current line
|
|
162
167
|
if (remainingWidth === undefined || output.width <= remainingWidth) {
|
|
163
|
-
if (outputState === "inline") {
|
|
168
|
+
if (outputState === "inline" && !this.#preserveSpace) {
|
|
164
169
|
this.#target.write(SPACE);
|
|
165
170
|
}
|
|
166
171
|
this.#target.write(...output.tokens);
|
|
@@ -184,7 +189,7 @@ export class Wrapper implements Consumer {
|
|
|
184
189
|
|
|
185
190
|
// Third best case - we need to wrap the segment itself
|
|
186
191
|
const scanner = output.scan();
|
|
187
|
-
if (outputState === "inline") {
|
|
192
|
+
if (outputState === "inline" && !this.#preserveSpace) {
|
|
188
193
|
this.#target.write(SPACE);
|
|
189
194
|
}
|
|
190
195
|
this.#target.write(...scanner.take(remainingWidth));
|
|
@@ -229,6 +234,7 @@ export namespace Wrapper {
|
|
|
229
234
|
export interface Options {
|
|
230
235
|
wrapPrefix?: string;
|
|
231
236
|
preserveIndent?: boolean;
|
|
237
|
+
preserveSpace?: boolean;
|
|
232
238
|
splitStyling?: boolean;
|
|
233
239
|
}
|
|
234
240
|
|