@nuvin/ink 7.7.0-alpha → 7.7.2-alpha

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.
@@ -16,6 +16,9 @@ export type PreparedSeekRow = {
16
16
  export type SeekPreparer = {
17
17
  prepareFrame(text: string, columns: number): readonly PreparedSeekRow[];
18
18
  };
19
+ export declare class SeekRowContentError extends Error {
20
+ name: string;
21
+ }
19
22
  export declare function prepareSeekRow(row: string, columns: number): PreparedSeekRow;
20
23
  export declare function createSeekPreparer(): SeekPreparer;
21
24
  export declare function encodeSeekRow(prepared: PreparedSeekRow, row: number, columns: number): string;
@@ -1,5 +1,7 @@
1
1
  import stringWidth from 'string-width';
2
2
  import { readTerminalControl } from './terminal-control.js';
3
+ import { tokenizeAnsi } from './ansi-tokenizer.js';
4
+ import sanitizeAnsi from './sanitize-ansi.js';
3
5
  const segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });
4
6
  const sgrBody = /^[\d:;]*m$/;
5
7
  const csi = '\u001B[';
@@ -15,8 +17,11 @@ const isAscii = (text) => {
15
17
  }
16
18
  return true;
17
19
  };
20
+ export class SeekRowContentError extends Error {
21
+ name = 'SeekRowContentError';
22
+ }
18
23
  const fail = (message) => {
19
- throw new Error(message);
24
+ throw new SeekRowContentError(message);
20
25
  };
21
26
  const isSgr = (raw) => {
22
27
  const start = raw.charCodeAt(0) === 0x9b ? 1 : 2;
@@ -61,7 +66,7 @@ const tokenize = (row) => {
61
66
  if (isControlIntroducer(code)) {
62
67
  const control = readTerminalControl(row, index);
63
68
  if (control === undefined) {
64
- throw new Error('Malformed terminal control in seek row');
69
+ throw new SeekRowContentError('Malformed terminal control in seek row');
65
70
  }
66
71
  const allowedSgr = control.kind === 'csi' && isSgr(control.raw);
67
72
  const allowedLink = control.kind === 'osc' && isOsc8(control.raw);
@@ -222,6 +227,25 @@ const materialize = (parsed, columns, entrySgr, entryLink) => {
222
227
  export function prepareSeekRow(row, columns) {
223
228
  return materialize(parseRow(row), columns, '', '');
224
229
  }
230
+ // A late transform can still introduce invalid row content after layout.
231
+ // Recover only content validation errors, never terminal I/O or other failures.
232
+ const parseFrameRow = (row) => {
233
+ try {
234
+ return parseRow(row);
235
+ }
236
+ catch (error) {
237
+ if (!(error instanceof SeekRowContentError)) {
238
+ throw error;
239
+ }
240
+ const plain = tokenizeAnsi(sanitizeAnsi(row))
241
+ .filter(token => token.type === 'text')
242
+ .map(token => token.value)
243
+ .join('')
244
+ .replaceAll('\n', ' ')
245
+ .replaceAll('\t', ' ');
246
+ return { ...parseRow(plain), recovered: true };
247
+ }
248
+ };
225
249
  export function createSeekPreparer() {
226
250
  let cache = new Map();
227
251
  return {
@@ -232,13 +256,36 @@ export function createSeekPreparer() {
232
256
  let sgr = '';
233
257
  let link = '';
234
258
  for (const row of rows) {
235
- let parsed = nextCache.get(row) ?? cache.get(row);
236
- if (parsed === undefined) {
237
- parsed = parseRow(row);
259
+ let cached = nextCache.get(row) ?? cache.get(row);
260
+ cached ??= { parsed: parseFrameRow(row) };
261
+ nextCache.set(row, cached);
262
+ const { parsed } = cached;
263
+ // Recovery discards the entire row's rendition, including closes and
264
+ // resets. Drop inherited state too so it cannot leak into later rows.
265
+ if (parsed.recovered) {
266
+ sgr = '';
267
+ link = '';
268
+ }
269
+ // Most frames change only a few rows. Reuse clipping, identity and
270
+ // exit rendition too; source-only parsing reuse still walks every cell.
271
+ let { materialized } = cached;
272
+ if (materialized?.columns !== columns ||
273
+ materialized.entrySgr !== sgr ||
274
+ materialized.entryLink !== link) {
275
+ const exit = applyRendition(parsed.items, sgr, link);
276
+ materialized = {
277
+ columns,
278
+ entrySgr: sgr,
279
+ entryLink: link,
280
+ row: materialize(parsed, columns, sgr, link),
281
+ exitSgr: exit.sgr,
282
+ exitLink: exit.link,
283
+ };
284
+ cached.materialized = materialized;
238
285
  }
239
- nextCache.set(row, parsed);
240
- prepared.push(materialize(parsed, columns, sgr, link));
241
- ({ sgr, link } = applyRendition(parsed.items, sgr, link));
286
+ prepared.push(materialized.row);
287
+ sgr = materialized.exitSgr;
288
+ link = materialized.exitLink;
242
289
  }
243
290
  cache = nextCache;
244
291
  return prepared;
@@ -1 +1 @@
1
- {"version":3,"file":"allocated-seek.js","sourceRoot":"","sources":["../src/allocated-seek.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"allocated-seek.js","sourceRoot":"","sources":["../src/allocated-seek.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,16 @@ const recordSurfaceWrite = (node, cellWidth) => {
15
15
  node.internal_lastSurfaceCellCount =
16
16
  (node.internal_lastSurfaceCellCount ?? 0) + cellWidth;
17
17
  };
18
+ const findAncestorBackgroundColor = (node) => {
19
+ let current = node.parentNode;
20
+ while (current) {
21
+ if (current.style.backgroundColor) {
22
+ return current.style.backgroundColor;
23
+ }
24
+ current = current.parentNode;
25
+ }
26
+ return undefined;
27
+ };
18
28
  /* eslint-disable max-params -- visibleRect and stylePiece edge args */
19
29
  const renderBorder = (x, y, node, output, visibleRect) => {
20
30
  const element = node;
@@ -28,18 +38,19 @@ const renderBorder = (x, y, node, output, visibleRect) => {
28
38
  const bottomBorderColor = node.style.borderBottomColor ?? node.style.borderColor;
29
39
  const leftBorderColor = node.style.borderLeftColor ?? node.style.borderColor;
30
40
  const rightBorderColor = node.style.borderRightColor ?? node.style.borderColor;
41
+ const fallbackBackgroundColor = node.style.backgroundColor ?? findAncestorBackgroundColor(node);
31
42
  const topBorderBackgroundColor = node.style.borderTopBackgroundColor ??
32
43
  node.style.borderBackgroundColor ??
33
- node.style.backgroundColor;
44
+ fallbackBackgroundColor;
34
45
  const bottomBorderBackgroundColor = node.style.borderBottomBackgroundColor ??
35
46
  node.style.borderBackgroundColor ??
36
- node.style.backgroundColor;
47
+ fallbackBackgroundColor;
37
48
  const leftBorderBackgroundColor = node.style.borderLeftBackgroundColor ??
38
49
  node.style.borderBackgroundColor ??
39
- node.style.backgroundColor;
50
+ fallbackBackgroundColor;
40
51
  const rightBorderBackgroundColor = node.style.borderRightBackgroundColor ??
41
52
  node.style.borderBackgroundColor ??
42
- node.style.backgroundColor;
53
+ fallbackBackgroundColor;
43
54
  const dimTopBorderColor = node.style.borderTopDimColor ?? node.style.borderDimColor;
44
55
  const dimBottomBorderColor = node.style.borderBottomDimColor ?? node.style.borderDimColor;
45
56
  const dimLeftBorderColor = node.style.borderLeftDimColor ?? node.style.borderDimColor;
@@ -1 +1 @@
1
- {"version":3,"file":"render-border.js","sourceRoot":"","sources":["../src/render-border.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-border.js","sourceRoot":"","sources":["../src/render-border.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,30 @@
1
1
  import { hasAnsiControlCharacters, tokenizeAnsi } from './ansi-tokenizer.js';
2
2
  const sgrParametersRegex = /^[\d:;]*$/;
3
+ // These are text controls, not ANSI sequence delimiters or layout whitespace.
4
+ /* eslint-disable no-control-regex */
5
+ const unsupportedTextControls = /[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g;
6
+ /* eslint-enable no-control-regex */
7
+ const normalizeText = (text) => text
8
+ .toWellFormed()
9
+ .replaceAll(/\r\n?/g, '\n')
10
+ .replaceAll(unsupportedTextControls, '');
3
11
  // Strip ANSI escape sequences that would conflict with Ink's layout.
4
12
  // Preserved: SGR sequences (colors, bold, etc. - end with 'm') and
5
- // OSC sequences (hyperlinks, etc. - ESC ] or C1 OSC).
13
+ // OSC 8 hyperlinks. LF and tabs are retained for layout/tab expansion.
6
14
  // Stripped: cursor movement, screen clearing, and other control sequences.
7
15
  const sanitizeAnsi = (text) => {
8
16
  if (!hasAnsiControlCharacters(text)) {
9
- return text;
17
+ return normalizeText(text);
10
18
  }
11
19
  let output = '';
12
20
  for (const token of tokenizeAnsi(text)) {
13
- if (token.type === 'text' || token.type === 'osc') {
21
+ if (token.type === 'text') {
22
+ output += normalizeText(token.value);
23
+ continue;
24
+ }
25
+ if (token.type === 'osc' &&
26
+ (token.value.startsWith('\u001B]8;') ||
27
+ token.value.startsWith('\u009D8;'))) {
14
28
  output += token.value;
15
29
  continue;
16
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize-ansi.js","sourceRoot":"","sources":["../src/sanitize-ansi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAE,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAE3E,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAEvC,qEAAqE;AACrE,mEAAmE;AACnE,sDAAsD;AACtD,2EAA2E;AAC3E,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE;IAC7C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;YACtB,SAAS;QACV,CAAC;QAED,IACC,KAAK,CAAC,IAAI,KAAK,KAAK;YACpB,KAAK,CAAC,cAAc,KAAK,GAAG;YAC5B,KAAK,CAAC,kBAAkB,KAAK,EAAE;YAC/B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAC7C,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;QACvB,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"sanitize-ansi.js","sourceRoot":"","sources":["../src/sanitize-ansi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAE,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAE3E,MAAM,kBAAkB,GAAG,WAAW,CAAC;AACvC,8EAA8E;AAC9E,qCAAqC;AACrC,MAAM,uBAAuB,GAC5B,iDAAiD,CAAC;AACnD,oCAAoC;AAEpC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAC7C,IAA8C;KAC7C,YAAY,EAAE;KACd,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;KAC1B,UAAU,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;AAE3C,qEAAqE;AACrE,mEAAmE;AACnE,uEAAuE;AACvE,2EAA2E;AAC3E,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE;IAC7C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,SAAS;QACV,CAAC;QAED,IACC,KAAK,CAAC,IAAI,KAAK,KAAK;YACpB,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;gBACnC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EACnC,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;YACtB,SAAS;QACV,CAAC;QAED,IACC,KAAK,CAAC,IAAI,KAAK,KAAK;YACpB,KAAK,CAAC,cAAc,KAAK,GAAG;YAC5B,KAAK,CAAC,kBAAkB,KAAK,EAAE;YAC/B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAC7C,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;QACvB,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuvin/ink",
3
- "version": "7.7.0-alpha",
3
+ "version": "7.7.2-alpha",
4
4
  "description": "React for CLI",
5
5
  "license": "MIT",
6
6
  "repository": "marschhuynh/ink",
package/readme.md CHANGED
@@ -3097,6 +3097,10 @@ Seeking can restore allocated cursor positions and overwrite excess paint. It ca
3097
3097
 
3098
3098
  Seek frames skip the existing scroll-region shift optimization. Unchanged rows are still skipped. Extra absolute seeks, styled prefills, and full-viewport resize repaints are intentional costs, not a performance claim.
3099
3099
 
3100
+ Text sanitization removes unsupported terminal controls before layout, normalizes CRLF/CR to LF, and replaces malformed UTF-16. Styling and OSC 8 hyperlinks are preserved; tabs retain the existing expansion to spaces. If invalid content still reaches a seek frame (for example, from a late transform), only that row falls back to plain text and inherited styling/link state is reset. The next frame can render normally. Terminal write failures still surface through `waitUntilExit()`.
3101
+
3102
+ Seek preparation caches both parsed and prepared rows for the current frame. Prepared rows are reused only when the source, width, entry styling, and hyperlink state match. The cache retains at most one prepared variant per distinct source row, dropping rows absent from the next frame. Run `node --import=tsx benchmark/seek-preparation.ts` after building to measure sparse and full-frame preparation separately.
3103
+
3100
3104
  Before restoring a fullscreen seek frame after ordinary or Static output, Ink advances a blank viewport so that output can move into primary-screen history rather than being immediately overwritten at home. That conservative first version may add extra blank lines to primary-screen history around external output.
3101
3105
 
3102
3106
  Physical terminal acceptance for this fallback is still pending. Completing source tests does not qualify a terminal. A failed OSC 66 probe does not by itself establish seek support.