@suds-cli/tea 0.0.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 (45) hide show
  1. package/dist/commands.d.ts +27 -0
  2. package/dist/commands.d.ts.map +1 -0
  3. package/dist/commands.js +106 -0
  4. package/dist/commands.js.map +1 -0
  5. package/dist/index.d.ts +12 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +52 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/input.d.ts +8 -0
  10. package/dist/input.d.ts.map +1 -0
  11. package/dist/input.js +98 -0
  12. package/dist/input.js.map +1 -0
  13. package/dist/keys.d.ts +86 -0
  14. package/dist/keys.d.ts.map +1 -0
  15. package/dist/keys.js +317 -0
  16. package/dist/keys.js.map +1 -0
  17. package/dist/messages.d.ts +78 -0
  18. package/dist/messages.d.ts.map +1 -0
  19. package/dist/messages.js +104 -0
  20. package/dist/messages.js.map +1 -0
  21. package/dist/mouse.d.ts +46 -0
  22. package/dist/mouse.d.ts.map +1 -0
  23. package/dist/mouse.js +167 -0
  24. package/dist/mouse.js.map +1 -0
  25. package/dist/program.d.ts +39 -0
  26. package/dist/program.d.ts.map +1 -0
  27. package/dist/program.js +231 -0
  28. package/dist/program.js.map +1 -0
  29. package/dist/renderer.d.ts +19 -0
  30. package/dist/renderer.d.ts.map +1 -0
  31. package/dist/renderer.js +49 -0
  32. package/dist/renderer.js.map +1 -0
  33. package/dist/screen.d.ts +22 -0
  34. package/dist/screen.d.ts.map +1 -0
  35. package/dist/screen.js +35 -0
  36. package/dist/screen.js.map +1 -0
  37. package/dist/terminal.d.ts +32 -0
  38. package/dist/terminal.d.ts.map +1 -0
  39. package/dist/terminal.js +119 -0
  40. package/dist/terminal.js.map +1 -0
  41. package/dist/types.d.ts +36 -0
  42. package/dist/types.d.ts.map +1 -0
  43. package/dist/types.js +3 -0
  44. package/dist/types.js.map +1 -0
  45. package/package.json +33 -0
package/dist/keys.js ADDED
@@ -0,0 +1,317 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyMsg = exports.KeyType = void 0;
4
+ exports.keyToString = keyToString;
5
+ exports.parseKey = parseKey;
6
+ const node_buffer_1 = require("node:buffer");
7
+ /** @public Known key types parsed from terminal input. */
8
+ var KeyType;
9
+ (function (KeyType) {
10
+ KeyType["Null"] = "null";
11
+ KeyType["Break"] = "break";
12
+ KeyType["Enter"] = "enter";
13
+ KeyType["Backspace"] = "backspace";
14
+ KeyType["Tab"] = "tab";
15
+ KeyType["Esc"] = "esc";
16
+ KeyType["Space"] = "space";
17
+ KeyType["Runes"] = "runes";
18
+ KeyType["Up"] = "up";
19
+ KeyType["Down"] = "down";
20
+ KeyType["Right"] = "right";
21
+ KeyType["Left"] = "left";
22
+ KeyType["ShiftTab"] = "shift+tab";
23
+ KeyType["Home"] = "home";
24
+ KeyType["End"] = "end";
25
+ KeyType["PgUp"] = "pgup";
26
+ KeyType["PgDown"] = "pgdown";
27
+ KeyType["CtrlPgUp"] = "ctrl+pgup";
28
+ KeyType["CtrlPgDown"] = "ctrl+pgdown";
29
+ KeyType["Delete"] = "delete";
30
+ KeyType["Insert"] = "insert";
31
+ KeyType["CtrlUp"] = "ctrl+up";
32
+ KeyType["CtrlDown"] = "ctrl+down";
33
+ KeyType["CtrlRight"] = "ctrl+right";
34
+ KeyType["CtrlLeft"] = "ctrl+left";
35
+ KeyType["CtrlHome"] = "ctrl+home";
36
+ KeyType["CtrlEnd"] = "ctrl+end";
37
+ KeyType["ShiftUp"] = "shift+up";
38
+ KeyType["ShiftDown"] = "shift+down";
39
+ KeyType["ShiftRight"] = "shift+right";
40
+ KeyType["ShiftLeft"] = "shift+left";
41
+ KeyType["ShiftHome"] = "shift+home";
42
+ KeyType["ShiftEnd"] = "shift+end";
43
+ KeyType["CtrlShiftUp"] = "ctrl+shift+up";
44
+ KeyType["CtrlShiftDown"] = "ctrl+shift+down";
45
+ KeyType["CtrlShiftLeft"] = "ctrl+shift+left";
46
+ KeyType["CtrlShiftRight"] = "ctrl+shift+right";
47
+ KeyType["CtrlShiftHome"] = "ctrl+shift+home";
48
+ KeyType["CtrlShiftEnd"] = "ctrl+shift+end";
49
+ KeyType["F1"] = "f1";
50
+ KeyType["F2"] = "f2";
51
+ KeyType["F3"] = "f3";
52
+ KeyType["F4"] = "f4";
53
+ KeyType["F5"] = "f5";
54
+ KeyType["F6"] = "f6";
55
+ KeyType["F7"] = "f7";
56
+ KeyType["F8"] = "f8";
57
+ KeyType["F9"] = "f9";
58
+ KeyType["F10"] = "f10";
59
+ KeyType["F11"] = "f11";
60
+ KeyType["F12"] = "f12";
61
+ KeyType["F13"] = "f13";
62
+ KeyType["F14"] = "f14";
63
+ KeyType["F15"] = "f15";
64
+ KeyType["F16"] = "f16";
65
+ KeyType["F17"] = "f17";
66
+ KeyType["F18"] = "f18";
67
+ KeyType["F19"] = "f19";
68
+ KeyType["F20"] = "f20";
69
+ })(KeyType || (exports.KeyType = KeyType = {}));
70
+ const keyNames = {
71
+ [KeyType.Null]: "ctrl+@",
72
+ [KeyType.Break]: "ctrl+c",
73
+ [KeyType.Enter]: "enter",
74
+ [KeyType.Backspace]: "backspace",
75
+ [KeyType.Tab]: "tab",
76
+ [KeyType.Esc]: "esc",
77
+ [KeyType.Space]: " ",
78
+ [KeyType.Runes]: "runes",
79
+ [KeyType.Up]: "up",
80
+ [KeyType.Down]: "down",
81
+ [KeyType.Right]: "right",
82
+ [KeyType.Left]: "left",
83
+ [KeyType.ShiftTab]: "shift+tab",
84
+ [KeyType.Home]: "home",
85
+ [KeyType.End]: "end",
86
+ [KeyType.PgUp]: "pgup",
87
+ [KeyType.PgDown]: "pgdown",
88
+ [KeyType.CtrlPgUp]: "ctrl+pgup",
89
+ [KeyType.CtrlPgDown]: "ctrl+pgdown",
90
+ [KeyType.Delete]: "delete",
91
+ [KeyType.Insert]: "insert",
92
+ [KeyType.CtrlUp]: "ctrl+up",
93
+ [KeyType.CtrlDown]: "ctrl+down",
94
+ [KeyType.CtrlRight]: "ctrl+right",
95
+ [KeyType.CtrlLeft]: "ctrl+left",
96
+ [KeyType.CtrlHome]: "ctrl+home",
97
+ [KeyType.CtrlEnd]: "ctrl+end",
98
+ [KeyType.ShiftUp]: "shift+up",
99
+ [KeyType.ShiftDown]: "shift+down",
100
+ [KeyType.ShiftRight]: "shift+right",
101
+ [KeyType.ShiftLeft]: "shift+left",
102
+ [KeyType.ShiftHome]: "shift+home",
103
+ [KeyType.ShiftEnd]: "shift+end",
104
+ [KeyType.CtrlShiftUp]: "ctrl+shift+up",
105
+ [KeyType.CtrlShiftDown]: "ctrl+shift+down",
106
+ [KeyType.CtrlShiftLeft]: "ctrl+shift+left",
107
+ [KeyType.CtrlShiftRight]: "ctrl+shift+right",
108
+ [KeyType.CtrlShiftHome]: "ctrl+shift+home",
109
+ [KeyType.CtrlShiftEnd]: "ctrl+shift+end",
110
+ [KeyType.F1]: "f1",
111
+ [KeyType.F2]: "f2",
112
+ [KeyType.F3]: "f3",
113
+ [KeyType.F4]: "f4",
114
+ [KeyType.F5]: "f5",
115
+ [KeyType.F6]: "f6",
116
+ [KeyType.F7]: "f7",
117
+ [KeyType.F8]: "f8",
118
+ [KeyType.F9]: "f9",
119
+ [KeyType.F10]: "f10",
120
+ [KeyType.F11]: "f11",
121
+ [KeyType.F12]: "f12",
122
+ [KeyType.F13]: "f13",
123
+ [KeyType.F14]: "f14",
124
+ [KeyType.F15]: "f15",
125
+ [KeyType.F16]: "f16",
126
+ [KeyType.F17]: "f17",
127
+ [KeyType.F18]: "f18",
128
+ [KeyType.F19]: "f19",
129
+ [KeyType.F20]: "f20",
130
+ };
131
+ const controlKeyMap = {
132
+ 0: KeyType.Null,
133
+ 3: KeyType.Break,
134
+ 9: KeyType.Tab,
135
+ 10: KeyType.Enter,
136
+ 13: KeyType.Enter,
137
+ 27: KeyType.Esc,
138
+ 127: KeyType.Backspace,
139
+ };
140
+ const sequences = [
141
+ ["\u001b[A", { type: KeyType.Up, runes: "", alt: false, paste: false }],
142
+ ["\u001b[B", { type: KeyType.Down, runes: "", alt: false, paste: false }],
143
+ ["\u001b[C", { type: KeyType.Right, runes: "", alt: false, paste: false }],
144
+ ["\u001b[D", { type: KeyType.Left, runes: "", alt: false, paste: false }],
145
+ ["\u001b[Z", { type: KeyType.ShiftTab, runes: "", alt: false, paste: false }],
146
+ ["\u001b[2~", { type: KeyType.Insert, runes: "", alt: false, paste: false }],
147
+ ["\u001b[3~", { type: KeyType.Delete, runes: "", alt: false, paste: false }],
148
+ ["\u001b[5~", { type: KeyType.PgUp, runes: "", alt: false, paste: false }],
149
+ ["\u001b[6~", { type: KeyType.PgDown, runes: "", alt: false, paste: false }],
150
+ ["\u001b[1~", { type: KeyType.Home, runes: "", alt: false, paste: false }],
151
+ ["\u001b[4~", { type: KeyType.End, runes: "", alt: false, paste: false }],
152
+ ["\u001b[H", { type: KeyType.Home, runes: "", alt: false, paste: false }],
153
+ ["\u001b[F", { type: KeyType.End, runes: "", alt: false, paste: false }],
154
+ ["\u001bOP", { type: KeyType.F1, runes: "", alt: false, paste: false }],
155
+ ["\u001bOQ", { type: KeyType.F2, runes: "", alt: false, paste: false }],
156
+ ["\u001bOR", { type: KeyType.F3, runes: "", alt: false, paste: false }],
157
+ ["\u001bOS", { type: KeyType.F4, runes: "", alt: false, paste: false }],
158
+ ["\u001b[15~", { type: KeyType.F5, runes: "", alt: false, paste: false }],
159
+ ["\u001b[17~", { type: KeyType.F6, runes: "", alt: false, paste: false }],
160
+ ["\u001b[18~", { type: KeyType.F7, runes: "", alt: false, paste: false }],
161
+ ["\u001b[19~", { type: KeyType.F8, runes: "", alt: false, paste: false }],
162
+ ["\u001b[20~", { type: KeyType.F9, runes: "", alt: false, paste: false }],
163
+ ["\u001b[21~", { type: KeyType.F10, runes: "", alt: false, paste: false }],
164
+ ["\u001b[23~", { type: KeyType.F11, runes: "", alt: false, paste: false }],
165
+ ["\u001b[24~", { type: KeyType.F12, runes: "", alt: false, paste: false }],
166
+ [
167
+ "\u001b[1;2A",
168
+ { type: KeyType.ShiftUp, runes: "", alt: false, paste: false },
169
+ ],
170
+ [
171
+ "\u001b[1;2B",
172
+ { type: KeyType.ShiftDown, runes: "", alt: false, paste: false },
173
+ ],
174
+ [
175
+ "\u001b[1;2C",
176
+ { type: KeyType.ShiftRight, runes: "", alt: false, paste: false },
177
+ ],
178
+ [
179
+ "\u001b[1;2D",
180
+ { type: KeyType.ShiftLeft, runes: "", alt: false, paste: false },
181
+ ],
182
+ [
183
+ "\u001b[1;5A",
184
+ { type: KeyType.CtrlUp, runes: "", alt: false, paste: false },
185
+ ],
186
+ [
187
+ "\u001b[1;5B",
188
+ { type: KeyType.CtrlDown, runes: "", alt: false, paste: false },
189
+ ],
190
+ [
191
+ "\u001b[1;5C",
192
+ { type: KeyType.CtrlRight, runes: "", alt: false, paste: false },
193
+ ],
194
+ [
195
+ "\u001b[1;5D",
196
+ { type: KeyType.CtrlLeft, runes: "", alt: false, paste: false },
197
+ ],
198
+ [
199
+ "\u001b[1;6A",
200
+ { type: KeyType.CtrlShiftUp, runes: "", alt: false, paste: false },
201
+ ],
202
+ [
203
+ "\u001b[1;6B",
204
+ { type: KeyType.CtrlShiftDown, runes: "", alt: false, paste: false },
205
+ ],
206
+ [
207
+ "\u001b[1;6C",
208
+ { type: KeyType.CtrlShiftRight, runes: "", alt: false, paste: false },
209
+ ],
210
+ [
211
+ "\u001b[1;6D",
212
+ { type: KeyType.CtrlShiftLeft, runes: "", alt: false, paste: false },
213
+ ],
214
+ ["\u001b[1;3A", { type: KeyType.Up, runes: "", alt: true, paste: false }],
215
+ ["\u001b[1;3B", { type: KeyType.Down, runes: "", alt: true, paste: false }],
216
+ ["\u001b[1;3C", { type: KeyType.Right, runes: "", alt: true, paste: false }],
217
+ ["\u001b[1;3D", { type: KeyType.Left, runes: "", alt: true, paste: false }],
218
+ [
219
+ "\u001b[5;5~",
220
+ { type: KeyType.CtrlPgUp, runes: "", alt: false, paste: false },
221
+ ],
222
+ [
223
+ "\u001b[6;5~",
224
+ { type: KeyType.CtrlPgDown, runes: "", alt: false, paste: false },
225
+ ],
226
+ ["\u001b[5;3~", { type: KeyType.PgUp, runes: "", alt: true, paste: false }],
227
+ ["\u001b[6;3~", { type: KeyType.PgDown, runes: "", alt: true, paste: false }],
228
+ ["\u001b[3;2~", { type: KeyType.Insert, runes: "", alt: true, paste: false }],
229
+ ["\u001b[3;3~", { type: KeyType.Delete, runes: "", alt: true, paste: false }],
230
+ ["\u001b[[A", { type: KeyType.F1, runes: "", alt: false, paste: false }],
231
+ ["\u001b[[B", { type: KeyType.F2, runes: "", alt: false, paste: false }],
232
+ ["\u001b[[C", { type: KeyType.F3, runes: "", alt: false, paste: false }],
233
+ ["\u001b[[D", { type: KeyType.F4, runes: "", alt: false, paste: false }],
234
+ ["\u001b[[E", { type: KeyType.F5, runes: "", alt: false, paste: false }],
235
+ ];
236
+ /** @public Message representing a parsed key event. */
237
+ class KeyMsg {
238
+ key;
239
+ _tag = "key";
240
+ constructor(key) {
241
+ this.key = key;
242
+ }
243
+ toString() {
244
+ return keyToString(this.key);
245
+ }
246
+ }
247
+ exports.KeyMsg = KeyMsg;
248
+ /** @public Convert a parsed key to a human-readable string. */
249
+ function keyToString(key) {
250
+ if (key.type === KeyType.Runes) {
251
+ const value = key.paste ? `[${key.runes}]` : key.runes;
252
+ return key.alt ? `alt+${value}` : value;
253
+ }
254
+ const base = keyNames[key.type] ?? "";
255
+ return key.alt ? `alt+${base}` : base;
256
+ }
257
+ function parseKey(buffer, allowMoreData) {
258
+ if (buffer.length === 0) {
259
+ return allowMoreData ? { needMore: true } : undefined;
260
+ }
261
+ const input = buffer.toString("utf8");
262
+ for (const [seq, key] of sequences) {
263
+ if (input.startsWith(seq)) {
264
+ return { key, length: node_buffer_1.Buffer.byteLength(seq, "utf8") };
265
+ }
266
+ if (allowMoreData && seq.startsWith(input)) {
267
+ return { needMore: true };
268
+ }
269
+ }
270
+ if (buffer[0] === 0x1b && buffer.length > 1) {
271
+ const [, altLength] = decodeRune(buffer.subarray(1));
272
+ if (altLength > 0) {
273
+ const runeStr = buffer.subarray(1, 1 + altLength).toString("utf8");
274
+ return {
275
+ key: { type: KeyType.Runes, runes: runeStr, alt: true, paste: false },
276
+ length: 1 + altLength,
277
+ };
278
+ }
279
+ }
280
+ const code = buffer[0] ?? 0;
281
+ const mapped = Object.prototype.hasOwnProperty.call(controlKeyMap, code)
282
+ ? controlKeyMap[code]
283
+ : undefined;
284
+ if (mapped !== undefined) {
285
+ return {
286
+ key: { type: mapped, runes: "", alt: false, paste: false },
287
+ length: 1,
288
+ };
289
+ }
290
+ const [rune, runeLength] = decodeRune(buffer);
291
+ if (runeLength === 0 || rune === null) {
292
+ return allowMoreData ? { needMore: true } : undefined;
293
+ }
294
+ if (rune === " ") {
295
+ return {
296
+ key: { type: KeyType.Space, runes: rune, alt: false, paste: false },
297
+ length: runeLength,
298
+ };
299
+ }
300
+ return {
301
+ key: { type: KeyType.Runes, runes: rune, alt: false, paste: false },
302
+ length: runeLength,
303
+ };
304
+ }
305
+ function decodeRune(buffer) {
306
+ const codePoint = buffer.toString("utf8", 0, 4);
307
+ if (codePoint.length === 0) {
308
+ return [null, 0];
309
+ }
310
+ const firstChar = codePoint[0] ?? null;
311
+ if (firstChar === null) {
312
+ return [null, 0];
313
+ }
314
+ const length = node_buffer_1.Buffer.from(firstChar, "utf8").length;
315
+ return [firstChar, length];
316
+ }
317
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /** @public Request graceful program termination. */
2
+ export declare class QuitMsg {
3
+ readonly _tag = "quit";
4
+ }
5
+ /** @public Interrupt the program (SIGINT). */
6
+ export declare class InterruptMsg {
7
+ readonly _tag = "interrupt";
8
+ }
9
+ /** @public Suspend the program (Ctrl+Z). */
10
+ export declare class SuspendMsg {
11
+ readonly _tag = "suspend";
12
+ }
13
+ /** @public Resume the program after suspension. */
14
+ export declare class ResumeMsg {
15
+ readonly _tag = "resume";
16
+ }
17
+ /** @public Report the current terminal width and height. */
18
+ export declare class WindowSizeMsg {
19
+ readonly width: number;
20
+ readonly height: number;
21
+ readonly _tag = "window-size";
22
+ constructor(width: number, height: number);
23
+ }
24
+ /** @public Terminal focus gained. */
25
+ export declare class FocusMsg {
26
+ readonly _tag = "focus";
27
+ }
28
+ /** @public Terminal focus lost. */
29
+ export declare class BlurMsg {
30
+ readonly _tag = "blur";
31
+ }
32
+ /** @public Clear the terminal screen. */
33
+ export declare class ClearScreenMsg {
34
+ readonly _tag = "clear-screen";
35
+ }
36
+ /** @public Enter the alternate screen buffer. */
37
+ export declare class EnterAltScreenMsg {
38
+ readonly _tag = "enter-alt-screen";
39
+ }
40
+ /** @public Exit the alternate screen buffer. */
41
+ export declare class ExitAltScreenMsg {
42
+ readonly _tag = "exit-alt-screen";
43
+ }
44
+ /** @public Enable cell-based mouse reporting. */
45
+ export declare class EnableMouseCellMotionMsg {
46
+ readonly _tag = "enable-mouse-cell-motion";
47
+ }
48
+ /** @public Enable all-motion mouse reporting. */
49
+ export declare class EnableMouseAllMotionMsg {
50
+ readonly _tag = "enable-mouse-all-motion";
51
+ }
52
+ /** @public Disable mouse reporting. */
53
+ export declare class DisableMouseMsg {
54
+ readonly _tag = "disable-mouse";
55
+ }
56
+ /** @public Show the cursor. */
57
+ export declare class ShowCursorMsg {
58
+ readonly _tag = "show-cursor";
59
+ }
60
+ /** @public Hide the cursor. */
61
+ export declare class HideCursorMsg {
62
+ readonly _tag = "hide-cursor";
63
+ }
64
+ /** @public Enable focus in/out reporting. */
65
+ export declare class EnableReportFocusMsg {
66
+ readonly _tag = "enable-report-focus";
67
+ }
68
+ /** @public Disable focus in/out reporting. */
69
+ export declare class DisableReportFocusMsg {
70
+ readonly _tag = "disable-report-focus";
71
+ }
72
+ /** @public Set the terminal window title. */
73
+ export declare class SetWindowTitleMsg {
74
+ readonly title: string;
75
+ readonly _tag = "set-window-title";
76
+ constructor(title: string);
77
+ }
78
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,qBAAa,OAAO;IAClB,QAAQ,CAAC,IAAI,UAAU;CACxB;AAED,8CAA8C;AAC9C,qBAAa,YAAY;IACvB,QAAQ,CAAC,IAAI,eAAe;CAC7B;AAED,4CAA4C;AAC5C,qBAAa,UAAU;IACrB,QAAQ,CAAC,IAAI,aAAa;CAC3B;AAED,mDAAmD;AACnD,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,YAAY;CAC1B;AAED,4DAA4D;AAC5D,qBAAa,aAAa;aAGN,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,MAAM;IAHhC,QAAQ,CAAC,IAAI,iBAAiB;gBAEZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;CAEjC;AAED,qCAAqC;AACrC,qBAAa,QAAQ;IACnB,QAAQ,CAAC,IAAI,WAAW;CACzB;AAED,mCAAmC;AACnC,qBAAa,OAAO;IAClB,QAAQ,CAAC,IAAI,UAAU;CACxB;AAED,yCAAyC;AACzC,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,kBAAkB;CAChC;AAED,iDAAiD;AACjD,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,IAAI,sBAAsB;CACpC;AAED,gDAAgD;AAChD,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,qBAAqB;CACnC;AAED,iDAAiD;AACjD,qBAAa,wBAAwB;IACnC,QAAQ,CAAC,IAAI,8BAA8B;CAC5C;AAED,iDAAiD;AACjD,qBAAa,uBAAuB;IAClC,QAAQ,CAAC,IAAI,6BAA6B;CAC3C;AAED,uCAAuC;AACvC,qBAAa,eAAe;IAC1B,QAAQ,CAAC,IAAI,mBAAmB;CACjC;AAED,+BAA+B;AAC/B,qBAAa,aAAa;IACxB,QAAQ,CAAC,IAAI,iBAAiB;CAC/B;AAED,+BAA+B;AAC/B,qBAAa,aAAa;IACxB,QAAQ,CAAC,IAAI,iBAAiB;CAC/B;AAED,6CAA6C;AAC7C,qBAAa,oBAAoB;IAC/B,QAAQ,CAAC,IAAI,yBAAyB;CACvC;AAED,8CAA8C;AAC9C,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,IAAI,0BAA0B;CACxC;AAED,6CAA6C;AAC7C,qBAAa,iBAAiB;aAEA,KAAK,EAAE,MAAM;IADzC,QAAQ,CAAC,IAAI,sBAAsB;gBACP,KAAK,EAAE,MAAM;CAC1C"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SetWindowTitleMsg = exports.DisableReportFocusMsg = exports.EnableReportFocusMsg = exports.HideCursorMsg = exports.ShowCursorMsg = exports.DisableMouseMsg = exports.EnableMouseAllMotionMsg = exports.EnableMouseCellMotionMsg = exports.ExitAltScreenMsg = exports.EnterAltScreenMsg = exports.ClearScreenMsg = exports.BlurMsg = exports.FocusMsg = exports.WindowSizeMsg = exports.ResumeMsg = exports.SuspendMsg = exports.InterruptMsg = exports.QuitMsg = void 0;
4
+ /** @public Request graceful program termination. */
5
+ class QuitMsg {
6
+ _tag = "quit";
7
+ }
8
+ exports.QuitMsg = QuitMsg;
9
+ /** @public Interrupt the program (SIGINT). */
10
+ class InterruptMsg {
11
+ _tag = "interrupt";
12
+ }
13
+ exports.InterruptMsg = InterruptMsg;
14
+ /** @public Suspend the program (Ctrl+Z). */
15
+ class SuspendMsg {
16
+ _tag = "suspend";
17
+ }
18
+ exports.SuspendMsg = SuspendMsg;
19
+ /** @public Resume the program after suspension. */
20
+ class ResumeMsg {
21
+ _tag = "resume";
22
+ }
23
+ exports.ResumeMsg = ResumeMsg;
24
+ /** @public Report the current terminal width and height. */
25
+ class WindowSizeMsg {
26
+ width;
27
+ height;
28
+ _tag = "window-size";
29
+ constructor(width, height) {
30
+ this.width = width;
31
+ this.height = height;
32
+ }
33
+ }
34
+ exports.WindowSizeMsg = WindowSizeMsg;
35
+ /** @public Terminal focus gained. */
36
+ class FocusMsg {
37
+ _tag = "focus";
38
+ }
39
+ exports.FocusMsg = FocusMsg;
40
+ /** @public Terminal focus lost. */
41
+ class BlurMsg {
42
+ _tag = "blur";
43
+ }
44
+ exports.BlurMsg = BlurMsg;
45
+ /** @public Clear the terminal screen. */
46
+ class ClearScreenMsg {
47
+ _tag = "clear-screen";
48
+ }
49
+ exports.ClearScreenMsg = ClearScreenMsg;
50
+ /** @public Enter the alternate screen buffer. */
51
+ class EnterAltScreenMsg {
52
+ _tag = "enter-alt-screen";
53
+ }
54
+ exports.EnterAltScreenMsg = EnterAltScreenMsg;
55
+ /** @public Exit the alternate screen buffer. */
56
+ class ExitAltScreenMsg {
57
+ _tag = "exit-alt-screen";
58
+ }
59
+ exports.ExitAltScreenMsg = ExitAltScreenMsg;
60
+ /** @public Enable cell-based mouse reporting. */
61
+ class EnableMouseCellMotionMsg {
62
+ _tag = "enable-mouse-cell-motion";
63
+ }
64
+ exports.EnableMouseCellMotionMsg = EnableMouseCellMotionMsg;
65
+ /** @public Enable all-motion mouse reporting. */
66
+ class EnableMouseAllMotionMsg {
67
+ _tag = "enable-mouse-all-motion";
68
+ }
69
+ exports.EnableMouseAllMotionMsg = EnableMouseAllMotionMsg;
70
+ /** @public Disable mouse reporting. */
71
+ class DisableMouseMsg {
72
+ _tag = "disable-mouse";
73
+ }
74
+ exports.DisableMouseMsg = DisableMouseMsg;
75
+ /** @public Show the cursor. */
76
+ class ShowCursorMsg {
77
+ _tag = "show-cursor";
78
+ }
79
+ exports.ShowCursorMsg = ShowCursorMsg;
80
+ /** @public Hide the cursor. */
81
+ class HideCursorMsg {
82
+ _tag = "hide-cursor";
83
+ }
84
+ exports.HideCursorMsg = HideCursorMsg;
85
+ /** @public Enable focus in/out reporting. */
86
+ class EnableReportFocusMsg {
87
+ _tag = "enable-report-focus";
88
+ }
89
+ exports.EnableReportFocusMsg = EnableReportFocusMsg;
90
+ /** @public Disable focus in/out reporting. */
91
+ class DisableReportFocusMsg {
92
+ _tag = "disable-report-focus";
93
+ }
94
+ exports.DisableReportFocusMsg = DisableReportFocusMsg;
95
+ /** @public Set the terminal window title. */
96
+ class SetWindowTitleMsg {
97
+ title;
98
+ _tag = "set-window-title";
99
+ constructor(title) {
100
+ this.title = title;
101
+ }
102
+ }
103
+ exports.SetWindowTitleMsg = SetWindowTitleMsg;
104
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACpD,MAAa,OAAO;IACT,IAAI,GAAG,MAAM,CAAC;CACxB;AAFD,0BAEC;AAED,8CAA8C;AAC9C,MAAa,YAAY;IACd,IAAI,GAAG,WAAW,CAAC;CAC7B;AAFD,oCAEC;AAED,4CAA4C;AAC5C,MAAa,UAAU;IACZ,IAAI,GAAG,SAAS,CAAC;CAC3B;AAFD,gCAEC;AAED,mDAAmD;AACnD,MAAa,SAAS;IACX,IAAI,GAAG,QAAQ,CAAC;CAC1B;AAFD,8BAEC;AAED,4DAA4D;AAC5D,MAAa,aAAa;IAGN;IACA;IAHT,IAAI,GAAG,aAAa,CAAC;IAC9B,YACkB,KAAa,EACb,MAAc;QADd,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAQ;IAC7B,CAAC;CACL;AAND,sCAMC;AAED,qCAAqC;AACrC,MAAa,QAAQ;IACV,IAAI,GAAG,OAAO,CAAC;CACzB;AAFD,4BAEC;AAED,mCAAmC;AACnC,MAAa,OAAO;IACT,IAAI,GAAG,MAAM,CAAC;CACxB;AAFD,0BAEC;AAED,yCAAyC;AACzC,MAAa,cAAc;IAChB,IAAI,GAAG,cAAc,CAAC;CAChC;AAFD,wCAEC;AAED,iDAAiD;AACjD,MAAa,iBAAiB;IACnB,IAAI,GAAG,kBAAkB,CAAC;CACpC;AAFD,8CAEC;AAED,gDAAgD;AAChD,MAAa,gBAAgB;IAClB,IAAI,GAAG,iBAAiB,CAAC;CACnC;AAFD,4CAEC;AAED,iDAAiD;AACjD,MAAa,wBAAwB;IAC1B,IAAI,GAAG,0BAA0B,CAAC;CAC5C;AAFD,4DAEC;AAED,iDAAiD;AACjD,MAAa,uBAAuB;IACzB,IAAI,GAAG,yBAAyB,CAAC;CAC3C;AAFD,0DAEC;AAED,uCAAuC;AACvC,MAAa,eAAe;IACjB,IAAI,GAAG,eAAe,CAAC;CACjC;AAFD,0CAEC;AAED,+BAA+B;AAC/B,MAAa,aAAa;IACf,IAAI,GAAG,aAAa,CAAC;CAC/B;AAFD,sCAEC;AAED,+BAA+B;AAC/B,MAAa,aAAa;IACf,IAAI,GAAG,aAAa,CAAC;CAC/B;AAFD,sCAEC;AAED,6CAA6C;AAC7C,MAAa,oBAAoB;IACtB,IAAI,GAAG,qBAAqB,CAAC;CACvC;AAFD,oDAEC;AAED,8CAA8C;AAC9C,MAAa,qBAAqB;IACvB,IAAI,GAAG,sBAAsB,CAAC;CACxC;AAFD,sDAEC;AAED,6CAA6C;AAC7C,MAAa,iBAAiB;IAEA;IADnB,IAAI,GAAG,kBAAkB,CAAC;IACnC,YAA4B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;CAC9C;AAHD,8CAGC"}
@@ -0,0 +1,46 @@
1
+ import { Buffer } from "node:buffer";
2
+ /** @public Mouse action type. */
3
+ export declare enum MouseAction {
4
+ Press = "press",
5
+ Release = "release",
6
+ Motion = "motion"
7
+ }
8
+ /** @public Mouse button identifiers, including wheels. */
9
+ export declare enum MouseButton {
10
+ None = "none",
11
+ Left = "left",
12
+ Middle = "middle",
13
+ Right = "right",
14
+ WheelUp = "wheel-up",
15
+ WheelDown = "wheel-down",
16
+ WheelLeft = "wheel-left",
17
+ WheelRight = "wheel-right",
18
+ Backward = "backward",
19
+ Forward = "forward",
20
+ Button10 = "button-10",
21
+ Button11 = "button-11"
22
+ }
23
+ /** @public Parsed mouse event payload. */
24
+ export interface MouseEvent {
25
+ x: number;
26
+ y: number;
27
+ shift: boolean;
28
+ alt: boolean;
29
+ ctrl: boolean;
30
+ action: MouseAction;
31
+ button: MouseButton;
32
+ }
33
+ /** @public Message representing a parsed mouse event. */
34
+ export declare class MouseMsg {
35
+ readonly event: MouseEvent;
36
+ readonly _tag = "mouse";
37
+ constructor(event: MouseEvent);
38
+ toString(): string;
39
+ }
40
+ export declare function parseMouse(buffer: Buffer, allowMoreData: boolean): {
41
+ msg: MouseMsg;
42
+ length: number;
43
+ } | {
44
+ needMore: true;
45
+ } | undefined;
46
+ //# sourceMappingURL=mouse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mouse.d.ts","sourceRoot":"","sources":["../src/mouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,iCAAiC;AACjC,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,0DAA0D;AAC1D,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,aAAa;IACpB,SAAS,eAAe;IACxB,SAAS,eAAe;IACxB,UAAU,gBAAgB;IAC1B,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,cAAc;IACtB,QAAQ,cAAc;CACvB;AAED,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,yDAAyD;AACzD,qBAAa,QAAQ;aAES,KAAK,EAAE,UAAU;IAD7C,QAAQ,CAAC,IAAI,WAAW;gBACI,KAAK,EAAE,UAAU;IAE7C,QAAQ,IAAI,MAAM;CASnB;AAMD,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,OAAO,GACrB;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG,SAAS,CAyBpE"}