@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.
- package/build/allocated-seek.d.ts +3 -0
- package/build/allocated-seek.js +55 -8
- package/build/allocated-seek.js.map +1 -1
- package/build/render-border.js +15 -4
- package/build/render-border.js.map +1 -1
- package/build/sanitize-ansi.js +17 -3
- package/build/sanitize-ansi.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +4 -0
|
@@ -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;
|
package/build/allocated-seek.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
236
|
-
|
|
237
|
-
|
|
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
|
-
|
|
240
|
-
|
|
241
|
-
|
|
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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"}
|
package/build/render-border.js
CHANGED
|
@@ -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
|
-
|
|
44
|
+
fallbackBackgroundColor;
|
|
34
45
|
const bottomBorderBackgroundColor = node.style.borderBottomBackgroundColor ??
|
|
35
46
|
node.style.borderBackgroundColor ??
|
|
36
|
-
|
|
47
|
+
fallbackBackgroundColor;
|
|
37
48
|
const leftBorderBackgroundColor = node.style.borderLeftBackgroundColor ??
|
|
38
49
|
node.style.borderBackgroundColor ??
|
|
39
|
-
|
|
50
|
+
fallbackBackgroundColor;
|
|
40
51
|
const rightBorderBackgroundColor = node.style.borderRightBackgroundColor ??
|
|
41
52
|
node.style.borderBackgroundColor ??
|
|
42
|
-
|
|
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":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,eAAe,CAAC;AAIrC,MAAM,UAAU,GAAG,CAClB,OAAe,EACf,EAAW,EACX,EAAW,EACX,GAAa,EACJ,EAAE;IACX,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;IACjD,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;IAC5C,IAAI,GAAG,EAAE,CAAC;QACT,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAAgB,EAAE,SAAiB,EAAQ,EAAE;IACxE,IAAI,CAAC,8BAA8B;QAClC,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,6BAA6B;QACjC,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;AACxD,CAAC,CAAC;AAEF,uEAAuE;AACvE,MAAM,YAAY,GAAG,CACpB,CAAS,EACT,CAAS,EACT,IAAa,EACb,MAAc,EACd,WAAkB,EACX,EAAE;IACT,MAAM,OAAO,GAAG,IAAkB,CAAC;IACnC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAS,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAS,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,GAAG,GACR,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ;YACzC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAClC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAE3B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3E,MAAM,iBAAiB,GACtB,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACxD,MAAM,eAAe,GACpB,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACtD,MAAM,gBAAgB,GACrB,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAEvD,MAAM,
|
|
1
|
+
{"version":3,"file":"render-border.js","sourceRoot":"","sources":["../src/render-border.ts"],"names":[],"mappings":"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"}
|
package/build/sanitize-ansi.js
CHANGED
|
@@ -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
|
|
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'
|
|
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;
|
|
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
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.
|