@nuvin/ink 7.6.0-alpha → 7.7.0-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.
@@ -2,6 +2,8 @@ import process from 'node:process';
2
2
  import ansiEscapes from 'ansi-escapes';
3
3
  import cliCursor from 'cli-cursor';
4
4
  import { cursorPositionChanged, getOutputCursorRow, buildCursorSuffix, buildCursorOnlySequence, buildReturnToBottomPrefix, hideCursorEscape, showCursorEscape, } from './cursor-helpers.js';
5
+ import { createSeekPreparer } from './allocated-seek.js';
6
+ import { isSeekViewport, clampSeekCursor, buildSeekCursorSequence, encodeSeekRows, wrapSeekPaint, decawmOn, eraseDisplayHome, } from './terminal-paint.js';
5
7
  // Count visible lines in a string, ignoring the trailing empty element
6
8
  // that `split('\n')` produces when the string ends with '\n'.
7
9
  const visibleLineCount = (lines, str) => str.endsWith('\n') ? lines.length - 1 : lines.length;
@@ -107,7 +109,7 @@ const detectScrollShift = (previousLines, nextLines) => {
107
109
  }
108
110
  return undefined;
109
111
  };
110
- const createStandard = (stream, { showCursor = false } = {}) => {
112
+ const createStandard = (stream, { showCursor = false, transformOutput } = {}) => {
111
113
  let previousLineCount = 0;
112
114
  let previousOutput = '';
113
115
  let hasHiddenCursor = false;
@@ -151,7 +153,7 @@ const createStandard = (stream, { showCursor = false } = {}) => {
151
153
  const returnPrefix = buildReturnToBottomPrefix(cursorWasShown, previousLineCount, previousCursorPosition);
152
154
  stream.write(returnPrefix +
153
155
  ansiEscapes.eraseLines(getEraseLineCount(previousLineCount, options)) +
154
- str +
156
+ (transformOutput ? transformOutput(str) : str) +
155
157
  cursorSuffix);
156
158
  previousLineCount = lines.length;
157
159
  }
@@ -159,8 +161,8 @@ const createStandard = (stream, { showCursor = false } = {}) => {
159
161
  cursorWasShown = activeCursor !== undefined;
160
162
  return true;
161
163
  };
162
- const render = (str) => writeFrame(str, false);
163
- render.repaint = (str, options) => writeFrame(str, true, options);
164
+ const render = (str, _context) => writeFrame(str, false);
165
+ render.repaint = (str, options, _context) => writeFrame(str, true, options);
164
166
  render.clear = (options) => {
165
167
  const prefix = buildReturnToBottomPrefix(cursorWasShown, previousLineCount, previousCursorPosition);
166
168
  stream.write(prefix +
@@ -195,7 +197,7 @@ const createStandard = (stream, { showCursor = false } = {}) => {
195
197
  cursorWasShown = false;
196
198
  cursorDirty = false;
197
199
  };
198
- render.sync = (str) => {
200
+ render.sync = (str, _physical) => {
199
201
  const activeCursor = cursorPosition;
200
202
  cursorDirty = false;
201
203
  const lines = str.split('\n');
@@ -215,10 +217,14 @@ const createStandard = (stream, { showCursor = false } = {}) => {
215
217
  cursorDirty = true;
216
218
  };
217
219
  render.isCursorDirty = () => cursorDirty;
218
- render.willRender = (str) => hasChanges(str, getActiveCursor());
220
+ render.willRender = (str, _context) => hasChanges(str, getActiveCursor());
221
+ render.getPhysicalFrame = () => undefined;
222
+ render.restoreTerminalModes = () => {
223
+ // Standard rendering never acquires seek terminal modes.
224
+ };
219
225
  return render;
220
226
  };
221
- const createIncremental = (stream, { showCursor = false } = {}) => {
227
+ const createIncremental = (stream, { showCursor = false, transformOutput } = {}) => {
222
228
  let previousLines = [];
223
229
  let previousOutput = '';
224
230
  let hasHiddenCursor = false;
@@ -226,12 +232,221 @@ const createIncremental = (stream, { showCursor = false } = {}) => {
226
232
  let cursorDirty = false;
227
233
  let previousCursorPosition;
228
234
  let cursorWasShown = false;
235
+ let physicalFrame;
236
+ let previousIdentities = [];
237
+ let ownsDecawm = false;
238
+ let writeGeneration = 0;
239
+ let paintedSeekViewport = false;
240
+ const seekPreparer = createSeekPreparer();
241
+ let streamErrorHandler;
242
+ let handlingAsyncWriteError = false;
229
243
  const getActiveCursor = () => cursorPosition;
230
244
  const hasChanges = (str, activeCursor) => {
231
245
  const cursorChanged = cursorPositionChanged(activeCursor, previousCursorPosition);
232
246
  return str !== previousOutput || cursorChanged;
233
247
  };
234
- const render = (str) => {
248
+ const bumpGeneration = () => {
249
+ writeGeneration++;
250
+ };
251
+ const invalidatePhysical = () => {
252
+ if (physicalFrame === undefined) {
253
+ return;
254
+ }
255
+ physicalFrame = {
256
+ ...physicalFrame,
257
+ valid: false,
258
+ ownsViewport: false,
259
+ };
260
+ };
261
+ const canWriteStream = () => {
262
+ const candidate = stream;
263
+ return (!candidate.destroyed &&
264
+ !candidate.writableEnded &&
265
+ (candidate.writable ?? true));
266
+ };
267
+ const restoreTerminalModes = () => {
268
+ if (!ownsDecawm) {
269
+ return;
270
+ }
271
+ if (canWriteStream()) {
272
+ try {
273
+ stream.write(decawmOn);
274
+ }
275
+ catch {
276
+ // Best-effort autowrap restore.
277
+ }
278
+ }
279
+ ownsDecawm = false;
280
+ };
281
+ const handleAsyncWriteError = () => {
282
+ if (handlingAsyncWriteError) {
283
+ return;
284
+ }
285
+ handlingAsyncWriteError = true;
286
+ bumpGeneration();
287
+ invalidatePhysical();
288
+ previousIdentities = [];
289
+ previousOutput = '';
290
+ previousLines = [];
291
+ // A queued successful write can establish the next ordered diff base,
292
+ // but an async error invalidates it; it is not proof that a terminal
293
+ // displayed the frame.
294
+ if (paintedSeekViewport) {
295
+ ownsDecawm = true;
296
+ }
297
+ restoreTerminalModes();
298
+ };
299
+ const detachStreamErrorListener = () => {
300
+ if (!streamErrorHandler) {
301
+ return;
302
+ }
303
+ stream.off('error', streamErrorHandler);
304
+ streamErrorHandler = undefined;
305
+ };
306
+ const attachStreamErrorListener = () => {
307
+ if (streamErrorHandler) {
308
+ return;
309
+ }
310
+ streamErrorHandler = () => {
311
+ handleAsyncWriteError();
312
+ };
313
+ stream.on('error', streamErrorHandler);
314
+ };
315
+ const copyContext = (context) => ({
316
+ strategy: context.strategy,
317
+ columns: context.columns,
318
+ rows: context.rows,
319
+ });
320
+ const seekHasChanges = (str, context, activeCursor) => {
321
+ if (physicalFrame === undefined ||
322
+ !physicalFrame.valid ||
323
+ physicalFrame.context.strategy !== context.strategy ||
324
+ physicalFrame.context.columns !== context.columns ||
325
+ physicalFrame.context.rows !== context.rows ||
326
+ str !== previousOutput) {
327
+ return true;
328
+ }
329
+ return cursorPositionChanged(activeCursor, previousCursorPosition);
330
+ };
331
+ const submitSeekWrite = (payload, { decawm, onAccept, }) => {
332
+ const generation = ++writeGeneration;
333
+ handlingAsyncWriteError = false;
334
+ if (decawm) {
335
+ ownsDecawm = true;
336
+ // Seek cells may already be on the stream; keep teardown ownership
337
+ // through throw/reentry. Physical/diff still publish only on accept.
338
+ paintedSeekViewport = true;
339
+ }
340
+ attachStreamErrorListener();
341
+ try {
342
+ stream.write(payload, error => {
343
+ if (error) {
344
+ handleAsyncWriteError();
345
+ }
346
+ });
347
+ if (decawm) {
348
+ ownsDecawm = false;
349
+ }
350
+ // A queued successful write can establish the next ordered diff base,
351
+ // but an async error invalidates it; it is not proof that a terminal
352
+ // displayed the frame.
353
+ if (generation === writeGeneration) {
354
+ onAccept();
355
+ }
356
+ return true;
357
+ }
358
+ catch (error) {
359
+ invalidatePhysical();
360
+ previousIdentities = [];
361
+ previousOutput = '';
362
+ previousLines = [];
363
+ if (decawm) {
364
+ ownsDecawm = true;
365
+ }
366
+ restoreTerminalModes();
367
+ throw error;
368
+ }
369
+ };
370
+ const writeSeekFrame = (str, context, force) => {
371
+ const activeCursor = getActiveCursor();
372
+ cursorDirty = false;
373
+ if (!force && !seekHasChanges(str, context, activeCursor)) {
374
+ return false;
375
+ }
376
+ const cursorChanged = cursorPositionChanged(activeCursor, previousCursorPosition);
377
+ const dimensionsChanged = physicalFrame === undefined ||
378
+ !physicalFrame.valid ||
379
+ physicalFrame.context.columns !== context.columns ||
380
+ physicalFrame.context.rows !== context.rows ||
381
+ physicalFrame.context.strategy !== context.strategy;
382
+ if (!force &&
383
+ !dimensionsChanged &&
384
+ str === previousOutput &&
385
+ cursorChanged) {
386
+ const payload = buildSeekCursorSequence(activeCursor, context.columns, context.rows, cursorWasShown);
387
+ return submitSeekWrite(payload, {
388
+ decawm: false,
389
+ onAccept() {
390
+ previousCursorPosition = activeCursor ? { ...activeCursor } : undefined;
391
+ cursorWasShown = activeCursor !== undefined;
392
+ if (physicalFrame?.valid) {
393
+ physicalFrame = {
394
+ ...physicalFrame,
395
+ cursor: clampSeekCursor(activeCursor, context.columns, context.rows),
396
+ };
397
+ }
398
+ },
399
+ });
400
+ }
401
+ const prepared = seekPreparer.prepareFrame(str, context.columns);
402
+ const viewportCount = Math.min(prepared.length, context.rows);
403
+ const viewportPrepared = prepared.slice(0, viewportCount);
404
+ const paintAll = force || dimensionsChanged;
405
+ const indexes = [];
406
+ if (paintAll) {
407
+ for (let index = 0; index < viewportCount; index++) {
408
+ indexes.push(index);
409
+ }
410
+ }
411
+ else {
412
+ for (let index = 0; index < viewportCount; index++) {
413
+ if (viewportPrepared[index].identity !== previousIdentities[index]) {
414
+ indexes.push(index);
415
+ }
416
+ }
417
+ }
418
+ const encodedRows = encodeSeekRows(viewportPrepared, indexes, context.columns);
419
+ const cursorSuffix = buildSeekCursorSequence(activeCursor, context.columns, context.rows, cursorWasShown);
420
+ const payload = encodedRows.length > 0
421
+ ? wrapSeekPaint(encodedRows + cursorSuffix)
422
+ : cursorSuffix;
423
+ if (payload.length === 0) {
424
+ return false;
425
+ }
426
+ return submitSeekWrite(payload, {
427
+ decawm: encodedRows.length > 0,
428
+ onAccept() {
429
+ previousOutput = str;
430
+ previousLines = str.split('\n');
431
+ previousIdentities = viewportPrepared.map(row => row.identity);
432
+ previousCursorPosition = activeCursor ? { ...activeCursor } : undefined;
433
+ cursorWasShown = activeCursor !== undefined;
434
+ paintedSeekViewport = true;
435
+ physicalFrame = {
436
+ context: copyContext(context),
437
+ ownsViewport: true,
438
+ valid: true,
439
+ logicalRows: viewportPrepared.map(row => row.logical),
440
+ allocatedWidths: viewportPrepared.map(row => row.allocatedWidth),
441
+ cursor: clampSeekCursor(activeCursor, context.columns, context.rows),
442
+ };
443
+ },
444
+ });
445
+ };
446
+ const render = (str, context) => {
447
+ if (isSeekViewport(context)) {
448
+ return writeSeekFrame(str, context, false);
449
+ }
235
450
  if (!showCursor && !hasHiddenCursor) {
236
451
  cliCursor.hide(stream);
237
452
  hasHiddenCursor = true;
@@ -266,7 +481,7 @@ const createIncremental = (stream, { showCursor = false } = {}) => {
266
481
  const cursorSuffix = buildCursorSuffix(outputCursorRow, activeCursor);
267
482
  stream.write(returnPrefix +
268
483
  ansiEscapes.eraseLines(previousLines.length) +
269
- str +
484
+ (transformOutput ? transformOutput(str) : str) +
270
485
  cursorSuffix);
271
486
  cursorWasShown = activeCursor !== undefined;
272
487
  previousCursorPosition = activeCursor ? { ...activeCursor } : undefined;
@@ -324,7 +539,7 @@ const createIncremental = (stream, { showCursor = false } = {}) => {
324
539
  continue;
325
540
  }
326
541
  buffer.push(ansiEscapes.cursorTo(0) +
327
- nextLines[i] +
542
+ (transformOutput ? transformOutput(nextLines[i]) : nextLines[i]) +
328
543
  ansiEscapes.eraseEndLine +
329
544
  // Don't append newline after the last line when the input
330
545
  // has no trailing newline (fullscreen mode).
@@ -339,7 +554,10 @@ const createIncremental = (stream, { showCursor = false } = {}) => {
339
554
  previousLines = nextLines;
340
555
  return true;
341
556
  };
342
- render.repaint = (str, options) => {
557
+ render.repaint = (str, options, context) => {
558
+ if (isSeekViewport(context)) {
559
+ return writeSeekFrame(str, context, true);
560
+ }
343
561
  if (!showCursor && !hasHiddenCursor) {
344
562
  cliCursor.hide(stream);
345
563
  hasHiddenCursor = true;
@@ -352,7 +570,7 @@ const createIncremental = (stream, { showCursor = false } = {}) => {
352
570
  const cursorSuffix = buildCursorSuffix(outputCursorRow, activeCursor);
353
571
  stream.write(returnPrefix +
354
572
  ansiEscapes.eraseLines(getEraseLineCount(previousLines.length, options)) +
355
- str +
573
+ (transformOutput ? transformOutput(str) : str) +
356
574
  cursorSuffix);
357
575
  previousOutput = str;
358
576
  previousLines = nextLines;
@@ -360,46 +578,101 @@ const createIncremental = (stream, { showCursor = false } = {}) => {
360
578
  cursorWasShown = activeCursor !== undefined;
361
579
  return true;
362
580
  };
363
- render.clear = (options) => {
364
- const prefix = buildReturnToBottomPrefix(cursorWasShown, previousLines.length, previousCursorPosition);
365
- stream.write(prefix +
366
- ansiEscapes.eraseLines(getEraseLineCount(previousLines.length, options)));
581
+ const clearSeekState = () => {
367
582
  previousOutput = '';
368
583
  previousLines = [];
584
+ previousIdentities = [];
369
585
  previousCursorPosition = undefined;
370
586
  cursorWasShown = false;
371
587
  cursorDirty = false;
588
+ paintedSeekViewport = false;
589
+ invalidatePhysical();
590
+ };
591
+ render.clear = (options) => {
592
+ bumpGeneration();
593
+ restoreTerminalModes();
594
+ if (paintedSeekViewport) {
595
+ stream.write(eraseDisplayHome);
596
+ clearSeekState();
597
+ return;
598
+ }
599
+ const prefix = buildReturnToBottomPrefix(cursorWasShown, previousLines.length, previousCursorPosition);
600
+ stream.write(prefix +
601
+ ansiEscapes.eraseLines(getEraseLineCount(previousLines.length, options)));
602
+ clearSeekState();
372
603
  };
373
604
  render.done = () => {
374
- const returnPrefix = buildReturnToBottomPrefix(cursorWasShown, previousLines.length, previousCursorPosition);
375
- if (returnPrefix || showCursor) {
376
- stream.write(returnPrefix + (showCursor ? showCursorEscape : ''));
605
+ bumpGeneration();
606
+ restoreTerminalModes();
607
+ detachStreamErrorListener();
608
+ try {
609
+ if (paintedSeekViewport) {
610
+ if (showCursor) {
611
+ stream.write(showCursorEscape);
612
+ }
613
+ clearSeekState();
614
+ cursorPosition = undefined;
615
+ if (!showCursor) {
616
+ cliCursor.show(stream);
617
+ hasHiddenCursor = false;
618
+ }
619
+ return;
620
+ }
621
+ const returnPrefix = buildReturnToBottomPrefix(cursorWasShown, previousLines.length, previousCursorPosition);
622
+ if (returnPrefix || showCursor) {
623
+ stream.write(returnPrefix + (showCursor ? showCursorEscape : ''));
624
+ }
625
+ clearSeekState();
626
+ cursorPosition = undefined;
627
+ if (!showCursor) {
628
+ cliCursor.show(stream);
629
+ hasHiddenCursor = false;
630
+ }
377
631
  }
378
- previousOutput = '';
379
- previousLines = [];
380
- previousCursorPosition = undefined;
381
- cursorWasShown = false;
382
- cursorPosition = undefined;
383
- cursorDirty = false;
384
- if (!showCursor) {
385
- cliCursor.show(stream);
386
- hasHiddenCursor = false;
632
+ catch {
633
+ clearSeekState();
634
+ cursorPosition = undefined;
387
635
  }
388
636
  };
389
637
  render.reset = () => {
390
638
  // Cache-only: the caller must have externally reset or replaced terminal contents.
639
+ bumpGeneration();
391
640
  previousOutput = '';
392
641
  previousLines = [];
642
+ previousIdentities = [];
393
643
  previousCursorPosition = undefined;
394
644
  cursorWasShown = false;
395
645
  cursorDirty = false;
646
+ invalidatePhysical();
396
647
  };
397
- render.sync = (str) => {
648
+ render.sync = (str, physical) => {
398
649
  const activeCursor = cursorPosition;
399
650
  cursorDirty = false;
400
651
  const lines = str.split('\n');
401
652
  previousOutput = str;
402
653
  previousLines = lines;
654
+ const matching = physical?.valid === true &&
655
+ physical.ownsViewport &&
656
+ physical.context.strategy === 'seek-viewport' &&
657
+ physical.logicalRows.join('\n') === str;
658
+ if (matching && physical) {
659
+ physicalFrame = {
660
+ context: copyContext(physical.context),
661
+ ownsViewport: true,
662
+ valid: true,
663
+ logicalRows: physical.logicalRows,
664
+ allocatedWidths: physical.allocatedWidths,
665
+ cursor: physical.cursor,
666
+ };
667
+ previousIdentities = [];
668
+ paintedSeekViewport = true;
669
+ previousCursorPosition = activeCursor ? { ...activeCursor } : undefined;
670
+ cursorWasShown = activeCursor !== undefined;
671
+ return;
672
+ }
673
+ previousIdentities = [];
674
+ paintedSeekViewport = false;
675
+ invalidatePhysical();
403
676
  if (!activeCursor && cursorWasShown) {
404
677
  stream.write(hideCursorEscape);
405
678
  }
@@ -414,14 +687,21 @@ const createIncremental = (stream, { showCursor = false } = {}) => {
414
687
  cursorDirty = true;
415
688
  };
416
689
  render.isCursorDirty = () => cursorDirty;
417
- render.willRender = (str) => hasChanges(str, getActiveCursor());
690
+ render.willRender = (str, context) => {
691
+ if (isSeekViewport(context)) {
692
+ return seekHasChanges(str, context, getActiveCursor());
693
+ }
694
+ return hasChanges(str, getActiveCursor());
695
+ };
696
+ render.getPhysicalFrame = () => physicalFrame;
697
+ render.restoreTerminalModes = restoreTerminalModes;
418
698
  return render;
419
699
  };
420
- const create = (stream, { showCursor = false, incremental = false } = {}) => {
700
+ const create = (stream, { showCursor = false, incremental = false, transformOutput, } = {}) => {
421
701
  if (incremental) {
422
- return createIncremental(stream, { showCursor });
702
+ return createIncremental(stream, { showCursor, transformOutput });
423
703
  }
424
- return createStandard(stream, { showCursor });
704
+ return createStandard(stream, { showCursor, transformOutput });
425
705
  };
426
706
  const logUpdate = { create };
427
707
  export default logUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"log-update.js","sourceRoot":"","sources":["../src/log-update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log-update.js","sourceRoot":"","sources":["../src/log-update.ts"],"names":[],"mappings":"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"}