@kernlang/terminal 3.1.0 → 3.1.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/README.md ADDED
@@ -0,0 +1,27 @@
1
+ # @kernlang/terminal
2
+
3
+ [![npm](https://img.shields.io/npm/v/@kernlang/terminal?color=cb3837&label=npm)](https://www.npmjs.com/package/@kernlang/terminal)
4
+ [![license](https://img.shields.io/badge/license-AGPL--3.0-blue)](https://github.com/KERNlang/kern/blob/main/LICENSE)
5
+
6
+ Kern ANSI terminal rendering transpiler
7
+
8
+ Part of the [KERN monorepo](https://github.com/KERNlang/kern).
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ npm install @kernlang/terminal
14
+ ```
15
+
16
+ ## Usage
17
+
18
+ ```ts
19
+ import { transpileTerminal, transpileInk } from '@kernlang/terminal';
20
+
21
+ const ansiOutput = transpileTerminal(kernSource);
22
+ const inkComponent = transpileInk(kernSource);
23
+ ```
24
+
25
+ ## License
26
+
27
+ AGPL-3.0
@@ -1,4 +1,4 @@
1
- import { countTokens, serializeIR, isCoreNode, generateCoreNode, generateMachineReducer, getProps, getChildren, dedent } from '@kernlang/core';
1
+ import { countTokens, serializeIR, isCoreNode, generateCoreNode, generateMachineReducer, getProps, getChildren, dedent, buildDiagnostics, accountNode } from '@kernlang/core';
2
2
  /**
3
3
  * Ink Transpiler — generates React (Ink) TSX components for terminal UIs
4
4
  *
@@ -283,348 +283,331 @@ function generateOnHook(onNode, imports) {
283
283
  }
284
284
  return lines;
285
285
  }
286
- // ── Node renderer JSX ─────────────────────────────────────────────────
286
+ // ── Per-node JSX Renderers ───────────────────────────────────────────────
287
+ function renderInkText(p, indent, imports) {
288
+ imports.addInk('Text');
289
+ const rawValue = p.value;
290
+ const styles = p.styles || {};
291
+ const textProps = [];
292
+ if (styles.fw === 'bold' || styles.bold)
293
+ textProps.push('bold');
294
+ if (styles.dim)
295
+ textProps.push('dimColor');
296
+ if (styles.italic)
297
+ textProps.push('italic');
298
+ if (styles.c || styles.color)
299
+ textProps.push(`color=${inkColor(styles.c || styles.color)}`);
300
+ if (styles.bg)
301
+ textProps.push(`backgroundColor=${inkColor(styles.bg)}`);
302
+ const propsStr = textProps.length > 0 ? ' ' + textProps.join(' ') : '';
303
+ if (isExpr(rawValue)) {
304
+ return [`${indent}<Text${propsStr}>{${rawValue.code}}</Text>`];
305
+ }
306
+ const value = String(rawValue ?? '');
307
+ return [`${indent}<Text${propsStr}>{${JSON.stringify(value)}}</Text>`];
308
+ }
309
+ function renderInkSeparator(p, indent, imports) {
310
+ imports.addInk('Text');
311
+ const width = Number(p.width) || 48;
312
+ return [`${indent}<Text dimColor>{'${'─'.repeat(width)}'}</Text>`];
313
+ }
314
+ function renderInkBox(node, p, indent, imports) {
315
+ imports.addInk('Box');
316
+ imports.addInk('Text');
317
+ const color = p.color;
318
+ const borderStyle = p.borderStyle || 'round';
319
+ const flexDirection = p.flexDirection;
320
+ const width = p.width;
321
+ const flexGrow = p.flexGrow;
322
+ const padding = p.padding;
323
+ const paddingX = p.paddingX;
324
+ const paddingY = p.paddingY;
325
+ const boxProps = [];
326
+ if (color)
327
+ boxProps.push(`borderStyle="${borderStyle}"`, `borderColor=${inkColor(color)}`);
328
+ if (flexDirection)
329
+ boxProps.push(`flexDirection="${flexDirection}"`);
330
+ if (width)
331
+ boxProps.push(`width={${width}}`);
332
+ if (flexGrow)
333
+ boxProps.push(`flexGrow={${flexGrow}}`);
334
+ if (padding)
335
+ boxProps.push(`padding={${padding}}`);
336
+ if (paddingX)
337
+ boxProps.push(`paddingX={${paddingX}}`);
338
+ if (paddingY)
339
+ boxProps.push(`paddingY={${paddingY}}`);
340
+ const propsStr = boxProps.length > 0 ? ' ' + boxProps.join(' ') : '';
341
+ const lines = [];
342
+ lines.push(`${indent}<Box${propsStr}>`);
343
+ for (const child of node.children || []) {
344
+ if (child.type === 'on')
345
+ continue;
346
+ lines.push(...renderInkNode(child, indent + ' ', imports));
347
+ }
348
+ lines.push(`${indent}</Box>`);
349
+ return lines;
350
+ }
351
+ function renderInkTable(node, p, indent, imports) {
352
+ imports.addInk('Box');
353
+ imports.addInk('Text');
354
+ const headers = p.headers || '[]';
355
+ const rows = getChildren(node, 'row');
356
+ const lines = [];
357
+ lines.push(`${indent}<Box flexDirection="column">`);
358
+ lines.push(`${indent} <Box>`);
359
+ lines.push(`${indent} {(${headers} as string[]).map((h: string, i: number) => (`);
360
+ lines.push(`${indent} <Box key={i} width={20}><Text bold>{h}</Text></Box>`);
361
+ lines.push(`${indent} ))}`);
362
+ lines.push(`${indent} </Box>`);
363
+ lines.push(`${indent} <Text dimColor>{'${'─'.repeat(60)}'}</Text>`);
364
+ for (const row of rows) {
365
+ const rowData = getProps(row).data || '[]';
366
+ lines.push(`${indent} <Box>`);
367
+ lines.push(`${indent} {(${rowData} as string[]).map((cell: string, i: number) => (`);
368
+ lines.push(`${indent} <Box key={i} width={20}><Text>{cell}</Text></Box>`);
369
+ lines.push(`${indent} ))}`);
370
+ lines.push(`${indent} </Box>`);
371
+ }
372
+ lines.push(`${indent}</Box>`);
373
+ return lines;
374
+ }
375
+ function renderInkScoreboard(node, p, indent, imports) {
376
+ imports.addInk('Box');
377
+ imports.addInk('Text');
378
+ const title = p.title || 'Results';
379
+ const winner = p.winner || '';
380
+ const metrics = getChildren(node, 'metric');
381
+ const lines = [];
382
+ lines.push(`${indent}<Box flexDirection="column">`);
383
+ lines.push(`${indent} <Text bold>{${JSON.stringify(title)}}</Text>`);
384
+ if (winner) {
385
+ lines.push(`${indent} <Text bold color="green">{'Winner: ${winner}'}</Text>`);
386
+ }
387
+ for (const metric of metrics) {
388
+ const mp = getProps(metric);
389
+ const mname = mp.name || '';
390
+ const values = mp.values || '[]';
391
+ lines.push(`${indent} <Box>`);
392
+ lines.push(`${indent} <Text dimColor>{${JSON.stringify(mname + ':')}}</Text>`);
393
+ lines.push(`${indent} <Text>{' '}{(${values} as string[]).join(' | ')}</Text>`);
394
+ lines.push(`${indent} </Box>`);
395
+ }
396
+ lines.push(`${indent}</Box>`);
397
+ return lines;
398
+ }
399
+ function renderInkSpinner(p, indent, imports) {
400
+ imports.addInk('Text');
401
+ imports.needSpinner();
402
+ const rawMsg = p.message;
403
+ const color = p.color;
404
+ const spinnerColor = color ? ` color=${inkColor(color)}` : '';
405
+ const msgContent = isExpr(rawMsg) ? `{${rawMsg.code}}` : `{' ${String(rawMsg ?? 'Loading...')}'}`;
406
+ return [
407
+ `${indent}<Text>`,
408
+ `${indent} <Spinner${spinnerColor} />`,
409
+ `${indent} ${msgContent}`,
410
+ `${indent}</Text>`,
411
+ ];
412
+ }
413
+ function renderInkProgress(p, indent, imports) {
414
+ imports.addInk('Box');
415
+ imports.addInk('Text');
416
+ const rawValue = p.value;
417
+ const rawMax = p.max;
418
+ const color = p.color || 'green';
419
+ const barWidth = 20;
420
+ const lines = [];
421
+ if (isExpr(rawValue) || isExpr(rawMax)) {
422
+ const valueExpr = isExpr(rawValue) ? rawValue.code : String(rawValue ?? 0);
423
+ const maxExpr = isExpr(rawMax) ? rawMax.code : String(rawMax ?? 100);
424
+ lines.push(`${indent}<Box>`);
425
+ lines.push(`${indent} {(() => {`);
426
+ lines.push(`${indent} const _pct = Math.min(1, Math.max(0, (${valueExpr}) / (${maxExpr})));`);
427
+ lines.push(`${indent} const _filled = Math.round(_pct * ${barWidth});`);
428
+ lines.push(`${indent} const _empty = ${barWidth} - _filled;`);
429
+ lines.push(`${indent} return (<>`);
430
+ lines.push(`${indent} <Text color=${inkColor(color)}>${'{'}'▓'.repeat(_filled)${'}'}</Text>`);
431
+ lines.push(`${indent} <Text>${'{'}'░'.repeat(_empty)${'}'}</Text>`);
432
+ lines.push(`${indent} <Text>{' ' + Math.round(_pct * 100) + '%'}</Text>`);
433
+ lines.push(`${indent} </>);`);
434
+ lines.push(`${indent} })()}`);
435
+ lines.push(`${indent}</Box>`);
436
+ }
437
+ else {
438
+ const value = Number(rawValue) || 0;
439
+ const max = Number(rawMax) || 100;
440
+ const pct = Math.min(1, Math.max(0, value / max));
441
+ const filled = Math.round(pct * barWidth);
442
+ const empty = barWidth - filled;
443
+ lines.push(`${indent}<Box>`);
444
+ lines.push(`${indent} <Text color=${inkColor(color)}>{'${'▓'.repeat(filled)}'}</Text>`);
445
+ lines.push(`${indent} <Text>{'${'░'.repeat(empty)}'}</Text>`);
446
+ lines.push(`${indent} <Text>{' ${Math.round(pct * 100)}%'}</Text>`);
447
+ lines.push(`${indent}</Box>`);
448
+ }
449
+ return lines;
450
+ }
451
+ function renderInkGradient(p, indent, imports) {
452
+ imports.addInk('Text');
453
+ const text = p.text || '';
454
+ const colors = p.colors || '[]';
455
+ return [
456
+ `${indent}<Text>`,
457
+ `${indent} {${JSON.stringify(text)}.split('').map((ch: string, i: number) => {`,
458
+ `${indent} const colors = ${colors} as number[];`,
459
+ `${indent} const colorIdx = Math.floor((i / ${text.length}) * colors.length);`,
460
+ `${indent} const color = String(colors[Math.min(colorIdx, colors.length - 1)]);`,
461
+ `${indent} return <Text key={i} color={color}>{ch}</Text>;`,
462
+ `${indent} })}`,
463
+ `${indent}</Text>`,
464
+ ];
465
+ }
466
+ function renderInkInputArea(node, indent, imports) {
467
+ imports.addInk('Box');
468
+ const lines = [];
469
+ lines.push(`${indent}<Box flexDirection="column" borderStyle="single" borderColor="gray">`);
470
+ for (const child of node.children || []) {
471
+ if (child.type === 'on')
472
+ continue;
473
+ lines.push(...renderInkNode(child, indent + ' ', imports));
474
+ }
475
+ lines.push(`${indent}</Box>`);
476
+ return lines;
477
+ }
478
+ function renderInkOutputArea(node, indent, imports) {
479
+ imports.addInk('Box');
480
+ const lines = [];
481
+ lines.push(`${indent}<Box flexDirection="column" flexGrow={1}>`);
482
+ for (const child of node.children || []) {
483
+ if (child.type === 'on')
484
+ continue;
485
+ lines.push(...renderInkNode(child, indent + ' ', imports));
486
+ }
487
+ lines.push(`${indent}</Box>`);
488
+ return lines;
489
+ }
490
+ function renderInkTextInput(p, indent, imports) {
491
+ imports.needTextInput();
492
+ const placeholder = p.placeholder || '';
493
+ const bind = p.bind;
494
+ const history = p.history;
495
+ const onSubmit = p.onSubmit;
496
+ const inputProps = [];
497
+ if (placeholder)
498
+ inputProps.push(`placeholder=${JSON.stringify(placeholder)}`);
499
+ if (history)
500
+ inputProps.push(`history={${history}}`);
501
+ if (bind) {
502
+ inputProps.push(`value={${bind}}`);
503
+ inputProps.push(`onChange={set${capitalize(bind)}}`);
504
+ }
505
+ if (onSubmit) {
506
+ inputProps.push(`onSubmit={${onSubmit}}`);
507
+ }
508
+ return [`${indent}<TextInput ${inputProps.join(' ')} />`];
509
+ }
510
+ function renderInkSelectInput(p, indent, imports) {
511
+ imports.needSelectInput();
512
+ const rawItems = p.items;
513
+ const items = isExpr(rawItems) ? rawItems.code : (rawItems || '[]');
514
+ const onSelect = p.onSelect;
515
+ const selectProps = [`items={${items}}`];
516
+ if (onSelect) {
517
+ selectProps.push(`onSelect={${onSelect}}`);
518
+ }
519
+ return [`${indent}<SelectInput ${selectProps.join(' ')} />`];
520
+ }
521
+ function renderInkHandler(p, indent) {
522
+ const code = p.code || '';
523
+ const dedented = dedent(code);
524
+ return dedented.split('\n').map(line => `${indent}${line}`);
525
+ }
526
+ function renderInkEach(node, p, indent, imports) {
527
+ const rawCollection = p.collection;
528
+ const collection = isExpr(rawCollection) ? rawCollection.code : (rawCollection || '[]');
529
+ const item = p.item || 'item';
530
+ const index = p.index || 'i';
531
+ const rawKey = p.key;
532
+ const key = isExpr(rawKey) ? rawKey.code : (rawKey || index);
533
+ const lines = [];
534
+ lines.push(`${indent}{${collection}.map((${item}, ${index}) => (`);
535
+ const children = node.children || [];
536
+ if (children.length === 1) {
537
+ const childLines = renderInkNode(children[0], indent + ' ', imports);
538
+ if (childLines.length > 0) {
539
+ childLines[0] = childLines[0].replace(/^(\s*<\w+)/, `$1 key={${key}}`);
540
+ }
541
+ lines.push(...childLines);
542
+ }
543
+ else {
544
+ lines.push(`${indent} <React.Fragment key={${key}}>`);
545
+ for (const child of children) {
546
+ lines.push(...renderInkNode(child, indent + ' ', imports));
547
+ }
548
+ lines.push(`${indent} </React.Fragment>`);
549
+ }
550
+ lines.push(`${indent}))}`);
551
+ return lines;
552
+ }
553
+ function renderInkConditional(node, p, indent, imports) {
554
+ const condition = p.if;
555
+ const jsCondition = irConditionToJs(condition ?? 'true');
556
+ const lines = [];
557
+ lines.push(`${indent}{${jsCondition} && (`);
558
+ lines.push(`${indent} <>`);
559
+ for (const child of node.children || []) {
560
+ lines.push(...renderInkNode(child, indent + ' ', imports));
561
+ }
562
+ lines.push(`${indent} </>`);
563
+ lines.push(`${indent})}`);
564
+ return lines;
565
+ }
566
+ // ── Node renderer → JSX (dispatcher) ─────────────────────────────────────
287
567
  function renderInkNode(node, indent, imports) {
288
568
  const p = getProps(node);
289
- const lines = [];
290
569
  switch (node.type) {
291
- case 'text': {
292
- imports.addInk('Text');
293
- // Bug #2: Handle __expr objects for dynamic text values
294
- const rawValue = p.value;
295
- const styles = p.styles || {};
296
- const textProps = [];
297
- if (styles.fw === 'bold' || styles.bold)
298
- textProps.push('bold');
299
- if (styles.dim)
300
- textProps.push('dimColor');
301
- if (styles.italic)
302
- textProps.push('italic');
303
- if (styles.c || styles.color)
304
- textProps.push(`color=${inkColor(styles.c || styles.color)}`);
305
- if (styles.bg)
306
- textProps.push(`backgroundColor=${inkColor(styles.bg)}`);
307
- const propsStr = textProps.length > 0 ? ' ' + textProps.join(' ') : '';
308
- if (isExpr(rawValue)) {
309
- lines.push(`${indent}<Text${propsStr}>{${rawValue.code}}</Text>`);
310
- }
311
- else {
312
- const value = String(rawValue ?? '');
313
- lines.push(`${indent}<Text${propsStr}>{${JSON.stringify(value)}}</Text>`);
314
- }
315
- break;
316
- }
317
- case 'separator': {
318
- imports.addInk('Text');
319
- const width = Number(p.width) || 48;
320
- lines.push(`${indent}<Text dimColor>{'${'─'.repeat(width)}'}</Text>`);
321
- break;
322
- }
323
- case 'box': {
324
- imports.addInk('Box');
325
- imports.addInk('Text');
326
- const color = p.color;
327
- const borderStyle = p.borderStyle || 'round';
328
- const flexDirection = p.flexDirection;
329
- const width = p.width;
330
- const flexGrow = p.flexGrow;
331
- const padding = p.padding;
332
- const paddingX = p.paddingX;
333
- const paddingY = p.paddingY;
334
- const boxProps = [];
335
- if (color)
336
- boxProps.push(`borderStyle="${borderStyle}"`, `borderColor=${inkColor(color)}`);
337
- if (flexDirection)
338
- boxProps.push(`flexDirection="${flexDirection}"`);
339
- if (width)
340
- boxProps.push(`width={${width}}`);
341
- if (flexGrow)
342
- boxProps.push(`flexGrow={${flexGrow}}`);
343
- if (padding)
344
- boxProps.push(`padding={${padding}}`);
345
- if (paddingX)
346
- boxProps.push(`paddingX={${paddingX}}`);
347
- if (paddingY)
348
- boxProps.push(`paddingY={${paddingY}}`);
349
- const propsStr = boxProps.length > 0 ? ' ' + boxProps.join(' ') : '';
350
- lines.push(`${indent}<Box${propsStr}>`);
351
- for (const child of node.children || []) {
352
- // Skip nested on-nodes in JSX — they're hoisted to component body
353
- if (child.type === 'on')
354
- continue;
355
- lines.push(...renderInkNode(child, indent + ' ', imports));
356
- }
357
- lines.push(`${indent}</Box>`);
358
- break;
359
- }
360
- case 'table': {
361
- imports.addInk('Box');
362
- imports.addInk('Text');
363
- const headers = p.headers || '[]';
364
- const rows = getChildren(node, 'row');
365
- lines.push(`${indent}<Box flexDirection="column">`);
366
- // Header row
367
- lines.push(`${indent} <Box>`);
368
- lines.push(`${indent} {(${headers} as string[]).map((h: string, i: number) => (`);
369
- lines.push(`${indent} <Box key={i} width={20}><Text bold>{h}</Text></Box>`);
370
- lines.push(`${indent} ))}`);
371
- lines.push(`${indent} </Box>`);
372
- // Separator
373
- lines.push(`${indent} <Text dimColor>{'${'─'.repeat(60)}'}</Text>`);
374
- // Data rows
375
- for (const row of rows) {
376
- const rowData = getProps(row).data || '[]';
377
- lines.push(`${indent} <Box>`);
378
- lines.push(`${indent} {(${rowData} as string[]).map((cell: string, i: number) => (`);
379
- lines.push(`${indent} <Box key={i} width={20}><Text>{cell}</Text></Box>`);
380
- lines.push(`${indent} ))}`);
381
- lines.push(`${indent} </Box>`);
382
- }
383
- lines.push(`${indent}</Box>`);
384
- break;
385
- }
386
- case 'scoreboard': {
387
- imports.addInk('Box');
388
- imports.addInk('Text');
389
- const title = p.title || 'Results';
390
- const winner = p.winner || '';
391
- const metrics = getChildren(node, 'metric');
392
- lines.push(`${indent}<Box flexDirection="column">`);
393
- lines.push(`${indent} <Text bold>{${JSON.stringify(title)}}</Text>`);
394
- if (winner) {
395
- lines.push(`${indent} <Text bold color="green">{'Winner: ${winner}'}</Text>`);
396
- }
397
- for (const metric of metrics) {
398
- const mp = getProps(metric);
399
- const mname = mp.name || '';
400
- const values = mp.values || '[]';
401
- lines.push(`${indent} <Box>`);
402
- lines.push(`${indent} <Text dimColor>{${JSON.stringify(mname + ':')}}</Text>`);
403
- lines.push(`${indent} <Text>{' '}{(${values} as string[]).join(' | ')}</Text>`);
404
- lines.push(`${indent} </Box>`);
405
- }
406
- lines.push(`${indent}</Box>`);
407
- break;
408
- }
409
- case 'spinner': {
410
- imports.addInk('Text');
411
- imports.needSpinner();
412
- const rawMsg = p.message;
413
- const color = p.color;
414
- const spinnerColor = color ? ` color=${inkColor(color)}` : '';
415
- const msgContent = isExpr(rawMsg) ? `{${rawMsg.code}}` : `{' ${String(rawMsg ?? 'Loading...')}'}`;
416
- lines.push(`${indent}<Text>`);
417
- lines.push(`${indent} <Spinner${spinnerColor} />`);
418
- lines.push(`${indent} ${msgContent}`);
419
- lines.push(`${indent}</Text>`);
420
- break;
421
- }
422
- // Bug #3: Handle dynamic progress values via __expr
423
- case 'progress': {
424
- imports.addInk('Box');
425
- imports.addInk('Text');
426
- const rawValue = p.value;
427
- const rawMax = p.max;
428
- const color = p.color || 'green';
429
- const barWidth = 20;
430
- if (isExpr(rawValue) || isExpr(rawMax)) {
431
- // Dynamic progress — compute at runtime
432
- const valueExpr = isExpr(rawValue) ? rawValue.code : String(rawValue ?? 0);
433
- const maxExpr = isExpr(rawMax) ? rawMax.code : String(rawMax ?? 100);
434
- lines.push(`${indent}<Box>`);
435
- lines.push(`${indent} {(() => {`);
436
- lines.push(`${indent} const _pct = Math.min(1, Math.max(0, (${valueExpr}) / (${maxExpr})));`);
437
- lines.push(`${indent} const _filled = Math.round(_pct * ${barWidth});`);
438
- lines.push(`${indent} const _empty = ${barWidth} - _filled;`);
439
- lines.push(`${indent} return (<>`);
440
- lines.push(`${indent} <Text color=${inkColor(color)}>${'{'}'▓'.repeat(_filled)${'}'}</Text>`);
441
- lines.push(`${indent} <Text>${'{'}'░'.repeat(_empty)${'}'}</Text>`);
442
- lines.push(`${indent} <Text>{' ' + Math.round(_pct * 100) + '%'}</Text>`);
443
- lines.push(`${indent} </>);`);
444
- lines.push(`${indent} })()}`);
445
- lines.push(`${indent}</Box>`);
446
- }
447
- else {
448
- // Static progress — compute at compile time
449
- const value = Number(rawValue) || 0;
450
- const max = Number(rawMax) || 100;
451
- const pct = Math.min(1, Math.max(0, value / max));
452
- const filled = Math.round(pct * barWidth);
453
- const empty = barWidth - filled;
454
- lines.push(`${indent}<Box>`);
455
- lines.push(`${indent} <Text color=${inkColor(color)}>{'${'▓'.repeat(filled)}'}</Text>`);
456
- lines.push(`${indent} <Text>{'${'░'.repeat(empty)}'}</Text>`);
457
- lines.push(`${indent} <Text>{' ${Math.round(pct * 100)}%'}</Text>`);
458
- lines.push(`${indent}</Box>`);
459
- }
460
- break;
461
- }
462
- case 'gradient': {
463
- imports.addInk('Text');
464
- const text = p.text || '';
465
- const colors = p.colors || '[]';
466
- lines.push(`${indent}<Text>`);
467
- lines.push(`${indent} {${JSON.stringify(text)}.split('').map((ch: string, i: number) => {`);
468
- lines.push(`${indent} const colors = ${colors} as number[];`);
469
- lines.push(`${indent} const colorIdx = Math.floor((i / ${text.length}) * colors.length);`);
470
- lines.push(`${indent} const color = String(colors[Math.min(colorIdx, colors.length - 1)]);`);
471
- lines.push(`${indent} return <Text key={i} color={color}>{ch}</Text>;`);
472
- lines.push(`${indent} })}`);
473
- lines.push(`${indent}</Text>`);
474
- break;
475
- }
476
- case 'input-area': {
477
- imports.addInk('Box');
478
- const children = node.children || [];
479
- lines.push(`${indent}<Box flexDirection="column" borderStyle="single" borderColor="gray">`);
480
- for (const child of children) {
481
- if (child.type === 'on')
482
- continue;
483
- lines.push(...renderInkNode(child, indent + ' ', imports));
484
- }
485
- lines.push(`${indent}</Box>`);
486
- break;
487
- }
488
- case 'output-area': {
489
- imports.addInk('Box');
490
- const children = node.children || [];
491
- lines.push(`${indent}<Box flexDirection="column" flexGrow={1}>`);
492
- for (const child of children) {
493
- if (child.type === 'on')
494
- continue;
495
- lines.push(...renderInkNode(child, indent + ' ', imports));
496
- }
497
- lines.push(`${indent}</Box>`);
498
- break;
499
- }
500
- // Bug #4: Wire text-input value/onChange for controlled component
501
- case 'text-input': {
502
- imports.needTextInput();
503
- const placeholder = p.placeholder || '';
504
- const bind = p.bind;
505
- const history = p.history;
506
- const onSubmit = p.onSubmit;
507
- const inputProps = [];
508
- if (placeholder)
509
- inputProps.push(`placeholder=${JSON.stringify(placeholder)}`);
510
- if (history)
511
- inputProps.push(`history={${history}}`);
512
- if (bind) {
513
- inputProps.push(`value={${bind}}`);
514
- inputProps.push(`onChange={set${capitalize(bind)}}`);
515
- }
516
- if (onSubmit) {
517
- inputProps.push(`onSubmit={${onSubmit}}`);
518
- }
519
- lines.push(`${indent}<TextInput ${inputProps.join(' ')} />`);
520
- break;
521
- }
522
- // Bug #5: Wire select-input onSelect handler
523
- case 'select-input': {
524
- imports.needSelectInput();
525
- const rawItems = p.items;
526
- const items = isExpr(rawItems) ? rawItems.code : (rawItems || '[]');
527
- const onSelect = p.onSelect;
528
- const selectProps = [`items={${items}}`];
529
- if (onSelect) {
530
- selectProps.push(`onSelect={${onSelect}}`);
531
- }
532
- lines.push(`${indent}<SelectInput ${selectProps.join(' ')} />`);
533
- break;
534
- }
535
- // Bug #6: Fix handler indentation — use dedent instead of trim
536
- case 'handler': {
537
- const code = p.code || '';
538
- const dedented = dedent(code);
539
- for (const line of dedented.split('\n')) {
540
- lines.push(`${indent}${line}`);
541
- }
542
- break;
543
- }
544
- // Feature: each — JSX list iteration
545
- // each collection={{items}} item=engine index=i key={{engine.id}}
546
- // box ...
547
- // → {items.map((engine, i) => (<Box key={engine.id}>...</Box>))}
548
- case 'each': {
549
- const rawCollection = p.collection;
550
- const collection = isExpr(rawCollection) ? rawCollection.code : (rawCollection || '[]');
551
- const item = p.item || 'item';
552
- const index = p.index || 'i';
553
- const rawKey = p.key;
554
- const key = isExpr(rawKey) ? rawKey.code : (rawKey || index);
555
- lines.push(`${indent}{${collection}.map((${item}, ${index}) => (`);
556
- // If there's one child, render it directly with key; otherwise wrap in fragment
557
- const children = node.children || [];
558
- if (children.length === 1) {
559
- const childLines = renderInkNode(children[0], indent + ' ', imports);
560
- // Inject key prop into the first JSX opening tag
561
- if (childLines.length > 0) {
562
- childLines[0] = childLines[0].replace(/^(\s*<\w+)/, `$1 key={${key}}`);
563
- }
564
- lines.push(...childLines);
565
- }
566
- else {
567
- lines.push(`${indent} <React.Fragment key={${key}}>`);
568
- for (const child of children) {
569
- lines.push(...renderInkNode(child, indent + ' ', imports));
570
- }
571
- lines.push(`${indent} </React.Fragment>`);
572
- }
573
- lines.push(`${indent}))}`);
574
- break;
575
- }
576
- // Feature #7: Conditional rendering
577
- case 'conditional': {
578
- const condition = p.if;
579
- const jsCondition = irConditionToJs(condition ?? 'true');
580
- lines.push(`${indent}{${jsCondition} && (`);
581
- lines.push(`${indent} <>`);
582
- for (const child of node.children || []) {
583
- lines.push(...renderInkNode(child, indent + ' ', imports));
584
- }
585
- lines.push(`${indent} </>`);
586
- lines.push(`${indent})}`);
587
- break;
588
- }
570
+ case 'text': return renderInkText(p, indent, imports);
571
+ case 'separator': return renderInkSeparator(p, indent, imports);
572
+ case 'box': return renderInkBox(node, p, indent, imports);
573
+ case 'table': return renderInkTable(node, p, indent, imports);
574
+ case 'scoreboard': return renderInkScoreboard(node, p, indent, imports);
575
+ case 'spinner': return renderInkSpinner(p, indent, imports);
576
+ case 'progress': return renderInkProgress(p, indent, imports);
577
+ case 'gradient': return renderInkGradient(p, indent, imports);
578
+ case 'input-area': return renderInkInputArea(node, indent, imports);
579
+ case 'output-area': return renderInkOutputArea(node, indent, imports);
580
+ case 'text-input': return renderInkTextInput(p, indent, imports);
581
+ case 'select-input': return renderInkSelectInput(p, indent, imports);
582
+ case 'handler': return renderInkHandler(p, indent);
583
+ case 'each': return renderInkEach(node, p, indent, imports);
584
+ case 'conditional': return renderInkConditional(node, p, indent, imports);
589
585
  case 'state':
590
- // Handled at component level as useState
591
- break;
592
586
  case 'ref':
593
- // Handled at component level as useRef
594
- break;
595
587
  case 'stream':
596
- // Handled at component level as useEffect with async generator
597
- break;
598
588
  case 'logic':
599
- // Handled at component level as useEffect
600
- break;
601
589
  case 'callback':
602
- // Handled at component level as useCallback
603
- break;
604
- // Bug #1: Nested on-nodes are hoisted — skip in JSX, emit comment
605
590
  case 'on':
606
- break;
591
+ return [];
607
592
  default: {
608
- // Core language nodes emit as-is (they're TypeScript, not JSX)
593
+ const lines = [];
609
594
  if (isCoreNode(node.type)) {
610
- // Machine nodes get useReducer treatment in Ink
611
595
  if (node.type === 'machine') {
612
596
  lines.push(...generateMachineReducer(node).map(l => l));
613
597
  }
614
598
  else {
615
599
  lines.push(...generateCoreNode(node));
616
600
  }
617
- break;
601
+ return lines;
618
602
  }
619
- // Recurse into children for unknown nodes
620
603
  if (node.children) {
621
604
  for (const child of node.children) {
622
605
  lines.push(...renderInkNode(child, indent, imports));
623
606
  }
624
607
  }
608
+ return lines;
625
609
  }
626
610
  }
627
- return lines;
628
611
  }
629
612
  // ── Main export ──────────────────────────────────────────────────────────
630
613
  export function transpileInk(root, _config) {
@@ -754,6 +737,16 @@ export function transpileInk(root, _config) {
754
737
  irTokenCount,
755
738
  tsTokenCount,
756
739
  tokenReduction,
740
+ diagnostics: (() => {
741
+ const accounted = new Map();
742
+ accountNode(accounted, root, 'expressed', undefined, true);
743
+ const CONSUMED = new Set(['state', 'on', 'handler']);
744
+ for (const child of root.children || []) {
745
+ if (CONSUMED.has(child.type))
746
+ accountNode(accounted, child, 'consumed', child.type + ' pre-pass', true);
747
+ }
748
+ return buildDiagnostics(root, accounted, 'ink');
749
+ })(),
757
750
  };
758
751
  }
759
752
  //# sourceMappingURL=transpiler-ink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transpiler-ink.js","sourceRoot":"","sources":["../src/transpiler-ink.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transpiler-ink.js","sourceRoot":"","sources":["../src/transpiler-ink.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { countTokens, serializeIR, isCoreNode, generateCoreNode, getProps, getChildren, getFirstChild } from '@kernlang/core';
1
+ import { countTokens, serializeIR, isCoreNode, generateCoreNode, getProps, getChildren, getFirstChild, buildDiagnostics, accountNode } from '@kernlang/core';
2
2
  /**
3
3
  * Terminal Transpiler — generates ANSI-based CLI rendering code
4
4
  *
@@ -143,130 +143,127 @@ function generateStateBlock(stateNode) {
143
143
  }
144
144
  return lines;
145
145
  }
146
- // ── Node renderer ────────────────────────────────────────────────────────
147
- function renderTerminalNode(node, indent) {
148
- const p = getProps(node);
146
+ // ── Per-node renderers ───────────────────────────────────────────────────
147
+ function renderText(p, indent) {
148
+ const value = p.value || '';
149
+ const styles = p.styles || {};
150
+ const styleObj = [];
151
+ if (styles.c || styles.color)
152
+ styleObj.push(`color: ${JSON.stringify(styles.c || styles.color)}`);
153
+ if (styles.bg)
154
+ styleObj.push(`bg: ${JSON.stringify(styles.bg)}`);
155
+ if (styles.fw === 'bold' || styles.bold)
156
+ styleObj.push('bold: true');
157
+ if (styles.dim)
158
+ styleObj.push('dim: true');
159
+ if (styles.italic)
160
+ styleObj.push('italic: true');
161
+ if (styleObj.length > 0) {
162
+ return [`${indent}console.log(style(${JSON.stringify(value)}, { ${styleObj.join(', ')} }));`];
163
+ }
164
+ return [`${indent}console.log(${JSON.stringify(value)});`];
165
+ }
166
+ function renderSeparator(p, indent) {
167
+ const width = Number(p.width) || 48;
168
+ return [`${indent}console.log(separator(${width}));`];
169
+ }
170
+ function renderTable(node, p, indent) {
149
171
  const lines = [];
150
- switch (node.type) {
151
- case 'text': {
152
- const value = p.value || '';
153
- const styles = p.styles || {};
154
- const styleObj = [];
155
- if (styles.c || styles.color)
156
- styleObj.push(`color: ${JSON.stringify(styles.c || styles.color)}`);
157
- if (styles.bg)
158
- styleObj.push(`bg: ${JSON.stringify(styles.bg)}`);
159
- if (styles.fw === 'bold' || styles.bold)
160
- styleObj.push('bold: true');
161
- if (styles.dim)
162
- styleObj.push('dim: true');
163
- if (styles.italic)
164
- styleObj.push('italic: true');
165
- if (styleObj.length > 0) {
166
- lines.push(`${indent}console.log(style(${JSON.stringify(value)}, { ${styleObj.join(', ')} }));`);
167
- }
168
- else {
169
- lines.push(`${indent}console.log(${JSON.stringify(value)});`);
170
- }
171
- break;
172
- }
173
- case 'separator': {
174
- const width = Number(p.width) || 48;
175
- lines.push(`${indent}console.log(separator(${width}));`);
176
- break;
177
- }
178
- case 'table': {
179
- const headers = p.headers || '[]';
180
- lines.push(`${indent}const _tableHeaders = ${headers};`);
181
- lines.push(`${indent}const _tableRows: string[][] = [];`);
182
- for (const row of getChildren(node, 'row')) {
183
- const rowData = getProps(row).data || '[]';
184
- lines.push(`${indent}_tableRows.push(${rowData});`);
185
- }
186
- lines.push(`${indent}console.log(table(_tableHeaders, _tableRows));`);
187
- break;
188
- }
189
- case 'scoreboard': {
190
- const title = p.title || 'Results';
191
- const winner = p.winner || '';
192
- lines.push(`${indent}console.log(style(${JSON.stringify(title)}, { bold: true }));`);
193
- if (winner) {
194
- lines.push(`${indent}console.log(style('Winner: ${winner}', { color: 'green', bold: true }));`);
195
- }
196
- for (const metric of getChildren(node, 'metric')) {
197
- const mp = getProps(metric);
198
- const name = mp.name || '';
199
- const values = mp.values || '[]';
200
- lines.push(`${indent}console.log(' ' + style('${name}:', { dim: true }) + ' ' + ${values}.join(' | '));`);
201
- }
202
- break;
203
- }
204
- case 'spinner': {
205
- const message = p.message || 'Loading...';
206
- const color = p.color || 'white';
207
- lines.push(`${indent}const _spinner = spinner(${JSON.stringify(message)}, ${JSON.stringify(color)});`);
208
- lines.push(`${indent}_spinner.start();`);
209
- break;
210
- }
211
- case 'progress': {
212
- const value = Number(p.value) || 0;
213
- const max = Number(p.max) || 100;
214
- const color = p.color || 'green';
215
- lines.push(`${indent}console.log(progressBar(${value}, ${max}, 20, ${JSON.stringify(color)}));`);
216
- break;
172
+ const headers = p.headers || '[]';
173
+ lines.push(`${indent}const _tableHeaders = ${headers};`);
174
+ lines.push(`${indent}const _tableRows: string[][] = [];`);
175
+ for (const row of getChildren(node, 'row')) {
176
+ const rowData = getProps(row).data || '[]';
177
+ lines.push(`${indent}_tableRows.push(${rowData});`);
178
+ }
179
+ lines.push(`${indent}console.log(table(_tableHeaders, _tableRows));`);
180
+ return lines;
181
+ }
182
+ function renderScoreboard(node, p, indent) {
183
+ const lines = [];
184
+ const title = p.title || 'Results';
185
+ const winner = p.winner || '';
186
+ lines.push(`${indent}console.log(style(${JSON.stringify(title)}, { bold: true }));`);
187
+ if (winner) {
188
+ lines.push(`${indent}console.log(style('Winner: ${winner}', { color: 'green', bold: true }));`);
189
+ }
190
+ for (const metric of getChildren(node, 'metric')) {
191
+ const mp = getProps(metric);
192
+ const name = mp.name || '';
193
+ const values = mp.values || '[]';
194
+ lines.push(`${indent}console.log(' ' + style('${name}:', { dim: true }) + ' ' + ${values}.join(' | '));`);
195
+ }
196
+ return lines;
197
+ }
198
+ function renderSpinner(p, indent) {
199
+ const message = p.message || 'Loading...';
200
+ const color = p.color || 'white';
201
+ return [
202
+ `${indent}const _spinner = spinner(${JSON.stringify(message)}, ${JSON.stringify(color)});`,
203
+ `${indent}_spinner.start();`,
204
+ ];
205
+ }
206
+ function renderProgress(p, indent) {
207
+ const value = Number(p.value) || 0;
208
+ const max = Number(p.max) || 100;
209
+ const color = p.color || 'green';
210
+ return [`${indent}console.log(progressBar(${value}, ${max}, 20, ${JSON.stringify(color)}));`];
211
+ }
212
+ function renderBox(node, p, indent) {
213
+ const color = p.color || 'white';
214
+ const width = Number(p.width) || 50;
215
+ const boxContent = [];
216
+ for (const child of node.children || []) {
217
+ const cp = getProps(child);
218
+ if (child.type === 'text') {
219
+ boxContent.push(cp.value || '');
217
220
  }
218
- case 'box': {
219
- const color = p.color || 'white';
220
- const width = Number(p.width) || 50;
221
- // Box content from all children (recursive)
222
- const boxContent = [];
223
- for (const child of node.children || []) {
224
- const cp = getProps(child);
225
- if (child.type === 'text') {
226
- boxContent.push(cp.value || '');
227
- }
228
- else if (child.type === 'separator') {
229
- boxContent.push('─'.repeat(Math.min(Number(cp.width) || 40, width - 4)));
230
- }
231
- else if (child.type === 'progress') {
232
- boxContent.push(`[progress: ${cp.value || 0}/${cp.max || 100}]`);
233
- }
234
- else {
235
- boxContent.push(`[${child.type}]`);
236
- }
237
- }
238
- lines.push(`${indent}console.log(box(${JSON.stringify(boxContent.join('\\n'))}, ${JSON.stringify(color)}, ${width}));`);
239
- break;
221
+ else if (child.type === 'separator') {
222
+ boxContent.push('─'.repeat(Math.min(Number(cp.width) || 40, width - 4)));
240
223
  }
241
- case 'gradient': {
242
- const text = p.text || '';
243
- const colors = p.colors || '[]';
244
- lines.push(`${indent}console.log(gradient(${JSON.stringify(text)}, ${colors}));`);
245
- break;
224
+ else if (child.type === 'progress') {
225
+ boxContent.push(`[progress: ${cp.value || 0}/${cp.max || 100}]`);
246
226
  }
247
- case 'handler': {
248
- const code = p.code || '';
249
- for (const line of code.split('\n')) {
250
- lines.push(`${indent}${line.trim()}`);
251
- }
252
- break;
227
+ else {
228
+ boxContent.push(`[${child.type}]`);
253
229
  }
230
+ }
231
+ return [`${indent}console.log(box(${JSON.stringify(boxContent.join('\\n'))}, ${JSON.stringify(color)}, ${width}));`];
232
+ }
233
+ function renderGradient(p, indent) {
234
+ const text = p.text || '';
235
+ const colors = p.colors || '[]';
236
+ return [`${indent}console.log(gradient(${JSON.stringify(text)}, ${colors}));`];
237
+ }
238
+ function renderHandler(p, indent) {
239
+ const code = p.code || '';
240
+ return code.split('\n').map(line => `${indent}${line.trim()}`);
241
+ }
242
+ // ── Node renderer (dispatch) ─────────────────────────────────────────────
243
+ function renderTerminalNode(node, indent) {
244
+ const p = getProps(node);
245
+ const lines = [];
246
+ switch (node.type) {
247
+ case 'text': return renderText(p, indent);
248
+ case 'separator': return renderSeparator(p, indent);
249
+ case 'table': return renderTable(node, p, indent);
250
+ case 'scoreboard': return renderScoreboard(node, p, indent);
251
+ case 'spinner': return renderSpinner(p, indent);
252
+ case 'progress': return renderProgress(p, indent);
253
+ case 'box': return renderBox(node, p, indent);
254
+ case 'gradient': return renderGradient(p, indent);
255
+ case 'handler': return renderHandler(p, indent);
254
256
  case 'state':
255
- // Handled at top level
256
- break;
257
257
  case 'repl':
258
- // Handled at top level
259
258
  break;
260
259
  case 'parallel':
261
260
  lines.push(...generateParallelCode(node, indent));
262
261
  break;
263
262
  default:
264
- // Core language nodes (type, interface, fn, machine, etc.)
265
263
  if (isCoreNode(node.type)) {
266
264
  lines.push(...generateCoreNode(node).map(l => `${indent}${l}`));
267
265
  break;
268
266
  }
269
- // Recurse into children for unknown nodes
270
267
  if (node.children) {
271
268
  for (const child of node.children) {
272
269
  lines.push(...renderTerminalNode(child, indent));
@@ -456,6 +453,16 @@ export function transpileTerminal(root, _config) {
456
453
  irTokenCount,
457
454
  tsTokenCount,
458
455
  tokenReduction,
456
+ diagnostics: (() => {
457
+ const accounted = new Map();
458
+ accountNode(accounted, root, 'expressed', undefined, true);
459
+ const CONSUMED = new Set(['state', 'repl', 'on', 'handler']);
460
+ for (const child of root.children || []) {
461
+ if (CONSUMED.has(child.type))
462
+ accountNode(accounted, child, 'consumed', child.type + ' pre-pass', true);
463
+ }
464
+ return buildDiagnostics(root, accounted, 'terminal');
465
+ })(),
459
466
  };
460
467
  }
461
468
  // ── REPL generator ───────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"transpiler-terminal.js","sourceRoot":"","sources":["../src/transpiler-terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transpiler-terminal.js","sourceRoot":"","sources":["../src/transpiler-terminal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7J;;;;;;GAMG;AAEH,4EAA4E;AAE5E,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHpB,CAAC,IAAI,EAAE,CAAC;AAET,4EAA4E;AAE5E,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAElC,2DAA2D;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAiB,CAAC;IAExC,IAAI,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtK,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,oDAAoD;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgC,CAAC;QACtD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9I,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,OAAO,GAAG,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAE5E,SAAS,UAAU,CAAC,CAA0B,EAAE,MAAc;IAC5D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAe,IAAI,EAAE,CAAC;IACtC,MAAM,MAAM,GAAI,CAAC,CAAC,MAAiC,IAAI,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK;QAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClG,IAAI,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,GAAG;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEjD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,MAAM,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,eAAe,CAAC,CAA0B,EAAE,MAAc;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,MAAM,yBAAyB,KAAK,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,CAA0B,EAAE,MAAc;IAC3E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAiB,IAAI,IAAI,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,yBAAyB,OAAO,GAAG,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,oCAAoC,CAAC,CAAC;IAC1D,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAc,IAAI,IAAI,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,mBAAmB,OAAO,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,gDAAgD,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,CAA0B,EAAE,MAAc;IAChF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAe,IAAI,SAAS,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAgB,IAAI,EAAE,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACrF,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,8BAA8B,MAAM,sCAAsC,CAAC,CAAC;IAClG,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAc,IAAI,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAgB,IAAI,IAAI,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,6BAA6B,IAAI,8BAA8B,MAAM,gBAAgB,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,CAA0B,EAAE,MAAc;IAC/D,MAAM,OAAO,GAAG,CAAC,CAAC,OAAiB,IAAI,YAAY,CAAC;IACpD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAe,IAAI,OAAO,CAAC;IAC3C,OAAO;QACL,GAAG,MAAM,4BAA4B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI;QAC1F,GAAG,MAAM,mBAAmB;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,CAA0B,EAAE,MAAc;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAe,IAAI,OAAO,CAAC;IAC3C,OAAO,CAAC,GAAG,MAAM,2BAA2B,KAAK,KAAK,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,CAA0B,EAAE,MAAc;IACzE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAe,IAAI,OAAO,CAAC;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,KAAe,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,mBAAmB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AACvH,CAAC;AAED,SAAS,cAAc,CAAC,CAA0B,EAAE,MAAc;IAChE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAc,IAAI,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAgB,IAAI,IAAI,CAAC;IAC1C,OAAO,CAAC,GAAG,MAAM,wBAAwB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,aAAa,CAAC,CAA0B,EAAE,MAAc;IAC/D,MAAM,IAAI,GAAG,CAAC,CAAC,IAAc,IAAI,EAAE,CAAC;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,4EAA4E;AAE5E,SAAS,kBAAkB,CAAC,IAAY,EAAE,MAAc;IACtD,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,CAAC,OAAO,UAAU,CAAC,CAA4B,EAAE,MAAM,CAAC,CAAC;QACrE,KAAK,WAAW,CAAC,CAAC,OAAO,eAAe,CAAC,CAA4B,EAAE,MAAM,CAAC,CAAC;QAC/E,KAAK,OAAO,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,EAAE,CAA4B,EAAE,MAAM,CAAC,CAAC;QAC7E,KAAK,YAAY,CAAC,CAAC,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAA4B,EAAE,MAAM,CAAC,CAAC;QACvF,KAAK,SAAS,CAAC,CAAC,OAAO,aAAa,CAAC,CAA4B,EAAE,MAAM,CAAC,CAAC;QAC3E,KAAK,UAAU,CAAC,CAAC,OAAO,cAAc,CAAC,CAA4B,EAAE,MAAM,CAAC,CAAC;QAC7E,KAAK,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,EAAE,CAA4B,EAAE,MAAM,CAAC,CAAC;QACzE,KAAK,UAAU,CAAC,CAAC,OAAO,cAAc,CAAC,CAA4B,EAAE,MAAM,CAAC,CAAC;QAC7E,KAAK,SAAS,CAAC,CAAC,OAAO,aAAa,CAAC,CAA4B,EAAE,MAAM,CAAC,CAAC;QAC3E,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,MAAM;QACR,KAAK,UAAU;YACb,KAAK,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAClD,MAAM;QACR;YACE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,MAAM;YACR,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAE7E,SAAS,oBAAoB,CAAC,IAAY,EAAE,MAAc;IACxD,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAEpE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,oDAAoD,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,sBAAsB,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,sCAAsC,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,oDAAoD,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,QAAQ,EAAE,CAAC;QACb,gDAAgD;QAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9B,4EAA4E;QAC5E,+DAA+D;QAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,IAAc,IAAI,MAAM,CAAC;QAC5C,MAAM,UAAU,GAAI,EAAE,CAAC,EAAa,IAAI,IAAI,CAAC;QAC7C,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE1D,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAgB,IAAI,QAAQ,CAAC;YAC/C,MAAM,SAAS,GAAG,EAAE,CAAC,MAAgB,IAAI,QAAQ,CAAC;YAElD,6CAA6C;YAC7C,MAAM,WAAW,GAAG,CAAC,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC1D,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CACnF,CAAC;YACF,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACzD,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CACjF,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,UAAU,sBAAsB,OAAO,QAAQ,CAAC,CAAC;YAE1F,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC3D,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,IAAI,SAAS,EAAE,CAAC;oBACd,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,SAAS,qBAAqB,OAAO,KAAK,MAAM,4BAA4B,CAAC,CAAC;YAE/G,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,OAAO,KAAK,SAAS,KAAK,CAAC,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,gEAAgE;QAChE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC;QAC1C,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAgB,IAAI,QAAQ,CAAC;YAC/C,MAAM,MAAM,GAAG,EAAE,CAAC,MAAgB,IAAI,QAAQ,CAAC;YAC/C,MAAM,SAAS,GAAG,EAAE,CAAC,MAAgB,IAAI,GAAG,MAAM,QAAQ,CAAC;YAE3D,iCAAiC;YACjC,MAAM,WAAW,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC/C,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CACnF,CAAC;YACF,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC9C,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CACjF,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC;YAE1C,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC3D,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,IAAI,SAAS,EAAE,CAAC;oBACd,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,eAAe,SAAS,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,MAAM,4BAA4B,CAAC,CAAC;YAEhI,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,0BAA0B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,SAAS,KAAK,CAAC,CAAC;YACjG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,WAAW,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,6DAA6D,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,sDAAsD,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,qEAAqE,CAAC,CAAC;IAC3F,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,4CAA4C,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,6DAA6D,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,sDAAsD,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,2BAA2B,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,4DAA4D,CAAC,CAAC;IAClF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,wDAAwD,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,4BAA4B,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,8CAA8C,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,2BAA2B,CAAC,CAAC;IAEjD,aAAa;IACb,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,uBAAuB;QACvB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,sBAAsB;QACtB,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACtD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAA4B;IAC1E,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,eAAe;IACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,eAAe;IACf,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACzE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,gDAAgD;IAChD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAEpE,gFAAgF;IAChF,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACzE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzH,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAEjE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACzE,IAAI,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,CAAC,IAAI,CAAC;QACb,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;QAC3B,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACzB,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC;IAE3E,OAAO;QACL,IAAI;QACJ,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,WAAW,EAAE,CAAC,GAAG,EAAE;YACjB,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;YACpD,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACxC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,GAAG,WAAW,EAAE,IAAI,CAAC,CAAC;YAC1G,CAAC;YACD,OAAO,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC,CAAC,EAAE;KACL,CAAC;AACJ,CAAC;AAED,4EAA4E;AAE5E,SAAS,gBAAgB,CAAC,QAAgB;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAgB,IAAI,IAAI,CAAC;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IACzE,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,kBAAkB;IAClB,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACpD,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,CAC/H,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhF,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAEvD,0BAA0B;QAC1B,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC1E,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC;YACvH,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACvC,+BAA+B;gBAC/B,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;oBAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChD,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,uBAAuB;IACvB,MAAM,eAAe,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACzD,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CACrI,CAAC;IACF,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE3B,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kernlang/terminal",
3
- "version": "3.1.0",
3
+ "version": "3.1.2",
4
4
  "description": "Kern ANSI terminal rendering transpiler",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,7 +16,7 @@
16
16
  ],
17
17
  "license": "AGPL-3.0",
18
18
  "dependencies": {
19
- "@kernlang/core": "3.1.0"
19
+ "@kernlang/core": "3.1.2"
20
20
  },
21
21
  "scripts": {
22
22
  "build": "tsc -b",