@jrichman/ink 6.5.1-beta.3 → 6.5.1-beta.6

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 (66) hide show
  1. package/build/colorize.d.ts +2 -0
  2. package/build/colorize.js +24 -0
  3. package/build/colorize.js.map +1 -1
  4. package/build/debug-log.js +3 -2
  5. package/build/debug-log.js.map +1 -1
  6. package/build/ink.js +3 -0
  7. package/build/ink.js.map +1 -1
  8. package/build/measure-text.js +15 -25
  9. package/build/measure-text.js.map +1 -1
  10. package/build/output.js +11 -15
  11. package/build/output.js.map +1 -1
  12. package/build/render-background.js +16 -4
  13. package/build/render-background.js.map +1 -1
  14. package/build/render-node-to-output.js +2 -0
  15. package/build/render-node-to-output.js.map +1 -1
  16. package/build/render-scrollbar.d.ts +1 -2
  17. package/build/render-scrollbar.js +14 -28
  18. package/build/render-scrollbar.js.map +1 -1
  19. package/build/render-text-node.js +14 -11
  20. package/build/render-text-node.js.map +1 -1
  21. package/build/selection.js +29 -44
  22. package/build/selection.js.map +1 -1
  23. package/build/styled-line.d.ts +13 -2
  24. package/build/styled-line.js +309 -75
  25. package/build/styled-line.js.map +1 -1
  26. package/build/text-wrap.d.ts +5 -0
  27. package/build/text-wrap.js +78 -92
  28. package/build/text-wrap.js.map +1 -1
  29. package/build/tokenize.d.ts +1 -1
  30. package/build/tokenize.js +2 -2
  31. package/build/tokenize.js.map +1 -1
  32. package/build/worker/canvas.d.ts +1 -1
  33. package/build/worker/canvas.js +4 -5
  34. package/build/worker/canvas.js.map +1 -1
  35. package/build/worker/compositor.js +9 -23
  36. package/build/worker/compositor.js.map +1 -1
  37. package/build/worker/terminal-writer.js +1 -2
  38. package/build/worker/terminal-writer.js.map +1 -1
  39. package/package.json +1 -1
  40. package/build/render-worker.d.ts +0 -25
  41. package/build/render-worker.js +0 -370
  42. package/build/render-worker.js.map +0 -1
  43. package/build/styled-lines.d.ts +0 -29
  44. package/build/styled-lines.js +0 -110
  45. package/build/styled-lines.js.map +0 -1
  46. package/build/terminal-writer.d.ts +0 -69
  47. package/build/terminal-writer.js +0 -546
  48. package/build/terminal-writer.js.map +0 -1
  49. package/build/web/ansi-to-css.d.ts +0 -16
  50. package/build/web/ansi-to-css.js +0 -147
  51. package/build/web/ansi-to-css.js.map +0 -1
  52. package/build/web/client.d.ts +0 -51
  53. package/build/web/client.js +0 -315
  54. package/build/web/client.js.map +0 -1
  55. package/build/web/server.d.ts +0 -1
  56. package/build/web/server.js +0 -179
  57. package/build/web/server.js.map +0 -1
  58. package/build/worker/dump-replay.d.ts +0 -1
  59. package/build/worker/dump-replay.js +0 -15
  60. package/build/worker/dump-replay.js.map +0 -1
  61. package/build/worker/replay.d.ts +0 -55
  62. package/build/worker/replay.js +0 -133
  63. package/build/worker/replay.js.map +0 -1
  64. package/build/wrap-text.d.ts +0 -6
  65. package/build/wrap-text.js +0 -120
  66. package/build/wrap-text.js.map +0 -1
@@ -1,110 +0,0 @@
1
- /**
2
- * A highly optimized representation of styled characters for terminal rendering.
3
- * Replaces arrays of `StyledChar` objects with parallel arrays to eliminate
4
- * massive GC overhead during large layout and scroll updates.
5
- */
6
- export class StyledLines {
7
- values = [];
8
- fullWidths = [];
9
- styles = [];
10
- get length() {
11
- return this.values.length;
12
- }
13
- set length(value) {
14
- this.values.length = value;
15
- this.fullWidths.length = value;
16
- this.styles.length = value;
17
- }
18
- push(value, fullWidth, styles) {
19
- this.values.push(value);
20
- this.fullWidths.push(fullWidth);
21
- this.styles.push(styles);
22
- }
23
- pushChar(char) {
24
- this.values.push(char.value);
25
- this.fullWidths.push(char.fullWidth || false);
26
- this.styles.push(char.styles || []);
27
- }
28
- pushLine(other) {
29
- for (let i = 0; i < other.length; i++) {
30
- this.values.push(other.values[i]);
31
- this.fullWidths.push(other.fullWidths[i]);
32
- this.styles.push(other.styles[i]);
33
- }
34
- }
35
- slice(start, end) {
36
- const result = new StyledLines();
37
- result.values = this.values.slice(start, end);
38
- result.fullWidths = this.fullWidths.slice(start, end);
39
- result.styles = this.styles.slice(start, end);
40
- return result;
41
- }
42
- splice(start, deleteCount, ...items) {
43
- const result = new StyledLines();
44
- result.values = this.values.splice(start, deleteCount, ...items.map(i => i.value));
45
- result.fullWidths = this.fullWidths.splice(start, deleteCount, ...items.map(i => i.fullWidth || false));
46
- result.styles = this.styles.splice(start, deleteCount, ...items.map(i => i.styles || []));
47
- return result;
48
- }
49
- *[Symbol.iterator]() {
50
- for (let i = 0; i < this.length; i++) {
51
- yield {
52
- type: 'char',
53
- value: this.values[i],
54
- fullWidth: this.fullWidths[i],
55
- styles: this.styles[i],
56
- };
57
- }
58
- }
59
- entries() {
60
- let i = 0;
61
- return {
62
- [Symbol.iterator]() {
63
- return this;
64
- },
65
- next: () => {
66
- if (i >= this.length)
67
- return { done: true, value: undefined };
68
- const val = [i, this.at(i)];
69
- i++;
70
- return { done: false, value: val };
71
- },
72
- };
73
- }
74
- map(callbackfn, thisArg) {
75
- const result = [];
76
- for (let i = 0; i < this.length; i++) {
77
- result.push(callbackfn.call(thisArg, this.at(i), i, this));
78
- }
79
- return result;
80
- }
81
- indexOf(searchElement, fromIndex = 0) {
82
- for (let i = fromIndex; i < this.length; i++) {
83
- if (this.values[i] === searchElement.value &&
84
- this.fullWidths[i] === searchElement.fullWidth)
85
- return i;
86
- }
87
- return -1;
88
- }
89
- at(index) {
90
- if (index < 0) {
91
- index = this.length + index;
92
- }
93
- if (index < 0 || index >= this.length)
94
- return undefined;
95
- return {
96
- type: 'char',
97
- value: this.values[index],
98
- fullWidth: this.fullWidths[index],
99
- styles: this.styles[index],
100
- };
101
- }
102
- clone() {
103
- const result = new StyledLines();
104
- result.values = [...this.values];
105
- result.fullWidths = [...this.fullWidths];
106
- result.styles = [...this.styles];
107
- return result;
108
- }
109
- }
110
- //# sourceMappingURL=styled-lines.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styled-lines.js","sourceRoot":"","sources":["../src/styled-lines.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- import { type StyledChar } from '@alcalzone/ansi-tokenize';
2
- export declare const rainbowColors: string[];
3
- export type RenderLine = {
4
- styledChars: StyledChar[];
5
- text: string;
6
- length: number;
7
- tainted: boolean;
8
- };
9
- export declare function linesEqual(lineA: StyledChar[] | undefined, lineB: StyledChar[] | undefined): boolean;
10
- export declare class TerminalWriter {
11
- private columns;
12
- private rows;
13
- private readonly stdout;
14
- isTainted: boolean;
15
- debugRainbowColor?: string;
16
- private screen;
17
- private backbuffer;
18
- private cursorX;
19
- private cursorY;
20
- private scrollRegionTop;
21
- private scrollRegionBottom;
22
- private firstRender;
23
- private readonly enableSynchronizedOutput;
24
- private cancelSlowFlush;
25
- private outputBuffer;
26
- private currentChunkBuffer;
27
- constructor(columns: number, rows: number, stdout: NodeJS.WriteStream);
28
- unkownCursorLocation(): void;
29
- getBackbufferLength(): number;
30
- getBackbufferEntry(index: number): RenderLine | undefined;
31
- getScreenLine(y: number): RenderLine | undefined;
32
- get isFirstRender(): boolean;
33
- /**
34
- * Append lines to the backbuffer leaving the on screen content unchanged.
35
- */
36
- appendLinesBackbuffer(lines: RenderLine[]): void;
37
- updateBackbuffer(start: number, deleteCount: number, newLines: RenderLine[]): void;
38
- writeLines(lines: RenderLine[]): void;
39
- moveCursor(x: number, y: number): void;
40
- clampLine(line: StyledChar[], width: number): RenderLine;
41
- syncLine(line: RenderLine, y: number): void;
42
- /**
43
- * Trigger a scroll up of content into the backbuffer.
44
- */
45
- private applyScrollUpBackbuffer;
46
- private applyScrollUp;
47
- private applyScrollDown;
48
- private performScroll;
49
- scrollLines(options: {
50
- start: number;
51
- end: number;
52
- linesToScroll: number;
53
- lines: RenderLine[];
54
- direction: 'up' | 'down';
55
- scrollToBackbuffer: boolean;
56
- }): void;
57
- resize(columns: number, rows: number): void;
58
- clear(): void;
59
- startSynchronizedOutput(): void;
60
- endSynchronizedOutput(): void;
61
- flush(): void;
62
- slowFlush(): Promise<void>;
63
- validateLinesConsistent(lines: RenderLine[]): void;
64
- private synchronizedWrite;
65
- private resetScrollRegion;
66
- private setScrollRegion;
67
- private writeHelper;
68
- private finishChunk;
69
- }