@jrichman/ink 6.5.1-beta.1 → 6.5.1-beta.2
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/components/Static.js +1 -1
- package/build/components/Static.js.map +1 -1
- package/build/components/StaticRender.js +0 -7
- package/build/components/StaticRender.js.map +1 -1
- package/build/devtools.js +0 -2
- package/build/devtools.js.map +1 -1
- package/build/dom.d.ts +4 -4
- package/build/index.d.ts +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/ink.d.ts +1 -1
- package/build/ink.js +0 -4
- package/build/ink.js.map +1 -1
- package/build/log-update.d.ts +2 -2
- package/build/log-update.js +4 -5
- package/build/log-update.js.map +1 -1
- package/build/measure-element.js +16 -46
- package/build/measure-element.js.map +1 -1
- package/build/measure-text.d.ts +9 -23
- package/build/measure-text.js +94 -132
- package/build/measure-text.js.map +1 -1
- package/build/output.d.ts +6 -12
- package/build/output.js +35 -51
- package/build/output.js.map +1 -1
- package/build/render-cached.d.ts +1 -1
- package/build/render-cached.js +8 -5
- package/build/render-cached.js.map +1 -1
- package/build/render-container.d.ts +1 -1
- package/build/render-node-to-output.d.ts +1 -1
- package/build/render-scrollbar.d.ts +5 -3
- package/build/render-scrollbar.js +8 -7
- package/build/render-scrollbar.js.map +1 -1
- package/build/render-sticky.d.ts +3 -8
- package/build/render-sticky.js.map +1 -1
- package/build/render-text-node.d.ts +3 -8
- package/build/render-text-node.js +62 -40
- package/build/render-text-node.js.map +1 -1
- package/build/render.d.ts +1 -1
- package/build/renderer.d.ts +2 -2
- package/build/renderer.js +1 -3
- package/build/renderer.js.map +1 -1
- package/build/replay.js +4 -16
- package/build/replay.js.map +1 -1
- package/build/selection.d.ts +3 -3
- package/build/selection.js +27 -18
- package/build/selection.js.map +1 -1
- package/build/serialization.d.ts +2 -5
- package/build/serialization.js +55 -86
- package/build/serialization.js.map +1 -1
- package/build/styled-line.d.ts +73 -0
- package/build/styled-line.js +412 -0
- package/build/styled-line.js.map +1 -0
- package/build/terminal-buffer.d.ts +2 -2
- package/build/terminal-buffer.js +3 -2
- package/build/terminal-buffer.js.map +1 -1
- package/build/text-wrap.d.ts +6 -6
- package/build/text-wrap.js +65 -46
- package/build/text-wrap.js.map +1 -1
- package/build/tokenize.d.ts +3 -33
- package/build/tokenize.js +14 -115
- package/build/tokenize.js.map +1 -1
- package/build/worker/canvas.d.ts +6 -16
- package/build/worker/canvas.js +10 -21
- package/build/worker/canvas.js.map +1 -1
- package/build/worker/compositor.js +15 -9
- package/build/worker/compositor.js.map +1 -1
- package/build/worker/render-worker.js +2 -8
- package/build/worker/render-worker.js.map +1 -1
- package/build/worker/scene-manager.js +2 -1
- package/build/worker/scene-manager.js.map +1 -1
- package/build/worker/terminal-writer.d.ts +4 -4
- package/build/worker/terminal-writer.js +34 -64
- package/build/worker/terminal-writer.js.map +1 -1
- package/package.json +11 -11
package/build/serialization.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
-
import {
|
|
2
|
+
import { FULL_WIDTH_MASK } from './tokenize.js';
|
|
3
|
+
import { StyledLine } from './styled-line.js';
|
|
3
4
|
const hasStylesMask = 0b0000_0010;
|
|
4
5
|
const fullWidthMask = 0b0000_0001;
|
|
5
6
|
const isRepeatedCharMask = 0b0000_0100;
|
|
6
7
|
const isAsciiMixedMask = 0b0000_1000;
|
|
7
8
|
export class Serializer {
|
|
8
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
9
9
|
buffer;
|
|
10
10
|
currentSize = 0;
|
|
11
11
|
constructor(initialSize = 1024 * 1024) {
|
|
@@ -34,54 +34,38 @@ export class Serializer {
|
|
|
34
34
|
this.writeUint32(0);
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
this.writeUint32(spanCount);
|
|
44
|
-
let currentSpanStart = 0;
|
|
45
|
-
for (let i = 1; i <= line.length; i++) {
|
|
46
|
-
if (i === line.length || !this.isSameStyle(line[i - 1], line[i])) {
|
|
47
|
-
this.writeSpan(line, currentSpanStart, i);
|
|
48
|
-
currentSpanStart = i;
|
|
49
|
-
}
|
|
37
|
+
const spans = line.getSpans();
|
|
38
|
+
this.writeUint32(spans.length);
|
|
39
|
+
let offset = 0;
|
|
40
|
+
for (const span of spans) {
|
|
41
|
+
this.writeSpan(line, span, offset);
|
|
42
|
+
offset += span.length;
|
|
50
43
|
}
|
|
51
44
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
// Internal access for performance during serialization
|
|
60
|
-
const a = charA;
|
|
61
|
-
const b = charB;
|
|
62
|
-
return (a.formatFlags === b.formatFlags &&
|
|
63
|
-
a.fgColor === b.fgColor &&
|
|
64
|
-
a.bgColor === b.bgColor &&
|
|
65
|
-
a.link === b.link);
|
|
66
|
-
}
|
|
67
|
-
writeSpan(line, start, end) {
|
|
68
|
-
const spanLength = end - start;
|
|
69
|
-
this.writeUint32(spanLength);
|
|
70
|
-
const firstChar = line[start];
|
|
45
|
+
writeSpan(line, span, start) {
|
|
46
|
+
this.writeUint32(span.length);
|
|
47
|
+
const end = start + span.length;
|
|
48
|
+
const firstVal = line.getValue(start);
|
|
49
|
+
const firstFullWidth = line.getFullWidth(start);
|
|
71
50
|
let isRepeatedChar = true;
|
|
72
51
|
let isAsciiMixed = true;
|
|
73
52
|
for (let i = start; i < end; i++) {
|
|
74
|
-
const
|
|
75
|
-
if (
|
|
76
|
-
char.getFullWidth() !== firstChar.getFullWidth()) {
|
|
53
|
+
const val = line.getValue(i);
|
|
54
|
+
if (val !== firstVal || line.getFullWidth(i) !== firstFullWidth) {
|
|
77
55
|
isRepeatedChar = false;
|
|
78
56
|
}
|
|
79
|
-
if (
|
|
57
|
+
if (line.getFullWidth(i) || val.length !== 1) {
|
|
80
58
|
isAsciiMixed = false;
|
|
81
59
|
}
|
|
82
60
|
}
|
|
83
61
|
let flags = 0;
|
|
84
|
-
if (
|
|
62
|
+
// A span has styles if its format flags are anything but 0 (or just full-width)
|
|
63
|
+
// Or if it has colors.
|
|
64
|
+
const hasStyles = (span.formatFlags & ~FULL_WIDTH_MASK) !== 0 ||
|
|
65
|
+
span.fgColor ||
|
|
66
|
+
span.bgColor ||
|
|
67
|
+
span.link;
|
|
68
|
+
if (hasStyles) {
|
|
85
69
|
flags |= hasStylesMask;
|
|
86
70
|
}
|
|
87
71
|
if (isRepeatedChar) {
|
|
@@ -91,37 +75,35 @@ export class Serializer {
|
|
|
91
75
|
flags |= isAsciiMixedMask;
|
|
92
76
|
}
|
|
93
77
|
this.writeUint8(flags);
|
|
94
|
-
if (
|
|
95
|
-
|
|
96
|
-
this.
|
|
97
|
-
this.writeString(
|
|
98
|
-
this.writeString(
|
|
99
|
-
this.writeString(fc.link || '');
|
|
78
|
+
if (hasStyles) {
|
|
79
|
+
this.writeUint8(span.formatFlags);
|
|
80
|
+
this.writeString(span.fgColor || '');
|
|
81
|
+
this.writeString(span.bgColor || '');
|
|
82
|
+
this.writeString(span.link || '');
|
|
100
83
|
}
|
|
101
84
|
if (isRepeatedChar) {
|
|
102
85
|
let charFlags = 0;
|
|
103
|
-
if (
|
|
86
|
+
if (firstFullWidth) {
|
|
104
87
|
charFlags |= fullWidthMask;
|
|
105
88
|
}
|
|
106
89
|
this.writeUint8(charFlags);
|
|
107
|
-
this.writeString(
|
|
90
|
+
this.writeString(firstVal || '');
|
|
108
91
|
}
|
|
109
92
|
else if (isAsciiMixed) {
|
|
110
93
|
let concat = '';
|
|
111
94
|
for (let i = start; i < end; i++) {
|
|
112
|
-
concat += line
|
|
95
|
+
concat += line.getValue(i);
|
|
113
96
|
}
|
|
114
97
|
this.writeString(concat);
|
|
115
98
|
}
|
|
116
99
|
else {
|
|
117
100
|
for (let i = start; i < end; i++) {
|
|
118
|
-
const char = line[i];
|
|
119
101
|
let charFlags = 0;
|
|
120
|
-
if (
|
|
102
|
+
if (line.getFullWidth(i)) {
|
|
121
103
|
charFlags |= fullWidthMask;
|
|
122
104
|
}
|
|
123
105
|
this.writeUint8(charFlags);
|
|
124
|
-
this.writeString(
|
|
106
|
+
this.writeString(line.getValue(i) || '');
|
|
125
107
|
}
|
|
126
108
|
}
|
|
127
109
|
}
|
|
@@ -144,30 +126,8 @@ export class Serializer {
|
|
|
144
126
|
this.currentSize += 1;
|
|
145
127
|
}
|
|
146
128
|
}
|
|
147
|
-
const commonCharCache = new Map();
|
|
148
|
-
export function getInternedChar(value, fullWidth, charTemplate) {
|
|
149
|
-
if (!charTemplate?.hasStyles()) {
|
|
150
|
-
const key = fullWidth ? value + '|fw' : value;
|
|
151
|
-
let cached = commonCharCache.get(key);
|
|
152
|
-
if (!cached) {
|
|
153
|
-
cached = new StyledChar(value, fullWidth ? FULL_WIDTH_MASK : 0);
|
|
154
|
-
commonCharCache.set(key, cached);
|
|
155
|
-
}
|
|
156
|
-
return cached;
|
|
157
|
-
}
|
|
158
|
-
// Just copy over properties from template, plus fullwidth and value
|
|
159
|
-
let flags = charTemplate.formatFlags;
|
|
160
|
-
if (fullWidth) {
|
|
161
|
-
flags |= FULL_WIDTH_MASK;
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
flags &= ~FULL_WIDTH_MASK;
|
|
165
|
-
}
|
|
166
|
-
return new StyledChar(value, flags, charTemplate.fgColor, charTemplate.bgColor, charTemplate.link);
|
|
167
|
-
}
|
|
168
129
|
export class Deserializer {
|
|
169
130
|
offset = 0;
|
|
170
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
171
131
|
buf;
|
|
172
132
|
constructor(buffer) {
|
|
173
133
|
this.buf = Buffer.isBuffer(buffer)
|
|
@@ -184,11 +144,11 @@ export class Deserializer {
|
|
|
184
144
|
}
|
|
185
145
|
readLine() {
|
|
186
146
|
const spanCount = this.readUint32();
|
|
187
|
-
const
|
|
147
|
+
const line = new StyledLine();
|
|
188
148
|
for (let i = 0; i < spanCount; i++) {
|
|
189
|
-
this.readSpan(
|
|
149
|
+
this.readSpan(line);
|
|
190
150
|
}
|
|
191
|
-
return
|
|
151
|
+
return line;
|
|
192
152
|
}
|
|
193
153
|
readSpan(line) {
|
|
194
154
|
const spanLength = this.readUint32();
|
|
@@ -196,27 +156,31 @@ export class Deserializer {
|
|
|
196
156
|
const hasStyles = (flags & hasStylesMask) !== 0;
|
|
197
157
|
const isRepeatedChar = (flags & isRepeatedCharMask) !== 0;
|
|
198
158
|
const isAsciiMixed = (flags & isAsciiMixedMask) !== 0;
|
|
199
|
-
let
|
|
159
|
+
let formatFlags = 0;
|
|
160
|
+
let fgColor;
|
|
161
|
+
let bgColor;
|
|
162
|
+
let link;
|
|
200
163
|
if (hasStyles) {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
charTemplate = new StyledChar('', formatFlags, fgColor || undefined, bgColor || undefined, link || undefined);
|
|
164
|
+
formatFlags = this.readUint8();
|
|
165
|
+
fgColor = this.readString() || undefined;
|
|
166
|
+
bgColor = this.readString() || undefined;
|
|
167
|
+
link = this.readString() || undefined;
|
|
206
168
|
}
|
|
207
169
|
if (isRepeatedChar) {
|
|
208
170
|
const charFlags = this.readUint8();
|
|
209
171
|
const fullWidth = (charFlags & fullWidthMask) !== 0;
|
|
210
172
|
const value = this.readString();
|
|
211
|
-
|
|
173
|
+
let ff = formatFlags;
|
|
174
|
+
if (fullWidth)
|
|
175
|
+
ff |= FULL_WIDTH_MASK;
|
|
212
176
|
for (let i = 0; i < spanLength; i++) {
|
|
213
|
-
line.
|
|
177
|
+
line.pushChar(value, ff, fgColor, bgColor, link);
|
|
214
178
|
}
|
|
215
179
|
}
|
|
216
180
|
else if (isAsciiMixed) {
|
|
217
181
|
const value = this.readString();
|
|
218
182
|
for (let i = 0; i < spanLength; i++) {
|
|
219
|
-
line.
|
|
183
|
+
line.pushChar(value[i], formatFlags, fgColor, bgColor, link);
|
|
220
184
|
}
|
|
221
185
|
}
|
|
222
186
|
else {
|
|
@@ -224,7 +188,12 @@ export class Deserializer {
|
|
|
224
188
|
const charFlags = this.readUint8();
|
|
225
189
|
const fullWidth = (charFlags & fullWidthMask) !== 0;
|
|
226
190
|
const value = this.readString();
|
|
227
|
-
|
|
191
|
+
let ff = formatFlags;
|
|
192
|
+
if (fullWidth)
|
|
193
|
+
ff |= FULL_WIDTH_MASK;
|
|
194
|
+
else
|
|
195
|
+
ff &= ~FULL_WIDTH_MASK;
|
|
196
|
+
line.pushChar(value, ff, fgColor, bgColor, link);
|
|
228
197
|
}
|
|
229
198
|
}
|
|
230
199
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export type StyleSpan = {
|
|
2
|
+
length: number;
|
|
3
|
+
formatFlags: number;
|
|
4
|
+
fgColor?: string;
|
|
5
|
+
bgColor?: string;
|
|
6
|
+
link?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class StyledLine {
|
|
9
|
+
static empty(length: number): StyledLine;
|
|
10
|
+
length: number;
|
|
11
|
+
private text;
|
|
12
|
+
private charData;
|
|
13
|
+
private spans;
|
|
14
|
+
constructor(values?: string[], spans?: StyleSpan[]);
|
|
15
|
+
getValue(index: number): string;
|
|
16
|
+
getSpan(index: number): StyleSpan | undefined;
|
|
17
|
+
getFullWidth(index: number): boolean;
|
|
18
|
+
hasStyles(index: number): boolean;
|
|
19
|
+
getFormatFlags(index: number): number;
|
|
20
|
+
getFgColor(index: number): string | undefined;
|
|
21
|
+
getBgColor(index: number): string | undefined;
|
|
22
|
+
getLink(index: number): string | undefined;
|
|
23
|
+
setChar(index: number, value: string, formatFlags: number, fgColor?: string, bgColor?: string, link?: string): void;
|
|
24
|
+
pushChar(value: string, formatFlags: number, fgColor?: string, bgColor?: string, link?: string): void;
|
|
25
|
+
slice(start: number, end?: number): StyledLine;
|
|
26
|
+
concat(other: StyledLine): StyledLine;
|
|
27
|
+
trimEnd(): StyledLine;
|
|
28
|
+
equals(other: StyledLine): boolean;
|
|
29
|
+
getSpans(): StyleSpan[];
|
|
30
|
+
getValues(): string[];
|
|
31
|
+
[Symbol.iterator](): Generator<{
|
|
32
|
+
value: string;
|
|
33
|
+
formatFlags: number;
|
|
34
|
+
fgColor: string | undefined;
|
|
35
|
+
bgColor: string | undefined;
|
|
36
|
+
link: string | undefined;
|
|
37
|
+
fullWidth: boolean;
|
|
38
|
+
hasStyles: boolean;
|
|
39
|
+
}, void, unknown>;
|
|
40
|
+
private splitSpansAt;
|
|
41
|
+
private mergeSpans;
|
|
42
|
+
}
|
|
43
|
+
export declare class StyledChar {
|
|
44
|
+
private readonly _value;
|
|
45
|
+
private _formatFlags;
|
|
46
|
+
private readonly _fgColor?;
|
|
47
|
+
private _bgColor?;
|
|
48
|
+
private readonly _link?;
|
|
49
|
+
constructor(_value: string, _formatFlags: number, _fgColor?: string | undefined, _bgColor?: string | undefined, _link?: string | undefined);
|
|
50
|
+
getValue(): string;
|
|
51
|
+
getFullWidth(): boolean;
|
|
52
|
+
getForegroundColor(): string | undefined;
|
|
53
|
+
getBackgroundColor(): string | undefined;
|
|
54
|
+
getBold(): boolean;
|
|
55
|
+
getDim(): boolean;
|
|
56
|
+
getItalic(): boolean;
|
|
57
|
+
getUnderline(): boolean;
|
|
58
|
+
getStrikethrough(): boolean;
|
|
59
|
+
getInverse(): boolean;
|
|
60
|
+
getHidden(): boolean;
|
|
61
|
+
getLink(): string | undefined;
|
|
62
|
+
get formatFlags(): number;
|
|
63
|
+
get fgColor(): string | undefined;
|
|
64
|
+
get bgColor(): string | undefined;
|
|
65
|
+
get link(): string | undefined;
|
|
66
|
+
setFormatFlag(mask: number): void;
|
|
67
|
+
clearFormatFlag(mask: number): void;
|
|
68
|
+
setBackgroundColor(color: string | undefined): void;
|
|
69
|
+
hasStyles(): boolean;
|
|
70
|
+
copyWith(overrides: {
|
|
71
|
+
value?: string;
|
|
72
|
+
}): StyledChar;
|
|
73
|
+
}
|