@geometra/cli 1.14.5 → 1.15.0

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.
@@ -1,12 +1,19 @@
1
1
  /**
2
- * Composites multiple Geometra WebSocket views into a single terminal output.
3
- * Each view gets a vertical slice of the terminal, rendered top-to-bottom.
2
+ * Composites multiple Geometra WebSocket views into a scrollable terminal.
3
+ *
4
+ * Renders at readable scale (width-based) into a virtual grid that can be
5
+ * taller than the terminal. Arrow keys scroll the viewport up/down.
6
+ * Text truncates with "…" instead of overflowing.
4
7
  */
5
8
  export declare class TerminalCompositor {
6
9
  private views;
7
- private width;
8
- private height;
9
- private grid;
10
+ private termWidth;
11
+ private termHeight;
12
+ /** Virtual grid — can be taller than the terminal */
13
+ private vGrid;
14
+ private vHeight;
15
+ /** Scroll offset (which virtual row is at the top of the terminal) */
16
+ private scrollY;
10
17
  private renderScheduled;
11
18
  constructor(urls: string[], options?: {
12
19
  width?: number;
@@ -14,11 +21,12 @@ export declare class TerminalCompositor {
14
21
  });
15
22
  start(): void;
16
23
  close(): void;
24
+ private setupKeyboardScroll;
17
25
  private connectView;
18
26
  private scheduleRender;
19
- private computeRowAllocation;
20
27
  private compositeRender;
21
- private paintView;
28
+ /** Write the visible viewport slice of vGrid to the terminal */
29
+ private flushViewport;
22
30
  private paintNode;
23
31
  private paintBox;
24
32
  private paintText;
@@ -1 +1 @@
1
- {"version":3,"file":"compositor.d.ts","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"AAsEA;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,eAAe,CAAQ;gBAG7B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAe/C,KAAK,IAAI,IAAI;IAQb,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,QAAQ;IA+BhB,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,UAAU;CASnB"}
1
+ {"version":3,"file":"compositor.d.ts","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"AAkEA;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,UAAU,CAAQ;IAC1B,qDAAqD;IACrD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAI;IACnB,sEAAsE;IACtE,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,eAAe,CAAQ;gBAG7B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAa/C,KAAK,IAAI,IAAI;IAMb,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;IA2CvB,gEAAgE;IAChE,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,QAAQ;IA8BhB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,UAAU;CASnB"}
@@ -24,10 +24,9 @@ function parseColor(color) {
24
24
  if (color.startsWith('#')) {
25
25
  return [parseInt(color.slice(1, 3), 16), parseInt(color.slice(3, 5), 16), parseInt(color.slice(5, 7), 16)];
26
26
  }
27
- const rgbaMatch = color.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);
28
- if (rgbaMatch) {
29
- return [Number(rgbaMatch[1]), Number(rgbaMatch[2]), Number(rgbaMatch[3])];
30
- }
27
+ const m = color.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);
28
+ if (m)
29
+ return [Number(m[1]), Number(m[2]), Number(m[3])];
31
30
  return null;
32
31
  }
33
32
  function colorToAnsi256(color) {
@@ -53,39 +52,83 @@ function fg256(color) {
53
52
  return c !== null ? `${ESC}38;5;${c}m` : '';
54
53
  }
55
54
  /**
56
- * Composites multiple Geometra WebSocket views into a single terminal output.
57
- * Each view gets a vertical slice of the terminal, rendered top-to-bottom.
55
+ * Composites multiple Geometra WebSocket views into a scrollable terminal.
56
+ *
57
+ * Renders at readable scale (width-based) into a virtual grid that can be
58
+ * taller than the terminal. Arrow keys scroll the viewport up/down.
59
+ * Text truncates with "…" instead of overflowing.
58
60
  */
59
61
  export class TerminalCompositor {
60
62
  views = [];
61
- width;
62
- height;
63
- grid = [];
63
+ termWidth;
64
+ termHeight;
65
+ /** Virtual grid can be taller than the terminal */
66
+ vGrid = [];
67
+ vHeight = 0;
68
+ /** Scroll offset (which virtual row is at the top of the terminal) */
69
+ scrollY = 0;
64
70
  renderScheduled = false;
65
71
  constructor(urls, options) {
66
- this.width = options?.width ?? process.stdout.columns ?? 80;
67
- this.height = options?.height ?? process.stdout.rows ?? 24;
68
- this.grid = this.createGrid();
72
+ this.termWidth = options?.width ?? process.stdout.columns ?? 80;
73
+ this.termHeight = options?.height ?? process.stdout.rows ?? 24;
69
74
  this.views = urls.map((url) => ({
70
75
  url,
71
76
  ws: null,
72
77
  layout: null,
73
78
  tree: null,
74
- rows: 0, // computed dynamically after first frames arrive
75
79
  }));
76
80
  }
77
81
  start() {
78
82
  process.stdout.write(HIDE_CURSOR + CLEAR);
79
- for (const view of this.views) {
83
+ for (const view of this.views)
80
84
  this.connectView(view);
81
- }
85
+ this.setupKeyboardScroll();
82
86
  }
83
87
  close() {
84
- for (const view of this.views) {
88
+ for (const view of this.views)
85
89
  view.ws?.close();
86
- }
90
+ if (process.stdin.isTTY)
91
+ process.stdin.setRawMode(false);
87
92
  process.stdout.write(RESET + SHOW_CURSOR + CLEAR);
88
93
  }
94
+ setupKeyboardScroll() {
95
+ if (!process.stdin.isTTY)
96
+ return;
97
+ process.stdin.setRawMode(true);
98
+ process.stdin.resume();
99
+ process.stdin.on('data', (data) => {
100
+ const key = data.toString();
101
+ if (key === '\x03' || key === 'q') { // Ctrl+C or q
102
+ this.close();
103
+ process.exit(0);
104
+ }
105
+ const maxScroll = Math.max(0, this.vHeight - this.termHeight);
106
+ if (key === '\x1b[A' || key === 'k') { // Up arrow or k
107
+ this.scrollY = Math.max(0, this.scrollY - 3);
108
+ this.flushViewport();
109
+ }
110
+ else if (key === '\x1b[B' || key === 'j') { // Down arrow or j
111
+ this.scrollY = Math.min(maxScroll, this.scrollY + 3);
112
+ this.flushViewport();
113
+ }
114
+ else if (key === '\x1b[5~' || key === 'u') { // Page Up or u
115
+ this.scrollY = Math.max(0, this.scrollY - this.termHeight);
116
+ this.flushViewport();
117
+ }
118
+ else if (key === '\x1b[6~' || key === 'd') { // Page Down or d
119
+ this.scrollY = Math.min(maxScroll, this.scrollY + this.termHeight);
120
+ this.flushViewport();
121
+ }
122
+ else if (key === 'g') { // Home
123
+ this.scrollY = 0;
124
+ this.flushViewport();
125
+ }
126
+ else if (key === 'G') { // End
127
+ this.scrollY = maxScroll;
128
+ this.flushViewport();
129
+ }
130
+ });
131
+ }
89
132
  connectView(view) {
90
133
  const ws = new WebSocket(view.url);
91
134
  view.ws = ws;
@@ -108,11 +151,8 @@ export class TerminalCompositor {
108
151
  process.stderr.write(`\x1b[31m${view.url}: ${err.message}\x1b[0m\n`);
109
152
  });
110
153
  ws.on('close', () => {
111
- // Try reconnect after 3s
112
- setTimeout(() => {
113
- if (view.ws === ws)
114
- this.connectView(view);
115
- }, 3000);
154
+ setTimeout(() => { if (view.ws === ws)
155
+ this.connectView(view); }, 3000);
116
156
  });
117
157
  }
118
158
  scheduleRender() {
@@ -124,44 +164,55 @@ export class TerminalCompositor {
124
164
  this.compositeRender();
125
165
  });
126
166
  }
127
- computeRowAllocation() {
128
- // Give header-like views (short) minimal rows, rest to content views
129
- const isShort = this.views.map(v => {
130
- if (!v.layout)
131
- return true;
132
- return v.layout.height < 200; // header views are typically < 100px
133
- });
134
- const shortCount = isShort.filter(Boolean).length;
135
- const tallCount = this.views.length - shortCount;
136
- for (let i = 0; i < this.views.length; i++) {
137
- if (isShort[i]) {
138
- // Short views (headers): give 2-3 rows
139
- this.views[i].rows = Math.min(3, Math.max(2, Math.floor(this.height * 0.05)));
167
+ compositeRender() {
168
+ // Compute scale: fit layout width to terminal columns
169
+ // Use the widest view's width as reference
170
+ let maxLayoutWidth = 1;
171
+ for (const v of this.views) {
172
+ if (v.layout && v.layout.width > maxLayoutWidth)
173
+ maxLayoutWidth = v.layout.width;
174
+ }
175
+ const scaleX = this.termWidth / maxLayoutWidth;
176
+ // Terminal chars are ~2x taller than wide
177
+ const scaleY = scaleX * 0.5;
178
+ // Compute total virtual height across all views
179
+ let totalVRows = 0;
180
+ for (const v of this.views) {
181
+ if (v.layout) {
182
+ totalVRows += Math.max(1, Math.ceil(v.layout.height * scaleY));
140
183
  }
141
184
  else {
142
- // Tall views (content): split remaining rows equally
143
- const remaining = this.height - shortCount * 3;
144
- this.views[i].rows = Math.max(4, Math.floor(remaining / Math.max(1, tallCount)));
185
+ totalVRows += 2;
145
186
  }
146
187
  }
147
- }
148
- compositeRender() {
149
- this.computeRowAllocation();
150
- this.grid = this.createGrid();
188
+ this.vHeight = totalVRows;
189
+ // Build virtual grid
190
+ this.vGrid = this.createGrid(this.termWidth, this.vHeight);
191
+ // Paint each view into the virtual grid
151
192
  let yOffset = 0;
152
193
  for (const view of this.views) {
153
194
  if (view.layout && view.tree) {
154
- this.paintView(view.layout, view.tree, yOffset, view.rows);
195
+ const viewRows = Math.max(1, Math.ceil(view.layout.height * scaleY));
196
+ this.paintNode(view.tree, view.layout, 0, 0, scaleX, scaleY, yOffset);
197
+ yOffset += viewRows;
198
+ }
199
+ else {
200
+ yOffset += 2;
155
201
  }
156
- yOffset += view.rows;
157
202
  }
158
- // Flush grid to terminal
203
+ // Clamp scroll
204
+ this.scrollY = Math.min(this.scrollY, Math.max(0, this.vHeight - this.termHeight));
205
+ this.flushViewport();
206
+ }
207
+ /** Write the visible viewport slice of vGrid to the terminal */
208
+ flushViewport() {
159
209
  let buf = moveTo(0, 0);
160
- for (let y = 0; y < this.height; y++) {
161
- buf += moveTo(0, y);
210
+ for (let ty = 0; ty < this.termHeight; ty++) {
211
+ buf += moveTo(0, ty);
212
+ const vy = ty + this.scrollY;
162
213
  let lastFg = '', lastBg = '';
163
- for (let x = 0; x < this.width; x++) {
164
- const cell = this.grid[y][x];
214
+ for (let x = 0; x < this.termWidth; x++) {
215
+ const cell = this.vGrid[vy]?.[x] ?? { char: ' ', fg: '', bg: '' };
165
216
  if (cell.bg !== lastBg) {
166
217
  buf += cell.bg ? bg256(cell.bg) : RESET;
167
218
  lastBg = cell.bg;
@@ -174,89 +225,97 @@ export class TerminalCompositor {
174
225
  }
175
226
  buf += RESET;
176
227
  }
228
+ // Scroll indicator
229
+ if (this.vHeight > this.termHeight) {
230
+ const pct = Math.round(this.scrollY / Math.max(1, this.vHeight - this.termHeight) * 100);
231
+ const indicator = ` ${pct}% ↑↓ scroll `;
232
+ buf += moveTo(this.termWidth - indicator.length - 1, this.termHeight - 1);
233
+ buf += `${ESC}48;5;237m${ESC}38;5;252m${indicator}${RESET}`;
234
+ }
177
235
  process.stdout.write(buf);
178
236
  }
179
- paintView(layout, tree, yOffset, maxRows) {
180
- // Scale independently to fill terminal width and fit allocated rows
181
- const scaleX = this.width / layout.width;
182
- const scaleY = maxRows / layout.height;
183
- this.paintNode(tree, layout, 0, 0, scaleX, scaleY, yOffset, yOffset + maxRows);
184
- }
185
- paintNode(element, layout, offsetX, offsetY, scaleX, scaleY, minRow, maxRow) {
237
+ paintNode(element, layout, offsetX, offsetY, scaleX, scaleY, baseY) {
186
238
  const x = Math.round((offsetX + layout.x) * scaleX);
187
- const y = minRow + Math.round((offsetY + layout.y) * scaleY);
239
+ const y = baseY + Math.round((offsetY + layout.y) * scaleY);
188
240
  const w = Math.max(1, Math.round(layout.width * scaleX));
189
241
  const h = Math.max(1, Math.round(layout.height * scaleY));
190
242
  if (element.kind === 'box') {
191
- this.paintBox(element, x, y, w, h, minRow, maxRow);
243
+ this.paintBox(element, x, y, w, h);
192
244
  const childOffsetX = offsetX + layout.x - (element.props.scrollX ?? 0);
193
245
  const childOffsetY = offsetY + layout.y - (element.props.scrollY ?? 0);
194
246
  for (let i = 0; i < element.children.length; i++) {
195
247
  const childLayout = layout.children[i];
196
248
  if (childLayout) {
197
- this.paintNode(element.children[i], childLayout, childOffsetX, childOffsetY, scaleX, scaleY, minRow, maxRow);
249
+ this.paintNode(element.children[i], childLayout, childOffsetX, childOffsetY, scaleX, scaleY, baseY);
198
250
  }
199
251
  }
200
252
  }
201
253
  else if (element.kind === 'scene3d') {
202
- // Skip 3D scenes in terminal
254
+ // skip
203
255
  }
204
256
  else if (element.kind !== 'image') {
205
- this.paintText(element, x, y, w, minRow, maxRow);
257
+ this.paintText(element, x, y, w, h);
206
258
  }
207
259
  }
208
- paintBox(element, x, y, w, h, minRow, maxRow) {
209
- const bg = element.props.backgroundColor;
210
- const gradientBg = element.props.gradient?.stops[0]?.color;
260
+ paintBox(element, x, y, w, h) {
261
+ const props = element.props;
262
+ const bg = props.backgroundColor;
263
+ const gradientBg = props.gradient?.stops[0]?.color;
211
264
  const fillColor = bg ?? gradientBg;
212
265
  if (!fillColor)
213
266
  return;
214
267
  for (let dy = 0; dy < h; dy++) {
215
268
  for (let dx = 0; dx < w; dx++) {
216
- this.setCell(x + dx, y + dy, ' ', '', fillColor, minRow, maxRow);
269
+ this.setCell(x + dx, y + dy, ' ', '', fillColor);
217
270
  }
218
271
  }
219
- if (element.props.borderColor) {
220
- const bc = element.props.borderColor;
221
- if (w >= 2 && h >= 2) {
222
- this.setCell(x, y, '\u250c', bc, fillColor, minRow, maxRow);
223
- this.setCell(x + w - 1, y, '\u2510', bc, fillColor, minRow, maxRow);
224
- this.setCell(x, y + h - 1, '\u2514', bc, fillColor, minRow, maxRow);
225
- this.setCell(x + w - 1, y + h - 1, '\u2518', bc, fillColor, minRow, maxRow);
226
- for (let dx = 1; dx < w - 1; dx++) {
227
- this.setCell(x + dx, y, '\u2500', bc, fillColor, minRow, maxRow);
228
- this.setCell(x + dx, y + h - 1, '\u2500', bc, fillColor, minRow, maxRow);
229
- }
230
- for (let dy = 1; dy < h - 1; dy++) {
231
- this.setCell(x, y + dy, '\u2502', bc, fillColor, minRow, maxRow);
232
- this.setCell(x + w - 1, y + dy, '\u2502', bc, fillColor, minRow, maxRow);
233
- }
272
+ const bc = props.borderColor;
273
+ if (bc && w >= 2 && h >= 2) {
274
+ this.setCell(x, y, '\u250c', bc, fillColor);
275
+ this.setCell(x + w - 1, y, '\u2510', bc, fillColor);
276
+ this.setCell(x, y + h - 1, '\u2514', bc, fillColor);
277
+ this.setCell(x + w - 1, y + h - 1, '\u2518', bc, fillColor);
278
+ for (let dx = 1; dx < w - 1; dx++) {
279
+ this.setCell(x + dx, y, '\u2500', bc, fillColor);
280
+ this.setCell(x + dx, y + h - 1, '\u2500', bc, fillColor);
281
+ }
282
+ for (let dy = 1; dy < h - 1; dy++) {
283
+ this.setCell(x, y + dy, '\u2502', bc, fillColor);
284
+ this.setCell(x + w - 1, y + dy, '\u2502', bc, fillColor);
234
285
  }
235
286
  }
236
287
  }
237
- paintText(element, x, y, w, minRow, maxRow) {
238
- const { text, color, backgroundColor } = element.props;
239
- const fg = color ?? '#ffffff';
240
- const bg = backgroundColor ?? '';
288
+ paintText(element, x, y, w, h) {
289
+ const props = element.props;
290
+ const text = props.text ?? '';
291
+ const fg = props.color ?? '#ffffff';
292
+ const bg = props.backgroundColor ?? '';
293
+ // Smart truncation: fit text into allocated w×h cells
294
+ const lines = text.split('\n');
241
295
  let row = 0;
242
- for (const paragraph of text.split('\n')) {
243
- if (!paragraph.length) {
244
- row++;
245
- continue;
296
+ for (const line of lines) {
297
+ if (row >= h)
298
+ break;
299
+ if (line.length <= w) {
300
+ // Fits — render as-is
301
+ for (let c = 0; c < line.length; c++) {
302
+ this.setCell(x + c, y + row, line[c], fg, bg);
303
+ }
246
304
  }
247
- for (let i = 0; i < paragraph.length; i += w) {
248
- const chunk = paragraph.slice(i, i + w);
249
- for (let c = 0; c < chunk.length; c++) {
250
- this.setCell(x + c, y + row, chunk[c], fg, bg, minRow, maxRow);
305
+ else {
306
+ // Truncate with ellipsis
307
+ const truncated = line.slice(0, Math.max(1, w - 1)) + '\u2026';
308
+ for (let c = 0; c < Math.min(truncated.length, w); c++) {
309
+ this.setCell(x + c, y + row, truncated[c], fg, bg);
251
310
  }
252
- row++;
253
311
  }
312
+ row++;
254
313
  }
255
314
  }
256
- setCell(x, y, char, fg, bg, minRow, maxRow) {
257
- if (x < 0 || x >= this.width || y < minRow || y >= maxRow || y < 0 || y >= this.height)
315
+ setCell(x, y, char, fg, bg) {
316
+ if (x < 0 || x >= this.termWidth || y < 0 || y >= this.vHeight)
258
317
  return;
259
- const cell = this.grid[y]?.[x];
318
+ const cell = this.vGrid[y]?.[x];
260
319
  if (!cell)
261
320
  return;
262
321
  cell.char = char;
@@ -265,11 +324,11 @@ export class TerminalCompositor {
265
324
  if (bg)
266
325
  cell.bg = bg;
267
326
  }
268
- createGrid() {
327
+ createGrid(w, h) {
269
328
  const grid = [];
270
- for (let y = 0; y < this.height; y++) {
329
+ for (let y = 0; y < h; y++) {
271
330
  const row = [];
272
- for (let x = 0; x < this.width; x++)
331
+ for (let x = 0; x < w; x++)
273
332
  row.push({ char: ' ', fg: '', bg: '' });
274
333
  grid.push(row);
275
334
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compositor.js","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compositor.js","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,IAAI,CAAA;AAO1B,SAAS,YAAY,CAAC,MAAsB,EAAE,OAA+B;IAC3E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAmB,MAAM,CAAA;QACjC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI;YAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAA;QACxD,IAAI,KAAK,CAAC,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QAC3C,IAAI,KAAK,CAAC,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QAC3C,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACvD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC5D,CAAC;AACH,CAAC;AASD,MAAM,GAAG,GAAG,OAAO,CAAA;AACnB,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAA;AACxB,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAA;AAC/B,MAAM,WAAW,GAAG,GAAG,GAAG,MAAM,CAAA;AAChC,MAAM,WAAW,GAAG,GAAG,GAAG,MAAM,CAAA;AAChC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AAEnE,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC5G,CAAC;IACD,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAChE,IAAI,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAA;IACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG;YAAE,OAAO,GAAG,CAAA;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAA;IAC7C,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;AAClG,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAC/B,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;AAC7C,CAAC;AACD,SAAS,KAAK,CAAC,KAAa;IAC1B,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAC/B,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;AAC7C,CAAC;AAID;;;;;;GAMG;AACH,MAAM,OAAO,kBAAkB;IACrB,KAAK,GAAe,EAAE,CAAA;IACtB,SAAS,CAAQ;IACjB,UAAU,CAAQ;IAC1B,qDAAqD;IAC7C,KAAK,GAAa,EAAE,CAAA;IACpB,OAAO,GAAG,CAAC,CAAA;IACnB,sEAAsE;IAC9D,OAAO,GAAG,CAAC,CAAA;IACX,eAAe,GAAG,KAAK,CAAA;IAE/B,YACE,IAAc,EACd,OAA6C;QAE7C,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAC/D,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;QAE9D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9B,GAAG;YACH,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI;SACX,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,CAAA;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACrD,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAC5B,CAAC;IAED,KAAK;QACH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAA;QAC/C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,GAAG,KAAK,CAAC,CAAA;IACnD,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;YAAE,OAAM;QAChC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC9B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;QACtB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC3B,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,cAAc;gBACjD,IAAI,CAAC,KAAK,EAAE,CAAA;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;YAC7D,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,gBAAgB;gBACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;gBAC5C,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;iBAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,kBAAkB;gBAC9D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;gBACpD,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;iBAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,eAAe;gBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC1D,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;iBAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,iBAAiB;gBAC9D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;gBAClE,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;iBAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,OAAO;gBAC/B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;gBAChB,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;iBAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM;gBAC9B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;gBACxB,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,WAAW,CAAC,IAAc;QAChC,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QAEZ,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACvC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACzB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;oBACxB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;oBACpB,IAAI,CAAC,cAAc,EAAE,CAAA;gBACvB,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5D,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;oBACtC,IAAI,CAAC,cAAc,EAAE,CAAA;gBACvB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,CAAA;QACtE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;gBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACxE,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,eAAe;YAAE,OAAM;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC3B,YAAY,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;YAC5B,IAAI,CAAC,eAAe,EAAE,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,eAAe;QACrB,sDAAsD;QACtD,2CAA2C;QAC3C,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,cAAc;gBAAE,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;QAClF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,cAAc,CAAA;QAC9C,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,GAAG,GAAG,CAAA;QAE3B,gDAAgD;QAChD,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACb,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAA;YAChE,CAAC;iBAAM,CAAC;gBACN,UAAU,IAAI,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAA;QAEzB,qBAAqB;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAE1D,wCAAwC;QACxC,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAA;gBACpE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBACrE,OAAO,IAAI,QAAQ,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,CAAA;YACd,CAAC;QACH,CAAC;QAED,eAAe;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QAElF,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED,gEAAgE;IACxD,aAAa;QACnB,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACtB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5C,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACpB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;YAC5B,IAAI,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAA;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;gBACjE,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;oBAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;gBAAC,CAAC;gBACrF,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;oBAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;gBAAC,CAAC;gBAClF,GAAG,IAAI,IAAI,CAAC,IAAI,CAAA;YAClB,CAAC;YACD,GAAG,IAAI,KAAK,CAAA;QACd,CAAC;QACD,mBAAmB;QACnB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAA;YACxF,MAAM,SAAS,GAAG,IAAI,GAAG,cAAc,CAAA;YACvC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;YACzE,GAAG,IAAI,GAAG,GAAG,YAAY,GAAG,YAAY,SAAS,GAAG,KAAK,EAAE,CAAA;QAC7D,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAEO,SAAS,CACf,OAAkB,EAAE,MAAsB,EAC1C,OAAe,EAAE,OAAe,EAChC,MAAc,EAAE,MAAc,EAAE,KAAa;QAE7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;QACnD,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;QAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAA;QACxD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAA;QAEzD,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClC,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAE,OAAO,CAAC,KAAK,CAAC,OAAkB,IAAI,CAAC,CAAC,CAAA;YAClF,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAE,OAAO,CAAC,KAAK,CAAC,OAAkB,IAAI,CAAC,CAAC,CAAA;YAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACtC,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;gBACtG,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,OAAkB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAgC,CAAA;QACtD,MAAM,EAAE,GAAG,KAAK,CAAC,eAAqC,CAAA;QACtD,MAAM,UAAU,GAAI,KAAK,CAAC,QAA4D,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAA;QACvG,MAAM,SAAS,GAAG,EAAE,IAAI,UAAU,CAAA;QAClC,IAAI,CAAC,SAAS;YAAE,OAAM;QAEtB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC9B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;QAED,MAAM,EAAE,GAAG,KAAK,CAAC,WAAiC,CAAA;QAClD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;YAC3C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;YACnD,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;YACnD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;YAC3D,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;gBAChD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;YAC1D,CAAC;YACD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;gBAChD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,OAAkB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAgC,CAAA;QACtD,MAAM,IAAI,GAAI,KAAK,CAAC,IAAe,IAAI,EAAE,CAAA;QACzC,MAAM,EAAE,GAAI,KAAK,CAAC,KAAgB,IAAI,SAAS,CAAA;QAC/C,MAAM,EAAE,GAAI,KAAK,CAAC,eAA0B,IAAI,EAAE,CAAA;QAElD,sDAAsD;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,GAAG,IAAI,CAAC;gBAAE,MAAK;YACnB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACrB,sBAAsB;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;gBAChD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,yBAAyB;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;gBAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;gBACrD,CAAC;YACH,CAAC;YACD,GAAG,EAAE,CAAA;QACP,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,EAAU,EAAE,EAAU;QACxE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAM;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,EAAE;YAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACpB,IAAI,EAAE;YAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACtB,CAAC;IAEO,UAAU,CAAC,CAAS,EAAE,CAAS;QACrC,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAW,EAAE,CAAA;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;YACnE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geometra/cli",
3
- "version": "1.14.5",
3
+ "version": "1.15.0",
4
4
  "description": "CLI to view any Geometra-powered site in the terminal",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -35,9 +35,9 @@
35
35
  "check": "tsc --noEmit"
36
36
  },
37
37
  "dependencies": {
38
- "@geometra/core": "^1.14.5",
39
- "@geometra/renderer-terminal": "^1.14.5",
40
- "textura": "^1.14.5",
38
+ "@geometra/core": "^1.15.0",
39
+ "@geometra/renderer-terminal": "^1.15.0",
40
+ "textura": "^1.15.0",
41
41
  "ws": "^8.18.0"
42
42
  },
43
43
  "devDependencies": {