@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.
- 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 +42 -84
- 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
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
|
-
|
|
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.
|
package/dist/core/console.d.ts
CHANGED
|
@@ -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?:
|
|
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
|
|
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
|
|
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():
|
|
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;
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/core/console.ts"],"names":[],"mappings":"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"}
|
package/dist/core/console.js
CHANGED
|
@@ -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
|
-
|
|
67
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
148
|
+
this._capture = null;
|
|
96
149
|
}
|
|
97
150
|
// --- Properties ---
|
|
98
151
|
get size() {
|
|
99
|
-
|
|
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.
|
|
155
|
+
return this._getSize().width;
|
|
107
156
|
}
|
|
108
157
|
get height() {
|
|
109
|
-
return this.
|
|
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
|
|
133
|
-
// explicit `file` wins, otherwise stderr/stdout
|
|
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
|
|
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.
|
|
318
|
+
this._capture = "";
|
|
262
319
|
}
|
|
263
320
|
endCapture() {
|
|
264
|
-
const result = this.
|
|
265
|
-
this.
|
|
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
|
-
|
|
351
|
-
|
|
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
|
|
409
|
+
const target = this._file ?? defaultSink(this._stderr);
|
|
354
410
|
target.write(text);
|
|
355
411
|
}
|
|
356
412
|
}
|
package/dist/core/console.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/core/render.js
CHANGED
|
@@ -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
|
-
|
|
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\\");
|
package/dist/core/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
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"}
|