@promptctl/rich-js 0.3.1 → 0.5.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 +42 -84
  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
package/README.md CHANGED
@@ -13,7 +13,7 @@ Works on Linux, macOS, and Windows. Requires Node.js >= 20. ESM-only.
13
13
  ## Installing
14
14
 
15
15
  ```sh
16
- npm install rich-js
16
+ npm install @promptctl/rich-js
17
17
  ```
18
18
 
19
19
  ## Using the Console
@@ -21,7 +21,7 @@ npm install rich-js
21
21
  Import and construct a `Console` object:
22
22
 
23
23
  ```typescript
24
- import { Console } from "rich-js";
24
+ import { Console } from "@promptctl/rich-js";
25
25
 
26
26
  const console = new Console();
27
27
  ```
@@ -54,7 +54,7 @@ Rich includes a number of built-in renderables for creating elegant terminal out
54
54
  The `Console` object has a `log()` method similar to `print()`, but adds a timestamp column on the left. Rich will syntax-highlight data structures automatically.
55
55
 
56
56
  ```typescript
57
- import { Console } from "rich-js";
57
+ import { Console } from "@promptctl/rich-js";
58
58
 
59
59
  const console = new Console();
60
60
 
@@ -82,7 +82,7 @@ console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:");
82
82
  Rich can render flexible tables with unicode box characters. There is a large variety of formatting options for borders, styles, and cell alignment.
83
83
 
84
84
  ```typescript
85
- import { Console, Table } from "rich-js";
85
+ import { Console, Table } from "@promptctl/rich-js";
86
86
 
87
87
  const console = new Console();
88
88
 
@@ -111,7 +111,7 @@ Rich can render multiple flicker-free progress bars to track long-running tasks.
111
111
  For basic usage, wrap any iterable with `track`:
112
112
 
113
113
  ```typescript
114
- import { track } from "rich-js";
114
+ import { track } from "@promptctl/rich-js";
115
115
 
116
116
  for (const step of track(Array.from({ length: 100 }), { description: "Processing..." })) {
117
117
  await doStep(step);
@@ -121,7 +121,7 @@ for (const step of track(Array.from({ length: 100 }), { description: "Processing
121
121
  For multiple progress bars and custom columns, use `Progress` directly:
122
122
 
123
123
  ```typescript
124
- import { Progress, TextColumn, BarColumn, TaskProgressColumn, TimeRemainingColumn } from "rich-js";
124
+ import { Progress, TextColumn, BarColumn, TaskProgressColumn, TimeRemainingColumn } from "@promptctl/rich-js";
125
125
 
126
126
  const progress = new Progress(
127
127
  new TextColumn("{task.description}"),
@@ -145,7 +145,7 @@ await progress.run(async () => {
145
145
  For situations where it is hard to calculate progress, use `Status` to display a spinner animation with a message:
146
146
 
147
147
  ```typescript
148
- import { Console } from "rich-js";
148
+ import { Console } from "@promptctl/rich-js";
149
149
 
150
150
  const console = new Console();
151
151
 
@@ -168,7 +168,7 @@ status.stop();
168
168
  Rich can render a tree with guide lines — ideal for displaying file structures or any other hierarchical data:
169
169
 
170
170
  ```typescript
171
- import { Console, Tree } from "rich-js";
171
+ import { Console, Tree } from "@promptctl/rich-js";
172
172
 
173
173
  const console = new Console();
174
174
 
@@ -191,7 +191,7 @@ Tree labels can be plain text, markup strings, or any `Renderable`.
191
191
  Rich can render content in neat columns with equal or optimal width:
192
192
 
193
193
  ```typescript
194
- import { Console, Columns } from "rich-js";
194
+ import { Console, Columns } from "@promptctl/rich-js";
195
195
 
196
196
  const console = new Console();
197
197
 
@@ -207,7 +207,7 @@ console.print(new Columns(items));
207
207
  Rich can render Markdown and translates the formatting to the terminal:
208
208
 
209
209
  ```typescript
210
- import { Console, Markdown } from "rich-js";
210
+ import { Console, Markdown } from "@promptctl/rich-js";
211
211
  import { readFileSync } from "fs";
212
212
 
213
213
  const console = new Console();
@@ -223,7 +223,7 @@ console.print(md);
223
223
  Rich can render syntax-highlighted source code:
224
224
 
225
225
  ```typescript
226
- import { Console, Syntax } from "rich-js";
226
+ import { Console, Syntax } from "@promptctl/rich-js";
227
227
 
228
228
  const console = new Console();
229
229
 
@@ -245,7 +245,7 @@ console.print(syntax);
245
245
  Rich can render beautiful tracebacks that are easier to read and show more context than standard Node.js errors:
246
246
 
247
247
  ```typescript
248
- import { Console, Traceback } from "rich-js";
248
+ import { Console, Traceback } from "@promptctl/rich-js";
249
249
 
250
250
  const console = new Console();
251
251
 
@@ -263,8 +263,8 @@ try {
263
263
  All Rich renderables use the `Renderable` protocol. You can implement your own:
264
264
 
265
265
  ```typescript
266
- import type { Renderable, RenderOptions } from "rich-js";
267
- import { Segment } from "rich-js";
266
+ import type { Renderable, RenderOptions } from "@promptctl/rich-js";
267
+ import { Segment } from "@promptctl/rich-js";
268
268
 
269
269
  class Greeting implements Renderable {
270
270
  render(options: RenderOptions): Iterable<Segment> {
@@ -291,11 +291,15 @@ const console = new Console({
291
291
  When `record: true`, export output after the fact:
292
292
 
293
293
  ```typescript
294
+ import { saveHtml } from "@promptctl/rich-js/node/save";
295
+
294
296
  const text = console.exportText();
295
297
  const html = console.exportHtml();
296
- console.saveHtml("output.html");
298
+ saveHtml(console, "output.html");
297
299
  ```
298
300
 
301
+ `saveText` / `saveHtml` live on the `node/save` subpath because they import `node:fs`; the main barrel stays browser-safe.
302
+
299
303
  ## Demos
300
304
 
301
305
  A handful of demos under `examples/` exercise the library against realistic use cases. Two are explained in detail below (`rich-explore` and `claude-sessions`); the rest are listed here with one-line summaries. The full set of available npm scripts is the authoritative list — `cat package.json | jq .scripts` to see them all.
@@ -5,6 +5,9 @@ import { Style, Theme } from "./style.js";
5
5
  import { ColorDepth } from "./color.js";
6
6
  import type { Highlighter } from "./highlighter.js";
7
7
  import type { RenderOptions } from "./protocol.js";
8
+ export interface ConsoleSink {
9
+ write(chunk: string | Uint8Array): unknown;
10
+ }
8
11
  export interface ConsoleOptions {
9
12
  /**
10
13
  * Color encoding. Accepts a string spec (`"auto"`, `"truecolor"`, `"256"`,
@@ -12,13 +15,35 @@ export interface ConsoleOptions {
12
15
  * which has no string spec), or `null` for no color. Default `"auto"`.
13
16
  */
14
17
  colorSystem?: string | ColorDepth | null;
18
+ /**
19
+ * Static width (cells). Ignored when `getSize` is provided. Falls back to
20
+ * `process.stdout.columns` / `COLUMNS` env / 80.
21
+ */
15
22
  width?: number;
23
+ /**
24
+ * Static height (lines). Ignored when `getSize` is provided. Falls back to
25
+ * `process.stdout.rows` / `LINES` env / 24.
26
+ */
16
27
  height?: number;
28
+ /**
29
+ * Live size source. When provided, the console reads its width/height from
30
+ * this function on every access, overriding any static `width`/`height` and
31
+ * the `process.stdout` fallback. Pass this when the output target's
32
+ * dimensions can change at runtime (e.g. xterm.js in a browser).
33
+ *
34
+ * [LAW:dataflow-not-control-flow] Live size is a function value the
35
+ * console reads, not a branch the call site has to install via
36
+ * `Object.defineProperty`.
37
+ */
38
+ getSize?: () => {
39
+ width: number;
40
+ height: number;
41
+ };
17
42
  style?: string | Style;
18
43
  forceTerminal?: boolean;
19
44
  forceInteractive?: boolean;
20
45
  stderr?: boolean;
21
- file?: NodeJS.WritableStream;
46
+ file?: ConsoleSink;
22
47
  record?: boolean;
23
48
  markup?: boolean;
24
49
  highlight?: boolean;
@@ -43,8 +68,7 @@ export interface RuleOptions {
43
68
  }
44
69
  export declare class Console {
45
70
  private _colorSystem;
46
- private _width;
47
- private _height;
71
+ private _getSize;
48
72
  private _style;
49
73
  private _forceTerminal;
50
74
  private _forceInteractive;
@@ -56,7 +80,7 @@ export declare class Console {
56
80
  private _theme;
57
81
  private _highlighter;
58
82
  private _recorded;
59
- private _buffer;
83
+ private _capture;
60
84
  constructor(options?: ConsoleOptions);
61
85
  get size(): {
62
86
  width: number;
@@ -68,7 +92,7 @@ export declare class Console {
68
92
  get isTerminal(): boolean;
69
93
  get isInteractive(): boolean;
70
94
  get colorSystem(): ColorDepth | null;
71
- get file(): NodeJS.WritableStream;
95
+ get file(): ConsoleSink;
72
96
  get theme(): Theme;
73
97
  get options(): RenderOptions;
74
98
  print(...args: unknown[]): void;
@@ -86,12 +110,6 @@ export declare class Console {
86
110
  exportHtml({ clear }?: {
87
111
  clear?: boolean;
88
112
  }): string;
89
- saveText(path: string, options?: {
90
- clear?: boolean;
91
- }): void;
92
- saveHtml(path: string, options?: {
93
- clear?: boolean;
94
- }): void;
95
113
  private _styleToCss;
96
114
  private _writeSegments;
97
115
  private _write;
@@ -1 +1 @@
1
- {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/core/console.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,KAAK,EAAc,KAAK,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,UAAU,EAAsB,MAAM,YAAY,CAAC;AAI5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,eAAe,CAAC;AAKvB,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAoDD,qBAAa,OAAO;IAClB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,cAAc;IAuBpC,IAAI,IAAI,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAM5C;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,UAAU,IAAI,OAAO,CAOxB;IAED,IAAI,aAAa,IAAI,OAAO,CAG3B;IAED,IAAI,WAAW,IAAI,UAAU,GAAG,IAAI,CAEnC;IAMD,IAAI,IAAI,IAAI,MAAM,CAAC,cAAc,CAEhC;IAED,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,IAAI,OAAO,IAAI,aAAa,CAO3B;IAID,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IA2F/B,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAU7B,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAUjD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAUzF,YAAY,IAAI,IAAI;IAIpB,UAAU,IAAI,MAAM;IAQpB,UAAU,CAAC,EAAE,KAAY,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,MAAM;IAM9D,UAAU,CAAC,EAAE,KAAY,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,MAAM;IAuB9D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAI3D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAI3D,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,MAAM;CAQf"}
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/core/console.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * Console — the central orchestrator for rendering styled output to the terminal.
3
3
  */
4
- import { writeFileSync } from "fs";
5
4
  import { Segment } from "./segment.js";
6
5
  import { Style, NULL_STYLE, Theme } from "./style.js";
7
6
  import { resolveColorSystem } from "./color.js";
@@ -60,11 +59,61 @@ function getTerminalSize() {
60
59
  }
61
60
  return { width: 80, height: 24 };
62
61
  }
62
+ // [LAW:single-enforcer] One trust-boundary check: when no `file:` was
63
+ // provided, the console falls back to `process.stderr`/`process.stdout`,
64
+ // which only exist in node-like environments. Browser bundles without an
65
+ // explicit `file:` would otherwise hit a `ReferenceError: process is not
66
+ // defined` deep inside `_write`. Centralizing the fallback here makes the
67
+ // failure diagnostic and keeps both consumers (`file` getter, `_write`)
68
+ // behaving identically — no second copy of the check to drift.
69
+ function defaultSink(useStderr) {
70
+ if (typeof process === "undefined") {
71
+ throw new Error("Console: no `file` provided and `process` is not defined (e.g. " +
72
+ "running in a browser). Pass `file: hostStream(host)` or any other " +
73
+ "ConsoleSink so output has somewhere to go.");
74
+ }
75
+ return useStderr ? process.stderr : process.stdout;
76
+ }
77
+ // [LAW:dataflow-not-control-flow] Build one size-reading function at
78
+ // construction time from whichever options the caller supplied. The width
79
+ // getter is then unconditional — it always calls `_getSize()`. Variability
80
+ // lives in the captured closure (which source it consults), not in branches
81
+ // the getter has to evaluate on every read.
82
+ //
83
+ // The all-static and mixed cases get *different* closures: when both
84
+ // dimensions are fixed, the returned function is a constant — no
85
+ // `getTerminalSize` call on every read, since neither value can change.
86
+ // When at least one dimension is dynamic, the closure consults
87
+ // `getTerminalSize` to fill in the missing side.
88
+ function resolveGetSize(options) {
89
+ if (options?.getSize)
90
+ return options.getSize;
91
+ const staticWidth = options?.width;
92
+ const staticHeight = options?.height;
93
+ if (staticWidth !== undefined && staticHeight !== undefined) {
94
+ // [LAW:one-source-of-truth] Freeze the captured object so consumers can't
95
+ // mutate `console.size` and silently change every subsequent read.
96
+ // Matches the dynamic-closure path (which builds a fresh object per call
97
+ // and is therefore implicitly immutable from a sharing standpoint).
98
+ const fixed = Object.freeze({ width: staticWidth, height: staticHeight });
99
+ return () => fixed;
100
+ }
101
+ return () => {
102
+ const term = getTerminalSize();
103
+ return {
104
+ width: staticWidth ?? term.width,
105
+ height: staticHeight ?? term.height,
106
+ };
107
+ };
108
+ }
63
109
  // --- Console ---
64
110
  export class Console {
65
111
  _colorSystem;
66
- _width;
67
- _height;
112
+ // [LAW:one-source-of-truth] Size flows through a single function. Static
113
+ // `width`/`height` options collapse into a closure that returns them; a
114
+ // caller-supplied `getSize` overrides. Every size read in this class goes
115
+ // through `_getSize()` — no second path, no second source to drift.
116
+ _getSize;
68
117
  _style;
69
118
  _forceTerminal;
70
119
  _forceInteractive;
@@ -76,11 +125,15 @@ export class Console {
76
125
  _theme;
77
126
  _highlighter;
78
127
  _recorded;
79
- _buffer;
128
+ // [LAW:types-are-the-program] The capture state is carried in the *type*
129
+ // of this field, not in a sentinel value. `null` = not capturing; any
130
+ // string (including "") = capturing, this is the buffer. A paired
131
+ // boolean+string would admit the impossible state "not capturing, buffer
132
+ // non-empty" — `string | null` makes that unrepresentable.
133
+ _capture;
80
134
  constructor(options) {
81
135
  this._colorSystem = resolveOptionColorSystem(options?.colorSystem, effectiveIsTTY(options));
82
- this._width = options?.width;
83
- this._height = options?.height;
136
+ this._getSize = resolveGetSize(options);
84
137
  this._style = resolveStyle(options?.style);
85
138
  this._forceTerminal = options?.forceTerminal ?? false;
86
139
  this._forceInteractive = options?.forceInteractive;
@@ -92,21 +145,17 @@ export class Console {
92
145
  this._theme = options?.theme ?? new Theme();
93
146
  this._highlighter = options?.highlighter ?? new ReprHighlighter();
94
147
  this._recorded = [];
95
- this._buffer = "";
148
+ this._capture = null;
96
149
  }
97
150
  // --- Properties ---
98
151
  get size() {
99
- const term = getTerminalSize();
100
- return {
101
- width: this._width ?? term.width,
102
- height: this._height ?? term.height,
103
- };
152
+ return this._getSize();
104
153
  }
105
154
  get width() {
106
- return this._width ?? getTerminalSize().width;
155
+ return this._getSize().width;
107
156
  }
108
157
  get height() {
109
- return this._height ?? getTerminalSize().height;
158
+ return this._getSize().height;
110
159
  }
111
160
  get encoding() {
112
161
  return "utf-8";
@@ -129,12 +178,15 @@ export class Console {
129
178
  get colorSystem() {
130
179
  return this._colorSystem;
131
180
  }
132
- // [LAW:one-source-of-truth] Output target lookup matches _renderSegment's:
133
- // explicit `file` wins, otherwise stderr/stdout per the _stderr flag. Exposed
181
+ // [LAW:one-source-of-truth] Output target lookup matches `_write`'s:
182
+ // explicit `file` wins, otherwise `defaultSink` resolves to stderr/stdout
183
+ // (or throws clearly in environments where `process` is absent). Exposed
134
184
  // so renderables that bypass the segment pipeline (e.g. Live's raw control
135
- // sequences) still write to the caller's configured stream.
185
+ // sequences) still write to the caller's configured stream. Return type is
186
+ // the narrow `ConsoleSink` — Live (and any external consumer) only needs
187
+ // `.write()`, so the type tells the truth about what the surface guarantees.
136
188
  get file() {
137
- return this._file ?? (this._stderr ? process.stderr : process.stdout);
189
+ return this._file ?? defaultSink(this._stderr);
138
190
  }
139
191
  get theme() {
140
192
  return this._theme;
@@ -257,12 +309,17 @@ export class Console {
257
309
  this.print(text);
258
310
  }
259
311
  // --- Capture ---
312
+ // [LAW:one-source-of-truth] Redirect semantics match Python Rich's
313
+ // `Console.capture()`: while a capture is active the underlying target
314
+ // (file / stdout / stderr) receives nothing, and `endCapture()` returns
315
+ // the full text that would otherwise have been written. This is not a
316
+ // tee — callers wanting both must compose explicitly.
260
317
  beginCapture() {
261
- this._buffer = "";
318
+ this._capture = "";
262
319
  }
263
320
  endCapture() {
264
- const result = this._buffer;
265
- this._buffer = "";
321
+ const result = this._capture ?? "";
322
+ this._capture = null;
266
323
  return result;
267
324
  }
268
325
  // --- Export (when record:true) ---
@@ -294,12 +351,6 @@ export class Console {
294
351
  this._recorded = [];
295
352
  return parts.join("");
296
353
  }
297
- saveText(path, options) {
298
- writeFileSync(path, this.exportText(options), "utf-8");
299
- }
300
- saveHtml(path, options) {
301
- writeFileSync(path, this.exportHtml(options), "utf-8");
302
- }
303
354
  _styleToCss(style) {
304
355
  if (!style || style.isNull)
305
356
  return "";
@@ -347,10 +398,15 @@ export class Console {
347
398
  this._write(encoded);
348
399
  }
349
400
  _write(text) {
350
- if (this._buffer !== undefined && this._buffer !== "") {
351
- this._buffer += text;
401
+ // [LAW:types-are-the-program] `_capture !== null` is a discriminator
402
+ // narrow on `string | null`, not a sentinel comparison — the type
403
+ // carries the active/inactive state. The early return is what makes
404
+ // this a redirect (not a tee); see beginCapture for semantics.
405
+ if (this._capture !== null) {
406
+ this._capture += text;
407
+ return;
352
408
  }
353
- const target = this._file ?? (this._stderr ? process.stderr : process.stdout);
409
+ const target = this._file ?? defaultSink(this._stderr);
354
410
  target.write(text);
355
411
  }
356
412
  }
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/core/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/core/console.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,UAAU,EAAsB,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACzC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA2BD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,UAAU,GAAG,IAAI,GAC7B,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC3B,WAAW,EAAE,UAAU,GAAG,IAAI,GAC7B,MAAM,CAoCR;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,CA8BR"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,UAAU,EAAsB,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;AAG/D,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACzC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA2BD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,UAAU,GAAG,IAAI,GAC7B,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC3B,WAAW,EAAE,UAAU,GAAG,IAAI,GAC7B,MAAM,CA0CR;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,CA8BR"}
@@ -29,6 +29,7 @@
29
29
  * mechanical fold over it.
30
30
  */
31
31
  import { ColorDepth, resolveColorSystem } from "./color.js";
32
+ import { stripOscTerminators } from "./sanitize.js";
32
33
  const DEFAULT_WIDTH = 80;
33
34
  function segmentToPiece(segment, colorSystem) {
34
35
  if (segment.isControl)
@@ -85,7 +86,13 @@ export function segmentsToString(segments, colorSystem) {
85
86
  while (l < j && pieces[l].link === link)
86
87
  l++;
87
88
  if (link) {
88
- parts.push(`\x1b]8;;${link}\x1b\\`);
89
+ // [LAW:single-enforcer] Wire-byte trust boundary — sanitize the URL
90
+ // at the one place it becomes an OSC 8 sequence, regardless of which
91
+ // upstream API attached it to the Style. Defense-in-depth for the
92
+ // RichText data-model boundary in text.ts; also covers Style paths
93
+ // that don't go through RichText (Console.print({style: ...}), any
94
+ // direct `Segment.applyStyle(... new Style({ link })) ...`).
95
+ parts.push(`\x1b]8;;${stripOscTerminators(link)}\x1b\\`);
89
96
  for (let m = k; m < l; m++)
90
97
  parts.push(pieces[m].text);
91
98
  parts.push("\x1b]8;;\x1b\\");
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * OSC-terminator sanitization — one rule, one source.
3
+ *
4
+ * [LAW:one-source-of-truth] The single definition of "bytes that prematurely
5
+ * terminate an OSC 8 hyperlink wrap": ESC (`\x1b`), BEL (`\x07`), ST (`\x9c`).
6
+ * Both the data-model boundary (RichText, in text.ts) and the wire-byte
7
+ * boundaries (`segmentsToString` in render.ts; `Style.render` in style.ts)
8
+ * import this helper — the rule lives once and is applied wherever a URL
9
+ * crosses into territory it could break out of.
10
+ *
11
+ * [LAW:locality-or-seam] This module depends on nothing; every consumer
12
+ * imports downward. No dep cycle, no re-import friction, no temptation to
13
+ * inline a second copy of the regex.
14
+ */
15
+ export declare function stripOscTerminators(url: string): string;
16
+ //# sourceMappingURL=sanitize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/core/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * OSC-terminator sanitization — one rule, one source.
3
+ *
4
+ * [LAW:one-source-of-truth] The single definition of "bytes that prematurely
5
+ * terminate an OSC 8 hyperlink wrap": ESC (`\x1b`), BEL (`\x07`), ST (`\x9c`).
6
+ * Both the data-model boundary (RichText, in text.ts) and the wire-byte
7
+ * boundaries (`segmentsToString` in render.ts; `Style.render` in style.ts)
8
+ * import this helper — the rule lives once and is applied wherever a URL
9
+ * crosses into territory it could break out of.
10
+ *
11
+ * [LAW:locality-or-seam] This module depends on nothing; every consumer
12
+ * imports downward. No dep cycle, no re-import friction, no temptation to
13
+ * inline a second copy of the regex.
14
+ */
15
+ const OSC_TERMINATOR_RE = /[\x1b\x07\x9c]/g;
16
+ export function stripOscTerminators(url) {
17
+ return url.replace(OSC_TERMINATOR_RE, "");
18
+ }
19
+ //# sourceMappingURL=sanitize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/core/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAE5C,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC"}