@matter/tools 0.12.2 → 0.12.3-alpha.0-20250205-ad3416ca3
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/chars.d.ts +11 -0
- package/dist/cjs/ansi-text/chars.d.ts.map +1 -0
- package/dist/cjs/ansi-text/chars.js +57 -0
- package/dist/cjs/ansi-text/chars.js.map +6 -0
- package/dist/cjs/ansi-text/consumer.d.ts +45 -0
- package/dist/cjs/ansi-text/consumer.d.ts.map +1 -0
- package/dist/cjs/ansi-text/consumer.js +22 -0
- package/dist/cjs/ansi-text/consumer.js.map +6 -0
- package/dist/cjs/ansi-text/contiguous-output-segment.d.ts +31 -0
- package/dist/cjs/ansi-text/contiguous-output-segment.d.ts.map +1 -0
- package/dist/cjs/ansi-text/contiguous-output-segment.js +156 -0
- package/dist/cjs/ansi-text/contiguous-output-segment.js.map +6 -0
- package/dist/cjs/ansi-text/index.d.ts +12 -0
- package/dist/cjs/ansi-text/index.d.ts.map +1 -0
- package/dist/cjs/ansi-text/index.js +29 -0
- package/dist/cjs/ansi-text/index.js.map +6 -0
- package/dist/cjs/ansi-text/printer.d.ts +24 -0
- package/dist/cjs/ansi-text/printer.d.ts.map +1 -0
- package/dist/cjs/ansi-text/printer.js +81 -0
- package/dist/cjs/ansi-text/printer.js.map +6 -0
- package/dist/cjs/ansi-text/producer.d.ts +17 -0
- package/dist/cjs/ansi-text/producer.d.ts.map +1 -0
- package/dist/cjs/ansi-text/producer.js +45 -0
- package/dist/cjs/ansi-text/producer.js.map +6 -0
- package/dist/cjs/ansi-text/screen.d.ts +13 -0
- package/dist/cjs/ansi-text/screen.d.ts.map +1 -0
- package/dist/cjs/ansi-text/screen.js +38 -0
- package/dist/cjs/ansi-text/screen.js.map +6 -0
- package/dist/cjs/ansi-text/sgr.d.ts +100 -0
- package/dist/cjs/ansi-text/sgr.d.ts.map +1 -0
- package/dist/cjs/ansi-text/sgr.js +140 -0
- package/dist/cjs/ansi-text/sgr.js.map +6 -0
- package/dist/cjs/ansi-text/std.d.ts +17 -0
- package/dist/cjs/ansi-text/std.d.ts.map +1 -0
- package/dist/cjs/ansi-text/std.js +43 -0
- package/dist/cjs/ansi-text/std.js.map +6 -0
- package/dist/cjs/ansi-text/style.d.ts +88 -0
- package/dist/cjs/ansi-text/style.d.ts.map +1 -0
- package/dist/cjs/ansi-text/style.js +257 -0
- package/dist/cjs/ansi-text/style.js.map +6 -0
- package/dist/cjs/ansi-text/text-builder.d.ts +78 -0
- package/dist/cjs/ansi-text/text-builder.d.ts.map +1 -0
- package/dist/cjs/ansi-text/text-builder.js +164 -0
- package/dist/cjs/ansi-text/text-builder.js.map +6 -0
- package/dist/cjs/ansi-text/text-writer.d.ts +30 -0
- package/dist/cjs/ansi-text/text-writer.d.ts.map +1 -0
- package/dist/cjs/ansi-text/text-writer.js +317 -0
- package/dist/cjs/ansi-text/text-writer.js.map +6 -0
- package/dist/cjs/ansi-text/token.d.ts +61 -0
- package/dist/cjs/ansi-text/token.d.ts.map +1 -0
- package/dist/cjs/ansi-text/token.js +22 -0
- package/dist/cjs/ansi-text/token.js.map +6 -0
- package/dist/cjs/ansi-text/tokenize.d.ts +11 -0
- package/dist/cjs/ansi-text/tokenize.d.ts.map +1 -0
- package/dist/cjs/ansi-text/tokenize.js +190 -0
- package/dist/cjs/ansi-text/tokenize.js.map +6 -0
- package/dist/cjs/ansi-text/truncator.d.ts +20 -0
- package/dist/cjs/ansi-text/truncator.d.ts.map +1 -0
- package/dist/cjs/ansi-text/truncator.js +72 -0
- package/dist/cjs/ansi-text/truncator.js.map +6 -0
- package/dist/cjs/ansi-text/visible-width-of.d.ts +10 -0
- package/dist/cjs/ansi-text/visible-width-of.d.ts.map +1 -0
- package/dist/cjs/ansi-text/visible-width-of.js +55 -0
- package/dist/cjs/ansi-text/visible-width-of.js.map +6 -0
- package/dist/cjs/ansi-text/wrapper.d.ts +34 -0
- package/dist/cjs/ansi-text/wrapper.d.ts.map +1 -0
- package/dist/cjs/ansi-text/wrapper.js +208 -0
- package/dist/cjs/ansi-text/wrapper.js.map +6 -0
- package/dist/cjs/building/cli.js +6 -6
- package/dist/cjs/building/cli.js.map +1 -1
- package/dist/cjs/building/graph.d.ts +2 -2
- package/dist/cjs/building/graph.d.ts.map +1 -1
- package/dist/cjs/building/graph.js.map +1 -1
- package/dist/cjs/building/project-builder.d.ts +38 -0
- package/dist/cjs/building/project-builder.d.ts.map +1 -0
- package/dist/cjs/building/project-builder.js +200 -0
- package/dist/cjs/building/project-builder.js.map +6 -0
- package/dist/cjs/building/tsconfig.js +1 -1
- package/dist/cjs/building/tsconfig.js.map +1 -1
- package/dist/cjs/index.d.ts +4 -6
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/running/ensure-compiled.js +2 -2
- package/dist/cjs/running/ensure-compiled.js.map +1 -1
- package/dist/cjs/util/commander.d.ts.map +1 -1
- package/dist/cjs/util/commander.js +4 -5
- package/dist/cjs/util/commander.js.map +2 -2
- package/dist/cjs/util/index.d.ts +1 -0
- package/dist/cjs/util/index.d.ts.map +1 -1
- package/dist/cjs/util/index.js +1 -0
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/cjs/util/progress.d.ts +2 -2
- package/dist/cjs/util/progress.d.ts.map +1 -1
- package/dist/cjs/util/progress.js +25 -53
- package/dist/cjs/util/progress.js.map +2 -2
- package/dist/cjs/versioning/versioner.js +2 -12
- package/dist/cjs/versioning/versioner.js.map +2 -2
- package/dist/esm/ansi-text/chars.d.ts +11 -0
- package/dist/esm/ansi-text/chars.d.ts.map +1 -0
- package/dist/esm/ansi-text/chars.js +37 -0
- package/dist/esm/ansi-text/chars.js.map +6 -0
- package/dist/esm/ansi-text/consumer.d.ts +45 -0
- package/dist/esm/ansi-text/consumer.d.ts.map +1 -0
- package/dist/esm/ansi-text/consumer.js +6 -0
- package/dist/esm/ansi-text/consumer.js.map +6 -0
- package/dist/esm/ansi-text/contiguous-output-segment.d.ts +31 -0
- package/dist/esm/ansi-text/contiguous-output-segment.d.ts.map +1 -0
- package/dist/esm/ansi-text/contiguous-output-segment.js +136 -0
- package/dist/esm/ansi-text/contiguous-output-segment.js.map +6 -0
- package/dist/esm/ansi-text/index.d.ts +12 -0
- package/dist/esm/ansi-text/index.d.ts.map +1 -0
- package/dist/esm/ansi-text/index.js +12 -0
- package/dist/esm/ansi-text/index.js.map +6 -0
- package/dist/esm/ansi-text/printer.d.ts +24 -0
- package/dist/esm/ansi-text/printer.d.ts.map +1 -0
- package/dist/esm/ansi-text/printer.js +61 -0
- package/dist/esm/ansi-text/printer.js.map +6 -0
- package/dist/esm/ansi-text/producer.d.ts +17 -0
- package/dist/esm/ansi-text/producer.d.ts.map +1 -0
- package/dist/esm/ansi-text/producer.js +25 -0
- package/dist/esm/ansi-text/producer.js.map +6 -0
- package/dist/esm/ansi-text/screen.d.ts +13 -0
- package/dist/esm/ansi-text/screen.d.ts.map +1 -0
- package/dist/esm/ansi-text/screen.js +18 -0
- package/dist/esm/ansi-text/screen.js.map +6 -0
- package/dist/esm/ansi-text/sgr.d.ts +100 -0
- package/dist/esm/ansi-text/sgr.d.ts.map +1 -0
- package/dist/esm/ansi-text/sgr.js +120 -0
- package/dist/esm/ansi-text/sgr.js.map +6 -0
- package/dist/esm/ansi-text/std.d.ts +17 -0
- package/dist/esm/ansi-text/std.d.ts.map +1 -0
- package/dist/esm/ansi-text/std.js +23 -0
- package/dist/esm/ansi-text/std.js.map +6 -0
- package/dist/esm/ansi-text/style.d.ts +88 -0
- package/dist/esm/ansi-text/style.d.ts.map +1 -0
- package/dist/esm/ansi-text/style.js +245 -0
- package/dist/esm/ansi-text/style.js.map +6 -0
- package/dist/esm/ansi-text/text-builder.d.ts +78 -0
- package/dist/esm/ansi-text/text-builder.d.ts.map +1 -0
- package/dist/esm/ansi-text/text-builder.js +150 -0
- package/dist/esm/ansi-text/text-builder.js.map +6 -0
- package/dist/esm/ansi-text/text-writer.d.ts +30 -0
- package/dist/esm/ansi-text/text-writer.d.ts.map +1 -0
- package/dist/esm/ansi-text/text-writer.js +297 -0
- package/dist/esm/ansi-text/text-writer.js.map +6 -0
- package/dist/esm/ansi-text/token.d.ts +61 -0
- package/dist/esm/ansi-text/token.d.ts.map +1 -0
- package/dist/esm/ansi-text/token.js +6 -0
- package/dist/esm/ansi-text/token.js.map +6 -0
- package/dist/esm/ansi-text/tokenize.d.ts +11 -0
- package/dist/esm/ansi-text/tokenize.d.ts.map +1 -0
- package/dist/esm/ansi-text/tokenize.js +170 -0
- package/dist/esm/ansi-text/tokenize.js.map +6 -0
- package/dist/esm/ansi-text/truncator.d.ts +20 -0
- package/dist/esm/ansi-text/truncator.d.ts.map +1 -0
- package/dist/esm/ansi-text/truncator.js +52 -0
- package/dist/esm/ansi-text/truncator.js.map +6 -0
- package/dist/esm/ansi-text/visible-width-of.d.ts +10 -0
- package/dist/esm/ansi-text/visible-width-of.d.ts.map +1 -0
- package/dist/esm/ansi-text/visible-width-of.js +35 -0
- package/dist/esm/ansi-text/visible-width-of.js.map +6 -0
- package/dist/esm/ansi-text/wrapper.d.ts +34 -0
- package/dist/esm/ansi-text/wrapper.d.ts.map +1 -0
- package/dist/esm/ansi-text/wrapper.js +188 -0
- package/dist/esm/ansi-text/wrapper.js.map +6 -0
- package/dist/esm/building/cli.js +3 -3
- package/dist/esm/building/cli.js.map +1 -1
- package/dist/esm/building/graph.d.ts +2 -2
- package/dist/esm/building/graph.d.ts.map +1 -1
- package/dist/esm/building/graph.js +1 -1
- package/dist/esm/building/graph.js.map +1 -1
- package/dist/esm/building/project-builder.d.ts +38 -0
- package/dist/esm/building/project-builder.d.ts.map +1 -0
- package/dist/esm/building/project-builder.js +180 -0
- package/dist/esm/building/project-builder.js.map +6 -0
- package/dist/esm/building/tsconfig.js +2 -2
- package/dist/esm/building/tsconfig.js.map +1 -1
- package/dist/esm/index.d.ts +4 -6
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/running/ensure-compiled.js +3 -3
- package/dist/esm/running/ensure-compiled.js.map +1 -1
- package/dist/esm/util/commander.d.ts.map +1 -1
- package/dist/esm/util/commander.js +5 -6
- package/dist/esm/util/commander.js.map +1 -1
- package/dist/esm/util/index.d.ts +1 -0
- package/dist/esm/util/index.d.ts.map +1 -1
- package/dist/esm/util/index.js +2 -1
- package/dist/esm/util/index.js.map +1 -1
- package/dist/esm/util/progress.d.ts +2 -2
- package/dist/esm/util/progress.d.ts.map +1 -1
- package/dist/esm/util/progress.js +26 -44
- package/dist/esm/util/progress.js.map +1 -1
- package/dist/esm/versioning/versioner.js +3 -3
- package/dist/esm/versioning/versioner.js.map +1 -1
- package/package.json +11 -1
- package/src/ansi-text/chars.ts +31 -0
- package/src/ansi-text/consumer.ts +53 -0
- package/src/ansi-text/contiguous-output-segment.ts +181 -0
- package/src/ansi-text/index.ts +14 -0
- package/src/ansi-text/printer.ts +86 -0
- package/src/ansi-text/producer.ts +29 -0
- package/src/ansi-text/screen.ts +18 -0
- package/src/ansi-text/sgr.ts +154 -0
- package/src/ansi-text/std.ts +28 -0
- package/src/ansi-text/style.ts +369 -0
- package/src/ansi-text/text-builder.ts +261 -0
- package/src/ansi-text/text-writer.ts +363 -0
- package/src/ansi-text/token.ts +76 -0
- package/src/ansi-text/tokenize.ts +212 -0
- package/src/ansi-text/truncator.ts +63 -0
- package/src/ansi-text/visible-width-of.ts +39 -0
- package/src/ansi-text/wrapper.ts +244 -0
- package/src/building/cli.ts +2 -2
- package/src/building/graph.ts +2 -2
- package/src/building/project-builder.ts +230 -0
- package/src/building/tsconfig.ts +2 -4
- package/src/index.ts +4 -6
- package/src/running/ensure-compiled.ts +2 -2
- package/src/util/commander.ts +4 -6
- package/src/util/index.ts +1 -0
- package/src/util/progress.ts +24 -61
- package/src/versioning/versioner.ts +2 -2
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ContiguousOutputSegment } from "./contiguous-output-segment.js";
|
|
7
|
+
import { Producer } from "./producer.js";
|
|
8
|
+
import { SgrOpcode } from "./sgr.js";
|
|
9
|
+
import { Style } from "./style.js";
|
|
10
|
+
import { tokenize } from "./tokenize.js";
|
|
11
|
+
const DEFAULT_TAB_WIDTH = 4;
|
|
12
|
+
class TextWriter {
|
|
13
|
+
tabWidth;
|
|
14
|
+
#terminalWidth;
|
|
15
|
+
#currentLineWidth = 0;
|
|
16
|
+
#out;
|
|
17
|
+
#activeStyle = Style.Inherit;
|
|
18
|
+
#styleDirty = true;
|
|
19
|
+
#currentStyle = Style.Inherit;
|
|
20
|
+
#linePrefix;
|
|
21
|
+
#state;
|
|
22
|
+
#styleEnabled = true;
|
|
23
|
+
#isNewLine = true;
|
|
24
|
+
#buffer;
|
|
25
|
+
#revertHandlers;
|
|
26
|
+
constructor(out, options) {
|
|
27
|
+
const { tabWidth, terminalWidth, linePrefix } = options ?? {};
|
|
28
|
+
this.#out = out;
|
|
29
|
+
this.tabWidth = tabWidth ?? DEFAULT_TAB_WIDTH;
|
|
30
|
+
this.#terminalWidth = terminalWidth;
|
|
31
|
+
if (linePrefix) {
|
|
32
|
+
this.#linePrefix = new ContiguousOutputSegment(...tokenize(linePrefix));
|
|
33
|
+
}
|
|
34
|
+
const self = this;
|
|
35
|
+
this.#state = function state(options2, executor) {
|
|
36
|
+
options2 = { ...options2 };
|
|
37
|
+
const revertTo = { ...self.state, options: options2 };
|
|
38
|
+
const { linePrefix: linePrefix2, style, buffer } = options2;
|
|
39
|
+
if (linePrefix2) {
|
|
40
|
+
if (self.#linePrefix) {
|
|
41
|
+
self.#linePrefix.push(linePrefix2);
|
|
42
|
+
} else {
|
|
43
|
+
self.#linePrefix = new ContiguousOutputSegment(linePrefix2);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (style) {
|
|
47
|
+
if (self.#currentStyle) {
|
|
48
|
+
self.#currentStyle = self.#currentStyle.addStyle(style);
|
|
49
|
+
} else {
|
|
50
|
+
self.#currentStyle = style;
|
|
51
|
+
}
|
|
52
|
+
self.#styleDirty = true;
|
|
53
|
+
}
|
|
54
|
+
if (!!buffer !== !!self.#buffer) {
|
|
55
|
+
if (buffer) {
|
|
56
|
+
self.#buffer = [];
|
|
57
|
+
} else {
|
|
58
|
+
self.#buffer = void 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const context = {
|
|
62
|
+
close() {
|
|
63
|
+
if (self.#revertHandlers) {
|
|
64
|
+
for (const fn of self.#revertHandlers) {
|
|
65
|
+
fn();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (revertTo.style) {
|
|
69
|
+
revertTo.style = self.#currentStyle.undoStyle.addStyle(revertTo.style);
|
|
70
|
+
} else {
|
|
71
|
+
revertTo.style = Style.None;
|
|
72
|
+
}
|
|
73
|
+
for (const key in revertTo) {
|
|
74
|
+
self.state[key] = revertTo[key];
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
[Symbol.dispose]() {
|
|
78
|
+
this.close();
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
if (executor) {
|
|
82
|
+
try {
|
|
83
|
+
executor();
|
|
84
|
+
} finally {
|
|
85
|
+
context.close();
|
|
86
|
+
}
|
|
87
|
+
} else {
|
|
88
|
+
return context;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
Object.defineProperties(this.#state, {
|
|
92
|
+
style: {
|
|
93
|
+
get() {
|
|
94
|
+
return self.#currentStyle;
|
|
95
|
+
},
|
|
96
|
+
set(style) {
|
|
97
|
+
self.#currentStyle = style ?? Style.Inherit;
|
|
98
|
+
self.#styleDirty = true;
|
|
99
|
+
},
|
|
100
|
+
enumerable: true
|
|
101
|
+
},
|
|
102
|
+
linePrefix: {
|
|
103
|
+
get() {
|
|
104
|
+
return self.#linePrefix?.toString();
|
|
105
|
+
},
|
|
106
|
+
set(prefix) {
|
|
107
|
+
if (prefix) {
|
|
108
|
+
self.#linePrefix = new ContiguousOutputSegment(...tokenize(prefix));
|
|
109
|
+
} else {
|
|
110
|
+
self.#linePrefix = void 0;
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
enumerable: true
|
|
114
|
+
},
|
|
115
|
+
terminalWidth: {
|
|
116
|
+
get() {
|
|
117
|
+
return self.#terminalWidth;
|
|
118
|
+
},
|
|
119
|
+
set(width) {
|
|
120
|
+
self.#terminalWidth = width;
|
|
121
|
+
},
|
|
122
|
+
enumerable: true
|
|
123
|
+
},
|
|
124
|
+
styleEnabled: {
|
|
125
|
+
get() {
|
|
126
|
+
return self.#styleEnabled;
|
|
127
|
+
},
|
|
128
|
+
set(enabled) {
|
|
129
|
+
self.#styleEnabled = enabled;
|
|
130
|
+
},
|
|
131
|
+
enumerable: true
|
|
132
|
+
},
|
|
133
|
+
availableWidth: {
|
|
134
|
+
get() {
|
|
135
|
+
if (self.#terminalWidth === void 0) {
|
|
136
|
+
return void 0;
|
|
137
|
+
}
|
|
138
|
+
if (self.#linePrefix) {
|
|
139
|
+
const width = self.#terminalWidth - self.#linePrefix.width;
|
|
140
|
+
if (width > 0) {
|
|
141
|
+
return width;
|
|
142
|
+
}
|
|
143
|
+
return void 0;
|
|
144
|
+
}
|
|
145
|
+
return self.#terminalWidth;
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
remainingWidth: {
|
|
149
|
+
get() {
|
|
150
|
+
if (self.#terminalWidth === void 0) {
|
|
151
|
+
return void 0;
|
|
152
|
+
}
|
|
153
|
+
return self.#terminalWidth - self.#currentLineWidth;
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
buffer: {
|
|
157
|
+
get() {
|
|
158
|
+
return !!self.#buffer;
|
|
159
|
+
},
|
|
160
|
+
set(buffering) {
|
|
161
|
+
if (!!self.#buffer === buffering) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
if (buffering) {
|
|
165
|
+
self.#buffer = [];
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (self.#buffer) {
|
|
169
|
+
self.#out(self.#buffer.join(""));
|
|
170
|
+
self.#buffer = void 0;
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
enumerable: true
|
|
174
|
+
},
|
|
175
|
+
onRevert: {
|
|
176
|
+
value(fn) {
|
|
177
|
+
if (!self.#revertHandlers) {
|
|
178
|
+
self.#revertHandlers = /* @__PURE__ */ new Set();
|
|
179
|
+
}
|
|
180
|
+
self.#revertHandlers.add(fn);
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
offRevert: {
|
|
184
|
+
value(fn) {
|
|
185
|
+
if (self.#revertHandlers) {
|
|
186
|
+
self.#revertHandlers.add(fn);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
get state() {
|
|
193
|
+
return this.#state;
|
|
194
|
+
}
|
|
195
|
+
write(...text) {
|
|
196
|
+
for (const token of Producer.of(text)) {
|
|
197
|
+
this.#addToken(token);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
close() {
|
|
201
|
+
this.#writeStyle();
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Reset styling.
|
|
205
|
+
*/
|
|
206
|
+
reset() {
|
|
207
|
+
if (this.#currentStyle.styleCodes.find((code) => code !== SgrOpcode.reset)) {
|
|
208
|
+
this.#currentStyle = Style.None;
|
|
209
|
+
this.#styleDirty = true;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
#addToken(token, forLinePrefix = false) {
|
|
213
|
+
if (this.#isNewLine && this.#linePrefix && !forLinePrefix) {
|
|
214
|
+
this.#isNewLine = false;
|
|
215
|
+
const style = this.#currentStyle;
|
|
216
|
+
this.#currentStyle = Style.None;
|
|
217
|
+
this.#styleDirty = true;
|
|
218
|
+
for (const token2 of this.#linePrefix.tokens) {
|
|
219
|
+
this.#addToken(token2, true);
|
|
220
|
+
}
|
|
221
|
+
this.#currentStyle = style;
|
|
222
|
+
this.#styleDirty = true;
|
|
223
|
+
}
|
|
224
|
+
switch (token.kind) {
|
|
225
|
+
case "newline":
|
|
226
|
+
this.#emitLine("\n");
|
|
227
|
+
break;
|
|
228
|
+
case "carriage-return":
|
|
229
|
+
this.#emitLine("\r");
|
|
230
|
+
break;
|
|
231
|
+
case "tab":
|
|
232
|
+
let width = this.tabWidth - this.#currentLineWidth % this.tabWidth;
|
|
233
|
+
if (width === 0) {
|
|
234
|
+
width = this.tabWidth;
|
|
235
|
+
}
|
|
236
|
+
this.#writeText("".padStart(width));
|
|
237
|
+
this.#currentLineWidth += width;
|
|
238
|
+
break;
|
|
239
|
+
case "breaking":
|
|
240
|
+
this.#writeText(token.str);
|
|
241
|
+
this.#currentLineWidth += token.width;
|
|
242
|
+
break;
|
|
243
|
+
case "style":
|
|
244
|
+
this.#currentStyle = this.#currentStyle.addStyle(token.style);
|
|
245
|
+
this.#styleDirty = true;
|
|
246
|
+
break;
|
|
247
|
+
case "ansi":
|
|
248
|
+
if (this.#styleEnabled) {
|
|
249
|
+
this.#writeText(token.sequence);
|
|
250
|
+
}
|
|
251
|
+
if (token.newColumn !== void 0) {
|
|
252
|
+
if (!this.#currentLineWidth) {
|
|
253
|
+
this.#isNewLine = true;
|
|
254
|
+
}
|
|
255
|
+
this.#currentLineWidth = token.newColumn;
|
|
256
|
+
}
|
|
257
|
+
break;
|
|
258
|
+
case "nonbreaking":
|
|
259
|
+
this.#writeText(token.str);
|
|
260
|
+
this.#currentLineWidth += token.width;
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
#writeText(text) {
|
|
265
|
+
this.#writeStyle();
|
|
266
|
+
this.#emit(text);
|
|
267
|
+
}
|
|
268
|
+
#writeStyle() {
|
|
269
|
+
if (this.#styleDirty && this.#styleEnabled) {
|
|
270
|
+
this.#styleDirty = false;
|
|
271
|
+
this.#emit(this.#activeStyle.diffStyle(this.#currentStyle).toString());
|
|
272
|
+
this.#activeStyle = this.#currentStyle;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
#emit(text) {
|
|
276
|
+
if (this.#buffer) {
|
|
277
|
+
this.#buffer.push(text);
|
|
278
|
+
} else {
|
|
279
|
+
this.#out(text);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
#emitLine(terminator) {
|
|
283
|
+
this.#writeStyle();
|
|
284
|
+
this.#beginLine();
|
|
285
|
+
if (terminator) {
|
|
286
|
+
this.#emit(terminator);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
#beginLine() {
|
|
290
|
+
this.#isNewLine = true;
|
|
291
|
+
this.#currentLineWidth = 0;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
export {
|
|
295
|
+
TextWriter
|
|
296
|
+
};
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Fuc2ktdGV4dC90ZXh0LXdyaXRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNCBNYXR0ZXIuanMgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBDb25zdW1lciB9IGZyb20gXCIuL2NvbnN1bWVyLmpzXCI7XG5pbXBvcnQgeyBDb250aWd1b3VzT3V0cHV0U2VnbWVudCB9IGZyb20gXCIuL2NvbnRpZ3VvdXMtb3V0cHV0LXNlZ21lbnQuanNcIjtcbmltcG9ydCB7IFByb2R1Y2VyIH0gZnJvbSBcIi4vcHJvZHVjZXIuanNcIjtcbmltcG9ydCB7IFNnck9wY29kZSB9IGZyb20gXCIuL3Nnci5qc1wiO1xuaW1wb3J0IHsgU3R5bGUgfSBmcm9tIFwiLi9zdHlsZS5qc1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiLi90b2tlbi5qc1wiO1xuaW1wb3J0IHsgdG9rZW5pemUgfSBmcm9tIFwiLi90b2tlbml6ZS5qc1wiO1xuXG5jb25zdCBERUZBVUxUX1RBQl9XSURUSCA9IDQ7XG5cbi8qKlxuICogTG93LWxldmVsIHRleHQgb3V0cHV0IHdpdGggQU5TSSBlc2NhcGUgc2VxdWVuY2VzLCBtYWludGFpbmluZyBzdGF0ZSByZWdhcmRpbmcgc3R5bGUgYW5kIHdpZHRoIG9mIGN1cnJlbnQgbGluZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFRleHRXcml0ZXIgaW1wbGVtZW50cyBDb25zdW1lciB7XG4gICAgdGFiV2lkdGg6IG51bWJlcjtcblxuICAgICN0ZXJtaW5hbFdpZHRoPzogbnVtYmVyO1xuICAgICNjdXJyZW50TGluZVdpZHRoID0gMDtcbiAgICAjb3V0OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICAgICNhY3RpdmVTdHlsZSA9IFN0eWxlLkluaGVyaXQ7XG4gICAgI3N0eWxlRGlydHkgPSB0cnVlO1xuICAgICNjdXJyZW50U3R5bGUgPSBTdHlsZS5Jbmhlcml0O1xuICAgICNsaW5lUHJlZml4PzogQ29udGlndW91c091dHB1dFNlZ21lbnQ7XG4gICAgI3N0YXRlOiBDb25zdW1lci5TdGF0ZTtcbiAgICAjc3R5bGVFbmFibGVkID0gdHJ1ZTtcbiAgICAjaXNOZXdMaW5lID0gdHJ1ZTtcbiAgICAjYnVmZmVyPzogc3RyaW5nW107XG4gICAgI3JldmVydEhhbmRsZXJzPzogU2V0PCgpID0+IHZvaWQ+O1xuXG4gICAgY29uc3RydWN0b3Iob3V0OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkLCBvcHRpb25zPzogV3JpdGVyLk9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyB0YWJXaWR0aCwgdGVybWluYWxXaWR0aCwgbGluZVByZWZpeCB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgICAgICAgdGhpcy4jb3V0ID0gb3V0O1xuICAgICAgICB0aGlzLnRhYldpZHRoID0gdGFiV2lkdGggPz8gREVGQVVMVF9UQUJfV0lEVEg7XG4gICAgICAgIHRoaXMuI3Rlcm1pbmFsV2lkdGggPSB0ZXJtaW5hbFdpZHRoO1xuICAgICAgICBpZiAobGluZVByZWZpeCkge1xuICAgICAgICAgICAgdGhpcy4jbGluZVByZWZpeCA9IG5ldyBDb250aWd1b3VzT3V0cHV0U2VnbWVudCguLi50b2tlbml6ZShsaW5lUHJlZml4KSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgICAgICB0aGlzLiNzdGF0ZSA9IGZ1bmN0aW9uIHN0YXRlKG9wdGlvbnM/OiBDb25zdW1lci5PcHRpb25zLCBleGVjdXRvcj86ICgpID0+IHZvaWQpOiBDb25zdW1lci5Db250ZXh0IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMgfTtcblxuICAgICAgICAgICAgY29uc3QgcmV2ZXJ0VG8gPSB7IC4uLnNlbGYuc3RhdGUsIG9wdGlvbnMgfSBhcyBDb25zdW1lci5PcHRpb25zO1xuXG4gICAgICAgICAgICBjb25zdCB7IGxpbmVQcmVmaXgsIHN0eWxlLCBidWZmZXIgfSA9IG9wdGlvbnM7XG4gICAgICAgICAgICBpZiAobGluZVByZWZpeCkge1xuICAgICAgICAgICAgICAgIGlmIChzZWxmLiNsaW5lUHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuI2xpbmVQcmVmaXgucHVzaChsaW5lUHJlZml4KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLiNsaW5lUHJlZml4ID0gbmV3IENvbnRpZ3VvdXNPdXRwdXRTZWdtZW50KGxpbmVQcmVmaXgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHN0eWxlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuI2N1cnJlbnRTdHlsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLiNjdXJyZW50U3R5bGUgPSBzZWxmLiNjdXJyZW50U3R5bGUuYWRkU3R5bGUoc3R5bGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuI2N1cnJlbnRTdHlsZSA9IHN0eWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZWxmLiNzdHlsZURpcnR5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCEhYnVmZmVyICE9PSAhIXNlbGYuI2J1ZmZlcikge1xuICAgICAgICAgICAgICAgIGlmIChidWZmZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi4jYnVmZmVyID0gW107XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi4jYnVmZmVyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IHtcbiAgICAgICAgICAgICAgICBjbG9zZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuI3JldmVydEhhbmRsZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZuIG9mIHNlbGYuI3JldmVydEhhbmRsZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXZlcnRUby5zdHlsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2ZXJ0VG8uc3R5bGUgPSBzZWxmLiNjdXJyZW50U3R5bGUudW5kb1N0eWxlLmFkZFN0eWxlKHJldmVydFRvLnN0eWxlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmVydFRvLnN0eWxlID0gU3R5bGUuTm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJldmVydFRvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5zdGF0ZSBhcyBhbnkpW2tleV0gPSAocmV2ZXJ0VG8gYXMgYW55KVtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIFtTeW1ib2wuZGlzcG9zZV0oKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKGV4ZWN1dG9yKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3IoKTtcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBhcyBDb25zdW1lci5TdGF0ZTtcblxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLiNzdGF0ZSwge1xuICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICBnZXQodGhpczogbmV2ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuI2N1cnJlbnRTdHlsZTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgc2V0KHRoaXM6IG5ldmVyLCBzdHlsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLiNjdXJyZW50U3R5bGUgPSBzdHlsZSA/PyBTdHlsZS5Jbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICBzZWxmLiNzdHlsZURpcnR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGxpbmVQcmVmaXg6IHtcbiAgICAgICAgICAgICAgICBnZXQodGhpczogbmV2ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuI2xpbmVQcmVmaXg/LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIHNldCh0aGlzOiBuZXZlciwgcHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmVmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuI2xpbmVQcmVmaXggPSBuZXcgQ29udGlndW91c091dHB1dFNlZ21lbnQoLi4udG9rZW5pemUocHJlZml4KSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLiNsaW5lUHJlZml4ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB0ZXJtaW5hbFdpZHRoOiB7XG4gICAgICAgICAgICAgICAgZ2V0KHRoaXM6IG5ldmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLiN0ZXJtaW5hbFdpZHRoO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBzZXQodGhpczogbmV2ZXIsIHdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi4jdGVybWluYWxXaWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc3R5bGVFbmFibGVkOiB7XG4gICAgICAgICAgICAgICAgZ2V0KHRoaXM6IG5ldmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLiNzdHlsZUVuYWJsZWQ7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIHNldCh0aGlzOiBuZXZlciwgZW5hYmxlZDogYm9vbGVhbikge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLiNzdHlsZUVuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgYXZhaWxhYmxlV2lkdGg6IHtcbiAgICAgICAgICAgICAgICBnZXQodGhpczogbmV2ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuI3Rlcm1pbmFsV2lkdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLiNsaW5lUHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWR0aCA9IHNlbGYuI3Rlcm1pbmFsV2lkdGggLSBzZWxmLiNsaW5lUHJlZml4LndpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi4jdGVybWluYWxXaWR0aDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcmVtYWluaW5nV2lkdGg6IHtcbiAgICAgICAgICAgICAgICBnZXQodGhpczogbmV2ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuI3Rlcm1pbmFsV2lkdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi4jdGVybWluYWxXaWR0aCAtIHNlbGYuI2N1cnJlbnRMaW5lV2lkdGg7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGJ1ZmZlcjoge1xuICAgICAgICAgICAgICAgIGdldCh0aGlzOiBuZXZlcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gISFzZWxmLiNidWZmZXI7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIHNldCh0aGlzOiBuZXZlciwgYnVmZmVyaW5nOiBib29sZWFuKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghIXNlbGYuI2J1ZmZlciA9PT0gYnVmZmVyaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGJ1ZmZlcmluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi4jYnVmZmVyID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuI2J1ZmZlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi4jb3V0KHNlbGYuI2J1ZmZlci5qb2luKFwiXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuI2J1ZmZlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgb25SZXZlcnQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZShmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXNlbGYuI3JldmVydEhhbmRsZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLiNyZXZlcnRIYW5kbGVycyA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWxmLiNyZXZlcnRIYW5kbGVycy5hZGQoZm4pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBvZmZSZXZlcnQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZShmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi4jcmV2ZXJ0SGFuZGxlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuI3JldmVydEhhbmRsZXJzLmFkZChmbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy4jc3RhdGU7XG4gICAgfVxuXG4gICAgd3JpdGUoLi4udGV4dDogUHJvZHVjZXIuU2VxdWVuY2UpIHtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBQcm9kdWNlci5vZih0ZXh0KSkge1xuICAgICAgICAgICAgdGhpcy4jYWRkVG9rZW4odG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuI3dyaXRlU3R5bGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldCBzdHlsaW5nLlxuICAgICAqL1xuICAgIHJlc2V0KCkge1xuICAgICAgICBpZiAodGhpcy4jY3VycmVudFN0eWxlLnN0eWxlQ29kZXMuZmluZChjb2RlID0+IGNvZGUgIT09IFNnck9wY29kZS5yZXNldCkpIHtcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnRTdHlsZSA9IFN0eWxlLk5vbmU7XG4gICAgICAgICAgICB0aGlzLiNzdHlsZURpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNhZGRUb2tlbih0b2tlbjogVG9rZW4sIGZvckxpbmVQcmVmaXggPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy4jaXNOZXdMaW5lICYmIHRoaXMuI2xpbmVQcmVmaXggJiYgIWZvckxpbmVQcmVmaXgpIHtcbiAgICAgICAgICAgIHRoaXMuI2lzTmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSB0aGlzLiNjdXJyZW50U3R5bGU7XG4gICAgICAgICAgICB0aGlzLiNjdXJyZW50U3R5bGUgPSBTdHlsZS5Ob25lO1xuICAgICAgICAgICAgdGhpcy4jc3R5bGVEaXJ0eSA9IHRydWU7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRoaXMuI2xpbmVQcmVmaXgudG9rZW5zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jYWRkVG9rZW4odG9rZW4sIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy4jY3VycmVudFN0eWxlID0gc3R5bGU7XG4gICAgICAgICAgICB0aGlzLiNzdHlsZURpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodG9rZW4ua2luZCkge1xuICAgICAgICAgICAgY2FzZSBcIm5ld2xpbmVcIjpcbiAgICAgICAgICAgICAgICB0aGlzLiNlbWl0TGluZShcIlxcblwiKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBcImNhcnJpYWdlLXJldHVyblwiOlxuICAgICAgICAgICAgICAgIHRoaXMuI2VtaXRMaW5lKFwiXFxyXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIFwidGFiXCI6XG4gICAgICAgICAgICAgICAgbGV0IHdpZHRoID0gdGhpcy50YWJXaWR0aCAtICh0aGlzLiNjdXJyZW50TGluZVdpZHRoICUgdGhpcy50YWJXaWR0aCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZHRoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoID0gdGhpcy50YWJXaWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy4jd3JpdGVUZXh0KFwiXCIucGFkU3RhcnQod2lkdGgpKTtcbiAgICAgICAgICAgICAgICB0aGlzLiNjdXJyZW50TGluZVdpZHRoICs9IHdpZHRoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIFwiYnJlYWtpbmdcIjpcbiAgICAgICAgICAgICAgICB0aGlzLiN3cml0ZVRleHQodG9rZW4uc3RyKTtcbiAgICAgICAgICAgICAgICB0aGlzLiNjdXJyZW50TGluZVdpZHRoICs9IHRva2VuLndpZHRoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIFwic3R5bGVcIjpcbiAgICAgICAgICAgICAgICB0aGlzLiNjdXJyZW50U3R5bGUgPSB0aGlzLiNjdXJyZW50U3R5bGUuYWRkU3R5bGUodG9rZW4uc3R5bGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuI3N0eWxlRGlydHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIFwiYW5zaVwiOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLiNzdHlsZUVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jd3JpdGVUZXh0KHRva2VuLnNlcXVlbmNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLm5ld0NvbHVtbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gLSBkb24ndCBuZWVkIHRvIHN1cHBvcnQgeWV0IGJ1dCB0byBiZSBjb3JyZWN0IHNob3VsZCBhZGp1c3Qgc2VxdWVuY2UgdG8gYWNjb3VudCBmb3IgaW5kZW50XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy4jY3VycmVudExpbmVXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4jaXNOZXdMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLiNjdXJyZW50TGluZVdpZHRoID0gdG9rZW4ubmV3Q29sdW1uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBcIm5vbmJyZWFraW5nXCI6XG4gICAgICAgICAgICAgICAgdGhpcy4jd3JpdGVUZXh0KHRva2VuLnN0cik7XG4gICAgICAgICAgICAgICAgdGhpcy4jY3VycmVudExpbmVXaWR0aCArPSB0b2tlbi53aWR0aDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN3cml0ZVRleHQodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuI3dyaXRlU3R5bGUoKTtcbiAgICAgICAgdGhpcy4jZW1pdCh0ZXh0KTtcbiAgICB9XG5cbiAgICAjd3JpdGVTdHlsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuI3N0eWxlRGlydHkgJiYgdGhpcy4jc3R5bGVFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLiNzdHlsZURpcnR5ID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHRoaXMuI2VtaXQodGhpcy4jYWN0aXZlU3R5bGUuZGlmZlN0eWxlKHRoaXMuI2N1cnJlbnRTdHlsZSkudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgICAgIHRoaXMuI2FjdGl2ZVN0eWxlID0gdGhpcy4jY3VycmVudFN0eWxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2VtaXQodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLiNidWZmZXIpIHtcbiAgICAgICAgICAgIHRoaXMuI2J1ZmZlci5wdXNoKHRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4jb3V0KHRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2VtaXRMaW5lKHRlcm1pbmF0b3I/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy4jd3JpdGVTdHlsZSgpO1xuICAgICAgICB0aGlzLiNiZWdpbkxpbmUoKTtcbiAgICAgICAgaWYgKHRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuI2VtaXQodGVybWluYXRvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjYmVnaW5MaW5lKCkge1xuICAgICAgICB0aGlzLiNpc05ld0xpbmUgPSB0cnVlO1xuICAgICAgICB0aGlzLiNjdXJyZW50TGluZVdpZHRoID0gMDtcbiAgICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgV3JpdGVyIHtcbiAgICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICAgICAgICB0YWJXaWR0aD86IG51bWJlcjtcbiAgICAgICAgdGVybWluYWxXaWR0aD86IG51bWJlcjtcbiAgICAgICAgbGluZVByZWZpeD86IHN0cmluZztcbiAgICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsU0FBUywrQkFBK0I7QUFDeEMsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUyxhQUFhO0FBRXRCLFNBQVMsZ0JBQWdCO0FBRXpCLE1BQU0sb0JBQW9CO0FBS25CLE1BQU0sV0FBK0I7QUFBQSxFQUN4QztBQUFBLEVBRUE7QUFBQSxFQUNBLG9CQUFvQjtBQUFBLEVBQ3BCO0FBQUEsRUFDQSxlQUFlLE1BQU07QUFBQSxFQUNyQixjQUFjO0FBQUEsRUFDZCxnQkFBZ0IsTUFBTTtBQUFBLEVBQ3RCO0FBQUEsRUFDQTtBQUFBLEVBQ0EsZ0JBQWdCO0FBQUEsRUFDaEIsYUFBYTtBQUFBLEVBQ2I7QUFBQSxFQUNBO0FBQUEsRUFFQSxZQUFZLEtBQTZCLFNBQTBCO0FBQy9ELFVBQU0sRUFBRSxVQUFVLGVBQWUsV0FBVyxJQUFJLFdBQVcsQ0FBQztBQUM1RCxTQUFLLE9BQU87QUFDWixTQUFLLFdBQVcsWUFBWTtBQUM1QixTQUFLLGlCQUFpQjtBQUN0QixRQUFJLFlBQVk7QUFDWixXQUFLLGNBQWMsSUFBSSx3QkFBd0IsR0FBRyxTQUFTLFVBQVUsQ0FBQztBQUFBLElBQzFFO0FBRUEsVUFBTSxPQUFPO0FBRWIsU0FBSyxTQUFTLFNBQVMsTUFBTUEsVUFBNEIsVUFBcUQ7QUFDMUcsTUFBQUEsV0FBVSxFQUFFLEdBQUdBLFNBQVE7QUFFdkIsWUFBTSxXQUFXLEVBQUUsR0FB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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/ansi-text/text-writer.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["options", "linePrefix", "token"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Style } from "./style.js";
|
|
7
|
+
/**
|
|
8
|
+
* An individual lexical token in a Unicode string with ANSI escape codes.
|
|
9
|
+
*/
|
|
10
|
+
export type Token = NonbreakingToken | BreakingToken | StyleToken | NewlineToken | CarriageReturnToken | TabToken | AnsiToken;
|
|
11
|
+
/**
|
|
12
|
+
* Text sequence that is not whitespace or a control sequence.
|
|
13
|
+
*/
|
|
14
|
+
export interface NonbreakingToken {
|
|
15
|
+
kind: "nonbreaking";
|
|
16
|
+
str: string;
|
|
17
|
+
width: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Non-tab non-newline whitespace sequence.
|
|
21
|
+
*/
|
|
22
|
+
export interface BreakingToken {
|
|
23
|
+
kind: "breaking";
|
|
24
|
+
str: string;
|
|
25
|
+
width: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A text styling sequence.
|
|
29
|
+
*/
|
|
30
|
+
export interface StyleToken {
|
|
31
|
+
kind: "style";
|
|
32
|
+
style: Style;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Newline character.
|
|
36
|
+
*/
|
|
37
|
+
export interface NewlineToken {
|
|
38
|
+
kind: "newline";
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Carriage return character.
|
|
42
|
+
*/
|
|
43
|
+
export interface CarriageReturnToken {
|
|
44
|
+
kind: "carriage-return";
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Tab character.
|
|
48
|
+
*/
|
|
49
|
+
export interface TabToken {
|
|
50
|
+
kind: "tab";
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Misc valid non-CSI (style) ANSI codes. Currently we tokenize because we have to parse them anyway to skip, but
|
|
54
|
+
* otherwise we ignore.
|
|
55
|
+
*/
|
|
56
|
+
export interface AnsiToken {
|
|
57
|
+
kind: "ansi";
|
|
58
|
+
sequence: string;
|
|
59
|
+
newColumn?: number;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/token.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,KAAK,GACX,gBAAgB,GAChB,aAAa,GACb,UAAU,GACV,YAAY,GACZ,mBAAmB,GACnB,QAAQ,GACR,SAAS,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,SAAS,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,KAAK,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Fuc2ktdGV4dC90b2tlbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNCBNYXR0ZXIuanMgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBTdHlsZSB9IGZyb20gXCIuL3N0eWxlLmpzXCI7XG5cbi8qKlxuICogQW4gaW5kaXZpZHVhbCBsZXhpY2FsIHRva2VuIGluIGEgVW5pY29kZSBzdHJpbmcgd2l0aCBBTlNJIGVzY2FwZSBjb2Rlcy5cbiAqL1xuZXhwb3J0IHR5cGUgVG9rZW4gPVxuICAgIHwgTm9uYnJlYWtpbmdUb2tlblxuICAgIHwgQnJlYWtpbmdUb2tlblxuICAgIHwgU3R5bGVUb2tlblxuICAgIHwgTmV3bGluZVRva2VuXG4gICAgfCBDYXJyaWFnZVJldHVyblRva2VuXG4gICAgfCBUYWJUb2tlblxuICAgIHwgQW5zaVRva2VuO1xuXG4vKipcbiAqIFRleHQgc2VxdWVuY2UgdGhhdCBpcyBub3Qgd2hpdGVzcGFjZSBvciBhIGNvbnRyb2wgc2VxdWVuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm9uYnJlYWtpbmdUb2tlbiB7XG4gICAga2luZDogXCJub25icmVha2luZ1wiO1xuICAgIHN0cjogc3RyaW5nO1xuICAgIHdpZHRoOiBudW1iZXI7XG59XG5cbi8qKlxuICogTm9uLXRhYiBub24tbmV3bGluZSB3aGl0ZXNwYWNlIHNlcXVlbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyZWFraW5nVG9rZW4ge1xuICAgIGtpbmQ6IFwiYnJlYWtpbmdcIjtcbiAgICBzdHI6IHN0cmluZztcbiAgICB3aWR0aDogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgdGV4dCBzdHlsaW5nIHNlcXVlbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlVG9rZW4ge1xuICAgIGtpbmQ6IFwic3R5bGVcIjtcbiAgICBzdHlsZTogU3R5bGU7XG59XG5cbi8qKlxuICogTmV3bGluZSBjaGFyYWN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV3bGluZVRva2VuIHtcbiAgICBraW5kOiBcIm5ld2xpbmVcIjtcbn1cblxuLyoqXG4gKiBDYXJyaWFnZSByZXR1cm4gY2hhcmFjdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhcnJpYWdlUmV0dXJuVG9rZW4ge1xuICAgIGtpbmQ6IFwiY2FycmlhZ2UtcmV0dXJuXCI7XG59XG5cbi8qKlxuICogVGFiIGNoYXJhY3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJUb2tlbiB7XG4gICAga2luZDogXCJ0YWJcIjtcbn1cblxuLyoqXG4gKiBNaXNjIHZhbGlkIG5vbi1DU0kgKHN0eWxlKSBBTlNJIGNvZGVzLiAgQ3VycmVudGx5IHdlIHRva2VuaXplIGJlY2F1c2Ugd2UgaGF2ZSB0byBwYXJzZSB0aGVtIGFueXdheSB0byBza2lwLCBidXRcbiAqIG90aGVyd2lzZSB3ZSBpZ25vcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW5zaVRva2VuIHtcbiAgICBraW5kOiBcImFuc2lcIjtcbiAgICBzZXF1ZW5jZTogc3RyaW5nO1xuICAgIG5ld0NvbHVtbj86IG51bWJlcjtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Producer } from "./producer.js";
|
|
7
|
+
/**
|
|
8
|
+
* Convert ANSI text into a sequence of tokens.
|
|
9
|
+
*/
|
|
10
|
+
export declare function tokenize(text: string): Producer;
|
|
11
|
+
//# sourceMappingURL=tokenize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/tokenize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC;;GAEG;AACH,wBAAiB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAqMhD"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Chars } from "./chars.js";
|
|
7
|
+
import { Style } from "./style.js";
|
|
8
|
+
function* tokenize(text) {
|
|
9
|
+
for (let pos = 0; pos < text.length; ) {
|
|
10
|
+
const unit = text[pos];
|
|
11
|
+
switch (unit) {
|
|
12
|
+
case "\n":
|
|
13
|
+
yield { kind: "newline" };
|
|
14
|
+
pos++;
|
|
15
|
+
break;
|
|
16
|
+
case "\r":
|
|
17
|
+
if (text[pos + 1] === "\n") {
|
|
18
|
+
yield { kind: "newline" };
|
|
19
|
+
pos += 2;
|
|
20
|
+
} else {
|
|
21
|
+
yield { kind: "carriage-return" };
|
|
22
|
+
pos += 1;
|
|
23
|
+
}
|
|
24
|
+
break;
|
|
25
|
+
case " ":
|
|
26
|
+
yield { kind: "tab" };
|
|
27
|
+
pos++;
|
|
28
|
+
break;
|
|
29
|
+
case "\x1B":
|
|
30
|
+
let valid = false;
|
|
31
|
+
let newColumn;
|
|
32
|
+
const escapeStart = pos;
|
|
33
|
+
pos++;
|
|
34
|
+
switch (text[pos]) {
|
|
35
|
+
case "[":
|
|
36
|
+
pos++;
|
|
37
|
+
while (text[pos] >= "0" && text[pos] <= "?") {
|
|
38
|
+
pos++;
|
|
39
|
+
}
|
|
40
|
+
if (text[pos] >= "\0x40" && text[pos] <= "~") {
|
|
41
|
+
const param = text.slice(escapeStart + 2, pos);
|
|
42
|
+
switch (text[pos]) {
|
|
43
|
+
case "m":
|
|
44
|
+
yield {
|
|
45
|
+
kind: "style",
|
|
46
|
+
style: Style(param)
|
|
47
|
+
};
|
|
48
|
+
pos++;
|
|
49
|
+
continue;
|
|
50
|
+
case "E":
|
|
51
|
+
// Move up
|
|
52
|
+
case "F":
|
|
53
|
+
newColumn = 0;
|
|
54
|
+
break;
|
|
55
|
+
case "G":
|
|
56
|
+
newColumn = Number.parseInt(param);
|
|
57
|
+
break;
|
|
58
|
+
case "H":
|
|
59
|
+
const [, column] = param.split(";");
|
|
60
|
+
newColumn = column ? Number.parseInt(column) : 0;
|
|
61
|
+
break;
|
|
62
|
+
case "J":
|
|
63
|
+
switch (param) {
|
|
64
|
+
case "2":
|
|
65
|
+
// Entire screen
|
|
66
|
+
case "3":
|
|
67
|
+
newColumn = 0;
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
pos++;
|
|
72
|
+
valid = true;
|
|
73
|
+
}
|
|
74
|
+
break;
|
|
75
|
+
case "X":
|
|
76
|
+
case "]":
|
|
77
|
+
case "^":
|
|
78
|
+
case "_":
|
|
79
|
+
pos++;
|
|
80
|
+
while (pos < text.length) {
|
|
81
|
+
pos++;
|
|
82
|
+
if (text[pos] === "\\") {
|
|
83
|
+
valid = true;
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
const code = text[pos];
|
|
90
|
+
if (code >= "@" && code <= "W" || code >= "Y" && code <= "Z" || code >= "\\" && code <= "]") {
|
|
91
|
+
pos++;
|
|
92
|
+
valid = true;
|
|
93
|
+
} else if (code >= "0" && code <= "0x3f") {
|
|
94
|
+
pos++;
|
|
95
|
+
valid = true;
|
|
96
|
+
} else if (code >= "`" && code <= "0x7e") {
|
|
97
|
+
pos++;
|
|
98
|
+
valid = true;
|
|
99
|
+
} else if (code >= " " && code <= "0x2f") {
|
|
100
|
+
pos++;
|
|
101
|
+
const code2 = text[pos];
|
|
102
|
+
if (code2 >= "0" && code2 <= "0x73") {
|
|
103
|
+
pos++;
|
|
104
|
+
valid = true;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
if (valid) {
|
|
110
|
+
const token = {
|
|
111
|
+
kind: "ansi",
|
|
112
|
+
sequence: text.slice(escapeStart, pos)
|
|
113
|
+
};
|
|
114
|
+
if (newColumn !== void 0 && !Number.isNaN(newColumn)) {
|
|
115
|
+
token.newColumn = newColumn;
|
|
116
|
+
}
|
|
117
|
+
yield token;
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
default:
|
|
121
|
+
const start = pos;
|
|
122
|
+
if (Chars.breakingSpace.has(unit)) {
|
|
123
|
+
let width2 = 1;
|
|
124
|
+
pos++;
|
|
125
|
+
while (Chars.breakingSpace.has(text[pos])) {
|
|
126
|
+
pos++;
|
|
127
|
+
if (unit !== "\u200B") {
|
|
128
|
+
width2++;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
yield {
|
|
132
|
+
kind: "breaking",
|
|
133
|
+
str: text.slice(start, pos),
|
|
134
|
+
width: width2
|
|
135
|
+
};
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
let width = 0;
|
|
139
|
+
while (pos < text.length) {
|
|
140
|
+
let cp = text[pos];
|
|
141
|
+
if (cp >= "\uD800" && cp < "\uDC00") {
|
|
142
|
+
const nextUnit = text[pos + 1];
|
|
143
|
+
if (nextUnit !== void 0 && nextUnit >= "\uDC00" && nextUnit < "\uE000") {
|
|
144
|
+
cp += nextUnit;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (!cp.match(Chars.nonbreakingText)) {
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
pos += cp.length;
|
|
151
|
+
if (!cp.match(Chars.zeroWidth)) {
|
|
152
|
+
width++;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (start === pos) {
|
|
156
|
+
pos++;
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
yield {
|
|
160
|
+
kind: "nonbreaking",
|
|
161
|
+
str: text.slice(start, pos),
|
|
162
|
+
width
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
export {
|
|
168
|
+
tokenize
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Fuc2ktdGV4dC90b2tlbml6ZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNCBNYXR0ZXIuanMgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBDaGFycyB9IGZyb20gXCIuL2NoYXJzLmpzXCI7XG5pbXBvcnQgeyBQcm9kdWNlciB9IGZyb20gXCIuL3Byb2R1Y2VyLmpzXCI7XG5pbXBvcnQgeyBTdHlsZSB9IGZyb20gXCIuL3N0eWxlLmpzXCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCIuL3Rva2VuLmpzXCI7XG5cbi8qKlxuICogQ29udmVydCBBTlNJIHRleHQgaW50byBhIHNlcXVlbmNlIG9mIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uKiB0b2tlbml6ZSh0ZXh0OiBzdHJpbmcpOiBQcm9kdWNlciB7XG4gICAgZm9yIChsZXQgcG9zID0gMDsgcG9zIDwgdGV4dC5sZW5ndGg7ICkge1xuICAgICAgICBjb25zdCB1bml0ID0gdGV4dFtwb3NdO1xuICAgICAgICBzd2l0Y2ggKHVuaXQpIHtcbiAgICAgICAgICAgIGNhc2UgXCJcXG5cIjpcbiAgICAgICAgICAgICAgICB5aWVsZCB7IGtpbmQ6IFwibmV3bGluZVwiIH07XG4gICAgICAgICAgICAgICAgcG9zKys7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgXCJcXHJcIjpcbiAgICAgICAgICAgICAgICBpZiAodGV4dFtwb3MgKyAxXSA9PT0gXCJcXG5cIikge1xuICAgICAgICAgICAgICAgICAgICB5aWVsZCB7IGtpbmQ6IFwibmV3bGluZVwiIH07XG4gICAgICAgICAgICAgICAgICAgIHBvcyArPSAyO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHlpZWxkIHsga2luZDogXCJjYXJyaWFnZS1yZXR1cm5cIiB9O1xuICAgICAgICAgICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgXCJcXHRcIjpcbiAgICAgICAgICAgICAgICB5aWVsZCB7IGtpbmQ6IFwidGFiXCIgfTtcbiAgICAgICAgICAgICAgICBwb3MrKztcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBcIlxceDFiXCI6XG4gICAgICAgICAgICAgICAgbGV0IHZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbGV0IG5ld0NvbHVtbjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVzY2FwZVN0YXJ0ID0gcG9zO1xuICAgICAgICAgICAgICAgIHBvcysrO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGV4dFtwb3NdKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJbXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBGZSBDU0lcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBWYWxpZCBzZXF1ZW5jZSBtZW1iZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGV4dFtwb3NdID49IFwiXFx4MzBcIiAmJiB0ZXh0W3Bvc10gPD0gXCJcXHgzZlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkIHNlcXVlbmNlIHRlcm1pbmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4dFtwb3NdID49IFwiXFwweDQwXCIgJiYgdGV4dFtwb3NdIDw9IFwiXFx4N2VcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtID0gdGV4dC5zbGljZShlc2NhcGVTdGFydCArIDIsIHBvcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRleHRbcG9zXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwibVwiOiAvLyBTR1IgKHNlbGVjdCBncmFwaGljcyByZW5kaXRpb24pLCB0aGUgc2VxdWVuY2UgdGhhdCBjb250cm9scyBzdHlsaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogXCJzdHlsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBTdHlsZShwYXJhbSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRVwiOiAvLyBNb3ZlIHVwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJGXCI6IC8vIE1vdmUgZG93blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Q29sdW1uID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJHXCI6IC8vIE1vdmUgdG8gY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDb2x1bW4gPSBOdW1iZXIucGFyc2VJbnQocGFyYW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkhcIjogLy8gTW92ZSB0byByb3cgYW5kIGNvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgWywgY29sdW1uXSA9IHBhcmFtLnNwbGl0KFwiO1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NvbHVtbiA9IGNvbHVtbiA/IE51bWJlci5wYXJzZUludChjb2x1bW4pIDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJKXCI6IC8vIENsZWFyIHNjcmVlbiBwYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhcmFtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIjJcIjogLy8gRW50aXJlIHNjcmVlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCIzXCI6IC8vIEVudGlyZSBzY3JlZW4gcGx1cyBzY3JvbGxiYWNrIGJ1ZmZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDb2x1bW4gPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlhcIjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIl1cIjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIl5cIjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIl9cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZlIHNlcXVlbmNlcyB0aGF0IHRha2UgYSBzaW5nbGUgc3RyaW5nIGFyZ3VtZW50ICg8RVNDIFg+LCA8RVNDIF0+LCA8RVNDIF4+LCA8RVNDIF8+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0ZXJtaW5hdGVkIGJ5IFwiXFxcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRbcG9zXSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29kZSA9IHRleHRbcG9zXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29kZSA+PSBcIlxceDQwXCIgJiYgY29kZSA8PSBcIlxceDU3XCIpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvZGUgPj0gXCJcXHg1OVwiICYmIGNvZGUgPD0gXCJcXHg1YVwiKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb2RlID49IFwiXFx4NWNcIiAmJiBjb2RlIDw9IFwiXFx4NWRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZlIHNlcXVlbmNlIG5vdCBjb3ZlcmVkIGFib3ZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb2RlID49IFwiXFx4MzBcIiAmJiBjb2RlIDw9IFwiMHgzZlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRnAgc2VxdWVuY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPj0gXCJcXHg2MFwiICYmIGNvZGUgPD0gXCIweDdlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGcyBzZXF1ZW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29kZSA+PSBcIlxceDIwXCIgJiYgY29kZSA8PSBcIjB4MmZcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvZGUyID0gdGV4dFtwb3NdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2RlMiA+PSBcIlxceDMwXCIgJiYgY29kZTIgPD0gXCIweDczXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9rZW46IFRva2VuID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAga2luZDogXCJhbnNpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXF1ZW5jZTogdGV4dC5zbGljZShlc2NhcGVTdGFydCwgcG9zKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0NvbHVtbiAhPT0gdW5kZWZpbmVkICYmICFOdW1iZXIuaXNOYU4obmV3Q29sdW1uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4ubmV3Q29sdW1uID0gbmV3Q29sdW1uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHlpZWxkIHRva2VuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gcG9zO1xuXG4gICAgICAgICAgICAgICAgLy8gV2hpdGVzcGFjZSAtIG5vIHN1cnJvZ2F0ZXMsIHplcm8td2lkdGggc3BhY2UgZG9lcyBub3QgY29udHJpYnV0ZSB0byB3aWR0aFxuICAgICAgICAgICAgICAgIGlmIChDaGFycy5icmVha2luZ1NwYWNlLmhhcyh1bml0KSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgd2lkdGggPSAxO1xuICAgICAgICAgICAgICAgICAgICBwb3MrKztcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKENoYXJzLmJyZWFraW5nU3BhY2UuaGFzKHRleHRbcG9zXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm8gd2lkdGggZm9yIHplcm8td2lkdGggc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1bml0ICE9PSBcIlxcdTIwMGJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgeWllbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAga2luZDogXCJicmVha2luZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyOiB0ZXh0LnNsaWNlKHN0YXJ0LCBwb3MpLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFNjYW4gY2hhcmFjdGVyc1xuICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjcCA9IHRleHRbcG9zXTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDb21iaW5lIHByb3BlciBzdXJyb2dhdGUgcGFpcnNcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNwID49IFwiXFx1ZDgwMFwiICYmIGNwIDwgXCJcXHVkYzAwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRVbml0ID0gdGV4dFtwb3MgKyAxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0VW5pdCAhPT0gdW5kZWZpbmVkICYmIG5leHRVbml0ID49IFwiXFx1ZGMwMFwiICYmIG5leHRVbml0IDwgXCJcXHVlMDAwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcCArPSBuZXh0VW5pdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghY3AubWF0Y2goQ2hhcnMubm9uYnJlYWtpbmdUZXh0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwb3MgKz0gY3AubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNwLm1hdGNoKENoYXJzLnplcm9XaWR0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBkZXRlY3RlZCBubyBjaGFyYWN0ZXJzLCB0aGUgY29kZSB1bml0IGlzIGdhcmJhZ2UgYW5kIHdlIHNraXAgaXQgZW50aXJlbHlcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPT09IHBvcykge1xuICAgICAgICAgICAgICAgICAgICBwb3MrKztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gWWllbGQgdGhlIHRva2VuIGFuZCBza2lwIGZvcndhcmQgdG8gdGhlIGxhc3QgY2hhcmFjdGVyXG4gICAgICAgICAgICAgICAgeWllbGQge1xuICAgICAgICAgICAgICAgICAgICBraW5kOiBcIm5vbmJyZWFraW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIHN0cjogdGV4dC5zbGljZShzdGFydCwgcG9zKSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxTQUFTLGFBQWE7QUFFdEIsU0FBUyxhQUFhO0FBTWYsVUFBVSxTQUFTLE1BQXdCO0FBQzlDLFdBQVMsTUFBTSxHQUFHLE1BQU0sS0FBSyxVQUFVO0FBQ25DLFVBQU0sT0FBTyxLQUFLLEdBQUc7QUFDckIsWUFBUSxNQUFNO0FBQUEsTUFDVixLQUFLO0FBQ0QsY0FBTSxFQUFFLE1BQU0sVUFBVTtBQUN4QjtBQUNBO0FBQUEsTUFFSixLQUFLO0FBQ0QsWUFBSSxLQUFLLE1BQU0sQ0FBQyxNQUFNLE1BQU07QUFDeEIsZ0JBQU0sRUFBRSxNQUFNLFVBQVU7QUFDeEIsaUJBQU87QUFBQSxRQUNYLE9BQU87QUFDSCxnQkFBTSxFQUFFLE1BQU0sa0JBQWtCO0FBQ2hDLGlCQUFPO0FBQUEsUUFDWDtBQUNBO0FBQUEsTUFFSixLQUFLO0FBQ0QsY0FBTSxFQUFFLE1BQU0sTUFBTTtBQUNwQjtBQUNBO0FBQUEsTUFFSixLQUFLO0FBQ0QsWUFBSSxRQUFRO0FBQ1osWUFBSTtBQUNKLGNBQU0sY0FBYztBQUNwQjtBQUNBLGdCQUFRLEtBQUssR0FBRyxHQUFHO0FBQUEsVUFDZixLQUFLO0FBRUQ7QUFHQSxtQkFBTyxLQUFLLEdBQUcsS0FBSyxPQUFVLEtBQUssR0FBRyxLQUFLLEtBQVE7QUFDL0M7QUFBQSxZQUNKO0FBR0EsZ0JBQUksS0FBSyxHQUFHLEtBQUssV0FBVyxLQUFLLEdBQUcsS0FBSyxLQUFRO0FBQzdDLG9CQUFNLFFBQVEsS0FBSyxNQUFNLGNBQWMsR0FBRyxHQUFHO0FBRTdDLHNCQUFRLEtBQUssR0FBRyxHQUFHO0FBQUEsZ0JBQ2YsS0FBSztBQUNELHdCQUFNO0FBQUEsb0JBQ0YsTUFBTTtBQUFBLG9CQUNOLE9BQU8sTUFBTSxLQUFLO0FBQUEsa0JBQ3RCO0FBQ0E7QUFDQTtBQUFBLGdCQUVKLEtBQUs7QUFBQTtBQUFB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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/ansi-text/tokenize.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["width"]
|
|
6
|
+
}
|