@promptctl/rich-js 0.3.0 → 0.4.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/README.md +19 -15
- package/dist/core/console.d.ts +29 -11
- package/dist/core/console.d.ts.map +1 -1
- package/dist/core/console.js +86 -30
- package/dist/core/console.js.map +1 -1
- package/dist/core/render.d.ts.map +1 -1
- package/dist/core/render.js +8 -1
- package/dist/core/render.js.map +1 -1
- package/dist/core/sanitize.d.ts +16 -0
- package/dist/core/sanitize.d.ts.map +1 -0
- package/dist/core/sanitize.js +19 -0
- package/dist/core/sanitize.js.map +1 -0
- package/dist/core/strip.d.ts +16 -74
- package/dist/core/strip.d.ts.map +1 -1
- package/dist/core/strip.js +39 -75
- package/dist/core/strip.js.map +1 -1
- package/dist/core/style.d.ts +1 -0
- package/dist/core/style.d.ts.map +1 -1
- package/dist/core/style.js +38 -5
- package/dist/core/style.js.map +1 -1
- package/dist/core/text.d.ts +54 -1
- package/dist/core/text.d.ts.map +1 -1
- package/dist/core/text.js +194 -12
- package/dist/core/text.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/node/prompt.d.ts +22 -0
- package/dist/node/prompt.d.ts.map +1 -0
- package/dist/node/prompt.js +31 -0
- package/dist/node/prompt.js.map +1 -0
- package/dist/node/save.d.ts +22 -0
- package/dist/node/save.d.ts.map +1 -0
- package/dist/node/save.js +22 -0
- package/dist/node/save.js.map +1 -0
- package/dist/renderables/prompt.d.ts +31 -6
- package/dist/renderables/prompt.d.ts.map +1 -1
- package/dist/renderables/prompt.js +39 -22
- package/dist/renderables/prompt.js.map +1 -1
- package/dist/widgets/event-router.d.ts +16 -14
- package/dist/widgets/event-router.d.ts.map +1 -1
- package/dist/widgets/event-router.js +71 -38
- package/dist/widgets/event-router.js.map +1 -1
- package/dist/widgets/host-stream.d.ts +31 -0
- package/dist/widgets/host-stream.d.ts.map +1 -0
- package/dist/widgets/host-stream.js +36 -0
- package/dist/widgets/host-stream.js.map +1 -0
- package/dist/widgets/index.d.ts +3 -0
- package/dist/widgets/index.d.ts.map +1 -1
- package/dist/widgets/index.js +2 -0
- package/dist/widgets/index.js.map +1 -1
- package/dist/widgets/screen.d.ts +12 -5
- package/dist/widgets/screen.d.ts.map +1 -1
- package/dist/widgets/screen.js +9 -11
- package/dist/widgets/screen.js.map +1 -1
- package/dist/widgets/terminal-host.d.ts +188 -0
- package/dist/widgets/terminal-host.d.ts.map +1 -0
- package/dist/widgets/terminal-host.js +258 -0
- package/dist/widgets/terminal-host.js.map +1 -0
- package/package.json +20 -6
|
@@ -1,25 +1,50 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Prompt — interactive prompts for user input.
|
|
3
|
+
*
|
|
4
|
+
* [LAW:locality-or-seam] The renderable owns prompt logic (display, choice
|
|
5
|
+
* validation, default fallback, retry loop) — but not where the answer comes
|
|
6
|
+
* from. The input source is a required `PromptInput` capability passed at the
|
|
7
|
+
* call site. Node consumers pass `nodeAsk` from
|
|
8
|
+
* `@promptctl/rich-js/node/prompt`; tests pass a fake; the browser bundle
|
|
9
|
+
* gets the classes without dragging `node:readline` into the main barrel.
|
|
10
|
+
*
|
|
11
|
+
* [LAW:types-are-the-program] The `input: PromptInput` parameter is
|
|
12
|
+
* positional and required on every `*.ask()` static — not an optional in
|
|
13
|
+
* `PromptOptions`. The previous shape allowed `Prompt.ask("name?")` at the
|
|
14
|
+
* type level and threw at runtime; the new shape makes the missing-capability
|
|
15
|
+
* state unrepresentable to TS callers.
|
|
16
|
+
*
|
|
17
|
+
* A trust-boundary `typeof === "function"` check remains because the public
|
|
18
|
+
* API surface is reachable from JS (no compile-time types) and from
|
|
19
|
+
* `any`-typed TS callers. The check makes the failure *diagnostic* (points
|
|
20
|
+
* the caller at the node helper), not gatekeep-against-bugs — TS users
|
|
21
|
+
* never see it because the type already forbids the bad state.
|
|
3
22
|
*/
|
|
4
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Input capability: receives the rendered prompt string (always with a
|
|
25
|
+
* trailing space appended by the renderable, so implementations should not
|
|
26
|
+
* add their own), resolves with the raw user response. Implementations
|
|
27
|
+
* decide where the input comes from (stdin readline, network, in-memory
|
|
28
|
+
* queue, etc.).
|
|
29
|
+
*/
|
|
30
|
+
export type PromptInput = (prompt: string) => Promise<string>;
|
|
5
31
|
export interface PromptOptions<T> {
|
|
6
32
|
default?: T;
|
|
7
33
|
choices?: string[];
|
|
8
34
|
caseSensitive?: boolean;
|
|
9
|
-
console?: Console;
|
|
10
35
|
showChoices?: boolean;
|
|
11
36
|
showDefault?: boolean;
|
|
12
37
|
}
|
|
13
38
|
export declare class Prompt {
|
|
14
|
-
static ask(promptText: string, options?: PromptOptions<string>): Promise<string>;
|
|
39
|
+
static ask(promptText: string, input: PromptInput, options?: PromptOptions<string>): Promise<string>;
|
|
15
40
|
}
|
|
16
41
|
export declare class IntPrompt {
|
|
17
|
-
static ask(promptText: string, options?: PromptOptions<number>): Promise<number>;
|
|
42
|
+
static ask(promptText: string, input: PromptInput, options?: PromptOptions<number>): Promise<number>;
|
|
18
43
|
}
|
|
19
44
|
export declare class FloatPrompt {
|
|
20
|
-
static ask(promptText: string, options?: PromptOptions<number>): Promise<number>;
|
|
45
|
+
static ask(promptText: string, input: PromptInput, options?: PromptOptions<number>): Promise<number>;
|
|
21
46
|
}
|
|
22
47
|
export declare class Confirm {
|
|
23
|
-
static ask(promptText: string, options?: PromptOptions<boolean>): Promise<boolean>;
|
|
48
|
+
static ask(promptText: string, input: PromptInput, options?: PromptOptions<boolean>): Promise<boolean>;
|
|
24
49
|
}
|
|
25
50
|
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/renderables/prompt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/renderables/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAuBD,qBAAa,MAAM;WACJ,GAAG,CACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;CAiCnB;AAED,qBAAa,SAAS;WACP,GAAG,CACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;CAoBnB;AAED,qBAAa,WAAW;WACT,GAAG,CACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;CAoBnB;AAED,qBAAa,OAAO;WACL,GAAG,CACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,OAAO,CAAC;CAcpB"}
|
|
@@ -1,25 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Prompt — interactive prompts for user input.
|
|
3
|
+
*
|
|
4
|
+
* [LAW:locality-or-seam] The renderable owns prompt logic (display, choice
|
|
5
|
+
* validation, default fallback, retry loop) — but not where the answer comes
|
|
6
|
+
* from. The input source is a required `PromptInput` capability passed at the
|
|
7
|
+
* call site. Node consumers pass `nodeAsk` from
|
|
8
|
+
* `@promptctl/rich-js/node/prompt`; tests pass a fake; the browser bundle
|
|
9
|
+
* gets the classes without dragging `node:readline` into the main barrel.
|
|
10
|
+
*
|
|
11
|
+
* [LAW:types-are-the-program] The `input: PromptInput` parameter is
|
|
12
|
+
* positional and required on every `*.ask()` static — not an optional in
|
|
13
|
+
* `PromptOptions`. The previous shape allowed `Prompt.ask("name?")` at the
|
|
14
|
+
* type level and threw at runtime; the new shape makes the missing-capability
|
|
15
|
+
* state unrepresentable to TS callers.
|
|
16
|
+
*
|
|
17
|
+
* A trust-boundary `typeof === "function"` check remains because the public
|
|
18
|
+
* API surface is reachable from JS (no compile-time types) and from
|
|
19
|
+
* `any`-typed TS callers. The check makes the failure *diagnostic* (points
|
|
20
|
+
* the caller at the node helper), not gatekeep-against-bugs — TS users
|
|
21
|
+
* never see it because the type already forbids the bad state.
|
|
3
22
|
*/
|
|
4
|
-
import * as readline from "node:readline";
|
|
5
23
|
import { render as renderMarkup } from "../core/markup.js";
|
|
6
24
|
// --- Base ---
|
|
7
|
-
function ask(promptText,
|
|
25
|
+
function ask(promptText, input) {
|
|
26
|
+
// [LAW:single-enforcer] Trust-boundary validation for non-TS callers
|
|
27
|
+
// (JS, or TS with `any` laundering). TS callers can't reach this branch
|
|
28
|
+
// because `PromptInput` is required at every static `.ask`. The message
|
|
29
|
+
// points at the node helper rather than letting the call site die with
|
|
30
|
+
// a generic `TypeError: input is not a function`.
|
|
31
|
+
if (typeof input !== "function") {
|
|
32
|
+
throw new TypeError("Prompt: `input` must be a `PromptInput` function. Pass `nodeAsk` from " +
|
|
33
|
+
"`@promptctl/rich-js/node/prompt` for Node, or supply a custom " +
|
|
34
|
+
"`PromptInput` for tests/browsers.");
|
|
35
|
+
}
|
|
8
36
|
const rendered = renderMarkup(promptText);
|
|
9
|
-
return
|
|
10
|
-
const rl = readline.createInterface({
|
|
11
|
-
input: process.stdin,
|
|
12
|
-
output: process.stdout,
|
|
13
|
-
});
|
|
14
|
-
rl.question(rendered.plain + " ", (answer) => {
|
|
15
|
-
rl.close();
|
|
16
|
-
resolve(answer);
|
|
17
|
-
});
|
|
18
|
-
});
|
|
37
|
+
return input(rendered.plain + " ");
|
|
19
38
|
}
|
|
20
39
|
// --- Prompt ---
|
|
21
40
|
export class Prompt {
|
|
22
|
-
static async ask(promptText, options) {
|
|
41
|
+
static async ask(promptText, input, options) {
|
|
23
42
|
const showDefault = options?.showDefault !== false;
|
|
24
43
|
const showChoices = options?.showChoices !== false;
|
|
25
44
|
let display = promptText;
|
|
@@ -31,7 +50,7 @@ export class Prompt {
|
|
|
31
50
|
}
|
|
32
51
|
display += ":";
|
|
33
52
|
while (true) {
|
|
34
|
-
const answer = await ask(display,
|
|
53
|
+
const answer = await ask(display, input);
|
|
35
54
|
const value = answer.trim();
|
|
36
55
|
if (value === "" && options?.default !== undefined) {
|
|
37
56
|
return options.default;
|
|
@@ -41,7 +60,6 @@ export class Prompt {
|
|
|
41
60
|
const match = options.choices.find((c) => caseSensitive ? c === value : c.toLowerCase() === value.toLowerCase());
|
|
42
61
|
if (match)
|
|
43
62
|
return match;
|
|
44
|
-
// Invalid choice — retry
|
|
45
63
|
continue;
|
|
46
64
|
}
|
|
47
65
|
return value;
|
|
@@ -49,7 +67,7 @@ export class Prompt {
|
|
|
49
67
|
}
|
|
50
68
|
}
|
|
51
69
|
export class IntPrompt {
|
|
52
|
-
static async ask(promptText, options) {
|
|
70
|
+
static async ask(promptText, input, options) {
|
|
53
71
|
const showDefault = options?.showDefault !== false;
|
|
54
72
|
let display = promptText;
|
|
55
73
|
if (showDefault && options?.default !== undefined) {
|
|
@@ -57,7 +75,7 @@ export class IntPrompt {
|
|
|
57
75
|
}
|
|
58
76
|
display += ":";
|
|
59
77
|
while (true) {
|
|
60
|
-
const answer = await ask(display,
|
|
78
|
+
const answer = await ask(display, input);
|
|
61
79
|
const value = answer.trim();
|
|
62
80
|
if (value === "" && options?.default !== undefined) {
|
|
63
81
|
return options.default;
|
|
@@ -65,12 +83,11 @@ export class IntPrompt {
|
|
|
65
83
|
const num = parseInt(value, 10);
|
|
66
84
|
if (!isNaN(num) && String(num) === value)
|
|
67
85
|
return num;
|
|
68
|
-
// Invalid — retry
|
|
69
86
|
}
|
|
70
87
|
}
|
|
71
88
|
}
|
|
72
89
|
export class FloatPrompt {
|
|
73
|
-
static async ask(promptText, options) {
|
|
90
|
+
static async ask(promptText, input, options) {
|
|
74
91
|
const showDefault = options?.showDefault !== false;
|
|
75
92
|
let display = promptText;
|
|
76
93
|
if (showDefault && options?.default !== undefined) {
|
|
@@ -78,7 +95,7 @@ export class FloatPrompt {
|
|
|
78
95
|
}
|
|
79
96
|
display += ":";
|
|
80
97
|
while (true) {
|
|
81
|
-
const answer = await ask(display,
|
|
98
|
+
const answer = await ask(display, input);
|
|
82
99
|
const value = answer.trim();
|
|
83
100
|
if (value === "" && options?.default !== undefined) {
|
|
84
101
|
return options.default;
|
|
@@ -90,12 +107,12 @@ export class FloatPrompt {
|
|
|
90
107
|
}
|
|
91
108
|
}
|
|
92
109
|
export class Confirm {
|
|
93
|
-
static async ask(promptText, options) {
|
|
110
|
+
static async ask(promptText, input, options) {
|
|
94
111
|
const defaultVal = options?.default;
|
|
95
112
|
const yesNo = defaultVal === true ? "Y/n" : defaultVal === false ? "y/N" : "y/n";
|
|
96
113
|
const display = `${promptText} [${yesNo}]:`;
|
|
97
114
|
while (true) {
|
|
98
|
-
const answer = await ask(display,
|
|
115
|
+
const answer = await ask(display, input);
|
|
99
116
|
const value = answer.trim().toLowerCase();
|
|
100
117
|
if (value === "" && defaultVal !== undefined)
|
|
101
118
|
return defaultVal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/renderables/prompt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/renderables/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Lone-ESC handling: a bare `\x1b` is ambiguous (escape key vs. start of a
|
|
15
15
|
* CSI sequence). When the buffer is drained but ends with a lone ESC, the
|
|
16
|
-
* router defers emission via
|
|
16
|
+
* router defers emission via setTimeout(0). The next chunk cancels the timer
|
|
17
17
|
* if it extends the sequence. Tests can call `flush()` to drain synchronously.
|
|
18
18
|
*/
|
|
19
19
|
import { KeyEvent } from "./types.js";
|
|
20
20
|
import type { Screen, FocusManager, InteractiveWidget, WidgetMouseEvent, KeyHandlerOptions, Unsubscribe } from "./types.js";
|
|
21
|
+
import type { TerminalHost } from "./terminal-host.js";
|
|
21
22
|
type KeyHandler = (event: KeyEvent) => void;
|
|
22
23
|
type WidgetSource = {
|
|
23
24
|
focusManager: FocusManager;
|
|
@@ -25,31 +26,32 @@ type WidgetSource = {
|
|
|
25
26
|
};
|
|
26
27
|
export interface EventRouterOptions {
|
|
27
28
|
screen: Screen | WidgetSource;
|
|
28
|
-
input?: NodeJS.ReadableStream & {
|
|
29
|
-
setRawMode?: (raw: boolean) => unknown;
|
|
30
|
-
isTTY?: boolean;
|
|
31
|
-
};
|
|
32
|
-
output?: NodeJS.WritableStream;
|
|
33
29
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
30
|
+
* The I/O capability the router reads input from and writes
|
|
31
|
+
* mouse-tracking sequences to. Construct a `NodeTerminalHost` for
|
|
32
|
+
* production node demos; tests pass a host that wraps mock streams.
|
|
33
|
+
*/
|
|
34
|
+
host: TerminalHost;
|
|
35
|
+
/**
|
|
36
|
+
* When true (default when the host reports `isTTY`), enable mouse
|
|
37
|
+
* tracking on `start()` and disable on `stop()`. Disable in tests /
|
|
38
|
+
* non-TTY environments.
|
|
36
39
|
*/
|
|
37
40
|
manageMouse?: boolean;
|
|
38
41
|
/**
|
|
39
|
-
* When true (default when
|
|
40
|
-
* start() and restore on stop()
|
|
42
|
+
* When true (default when the host reports `isTTY`), switch the host
|
|
43
|
+
* into raw mode on `start()` and restore on `stop()`.
|
|
41
44
|
*/
|
|
42
45
|
manageRawMode?: boolean;
|
|
43
46
|
}
|
|
44
47
|
export declare class EventRouter {
|
|
45
48
|
private readonly source;
|
|
46
|
-
private readonly
|
|
47
|
-
private readonly output;
|
|
49
|
+
private readonly host;
|
|
48
50
|
private readonly manageMouse;
|
|
49
51
|
private readonly manageRawMode;
|
|
50
52
|
private buffer;
|
|
51
53
|
private running;
|
|
52
|
-
private
|
|
54
|
+
private dataUnsubscribe;
|
|
53
55
|
private escTimer;
|
|
54
56
|
private capturedWidget;
|
|
55
57
|
private readonly keyChain;
|
|
@@ -60,7 +62,7 @@ export declare class EventRouter {
|
|
|
60
62
|
onKey(handler: KeyHandler, options?: KeyHandlerOptions): Unsubscribe;
|
|
61
63
|
onMouse(handler: (event: WidgetMouseEvent) => void): Unsubscribe;
|
|
62
64
|
/** Feed a chunk of bytes (or a string of bytes) into the parser. */
|
|
63
|
-
feed(chunk:
|
|
65
|
+
feed(chunk: Uint8Array | string): void;
|
|
64
66
|
/** Force any pending lone ESC out of the buffer. */
|
|
65
67
|
flush(): void;
|
|
66
68
|
private drain;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-router.d.ts","sourceRoot":"","sources":["../../src/widgets/event-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAEjB,WAAW,EACZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"event-router.d.ts","sourceRoot":"","sources":["../../src/widgets/event-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAEjB,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAM5C,KAAK,YAAY,GAAG;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,MAAM,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC;IAC9B;;;;OAIG;IACH,IAAI,EAAE,YAAY,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAuGD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAOxC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAA0B;IAMjD,OAAO,CAAC,QAAQ,CAA4C;IAM5D,OAAO,CAAC,cAAc,CAAkC;IAKxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;gBAElE,OAAO,EAAE,kBAAkB;IA0BvC,KAAK,IAAI,IAAI;IAcb,IAAI,IAAI,IAAI;IA+BZ,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,WAAW;IAYpE,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,WAAW;IAOhE,oEAAoE;IACpE,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAoBtC,oDAAoD;IACpD,KAAK,IAAI,IAAI;IAab,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,UAAU;IA6ClB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,aAAa;IA2ErB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,UAAU;IA2DlB,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,aAAa;CA+BtB"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Lone-ESC handling: a bare `\x1b` is ambiguous (escape key vs. start of a
|
|
15
15
|
* CSI sequence). When the buffer is drained but ends with a lone ESC, the
|
|
16
|
-
* router defers emission via
|
|
16
|
+
* router defers emission via setTimeout(0). The next chunk cancels the timer
|
|
17
17
|
* if it extends the sequence. Tests can call `flush()` to drain synchronously.
|
|
18
18
|
*/
|
|
19
19
|
import { KeyEvent } from "./types.js";
|
|
@@ -81,15 +81,47 @@ const M_UPPER = 0x4d; // M
|
|
|
81
81
|
const M_LOWER = 0x6d; // m
|
|
82
82
|
const MOUSE_TRACK_ON = "\x1b[?1006h\x1b[?1000h\x1b[?1003h";
|
|
83
83
|
const MOUSE_TRACK_OFF = "\x1b[?1003l\x1b[?1000l\x1b[?1006l";
|
|
84
|
+
// [LAW:single-enforcer] Shared encode/decode singletons. The parser
|
|
85
|
+
// receives `Uint8Array | string` from the host and walks bytes through
|
|
86
|
+
// its state machine; conversion happens at the two boundaries (string
|
|
87
|
+
// input → bytes via TextEncoder; printable-byte run → JS string via
|
|
88
|
+
// TextDecoder) and only there. Module-level instances keep the seam
|
|
89
|
+
// allocation-free and runtime-agnostic — both APIs are universal across
|
|
90
|
+
// node and browser.
|
|
91
|
+
const UTF8_ENCODER = new TextEncoder();
|
|
92
|
+
const UTF8_DECODER = new TextDecoder("utf-8");
|
|
93
|
+
const ASCII_DECODER = new TextDecoder("ascii");
|
|
94
|
+
const EMPTY_BYTES = new Uint8Array(0);
|
|
95
|
+
// Concatenate two byte arrays into a fresh Uint8Array. Replaces
|
|
96
|
+
// `Buffer.concat([...])` so the parser holds no node-specific globals.
|
|
97
|
+
function concatBytes(a, b) {
|
|
98
|
+
if (a.length === 0)
|
|
99
|
+
return b;
|
|
100
|
+
if (b.length === 0)
|
|
101
|
+
return a;
|
|
102
|
+
const merged = new Uint8Array(a.length + b.length);
|
|
103
|
+
merged.set(a, 0);
|
|
104
|
+
merged.set(b, a.length);
|
|
105
|
+
return merged;
|
|
106
|
+
}
|
|
84
107
|
export class EventRouter {
|
|
85
108
|
source;
|
|
86
|
-
|
|
87
|
-
output;
|
|
109
|
+
host;
|
|
88
110
|
manageMouse;
|
|
89
111
|
manageRawMode;
|
|
90
|
-
buffer
|
|
112
|
+
// [LAW:types-are-the-program] The parse buffer is `Uint8Array`, not
|
|
113
|
+
// `Buffer` — node's Buffer extends Uint8Array, so Buffer chunks from
|
|
114
|
+
// process.stdin satisfy this type and the parser still works on node,
|
|
115
|
+
// while a browser host can emit native Uint8Array without the runtime
|
|
116
|
+
// depending on a Buffer global polyfill.
|
|
117
|
+
buffer = EMPTY_BYTES;
|
|
91
118
|
running = false;
|
|
92
|
-
|
|
119
|
+
dataUnsubscribe;
|
|
120
|
+
// [LAW:types-are-the-program] `setTimeout`/`clearTimeout` are universal
|
|
121
|
+
// across node and browser; `setImmediate` is node-only. Same one-macrotask
|
|
122
|
+
// semantics for our purpose (defer until current sync work + queued
|
|
123
|
+
// microtasks drain), without forcing a `setImmediate` polyfill on the
|
|
124
|
+
// browser host.
|
|
93
125
|
escTimer;
|
|
94
126
|
// [LAW:single-enforcer] Drag capture lives only here. A mouse_down's hit
|
|
95
127
|
// widget is recorded; mouse_move/mouse_up between then and the next
|
|
@@ -107,12 +139,13 @@ export class EventRouter {
|
|
|
107
139
|
this.source = isWidgetSource(screen)
|
|
108
140
|
? screen
|
|
109
141
|
: { focusManager: screen.focusManager, getWidgets: () => screen.widgets };
|
|
110
|
-
this.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
this.
|
|
142
|
+
this.host = options.host;
|
|
143
|
+
// [LAW:one-source-of-truth] The host owns the "is this a real
|
|
144
|
+
// terminal?" question. Both raw-mode and mouse-tracking defaults
|
|
145
|
+
// derive from the same isTTY — no separate input/output skew.
|
|
146
|
+
const isTTY = this.host.isTTY;
|
|
147
|
+
this.manageRawMode = options.manageRawMode ?? isTTY;
|
|
148
|
+
this.manageMouse = options.manageMouse ?? isTTY;
|
|
116
149
|
// [LAW:single-enforcer] FocusManager owns Tab/Shift+Tab traversal —
|
|
117
150
|
// register it as a normal-priority handler so it participates in the
|
|
118
151
|
// chain. This MUST be the first registration so it lands ahead of any
|
|
@@ -126,29 +159,27 @@ export class EventRouter {
|
|
|
126
159
|
if (this.running)
|
|
127
160
|
return;
|
|
128
161
|
this.running = true;
|
|
129
|
-
if (
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
162
|
+
// [LAW:dataflow-not-control-flow] No `if (host.setRawMode)` capability
|
|
163
|
+
// check — the host absorbs that. Same goes for resume(): subscribing
|
|
164
|
+
// via host.onData triggers the underlying stream's flow on node, no-ops
|
|
165
|
+
// on transports that don't have a paused mode.
|
|
166
|
+
if (this.manageRawMode)
|
|
167
|
+
this.host.setRawMode(true);
|
|
135
168
|
if (this.manageMouse)
|
|
136
|
-
this.
|
|
137
|
-
this.
|
|
138
|
-
this.input?.on("data", this.dataListener);
|
|
169
|
+
this.host.write(MOUSE_TRACK_ON);
|
|
170
|
+
this.dataUnsubscribe = this.host.onData((chunk) => this.feed(chunk));
|
|
139
171
|
}
|
|
140
172
|
stop() {
|
|
141
173
|
if (this.running) {
|
|
142
174
|
this.running = false;
|
|
143
|
-
if (this.
|
|
144
|
-
this.
|
|
145
|
-
this.
|
|
175
|
+
if (this.dataUnsubscribe) {
|
|
176
|
+
this.dataUnsubscribe();
|
|
177
|
+
this.dataUnsubscribe = undefined;
|
|
146
178
|
}
|
|
147
179
|
if (this.manageMouse)
|
|
148
|
-
this.
|
|
149
|
-
if (this.manageRawMode
|
|
150
|
-
this.
|
|
151
|
-
}
|
|
180
|
+
this.host.write(MOUSE_TRACK_OFF);
|
|
181
|
+
if (this.manageRawMode)
|
|
182
|
+
this.host.setRawMode(false);
|
|
152
183
|
}
|
|
153
184
|
// [LAW:one-source-of-truth] Per-session state belongs to one session.
|
|
154
185
|
// stop() leaves the router in the same shape a fresh construction
|
|
@@ -159,10 +190,10 @@ export class EventRouter {
|
|
|
159
190
|
// the next session. Clearing already-empty state is a no-op so this
|
|
160
191
|
// stays safe on repeated stop().
|
|
161
192
|
if (this.escTimer) {
|
|
162
|
-
|
|
193
|
+
clearTimeout(this.escTimer);
|
|
163
194
|
this.escTimer = undefined;
|
|
164
195
|
}
|
|
165
|
-
this.buffer =
|
|
196
|
+
this.buffer = EMPTY_BYTES;
|
|
166
197
|
this.capturedWidget = null;
|
|
167
198
|
}
|
|
168
199
|
// --- External hooks ---
|
|
@@ -185,26 +216,28 @@ export class EventRouter {
|
|
|
185
216
|
// --- Test / advanced API ---
|
|
186
217
|
/** Feed a chunk of bytes (or a string of bytes) into the parser. */
|
|
187
218
|
feed(chunk) {
|
|
188
|
-
const next = typeof chunk === "string" ?
|
|
189
|
-
this.buffer =
|
|
219
|
+
const next = typeof chunk === "string" ? UTF8_ENCODER.encode(chunk) : chunk;
|
|
220
|
+
this.buffer = concatBytes(this.buffer, next);
|
|
190
221
|
if (this.escTimer) {
|
|
191
|
-
|
|
222
|
+
clearTimeout(this.escTimer);
|
|
192
223
|
this.escTimer = undefined;
|
|
193
224
|
}
|
|
194
225
|
this.drain();
|
|
195
226
|
// [LAW:dataflow-not-control-flow] If a lone ESC remains, defer emission
|
|
196
|
-
// until the next macrotask so a follow-up chunk can extend it.
|
|
227
|
+
// until the next macrotask so a follow-up chunk can extend it. The
|
|
228
|
+
// explicit `0` is structural deferral, not a throttle — it just lets
|
|
229
|
+
// the current sync work + queued microtasks drain before flushing.
|
|
197
230
|
if (this.buffer.length === 1 && this.buffer[0] === ESC) {
|
|
198
|
-
this.escTimer =
|
|
231
|
+
this.escTimer = setTimeout(() => {
|
|
199
232
|
this.escTimer = undefined;
|
|
200
233
|
this.flush();
|
|
201
|
-
});
|
|
234
|
+
}, 0);
|
|
202
235
|
}
|
|
203
236
|
}
|
|
204
237
|
/** Force any pending lone ESC out of the buffer. */
|
|
205
238
|
flush() {
|
|
206
239
|
if (this.escTimer) {
|
|
207
|
-
|
|
240
|
+
clearTimeout(this.escTimer);
|
|
208
241
|
this.escTimer = undefined;
|
|
209
242
|
}
|
|
210
243
|
if (this.buffer.length > 0 && this.buffer[0] === ESC && this.buffer.length === 1) {
|
|
@@ -277,7 +310,7 @@ export class EventRouter {
|
|
|
277
310
|
len = 4;
|
|
278
311
|
if (buf.length < len)
|
|
279
312
|
return { kind: "incomplete" };
|
|
280
|
-
const character = buf.subarray(0, len)
|
|
313
|
+
const character = UTF8_DECODER.decode(buf.subarray(0, len));
|
|
281
314
|
return {
|
|
282
315
|
kind: "key",
|
|
283
316
|
bytes: len,
|
|
@@ -399,7 +432,7 @@ export class EventRouter {
|
|
|
399
432
|
for (let i = 3; i < buf.length; i++) {
|
|
400
433
|
const b = buf[i];
|
|
401
434
|
if (b === M_UPPER || b === M_LOWER) {
|
|
402
|
-
const params = buf.subarray(3, i)
|
|
435
|
+
const params = ASCII_DECODER.decode(buf.subarray(3, i));
|
|
403
436
|
const parts = params.split(";");
|
|
404
437
|
if (parts.length !== 3)
|
|
405
438
|
return { kind: "skip", bytes: i + 1 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-router.js","sourceRoot":"","sources":["../../src/widgets/event-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-router.js","sourceRoot":"","sources":["../../src/widgets/event-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA4CtC,sDAAsD;AACtD,MAAM,gBAAgB,GAA2B;IAC/C,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,OAAO;CACd,CAAC;AAEF,oEAAoE;AACpE,MAAM,eAAe,GAA2B;IAC9C,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,KAAK,EAAE,6BAA6B;CACxC,CAAC;AAEF,2DAA2D;AAC3D,MAAM,cAAc,GAA2B;IAC7C,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;CACZ,CAAC;AAEF,mEAAmE;AACnE,MAAM,QAAQ,GAA2B;IACvC,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,KAAK;CACT,CAAC;AAEF,MAAM,GAAG,GAAG,IAAI,CAAC;AACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,IAAI;AAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI;AACzB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI;AACzB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI;AAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI;AAE1B,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAC3D,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAE5D,oEAAoE;AACpE,uEAAuE;AACvE,sEAAsE;AACtE,oEAAoE;AACpE,oEAAoE;AACpE,wEAAwE;AACxE,oBAAoB;AACpB,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;AACvC,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAE/C,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAEtC,gEAAgE;AAChE,uEAAuE;AACvE,SAAS,WAAW,CAAC,CAAa,EAAE,CAAa;IAC/C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC;AASD,MAAM,OAAO,WAAW;IACL,MAAM,CAAe;IACrB,IAAI,CAAe;IACnB,WAAW,CAAU;IACrB,aAAa,CAAU;IAExC,oEAAoE;IACpE,qEAAqE;IACrE,sEAAsE;IACtE,sEAAsE;IACtE,yCAAyC;IACjC,MAAM,GAAe,WAAW,CAAC;IACjC,OAAO,GAAG,KAAK,CAAC;IAChB,eAAe,CAA0B;IACjD,wEAAwE;IACxE,2EAA2E;IAC3E,oEAAoE;IACpE,sEAAsE;IACtE,gBAAgB;IACR,QAAQ,CAA4C;IAC5D,yEAAyE;IACzE,oEAAoE;IACpE,wEAAwE;IACxE,sEAAsE;IACtE,iBAAiB;IACT,cAAc,GAA6B,IAAI,CAAC;IAExD,yEAAyE;IACzE,gEAAgE;IAChE,iEAAiE;IAChD,QAAQ,GAA2B,EAAE,CAAC;IACtC,aAAa,GAAG,IAAI,GAAG,EAAqC,CAAC;IAE9E,YAAY,OAA2B;QACrC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAE5E,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAEzB,8DAA8D;QAC9D,iEAAiE;QACjE,8DAA8D;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;QAEhD,oEAAoE;QACpE,qEAAqE;QACrE,sEAAsE;QACtE,sEAAsE;QACtE,gEAAgE;QAChE,6BAA6B;QAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,oBAAoB;IAEpB,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,+CAA+C;QAC/C,IAAI,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACnC,CAAC;YAED,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,sEAAsE;QACtE,kEAAkE;QAClE,uEAAuE;QACvE,oEAAoE;QACpE,kEAAkE;QAClE,oEAAoE;QACpE,oEAAoE;QACpE,iCAAiC;QACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,yBAAyB;IAEzB,KAAK,CAAC,OAAmB,EAAE,OAA2B;QACpD,MAAM,KAAK,GAAyB;YAClC,OAAO;YACP,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,QAAQ;SACxC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,OAA0C;QAChD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,8BAA8B;IAE9B,oEAAoE;IACpE,IAAI,CAAC,KAA0B;QAC7B,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5E,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,wEAAwE;QACxE,mEAAmE;QACnE,qEAAqE;QACrE,mEAAmE;QACnE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACvD,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;gBAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAED,oBAAoB;IAEZ,KAAK;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO;YACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACrD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;gBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnE,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,GAAe;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;QAEnB,IAAI,EAAE,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAE/C,SAAS;QACT,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aACxF,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,IAAI,QAAQ,CAAC;oBAClB,GAAG,EAAE,KAAK;oBACV,SAAS,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACvC,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,KAAK;iBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,iFAAiF;QACjF,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa;YAC5D,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAC3F,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAEO,gBAAgB,CAAC,GAAe;QACtC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;QACnB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI;YAAE,GAAG,GAAG,CAAC,CAAC;aAChC,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI;YAAE,GAAG,GAAG,CAAC,CAAC;aACrC,IAAI,EAAE,IAAI,IAAI;YAAE,GAAG,GAAG,CAAC,CAAC;QAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAEpD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5D,OAAO;YACL,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,IAAI,QAAQ,CAAC;gBAClB,GAAG,EAAE,SAAS,CAAC,WAAW,EAAE;gBAC5B,SAAS;gBACT,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,KAAK,SAAS,CAAC,WAAW,EAAE;gBACtE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,GAAe;QACnC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACpD,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;QAEnB,kBAAkB;QAClB,IAAI,EAAE,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACjD,+CAA+C;QAC/C,IAAI,EAAE,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/C,wEAAwE;QACxE,uEAAuE;QACvE,kEAAkE;QAClE,uBAAuB;QACvB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAC9F,CAAC;QACJ,CAAC;QACD,oDAAoD;QACpD,qEAAqE;QACrE,mEAAmE;QACnE,sEAAsE;QACtE,kEAAkE;QAClE,sEAAsE;QACtE,EAAE;QACF,gEAAgE;QAChE,qEAAqE;QACrE,+DAA+D;QAC/D,gEAAgE;QAChE,iEAAiE;QACjE,oEAAoE;QACpE,oBAAoB;QACpB,EAAE;QACF,wEAAwE;QACxE,qEAAqE;QACrE,sEAAsE;QACtE,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,IAAI,QAAQ,CAAC;oBAClB,GAAG,EAAE,QAAQ;oBACb,SAAS,EAAE,EAAE;oBACb,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,IAAI;iBACX,CAAC;aACH,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACnC,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,IAAI,QAAQ,CAAC;oBAClB,GAAG,EAAE,EAAE,CAAC,WAAW,EAAE;oBACrB,SAAS,EAAE,EAAE;oBACb,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE;oBAC9B,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,IAAI;iBACX,CAAC;aACH,CAAC;QACJ,CAAC;QACD,qEAAqE;QACrE,2CAA2C;QAC3C,OAAO;YACL,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;SAC9F,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,GAAe;QAChC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC7C,OAAO;YACL,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,GAAe;QAChC,wBAAwB;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAEtD,kDAAkD;QAClD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YAClD,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACnF,CAAC;QAED,oCAAoC;QACpC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,0BAA0B;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9D,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;oBACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;oBACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxC,CAAC;oBACD,OAAO;wBACL,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,CAAC,GAAG,CAAC;wBACZ,KAAK,EAAE,iBAAiB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;qBACtD,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAChC,CAAC;QAED,yEAAyE;QACzE,mCAAmC;QACnC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;YAClB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACrC,OAAO,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAChC,CAAC;IAED,mBAAmB;IAEnB,qEAAqE;IACrE,yEAAyE;IACzE,wEAAwE;IACxE,6EAA6E;IACrE,WAAW,CAAC,KAAe;QACjC,oEAAoE;QACpE,oEAAoE;QACpE,sEAAsE;QACtE,gEAAgE;QAChE,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjC,kEAAkE;QAClE,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM;gBAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QAE1B,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QAE1B,mEAAmE;QACnE,sCAAsC;QACtC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;gBAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAuB;QAC3C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAEzC,sEAAsE;QACtE,yEAAyE;QACzE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,CAAC,OAAO;oBAAE,SAAS;gBACzB,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,MAAM,KAAK,CAAC,CAAC,OAAO;oBAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,mEAAmE;QACnE,mEAAmE;QACnE,gEAAgE;QAChE,4CAA4C;QAC5C,MAAM,UAAU,GACd,IAAI,CAAC,cAAc,KAAK,IAAI;YAC5B,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,UAAU;YACvB,CAAC,CAAC,IAAI,CAAC,cAAc;YACrB,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,MAAM;YAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;aACzD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IACjE,CAAC;CACF;AAED,kBAAkB;AAElB,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,CACL,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,YAAY,IAAI,KAAK;QACrB,OAAQ,KAAsB,CAAC,UAAU,KAAK,UAAU,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,EAAU,EACV,CAAS,EACT,CAAS,EACT,OAAgB;IAEhB,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,kCAAkC;IAE5D,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;QACzC,CAAC;QACD,CAAC;QACD,MAAM;QACN,KAAK;QACL,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,KAAa,EAAE,KAAa;IAC7D,2EAA2E;IAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAElD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,KAAK;YACX,KAAK;YACL,KAAK,EAAE,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACrE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAE1C,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,kEAAkE;IAClE,sEAAsE;IACtE,0BAA0B;IAC1B,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAClB,OAAO;YACL,IAAI,EAAE,KAAK;YACX,KAAK;YACL,KAAK,EAAE,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK;QACX,KAAK;QACL,KAAK,EAAE,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;IACrB,OAAO;QACL,KAAK,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;QACvB,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;QACtB,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,OAAqC,EACrC,CAAS,EACT,CAAS;IAET,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,OAAO;YAAE,SAAS;QACzB,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hostStream — adapt a `TerminalHost` into the narrow Writable surface that
|
|
3
|
+
* Console (and Live) actually exercise.
|
|
4
|
+
*
|
|
5
|
+
* [LAW:types-are-the-program] The return type matches Console's `ConsoleSink`
|
|
6
|
+
* exactly: a single `.write(chunk)` method whose return value Console never
|
|
7
|
+
* inspects (so the type leaves it as `unknown`; this implementation happens
|
|
8
|
+
* to return `true` to mirror Node's stream contract, but callers may not
|
|
9
|
+
* rely on that). Anything wider would lie about what this adapter
|
|
10
|
+
* implements; anything narrower would force a cast at the call site.
|
|
11
|
+
* Calling `.pipe()`, `.cork()`, `.on('error')`, etc. is a programming error
|
|
12
|
+
* that TypeScript will reject at compile time.
|
|
13
|
+
*
|
|
14
|
+
* [LAW:locality-or-seam] Console + Live access their sink only via `.write()`
|
|
15
|
+
* — verified in src/core/console.ts (one `_file.write` call) and
|
|
16
|
+
* src/renderables/live.ts (every `this._console.file.write(...)` site). So
|
|
17
|
+
* this narrow surface is the entire contract they need.
|
|
18
|
+
*/
|
|
19
|
+
import type { ConsoleSink } from "../core/console.js";
|
|
20
|
+
import type { TerminalHost } from "./terminal-host.js";
|
|
21
|
+
/**
|
|
22
|
+
* Wrap a `TerminalHost` so its output can be threaded into `Console` via the
|
|
23
|
+
* existing `file:` option. The returned object implements `.write()` only —
|
|
24
|
+
* exactly the surface Console + Live touch.
|
|
25
|
+
*
|
|
26
|
+
* Pair with `forceTerminal: true` on the Console — without it, Console treats
|
|
27
|
+
* any non-undefined `file` option as non-TTY and disables color, which
|
|
28
|
+
* defeats the point.
|
|
29
|
+
*/
|
|
30
|
+
export declare function hostStream(host: TerminalHost): ConsoleSink;
|
|
31
|
+
//# sourceMappingURL=host-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-stream.d.ts","sourceRoot":"","sources":["../../src/widgets/host-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAO1D"}
|