@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,260 @@
1
+ /**
2
+ * Color utility functions for terminal 256-color palette.
3
+ * Ported from blessed's colors.js.
4
+ */
5
+ // --- Color name → index mapping ---
6
+ const colorNames = {
7
+ default: -1,
8
+ black: 0,
9
+ red: 1,
10
+ green: 2,
11
+ yellow: 3,
12
+ blue: 4,
13
+ magenta: 5,
14
+ cyan: 6,
15
+ white: 7,
16
+ grey: 8,
17
+ gray: 8,
18
+ brightRed: 9,
19
+ brightGreen: 10,
20
+ brightYellow: 11,
21
+ brightBlue: 12,
22
+ brightMagenta: 13,
23
+ brightCyan: 14,
24
+ brightWhite: 15,
25
+ };
26
+ export function nameToIndex(name) {
27
+ return colorNames[name] ?? -1;
28
+ }
29
+ export function toHex(n) {
30
+ const s = n.toString(16);
31
+ return s.length < 2 ? '0' + s : s;
32
+ }
33
+ // --- Seed all 256 colors (xterm defaults) ---
34
+ const indexToRGB_table = [];
35
+ const indexToHex_table = [];
36
+ (function () {
37
+ const xtermColors = [
38
+ '#000000', '#800000', '#008000', '#808000',
39
+ '#000080', '#800080', '#008080', '#c0c0c0',
40
+ '#808080', '#ff0000', '#00ff00', '#ffff00',
41
+ '#0000ff', '#ff00ff', '#00ffff', '#ffffff',
42
+ ];
43
+ function set(i, r, g, b) {
44
+ indexToRGB_table[i] = [r, g, b];
45
+ indexToHex_table[i] = '#' + toHex(r) + toHex(g) + toHex(b);
46
+ }
47
+ // 0 - 15
48
+ xtermColors.forEach((c, i) => {
49
+ const v = parseInt(c.substring(1), 16);
50
+ set(i, (v >> 16) & 0xff, (v >> 8) & 0xff, v & 0xff);
51
+ });
52
+ // 16 - 231: 6×6×6 color cube
53
+ for (let r = 0; r < 6; r++) {
54
+ for (let g = 0; g < 6; g++) {
55
+ for (let b = 0; b < 6; b++) {
56
+ const i = 16 + r * 36 + g * 6 + b;
57
+ set(i, r ? r * 40 + 55 : 0, g ? g * 40 + 55 : 0, b ? b * 40 + 55 : 0);
58
+ }
59
+ }
60
+ }
61
+ // 232 - 255: grayscale
62
+ for (let g = 0; g < 24; g++) {
63
+ const l = g * 10 + 8;
64
+ set(232 + g, l, l, l);
65
+ }
66
+ })();
67
+ export function indexToRGB(index) {
68
+ return indexToRGB_table[~~index % 255];
69
+ }
70
+ export function indexToHex(index) {
71
+ return indexToHex_table[~~index % 255];
72
+ }
73
+ // --- Color matching ---
74
+ const _cache = {};
75
+ export function match(r1, g1, b1, lookup) {
76
+ if (typeof r1 === 'string') {
77
+ const colorName = r1.replace(/[\- ]/g, '').toLowerCase();
78
+ if (colorNames[colorName] != null) {
79
+ return colorNames[colorName];
80
+ }
81
+ if (r1[0] !== '#') {
82
+ return -1;
83
+ }
84
+ const m = /^#([a-zA-Z0-9]+)\((\d+)\)$/.exec(r1);
85
+ if (m) {
86
+ return +m[2];
87
+ }
88
+ ;
89
+ [r1, g1, b1] = hexToRGB(r1);
90
+ }
91
+ else if (Array.isArray(r1)) {
92
+ b1 = r1[2];
93
+ g1 = r1[1];
94
+ r1 = r1[0];
95
+ }
96
+ const hash = (r1 << 16) | (g1 << 8) | b1;
97
+ if (_cache[hash] !== undefined) {
98
+ return _cache[hash];
99
+ }
100
+ let setCache = false;
101
+ let lookupEntries;
102
+ if (!lookup) {
103
+ setCache = true;
104
+ if (r1 === g1 && g1 === b1) {
105
+ lookupEntries = indexToRGB_table
106
+ .slice(231, 256)
107
+ .map((rgb, index) => [231 + index, rgb]);
108
+ lookupEntries.push([16, [0, 0, 0]]);
109
+ lookupEntries.push([59, [95, 95, 95]]);
110
+ lookupEntries.push([102, [135, 135, 135]]);
111
+ lookupEntries.push([139, [175, 135, 175]]);
112
+ lookupEntries.push([145, [175, 175, 175]]);
113
+ lookupEntries.push([188, [215, 215, 215]]);
114
+ }
115
+ else {
116
+ lookupEntries = indexToRGB_table
117
+ .slice(16)
118
+ .map((rgb, index) => [16 + index, rgb]);
119
+ }
120
+ }
121
+ else {
122
+ lookupEntries = lookup.map((rgb, index) => [index, rgb]);
123
+ }
124
+ let ldiff = Infinity;
125
+ let li = lookupEntries[0][0];
126
+ for (const [index, rgb] of lookupEntries) {
127
+ const diff = colorDistance(r1, g1, b1, rgb[0], rgb[1], rgb[2]);
128
+ if (diff === 0) {
129
+ li = index;
130
+ break;
131
+ }
132
+ if (diff < ldiff) {
133
+ ldiff = diff;
134
+ li = index;
135
+ }
136
+ }
137
+ if (setCache) {
138
+ _cache[hash] = li;
139
+ }
140
+ return li;
141
+ }
142
+ export function RGBtoHex(r, g, b) {
143
+ if (Array.isArray(r)) {
144
+ b = r[2];
145
+ g = r[1];
146
+ r = r[0];
147
+ }
148
+ return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
149
+ }
150
+ export function RGBtoHSB(r, g, b) {
151
+ if (Array.isArray(r)) {
152
+ b = r[2];
153
+ g = r[1];
154
+ r = r[0];
155
+ }
156
+ const max = Math.max(r, g, b);
157
+ const min = Math.min(r, g, b);
158
+ const d = max - min;
159
+ const s = max === 0 ? 0 : d / max;
160
+ const v = max / 255;
161
+ let h;
162
+ switch (max) {
163
+ case min:
164
+ h = 0;
165
+ break;
166
+ case r:
167
+ h = (g - b + d * (g < b ? 6 : 0)) / (6 * d);
168
+ break;
169
+ case g:
170
+ h = (b - r + d * 2) / (6 * d);
171
+ break;
172
+ case b:
173
+ h = (r - g + d * 4) / (6 * d);
174
+ break;
175
+ default:
176
+ h = 0;
177
+ }
178
+ return [h, s, v];
179
+ }
180
+ export function HSBtoRGB(h, s, v) {
181
+ if (Array.isArray(h)) {
182
+ v = h[2];
183
+ s = h[1];
184
+ h = h[0];
185
+ }
186
+ const i = Math.floor(h * 6);
187
+ const f = h * 6 - i;
188
+ const p = v * (1 - s);
189
+ const q = v * (1 - f * s);
190
+ const t = v * (1 - (1 - f) * s);
191
+ let r, g, b;
192
+ switch (i % 6) {
193
+ case 0:
194
+ r = v;
195
+ g = t;
196
+ b = p;
197
+ break;
198
+ case 1:
199
+ r = q;
200
+ g = v;
201
+ b = p;
202
+ break;
203
+ case 2:
204
+ r = p;
205
+ g = v;
206
+ b = t;
207
+ break;
208
+ case 3:
209
+ r = p;
210
+ g = q;
211
+ b = v;
212
+ break;
213
+ case 4:
214
+ r = t;
215
+ g = p;
216
+ b = v;
217
+ break;
218
+ case 5:
219
+ r = v;
220
+ g = p;
221
+ b = q;
222
+ break;
223
+ default:
224
+ r = 0;
225
+ g = 0;
226
+ b = 0;
227
+ }
228
+ return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
229
+ }
230
+ export function hexToRGB(hex) {
231
+ if (hex[0] !== '#') {
232
+ hex = '#' + hex;
233
+ }
234
+ // #rgb → #rrggbb
235
+ if (hex.length === 4) {
236
+ hex = hex[0] + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3];
237
+ }
238
+ const col = parseInt(hex.substring(1), 16);
239
+ return [(col >> 16) & 0xff, (col >> 8) & 0xff, col & 0xff];
240
+ }
241
+ // --- Color distance ---
242
+ function colorDistance(r1, g1, b1, r2, g2, b2) {
243
+ return (r1 - r2) ** 2 + (g1 - g2) ** 2 + (b1 - b2) ** 2;
244
+ }
245
+ // --- Reduce colors for low-color terminals ---
246
+ const fourBitColors = indexToHex_table.map(color => match(color, undefined, undefined, indexToRGB_table.slice(0, 16)));
247
+ const threeBitColors = indexToHex_table.map(color => match(color, undefined, undefined, indexToRGB_table.slice(0, 8)));
248
+ export function reduce(color, total) {
249
+ if (total <= 16) {
250
+ return color >= 16 ? fourBitColors[color] : color;
251
+ }
252
+ else if (total <= 8) {
253
+ return color >= 8 ? threeBitColors[color] : color;
254
+ }
255
+ else if (total <= 2) {
256
+ return color % 2;
257
+ }
258
+ return color;
259
+ }
260
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { CursorShape } from './types.js';
2
+ export declare class CursorController {
3
+ private write;
4
+ constructor(write: (s: string) => void);
5
+ moveTo(x: number, y: number): this;
6
+ moveBy(dx: number, dy: number): this;
7
+ up(n?: number): this;
8
+ down(n?: number): this;
9
+ forward(n?: number): this;
10
+ back(n?: number): this;
11
+ nextLine(n?: number): this;
12
+ prevLine(n?: number): this;
13
+ column(x: number): this;
14
+ save(): this;
15
+ restore(): this;
16
+ show(): this;
17
+ hide(): this;
18
+ shape(s: CursorShape): this;
19
+ }
20
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG7C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAqB;gBAEtB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI;IAItC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAKpC,EAAE,CAAC,CAAC,SAAI,GAAG,IAAI;IAKf,IAAI,CAAC,CAAC,SAAI,GAAG,IAAI;IAKjB,OAAO,CAAC,CAAC,SAAI,GAAG,IAAI;IAKpB,IAAI,CAAC,CAAC,SAAI,GAAG,IAAI;IAKjB,QAAQ,CAAC,CAAC,SAAI,GAAG,IAAI;IAKrB,QAAQ,CAAC,CAAC,SAAI,GAAG,IAAI;IAKrB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKvB,IAAI,IAAI,IAAI;IAKZ,OAAO,IAAI,IAAI;IAKf,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAKZ,KAAK,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;CAI5B"}
@@ -0,0 +1,64 @@
1
+ import * as ansi from './ansi.js';
2
+ export class CursorController {
3
+ write;
4
+ constructor(write) {
5
+ this.write = write;
6
+ }
7
+ moveTo(x, y) {
8
+ this.write(ansi.cursorTo(x, y));
9
+ return this;
10
+ }
11
+ moveBy(dx, dy) {
12
+ this.write(ansi.cursorMove(dx, dy));
13
+ return this;
14
+ }
15
+ up(n = 1) {
16
+ this.write(ansi.cursorUp(n));
17
+ return this;
18
+ }
19
+ down(n = 1) {
20
+ this.write(ansi.cursorDown(n));
21
+ return this;
22
+ }
23
+ forward(n = 1) {
24
+ this.write(ansi.cursorForward(n));
25
+ return this;
26
+ }
27
+ back(n = 1) {
28
+ this.write(ansi.cursorBack(n));
29
+ return this;
30
+ }
31
+ nextLine(n = 1) {
32
+ this.write(ansi.cursorNextLine(n));
33
+ return this;
34
+ }
35
+ prevLine(n = 1) {
36
+ this.write(ansi.cursorPrevLine(n));
37
+ return this;
38
+ }
39
+ column(x) {
40
+ this.write(ansi.cursorColumn(x));
41
+ return this;
42
+ }
43
+ save() {
44
+ this.write(ansi.cursorSave());
45
+ return this;
46
+ }
47
+ restore() {
48
+ this.write(ansi.cursorRestore());
49
+ return this;
50
+ }
51
+ show() {
52
+ this.write(ansi.cursorShow());
53
+ return this;
54
+ }
55
+ hide() {
56
+ this.write(ansi.cursorHide());
57
+ return this;
58
+ }
59
+ shape(s) {
60
+ this.write(ansi.cursorShape(s));
61
+ return this;
62
+ }
63
+ }
64
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,MAAM,OAAO,gBAAgB;IACnB,KAAK,CAAqB;IAElC,YAAY,KAA0B;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,EAAU;QAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,EAAE,CAAC,CAAC,GAAG,CAAC;QACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,CAAC,GAAG,CAAC;QACR,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CAAC,CAAC,GAAG,CAAC;QACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,CAAC,GAAG,CAAC;QACR,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAC,CAAC,GAAG,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAC,CAAC,GAAG,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,CAAS;QACd,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,CAAc;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import type { ImageOptions, ImageProtocol } from './types.js';
2
+ export declare function itermImage(data: Buffer, options?: ImageOptions): string;
3
+ export declare function kittyImage(data: Buffer, options?: ImageOptions): string;
4
+ export declare function detectImageProtocol(env?: Record<string, string | undefined>): ImageProtocol;
5
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAK7D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CAU3E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CA2B3E;AAED,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,aAAa,CAQf"}
package/.dist/image.js ADDED
@@ -0,0 +1,49 @@
1
+ import { OSC, ST, ESC } from './ansi.js';
2
+ const KITTY_CHUNK_SIZE = 4096;
3
+ export function itermImage(data, options = {}) {
4
+ const b64 = data.toString('base64');
5
+ const params = ['inline=1'];
6
+ if (options.width !== undefined)
7
+ params.push(`width=${options.width}`);
8
+ if (options.height !== undefined)
9
+ params.push(`height=${options.height}`);
10
+ if (options.preserveAspectRatio === false)
11
+ params.push('preserveAspectRatio=0');
12
+ return `${OSC}1337;File=${params.join(';')}:${b64}${ST}`;
13
+ }
14
+ export function kittyImage(data, options = {}) {
15
+ const b64 = data.toString('base64');
16
+ const chunks = [];
17
+ // Build base params
18
+ const baseParams = ['a=T', 'f=100'];
19
+ if (options.width !== undefined)
20
+ baseParams.push(`c=${options.width}`);
21
+ if (options.height !== undefined)
22
+ baseParams.push(`r=${options.height}`);
23
+ if (b64.length <= KITTY_CHUNK_SIZE) {
24
+ return `${ESC}_G${baseParams.join(',')},m=0;${b64}${ST}`;
25
+ }
26
+ // Multiple chunks
27
+ for (let i = 0; i < b64.length; i += KITTY_CHUNK_SIZE) {
28
+ const chunk = b64.slice(i, i + KITTY_CHUNK_SIZE);
29
+ const isLast = i + KITTY_CHUNK_SIZE >= b64.length;
30
+ const more = isLast ? 0 : 1;
31
+ if (i === 0) {
32
+ chunks.push(`${ESC}_G${baseParams.join(',')},m=${more};${chunk}${ST}`);
33
+ }
34
+ else {
35
+ chunks.push(`${ESC}_Gm=${more};${chunk}${ST}`);
36
+ }
37
+ }
38
+ return chunks.join('');
39
+ }
40
+ export function detectImageProtocol(env = process.env) {
41
+ const termProgram = env.TERM_PROGRAM?.toLowerCase() ?? '';
42
+ const term = env.TERM?.toLowerCase() ?? '';
43
+ if (termProgram === 'kitty' || term === 'xterm-kitty')
44
+ return 'kitty';
45
+ if (termProgram === 'iterm.app' || termProgram === 'wezterm')
46
+ return 'iterm';
47
+ return 'none';
48
+ }
49
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type { NamedColor, RGBColor, HSLColor, Color256, Color, TextAttribute, CursorPosition, CursorShape, ScreenSize, ColorSupport, TerminalOptions, FullscreenOptions, KeyEvent, MouseButton, MouseAction, MouseEvent, PasteEvent, FocusEvent, InputEvent, ImageOptions, ImageProtocol, UnderlineStyle, } from './types.js';
2
+ export { isKeyEvent, isMouseEvent, isPasteEvent, isFocusEvent } from './types.js';
3
+ export { ESC, CSI, OSC, ST, cursorTo, cursorMove, cursorUp, cursorDown, cursorForward, cursorBack, cursorNextLine, cursorPrevLine, cursorColumn, cursorSave, cursorRestore, cursorShow, cursorHide, cursorShape, eraseScreen, eraseDown, eraseUp, eraseLine, eraseLineEnd, eraseLineStart, eraseChars, scrollUp, scrollDown, fgColor, fgReset, bgColor, bgReset, textAttr, textAttrOff, resetAll, alternateBufferEnter, alternateBufferExit, mouseEnable, mouseDisable, focusEventsEnable, focusEventsDisable, hslToRgb, } from './ansi.js';
4
+ export { StyleBuilder } from './style.js';
5
+ export { CursorController } from './cursor.js';
6
+ export { parseInput, InputReader } from './input.js';
7
+ export { ScreenController, detectColorSupport } from './screen.js';
8
+ export { itermImage, kittyImage, detectImageProtocol } from './image.js';
9
+ export { hyperlink, styledUnderline, underlineColor, setTitle, notification, bracketedPasteEnable, bracketedPasteDisable, syncStart, syncEnd, } from './modern.js';
10
+ export { ScreenBuffer } from './buffer.js';
11
+ export type { Cell } from './buffer.js';
12
+ export { BG_DRAW, charWidth, lineWidth, stringSize, printableChars, words, ansiLocations, removeAnsi, getLocale, setLocale, } from './unicode.js';
13
+ export type { AnsiLocation } from './unicode.js';
14
+ export * as colors from './colors.js';
15
+ export { parseStyleDescriptor } from './sgr.js';
16
+ export { Terminal } from './terminal.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGjF,OAAO,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,EAAE,EACF,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,EACT,YAAY,EACZ,cAAc,EACd,UAAU,EACV,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,GACT,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAG9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGpD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGlE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGxE,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,EACT,OAAO,GACR,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,YAAY,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGvC,OAAO,EACL,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,KAAK,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAGrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAG/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA"}
package/.dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ // Type guards
2
+ export { isKeyEvent, isMouseEvent, isPasteEvent, isFocusEvent } from './types.js';
3
+ // ANSI primitives
4
+ export { ESC, CSI, OSC, ST, cursorTo, cursorMove, cursorUp, cursorDown, cursorForward, cursorBack, cursorNextLine, cursorPrevLine, cursorColumn, cursorSave, cursorRestore, cursorShow, cursorHide, cursorShape, eraseScreen, eraseDown, eraseUp, eraseLine, eraseLineEnd, eraseLineStart, eraseChars, scrollUp, scrollDown, fgColor, fgReset, bgColor, bgReset, textAttr, textAttrOff, resetAll, alternateBufferEnter, alternateBufferExit, mouseEnable, mouseDisable, focusEventsEnable, focusEventsDisable, hslToRgb, } from './ansi.js';
5
+ // Style
6
+ export { StyleBuilder } from './style.js';
7
+ // Cursor
8
+ export { CursorController } from './cursor.js';
9
+ // Input
10
+ export { parseInput, InputReader } from './input.js';
11
+ // Screen
12
+ export { ScreenController, detectColorSupport } from './screen.js';
13
+ // Image
14
+ export { itermImage, kittyImage, detectImageProtocol } from './image.js';
15
+ // Modern features
16
+ export { hyperlink, styledUnderline, underlineColor, setTitle, notification, bracketedPasteEnable, bracketedPasteDisable, syncStart, syncEnd, } from './modern.js';
17
+ // Buffer
18
+ export { ScreenBuffer } from './buffer.js';
19
+ // Unicode
20
+ export { BG_DRAW, charWidth, lineWidth, stringSize, printableChars, words, ansiLocations, removeAnsi, getLocale, setLocale, } from './unicode.js';
21
+ // Colors (256-color palette utilities)
22
+ export * as colors from './colors.js';
23
+ // SGR style descriptor parser (replaces blessed program.style())
24
+ export { parseStyleDescriptor } from './sgr.js';
25
+ // Terminal (main class)
26
+ export { Terminal } from './terminal.js';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA0BA,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEjF,kBAAkB;AAClB,OAAO,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,EAAE,EACF,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,EACT,YAAY,EACZ,cAAc,EACd,UAAU,EACV,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,GACT,MAAM,WAAW,CAAA;AAElB,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,QAAQ;AACR,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEpD,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAElE,QAAQ;AACR,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAExE,kBAAkB;AAClB,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,EACT,OAAO,GACR,MAAM,aAAa,CAAA;AAEpB,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG1C,UAAU;AACV,OAAO,EACL,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,KAAK,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,cAAc,CAAA;AAGrB,uCAAuC;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,iEAAiE;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/C,wBAAwB;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { InputEvent } from './types.js';
2
+ export declare function parseInput(data: Buffer): InputEvent[];
3
+ export declare class InputReader {
4
+ private listeners;
5
+ private dataHandler;
6
+ private stream;
7
+ attach(stream: NodeJS.ReadableStream): void;
8
+ detach(): void;
9
+ onInput(cb: (event: InputEvent) => void): () => void;
10
+ }
11
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAOX,MAAM,YAAY,CAAA;AAuHnB,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAoKrD;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,MAAM,CAAqC;IAEnD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI;IAa3C,MAAM,IAAI,IAAI;IAQd,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;CAOrD"}