@nuvin/ink 6.6.7 → 7.0.1-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/ansi-tokenizer.d.ts +38 -0
- package/build/ansi-tokenizer.d.ts.map +1 -0
- package/build/ansi-tokenizer.js +316 -0
- package/build/ansi-tokenizer.js.map +1 -0
- package/build/colorize.d.ts.map +1 -0
- package/build/components/AccessibilityContext.d.ts.map +1 -0
- package/build/components/AnimationContext.d.ts +9 -0
- package/build/components/AnimationContext.d.ts.map +1 -0
- package/build/components/AnimationContext.js +13 -0
- package/build/components/AnimationContext.js.map +1 -0
- package/build/components/App.d.ts +11 -49
- package/build/components/App.d.ts.map +1 -0
- package/build/components/App.js +412 -227
- package/build/components/App.js.map +1 -1
- package/build/components/AppContext.d.ts +33 -3
- package/build/components/AppContext.d.ts.map +1 -0
- package/build/components/AppContext.js +2 -1
- package/build/components/AppContext.js.map +1 -1
- package/build/components/BackgroundContext.d.ts.map +1 -0
- package/build/components/Box.d.ts +15 -8
- package/build/components/Box.d.ts.map +1 -0
- package/build/components/Box.js +12 -10
- package/build/components/Box.js.map +1 -1
- package/build/components/CursorContext.d.ts +11 -0
- package/build/components/CursorContext.d.ts.map +1 -0
- package/build/components/CursorContext.js +8 -0
- package/build/components/CursorContext.js.map +1 -0
- package/build/components/ErrorBoundary.d.ts +18 -0
- package/build/components/ErrorBoundary.d.ts.map +1 -0
- package/build/components/ErrorBoundary.js +23 -0
- package/build/components/ErrorBoundary.js.map +1 -0
- package/build/components/ErrorOverview.d.ts.map +1 -0
- package/build/components/ErrorOverview.js +6 -6
- package/build/components/ErrorOverview.js.map +1 -1
- package/build/components/FocusContext.d.ts.map +1 -0
- package/build/components/Newline.d.ts.map +1 -0
- package/build/components/Spacer.d.ts.map +1 -0
- package/build/components/Static.d.ts.map +1 -0
- package/build/components/Static.js.map +1 -1
- package/build/components/StderrContext.d.ts.map +1 -0
- package/build/components/StdinContext.d.ts +7 -1
- package/build/components/StdinContext.d.ts.map +1 -0
- package/build/components/StdinContext.js +1 -0
- package/build/components/StdinContext.js.map +1 -1
- package/build/components/StdoutContext.d.ts.map +1 -0
- package/build/components/Text.d.ts +1 -1
- package/build/components/Text.d.ts.map +1 -0
- package/build/components/Text.js +1 -1
- package/build/components/Text.js.map +1 -1
- package/build/components/Transform.d.ts +1 -1
- package/build/components/Transform.d.ts.map +1 -0
- package/build/cursor-helpers.d.ts +38 -0
- package/build/cursor-helpers.d.ts.map +1 -0
- package/build/cursor-helpers.js +56 -0
- package/build/cursor-helpers.js.map +1 -0
- package/build/devtools-window-polyfill.d.ts.map +1 -0
- package/build/devtools-window-polyfill.js +7 -4
- package/build/devtools-window-polyfill.js.map +1 -1
- package/build/devtools.d.ts.map +1 -0
- package/build/devtools.js +31 -6
- package/build/devtools.js.map +1 -1
- package/build/diagnostics.d.ts +5 -0
- package/build/diagnostics.d.ts.map +1 -0
- package/build/diagnostics.js +7 -0
- package/build/diagnostics.js.map +1 -0
- package/build/dom.d.ts +5 -1
- package/build/dom.d.ts.map +1 -0
- package/build/dom.js +20 -1
- package/build/dom.js.map +1 -1
- package/build/get-max-width.d.ts.map +1 -0
- package/build/hooks/use-animation.d.ts +49 -0
- package/build/hooks/use-animation.d.ts.map +1 -0
- package/build/hooks/use-animation.js +87 -0
- package/build/hooks/use-animation.js.map +1 -0
- package/build/hooks/use-app.d.ts +5 -2
- package/build/hooks/use-app.d.ts.map +1 -0
- package/build/hooks/use-app.js +1 -1
- package/build/hooks/use-box-metrics.d.ts +59 -0
- package/build/hooks/use-box-metrics.d.ts.map +1 -0
- package/build/hooks/use-box-metrics.js +88 -0
- package/build/hooks/use-box-metrics.js.map +1 -0
- package/build/hooks/use-cursor.d.ts +12 -0
- package/build/hooks/use-cursor.d.ts.map +1 -0
- package/build/hooks/use-cursor.js +29 -0
- package/build/hooks/use-cursor.js.map +1 -0
- package/build/hooks/use-focus-manager.d.ts +17 -2
- package/build/hooks/use-focus-manager.d.ts.map +1 -0
- package/build/hooks/use-focus-manager.js +2 -1
- package/build/hooks/use-focus-manager.js.map +1 -1
- package/build/hooks/use-focus.d.ts +2 -1
- package/build/hooks/use-focus.d.ts.map +1 -0
- package/build/hooks/use-focus.js +5 -4
- package/build/hooks/use-focus.js.map +1 -1
- package/build/hooks/use-input.d.ts +40 -1
- package/build/hooks/use-input.d.ts.map +1 -0
- package/build/hooks/use-input.js +65 -25
- package/build/hooks/use-input.js.map +1 -1
- package/build/hooks/use-is-screen-reader-enabled.d.ts +2 -1
- package/build/hooks/use-is-screen-reader-enabled.d.ts.map +1 -0
- package/build/hooks/use-is-screen-reader-enabled.js +2 -1
- package/build/hooks/use-is-screen-reader-enabled.js.map +1 -1
- package/build/hooks/use-paste.d.ts +35 -0
- package/build/hooks/use-paste.d.ts.map +1 -0
- package/build/hooks/use-paste.js +66 -0
- package/build/hooks/use-paste.js.map +1 -0
- package/build/hooks/use-stderr.d.ts +1 -1
- package/build/hooks/use-stderr.d.ts.map +1 -0
- package/build/hooks/use-stderr.js +1 -1
- package/build/hooks/use-stdin.d.ts +4 -2
- package/build/hooks/use-stdin.d.ts.map +1 -0
- package/build/hooks/use-stdin.js +2 -1
- package/build/hooks/use-stdin.js.map +1 -1
- package/build/hooks/use-stdout.d.ts +1 -1
- package/build/hooks/use-stdout.d.ts.map +1 -0
- package/build/hooks/use-stdout.js +1 -1
- package/build/hooks/use-window-size.d.ts +18 -0
- package/build/hooks/use-window-size.d.ts.map +1 -0
- package/build/hooks/use-window-size.js +22 -0
- package/build/hooks/use-window-size.js.map +1 -0
- package/build/index.d.ts +16 -1
- package/build/index.d.ts.map +1 -0
- package/build/index.js +8 -0
- package/build/index.js.map +1 -1
- package/build/ink.d.ts +94 -5
- package/build/ink.d.ts.map +1 -0
- package/build/ink.js +586 -81
- package/build/ink.js.map +1 -1
- package/build/input-parser.d.ts +10 -0
- package/build/input-parser.d.ts.map +1 -0
- package/build/input-parser.js +194 -0
- package/build/input-parser.js.map +1 -0
- package/build/instances.d.ts.map +1 -0
- package/build/kitty-keyboard.d.ts +23 -0
- package/build/kitty-keyboard.d.ts.map +1 -0
- package/build/kitty-keyboard.js +32 -0
- package/build/kitty-keyboard.js.map +1 -0
- package/build/log-update.d.ts +7 -1
- package/build/log-update.d.ts.map +1 -0
- package/build/log-update.js +181 -56
- package/build/log-update.js.map +1 -1
- package/build/measure-element.d.ts +15 -3
- package/build/measure-element.d.ts.map +1 -0
- package/build/measure-element.js +31 -5
- package/build/measure-element.js.map +1 -1
- package/build/measure-text.d.ts +2 -0
- package/build/measure-text.d.ts.map +1 -0
- package/build/measure-text.js +13 -11
- package/build/measure-text.js.map +1 -1
- package/build/output.d.ts +2 -1
- package/build/output.d.ts.map +1 -0
- package/build/output.js +62 -58
- package/build/output.js.map +1 -1
- package/build/parse-keypress.d.ts +9 -3
- package/build/parse-keypress.d.ts.map +1 -0
- package/build/parse-keypress.js +283 -13
- package/build/parse-keypress.js.map +1 -1
- package/build/reconciler.d.ts.map +1 -0
- package/build/reconciler.js +57 -37
- package/build/reconciler.js.map +1 -1
- package/build/render-background.d.ts.map +1 -0
- package/build/render-background.js +2 -0
- package/build/render-background.js.map +1 -1
- package/build/render-border.d.ts +1 -1
- package/build/render-border.d.ts.map +1 -0
- package/build/render-border.js +35 -24
- package/build/render-border.js.map +1 -1
- package/build/render-node-to-output.d.ts +1 -1
- package/build/render-node-to-output.d.ts.map +1 -0
- package/build/render-node-to-output.js +35 -18
- package/build/render-node-to-output.js.map +1 -1
- package/build/render-to-string.d.ts +38 -0
- package/build/render-to-string.d.ts.map +1 -0
- package/build/render-to-string.js +116 -0
- package/build/render-to-string.js.map +1 -0
- package/build/render.d.ts +91 -3
- package/build/render.d.ts.map +1 -0
- package/build/render.js +17 -5
- package/build/render.js.map +1 -1
- package/build/renderer.d.ts.map +1 -0
- package/build/sanitize-ansi.d.ts +2 -0
- package/build/sanitize-ansi.d.ts.map +1 -0
- package/build/sanitize-ansi.js +27 -0
- package/build/sanitize-ansi.js.map +1 -0
- package/build/squash-text-nodes.d.ts.map +1 -0
- package/build/squash-text-nodes.js +18 -1
- package/build/squash-text-nodes.js.map +1 -1
- package/build/styles.d.ts +75 -37
- package/build/styles.d.ts.map +1 -0
- package/build/styles.js +87 -44
- package/build/styles.js.map +1 -1
- package/build/utils.d.ts +9 -2
- package/build/utils.d.ts.map +1 -0
- package/build/utils.js +18 -3
- package/build/utils.js.map +1 -1
- package/build/wrap-text.d.ts +2 -0
- package/build/wrap-text.d.ts.map +1 -0
- package/build/wrap-text.js +21 -18
- package/build/wrap-text.js.map +1 -1
- package/build/write-synchronized.d.ts +4 -0
- package/build/write-synchronized.d.ts.map +1 -0
- package/build/write-synchronized.js +9 -0
- package/build/write-synchronized.js.map +1 -0
- package/package.json +46 -106
- package/readme.md +850 -64
- package/build/components/FixedLayout.d.ts +0 -12
- package/build/components/FixedLayout.js +0 -19
- package/build/components/FixedLayout.js.map +0 -1
- package/build/components/VirtualizedList.d.ts +0 -21
- package/build/components/VirtualizedList.js +0 -55
- package/build/components/VirtualizedList.js.map +0 -1
- package/build/hooks/use-mouse.d.ts +0 -15
- package/build/hooks/use-mouse.js +0 -121
- package/build/hooks/use-mouse.js.map +0 -1
- package/build/hooks/use-virtualization.d.ts +0 -19
- package/build/hooks/use-virtualization.js +0 -56
- package/build/hooks/use-virtualization.js.map +0 -1
package/build/output.js
CHANGED
|
@@ -1,36 +1,44 @@
|
|
|
1
1
|
import sliceAnsi from 'slice-ansi';
|
|
2
2
|
import stringWidth from 'string-width';
|
|
3
3
|
import { styledCharsFromTokens, styledCharsToString, tokenize, } from '@alcalzone/ansi-tokenize';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
let y2;
|
|
14
|
-
for (const c of clips) {
|
|
15
|
-
if (c.x1 !== undefined) {
|
|
16
|
-
x1 = x1 === undefined ? c.x1 : Math.max(x1, c.x1);
|
|
17
|
-
}
|
|
18
|
-
if (c.x2 !== undefined) {
|
|
19
|
-
x2 = x2 === undefined ? c.x2 : Math.min(x2, c.x2);
|
|
4
|
+
class OutputCaches {
|
|
5
|
+
widths = new Map();
|
|
6
|
+
blockWidths = new Map();
|
|
7
|
+
styledChars = new Map();
|
|
8
|
+
getStyledChars(line) {
|
|
9
|
+
let cached = this.styledChars.get(line);
|
|
10
|
+
if (cached === undefined) {
|
|
11
|
+
cached = styledCharsFromTokens(tokenize(line));
|
|
12
|
+
this.styledChars.set(line, cached);
|
|
20
13
|
}
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
return cached;
|
|
15
|
+
}
|
|
16
|
+
getStringWidth(text) {
|
|
17
|
+
let cached = this.widths.get(text);
|
|
18
|
+
if (cached === undefined) {
|
|
19
|
+
cached = stringWidth(text);
|
|
20
|
+
this.widths.set(text, cached);
|
|
23
21
|
}
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
return cached;
|
|
23
|
+
}
|
|
24
|
+
getWidestLine(text) {
|
|
25
|
+
let cached = this.blockWidths.get(text);
|
|
26
|
+
if (cached === undefined) {
|
|
27
|
+
let lineWidth = 0;
|
|
28
|
+
for (const line of text.split('\n')) {
|
|
29
|
+
lineWidth = Math.max(lineWidth, this.getStringWidth(line));
|
|
30
|
+
}
|
|
31
|
+
cached = lineWidth;
|
|
32
|
+
this.blockWidths.set(text, cached);
|
|
26
33
|
}
|
|
34
|
+
return cached;
|
|
27
35
|
}
|
|
28
|
-
|
|
29
|
-
};
|
|
36
|
+
}
|
|
30
37
|
export default class Output {
|
|
31
38
|
width;
|
|
32
39
|
height;
|
|
33
40
|
operations = [];
|
|
41
|
+
caches = new OutputCaches();
|
|
34
42
|
constructor(options) {
|
|
35
43
|
const { width, height } = options;
|
|
36
44
|
this.width = width;
|
|
@@ -45,7 +53,7 @@ export default class Output {
|
|
|
45
53
|
type: 'write',
|
|
46
54
|
x,
|
|
47
55
|
y,
|
|
48
|
-
text
|
|
56
|
+
text,
|
|
49
57
|
transformers,
|
|
50
58
|
});
|
|
51
59
|
}
|
|
@@ -87,14 +95,14 @@ export default class Output {
|
|
|
87
95
|
const { text, transformers } = operation;
|
|
88
96
|
let { x, y } = operation;
|
|
89
97
|
let lines = text.split('\n');
|
|
90
|
-
const clip =
|
|
98
|
+
const clip = clips.at(-1);
|
|
91
99
|
if (clip) {
|
|
92
100
|
const clipHorizontally = typeof clip?.x1 === 'number' && typeof clip?.x2 === 'number';
|
|
93
101
|
const clipVertically = typeof clip?.y1 === 'number' && typeof clip?.y2 === 'number';
|
|
94
102
|
// If text is positioned outside of clipping area altogether,
|
|
95
103
|
// skip to the next operation to avoid unnecessary calculations
|
|
96
104
|
if (clipHorizontally) {
|
|
97
|
-
const width =
|
|
105
|
+
const width = this.caches.getWidestLine(text);
|
|
98
106
|
if (x + width < clip.x1 || x > clip.x2) {
|
|
99
107
|
continue;
|
|
100
108
|
}
|
|
@@ -108,7 +116,7 @@ export default class Output {
|
|
|
108
116
|
if (clipHorizontally) {
|
|
109
117
|
lines = lines.map(line => {
|
|
110
118
|
const from = x < clip.x1 ? clip.x1 - x : 0;
|
|
111
|
-
const width =
|
|
119
|
+
const width = this.caches.getStringWidth(line);
|
|
112
120
|
const to = x + width > clip.x2 ? clip.x2 - x : width;
|
|
113
121
|
return sliceAnsi(line, from, to);
|
|
114
122
|
});
|
|
@@ -136,41 +144,34 @@ export default class Output {
|
|
|
136
144
|
for (const transformer of transformers) {
|
|
137
145
|
line = transformer(line, index);
|
|
138
146
|
}
|
|
139
|
-
const characters =
|
|
147
|
+
const characters = this.caches.getStyledChars(line);
|
|
140
148
|
let offsetX = x;
|
|
149
|
+
// Nothing to write (e.g. line was clipped away).
|
|
150
|
+
if (characters.length === 0) {
|
|
151
|
+
offsetY++;
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
const spaceCell = {
|
|
155
|
+
type: 'char',
|
|
156
|
+
value: ' ',
|
|
157
|
+
fullWidth: false,
|
|
158
|
+
styles: [],
|
|
159
|
+
};
|
|
160
|
+
// Wide characters (e.g. CJK) occupy two cells: a leading
|
|
161
|
+
// cell with the character and a trailing placeholder with
|
|
162
|
+
// value ''. When an overlapping write lands in the middle
|
|
163
|
+
// of a wide character, the boundary cells need cleanup so
|
|
164
|
+
// the terminal never renders a half-visible wide character.
|
|
165
|
+
if (currentLine[offsetX]?.value === '' &&
|
|
166
|
+
offsetX > 0 &&
|
|
167
|
+
this.caches.getStringWidth(currentLine[offsetX - 1]?.value ?? '') >
|
|
168
|
+
1) {
|
|
169
|
+
currentLine[offsetX - 1] = spaceCell;
|
|
170
|
+
}
|
|
141
171
|
for (const character of characters) {
|
|
142
|
-
// Check if this is a zero-width character (like U+FE0F emoji variation selector)
|
|
143
|
-
const rawWidth = stringWidth(character.value);
|
|
144
|
-
if (rawWidth === 0) {
|
|
145
|
-
// Zero-width characters (like variation selectors) should be appended
|
|
146
|
-
// to the previous cell rather than taking up their own space
|
|
147
|
-
const previousCell = currentLine[offsetX - 1];
|
|
148
|
-
if (previousCell?.value) {
|
|
149
|
-
// Measure width before and after appending to detect width changes
|
|
150
|
-
// This handles cases like ⏭ (width 1) + ️ (VS16) = ⏭️ (width 2)
|
|
151
|
-
const prevWidth = stringWidth(previousCell.value);
|
|
152
|
-
previousCell.value += character.value;
|
|
153
|
-
const newWidth = stringWidth(previousCell.value);
|
|
154
|
-
// If combining increased the display width, add placeholder cells
|
|
155
|
-
const extraWidth = newWidth - prevWidth;
|
|
156
|
-
if (extraWidth > 0) {
|
|
157
|
-
for (let i = 0; i < extraWidth; i++) {
|
|
158
|
-
currentLine[offsetX + i] = {
|
|
159
|
-
type: 'char',
|
|
160
|
-
value: '',
|
|
161
|
-
fullWidth: false,
|
|
162
|
-
styles: previousCell.styles,
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
offsetX += extraWidth;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
// Don't advance offsetX for zero-width characters (already handled above if width changed)
|
|
169
|
-
continue;
|
|
170
|
-
}
|
|
171
172
|
currentLine[offsetX] = character;
|
|
172
|
-
// Determine printed width using string-width
|
|
173
|
-
const characterWidth = Math.max(1,
|
|
173
|
+
// Determine printed width using string-width to align with measurement
|
|
174
|
+
const characterWidth = Math.max(1, this.caches.getStringWidth(character.value));
|
|
174
175
|
// For multi-column characters, clear following cells to avoid stray spaces/artifacts
|
|
175
176
|
if (characterWidth > 1) {
|
|
176
177
|
for (let index = 1; index < characterWidth; index++) {
|
|
@@ -184,6 +185,9 @@ export default class Output {
|
|
|
184
185
|
}
|
|
185
186
|
offsetX += characterWidth;
|
|
186
187
|
}
|
|
188
|
+
if (currentLine[offsetX]?.value === '') {
|
|
189
|
+
currentLine[offsetX] = spaceCell;
|
|
190
|
+
}
|
|
187
191
|
offsetY++;
|
|
188
192
|
}
|
|
189
193
|
}
|
package/build/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAEN,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,GACR,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import { Buffer } from 'node:buffer';
|
|
2
1
|
export declare const nonAlphanumericKeys: string[];
|
|
3
2
|
type ParsedKey = {
|
|
4
3
|
name: string;
|
|
5
4
|
ctrl: boolean;
|
|
6
5
|
meta: boolean;
|
|
7
6
|
shift: boolean;
|
|
8
|
-
option: boolean;
|
|
9
7
|
sequence: string;
|
|
10
8
|
raw: string | undefined;
|
|
11
9
|
code?: string;
|
|
10
|
+
super?: boolean;
|
|
11
|
+
hyper?: boolean;
|
|
12
|
+
capsLock?: boolean;
|
|
13
|
+
numLock?: boolean;
|
|
14
|
+
eventType?: 'press' | 'repeat' | 'release';
|
|
15
|
+
isKittyProtocol?: boolean;
|
|
16
|
+
text?: string;
|
|
17
|
+
isPrintable?: boolean;
|
|
12
18
|
};
|
|
13
|
-
declare const parseKeypress: (s?:
|
|
19
|
+
declare const parseKeypress: (s?: Uint8Array | string) => ParsedKey;
|
|
14
20
|
export default parseKeypress;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-keypress.d.ts","sourceRoot":"","sources":["../src/parse-keypress.ts"],"names":[],"mappings":"AAoGA,eAAO,MAAM,mBAAmB,UAA2C,CAAC;AAmC5E,KAAK,SAAS,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AA0QF,QAAA,MAAM,aAAa,GAAI,IAAG,UAAU,GAAG,MAAW,KAAG,SA2HpD,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
package/build/parse-keypress.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Copied from https://github.com/enquirer/enquirer/blob/36785f3399a41cd61e9d28d1eb9c2fcd73d69b4c/lib/keypress.js
|
|
2
|
-
import {
|
|
2
|
+
import { kittyModifiers } from './kitty-keyboard.js';
|
|
3
|
+
const textDecoder = new TextDecoder();
|
|
3
4
|
const metaKeyCodeRe = /^(?:\x1b)([a-zA-Z0-9])$/;
|
|
4
5
|
const fnKeyRe = /^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/;
|
|
5
6
|
const keyName = {
|
|
@@ -8,6 +9,11 @@ const keyName = {
|
|
|
8
9
|
OQ: 'f2',
|
|
9
10
|
OR: 'f3',
|
|
10
11
|
OS: 'f4',
|
|
12
|
+
/* vt220-style ESC [ letter (e.g. Ctrl+F1 sends ESC [ 1 ; 5 P) */
|
|
13
|
+
'[P': 'f1',
|
|
14
|
+
'[Q': 'f2',
|
|
15
|
+
'[R': 'f3',
|
|
16
|
+
'[S': 'f4',
|
|
11
17
|
/* xterm/rxvt ESC [ number ~ */
|
|
12
18
|
'[11~': 'f1',
|
|
13
19
|
'[12~': 'f2',
|
|
@@ -115,15 +121,257 @@ const isCtrlKey = (code) => {
|
|
|
115
121
|
'[8^',
|
|
116
122
|
].includes(code);
|
|
117
123
|
};
|
|
124
|
+
// Kitty keyboard protocol: CSI codepoint ; modifiers [: eventType] [; text-as-codepoints] u
|
|
125
|
+
const kittyKeyRe = /^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/;
|
|
126
|
+
// Kitty-enhanced special keys: CSI number ; modifiers : eventType {letter|~}
|
|
127
|
+
// These are legacy CSI sequences enhanced with the :eventType field.
|
|
128
|
+
// Examples: \x1b[1;1:1A (up arrow press), \x1b[3;1:3~ (delete release)
|
|
129
|
+
const kittySpecialKeyRe = /^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/;
|
|
130
|
+
// Letter-terminated special key names (CSI 1 ; mods letter)
|
|
131
|
+
const kittySpecialLetterKeys = {
|
|
132
|
+
A: 'up',
|
|
133
|
+
B: 'down',
|
|
134
|
+
C: 'right',
|
|
135
|
+
D: 'left',
|
|
136
|
+
E: 'clear',
|
|
137
|
+
F: 'end',
|
|
138
|
+
H: 'home',
|
|
139
|
+
P: 'f1',
|
|
140
|
+
Q: 'f2',
|
|
141
|
+
R: 'f3',
|
|
142
|
+
S: 'f4',
|
|
143
|
+
};
|
|
144
|
+
// Number-terminated special key names (CSI number ; mods ~)
|
|
145
|
+
const kittySpecialNumberKeys = {
|
|
146
|
+
2: 'insert',
|
|
147
|
+
3: 'delete',
|
|
148
|
+
5: 'pageup',
|
|
149
|
+
6: 'pagedown',
|
|
150
|
+
7: 'home',
|
|
151
|
+
8: 'end',
|
|
152
|
+
11: 'f1',
|
|
153
|
+
12: 'f2',
|
|
154
|
+
13: 'f3',
|
|
155
|
+
14: 'f4',
|
|
156
|
+
15: 'f5',
|
|
157
|
+
17: 'f6',
|
|
158
|
+
18: 'f7',
|
|
159
|
+
19: 'f8',
|
|
160
|
+
20: 'f9',
|
|
161
|
+
21: 'f10',
|
|
162
|
+
23: 'f11',
|
|
163
|
+
24: 'f12',
|
|
164
|
+
};
|
|
165
|
+
// Map of special codepoints to key names in kitty protocol
|
|
166
|
+
const kittyCodepointNames = {
|
|
167
|
+
27: 'escape',
|
|
168
|
+
// 13 (return) and 32 (space) are handled before this lookup
|
|
169
|
+
// in parseKittyKeypress so they can be marked as printable.
|
|
170
|
+
9: 'tab',
|
|
171
|
+
127: 'backspace',
|
|
172
|
+
8: 'backspace',
|
|
173
|
+
57358: 'capslock',
|
|
174
|
+
57359: 'scrolllock',
|
|
175
|
+
57360: 'numlock',
|
|
176
|
+
57361: 'printscreen',
|
|
177
|
+
57362: 'pause',
|
|
178
|
+
57363: 'menu',
|
|
179
|
+
57376: 'f13',
|
|
180
|
+
57377: 'f14',
|
|
181
|
+
57378: 'f15',
|
|
182
|
+
57379: 'f16',
|
|
183
|
+
57380: 'f17',
|
|
184
|
+
57381: 'f18',
|
|
185
|
+
57382: 'f19',
|
|
186
|
+
57383: 'f20',
|
|
187
|
+
57384: 'f21',
|
|
188
|
+
57385: 'f22',
|
|
189
|
+
57386: 'f23',
|
|
190
|
+
57387: 'f24',
|
|
191
|
+
57388: 'f25',
|
|
192
|
+
57389: 'f26',
|
|
193
|
+
57390: 'f27',
|
|
194
|
+
57391: 'f28',
|
|
195
|
+
57392: 'f29',
|
|
196
|
+
57393: 'f30',
|
|
197
|
+
57394: 'f31',
|
|
198
|
+
57395: 'f32',
|
|
199
|
+
57396: 'f33',
|
|
200
|
+
57397: 'f34',
|
|
201
|
+
57398: 'f35',
|
|
202
|
+
57399: 'kp0',
|
|
203
|
+
57400: 'kp1',
|
|
204
|
+
57401: 'kp2',
|
|
205
|
+
57402: 'kp3',
|
|
206
|
+
57403: 'kp4',
|
|
207
|
+
57404: 'kp5',
|
|
208
|
+
57405: 'kp6',
|
|
209
|
+
57406: 'kp7',
|
|
210
|
+
57407: 'kp8',
|
|
211
|
+
57408: 'kp9',
|
|
212
|
+
57409: 'kpdecimal',
|
|
213
|
+
57410: 'kpdivide',
|
|
214
|
+
57411: 'kpmultiply',
|
|
215
|
+
57412: 'kpsubtract',
|
|
216
|
+
57413: 'kpadd',
|
|
217
|
+
57414: 'kpenter',
|
|
218
|
+
57415: 'kpequal',
|
|
219
|
+
57416: 'kpseparator',
|
|
220
|
+
57417: 'kpleft',
|
|
221
|
+
57418: 'kpright',
|
|
222
|
+
57419: 'kpup',
|
|
223
|
+
57420: 'kpdown',
|
|
224
|
+
57421: 'kppageup',
|
|
225
|
+
57422: 'kppagedown',
|
|
226
|
+
57423: 'kphome',
|
|
227
|
+
57424: 'kpend',
|
|
228
|
+
57425: 'kpinsert',
|
|
229
|
+
57426: 'kpdelete',
|
|
230
|
+
57427: 'kpbegin',
|
|
231
|
+
57428: 'mediaplay',
|
|
232
|
+
57429: 'mediapause',
|
|
233
|
+
57430: 'mediaplaypause',
|
|
234
|
+
57431: 'mediareverse',
|
|
235
|
+
57432: 'mediastop',
|
|
236
|
+
57433: 'mediafastforward',
|
|
237
|
+
57434: 'mediarewind',
|
|
238
|
+
57435: 'mediatracknext',
|
|
239
|
+
57436: 'mediatrackprevious',
|
|
240
|
+
57437: 'mediarecord',
|
|
241
|
+
57438: 'lowervolume',
|
|
242
|
+
57439: 'raisevolume',
|
|
243
|
+
57440: 'mutevolume',
|
|
244
|
+
57441: 'leftshift',
|
|
245
|
+
57442: 'leftcontrol',
|
|
246
|
+
57443: 'leftalt',
|
|
247
|
+
57444: 'leftsuper',
|
|
248
|
+
57445: 'lefthyper',
|
|
249
|
+
57446: 'leftmeta',
|
|
250
|
+
57447: 'rightshift',
|
|
251
|
+
57448: 'rightcontrol',
|
|
252
|
+
57449: 'rightalt',
|
|
253
|
+
57450: 'rightsuper',
|
|
254
|
+
57451: 'righthyper',
|
|
255
|
+
57452: 'rightmeta',
|
|
256
|
+
57453: 'isoLevel3Shift',
|
|
257
|
+
57454: 'isoLevel5Shift',
|
|
258
|
+
};
|
|
259
|
+
// Valid Unicode codepoint range, excluding surrogates
|
|
260
|
+
const isValidCodepoint = (cp) => cp >= 0 && cp <= 0x10_ffff && !(cp >= 0xd8_00 && cp <= 0xdf_ff);
|
|
261
|
+
const safeFromCodePoint = (cp) => isValidCodepoint(cp) ? String.fromCodePoint(cp) : '?';
|
|
262
|
+
function resolveEventType(value) {
|
|
263
|
+
if (value === 3)
|
|
264
|
+
return 'release';
|
|
265
|
+
if (value === 2)
|
|
266
|
+
return 'repeat';
|
|
267
|
+
return 'press';
|
|
268
|
+
}
|
|
269
|
+
function parseKittyModifiers(modifiers) {
|
|
270
|
+
return {
|
|
271
|
+
ctrl: !!(modifiers & kittyModifiers.ctrl),
|
|
272
|
+
shift: !!(modifiers & kittyModifiers.shift),
|
|
273
|
+
meta: !!(modifiers & (kittyModifiers.meta | kittyModifiers.alt)),
|
|
274
|
+
super: !!(modifiers & kittyModifiers.super),
|
|
275
|
+
hyper: !!(modifiers & kittyModifiers.hyper),
|
|
276
|
+
capsLock: !!(modifiers & kittyModifiers.capsLock),
|
|
277
|
+
numLock: !!(modifiers & kittyModifiers.numLock),
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
const parseKittyKeypress = (s) => {
|
|
281
|
+
const match = kittyKeyRe.exec(s);
|
|
282
|
+
if (!match)
|
|
283
|
+
return null;
|
|
284
|
+
const codepoint = parseInt(match[1], 10);
|
|
285
|
+
const modifiers = match[2] ? Math.max(0, parseInt(match[2], 10) - 1) : 0;
|
|
286
|
+
const eventType = match[3] ? parseInt(match[3], 10) : 1;
|
|
287
|
+
const textField = match[4];
|
|
288
|
+
// Bail on invalid primary codepoint
|
|
289
|
+
if (!isValidCodepoint(codepoint)) {
|
|
290
|
+
return null;
|
|
291
|
+
}
|
|
292
|
+
// Parse text-as-codepoints field (colon-separated Unicode codepoints)
|
|
293
|
+
let text;
|
|
294
|
+
if (textField) {
|
|
295
|
+
text = textField
|
|
296
|
+
.split(':')
|
|
297
|
+
.map(cp => safeFromCodePoint(parseInt(cp, 10)))
|
|
298
|
+
.join('');
|
|
299
|
+
}
|
|
300
|
+
// Determine key name from codepoint
|
|
301
|
+
let name;
|
|
302
|
+
let isPrintable;
|
|
303
|
+
if (codepoint === 32) {
|
|
304
|
+
name = 'space';
|
|
305
|
+
isPrintable = true;
|
|
306
|
+
}
|
|
307
|
+
else if (codepoint === 13) {
|
|
308
|
+
name = 'return';
|
|
309
|
+
isPrintable = true;
|
|
310
|
+
}
|
|
311
|
+
else if (kittyCodepointNames[codepoint]) {
|
|
312
|
+
name = kittyCodepointNames[codepoint];
|
|
313
|
+
isPrintable = false;
|
|
314
|
+
}
|
|
315
|
+
else if (codepoint >= 1 && codepoint <= 26) {
|
|
316
|
+
// Ctrl+letter comes as codepoint 1-26
|
|
317
|
+
name = String.fromCodePoint(codepoint + 96); // 'a' is 97
|
|
318
|
+
isPrintable = false;
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
name = safeFromCodePoint(codepoint).toLowerCase();
|
|
322
|
+
isPrintable = true;
|
|
323
|
+
}
|
|
324
|
+
// Default text to the character from the codepoint when not explicitly
|
|
325
|
+
// provided by the protocol, so keys like space and return produce their
|
|
326
|
+
// expected text input (' ' and '\r' respectively).
|
|
327
|
+
if (isPrintable && !text) {
|
|
328
|
+
text = safeFromCodePoint(codepoint);
|
|
329
|
+
}
|
|
330
|
+
return {
|
|
331
|
+
name,
|
|
332
|
+
...parseKittyModifiers(modifiers),
|
|
333
|
+
eventType: resolveEventType(eventType),
|
|
334
|
+
sequence: s,
|
|
335
|
+
raw: s,
|
|
336
|
+
isKittyProtocol: true,
|
|
337
|
+
isPrintable,
|
|
338
|
+
text,
|
|
339
|
+
};
|
|
340
|
+
};
|
|
341
|
+
// Parse kitty-enhanced special key sequences (arrow keys, function keys, etc.)
|
|
342
|
+
// These use the legacy CSI format but with an added :eventType field.
|
|
343
|
+
const parseKittySpecialKey = (s) => {
|
|
344
|
+
const match = kittySpecialKeyRe.exec(s);
|
|
345
|
+
if (!match)
|
|
346
|
+
return null;
|
|
347
|
+
const number = parseInt(match[1], 10);
|
|
348
|
+
const modifiers = Math.max(0, parseInt(match[2], 10) - 1);
|
|
349
|
+
const eventType = parseInt(match[3], 10);
|
|
350
|
+
const terminator = match[4];
|
|
351
|
+
const name = terminator === '~'
|
|
352
|
+
? kittySpecialNumberKeys[number]
|
|
353
|
+
: kittySpecialLetterKeys[terminator];
|
|
354
|
+
if (!name)
|
|
355
|
+
return null;
|
|
356
|
+
return {
|
|
357
|
+
name,
|
|
358
|
+
...parseKittyModifiers(modifiers),
|
|
359
|
+
eventType: resolveEventType(eventType),
|
|
360
|
+
sequence: s,
|
|
361
|
+
raw: s,
|
|
362
|
+
isKittyProtocol: true,
|
|
363
|
+
isPrintable: false,
|
|
364
|
+
};
|
|
365
|
+
};
|
|
118
366
|
const parseKeypress = (s = '') => {
|
|
119
367
|
let parts;
|
|
120
|
-
if (
|
|
368
|
+
if (s instanceof Uint8Array) {
|
|
121
369
|
if (s[0] > 127 && s[1] === undefined) {
|
|
122
370
|
s[0] -= 128;
|
|
123
|
-
s = '\x1b' +
|
|
371
|
+
s = '\x1b' + textDecoder.decode(s);
|
|
124
372
|
}
|
|
125
373
|
else {
|
|
126
|
-
s =
|
|
374
|
+
s = textDecoder.decode(s);
|
|
127
375
|
}
|
|
128
376
|
}
|
|
129
377
|
else if (s !== undefined && typeof s !== 'string') {
|
|
@@ -132,20 +380,42 @@ const parseKeypress = (s = '') => {
|
|
|
132
380
|
else if (!s) {
|
|
133
381
|
s = '';
|
|
134
382
|
}
|
|
383
|
+
// Try kitty keyboard protocol parsers first
|
|
384
|
+
const kittyResult = parseKittyKeypress(s);
|
|
385
|
+
if (kittyResult)
|
|
386
|
+
return kittyResult;
|
|
387
|
+
const kittySpecialResult = parseKittySpecialKey(s);
|
|
388
|
+
if (kittySpecialResult)
|
|
389
|
+
return kittySpecialResult;
|
|
390
|
+
// If the input matched the kitty CSI-u pattern but was rejected (e.g.,
|
|
391
|
+
// invalid codepoint), return a safe empty keypress instead of falling
|
|
392
|
+
// through to legacy parsing which can produce unsafe states (undefined name)
|
|
393
|
+
if (kittyKeyRe.test(s)) {
|
|
394
|
+
return {
|
|
395
|
+
name: '',
|
|
396
|
+
ctrl: false,
|
|
397
|
+
meta: false,
|
|
398
|
+
shift: false,
|
|
399
|
+
sequence: s,
|
|
400
|
+
raw: s,
|
|
401
|
+
isKittyProtocol: true,
|
|
402
|
+
isPrintable: false,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
135
405
|
const key = {
|
|
136
406
|
name: '',
|
|
137
407
|
ctrl: false,
|
|
138
408
|
meta: false,
|
|
139
409
|
shift: false,
|
|
140
|
-
option: false,
|
|
141
410
|
sequence: s,
|
|
142
411
|
raw: s,
|
|
143
412
|
};
|
|
144
413
|
key.sequence = key.sequence || s || key.name;
|
|
145
|
-
if (s === '\r') {
|
|
146
|
-
// carriage return
|
|
414
|
+
if (s === '\r' || s === '\x1b\r') {
|
|
415
|
+
// carriage return (or meta+return on macOS)
|
|
147
416
|
key.raw = undefined;
|
|
148
417
|
key.name = 'return';
|
|
418
|
+
key.meta = s.length === 2;
|
|
149
419
|
}
|
|
150
420
|
else if (s === '\n') {
|
|
151
421
|
// enter, should have been called linefeed
|
|
@@ -161,9 +431,8 @@ const parseKeypress = (s = '') => {
|
|
|
161
431
|
key.meta = s.charAt(0) === '\x1b';
|
|
162
432
|
}
|
|
163
433
|
else if (s === '\x7f' || s === '\x1b\x7f') {
|
|
164
|
-
//
|
|
165
|
-
|
|
166
|
-
key.name = 'delete';
|
|
434
|
+
// backspace
|
|
435
|
+
key.name = 'backspace';
|
|
167
436
|
key.meta = s.charAt(0) === '\x1b';
|
|
168
437
|
}
|
|
169
438
|
else if (s === '\x1b' || s === '\x1b\x1b') {
|
|
@@ -195,13 +464,14 @@ const parseKeypress = (s = '') => {
|
|
|
195
464
|
}
|
|
196
465
|
else if ((parts = metaKeyCodeRe.exec(s))) {
|
|
197
466
|
// meta+character key
|
|
467
|
+
key.name = parts[1].toLowerCase();
|
|
198
468
|
key.meta = true;
|
|
199
469
|
key.shift = /^[A-Z]$/.test(parts[1]);
|
|
200
470
|
}
|
|
201
471
|
else if ((parts = fnKeyRe.exec(s))) {
|
|
202
472
|
const segs = [...s];
|
|
203
473
|
if (segs[0] === '\u001b' && segs[1] === '\u001b') {
|
|
204
|
-
key.
|
|
474
|
+
key.meta = true;
|
|
205
475
|
}
|
|
206
476
|
// ansi escape sequence
|
|
207
477
|
// reassemble the key code leaving out leading \x1b's,
|
|
@@ -212,10 +482,10 @@ const parseKeypress = (s = '') => {
|
|
|
212
482
|
const modifier = (parts[3] || parts[5] || 1) - 1;
|
|
213
483
|
// Parse the key modifier
|
|
214
484
|
key.ctrl = !!(modifier & 4);
|
|
215
|
-
key.meta = !!(modifier & 10);
|
|
485
|
+
key.meta = key.meta || !!(modifier & 10);
|
|
216
486
|
key.shift = !!(modifier & 1);
|
|
217
487
|
key.code = code;
|
|
218
|
-
key.name = keyName[code];
|
|
488
|
+
key.name = keyName[code] ?? '';
|
|
219
489
|
key.shift = isShiftKey(code) || key.shift;
|
|
220
490
|
key.ctrl = isCtrlKey(code) || key.ctrl;
|
|
221
491
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-keypress.js","sourceRoot":"","sources":["../src/parse-keypress.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-keypress.js","sourceRoot":"","sources":["../src/parse-keypress.ts"],"names":[],"mappings":"AAAA,iHAAiH;AACjH,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAEhD,MAAM,OAAO,GACZ,4EAA4E,CAAC;AAE9E,MAAM,OAAO,GAA2B;IACvC,8BAA8B;IAC9B,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,iEAAiE;IACjE,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,+BAA+B;IAC/B,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,mCAAmC;IACnC,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,YAAY;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,wBAAwB;IACxB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,8BAA8B;IAC9B,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,+BAA+B;IAC/B,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,UAAU;IACjB,WAAW;IACX,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,UAAU;IAClB,UAAU;IACV,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,KAAK;IACZ,8BAA8B;IAC9B,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IAEb,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,KAAK;IAEZ,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,OAAO;IAEX,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,KAAK;IACZ,WAAW;IACX,IAAI,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;AAE5E,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;IACnC,OAAO;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;KACJ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;IAClC,OAAO;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;KACL,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;AAwBF,4FAA4F;AAC5F,MAAM,UAAU,GAAG,oDAAoD,CAAC;AAExE,6EAA6E;AAC7E,qEAAqE;AACrE,uEAAuE;AACvE,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;AAEjE,4DAA4D;AAC5D,MAAM,sBAAsB,GAA2B;IACtD,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;CACP,CAAC;AAEF,4DAA4D;AAC5D,MAAM,sBAAsB,GAA2B;IACtD,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,KAAK;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;CACT,CAAC;AAEF,2DAA2D;AAC3D,MAAM,mBAAmB,GAA2B;IACnD,EAAE,EAAE,QAAQ;IACZ,4DAA4D;IAC5D,4DAA4D;IAC5D,CAAC,EAAE,KAAK;IACR,GAAG,EAAE,WAAW;IAChB,CAAC,EAAE,WAAW;IACd,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,gBAAgB;IACvB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,gBAAgB;IACvB,KAAK,EAAE,oBAAoB;IAC3B,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,gBAAgB;IACvB,KAAK,EAAE,gBAAgB;CACvB,CAAC;AAEF,sDAAsD;AACtD,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAW,EAAE,CAChD,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAEjE,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAU,EAAE,CAChD,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAIvD,SAAS,gBAAgB,CAAC,KAAa;IACtC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACjC,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAC3B,SAAiB;IAKjB,OAAO;QACN,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC;QACzC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;QAC3C,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;QAC3C,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;QAC3C,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC;QACjD,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC;KAC/C,CAAC;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAoB,EAAE;IAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,oCAAoC;IACpC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sEAAsE;IACtE,IAAI,IAAwB,CAAC;IAC7B,IAAI,SAAS,EAAE,CAAC;QACf,IAAI,GAAG,SAAS;aACd,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;aAC9C,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;IAED,oCAAoC;IACpC,IAAI,IAAY,CAAC;IACjB,IAAI,WAAoB,CAAC;IACzB,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACtB,IAAI,GAAG,OAAO,CAAC;QACf,WAAW,GAAG,IAAI,CAAC;IACpB,CAAC;SAAM,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QAC7B,IAAI,GAAG,QAAQ,CAAC;QAChB,WAAW,GAAG,IAAI,CAAC;IACpB,CAAC;SAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAE,CAAC;QACvC,WAAW,GAAG,KAAK,CAAC;IACrB,CAAC;SAAM,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;QAC9C,sCAAsC;QACtC,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY;QACzD,WAAW,GAAG,KAAK,CAAC;IACrB,CAAC;SAAM,CAAC;QACP,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,WAAW,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,mDAAmD;IACnD,IAAI,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,OAAO;QACN,IAAI;QACJ,GAAG,mBAAmB,CAAC,SAAS,CAAC;QACjC,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACtC,QAAQ,EAAE,CAAC;QACX,GAAG,EAAE,CAAC;QACN,eAAe,EAAE,IAAI;QACrB,WAAW;QACX,IAAI;KACJ,CAAC;AACH,CAAC,CAAC;AAEF,+EAA+E;AAC/E,sEAAsE;AACtE,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAoB,EAAE;IAC5D,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IAE7B,MAAM,IAAI,GACT,UAAU,KAAK,GAAG;QACjB,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC;QAChC,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAEvC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO;QACN,IAAI;QACJ,GAAG,mBAAmB,CAAC,SAAS,CAAC;QACjC,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACtC,QAAQ,EAAE,CAAC;QACX,GAAG,EAAE,CAAC;QACN,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,KAAK;KAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAyB,EAAE,EAAa,EAAE;IAChE,IAAI,KAAK,CAAC;IAEV,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACtC,CAAC,CAAC,CAAC,CAAuB,IAAI,GAAG,CAAC;YACnC,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACP,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACF,CAAC;SAAM,IAAI,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACrD,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACf,CAAC;SAAM,IAAI,CAAC,CAAC,EAAE,CAAC;QACf,CAAC,GAAG,EAAE,CAAC;IACR,CAAC;IAED,4CAA4C;IAC5C,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,kBAAkB;QAAE,OAAO,kBAAkB,CAAC;IAElD,uEAAuE;IACvE,sEAAsE;IACtE,6EAA6E;IAC7E,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO;YACN,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,CAAC;YACX,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,KAAK;SAClB,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAc;QACtB,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,CAAC;QACX,GAAG,EAAE,CAAC;KACN,CAAC;IAEF,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC;IAE7C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QAClC,4CAA4C;QAC5C,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC;QACpB,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;QACpB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC3B,CAAC;SAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACvB,0CAA0C;QAC1C,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;IACpB,CAAC;SAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM;QACN,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IAClB,CAAC;SAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACzC,sBAAsB;QACtB,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC;QACvB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IACnC,CAAC;SAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;QAC7C,YAAY;QACZ,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC;QACvB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IACnC,CAAC;SAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;QAC7C,aAAa;QACb,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;QACpB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC3B,CAAC;SAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC3B,CAAC;SAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QAC1C,cAAc;QACd,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,CAAC;SAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACnD,SAAS;QACT,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;IACrB,CAAC;SAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACnD,mBAAmB;QACnB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IACd,CAAC;SAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACnD,eAAe;QACf,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;IAClB,CAAC;SAAM,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,qBAAqB;QACrB,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;QACnC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAChB,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAEpB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,uBAAuB;QACvB,sDAAsD;QACtD,6DAA6D;QAC7D,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;aACnD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,EAAE,CAAC,CAAC;QAEX,MAAM,QAAQ,GAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAY,GAAG,CAAC,CAAC;QAE7D,yBAAyB;QACzB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC5B,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QACzC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC7B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAEhB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC;QAC1C,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"AACA,OAAO,gBAAqC,MAAM,kBAAkB,CAAC;AAQrE,OAAO,EAWN,KAAK,QAAQ,EAEb,KAAK,UAAU,EACf,MAAM,UAAU,CAAC;;AAkHlB,wBAuQG"}
|