@teaui/term 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dist/ansi.d.ts +45 -0
- package/.dist/ansi.d.ts.map +1 -0
- package/.dist/ansi.js +254 -0
- package/.dist/ansi.js.map +1 -0
- package/.dist/buffer.d.ts +27 -0
- package/.dist/buffer.d.ts.map +1 -0
- package/.dist/buffer.js +112 -0
- package/.dist/buffer.js.map +1 -0
- package/.dist/colors.d.ts +31 -0
- package/.dist/colors.d.ts.map +1 -0
- package/.dist/colors.js +260 -0
- package/.dist/colors.js.map +1 -0
- package/.dist/cursor.d.ts +20 -0
- package/.dist/cursor.d.ts.map +1 -0
- package/.dist/cursor.js +64 -0
- package/.dist/cursor.js.map +1 -0
- package/.dist/image.d.ts +5 -0
- package/.dist/image.d.ts.map +1 -0
- package/.dist/image.js +49 -0
- package/.dist/image.js.map +1 -0
- package/.dist/index.d.ts +17 -0
- package/.dist/index.d.ts.map +1 -0
- package/.dist/index.js +27 -0
- package/.dist/index.js.map +1 -0
- package/.dist/input.d.ts +11 -0
- package/.dist/input.d.ts.map +1 -0
- package/.dist/input.js +287 -0
- package/.dist/input.js.map +1 -0
- package/.dist/modern.d.ts +14 -0
- package/.dist/modern.d.ts.map +1 -0
- package/.dist/modern.js +83 -0
- package/.dist/modern.js.map +1 -0
- package/.dist/screen.d.ts +17 -0
- package/.dist/screen.d.ts.map +1 -0
- package/.dist/screen.js +82 -0
- package/.dist/screen.js.map +1 -0
- package/.dist/sgr.d.ts +25 -0
- package/.dist/sgr.d.ts.map +1 -0
- package/.dist/sgr.js +160 -0
- package/.dist/sgr.js.map +1 -0
- package/.dist/style.d.ts +25 -0
- package/.dist/style.d.ts.map +1 -0
- package/.dist/style.js +53 -0
- package/.dist/style.js.map +1 -0
- package/.dist/terminal.d.ts +84 -0
- package/.dist/terminal.d.ts.map +1 -0
- package/.dist/terminal.js +325 -0
- package/.dist/terminal.js.map +1 -0
- package/.dist/types.d.ts +80 -0
- package/.dist/types.d.ts.map +1 -0
- package/.dist/types.js +15 -0
- package/.dist/types.js.map +1 -0
- package/.dist/unicode.d.ts +65 -0
- package/.dist/unicode.d.ts.map +1 -0
- package/.dist/unicode.js +574 -0
- package/.dist/unicode.js.map +1 -0
- package/LICENSE +24 -0
- package/package.json +36 -0
package/.dist/unicode.js
ADDED
|
@@ -0,0 +1,574 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unicode utilities for terminal cell width calculation, grapheme segmentation,
|
|
3
|
+
* and ANSI sequence handling.
|
|
4
|
+
*
|
|
5
|
+
* Ported from blessed/teaui's unicode.js — battle-tested character width tables.
|
|
6
|
+
*/
|
|
7
|
+
/** Special character used by viewport.paint for background drawing. */
|
|
8
|
+
export const BG_DRAW = '\x14';
|
|
9
|
+
/**
|
|
10
|
+
* Returns the number of *cells* that the first character of the string takes up.
|
|
11
|
+
*
|
|
12
|
+
* "Cell" refers to a terminal space: ASCII characters take 1 cell, Emoji and Asian
|
|
13
|
+
* characters take 2 cells. ANSI codes (\x1b[...) return 0.
|
|
14
|
+
*/
|
|
15
|
+
export function charWidth(str) {
|
|
16
|
+
if (str === BG_DRAW) {
|
|
17
|
+
return 1;
|
|
18
|
+
}
|
|
19
|
+
if (!str.length || ansiRegex().test(str)) {
|
|
20
|
+
return 0;
|
|
21
|
+
}
|
|
22
|
+
// Emoji support
|
|
23
|
+
if (str.length > 1 && /^\p{Extended_Pictographic}/u.test(str)) {
|
|
24
|
+
if (str === '▫️' ||
|
|
25
|
+
str === '◻️' ||
|
|
26
|
+
str === '◼︎' ||
|
|
27
|
+
str === '▪️' ||
|
|
28
|
+
str === '◼️') {
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
return 2;
|
|
32
|
+
}
|
|
33
|
+
const point = str.codePointAt(0);
|
|
34
|
+
// nul
|
|
35
|
+
if (point === 0)
|
|
36
|
+
return 0;
|
|
37
|
+
// tab
|
|
38
|
+
if (point === 0x09)
|
|
39
|
+
return 1;
|
|
40
|
+
// 8-bit control characters
|
|
41
|
+
if (point < 32 || (point >= 0x7f && point < 0xa0))
|
|
42
|
+
return 0;
|
|
43
|
+
// combining characters
|
|
44
|
+
if (isCombiningCode(point))
|
|
45
|
+
return 0;
|
|
46
|
+
// double-wide
|
|
47
|
+
if (0x3000 === point ||
|
|
48
|
+
(0xff01 <= point && point <= 0xff60) ||
|
|
49
|
+
(0xffe0 <= point && point <= 0xffe6)) {
|
|
50
|
+
return 2;
|
|
51
|
+
}
|
|
52
|
+
if ((0x1100 <= point && point <= 0x115f) ||
|
|
53
|
+
(0x11a3 <= point && point <= 0x11a7) ||
|
|
54
|
+
(0x11fa <= point && point <= 0x11ff) ||
|
|
55
|
+
(0x2329 <= point && point <= 0x232a) ||
|
|
56
|
+
(0x2e80 <= point && point <= 0x2e99) ||
|
|
57
|
+
(0x2e9b <= point && point <= 0x2ef3) ||
|
|
58
|
+
(0x2f00 <= point && point <= 0x2fd5) ||
|
|
59
|
+
(0x2ff0 <= point && point <= 0x2ffb) ||
|
|
60
|
+
(0x3001 <= point && point <= 0x303e) ||
|
|
61
|
+
(0x3041 <= point && point <= 0x3096) ||
|
|
62
|
+
(0x3099 <= point && point <= 0x30ff) ||
|
|
63
|
+
(0x3105 <= point && point <= 0x312d) ||
|
|
64
|
+
(0x3131 <= point && point <= 0x318e) ||
|
|
65
|
+
(0x3190 <= point && point <= 0x31ba) ||
|
|
66
|
+
(0x31c0 <= point && point <= 0x31e3) ||
|
|
67
|
+
(0x31f0 <= point && point <= 0x321e) ||
|
|
68
|
+
(0x3220 <= point && point <= 0x3247) ||
|
|
69
|
+
(0x3250 <= point && point <= 0x32fe) ||
|
|
70
|
+
(0x3300 <= point && point <= 0x4dbf) ||
|
|
71
|
+
(0x4e00 <= point && point <= 0xa48c) ||
|
|
72
|
+
(0xa490 <= point && point <= 0xa4c6) ||
|
|
73
|
+
(0xa960 <= point && point <= 0xa97c) ||
|
|
74
|
+
(0xac00 <= point && point <= 0xd7a3) ||
|
|
75
|
+
(0xd7b0 <= point && point <= 0xd7c6) ||
|
|
76
|
+
(0xd7cb <= point && point <= 0xd7fb) ||
|
|
77
|
+
(0xf900 <= point && point <= 0xfaff) ||
|
|
78
|
+
(0xfe10 <= point && point <= 0xfe19) ||
|
|
79
|
+
(0xfe30 <= point && point <= 0xfe52) ||
|
|
80
|
+
(0xfe54 <= point && point <= 0xfe66) ||
|
|
81
|
+
(0xfe68 <= point && point <= 0xfe6b) ||
|
|
82
|
+
(0x1b000 <= point && point <= 0x1b001) ||
|
|
83
|
+
(0x1f200 <= point && point <= 0x1f202) ||
|
|
84
|
+
(0x1f210 <= point && point <= 0x1f23a) ||
|
|
85
|
+
(0x1f240 <= point && point <= 0x1f248) ||
|
|
86
|
+
(0x1f250 <= point && point <= 0x1f251) ||
|
|
87
|
+
(0x20000 <= point && point <= 0x2f73f) ||
|
|
88
|
+
(0x2b740 <= point && point <= 0x2fffd) ||
|
|
89
|
+
(0x30000 <= point && point <= 0x3fffd)) {
|
|
90
|
+
return 2;
|
|
91
|
+
}
|
|
92
|
+
// CJK Ambiguous
|
|
93
|
+
if (process.env.NCURSES_CJK_WIDTH) {
|
|
94
|
+
if (0x00a1 === point ||
|
|
95
|
+
0x00a4 === point ||
|
|
96
|
+
(0x00a7 <= point && point <= 0x00a8) ||
|
|
97
|
+
0x00aa === point ||
|
|
98
|
+
(0x00ad <= point && point <= 0x00ae) ||
|
|
99
|
+
(0x00b0 <= point && point <= 0x00b4) ||
|
|
100
|
+
(0x00b6 <= point && point <= 0x00ba) ||
|
|
101
|
+
(0x00bc <= point && point <= 0x00bf) ||
|
|
102
|
+
0x00c6 === point ||
|
|
103
|
+
0x00d0 === point ||
|
|
104
|
+
(0x00d7 <= point && point <= 0x00d8) ||
|
|
105
|
+
(0x00de <= point && point <= 0x00e1) ||
|
|
106
|
+
0x00e6 === point ||
|
|
107
|
+
(0x00e8 <= point && point <= 0x00ea) ||
|
|
108
|
+
(0x00ec <= point && point <= 0x00ed) ||
|
|
109
|
+
0x00f0 === point ||
|
|
110
|
+
(0x00f2 <= point && point <= 0x00f3) ||
|
|
111
|
+
(0x00f7 <= point && point <= 0x00fa) ||
|
|
112
|
+
0x00fc === point ||
|
|
113
|
+
0x00fe === point ||
|
|
114
|
+
0x0101 === point ||
|
|
115
|
+
0x0111 === point ||
|
|
116
|
+
0x0113 === point ||
|
|
117
|
+
0x011b === point ||
|
|
118
|
+
(0x0126 <= point && point <= 0x0127) ||
|
|
119
|
+
0x012b === point ||
|
|
120
|
+
(0x0131 <= point && point <= 0x0133) ||
|
|
121
|
+
0x0138 === point ||
|
|
122
|
+
(0x013f <= point && point <= 0x0142) ||
|
|
123
|
+
0x0144 === point ||
|
|
124
|
+
(0x0148 <= point && point <= 0x014b) ||
|
|
125
|
+
0x014d === point ||
|
|
126
|
+
(0x0152 <= point && point <= 0x0153) ||
|
|
127
|
+
(0x0166 <= point && point <= 0x0167) ||
|
|
128
|
+
0x016b === point ||
|
|
129
|
+
0x01ce === point ||
|
|
130
|
+
0x01d0 === point ||
|
|
131
|
+
0x01d2 === point ||
|
|
132
|
+
0x01d4 === point ||
|
|
133
|
+
0x01d6 === point ||
|
|
134
|
+
0x01d8 === point ||
|
|
135
|
+
0x01da === point ||
|
|
136
|
+
0x01dc === point ||
|
|
137
|
+
0x0251 === point ||
|
|
138
|
+
0x0261 === point ||
|
|
139
|
+
0x02c4 === point ||
|
|
140
|
+
0x02c7 === point ||
|
|
141
|
+
(0x02c9 <= point && point <= 0x02cb) ||
|
|
142
|
+
0x02cd === point ||
|
|
143
|
+
0x02d0 === point ||
|
|
144
|
+
(0x02d8 <= point && point <= 0x02db) ||
|
|
145
|
+
0x02dd === point ||
|
|
146
|
+
0x02df === point ||
|
|
147
|
+
(0x0300 <= point && point <= 0x036f) ||
|
|
148
|
+
(0x0391 <= point && point <= 0x03a1) ||
|
|
149
|
+
(0x03a3 <= point && point <= 0x03a9) ||
|
|
150
|
+
(0x03b1 <= point && point <= 0x03c1) ||
|
|
151
|
+
(0x03c3 <= point && point <= 0x03c9) ||
|
|
152
|
+
0x0401 === point ||
|
|
153
|
+
(0x0410 <= point && point <= 0x044f) ||
|
|
154
|
+
0x0451 === point ||
|
|
155
|
+
0x2010 === point ||
|
|
156
|
+
(0x2013 <= point && point <= 0x2016) ||
|
|
157
|
+
(0x2018 <= point && point <= 0x2019) ||
|
|
158
|
+
(0x201c <= point && point <= 0x201d) ||
|
|
159
|
+
(0x2020 <= point && point <= 0x2022) ||
|
|
160
|
+
(0x2024 <= point && point <= 0x2027) ||
|
|
161
|
+
0x2030 === point ||
|
|
162
|
+
(0x2032 <= point && point <= 0x2033) ||
|
|
163
|
+
0x2035 === point ||
|
|
164
|
+
0x203b === point ||
|
|
165
|
+
0x203e === point ||
|
|
166
|
+
0x2074 === point ||
|
|
167
|
+
0x207f === point ||
|
|
168
|
+
(0x2081 <= point && point <= 0x2084) ||
|
|
169
|
+
0x20ac === point ||
|
|
170
|
+
0x2103 === point ||
|
|
171
|
+
0x2105 === point ||
|
|
172
|
+
0x2109 === point ||
|
|
173
|
+
0x2113 === point ||
|
|
174
|
+
0x2116 === point ||
|
|
175
|
+
(0x2121 <= point && point <= 0x2122) ||
|
|
176
|
+
0x2126 === point ||
|
|
177
|
+
0x212b === point ||
|
|
178
|
+
(0x2153 <= point && point <= 0x2154) ||
|
|
179
|
+
(0x215b <= point && point <= 0x215e) ||
|
|
180
|
+
(0x2160 <= point && point <= 0x216b) ||
|
|
181
|
+
(0x2170 <= point && point <= 0x2179) ||
|
|
182
|
+
0x2189 === point ||
|
|
183
|
+
(0x2190 <= point && point <= 0x2199) ||
|
|
184
|
+
(0x21b8 <= point && point <= 0x21b9) ||
|
|
185
|
+
0x21d2 === point ||
|
|
186
|
+
0x21d4 === point ||
|
|
187
|
+
0x21e7 === point ||
|
|
188
|
+
0x2200 === point ||
|
|
189
|
+
(0x2202 <= point && point <= 0x2203) ||
|
|
190
|
+
(0x2207 <= point && point <= 0x2208) ||
|
|
191
|
+
0x220b === point ||
|
|
192
|
+
0x220f === point ||
|
|
193
|
+
0x2211 === point ||
|
|
194
|
+
0x2215 === point ||
|
|
195
|
+
0x221a === point ||
|
|
196
|
+
(0x221d <= point && point <= 0x2220) ||
|
|
197
|
+
0x2223 === point ||
|
|
198
|
+
0x2225 === point ||
|
|
199
|
+
(0x2227 <= point && point <= 0x222c) ||
|
|
200
|
+
0x222e === point ||
|
|
201
|
+
(0x2234 <= point && point <= 0x2237) ||
|
|
202
|
+
(0x223c <= point && point <= 0x223d) ||
|
|
203
|
+
0x2248 === point ||
|
|
204
|
+
0x224c === point ||
|
|
205
|
+
0x2252 === point ||
|
|
206
|
+
(0x2260 <= point && point <= 0x2261) ||
|
|
207
|
+
(0x2264 <= point && point <= 0x2267) ||
|
|
208
|
+
(0x226a <= point && point <= 0x226b) ||
|
|
209
|
+
(0x226e <= point && point <= 0x226f) ||
|
|
210
|
+
(0x2282 <= point && point <= 0x2283) ||
|
|
211
|
+
(0x2286 <= point && point <= 0x2287) ||
|
|
212
|
+
0x2295 === point ||
|
|
213
|
+
0x2299 === point ||
|
|
214
|
+
0x22a5 === point ||
|
|
215
|
+
0x22bf === point ||
|
|
216
|
+
0x2312 === point ||
|
|
217
|
+
(0x2460 <= point && point <= 0x24e9) ||
|
|
218
|
+
(0x24eb <= point && point <= 0x254b) ||
|
|
219
|
+
(0x2550 <= point && point <= 0x2573) ||
|
|
220
|
+
(0x2580 <= point && point <= 0x258f) ||
|
|
221
|
+
(0x2592 <= point && point <= 0x2595) ||
|
|
222
|
+
(0x25a0 <= point && point <= 0x25a1) ||
|
|
223
|
+
(0x25a3 <= point && point <= 0x25a9) ||
|
|
224
|
+
(0x25b2 <= point && point <= 0x25b3) ||
|
|
225
|
+
(0x25b6 <= point && point <= 0x25b7) ||
|
|
226
|
+
(0x25bc <= point && point <= 0x25bd) ||
|
|
227
|
+
(0x25c0 <= point && point <= 0x25c1) ||
|
|
228
|
+
(0x25c6 <= point && point <= 0x25c8) ||
|
|
229
|
+
0x25cb === point ||
|
|
230
|
+
(0x25ce <= point && point <= 0x25d1) ||
|
|
231
|
+
(0x25e2 <= point && point <= 0x25e5) ||
|
|
232
|
+
0x25ef === point ||
|
|
233
|
+
(0x2605 <= point && point <= 0x2606) ||
|
|
234
|
+
0x2609 === point ||
|
|
235
|
+
(0x260e <= point && point <= 0x260f) ||
|
|
236
|
+
(0x2614 <= point && point <= 0x2615) ||
|
|
237
|
+
0x261c === point ||
|
|
238
|
+
0x261e === point ||
|
|
239
|
+
0x2640 === point ||
|
|
240
|
+
0x2642 === point ||
|
|
241
|
+
(0x2660 <= point && point <= 0x2661) ||
|
|
242
|
+
(0x2663 <= point && point <= 0x2665) ||
|
|
243
|
+
(0x2667 <= point && point <= 0x266a) ||
|
|
244
|
+
(0x266c <= point && point <= 0x266d) ||
|
|
245
|
+
0x266f === point ||
|
|
246
|
+
(0x269e <= point && point <= 0x269f) ||
|
|
247
|
+
(0x26be <= point && point <= 0x26bf) ||
|
|
248
|
+
(0x26c4 <= point && point <= 0x26cd) ||
|
|
249
|
+
(0x26cf <= point && point <= 0x26e1) ||
|
|
250
|
+
0x26e3 === point ||
|
|
251
|
+
(0x26e8 <= point && point <= 0x26ff) ||
|
|
252
|
+
0x273d === point ||
|
|
253
|
+
0x2757 === point ||
|
|
254
|
+
(0x2776 <= point && point <= 0x277f) ||
|
|
255
|
+
(0x2b55 <= point && point <= 0x2b59) ||
|
|
256
|
+
(0x3248 <= point && point <= 0x324f) ||
|
|
257
|
+
(0xe000 <= point && point <= 0xf8ff) ||
|
|
258
|
+
(0xfe00 <= point && point <= 0xfe0f) ||
|
|
259
|
+
0xfffd === point ||
|
|
260
|
+
(0x1f100 <= point && point <= 0x1f10a) ||
|
|
261
|
+
(0x1f110 <= point && point <= 0x1f12d) ||
|
|
262
|
+
(0x1f130 <= point && point <= 0x1f169) ||
|
|
263
|
+
(0x1f170 <= point && point <= 0x1f19a) ||
|
|
264
|
+
(0xe0100 <= point && point <= 0xe01ef) ||
|
|
265
|
+
(0xf0000 <= point && point <= 0xffffd) ||
|
|
266
|
+
(0x100000 <= point && point <= 0x10fffd)) {
|
|
267
|
+
return (+process.env.NCURSES_CJK_WIDTH || 1);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return 1;
|
|
271
|
+
}
|
|
272
|
+
export function stringSize(str, maxWidth) {
|
|
273
|
+
if (Array.isArray(str)) {
|
|
274
|
+
if (maxWidth != null) {
|
|
275
|
+
return str.reduce((size, line) => {
|
|
276
|
+
const width = lineWidth(line);
|
|
277
|
+
const height = Math.max(1, Math.ceil(width / maxWidth));
|
|
278
|
+
size.width = Math.max(size.width, width);
|
|
279
|
+
size.height += height;
|
|
280
|
+
return size;
|
|
281
|
+
}, { width: 0, height: 0 });
|
|
282
|
+
}
|
|
283
|
+
return { width: Math.max(...str.map(lineWidth)), height: str.length };
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
return stringSize(str.split('\n'), maxWidth);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Returns the number of cells that the first line of the string takes up.
|
|
291
|
+
*/
|
|
292
|
+
export function lineWidth(str) {
|
|
293
|
+
let width = 0;
|
|
294
|
+
for (const char of Array.isArray(str) ? str : printableChars(str)) {
|
|
295
|
+
if (char === '\n') {
|
|
296
|
+
break;
|
|
297
|
+
}
|
|
298
|
+
width += charWidth(char);
|
|
299
|
+
}
|
|
300
|
+
return width;
|
|
301
|
+
}
|
|
302
|
+
// --- Locale / Segmenters ---
|
|
303
|
+
let locale = process.env.LANG?.split('.')[0]?.slice(0, 2) ?? 'en';
|
|
304
|
+
let graphemesSegmenter = new Intl.Segmenter(locale);
|
|
305
|
+
let wordsSegmenter = new Intl.Segmenter(locale, { granularity: 'word' });
|
|
306
|
+
export function getLocale() {
|
|
307
|
+
return locale;
|
|
308
|
+
}
|
|
309
|
+
export function setLocale(value) {
|
|
310
|
+
locale = value;
|
|
311
|
+
graphemesSegmenter = new Intl.Segmenter(locale);
|
|
312
|
+
wordsSegmenter = new Intl.Segmenter(locale, { granularity: 'word' });
|
|
313
|
+
}
|
|
314
|
+
// --- Word segmentation ---
|
|
315
|
+
/**
|
|
316
|
+
* @param input String or array of graphemes.
|
|
317
|
+
* @returns [grapheme[], offset][] Array of tuples. Each tuple is an array of
|
|
318
|
+
* graphemes and starting string offset. ANSI codes are preserved.
|
|
319
|
+
*/
|
|
320
|
+
export function words(input) {
|
|
321
|
+
if (Array.isArray(input)) {
|
|
322
|
+
input = input.join('');
|
|
323
|
+
}
|
|
324
|
+
const ansiData = ansiLocations(input, false);
|
|
325
|
+
input = removeAnsi(input);
|
|
326
|
+
let strIndex = 0;
|
|
327
|
+
const segments = Array.from(wordsSegmenter.segment(input)).map(({ segment }) => segment);
|
|
328
|
+
const parts = segments.map(segment => {
|
|
329
|
+
let offset = segment.length;
|
|
330
|
+
while (ansiData.length &&
|
|
331
|
+
strIndex + segment.length >= ansiData[0].start) {
|
|
332
|
+
const { start, ansi } = ansiData.shift();
|
|
333
|
+
const lhs = segment.slice(0, start - strIndex);
|
|
334
|
+
const rhs = segment.slice(start - strIndex);
|
|
335
|
+
segment = lhs + ansi + rhs;
|
|
336
|
+
offset += ansi.length;
|
|
337
|
+
}
|
|
338
|
+
strIndex += offset;
|
|
339
|
+
return segment;
|
|
340
|
+
});
|
|
341
|
+
let offset = 0;
|
|
342
|
+
const result = [];
|
|
343
|
+
for (const segment of parts) {
|
|
344
|
+
const currentOffset = offset;
|
|
345
|
+
const chars = printableChars(segment);
|
|
346
|
+
offset += chars.length;
|
|
347
|
+
result.push([chars, currentOffset]);
|
|
348
|
+
}
|
|
349
|
+
return result;
|
|
350
|
+
}
|
|
351
|
+
// --- Grapheme segmentation ---
|
|
352
|
+
/**
|
|
353
|
+
* Breaks the string up into graphemes: single ASCII/Emoji characters, and ANSI
|
|
354
|
+
* sequences.
|
|
355
|
+
*/
|
|
356
|
+
export function printableChars(str) {
|
|
357
|
+
if (str.length === 0) {
|
|
358
|
+
return [];
|
|
359
|
+
}
|
|
360
|
+
if (str.length === 1) {
|
|
361
|
+
return [str];
|
|
362
|
+
}
|
|
363
|
+
const chars = [];
|
|
364
|
+
const locations = ansiLocations(str, true);
|
|
365
|
+
let prevIndex = 0;
|
|
366
|
+
for (const { start, stop, ansi } of locations) {
|
|
367
|
+
if (prevIndex < start) {
|
|
368
|
+
const input = str.slice(prevIndex, start);
|
|
369
|
+
for (const { segment: char } of graphemesSegmenter.segment(input)) {
|
|
370
|
+
chars.push(char);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
if (ansi) {
|
|
374
|
+
chars.push(ansi);
|
|
375
|
+
}
|
|
376
|
+
prevIndex = stop;
|
|
377
|
+
}
|
|
378
|
+
return chars;
|
|
379
|
+
}
|
|
380
|
+
// --- ANSI utilities ---
|
|
381
|
+
/**
|
|
382
|
+
* Copied from https://github.com/chalk/ansi-regex/blob/main/index.js
|
|
383
|
+
*/
|
|
384
|
+
function ansiRegex() {
|
|
385
|
+
const ST = '(?:\\u0007|\\u001B\\u005C|\\u009C)';
|
|
386
|
+
const pattern = [
|
|
387
|
+
`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
|
|
388
|
+
'(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))',
|
|
389
|
+
].join('|');
|
|
390
|
+
return new RegExp(pattern, 'g');
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Returns an array of ranges indicating where the string includes ANSI sequences.
|
|
394
|
+
* @param input The string to scan.
|
|
395
|
+
* @param includeLast If true, there will always be a range at the end of the
|
|
396
|
+
* string, to make looping over the ranges easier.
|
|
397
|
+
*/
|
|
398
|
+
export function ansiLocations(input, includeLast) {
|
|
399
|
+
const locations = [...input.matchAll(ansiRegex())].map(({ 0: match, index }) => ({
|
|
400
|
+
start: index,
|
|
401
|
+
stop: index + match.length,
|
|
402
|
+
ansi: match,
|
|
403
|
+
}));
|
|
404
|
+
if (includeLast &&
|
|
405
|
+
(!locations.length || locations.at(-1).stop < input.length)) {
|
|
406
|
+
locations.push({
|
|
407
|
+
start: input.length,
|
|
408
|
+
stop: input.length,
|
|
409
|
+
ansi: '',
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
return locations;
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Removes ANSI color/style sequences.
|
|
416
|
+
*/
|
|
417
|
+
export function removeAnsi(input) {
|
|
418
|
+
return input.replaceAll(ansiRegex(), '');
|
|
419
|
+
}
|
|
420
|
+
// --- Combining character table ---
|
|
421
|
+
const combiningTable = [
|
|
422
|
+
[0x0300, 0x036f],
|
|
423
|
+
[0x0483, 0x0486],
|
|
424
|
+
[0x0488, 0x0489],
|
|
425
|
+
[0x0591, 0x05bd],
|
|
426
|
+
[0x05bf, 0x05bf],
|
|
427
|
+
[0x05c1, 0x05c2],
|
|
428
|
+
[0x05c4, 0x05c5],
|
|
429
|
+
[0x05c7, 0x05c7],
|
|
430
|
+
[0x0600, 0x0603],
|
|
431
|
+
[0x0610, 0x0615],
|
|
432
|
+
[0x064b, 0x065e],
|
|
433
|
+
[0x0670, 0x0670],
|
|
434
|
+
[0x06d6, 0x06e4],
|
|
435
|
+
[0x06e7, 0x06e8],
|
|
436
|
+
[0x06ea, 0x06ed],
|
|
437
|
+
[0x070f, 0x070f],
|
|
438
|
+
[0x0711, 0x0711],
|
|
439
|
+
[0x0730, 0x074a],
|
|
440
|
+
[0x07a6, 0x07b0],
|
|
441
|
+
[0x07eb, 0x07f3],
|
|
442
|
+
[0x0901, 0x0902],
|
|
443
|
+
[0x093c, 0x093c],
|
|
444
|
+
[0x0941, 0x0948],
|
|
445
|
+
[0x094d, 0x094d],
|
|
446
|
+
[0x0951, 0x0954],
|
|
447
|
+
[0x0962, 0x0963],
|
|
448
|
+
[0x0981, 0x0981],
|
|
449
|
+
[0x09bc, 0x09bc],
|
|
450
|
+
[0x09c1, 0x09c4],
|
|
451
|
+
[0x09cd, 0x09cd],
|
|
452
|
+
[0x09e2, 0x09e3],
|
|
453
|
+
[0x0a01, 0x0a02],
|
|
454
|
+
[0x0a3c, 0x0a3c],
|
|
455
|
+
[0x0a41, 0x0a42],
|
|
456
|
+
[0x0a47, 0x0a48],
|
|
457
|
+
[0x0a4b, 0x0a4d],
|
|
458
|
+
[0x0a70, 0x0a71],
|
|
459
|
+
[0x0a81, 0x0a82],
|
|
460
|
+
[0x0abc, 0x0abc],
|
|
461
|
+
[0x0ac1, 0x0ac5],
|
|
462
|
+
[0x0ac7, 0x0ac8],
|
|
463
|
+
[0x0acd, 0x0acd],
|
|
464
|
+
[0x0ae2, 0x0ae3],
|
|
465
|
+
[0x0b01, 0x0b01],
|
|
466
|
+
[0x0b3c, 0x0b3c],
|
|
467
|
+
[0x0b3f, 0x0b3f],
|
|
468
|
+
[0x0b41, 0x0b43],
|
|
469
|
+
[0x0b4d, 0x0b4d],
|
|
470
|
+
[0x0b56, 0x0b56],
|
|
471
|
+
[0x0b82, 0x0b82],
|
|
472
|
+
[0x0bc0, 0x0bc0],
|
|
473
|
+
[0x0bcd, 0x0bcd],
|
|
474
|
+
[0x0c3e, 0x0c40],
|
|
475
|
+
[0x0c46, 0x0c48],
|
|
476
|
+
[0x0c4a, 0x0c4d],
|
|
477
|
+
[0x0c55, 0x0c56],
|
|
478
|
+
[0x0cbc, 0x0cbc],
|
|
479
|
+
[0x0cbf, 0x0cbf],
|
|
480
|
+
[0x0cc6, 0x0cc6],
|
|
481
|
+
[0x0ccc, 0x0ccd],
|
|
482
|
+
[0x0ce2, 0x0ce3],
|
|
483
|
+
[0x0d41, 0x0d43],
|
|
484
|
+
[0x0d4d, 0x0d4d],
|
|
485
|
+
[0x0dca, 0x0dca],
|
|
486
|
+
[0x0dd2, 0x0dd4],
|
|
487
|
+
[0x0dd6, 0x0dd6],
|
|
488
|
+
[0x0e31, 0x0e31],
|
|
489
|
+
[0x0e34, 0x0e3a],
|
|
490
|
+
[0x0e47, 0x0e4e],
|
|
491
|
+
[0x0eb1, 0x0eb1],
|
|
492
|
+
[0x0eb4, 0x0eb9],
|
|
493
|
+
[0x0ebb, 0x0ebc],
|
|
494
|
+
[0x0ec8, 0x0ecd],
|
|
495
|
+
[0x0f18, 0x0f19],
|
|
496
|
+
[0x0f35, 0x0f35],
|
|
497
|
+
[0x0f37, 0x0f37],
|
|
498
|
+
[0x0f39, 0x0f39],
|
|
499
|
+
[0x0f71, 0x0f7e],
|
|
500
|
+
[0x0f80, 0x0f84],
|
|
501
|
+
[0x0f86, 0x0f87],
|
|
502
|
+
[0x0f90, 0x0f97],
|
|
503
|
+
[0x0f99, 0x0fbc],
|
|
504
|
+
[0x0fc6, 0x0fc6],
|
|
505
|
+
[0x102d, 0x1030],
|
|
506
|
+
[0x1032, 0x1032],
|
|
507
|
+
[0x1036, 0x1037],
|
|
508
|
+
[0x1039, 0x1039],
|
|
509
|
+
[0x1058, 0x1059],
|
|
510
|
+
[0x1160, 0x11ff],
|
|
511
|
+
[0x135f, 0x135f],
|
|
512
|
+
[0x1712, 0x1714],
|
|
513
|
+
[0x1732, 0x1734],
|
|
514
|
+
[0x1752, 0x1753],
|
|
515
|
+
[0x1772, 0x1773],
|
|
516
|
+
[0x17b4, 0x17b5],
|
|
517
|
+
[0x17b7, 0x17bd],
|
|
518
|
+
[0x17c6, 0x17c6],
|
|
519
|
+
[0x17c9, 0x17d3],
|
|
520
|
+
[0x17dd, 0x17dd],
|
|
521
|
+
[0x180b, 0x180d],
|
|
522
|
+
[0x18a9, 0x18a9],
|
|
523
|
+
[0x1920, 0x1922],
|
|
524
|
+
[0x1927, 0x1928],
|
|
525
|
+
[0x1932, 0x1932],
|
|
526
|
+
[0x1939, 0x193b],
|
|
527
|
+
[0x1a17, 0x1a18],
|
|
528
|
+
[0x1b00, 0x1b03],
|
|
529
|
+
[0x1b34, 0x1b34],
|
|
530
|
+
[0x1b36, 0x1b3a],
|
|
531
|
+
[0x1b3c, 0x1b3c],
|
|
532
|
+
[0x1b42, 0x1b42],
|
|
533
|
+
[0x1b6b, 0x1b73],
|
|
534
|
+
[0x1dc0, 0x1dca],
|
|
535
|
+
[0x1dfe, 0x1dff],
|
|
536
|
+
[0x200b, 0x200f],
|
|
537
|
+
[0x202a, 0x202e],
|
|
538
|
+
[0x2060, 0x2063],
|
|
539
|
+
[0x206a, 0x206f],
|
|
540
|
+
[0x20d0, 0x20ef],
|
|
541
|
+
[0x302a, 0x302f],
|
|
542
|
+
[0x3099, 0x309a],
|
|
543
|
+
[0xa806, 0xa806],
|
|
544
|
+
[0xa80b, 0xa80b],
|
|
545
|
+
[0xa825, 0xa826],
|
|
546
|
+
[0xfb1e, 0xfb1e],
|
|
547
|
+
[0xfe00, 0xfe0f],
|
|
548
|
+
[0xfe20, 0xfe23],
|
|
549
|
+
[0xfeff, 0xfeff],
|
|
550
|
+
[0xfff9, 0xfffb],
|
|
551
|
+
[0x10a01, 0x10a03],
|
|
552
|
+
[0x10a05, 0x10a06],
|
|
553
|
+
[0x10a0c, 0x10a0f],
|
|
554
|
+
[0x10a38, 0x10a3a],
|
|
555
|
+
[0x10a3f, 0x10a3f],
|
|
556
|
+
[0x1d167, 0x1d169],
|
|
557
|
+
[0x1d173, 0x1d182],
|
|
558
|
+
[0x1d185, 0x1d18b],
|
|
559
|
+
[0x1d1aa, 0x1d1ad],
|
|
560
|
+
[0x1d242, 0x1d244],
|
|
561
|
+
[0xe0001, 0xe0001],
|
|
562
|
+
[0xe0020, 0xe007f],
|
|
563
|
+
[0xe0100, 0xe01ef],
|
|
564
|
+
];
|
|
565
|
+
const _isCombiningCode = combiningTable.reduce((map, row) => {
|
|
566
|
+
for (let i = row[0]; i <= row[1]; i++) {
|
|
567
|
+
map.set(i, true);
|
|
568
|
+
}
|
|
569
|
+
return map;
|
|
570
|
+
}, new Map());
|
|
571
|
+
function isCombiningCode(code) {
|
|
572
|
+
return _isCombiningCode.get(code) ?? false;
|
|
573
|
+
}
|
|
574
|
+
//# sourceMappingURL=unicode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unicode.js","sourceRoot":"","sources":["../src/unicode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAA;AAQ7B;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,gBAAgB;IAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,IACE,GAAG,KAAK,IAAI;YACZ,GAAG,KAAK,IAAI;YACZ,GAAG,KAAK,IAAI;YACZ,GAAG,KAAK,IAAI;YACZ,GAAG,KAAK,IAAI,EACZ,CAAC;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAE,CAAA;IAEjC,MAAM;IACN,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAEzB,MAAM;IACN,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAA;IAE5B,2BAA2B;IAC3B,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IAE3D,uBAAuB;IACvB,IAAI,eAAe,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAEpC,cAAc;IACd,IACE,MAAM,KAAK,KAAK;QAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,EACpC,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IACE,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC,EACtC,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,IACE,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MA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,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;CACnB,CAAA;AAED,MAAM,gBAAgB,GAAsB,cAAc,CAAC,MAAM,CAC/D,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACX,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,EACD,IAAI,GAAG,EAAgB,CACxB,CAAA;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAA;AAC5C,CAAC"}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
TeaUI
|
|
2
|
+
Copyright (c) 2023, Colin T.A. Gray
|
|
3
|
+
https://github.com/colinta/teaui
|
|
4
|
+
|
|
5
|
+
With code from multiple sources
|
|
6
|
+
see https://github.com/colinta/teaui/blob/master/packages/core/LICENSE
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
10
|
+
in the Software without restriction, including without limitation the rights
|
|
11
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13
|
+
furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be included in
|
|
16
|
+
all copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
24
|
+
THE SOFTWARE.
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@teaui/term",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Zero-dependency TypeScript terminal library for modern terminals",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./.dist/index.js",
|
|
7
|
+
"types": "./.dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./.dist/index.d.ts",
|
|
11
|
+
"import": "./.dist/index.js",
|
|
12
|
+
"default": "./.dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@types/node": "^20.3.2",
|
|
17
|
+
"tsx": "^4.21.0",
|
|
18
|
+
"@teaui/shared": "1.3.8"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
".dist"
|
|
22
|
+
],
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "rm -rf .dist && tsc",
|
|
26
|
+
"clean": "rm -rf .dist/",
|
|
27
|
+
"test": "vitest run",
|
|
28
|
+
"test:watch": "vitest",
|
|
29
|
+
"typecheck": "tsc --noEmit",
|
|
30
|
+
"format": "prettier --write 'src/**/*.ts' 'tests/**/*.ts'",
|
|
31
|
+
"format:check": "prettier --check 'src/**/*.ts' 'tests/**/*.ts'",
|
|
32
|
+
"example:speed": "npx tsx examples/speed.ts",
|
|
33
|
+
"example:rain": "npx tsx examples/rain.ts",
|
|
34
|
+
"example:mouse": "npx tsx examples/mouse.ts"
|
|
35
|
+
}
|
|
36
|
+
}
|