@promptctl/rich-js 0.7.0 → 0.9.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 (201) hide show
  1. package/README.md +99 -31
  2. package/dist/core/box.d.ts +96 -42
  3. package/dist/core/box.d.ts.map +1 -1
  4. package/dist/core/box.js +348 -490
  5. package/dist/core/box.js.map +1 -1
  6. package/dist/core/cells.d.ts +46 -1
  7. package/dist/core/cells.d.ts.map +1 -1
  8. package/dist/core/cells.js +55 -14
  9. package/dist/core/cells.js.map +1 -1
  10. package/dist/core/color.d.ts.map +1 -1
  11. package/dist/core/color.js +22 -8
  12. package/dist/core/color.js.map +1 -1
  13. package/dist/core/console.d.ts +30 -14
  14. package/dist/core/console.d.ts.map +1 -1
  15. package/dist/core/console.js +176 -104
  16. package/dist/core/console.js.map +1 -1
  17. package/dist/core/highlighter.d.ts +2 -1
  18. package/dist/core/highlighter.d.ts.map +1 -1
  19. package/dist/core/highlighter.js +28 -6
  20. package/dist/core/highlighter.js.map +1 -1
  21. package/dist/{renderables → core}/json.d.ts +8 -3
  22. package/dist/core/json.d.ts.map +1 -0
  23. package/dist/{renderables → core}/json.js +7 -2
  24. package/dist/core/json.js.map +1 -0
  25. package/dist/core/markup.d.ts +6 -9
  26. package/dist/core/markup.d.ts.map +1 -1
  27. package/dist/core/markup.js +153 -47
  28. package/dist/core/markup.js.map +1 -1
  29. package/dist/core/measure.d.ts +11 -0
  30. package/dist/core/measure.d.ts.map +1 -1
  31. package/dist/core/measure.js +15 -3
  32. package/dist/core/measure.js.map +1 -1
  33. package/dist/core/oklch.d.ts +22 -0
  34. package/dist/core/oklch.d.ts.map +1 -1
  35. package/dist/core/oklch.js +62 -18
  36. package/dist/core/oklch.js.map +1 -1
  37. package/dist/core/pretty.d.ts +122 -0
  38. package/dist/core/pretty.d.ts.map +1 -0
  39. package/dist/core/pretty.js +398 -0
  40. package/dist/core/pretty.js.map +1 -0
  41. package/dist/core/protocol.d.ts +80 -0
  42. package/dist/core/protocol.d.ts.map +1 -1
  43. package/dist/core/protocol.js +85 -0
  44. package/dist/core/protocol.js.map +1 -1
  45. package/dist/core/segment.d.ts +26 -0
  46. package/dist/core/segment.d.ts.map +1 -1
  47. package/dist/core/segment.js +45 -0
  48. package/dist/core/segment.js.map +1 -1
  49. package/dist/core/strip.d.ts +9 -5
  50. package/dist/core/strip.d.ts.map +1 -1
  51. package/dist/core/strip.js +39 -41
  52. package/dist/core/strip.js.map +1 -1
  53. package/dist/core/style.d.ts +19 -0
  54. package/dist/core/style.d.ts.map +1 -1
  55. package/dist/core/style.js +46 -38
  56. package/dist/core/style.js.map +1 -1
  57. package/dist/core/subscription.d.ts +13 -0
  58. package/dist/core/subscription.d.ts.map +1 -0
  59. package/dist/core/subscription.js +13 -0
  60. package/dist/core/subscription.js.map +1 -0
  61. package/dist/core/text.d.ts +102 -4
  62. package/dist/core/text.d.ts.map +1 -1
  63. package/dist/core/text.js +332 -162
  64. package/dist/core/text.js.map +1 -1
  65. package/dist/core/wrap.d.ts +42 -0
  66. package/dist/core/wrap.d.ts.map +1 -0
  67. package/dist/core/wrap.js +128 -0
  68. package/dist/core/wrap.js.map +1 -0
  69. package/dist/host/host-stream.d.ts.map +1 -0
  70. package/dist/host/host-stream.js.map +1 -0
  71. package/dist/host/index.d.ts +4 -0
  72. package/dist/host/index.d.ts.map +1 -0
  73. package/dist/host/index.js +3 -0
  74. package/dist/host/index.js.map +1 -0
  75. package/dist/{widgets → host}/terminal-host.d.ts +20 -64
  76. package/dist/host/terminal-host.d.ts.map +1 -0
  77. package/dist/host/terminal-host.js +133 -0
  78. package/dist/host/terminal-host.js.map +1 -0
  79. package/dist/index.d.ts +13 -36
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +35 -22
  82. package/dist/index.js.map +1 -1
  83. package/dist/node/terminal-host.d.ts +85 -0
  84. package/dist/node/terminal-host.d.ts.map +1 -0
  85. package/dist/node/terminal-host.js +161 -0
  86. package/dist/node/terminal-host.js.map +1 -0
  87. package/dist/node/traceback.d.ts +28 -0
  88. package/dist/node/traceback.d.ts.map +1 -0
  89. package/dist/node/traceback.js +113 -0
  90. package/dist/node/traceback.js.map +1 -0
  91. package/dist/renderables/columns.d.ts +24 -2
  92. package/dist/renderables/columns.d.ts.map +1 -1
  93. package/dist/renderables/columns.js +91 -32
  94. package/dist/renderables/columns.js.map +1 -1
  95. package/dist/renderables/layout.d.ts +61 -5
  96. package/dist/renderables/layout.d.ts.map +1 -1
  97. package/dist/renderables/layout.js +191 -19
  98. package/dist/renderables/layout.js.map +1 -1
  99. package/dist/renderables/markdown.d.ts +1 -1
  100. package/dist/renderables/markdown.d.ts.map +1 -1
  101. package/dist/renderables/markdown.js +7 -14
  102. package/dist/renderables/markdown.js.map +1 -1
  103. package/dist/renderables/padding.d.ts +16 -3
  104. package/dist/renderables/padding.d.ts.map +1 -1
  105. package/dist/renderables/padding.js +96 -47
  106. package/dist/renderables/padding.js.map +1 -1
  107. package/dist/renderables/panel.d.ts +48 -7
  108. package/dist/renderables/panel.d.ts.map +1 -1
  109. package/dist/renderables/panel.js +175 -106
  110. package/dist/renderables/panel.js.map +1 -1
  111. package/dist/renderables/progress.d.ts +3 -3
  112. package/dist/renderables/progress.d.ts.map +1 -1
  113. package/dist/renderables/progress.js +11 -9
  114. package/dist/renderables/progress.js.map +1 -1
  115. package/dist/renderables/progressBar.d.ts +3 -3
  116. package/dist/renderables/progressBar.d.ts.map +1 -1
  117. package/dist/renderables/progressBar.js +9 -15
  118. package/dist/renderables/progressBar.js.map +1 -1
  119. package/dist/renderables/prompt.js +1 -1
  120. package/dist/renderables/prompt.js.map +1 -1
  121. package/dist/renderables/rule.d.ts +1 -1
  122. package/dist/renderables/rule.d.ts.map +1 -1
  123. package/dist/renderables/rule.js +5 -10
  124. package/dist/renderables/rule.js.map +1 -1
  125. package/dist/renderables/spinner.d.ts +2 -2
  126. package/dist/renderables/spinner.d.ts.map +1 -1
  127. package/dist/renderables/spinner.js +6 -11
  128. package/dist/renderables/spinner.js.map +1 -1
  129. package/dist/renderables/status.d.ts.map +1 -1
  130. package/dist/renderables/status.js +5 -11
  131. package/dist/renderables/status.js.map +1 -1
  132. package/dist/renderables/table.d.ts +90 -16
  133. package/dist/renderables/table.d.ts.map +1 -1
  134. package/dist/renderables/table.js +481 -223
  135. package/dist/renderables/table.js.map +1 -1
  136. package/dist/renderables/traceback.d.ts +7 -3
  137. package/dist/renderables/traceback.d.ts.map +1 -1
  138. package/dist/renderables/traceback.js +15 -18
  139. package/dist/renderables/traceback.js.map +1 -1
  140. package/dist/renderables/tree.d.ts +29 -4
  141. package/dist/renderables/tree.d.ts.map +1 -1
  142. package/dist/renderables/tree.js +86 -33
  143. package/dist/renderables/tree.js.map +1 -1
  144. package/dist/template-bindings/color-funcs.d.ts +3 -3
  145. package/dist/template-bindings/color-funcs.js +3 -3
  146. package/dist/template-bindings/helpers.d.ts.map +1 -1
  147. package/dist/template-bindings/helpers.js +19 -1
  148. package/dist/template-bindings/helpers.js.map +1 -1
  149. package/dist/template-bindings/index.d.ts +6 -7
  150. package/dist/template-bindings/index.d.ts.map +1 -1
  151. package/dist/template-bindings/index.js +6 -7
  152. package/dist/template-bindings/index.js.map +1 -1
  153. package/dist/template-bindings/palette-funcs.d.ts +17 -5
  154. package/dist/template-bindings/palette-funcs.d.ts.map +1 -1
  155. package/dist/template-bindings/palette-funcs.js +69 -6
  156. package/dist/template-bindings/palette-funcs.js.map +1 -1
  157. package/dist/template-bindings/style-funcs.d.ts +1 -1
  158. package/dist/template-bindings/style-funcs.js +1 -1
  159. package/dist/themes/ramp.d.ts +84 -0
  160. package/dist/themes/ramp.d.ts.map +1 -0
  161. package/dist/themes/ramp.js +123 -0
  162. package/dist/themes/ramp.js.map +1 -0
  163. package/dist/widgets/dropdown.d.ts +1 -1
  164. package/dist/widgets/dropdown.js +1 -1
  165. package/dist/widgets/event-router.d.ts +3 -2
  166. package/dist/widgets/event-router.d.ts.map +1 -1
  167. package/dist/widgets/focus-manager.d.ts +2 -1
  168. package/dist/widgets/focus-manager.d.ts.map +1 -1
  169. package/dist/widgets/index.d.ts +3 -6
  170. package/dist/widgets/index.d.ts.map +1 -1
  171. package/dist/widgets/index.js +4 -3
  172. package/dist/widgets/index.js.map +1 -1
  173. package/dist/widgets/screen.d.ts +1 -1
  174. package/dist/widgets/screen.d.ts.map +1 -1
  175. package/dist/widgets/text-input.d.ts +2 -3
  176. package/dist/widgets/text-input.d.ts.map +1 -1
  177. package/dist/widgets/text-input.js +4 -12
  178. package/dist/widgets/text-input.js.map +1 -1
  179. package/dist/widgets/types.d.ts +1 -1
  180. package/dist/widgets/types.d.ts.map +1 -1
  181. package/dist/widgets/types.js.map +1 -1
  182. package/dist/widgets/widget-base.d.ts +2 -1
  183. package/dist/widgets/widget-base.d.ts.map +1 -1
  184. package/package.json +38 -6
  185. package/dist/renderables/json.d.ts.map +0 -1
  186. package/dist/renderables/json.js.map +0 -1
  187. package/dist/renderables/pretty.d.ts +0 -29
  188. package/dist/renderables/pretty.d.ts.map +0 -1
  189. package/dist/renderables/pretty.js +0 -141
  190. package/dist/renderables/pretty.js.map +0 -1
  191. package/dist/themes/paletteResolver.d.ts +0 -35
  192. package/dist/themes/paletteResolver.d.ts.map +0 -1
  193. package/dist/themes/paletteResolver.js +0 -88
  194. package/dist/themes/paletteResolver.js.map +0 -1
  195. package/dist/widgets/host-stream.d.ts.map +0 -1
  196. package/dist/widgets/host-stream.js.map +0 -1
  197. package/dist/widgets/terminal-host.d.ts.map +0 -1
  198. package/dist/widgets/terminal-host.js +0 -258
  199. package/dist/widgets/terminal-host.js.map +0 -1
  200. /package/dist/{widgets → host}/host-stream.d.ts +0 -0
  201. /package/dist/{widgets → host}/host-stream.js +0 -0
@@ -2,77 +2,94 @@
2
2
  * Console — the central orchestrator for rendering styled output to the terminal.
3
3
  */
4
4
  import { Segment } from "./segment.js";
5
- import { Style, NULL_STYLE, Theme } from "./style.js";
5
+ import { NULL_STYLE, DEFAULT_THEME } from "./style.js";
6
6
  import { resolveColorSystem } from "./color.js";
7
7
  import { RichText } from "./text.js";
8
- import { render as renderMarkup } from "./markup.js";
9
- import { ReprHighlighter } from "./highlighter.js";
8
+ import { renderMarkup } from "./markup.js";
9
+ import { Pretty } from "./pretty.js";
10
+ import { JSONRenderable } from "./json.js";
11
+ import { ReprHighlighter, NullHighlighter } from "./highlighter.js";
12
+ // [LAW:one-way-deps] exception: one of the two sanctioned upward edges out of
13
+ // `core/`, named in CLAUDE.md and pinned by `test/seam/layering.test.ts` — the
14
+ // orchestrator reaching down for `Rule`. `RuleOptions` rides the same edge
15
+ // rather than being restated here; see `rule()`.
10
16
  import { Rule } from "../renderables/rule.js";
11
17
  import { segmentsToString } from "./render.js";
12
18
  import { isRenderable } from "./protocol.js";
13
- function resolveStyle(style) {
14
- if (style === undefined)
15
- return NULL_STYLE;
16
- if (typeof style === "string")
17
- return Style.parse(style);
18
- return style;
19
- }
20
19
  // [LAW:single-enforcer] Color spec → ColorDepth resolution lives in
21
20
  // `resolveColorSystem`. This helper just normalizes the option shape (string |
22
21
  // enum | null) into the cached `_colorSystem` field. WINDOWS has no string
23
22
  // spec; callers reach it via the enum directly.
24
23
  //
25
- // [LAW:dataflow-not-control-flow] `isTTY` is forwarded unconditionally;
26
- // `resolveColorSystem` ignores it for non-`"auto"` specs. Caller must compute
27
- // the effective TTY status of the actual output target (stdout/stderr/file)
28
- // so `"auto"` detection doesn't accidentally consult `process.stdout.isTTY`
29
- // when the console is bound to a different stream.
30
- function resolveOptionColorSystem(spec, isTTY) {
24
+ // [LAW:dataflow-not-control-flow] `isTTY` and `env` are forwarded
25
+ // unconditionally; `resolveColorSystem` ignores them for non-`"auto"` specs.
26
+ // Passing both is what keeps detection inside the console's injected
27
+ // environment — left to its own defaults, `detectColorSystem` would consult
28
+ // the ambient `process.env` and `process.stdout.isTTY` even for a console
29
+ // bound to a different stream.
30
+ function resolveOptionColorSystem(spec, detect) {
31
31
  if (spec === null)
32
32
  return null;
33
33
  if (spec === undefined)
34
- return resolveColorSystem("auto", { isTTY });
34
+ return resolveColorSystem("auto", detect);
35
35
  if (typeof spec === "string")
36
- return resolveColorSystem(spec, { isTTY });
36
+ return resolveColorSystem(spec, detect);
37
37
  return spec;
38
38
  }
39
- // [LAW:single-enforcer] Effective TTY status of the console's output target
40
- // is computed once, here, from the options that determine the target. Mirrors
41
- // the `isTerminal` getter so the cached `_colorSystem` and runtime
42
- // `isTerminal` agree on what counts as a TTY.
43
- function effectiveIsTTY(options) {
39
+ // A host with an environment but no streams — what a browser looks like from
40
+ // here. Frozen so the shared instance cannot be mutated into a fake terminal.
41
+ const DETACHED_ENVIRONMENT = Object.freeze({
42
+ env: Object.freeze({}),
43
+ });
44
+ // [LAW:single-enforcer] The only read of the ambient `process` global in this
45
+ // module, and the reason every other function below takes its environment as
46
+ // an argument. `process` satisfies `ConsoleEnvironment` structurally, so the
47
+ // node path needs no adapter; the browser path degrades to a host that answers
48
+ // "no streams" rather than throwing at the reference.
49
+ function ambientEnvironment() {
50
+ return typeof process === "undefined" ? DETACHED_ENVIRONMENT : process;
51
+ }
52
+ // [LAW:one-source-of-truth] A console talks to exactly one stream, and every
53
+ // question it asks the host — are you a terminal, how wide are you, where do
54
+ // bytes go — is a question about *that* stream. Selecting it once, here, is
55
+ // what makes the three answers agree. When each site re-selected for itself,
56
+ // one of them (size) silently didn't, and a `Console({ stderr: true })` keyed
57
+ // its colour to stderr and its width to stdout.
58
+ function boundStream(environment, useStderr) {
59
+ return useStderr ? environment.stderr : environment.stdout;
60
+ }
61
+ // [LAW:single-enforcer] Effective TTY status of the console's output target is
62
+ // computed once, at construction, and cached — an explicit `file` is not a
63
+ // terminal, `forceTerminal` says it is regardless, and otherwise the bound
64
+ // stream answers. Every input is fixed at construction, so recomputing per
65
+ // read could only ever return the same answer twice.
66
+ function effectiveIsTTY(options, stream) {
44
67
  if (options?.forceTerminal)
45
68
  return true;
46
69
  if (options?.file)
47
70
  return false;
48
- if (typeof process === "undefined")
49
- return false;
50
- return (options?.stderr ? process.stderr : process.stdout)?.isTTY ?? false;
71
+ return stream?.isTTY ?? false;
51
72
  }
52
- function getTerminalSize() {
53
- if (typeof process !== "undefined") {
54
- const cols = process.env?.["COLUMNS"];
55
- const lines = process.env?.["LINES"];
56
- const w = cols ? parseInt(cols, 10) : (process.stdout?.columns ?? 80);
57
- const h = lines ? parseInt(lines, 10) : (process.stdout?.rows ?? 24);
58
- return { width: w || 80, height: h || 24 };
59
- }
60
- return { width: 80, height: 24 };
73
+ function terminalSize(environment, stream) {
74
+ const cols = environment.env["COLUMNS"];
75
+ const lines = environment.env["LINES"];
76
+ const w = cols ? parseInt(cols, 10) : (stream?.columns ?? 80);
77
+ const h = lines ? parseInt(lines, 10) : (stream?.rows ?? 24);
78
+ return { width: w || 80, height: h || 24 };
61
79
  }
62
80
  // [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.");
81
+ // provided, the console writes to the stream it is bound to — which a browser
82
+ // host does not have. Without this, the absence would surface as a `TypeError`
83
+ // deep inside `_write`. Centralizing it here keeps both consumers (`file`
84
+ // getter, `_write`) behaving identically — no second copy of the check to
85
+ // drift.
86
+ function defaultSink(stream) {
87
+ if (stream === undefined) {
88
+ throw new Error("Console: no `file` provided and the environment has no stream to " +
89
+ "write to (e.g. running in a browser). Pass `file: hostStream(host)` " +
90
+ "or any other ConsoleSink so output has somewhere to go.");
74
91
  }
75
- return useStderr ? process.stderr : process.stdout;
92
+ return stream;
76
93
  }
77
94
  // [LAW:dataflow-not-control-flow] Build one size-reading function at
78
95
  // construction time from whichever options the caller supplied. The width
@@ -82,10 +99,10 @@ function defaultSink(useStderr) {
82
99
  //
83
100
  // The all-static and mixed cases get *different* closures: when both
84
101
  // dimensions are fixed, the returned function is a constant — no
85
- // `getTerminalSize` call on every read, since neither value can change.
102
+ // `terminalSize` call on every read, since neither value can change.
86
103
  // When at least one dimension is dynamic, the closure consults
87
- // `getTerminalSize` to fill in the missing side.
88
- function resolveGetSize(options) {
104
+ // `terminalSize` to fill in the missing side.
105
+ function resolveGetSize(options, environment, stream) {
89
106
  if (options?.getSize)
90
107
  return options.getSize;
91
108
  const staticWidth = options?.width;
@@ -99,7 +116,7 @@ function resolveGetSize(options) {
99
116
  return () => fixed;
100
117
  }
101
118
  return () => {
102
- const term = getTerminalSize();
119
+ const term = terminalSize(environment, stream);
103
120
  return {
104
121
  width: staticWidth ?? term.width,
105
122
  height: staticHeight ?? term.height,
@@ -107,6 +124,27 @@ function resolveGetSize(options) {
107
124
  };
108
125
  }
109
126
  // --- Console ---
127
+ /** Shared because it is stateless: highlighting nothing has nothing to own. */
128
+ const NO_HIGHLIGHT = new NullHighlighter();
129
+ /**
130
+ * What `print` bounds a data argument by when the caller said nothing.
131
+ *
132
+ * `print` formats whatever it is handed, so it is the one place that has to
133
+ * assume nothing about the value's size, in any of the three ways a value can
134
+ * be large. Unbounded, `print(buffer)` emits a line per byte,
135
+ * `print(deeplyNested)` descends until the stack gives out, and a single
136
+ * response body assigned to a field arrives in full — each of them a debug line
137
+ * that costs megabytes or hangs the terminal. All three bounds announce
138
+ * themselves in the output (`... +N`, `{...}`, `+N` inside the quotes), so this
139
+ * truncates visibly and never silently. [LAW:no-silent-failure]
140
+ *
141
+ * `maxString` reaches only strings nested inside data; a string argument is
142
+ * printed by the arm above, where the caller asked for that string by name.
143
+ *
144
+ * A caller constructing a `Pretty` has seen their data and gets no defaults;
145
+ * these belong to the convenience path, not to the formatter.
146
+ */
147
+ const PRINT_DATA_BOUNDS = { maxLength: 100, maxDepth: 16, maxString: 1000 };
110
148
  export class Console {
111
149
  _colorSystem;
112
150
  // [LAW:one-source-of-truth] Size flows through a single function. Static
@@ -115,10 +153,13 @@ export class Console {
115
153
  // through `_getSize()` — no second path, no second source to drift.
116
154
  _getSize;
117
155
  _style;
118
- _forceTerminal;
156
+ _isTerminal;
119
157
  _forceInteractive;
120
158
  _file;
121
- _stderr;
159
+ // [LAW:one-source-of-truth] The resolved output stream, not the `stderr`
160
+ // flag that selected it. Storing the answer instead of the question is what
161
+ // stops `isTerminal`, `size`, and `file` from re-deriving it three ways.
162
+ _stream;
122
163
  _record;
123
164
  _markup;
124
165
  _highlight;
@@ -132,17 +173,24 @@ export class Console {
132
173
  // non-empty" — `string | null` makes that unrepresentable.
133
174
  _capture;
134
175
  constructor(options) {
135
- this._colorSystem = resolveOptionColorSystem(options?.colorSystem, effectiveIsTTY(options));
136
- this._getSize = resolveGetSize(options);
137
- this._style = resolveStyle(options?.style);
138
- this._forceTerminal = options?.forceTerminal ?? false;
176
+ const environment = options?.environment ?? ambientEnvironment();
177
+ const stream = boundStream(environment, options?.stderr ?? false);
178
+ this._stream = stream;
179
+ this._isTerminal = effectiveIsTTY(options, stream);
180
+ this._colorSystem = resolveOptionColorSystem(options?.colorSystem, {
181
+ isTTY: this._isTerminal,
182
+ env: environment.env,
183
+ });
184
+ this._getSize = resolveGetSize(options, environment, stream);
185
+ // [LAW:no-ambient-temporal-coupling] The theme is assigned before the
186
+ // style, because the console's own style may be one of the theme's names.
187
+ this._theme = options?.theme ?? DEFAULT_THEME;
188
+ this._style = this._theme.resolve(options?.style ?? NULL_STYLE);
139
189
  this._forceInteractive = options?.forceInteractive;
140
190
  this._file = options?.file;
141
- this._stderr = options?.stderr ?? false;
142
191
  this._record = options?.record ?? false;
143
192
  this._markup = options?.markup !== false;
144
193
  this._highlight = options?.highlight !== false;
145
- this._theme = options?.theme ?? new Theme();
146
194
  this._highlighter = options?.highlighter ?? new ReprHighlighter();
147
195
  this._recorded = [];
148
196
  this._capture = null;
@@ -161,14 +209,7 @@ export class Console {
161
209
  return "utf-8";
162
210
  }
163
211
  get isTerminal() {
164
- if (this._forceTerminal)
165
- return true;
166
- if (this._file)
167
- return false;
168
- if (typeof process !== "undefined") {
169
- return (this._stderr ? process.stderr : process.stdout)?.isTTY ?? false;
170
- }
171
- return false;
212
+ return this._isTerminal;
172
213
  }
173
214
  get isInteractive() {
174
215
  if (this._forceInteractive !== undefined)
@@ -179,14 +220,14 @@ export class Console {
179
220
  return this._colorSystem;
180
221
  }
181
222
  // [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
223
+ // explicit `file` wins, otherwise `defaultSink` returns the bound stream
224
+ // (or throws clearly when the environment has none). Exposed
184
225
  // so renderables that bypass the segment pipeline (e.g. Live's raw control
185
226
  // sequences) still write to the caller's configured stream. Return type is
186
227
  // the narrow `ConsoleSink` — Live (and any external consumer) only needs
187
228
  // `.write()`, so the type tells the truth about what the surface guarantees.
188
229
  get file() {
189
- return this._file ?? defaultSink(this._stderr);
230
+ return this._file ?? defaultSink(this._stream);
190
231
  }
191
232
  get theme() {
192
233
  return this._theme;
@@ -197,6 +238,7 @@ export class Console {
197
238
  isTerminal: this.isTerminal,
198
239
  encoding: this.encoding,
199
240
  asciiOnly: false,
241
+ theme: this._theme,
200
242
  };
201
243
  }
202
244
  // --- Print ---
@@ -204,12 +246,17 @@ export class Console {
204
246
  // Extract options from last arg if it's a PrintOptions
205
247
  let opts = {};
206
248
  let items;
249
+ // The trailing options object is only recognised when something precedes
250
+ // it. A lone object is data — `print({ style: "..." })` reads as a value to
251
+ // format, and treating it as options would emit an empty line, which is the
252
+ // one outcome this method must never produce. Nothing is given up: options
253
+ // configure the rendering of content, so a call carrying options and no
254
+ // content had nothing to render either way. [LAW:no-silent-failure]
207
255
  const lastArg = args[args.length - 1];
208
- if (args.length > 0 &&
256
+ if (args.length > 1 &&
209
257
  typeof lastArg === "object" &&
210
258
  lastArg !== null &&
211
259
  !isRenderable(lastArg) &&
212
- !(lastArg instanceof RichText) &&
213
260
  ("style" in lastArg || "justify" in lastArg || "markup" in lastArg ||
214
261
  "highlight" in lastArg || "overflow" in lastArg || "end" in lastArg ||
215
262
  "softWrap" in lastArg || "crop" in lastArg || "sep" in lastArg)) {
@@ -223,45 +270,62 @@ export class Console {
223
270
  const doHighlight = opts.highlight ?? this._highlight;
224
271
  const sep = opts.sep ?? " ";
225
272
  const end = opts.end ?? "\n";
226
- const printStyle = resolveStyle(opts.style);
273
+ const softWrap = opts.softWrap ?? false;
274
+ const printStyle = this._theme.resolve(opts.style ?? NULL_STYLE);
227
275
  // Convert items to renderables
228
276
  const renderables = [];
229
277
  for (let i = 0; i < items.length; i++) {
230
278
  if (i > 0 && sep) {
231
279
  renderables.push(new RichText(sep, { end: "" }));
232
280
  }
281
+ // Three arms, and they are the whole domain. A renderable draws itself.
282
+ // A string is the only kind of argument that can *contain* markup, so it
283
+ // is the only kind the markup dialect is applied to. Everything else is
284
+ // data, and `Pretty` is the single authority on how a JavaScript value
285
+ // displays — `String(value)` was a second, weaker one that answered
286
+ // `[object Object]` for every object and let the markup parser eat it.
287
+ // [LAW:one-source-of-truth]
233
288
  const item = items[i];
234
289
  if (isRenderable(item)) {
235
290
  renderables.push(item);
236
291
  }
237
- else if (item instanceof RichText) {
238
- renderables.push(item);
239
- }
240
- else {
241
- const text = String(item);
242
- let richText;
243
- if (doMarkup) {
244
- richText = renderMarkup(text);
245
- }
246
- else {
247
- richText = new RichText(text);
248
- }
292
+ else if (typeof item === "string") {
293
+ const richText = doMarkup ? renderMarkup(item) : new RichText(item);
249
294
  richText.end = "";
250
295
  if (doHighlight) {
251
296
  this._highlighter.highlight(richText);
252
297
  }
253
298
  renderables.push(richText);
254
299
  }
300
+ else {
301
+ // The highlighter travels with the value. `highlight` and a custom
302
+ // `highlighter` are console-wide settings, so they have to reach a
303
+ // formatted object the same way they reach a printed string; a `Pretty`
304
+ // left to its own default would outrank both. [LAW:dataflow-not-control-flow]
305
+ // the disabled case is an identity highlighter, not a skipped call.
306
+ // Indent guides are styling too, and travel with the same decision —
307
+ // the console owns what `highlight` means for everything it emits,
308
+ // rather than `Pretty` inferring it back out of the highlighter.
309
+ renderables.push(new Pretty(item, {
310
+ ...PRINT_DATA_BOUNDS,
311
+ highlighter: doHighlight ? this._highlighter : NO_HIGHLIGHT,
312
+ indentGuides: doHighlight,
313
+ }));
314
+ }
255
315
  }
256
316
  // Render all items
257
317
  const allSegments = [];
318
+ // [LAW:parse-dont-validate] `"ignore"` is not a way of cutting a line but
319
+ // the absence of an edge to cut at: no break, and nothing cut at the width.
320
+ // That is what `noWrap` already means to `RichText`, so it crosses into the
321
+ // render as `noWrap`, and `overflow` carries only the methods a renderable
322
+ // applies. Soft wrap is the same request — the reference defaults it to
323
+ // `"ignore"` — which is why the two arrive at one field.
258
324
  const renderOpts = {
259
- maxWidth: this.width,
260
- isTerminal: this.isTerminal,
261
- encoding: this.encoding,
325
+ ...this.options,
262
326
  justify: opts.justify === "default" ? undefined : opts.justify,
263
327
  overflow: opts.overflow === "ignore" ? undefined : opts.overflow,
264
- noWrap: opts.softWrap,
328
+ noWrap: softWrap || opts.overflow === "ignore",
265
329
  };
266
330
  for (const renderable of renderables) {
267
331
  allSegments.push(...renderable.render(renderOpts));
@@ -278,11 +342,17 @@ export class Console {
278
342
  // every other emitted text so it survives recording — otherwise
279
343
  // `exportText` and `exportHtml` would join consecutive prints onto a
280
344
  // single line. [LAW:single-enforcer]
281
- this._writeSegments(final);
282
345
  // The common default end is "\n" — reuse Segment's cached newline rather
283
346
  // than allocating one per print; only a non-default end needs a fresh one.
284
- if (end)
285
- this._writeSegments([end === "\n" ? Segment.line() : new Segment(end)]);
347
+ const terminator = end === "\n" ? Segment.line() : new Segment(end);
348
+ // Crop last, and crop the line-end with the rest: in the reference `end` is
349
+ // the tail of the printed line, so a line cut at the edge loses it too.
350
+ // Soft wrap turns cropping off whatever `crop` says, because a line it left
351
+ // whole is meant to reach the terminal whole. [LAW:dataflow-not-control-flow]
352
+ // Not cropping is an unbounded width rather than a skipped step — the same
353
+ // spelling `RichText` uses for `noWrap`.
354
+ const cropWidth = !softWrap && (opts.crop ?? true) ? this.width : Infinity;
355
+ this._writeSegments([...Segment.cropLines([...final, terminator], cropWidth)]);
286
356
  }
287
357
  log(...args) {
288
358
  // Simple log implementation — adds timestamp
@@ -292,21 +362,23 @@ export class Console {
292
362
  timeText.stylize("log.time");
293
363
  this.print(timeText, ...args);
294
364
  }
365
+ // [LAW:one-source-of-truth] `RuleOptions` is `Rule`'s, not a restatement of
366
+ // it. `console.ts` used to declare its own copy and field-by-field forward
367
+ // into this constructor, which made a second map of one shape — identical
368
+ // then, free to drift the moment `Rule` grew an option.
295
369
  rule(title, options) {
296
- const rule = new Rule(title, {
297
- characters: options?.characters,
298
- align: options?.align,
299
- style: options?.style,
300
- });
301
- const segments = [...rule.render(this.options)];
370
+ const segments = [...new Rule(title, options).render(this.options)];
302
371
  this._writeSegments(segments);
303
372
  }
373
+ // [LAW:one-source-of-truth] `JSONRenderable` is the one formatter for JSON and
374
+ // `JSONOptions` is its option set; this method only picks the constructor. It
375
+ // prints with soft wrap, as the reference does, so a line wider than the
376
+ // console reaches the terminal whole and the output stays valid JSON.
304
377
  printJson(json, options) {
305
- // Lazy import to avoid circular deps
306
- const data = typeof json === "string" ? JSON.parse(json) : json;
307
- const formatted = JSON.stringify(data, options?.sortKeys ? Object.keys(data).sort().reduce((r, k) => { r[k] = data[k]; return r; }, {}) : undefined, options?.indent ?? 2);
308
- const text = new RichText(formatted, { end: "" });
309
- this.print(text);
378
+ const renderable = typeof json === "string"
379
+ ? JSONRenderable.fromString(json, options)
380
+ : JSONRenderable.fromData(json, options);
381
+ this.print(renderable, { softWrap: true });
310
382
  }
311
383
  // --- Capture ---
312
384
  // [LAW:one-source-of-truth] Redirect semantics match Python Rich's
@@ -406,7 +478,7 @@ export class Console {
406
478
  this._capture += text;
407
479
  return;
408
480
  }
409
- const target = this._file ?? defaultSink(this._stderr);
481
+ const target = this._file ?? defaultSink(this._stream);
410
482
  target.write(text);
411
483
  }
412
484
  }
@@ -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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"}
@@ -24,7 +24,8 @@ export declare class ReprHighlighter extends RegexHighlighter {
24
24
  }
25
25
  export declare class JSONHighlighter extends RegexHighlighter {
26
26
  static baseStyle: string;
27
- static highlights: RegExp[];
27
+ static highlights: string[];
28
+ highlight(text: RichText): void;
28
29
  }
29
30
  export declare class ISO8601Highlighter extends RegexHighlighter {
30
31
  static baseStyle: string;
@@ -1 +1 @@
1
- {"version":3,"file":"highlighter.d.ts","sourceRoot":"","sources":["../../src/core/highlighter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAExC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;CAK9B;AAID,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAGjC;AAID,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAM;IAC5C;;;qEAGiE;IACjE,MAAM,CAAC,SAAS,SAAM;IAEtB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CAuChC;AAKD,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,OAAgB,SAAS,SAAW;IACpC,OAAgB,UAAU,WAaxB;CACH;AAID,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,OAAgB,SAAS,SAAW;IACpC,OAAgB,UAAU,WAOxB;CACH;AAID,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,OAAgB,SAAS,SAAc;IACvC,OAAgB,UAAU,WAIxB;CACH"}
1
+ {"version":3,"file":"highlighter.d.ts","sourceRoot":"","sources":["../../src/core/highlighter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAExC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;CAK9B;AAID,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAGjC;AAID,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAM;IAC5C;;;qEAGiE;IACjE,MAAM,CAAC,SAAS,SAAM;IAEtB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CAuChC;AAKD,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,OAAgB,SAAS,SAAW;IACpC,OAAgB,UAAU,WAaxB;CACH;AASD,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,OAAgB,SAAS,SAAW;IAIpC,OAAgB,UAAU,WAOxB;IAOO,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CASzC;AAID,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,OAAgB,SAAS,SAAc;IACvC,OAAgB,UAAU,WAIxB;CACH"}
@@ -80,16 +80,38 @@ export class ReprHighlighter extends RegexHighlighter {
80
80
  ];
81
81
  }
82
82
  // --- JSONHighlighter ---
83
+ // A JSON string as Python Rich 9d8f9a3 matches one, `b` bytes prefix included:
84
+ // an opening quote with no backslash or word character before it, through the
85
+ // first quote with no backslash before it, so an escaped quote stays inside.
86
+ const JSON_STR = String.raw `(?<![\\\w])(?<str>b?".*?(?<!\\)")`;
83
87
  export class JSONHighlighter extends RegexHighlighter {
84
88
  static baseStyle = "json.";
89
+ // [LAW:dataflow-not-control-flow] One alternation, scanned once, as Rich's
90
+ // `_combine_regex` joins it. A token claims its characters where the scan
91
+ // meets it, so the `true` and `12` inside `"true 12"` belong to the string.
85
92
  static highlights = [
86
- /(?<key>"[^"]*")\s*:/g,
87
- /:\s*(?<str>"[^"]*")/g,
88
- /(?<bool>\btrue\b|\bfalse\b)/g,
89
- /(?<null>\bnull\b)/g,
90
- /(?<number>-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)/g,
91
- /(?<brace>[{}[\]])/g,
93
+ [
94
+ String.raw `(?<brace>[\{\[\(\)\]\}])`,
95
+ String.raw `\b(?<bool_true>true)\b|\b(?<bool_false>false)\b|\b(?<null>null)\b`,
96
+ String.raw `(?<number>(?<!\w)\-?[0-9]+\.?[0-9]*(e[\-\+]?\d+?)?\b|0x[0-9a-fA-F]*)`,
97
+ JSON_STR,
98
+ ].join("|"),
92
99
  ];
100
+ // A string followed by a colon is also a key. Its `json.key` span comes after
101
+ // its `json.str` span, so the key style lands on top. Each string is found on
102
+ // its own and then checked for a colon. One `string(?=:)` pattern would get
103
+ // this wrong: its lazy body can stretch past a value's closing quote to the
104
+ // next key's, marking `"b", "c"` in `{"a": "b", "c": 1}` as one key.
105
+ highlight(text) {
106
+ super.highlight(text);
107
+ const colon = /[ \n\r\t]*:/y;
108
+ for (const { index, 0: str } of text.plain.matchAll(new RegExp(JSON_STR, "g"))) {
109
+ const end = index + str.length;
110
+ colon.lastIndex = end;
111
+ if (colon.test(text.plain))
112
+ text.stylize("json.key", index, end);
113
+ }
114
+ }
93
115
  }
94
116
  // --- ISO8601Highlighter ---
95
117
  export class ISO8601Highlighter extends RegexHighlighter {
@@ -1 +1 @@
1
- {"version":3,"file":"highlighter.js","sourceRoot":"","sources":["../../src/core/highlighter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"highlighter.js","sourceRoot":"","sources":["../../src/core/highlighter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,eAAe;AAEf,MAAM,OAAgB,WAAW;IAG/B,IAAI,CAAC,KAAa;QAChB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,0BAA0B;AAE1B,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9C,SAAS,CAAC,KAAe;QACvB,QAAQ;IACV,CAAC;CACF;AAED,2BAA2B;AAE3B,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,CAAC,UAAU,GAAwB,EAAE,CAAC;IAC5C;;;qEAGiE;IACjE,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;IAEtB,SAAS,CAAC,IAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAsC,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,mDAAmD;QACnD,6DAA6D;QAC7D,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE5C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,MAAM,EAAE,GACN,OAAO,YAAY,MAAM;gBACvB,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;gBAC/F,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAE/B,IAAI,KAA6B,CAAC;YAClC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC9C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,EAAE,CAAC,SAAS,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjB,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;wBACnE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;4BAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;4BAC5D,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;gCACpB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;gCACvC,MAAM,KAAK,GAAG,WAAW;oCACvB,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,EAAE;oCAC5B,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC;gCAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gCACtD,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;4BAC9C,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;;AAGH,0BAA0B;AAE1B,wFAAwF;AACxF,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IACnD,MAAM,CAAU,SAAS,GAAG,OAAO,CAAC;IACpC,MAAM,CAAU,UAAU,GAAG;QAC3B,OAAO;QACP,gCAAgC;QAChC,QAAQ;QACR,yEAAyE;QACzE,iBAAiB;QACjB,0BAA0B;QAC1B,WAAW;QACX,8BAA8B;QAC9B,sBAAsB;QACtB,2CAA2C;QAC3C,gCAAgC;QAChC,yEAAyE;KAC1E,CAAC;;AAGJ,0BAA0B;AAE1B,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA,mCAAmC,CAAC;AAE/D,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IACnD,MAAM,CAAU,SAAS,GAAG,OAAO,CAAC;IACpC,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,CAAU,UAAU,GAAG;QAC3B;YACE,MAAM,CAAC,GAAG,CAAA,0BAA0B;YACpC,MAAM,CAAC,GAAG,CAAA,mEAAmE;YAC7E,MAAM,CAAC,GAAG,CAAA,sEAAsE;YAChF,QAAQ;SACT,CAAC,IAAI,CAAC,GAAG,CAAC;KACZ,CAAC;IAEF,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,qEAAqE;IAC5D,SAAS,CAAC,IAAc;QAC/B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,cAAc,CAAC;QAC7B,KAAK,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/E,MAAM,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;YACtB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;;AAGH,6BAA6B;AAE7B,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IACtD,MAAM,CAAU,SAAS,GAAG,UAAU,CAAC;IACvC,MAAM,CAAU,UAAU,GAAG;QAC3B,6BAA6B;QAC7B,uCAAuC;QACvC,iCAAiC;KAClC,CAAC"}
@@ -1,9 +1,14 @@
1
1
  /**
2
2
  * JSON — renders JSON data with syntax highlighting and pretty-printing.
3
+ *
4
+ * Lives in `core/` for the reason `pretty.ts` does, argued in its header: it
5
+ * turns foreign input into `RichText`, composes no other renderable, and
6
+ * imports core primitives only. `Console.printJson` delegates here, so this is
7
+ * where the console can reach it without an upward edge. [LAW:one-way-deps]
3
8
  */
4
- import { Segment } from "../core/segment.js";
5
- import { RichText } from "../core/text.js";
6
- import type { Renderable, Measurable, RenderOptions } from "../core/protocol.js";
9
+ import { Segment } from "./segment.js";
10
+ import { RichText } from "./text.js";
11
+ import type { Renderable, Measurable, RenderOptions } from "./protocol.js";
7
12
  export interface JSONOptions {
8
13
  indent?: number;
9
14
  sortKeys?: boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/core/json.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACd,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,qBAAa,cAAe,YAAW,UAAU,EAAE,UAAU;IAC3D,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAExB,OAAO;IAIP,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc;IAS5E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc;IA4BpE,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;IAIlD,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAGtE"}
@@ -1,8 +1,13 @@
1
1
  /**
2
2
  * JSON — renders JSON data with syntax highlighting and pretty-printing.
3
+ *
4
+ * Lives in `core/` for the reason `pretty.ts` does, argued in its header: it
5
+ * turns foreign input into `RichText`, composes no other renderable, and
6
+ * imports core primitives only. `Console.printJson` delegates here, so this is
7
+ * where the console can reach it without an upward edge. [LAW:one-way-deps]
3
8
  */
4
- import { RichText } from "../core/text.js";
5
- import { JSONHighlighter } from "../core/highlighter.js";
9
+ import { RichText } from "./text.js";
10
+ import { JSONHighlighter } from "./highlighter.js";
6
11
  const highlighter = new JSONHighlighter();
7
12
  export class JSONRenderable {
8
13
  text;