@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.
Files changed (61) hide show
  1. package/README.md +19 -15
  2. package/dist/core/console.d.ts +29 -11
  3. package/dist/core/console.d.ts.map +1 -1
  4. package/dist/core/console.js +86 -30
  5. package/dist/core/console.js.map +1 -1
  6. package/dist/core/render.d.ts.map +1 -1
  7. package/dist/core/render.js +8 -1
  8. package/dist/core/render.js.map +1 -1
  9. package/dist/core/sanitize.d.ts +16 -0
  10. package/dist/core/sanitize.d.ts.map +1 -0
  11. package/dist/core/sanitize.js +19 -0
  12. package/dist/core/sanitize.js.map +1 -0
  13. package/dist/core/strip.d.ts +16 -74
  14. package/dist/core/strip.d.ts.map +1 -1
  15. package/dist/core/strip.js +39 -75
  16. package/dist/core/strip.js.map +1 -1
  17. package/dist/core/style.d.ts +1 -0
  18. package/dist/core/style.d.ts.map +1 -1
  19. package/dist/core/style.js +38 -5
  20. package/dist/core/style.js.map +1 -1
  21. package/dist/core/text.d.ts +54 -1
  22. package/dist/core/text.d.ts.map +1 -1
  23. package/dist/core/text.js +194 -12
  24. package/dist/core/text.js.map +1 -1
  25. package/dist/index.d.ts +7 -3
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/node/prompt.d.ts +22 -0
  30. package/dist/node/prompt.d.ts.map +1 -0
  31. package/dist/node/prompt.js +31 -0
  32. package/dist/node/prompt.js.map +1 -0
  33. package/dist/node/save.d.ts +22 -0
  34. package/dist/node/save.d.ts.map +1 -0
  35. package/dist/node/save.js +22 -0
  36. package/dist/node/save.js.map +1 -0
  37. package/dist/renderables/prompt.d.ts +31 -6
  38. package/dist/renderables/prompt.d.ts.map +1 -1
  39. package/dist/renderables/prompt.js +39 -22
  40. package/dist/renderables/prompt.js.map +1 -1
  41. package/dist/widgets/event-router.d.ts +16 -14
  42. package/dist/widgets/event-router.d.ts.map +1 -1
  43. package/dist/widgets/event-router.js +71 -38
  44. package/dist/widgets/event-router.js.map +1 -1
  45. package/dist/widgets/host-stream.d.ts +31 -0
  46. package/dist/widgets/host-stream.d.ts.map +1 -0
  47. package/dist/widgets/host-stream.js +36 -0
  48. package/dist/widgets/host-stream.js.map +1 -0
  49. package/dist/widgets/index.d.ts +3 -0
  50. package/dist/widgets/index.d.ts.map +1 -1
  51. package/dist/widgets/index.js +2 -0
  52. package/dist/widgets/index.js.map +1 -1
  53. package/dist/widgets/screen.d.ts +12 -5
  54. package/dist/widgets/screen.d.ts.map +1 -1
  55. package/dist/widgets/screen.js +9 -11
  56. package/dist/widgets/screen.js.map +1 -1
  57. package/dist/widgets/terminal-host.d.ts +188 -0
  58. package/dist/widgets/terminal-host.d.ts.map +1 -0
  59. package/dist/widgets/terminal-host.js +258 -0
  60. package/dist/widgets/terminal-host.js.map +1 -0
  61. 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
- import { Console } from "../core/console.js";
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;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,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,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAwBD,qBAAa,MAAM;WACJ,GAAG,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;CAkCnB;AAED,qBAAa,SAAS;WACP,GAAG,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;CAqBnB;AAED,qBAAa,WAAW;WACT,GAAG,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;CAoBnB;AAED,qBAAa,OAAO;WACL,GAAG,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,OAAO,CAAC;CAcpB"}
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, _options) {
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 new Promise((resolve) => {
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, { console: options?.console });
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, { console: options?.console });
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, { console: options?.console });
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, { console: options?.console });
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":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/renderables/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAqB3D,eAAe;AAEf,SAAS,GAAG,CAAC,UAAkB,EAAE,KAAkB;IACjD,qEAAqE;IACrE,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,kDAAkD;IAClD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CACjB,wEAAwE;YACtE,gEAAgE;YAChE,mCAAmC,CACtC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,iBAAiB;AAEjB,MAAM,OAAO,MAAM;IACjB,MAAM,CAAC,KAAK,CAAC,GAAG,CACd,UAAkB,EAClB,KAAkB,EAClB,OAA+B;QAE/B,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,KAAK,KAAK,CAAC;QACnD,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,KAAK,KAAK,CAAC;QAEnD,IAAI,OAAO,GAAG,UAAU,CAAC;QACzB,IAAI,WAAW,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACpC,OAAO,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAC/C,CAAC;QACD,IAAI,WAAW,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO,IAAI,KAAK,OAAO,CAAC,OAAO,GAAG,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,GAAG,CAAC;QAEf,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAE5B,IAAI,KAAK,KAAK,EAAE,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnD,OAAO,OAAO,CAAC,OAAO,CAAC;YACzB,CAAC;YAED,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC;gBACtD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CACtE,CAAC;gBACF,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,KAAK,CAAC,GAAG,CACd,UAAkB,EAClB,KAAkB,EAClB,OAA+B;QAE/B,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,KAAK,KAAK,CAAC;QACnD,IAAI,OAAO,GAAG,UAAU,CAAC;QACzB,IAAI,WAAW,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO,IAAI,KAAK,OAAO,CAAC,OAAO,GAAG,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,GAAG,CAAC;QAEf,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAE5B,IAAI,KAAK,KAAK,EAAE,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnD,OAAO,OAAO,CAAC,OAAO,CAAC;YACzB,CAAC;YAED,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK;gBAAE,OAAO,GAAG,CAAC;QACvD,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,GAAG,CACd,UAAkB,EAClB,KAAkB,EAClB,OAA+B;QAE/B,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,KAAK,KAAK,CAAC;QACnD,IAAI,OAAO,GAAG,UAAU,CAAC;QACzB,IAAI,WAAW,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO,IAAI,KAAK,OAAO,CAAC,OAAO,GAAG,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,GAAG,CAAC;QAEf,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAE5B,IAAI,KAAK,KAAK,EAAE,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnD,OAAO,OAAO,CAAC,OAAO,CAAC;YACzB,CAAC;YAED,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC9B,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,OAAO;IAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CACd,UAAkB,EAClB,KAAkB,EAClB,OAAgC;QAEhC,MAAM,UAAU,GAAG,OAAO,EAAE,OAAO,CAAC;QACpC,MAAM,KAAK,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACjF,MAAM,OAAO,GAAG,GAAG,UAAU,KAAK,KAAK,IAAI,CAAC;QAE5C,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE1C,IAAI,KAAK,KAAK,EAAE,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO,UAAU,CAAC;YAChE,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;YAClD,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;QACpD,CAAC;IACH,CAAC;CACF"}
@@ -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 setImmediate. The next chunk cancels the timer
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
- * When true (default when output is a TTY), enable mouse tracking on
35
- * start() and disable on stop(). Disable in tests / non-TTY environments.
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 input is a TTY), put stdin into raw mode on
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 input;
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 dataListener;
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: Buffer | string): void;
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;AAEpB,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,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG;QAC9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;QACvC,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA+ED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAiD;IACrE,OAAO,CAAC,QAAQ,CAA8C;IAM9D,OAAO,CAAC,cAAc,CAAkC;IAKxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;gBAElE,OAAO,EAAE,kBAAkB;IAyBvC,KAAK,IAAI,IAAI;IAiBb,IAAI,IAAI,IAAI;IAiCZ,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,MAAM,GAAG,MAAM,GAAG,IAAI;IAkBlC,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"}
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 setImmediate. The next chunk cancels the timer
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
- input;
87
- output;
109
+ host;
88
110
  manageMouse;
89
111
  manageRawMode;
90
- buffer = Buffer.alloc(0);
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
- dataListener;
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.input = options.input ?? process.stdin;
111
- this.output = options.output ?? process.stdout;
112
- const inputIsTTY = !!this.input?.isTTY;
113
- const outputIsTTY = !!this.output.isTTY;
114
- this.manageRawMode = options.manageRawMode ?? inputIsTTY;
115
- this.manageMouse = options.manageMouse ?? outputIsTTY;
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 (this.manageRawMode && this.input?.setRawMode) {
130
- this.input.setRawMode(true);
131
- }
132
- if (typeof this.input?.resume === "function") {
133
- this.input.resume();
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.output.write(MOUSE_TRACK_ON);
137
- this.dataListener = (chunk) => this.feed(chunk);
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.dataListener) {
144
- this.input?.off("data", this.dataListener);
145
- this.dataListener = undefined;
175
+ if (this.dataUnsubscribe) {
176
+ this.dataUnsubscribe();
177
+ this.dataUnsubscribe = undefined;
146
178
  }
147
179
  if (this.manageMouse)
148
- this.output.write(MOUSE_TRACK_OFF);
149
- if (this.manageRawMode && this.input?.setRawMode) {
150
- this.input.setRawMode(false);
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
- clearImmediate(this.escTimer);
193
+ clearTimeout(this.escTimer);
163
194
  this.escTimer = undefined;
164
195
  }
165
- this.buffer = Buffer.alloc(0);
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" ? Buffer.from(chunk, "utf8") : chunk;
189
- this.buffer = this.buffer.length === 0 ? Buffer.from(next) : Buffer.concat([this.buffer, next]);
219
+ const next = typeof chunk === "string" ? UTF8_ENCODER.encode(chunk) : chunk;
220
+ this.buffer = concatBytes(this.buffer, next);
190
221
  if (this.escTimer) {
191
- clearImmediate(this.escTimer);
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 = setImmediate(() => {
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
- clearImmediate(this.escTimer);
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).toString("utf8");
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).toString("ascii");
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":"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"}
@@ -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"}