@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
@@ -0,0 +1,36 @@
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
+ /**
20
+ * Wrap a `TerminalHost` so its output can be threaded into `Console` via the
21
+ * existing `file:` option. The returned object implements `.write()` only —
22
+ * exactly the surface Console + Live touch.
23
+ *
24
+ * Pair with `forceTerminal: true` on the Console — without it, Console treats
25
+ * any non-undefined `file` option as non-TTY and disables color, which
26
+ * defeats the point.
27
+ */
28
+ export function hostStream(host) {
29
+ return {
30
+ write(chunk) {
31
+ host.write(chunk);
32
+ return true;
33
+ },
34
+ };
35
+ }
36
+ //# sourceMappingURL=host-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-stream.js","sourceRoot":"","sources":["../../src/widgets/host-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,IAAkB;IAC3C,OAAO;QACL,KAAK,CAAC,KAA0B;YAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -20,4 +20,7 @@ export { Slider } from "./slider.js";
20
20
  export type { SliderOptions } from "./slider.js";
21
21
  export { EventRouter } from "./event-router.js";
22
22
  export type { EventRouterOptions } from "./event-router.js";
23
+ export { NodeTerminalHost, BrowserTerminalHost } from "./terminal-host.js";
24
+ export type { TerminalHost, TerminalSize, DataHandler, ResizeHandler, NodeTerminalHostOptions, BrowserTerminalHostOptions, XtermTerminal, XtermDisposable, XtermResizeEvent, } from "./terminal-host.js";
25
+ export { hostStream } from "./host-stream.js";
23
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -10,4 +10,6 @@ export { TextInput } from "./text-input.js";
10
10
  export { Dropdown } from "./dropdown.js";
11
11
  export { Slider } from "./slider.js";
12
12
  export { EventRouter } from "./event-router.js";
13
+ export { NodeTerminalHost, BrowserTerminalHost } from "./terminal-host.js";
14
+ export { hostStream } from "./host-stream.js";
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAY3E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -51,15 +51,22 @@
51
51
  */
52
52
  import { ColorDepth } from "../core/color.js";
53
53
  import type { Screen, InteractiveWidget, FocusManager, MountEntry } from "./types.js";
54
+ import type { TerminalHost } from "./terminal-host.js";
54
55
  export type ColorSystemSpec = ColorDepth | "auto" | "truecolor" | "256" | "ansi" | "none" | null;
55
56
  export interface ScreenOptions {
56
- out?: NodeJS.WritableStream;
57
+ /**
58
+ * The I/O capability the screen renders against. Construct a
59
+ * `NodeTerminalHost` for production node demos, or pass a host that
60
+ * wraps mock streams for tests. The seam is the type — Screen never
61
+ * reaches for `process.*`.
62
+ */
63
+ host: TerminalHost;
57
64
  width?: number;
58
65
  colorSystem?: ColorSystemSpec;
59
66
  focusManager?: FocusManager;
60
67
  /**
61
- * When true (default when stdout is a TTY), hide the cursor on start and
62
- * restore it on stop. Disable for non-TTY output and tests.
68
+ * When true (default when the host reports `isTTY`), hide the cursor
69
+ * on start and restore it on stop. Disable for non-TTY output and tests.
63
70
  */
64
71
  manageCursor?: boolean;
65
72
  }
@@ -73,11 +80,11 @@ export declare class DefaultScreen implements Screen {
73
80
  private renderScheduled;
74
81
  private pendingFrame;
75
82
  private lastLineCount;
76
- private readonly out;
83
+ private readonly host;
77
84
  private readonly widthOverride;
78
85
  private readonly colorSystem;
79
86
  private readonly manageCursor;
80
- constructor(options?: ScreenOptions);
87
+ constructor(options: ScreenOptions);
81
88
  get running(): boolean;
82
89
  get widgets(): readonly InteractiveWidget[];
83
90
  mount(...entries: MountEntry[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/widgets/screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH,OAAO,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAIlE,OAAO,KAAK,EACV,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,UAAU,EAGX,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,MAAM,GACN,WAAW,GACX,KAAK,GACL,MAAM,GACN,MAAM,GACN,IAAI,CAAC;AAET,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAqBD,qBAAa,aAAc,YAAW,MAAM;IAC1C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAKpC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAM;IAM9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;IAOtE,OAAO,CAAC,eAAe,CAAqC;IAE5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,eAAe,CAAS;IAKhC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,OAAO,GAAE,aAAkB;IAYvC,IAAI,OAAO,IAAI,OAAO,CAErB;IASD,IAAI,OAAO,IAAI,SAAS,iBAAiB,EAAE,CAQ1C;IAID,KAAK,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAcrC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAcxC,KAAK,IAAI,IAAI;IAoBb,IAAI,IAAI,IAAI;IAwBZ,OAAO,KAAK,KAAK,GAIhB;IAED,OAAO,CAAC,YAAY;IA8IpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,IAAI;CAyDb"}
1
+ {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/widgets/screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH,OAAO,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAIlE,OAAO,KAAK,EACV,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,UAAU,EAGX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,MAAM,GACN,WAAW,GACX,KAAK,GACL,MAAM,GACN,MAAM,GACN,IAAI,CAAC;AAET,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAmBD,qBAAa,aAAc,YAAW,MAAM;IAC1C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAKpC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAM;IAM9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;IAOtE,OAAO,CAAC,eAAe,CAAqC;IAE5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,eAAe,CAAS;IAKhC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,OAAO,EAAE,aAAa;IAYlC,IAAI,OAAO,IAAI,OAAO,CAErB;IASD,IAAI,OAAO,IAAI,SAAS,iBAAiB,EAAE,CAQ1C;IAID,KAAK,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAcrC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAcxC,KAAK,IAAI,IAAI;IAoBb,IAAI,IAAI,IAAI;IAwBZ,OAAO,KAAK,KAAK,GAGhB;IAED,OAAO,CAAC,YAAY;IA8IpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,IAAI;CAyDb"}
@@ -90,7 +90,6 @@ import { segmentsToString } from "../core/render.js";
90
90
  import { resolveColorSystem } from "../core/color.js";
91
91
  import { DefaultFocusManager } from "./focus-manager.js";
92
92
  import { FLOW, hasOverlay } from "./types.js";
93
- const DEFAULT_WIDTH = 80;
94
93
  let DefaultScreen = (() => {
95
94
  var _a;
96
95
  let _widgetList_decorators;
@@ -129,15 +128,15 @@ let DefaultScreen = (() => {
129
128
  // event loop.
130
129
  pendingFrame = null;
131
130
  lastLineCount = 0;
132
- out;
131
+ host;
133
132
  widthOverride;
134
133
  colorSystem;
135
134
  manageCursor;
136
- constructor(options = {}) {
137
- this.out = options.out ?? process.stdout;
135
+ constructor(options) {
136
+ this.host = options.host;
138
137
  this.widthOverride = options.width;
139
138
  this.focusManager = options.focusManager ?? new DefaultFocusManager();
140
- const isTTY = this.out.isTTY ?? false;
139
+ const isTTY = this.host.isTTY;
141
140
  this.colorSystem = resolveSpec(options.colorSystem, isTTY);
142
141
  this.manageCursor = options.manageCursor ?? isTTY;
143
142
  makeObservable(this);
@@ -197,7 +196,7 @@ let DefaultScreen = (() => {
197
196
  this._running = true;
198
197
  this.lastLineCount = 0;
199
198
  if (this.manageCursor)
200
- this.out.write("\x1b[?25l");
199
+ this.host.write("\x1b[?25l");
201
200
  // [LAW:dataflow-not-control-flow] One reactive pipeline. The autorun
202
201
  // computes the frame (which reads observables; MobX subscribes to
203
202
  // exactly what was read so only relevant state changes trigger redraws),
@@ -227,16 +226,15 @@ let DefaultScreen = (() => {
227
226
  this.renderScheduled = false;
228
227
  this._activeOverlays = new Set();
229
228
  if (this.manageCursor)
230
- this.out.write("\x1b[?25h");
229
+ this.host.write("\x1b[?25h");
231
230
  if (this.lastLineCount > 0)
232
- this.out.write("\n");
231
+ this.host.write("\n");
233
232
  }
234
233
  // --- Internal: layout + draw ---
235
234
  get width() {
236
235
  if (this.widthOverride !== undefined)
237
236
  return this.widthOverride;
238
- const cols = this.out.columns;
239
- return cols ?? DEFAULT_WIDTH;
237
+ return this.host.size().cols;
240
238
  }
241
239
  computeFrame() {
242
240
  // [LAW:one-source-of-truth] Snapshot the width ONCE at the top of
@@ -432,7 +430,7 @@ let DefaultScreen = (() => {
432
430
  if (i < drawCount - 1)
433
431
  buf += "\n";
434
432
  }
435
- this.out.write(buf);
433
+ this.host.write(buf);
436
434
  this.lastLineCount = drawCount;
437
435
  }
438
436
  };
@@ -1 +1 @@
1
- {"version":3,"file":"screen.js","sourceRoot":"","sources":["../../src/widgets/screen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screen.js","sourceRoot":"","sources":["../../src/widgets/screen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * TerminalHost — the capability seam between the interactive runtime and its
3
+ * I/O environment.
4
+ *
5
+ * [LAW:locality-or-seam] The missing seam *was* the missing type. Before this
6
+ * type existed, Screen and EventRouter reached for ambient `process.stdin`/
7
+ * `process.stdout`, which crystallised them to node. With a `TerminalHost`
8
+ * value flowing across one boundary, the same runtime code runs against any
9
+ * implementation — node's TTY (`NodeTerminalHost`, this file) or a browser
10
+ * xterm.js terminal (a downstream ticket's adapter).
11
+ *
12
+ * [LAW:dataflow-not-control-flow] The runtime never branches on "am I in
13
+ * node or browser." The host is the value that differs; the code path is
14
+ * the same. Variability lives in which host is constructed at the program
15
+ * entry, not in any `if` inside the runtime.
16
+ *
17
+ * [LAW:no-shared-mutable-globals] This file is the *single owner* of node
18
+ * TTY access in the codebase. Every other module receives a `TerminalHost`
19
+ * from outside. If you find yourself reaching for `process.stdin`,
20
+ * `process.stdout`, or `setRawMode` anywhere else in the runtime or in a
21
+ * demo, fix the call site to take a `TerminalHost` parameter instead —
22
+ * the seam is already here; use it.
23
+ *
24
+ * [boundaries: capabilities over context] A `TerminalHost` grants exactly
25
+ * the I/O capabilities the runtime needs: write bytes, read input, query
26
+ * size, observe resize, switch raw mode, lifecycle. It is not an
27
+ * omniscient handle to "the process."
28
+ */
29
+ import type { Unsubscribe } from "./types.js";
30
+ export interface TerminalSize {
31
+ readonly cols: number;
32
+ readonly rows: number;
33
+ }
34
+ export type DataHandler = (chunk: Uint8Array | string) => void;
35
+ export type ResizeHandler = (size: TerminalSize) => void;
36
+ export interface TerminalHost {
37
+ /**
38
+ * Write raw bytes (or UTF-8 text) to the terminal. The byte sequence is
39
+ * written verbatim; no escape interpretation, no framing.
40
+ */
41
+ write(data: Uint8Array | string): void;
42
+ /**
43
+ * Subscribe to input data. The host emits whatever its underlying
44
+ * transport produces (Buffer on node, string on browser xterm.js); the
45
+ * runtime's parser accepts either.
46
+ */
47
+ onData(handler: DataHandler): Unsubscribe;
48
+ /**
49
+ * Subscribe to terminal resize events. The handler fires with the new
50
+ * size after a resize is observed.
51
+ */
52
+ onResize(handler: ResizeHandler): Unsubscribe;
53
+ /** Current terminal size in cells. Always returns a valid size. */
54
+ size(): TerminalSize;
55
+ /**
56
+ * Enable or disable raw mode on the input side. Implementations whose
57
+ * transport has no "cooked" mode (xterm.js, non-TTY pipes) silently
58
+ * no-op so callers don't need to branch on capability.
59
+ */
60
+ setRawMode(raw: boolean): void;
61
+ /**
62
+ * Whether the host is connected to a real interactive terminal. Drives
63
+ * default option values (e.g. `manageCursor`, `manageRawMode`) in the
64
+ * runtime; non-TTY hosts default those features off.
65
+ */
66
+ readonly isTTY: boolean;
67
+ /**
68
+ * Begin the host's lifecycle. Implementations attach whatever resources
69
+ * they own — or no-op when there is nothing to attach. Idempotent. See
70
+ * the concrete host's own JSDoc for what its `start()` actually does:
71
+ * `NodeTerminalHost` and `BrowserTerminalHost` both no-op because their
72
+ * underlying transports (process streams; a caller-managed xterm.js
73
+ * Terminal) are already live by the time the host is constructed.
74
+ */
75
+ start(): void;
76
+ /**
77
+ * Stop the host's lifecycle. Pairs with `start`. Idempotent. After
78
+ * `stop()`, the host releases its own subscriptions to the underlying
79
+ * transport and clears its handler sets; the transport itself is not
80
+ * torn down (that is the caller's concern — process streams persist;
81
+ * an xterm.js Terminal is disposed by the caller). Re-subscribing via
82
+ * `onData` / `onResize` after `stop()` re-engages the host.
83
+ */
84
+ stop(): void;
85
+ }
86
+ /**
87
+ * Subset of NodeJS stream API the node host actually depends on. Tests
88
+ * construct a host over PassThrough / Writable mocks; production wires it
89
+ * to `process.stdin` / `process.stdout`.
90
+ */
91
+ interface NodeReadable {
92
+ on(event: "data", listener: (chunk: Buffer | string) => void): unknown;
93
+ off(event: "data", listener: (chunk: Buffer | string) => void): unknown;
94
+ setRawMode?(raw: boolean): unknown;
95
+ resume?(): unknown;
96
+ pause?(): unknown;
97
+ readonly isTTY?: boolean;
98
+ }
99
+ interface NodeWritable {
100
+ write(chunk: string | Uint8Array): unknown;
101
+ on(event: "resize", listener: () => void): unknown;
102
+ off(event: "resize", listener: () => void): unknown;
103
+ readonly columns?: number;
104
+ readonly rows?: number;
105
+ readonly isTTY?: boolean;
106
+ }
107
+ export interface NodeTerminalHostOptions {
108
+ /**
109
+ * Input stream. Defaults to `process.stdin` so production code does not
110
+ * have to construct one explicitly. Tests pass a `PassThrough`.
111
+ */
112
+ stdin?: NodeReadable;
113
+ /**
114
+ * Output stream. Defaults to `process.stdout` for the same reason.
115
+ * Tests pass a `Writable` mock.
116
+ */
117
+ stdout?: NodeWritable;
118
+ }
119
+ export declare class NodeTerminalHost implements TerminalHost {
120
+ private readonly stdin;
121
+ private readonly stdout;
122
+ private readonly dataHandlers;
123
+ private readonly resizeHandlers;
124
+ private dataListener;
125
+ private resizeListener;
126
+ private rawModeRequested;
127
+ constructor(options?: NodeTerminalHostOptions);
128
+ get isTTY(): boolean;
129
+ write(data: Uint8Array | string): void;
130
+ size(): TerminalSize;
131
+ setRawMode(raw: boolean): void;
132
+ private applyRawMode;
133
+ onData(handler: DataHandler): Unsubscribe;
134
+ onResize(handler: ResizeHandler): Unsubscribe;
135
+ start(): void;
136
+ stop(): void;
137
+ }
138
+ /**
139
+ * Subset of xterm.js's `Terminal` surface the browser host depends on.
140
+ *
141
+ * [LAW:locality-or-seam] Declaring the dependency by *shape* — rather than
142
+ * importing xterm.js's types — keeps this package free of an xterm.js
143
+ * dev-dep at the type level, lets the browser-bundle pipeline (downstream
144
+ * ticket) pin whichever xterm.js version it wants, and lets unit tests
145
+ * pass a hand-built fake. Same idea as `NodeReadable`/`NodeWritable`
146
+ * above: ask for exactly the capabilities the host uses, no more.
147
+ */
148
+ export interface XtermDisposable {
149
+ dispose(): void;
150
+ }
151
+ export interface XtermResizeEvent {
152
+ cols: number;
153
+ rows: number;
154
+ }
155
+ export interface XtermTerminal {
156
+ readonly cols: number;
157
+ readonly rows: number;
158
+ write(data: Uint8Array | string): void;
159
+ onData(handler: (data: string) => void): XtermDisposable;
160
+ onResize(handler: (size: XtermResizeEvent) => void): XtermDisposable;
161
+ }
162
+ export interface BrowserTerminalHostOptions {
163
+ /**
164
+ * The xterm.js `Terminal` instance to wrap. The caller is responsible
165
+ * for its DOM lifecycle (`terminal.open(element)`, `terminal.dispose()`)
166
+ * — the host only owns its own subscriber lifecycle, exactly mirroring
167
+ * `NodeTerminalHost`'s relationship to `process.stdin`/`process.stdout`.
168
+ */
169
+ terminal: XtermTerminal;
170
+ }
171
+ export declare class BrowserTerminalHost implements TerminalHost {
172
+ private readonly terminal;
173
+ private readonly dataHandlers;
174
+ private readonly resizeHandlers;
175
+ private dataSubscription;
176
+ private resizeSubscription;
177
+ constructor(options: BrowserTerminalHostOptions);
178
+ get isTTY(): boolean;
179
+ write(data: Uint8Array | string): void;
180
+ size(): TerminalSize;
181
+ setRawMode(_raw: boolean): void;
182
+ onData(handler: DataHandler): Unsubscribe;
183
+ onResize(handler: ResizeHandler): Unsubscribe;
184
+ start(): void;
185
+ stop(): void;
186
+ }
187
+ export {};
188
+ //# sourceMappingURL=terminal-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-host.d.ts","sourceRoot":"","sources":["../../src/widgets/terminal-host.ts"],"names":[],"mappings":"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"}