@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.
Files changed (58) hide show
  1. package/.dist/ansi.d.ts +45 -0
  2. package/.dist/ansi.d.ts.map +1 -0
  3. package/.dist/ansi.js +254 -0
  4. package/.dist/ansi.js.map +1 -0
  5. package/.dist/buffer.d.ts +27 -0
  6. package/.dist/buffer.d.ts.map +1 -0
  7. package/.dist/buffer.js +112 -0
  8. package/.dist/buffer.js.map +1 -0
  9. package/.dist/colors.d.ts +31 -0
  10. package/.dist/colors.d.ts.map +1 -0
  11. package/.dist/colors.js +260 -0
  12. package/.dist/colors.js.map +1 -0
  13. package/.dist/cursor.d.ts +20 -0
  14. package/.dist/cursor.d.ts.map +1 -0
  15. package/.dist/cursor.js +64 -0
  16. package/.dist/cursor.js.map +1 -0
  17. package/.dist/image.d.ts +5 -0
  18. package/.dist/image.d.ts.map +1 -0
  19. package/.dist/image.js +49 -0
  20. package/.dist/image.js.map +1 -0
  21. package/.dist/index.d.ts +17 -0
  22. package/.dist/index.d.ts.map +1 -0
  23. package/.dist/index.js +27 -0
  24. package/.dist/index.js.map +1 -0
  25. package/.dist/input.d.ts +11 -0
  26. package/.dist/input.d.ts.map +1 -0
  27. package/.dist/input.js +287 -0
  28. package/.dist/input.js.map +1 -0
  29. package/.dist/modern.d.ts +14 -0
  30. package/.dist/modern.d.ts.map +1 -0
  31. package/.dist/modern.js +83 -0
  32. package/.dist/modern.js.map +1 -0
  33. package/.dist/screen.d.ts +17 -0
  34. package/.dist/screen.d.ts.map +1 -0
  35. package/.dist/screen.js +82 -0
  36. package/.dist/screen.js.map +1 -0
  37. package/.dist/sgr.d.ts +25 -0
  38. package/.dist/sgr.d.ts.map +1 -0
  39. package/.dist/sgr.js +160 -0
  40. package/.dist/sgr.js.map +1 -0
  41. package/.dist/style.d.ts +25 -0
  42. package/.dist/style.d.ts.map +1 -0
  43. package/.dist/style.js +53 -0
  44. package/.dist/style.js.map +1 -0
  45. package/.dist/terminal.d.ts +84 -0
  46. package/.dist/terminal.d.ts.map +1 -0
  47. package/.dist/terminal.js +325 -0
  48. package/.dist/terminal.js.map +1 -0
  49. package/.dist/types.d.ts +80 -0
  50. package/.dist/types.d.ts.map +1 -0
  51. package/.dist/types.js +15 -0
  52. package/.dist/types.js.map +1 -0
  53. package/.dist/unicode.d.ts +65 -0
  54. package/.dist/unicode.d.ts.map +1 -0
  55. package/.dist/unicode.js +574 -0
  56. package/.dist/unicode.js.map +1 -0
  57. package/LICENSE +24 -0
  58. package/package.json +36 -0
@@ -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
+ }