@vyaz/renderer 0.0.3 → 0.0.5
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/dist/index.js +34 -3
- package/dist/src/CanvasRenderer.d.ts +105 -0
- package/dist/src/SVGRenderer.d.ts +96 -0
- package/{src/index.ts → dist/src/index.d.ts} +0 -4
- package/dist/src/interactive.d.ts +63 -0
- package/dist/src/types.d.ts +61 -0
- package/dist/src/utils.d.ts +21 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +6 -6
- package/src/CanvasRenderer.ts +0 -559
- package/src/SVGRenderer.ts +0 -1110
- package/src/interactive.ts +0 -284
- package/src/types.ts +0 -69
- package/src/utils.ts +0 -28
package/dist/index.js
CHANGED
|
@@ -178,15 +178,16 @@ function defaultStyleState(span) {
|
|
|
178
178
|
color: span.style.color || "#000000",
|
|
179
179
|
fontStyle: span.style.fontStyle || "normal",
|
|
180
180
|
decoration: decorations.join(" "),
|
|
181
|
-
letterSpacing: span.style.letterSpacing
|
|
181
|
+
letterSpacing: span.style.letterSpacing,
|
|
182
|
+
backgroundColor: span.style.backgroundColor
|
|
182
183
|
};
|
|
183
184
|
}
|
|
184
185
|
function equalStyle(a, b) {
|
|
185
|
-
return a.fontFamily === b.fontFamily && a.fontSize === b.fontSize && a.fontWeight === b.fontWeight && a.color === b.color && a.fontStyle === b.fontStyle && a.decoration === b.decoration && a.letterSpacing === b.letterSpacing;
|
|
186
|
+
return a.fontFamily === b.fontFamily && a.fontSize === b.fontSize && a.fontWeight === b.fontWeight && a.color === b.color && a.fontStyle === b.fontStyle && a.decoration === b.decoration && a.letterSpacing === b.letterSpacing && a.backgroundColor === b.backgroundColor;
|
|
186
187
|
}
|
|
187
188
|
function styleSignature(span) {
|
|
188
189
|
const s = defaultStyleState(span);
|
|
189
|
-
return `${s.fontFamily}|${s.fontSize}|${s.fontWeight}|${s.color}|${s.fontStyle}|${s.decoration}|${s.letterSpacing ?? ""}`;
|
|
190
|
+
return `${s.fontFamily}|${s.fontSize}|${s.fontWeight}|${s.color}|${s.fontStyle}|${s.decoration}|${s.letterSpacing ?? ""}|${s.backgroundColor ?? ""}`;
|
|
190
191
|
}
|
|
191
192
|
function buildTextAttrs(line, span, opts, runId) {
|
|
192
193
|
const x = line.x;
|
|
@@ -410,6 +411,17 @@ ${debugMarkup}
|
|
|
410
411
|
this.currentText.children.push(tspan);
|
|
411
412
|
}
|
|
412
413
|
}
|
|
414
|
+
addBackgroundRect(x, y, width, height, color) {
|
|
415
|
+
this.closeText();
|
|
416
|
+
const rect = el("rect", {
|
|
417
|
+
x: fmt(x),
|
|
418
|
+
y: fmt(y),
|
|
419
|
+
width: fmt(width),
|
|
420
|
+
height: fmt(height),
|
|
421
|
+
fill: color
|
|
422
|
+
});
|
|
423
|
+
this.root.children.push(rect);
|
|
424
|
+
}
|
|
413
425
|
addRawLine(lineStr) {
|
|
414
426
|
this.closeText();
|
|
415
427
|
this.root.children.push(rawNode(lineStr));
|
|
@@ -532,11 +544,30 @@ function renderDebugToSVG(lines, flags, frameSize, contentSize, columns, leftPad
|
|
|
532
544
|
return parts.join(`
|
|
533
545
|
`);
|
|
534
546
|
}
|
|
547
|
+
function getSpanBackgroundAttrs(span, baselineY) {
|
|
548
|
+
if (!span.style.backgroundColor)
|
|
549
|
+
return null;
|
|
550
|
+
const x = span.x;
|
|
551
|
+
const y = baselineY - span.fontMetrics.ascent;
|
|
552
|
+
const w = span.width;
|
|
553
|
+
const h = span.fontMetrics.ascent + span.fontMetrics.descent;
|
|
554
|
+
return { x, y, w, h, fill: span.style.backgroundColor };
|
|
555
|
+
}
|
|
535
556
|
function renderToSVG(lines, options = {}) {
|
|
536
557
|
const opts = resolveOptions(options);
|
|
537
558
|
const { width: svgWidth, height: svgHeight, viewBox, frameWidth, frameHeight } = resolveSize(lines, opts);
|
|
538
559
|
const builder = new SvgAstBuilder(svgWidth, svgHeight, opts, viewBox);
|
|
539
560
|
for (const line of lines) {
|
|
561
|
+
const baselineY = line.y + line.baseline;
|
|
562
|
+
for (const span of line.spans) {
|
|
563
|
+
if (!span.text || !span.style.backgroundColor)
|
|
564
|
+
continue;
|
|
565
|
+
const bg = getSpanBackgroundAttrs(span, baselineY);
|
|
566
|
+
if (bg) {
|
|
567
|
+
const rx = line.x + bg.x;
|
|
568
|
+
builder.addBackgroundRect(rx, bg.y, bg.w, bg.h, bg.fill);
|
|
569
|
+
}
|
|
570
|
+
}
|
|
540
571
|
if (opts.structure === "glyph") {
|
|
541
572
|
let currentRunIdx = -1;
|
|
542
573
|
for (const span of line.spans) {
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CanvasRenderer.ts — Layered Canvas rendering for Line[].
|
|
3
|
+
*
|
|
4
|
+
* Takes ready Line[] with absolute coordinates and provides
|
|
5
|
+
* rendering functions for each visual layer:
|
|
6
|
+
*
|
|
7
|
+
* 1. Background layer — clearRect / fillRect
|
|
8
|
+
* 2. Text layer — text spans (dumb drawer)
|
|
9
|
+
* 3. Selection layer — highlighted selection range
|
|
10
|
+
* 4. Cursor layer — blinking caret
|
|
11
|
+
* 5. Debug overlay layer — bounding boxes, baselines, labels
|
|
12
|
+
*
|
|
13
|
+
* Each function is standalone so consumers (e.g. fabric.js adapter)
|
|
14
|
+
* can compose layers in any order or skip layers as needed.
|
|
15
|
+
*
|
|
16
|
+
* Does NOT compute anything — only draws (dumb drawer principle).
|
|
17
|
+
*
|
|
18
|
+
* @see SVGRenderer for reference SVG implementation.
|
|
19
|
+
*/
|
|
20
|
+
import type { Line } from '@vyaz/core';
|
|
21
|
+
import type { DebugFlags } from './types.js';
|
|
22
|
+
import type { CharPos } from './interactive.js';
|
|
23
|
+
export interface CanvasRenderOptions {
|
|
24
|
+
/**
|
|
25
|
+
* How the canvas size is determined:
|
|
26
|
+
* 'frame' — use current ctx.canvas.width/height (default)
|
|
27
|
+
* 'content' — compute bounding box from lines, resize canvas to fit
|
|
28
|
+
*/
|
|
29
|
+
sizing?: 'frame' | 'content';
|
|
30
|
+
/**
|
|
31
|
+
* When true: render space spans with a space character.
|
|
32
|
+
* When false (default): skip space spans (position is already accounted for in x).
|
|
33
|
+
*/
|
|
34
|
+
preserveSpaces?: boolean;
|
|
35
|
+
/** Background color for clearing. If omitted, canvas is cleared transparent. */
|
|
36
|
+
backgroundColor?: string;
|
|
37
|
+
/** Debug overlay flags. */
|
|
38
|
+
debug?: DebugFlags;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for cursor rendering.
|
|
42
|
+
*/
|
|
43
|
+
export interface CursorOptions {
|
|
44
|
+
/** Cursor color. Default: '#000'. */
|
|
45
|
+
color?: string;
|
|
46
|
+
/** Cursor width in px. Default: 1. */
|
|
47
|
+
width?: number;
|
|
48
|
+
/** Cursor height relative to baseline. If undefined, uses the line's ascent + descent. */
|
|
49
|
+
height?: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Render Line[] array to Canvas.
|
|
53
|
+
*
|
|
54
|
+
* @param ctx — Canvas 2D rendering context
|
|
55
|
+
* @param lines — ready Line[] with absolute coordinates
|
|
56
|
+
* @param options — rendering options
|
|
57
|
+
*/
|
|
58
|
+
export declare function renderToCanvas(ctx: CanvasRenderingContext2D | any, lines: Line[], options?: CanvasRenderOptions): void;
|
|
59
|
+
/**
|
|
60
|
+
* Draw debug overlays on Canvas.
|
|
61
|
+
*
|
|
62
|
+
* Mirrors SVGRenderer's renderDebugToSVG (lines 658-814) but draws
|
|
63
|
+
* directly on Canvas 2D instead of generating SVG markup.
|
|
64
|
+
*
|
|
65
|
+
* Supported flags:
|
|
66
|
+
* frameBox / frame — frame container bounding box (blue dashed)
|
|
67
|
+
* contentBox — content bounding box (pink dotted)
|
|
68
|
+
* paragraphBox — per-paragraph colored boxes (requires groupLinesByParagraph)
|
|
69
|
+
* columnBox — column separators for multi-column layout
|
|
70
|
+
* box — line box outlines (red)
|
|
71
|
+
* baseline — baseline line (blue)
|
|
72
|
+
* ascentDescent — ascent/descent lines (green dashed)
|
|
73
|
+
* lineGap — line height fill (blue transparent)
|
|
74
|
+
* labels — coordinate labels
|
|
75
|
+
* runs — span bounding boxes (purple)
|
|
76
|
+
*/
|
|
77
|
+
export declare function renderDebugToCanvas(ctx: CanvasRenderingContext2D, lines: Line[], _width: number, _height: number, flags: DebugFlags): void;
|
|
78
|
+
/**
|
|
79
|
+
* Render a text selection highlight overlay.
|
|
80
|
+
*
|
|
81
|
+
* Draws a semi-transparent blue rectangle for each character
|
|
82
|
+
* in the range [start, end). Supports cross-line selections.
|
|
83
|
+
*
|
|
84
|
+
* If `start` and `end` are in different lines, the full width
|
|
85
|
+
* of intermediate lines is highlighted.
|
|
86
|
+
*
|
|
87
|
+
* @param ctx — Canvas 2D rendering context
|
|
88
|
+
* @param lines — layout lines
|
|
89
|
+
* @param start — selection start position (inclusive)
|
|
90
|
+
* @param end — selection end position (exclusive)
|
|
91
|
+
* @param color — highlight color. Default: 'rgba(100, 150, 255, 0.3)'
|
|
92
|
+
*/
|
|
93
|
+
export declare function renderSelection(ctx: CanvasRenderingContext2D, lines: Line[], start: CharPos, end: CharPos, color?: string): void;
|
|
94
|
+
/**
|
|
95
|
+
* Render a text cursor (caret) at the given character position.
|
|
96
|
+
*
|
|
97
|
+
* Draws a vertical line at the character's left edge.
|
|
98
|
+
* The caller is responsible for cursor blink timing.
|
|
99
|
+
*
|
|
100
|
+
* @param ctx — Canvas 2D rendering context
|
|
101
|
+
* @param lines — layout lines
|
|
102
|
+
* @param pos — cursor position (character left edge)
|
|
103
|
+
* @param options — cursor visual options
|
|
104
|
+
*/
|
|
105
|
+
export declare function renderCursor(ctx: CanvasRenderingContext2D, lines: Line[], pos: CharPos, options?: CursorOptions): void;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SVGRenderer.ts — SVG text builder.
|
|
3
|
+
*
|
|
4
|
+
* Converts Line[] into SVG markup using an AST-first approach.
|
|
5
|
+
* Builds a tree of SvgNode, then serializes to string in one pass.
|
|
6
|
+
*
|
|
7
|
+
* Four presets:
|
|
8
|
+
* flat — all text in one <text> element, xml:space="preserve", no <tspan>
|
|
9
|
+
* browser — expanded <tspan> per run, xml:space="preserve", diff attributes, no textLength
|
|
10
|
+
* preserve — expanded <tspan> per run, xml:space="preserve", diff attributes, textLength
|
|
11
|
+
* glyph — <tspan> per glyph with per-character x positions, xml:space="preserve"
|
|
12
|
+
*
|
|
13
|
+
* All presets preserve whitespace via xml:space="preserve". Space spans (type: 'space')
|
|
14
|
+
* are rendered as separate <tspan> elements with explicit x coordinates.
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* const svg = renderToSVG(lines, { preset: 'browser' })
|
|
18
|
+
* const svg = renderToSVG(lines, { preset: 'preserve', style: 'css', fit: 'frag' })
|
|
19
|
+
*/
|
|
20
|
+
import type { Line, ParagraphLayoutResult, MultiColumnConfig } from '@vyaz/core';
|
|
21
|
+
import type { DebugFlags } from './types.js';
|
|
22
|
+
export type SvgPreset = 'flat' | 'browser' | 'preserve' | 'glyph';
|
|
23
|
+
export type SvgStyle = 'css' | 'xml';
|
|
24
|
+
export type SvgFit = 'none' | 'text' | 'frag';
|
|
25
|
+
export type SvgSizing = 'frame' | 'content';
|
|
26
|
+
export type PerAxisSizing = {
|
|
27
|
+
horizontal: SvgSizing;
|
|
28
|
+
vertical: SvgSizing;
|
|
29
|
+
};
|
|
30
|
+
export interface SVGRenderOptions {
|
|
31
|
+
/** Shorthand that sets structure + spacing at once. */
|
|
32
|
+
preset?: SvgPreset;
|
|
33
|
+
/** How style properties are expressed: as CSS `style` attribute or as XML presentation attributes. */
|
|
34
|
+
style?: SvgStyle;
|
|
35
|
+
/** How `textLength` is applied. */
|
|
36
|
+
fit?: SvgFit;
|
|
37
|
+
/**
|
|
38
|
+
* How SVG determines its canvas size.
|
|
39
|
+
* Single string: applies to both axes. Object: per-axis control.
|
|
40
|
+
* 'frame' — use explicit width/height from options.
|
|
41
|
+
* 'content' — compute from lines bounding box.
|
|
42
|
+
*/
|
|
43
|
+
sizing?: SvgSizing | PerAxisSizing;
|
|
44
|
+
/** SVG canvas width (px). Used when horizontal sizing='frame' or as fallback. */
|
|
45
|
+
width?: number;
|
|
46
|
+
/** SVG canvas height (px). Used when vertical sizing='frame' or as fallback. */
|
|
47
|
+
height?: number;
|
|
48
|
+
/** CSS class for `<svg>`. */
|
|
49
|
+
className?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Extra padding added around the SVG canvas. Content coordinates stay unchanged;
|
|
52
|
+
* the SVG viewBox is shifted and canvas is enlarged so debug overlays
|
|
53
|
+
* (frameBox / contentBox) are visible with a gap from the edge.
|
|
54
|
+
* Useful for snapshot tests to clearly show frame vs content boundaries.
|
|
55
|
+
*/
|
|
56
|
+
contentPadding?: number;
|
|
57
|
+
/** Debug overlays. */
|
|
58
|
+
debug?: DebugFlags;
|
|
59
|
+
/**
|
|
60
|
+
* Multi-column layout configuration for debug overlays.
|
|
61
|
+
* When set, paragraph and column boxes are rendered per-column.
|
|
62
|
+
*/
|
|
63
|
+
columns?: MultiColumnConfig;
|
|
64
|
+
/** Left padding from frame (needed for column debug rendering). */
|
|
65
|
+
paddingLeft?: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Render Line[] into SVG string.
|
|
69
|
+
*
|
|
70
|
+
* @param lines — layout lines with spans
|
|
71
|
+
* @param options — rendering options (preset + style/fit/sizing modifiers)
|
|
72
|
+
* @returns SVG string
|
|
73
|
+
*/
|
|
74
|
+
export declare function renderToSVG(lines: Line[], options?: SVGRenderOptions): string;
|
|
75
|
+
/**
|
|
76
|
+
* Render one ParagraphLayoutResult to SVG (convenience wrapper).
|
|
77
|
+
*/
|
|
78
|
+
export declare function renderParagraphToSVG(lines: Line[], paragraphWidth: number, paragraphHeight: number, options?: SVGRenderOptions): string;
|
|
79
|
+
/**
|
|
80
|
+
* Render a ParagraphLayoutResult to SVG, auto-passing dimensions.
|
|
81
|
+
*
|
|
82
|
+
* Uses `result.width` and `result.height` as the SVG canvas size.
|
|
83
|
+
* This is the recommended way to render when you have a layout result
|
|
84
|
+
* and want `sizing: 'frame'` with correct dimensions.
|
|
85
|
+
*
|
|
86
|
+
* @param result — layout result from ParagraphLayoutEngine.layout()
|
|
87
|
+
* @param options — rendering options (preset, style, fit, etc.)
|
|
88
|
+
* @returns SVG string
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* const result = paragraphLayoutEngine.layout(paragraph, 300);
|
|
93
|
+
* const svg = renderResultToSVG(result, { preset: 'preserve' });
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function renderResultToSVG(result: ParagraphLayoutResult, options?: SVGRenderOptions): string;
|
|
@@ -3,14 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Converts Line[] (from @vyaz/core) into SVG strings or Canvas drawings.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
6
|
export { renderToSVG, renderParagraphToSVG, renderResultToSVG } from './SVGRenderer.js';
|
|
8
7
|
export type { SVGRenderOptions, SvgPreset, SvgStyle, SvgFit, SvgSizing } from './SVGRenderer.js';
|
|
9
|
-
|
|
10
8
|
export { renderToCanvas, renderDebugToCanvas, renderSelection, renderCursor } from './CanvasRenderer.js';
|
|
11
9
|
export type { CanvasRenderOptions, CursorOptions } from './CanvasRenderer.js';
|
|
12
|
-
|
|
13
10
|
export { charAtPoint, charIndexToPos, posToCharIndex } from './interactive.js';
|
|
14
11
|
export type { CharPos } from './interactive.js';
|
|
15
|
-
|
|
16
12
|
export type { DebugFlags } from './types.js';
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* interactive.ts — hit-testing and position utilities for Canvas editor.
|
|
3
|
+
*
|
|
4
|
+
* Provides functions to map pixel coordinates to character positions
|
|
5
|
+
* within the layout output (Line[]), using Span.glyphAdvances for
|
|
6
|
+
* per-character granularity.
|
|
7
|
+
*
|
|
8
|
+
* @see {@link https://www.w3.org/TR/css-text-3/ | CSS Text Module Level 3}
|
|
9
|
+
*/
|
|
10
|
+
import type { Line, Span } from '@vyaz/core';
|
|
11
|
+
/**
|
|
12
|
+
* A resolved character position within the layout tree.
|
|
13
|
+
*
|
|
14
|
+
* Contains enough context for cursor placement, selection start/end,
|
|
15
|
+
* and hit-testing.
|
|
16
|
+
*/
|
|
17
|
+
export interface CharPos {
|
|
18
|
+
/** Index of the line in the lines array (0-based). */
|
|
19
|
+
lineIndex: number;
|
|
20
|
+
/** Index of the span within the line (0-based). */
|
|
21
|
+
spanIndex: number;
|
|
22
|
+
/** Index of the character within the span text (0-based). */
|
|
23
|
+
charIndex: number;
|
|
24
|
+
/** Paragraph index (from Span.pIdx). */
|
|
25
|
+
pIdx: number;
|
|
26
|
+
/** Absolute X position of the character's left edge (CSS px). */
|
|
27
|
+
x: number;
|
|
28
|
+
/** Absolute Y position of the character's baseline (CSS px). */
|
|
29
|
+
y: number;
|
|
30
|
+
/** Character advance width in px (from glyphAdvances or estimated). */
|
|
31
|
+
width: number;
|
|
32
|
+
/** Reference to the owning Line. */
|
|
33
|
+
line: Line;
|
|
34
|
+
/** Reference to the owning Span. */
|
|
35
|
+
span: Span;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Find the character position nearest to the given pixel coordinates.
|
|
39
|
+
*
|
|
40
|
+
* Uses a two-pass approach:
|
|
41
|
+
* 1. Find the nearest line by Y distance (closest baseline).
|
|
42
|
+
* 2. Within that line, find the nearest character by X distance
|
|
43
|
+
* (using glyph advances or fallback uniform widths).
|
|
44
|
+
*
|
|
45
|
+
* Returns `null` if `lines` is empty.
|
|
46
|
+
*/
|
|
47
|
+
export declare function charAtPoint(lines: Line[], px: number, py: number): CharPos | null;
|
|
48
|
+
/**
|
|
49
|
+
* Convert a global character index (startIndex / endIndex from Line)
|
|
50
|
+
* to a `CharPos`.
|
|
51
|
+
*
|
|
52
|
+
* Useful for mapping cursor/selection from a text model to layout position.
|
|
53
|
+
*
|
|
54
|
+
* Returns `null` if the index is out of range.
|
|
55
|
+
*/
|
|
56
|
+
export declare function charIndexToPos(lines: Line[], charIndex: number): CharPos | null;
|
|
57
|
+
/**
|
|
58
|
+
* Compute the global character index from a CharPos.
|
|
59
|
+
*
|
|
60
|
+
* This walks all preceding lines/spans/characters to compute
|
|
61
|
+
* the absolute index in the full text.
|
|
62
|
+
*/
|
|
63
|
+
export declare function posToCharIndex(lines: Line[], pos: CharPos): number;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render types shared across all renderers (SVG, Canvas, etc.).
|
|
3
|
+
*/
|
|
4
|
+
export interface DebugFlags {
|
|
5
|
+
/** Frame container bounding box (frameWidth × frameHeight) */
|
|
6
|
+
frameBox?: boolean;
|
|
7
|
+
/** Actual content bounding box (BBox of all lines) */
|
|
8
|
+
contentBox?: boolean;
|
|
9
|
+
/** Paragraph bounding boxes (grouped by paragraphId). */
|
|
10
|
+
paragraphBox?: boolean;
|
|
11
|
+
/** Stroke width (px) for all debug border lines. Default 1. */
|
|
12
|
+
widthBorder?: number;
|
|
13
|
+
/** Show filled rect for each line's lineHeight (background fill). */
|
|
14
|
+
lineGap?: boolean;
|
|
15
|
+
/** Line box outline */
|
|
16
|
+
box?: boolean;
|
|
17
|
+
/** Baseline line */
|
|
18
|
+
baseline?: boolean;
|
|
19
|
+
/** Ascent/descent lines */
|
|
20
|
+
ascentDescent?: boolean;
|
|
21
|
+
/** Coordinate labels */
|
|
22
|
+
labels?: boolean;
|
|
23
|
+
/** Run rectangles */
|
|
24
|
+
runs?: boolean;
|
|
25
|
+
/** Column separators (only rendered when multi-column config is set). */
|
|
26
|
+
columnBox?: boolean;
|
|
27
|
+
/** @deprecated Use frameBox instead */
|
|
28
|
+
frame?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A generic SVG element node in the AST.
|
|
32
|
+
*/
|
|
33
|
+
export interface SvgElement {
|
|
34
|
+
type: 'element';
|
|
35
|
+
tag: string;
|
|
36
|
+
attrs: Record<string, string | number | undefined>;
|
|
37
|
+
children: SvgNode[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A text node inside an SVG element (escaped on serialization).
|
|
41
|
+
*/
|
|
42
|
+
export interface SvgTextNode {
|
|
43
|
+
type: 'text';
|
|
44
|
+
value: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A raw content node — output verbatim without escaping.
|
|
48
|
+
* Used for pre-rendered debug overlay markup.
|
|
49
|
+
*/
|
|
50
|
+
export interface SvgRawNode {
|
|
51
|
+
type: 'raw';
|
|
52
|
+
value: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* An SVG comment node.
|
|
56
|
+
*/
|
|
57
|
+
export interface SvgCommentNode {
|
|
58
|
+
type: 'comment';
|
|
59
|
+
value: string;
|
|
60
|
+
}
|
|
61
|
+
export type SvgNode = SvgElement | SvgTextNode | SvgRawNode | SvgCommentNode;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* render/utils.ts — shared renderer utilities.
|
|
3
|
+
*/
|
|
4
|
+
import type { Line } from '@vyaz/core';
|
|
5
|
+
/**
|
|
6
|
+
* Format a number for SVG output with fixed precision.
|
|
7
|
+
* Prevents subpixel noise from creating false snapshot diffs.
|
|
8
|
+
*
|
|
9
|
+
* @param n — number to format
|
|
10
|
+
* @param precision — decimal places (default 2)
|
|
11
|
+
*/
|
|
12
|
+
export declare function fmt(n: number, precision?: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* Compute the bounding box (content width + height, min x/y) from an array of Line.
|
|
15
|
+
*/
|
|
16
|
+
export declare function computeBBox(lines: Line[]): {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.full.d.ts","../../core/dist/types/document.d.ts","../../core/dist/types/layouttypes.d.ts","../../core/dist/types/fonttypes.d.ts","../../core/dist/measure/canvas-polyfill.d.ts","../../core/dist/layout/paragraphlayoutengine.d.ts","../../core/dist/compile/documentcompiler.d.ts","../../core/dist/layout/positioningengine.d.ts","../../core/dist/layout/lineboxvalidator.d.ts","../../core/dist/layout/textframelayoutengine.d.ts","../../core/dist/layout/autofitengine.d.ts","../../core/dist/utils/grouplinesbyparagraph.d.ts","../../core/dist/utils/texttransform.d.ts","../../core/dist/utils/list.d.ts","../../core/dist/measure/fontengine.d.ts","../../core/dist/measure/fontmetricsprovider.d.ts","../../core/dist/measure/systemfontregistry.d.ts","../../core/dist/utils/font.d.ts","../../core/dist/measure/fontnotfounderror.d.ts","../../core/dist/index.d.ts","../src/types.ts","../src/interactive.ts","../src/utils.ts","../src/canvasrenderer.ts","../src/svgrenderer.ts","../src/index.ts","../../../node_modules/.bun/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../../node_modules/.bun/@types+hast@3.0.5/node_modules/@types/hast/index.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/globals.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/utility.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/header.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/client.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/dispatcher1-wrapper.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/socks5-proxy-agent.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/api.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/util.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.bun/undici-types@8.3.0/node_modules/undici-types/index.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/assert.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/buffer.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/child_process.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/cluster.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/console.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/constants.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/crypto.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/dgram.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/dns.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/domain.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/events.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/ffi.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/fs.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/http.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/http2.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/https.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/inspector.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/module.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/net.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/os.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/path.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/path/posix.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/path/win32.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/process.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/punycode.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/querystring.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/quic.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/readline.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/repl.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/sea.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/stream.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/stream/iter.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/test.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/test/reporters.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/timers.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/tls.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/tty.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/url.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/util.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/util/types.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/v8.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/vm.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/wasi.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/zlib.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/zlib/iter.d.ts","../../../node_modules/.bun/@types+node@26.1.1/node_modules/@types/node/index.d.ts"],"fileIdsList":[[91,94,159,167,172,175,177,178,179,191],[94,156,157,159,167,172,175,177,178,179,191],[94,158,159,167,172,175,177,178,179,191],[159,167,172,175,177,178,179,191],[94,159,167,172,175,177,178,179,191,200],[94,159,160,165,167,170,172,175,177,178,179,181,191,196,209],[94,159,160,161,167,170,172,175,177,178,179,191],[94,159,162,167,172,175,177,178,179,191,210],[94,159,163,164,167,172,175,177,178,179,182,191],[94,159,164,167,172,175,177,178,179,191,196,206],[94,159,165,167,170,172,175,177,178,179,181,191],[94,158,159,166,167,172,175,177,178,179,191],[94,159,167,168,172,175,177,178,179,191],[94,159,167,169,170,172,175,177,178,179,191],[94,158,159,167,170,172,175,177,178,179,191],[94,159,167,172,175,177,178,179,191],[94,159,167,170,172,173,175,177,178,179,191,196,209],[94,159,167,170,172,173,175,177,178,179,191,196,198,200],[94,146,159,167,170,172,174,175,177,178,179,181,191,196,209],[94,159,167,170,172,174,175,177,178,179,181,191,196,206,209],[94,159,167,172,174,175,176,177,178,179,191,196,206,209],[93,94,95,96,97,98,99,100,101,102,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217],[94,159,167,170,172,175,177,178,179,191],[94,159,167,172,175,177,179,191],[94,159,167,172,175,177,178,179,180,191,209],[94,159,167,170,172,175,177,178,179,181,191,196],[94,159,167,172,175,177,178,179,182,191],[94,159,167,172,175,177,178,179,183,191],[94,159,167,170,172,175,177,178,179,186,191],[94,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216],[94,159,167,172,175,177,178,179,188,191],[94,159,167,172,175,177,178,179,189,191],[94,159,164,167,172,175,177,178,179,181,191,200],[94,159,167,170,172,175,177,178,179,191,192],[94,159,167,172,175,177,178,179,191,193,210,213],[94,159,167,170,172,175,177,178,179,191,196,198,199,200],[94,159,167,172,175,177,178,179,191,197,200],[94,159,167,170,172,175,177,178,179,191,196,198],[94,159,167,170,172,175,177,178,179,191,196,199,200],[94,159,167,172,175,177,178,179,191,200,210],[94,159,167,172,175,177,178,179,191,201],[94,156,159,167,172,175,177,178,179,191,196,203,209],[94,159,167,172,175,177,178,179,191,196,202],[94,159,167,170,172,175,177,178,179,191,204,205],[94,159,167,172,175,177,178,179,191,204,205],[94,159,164,167,172,175,177,178,179,181,191,196,206],[94,159,167,172,175,177,178,179,191,207],[94,159,167,172,175,177,178,179,181,191,208],[94,159,167,172,174,175,177,178,179,189,191,209],[94,159,167,172,175,177,178,179,191,210,211],[94,159,164,167,172,175,177,178,179,191,211],[94,159,167,172,175,177,178,179,191,196,212],[94,159,167,172,175,177,178,179,180,191,213],[94,159,167,172,175,177,178,179,191,214],[94,159,162,167,172,175,177,178,179,191],[94,159,164,167,172,175,177,178,179,191],[94,159,167,172,175,177,178,179,191,210],[94,146,159,167,172,175,177,178,179,191],[94,159,167,172,175,177,178,179,191,209],[94,159,167,172,175,177,178,179,191,215],[94,159,167,172,175,177,178,179,186,191],[94,159,167,172,175,177,178,179,191,205],[94,146,159,167,170,172,173,175,177,178,179,186,191,196,200,209,212,213,215],[94,159,167,172,175,177,178,179,191,196,216],[94,159,167,172,175,177,178,179,191,198,217],[94,109,112,115,116,159,167,172,175,177,178,179,191,209],[94,112,159,167,172,175,177,178,179,191,196,209],[94,112,116,159,167,172,175,177,178,179,191,209],[94,159,167,172,175,177,178,179,191,196],[94,106,159,167,172,175,177,178,179,191],[94,110,159,167,172,175,177,178,179,191],[94,108,109,112,159,167,172,175,177,178,179,191,209],[94,159,167,172,175,177,178,179,181,191,206],[94,159,167,172,175,177,178,179,191,218],[94,106,159,167,172,175,177,178,179,191,218],[94,108,112,159,167,172,175,177,178,179,181,191,209],[94,103,104,105,107,111,159,167,170,172,175,177,178,179,191,196,209],[94,112,159,167,172,175,177,178,179,191],[94,112,121,130,159,167,172,175,177,178,179,191],[94,104,110,159,167,172,175,177,178,179,191],[94,112,140,141,159,167,172,175,177,178,179,191],[94,104,107,112,159,167,172,175,177,178,179,191,200,209,218],[94,108,112,159,167,172,175,177,178,179,191,209],[94,103,159,167,172,175,177,178,179,191],[94,106,107,108,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,141,142,143,144,145,159,167,172,175,177,178,179,191],[94,112,133,136,159,167,172,175,177,178,179,191],[94,112,121,123,124,159,167,172,175,177,178,179,191],[94,110,112,123,125,159,167,172,175,177,178,179,191],[94,111,159,167,172,175,177,178,179,191],[94,104,106,112,159,167,172,175,177,178,179,191],[94,112,116,123,125,159,167,172,175,177,178,179,191],[94,116,159,167,172,175,177,178,179,191],[94,110,112,115,159,167,172,175,177,178,179,191,209],[94,104,108,112,121,159,167,172,175,177,178,179,191],[94,112,133,159,167,172,175,177,178,179,191],[94,125,159,167,172,175,177,178,179,191],[94,104,108,112,116,159,167,172,175,177,178,179,191],[94,106,112,140,159,167,172,175,177,178,179,191,200,215,218],[66,94,159,167,172,175,177,178,179,191],[66,67,68,70,71,72,73,74,75,76,77,78,79,80,81,82,83,94,159,167,172,175,177,178,179,191],[67,94,159,167,172,175,177,178,179,191],[66,67,68,69,94,159,167,172,175,177,178,179,191],[66,67,68,71,94,159,167,172,175,177,178,179,191],[66,67,94,159,167,172,175,177,178,179,191],[68,94,159,167,172,175,177,178,179,191],[68,79,94,159,167,172,175,177,178,179,191],[84,85,86,87,94,159,167,172,175,177,178,179,191],[85,86,88,89,94,159,167,172,175,177,178,179,191],[84,94,159,167,172,175,177,178,179,191],[84,85,87,94,159,167,172,175,177,178,179,191]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3cbad9a1ba4453443026ed38e4b8be018abb26565fa7c944376463ad9df07c41","impliedFormat":1},"3701076edf891e70878cef573f0c78bf5d5daba8f09c3ef45ce2e233a9cf37a7","ba77edd4ff90d963dc903eb9b5935d4aaf5304d5597e0f54706182f3e2b6827d","cc7d8e61c01c9a258562e09afeaf1894216b6422b194494208a7a9fd4fef59bb","c754c3997dee1be15b13b47cea0d472988e27b631a17a05c2c8921f18524e49f","1b85651df64d355569aeabfa2e8d59bb7d30baea9480ef31f14c5b2636216017","7700ae5206e789711977b0b2699f20b01743f1e1a5466574a3b56a5c838fbae2","849a9ccaf14d151b47efd97d211485dcaebcadc681d192749fbee661029b6dfe","a68689ccbf78d41470311cd428a7d2066be4a2aa23955e86d657d147e07e4953","a9af34a336037c2d7d4bc760f56ed2e4fd8f3af02029bda5b22f11b2331019e9","fc68e1c6f5cab2fc8e084682e801d6ad3a512207e78454cf63bcf92ab48e288b","999f7656bbf6bd9032009cc09ac2d04f82b73bc2d2cee4b2d9c12dbb8dece762","e88c8480ed9c10185a28a6e33671f3616655b7338431859b1ebd0cce3be6c24e","afd563cd398b85225895d978a03f1f6e6998f19bfa706ef9e341d698e744d0a7","5b6038ad4c9797a45fe9ed767d8e596079782230b1d92275809da32dd51477df","cd2f29e10b9ac8d78f568b24d8b363311ec5e4e14b53a8f14889ff901207e638","a7efd104b01355b9c3f0ef54838335771640185645a53cd3f3c55834ed203691","81a886e8be71aa4b21b6aeb93294e6989ac631e64bea9ed672ea97341646398f","13c4fe15c1108b2169175e435c9c527355ff9aef35160b5910bd4c04633a595c","9a2fc70db7c20e860ce7554a835a5eb0b588750420cc6548f8afac47ee4d3d17",{"version":"102b6a3f1e83beec950dd0c6b944aff0e1c0bdecd3d2be03e0c44d827cf8c3a6","signature":"7da5727974ae819f40edfcf902911cf9d0d8a4e340d1b9280dc80d24202d8ba7"},{"version":"11f847676ad1de2de302eb82caeb1b243f4e94e49f8184542a9c4d9f45de35fc","signature":"56763c37976a4dfd9553d2d54a860b110bf0093473f5b480cf2df593132ace05"},{"version":"2f6ee609269b94804c9e8e640768bf2d3505b514c2dbf96d3aff13e34d154c8a","signature":"e6f363ded39ce098ce9d633cbace0426543bfec5e4180fcf56628f16cb481615"},{"version":"16f7ffab8ae29a89728d512e343b467070693086d9627f234126161d5061772f","signature":"056d977cc336ec249078cf2c5f6e981d3f3da5b4f9d126db89a86280283e0301"},{"version":"90ddbf95150e18f5e0541295dd00d0a7cef7dbe6aa555406a17da609d5f892e3","signature":"f002b553792acd78c22a2a8c647f8facd05704fc77c1875cd5c96ed4602fb826"},{"version":"86a2114a94fcd627ac74902adb5f02092d163209e6984c2c6fa0635f8edc4758","signature":"389290654ce7226a66068658bfd6d5c7625d91ca07e5d36c662ea5335f413abc"},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"347a238c5800881e93ca9d17bece9f7eaf61b000dd1575b67264cb4ececc10b6","impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"f53a7652392cf26ebbe4e29fd0672aa87c93bd6d0241289c13fab87b9ac35c8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"b00a630557d1622ad312633bdbfbdb9c6b7220d948dca9f899db30679f160074","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"88809d6c1b9c78d04a133646a6feb926def05a8774c308c7c93bc32ee163d271","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"3ac40516c33b87f751f7507346933081a26cdb8a3e11a6b3aa07d23f803c85db","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"14e9acf826baba0ef4b5665704084896e7bcc06f65a9ab13af7e93d27d6b7069","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"829bc57ee8f287b490ab5bbc5a962fca57e432c1e38ec680ecd3ecaf12800613","impliedFormat":1},{"version":"eec76bf6b9346f3f95fa402621b889489e96930e72295b0369022f332e9b4a6a","impliedFormat":1},{"version":"3a3ff14da53d5013f3e6d8c4ad55225e3649c08786c4421ce639c00d8d589b7d","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"38004e6801340cb890afb8cb5a9fc8972297e7f88ab94026e4b0b3c61fb32f8a","impliedFormat":1},{"version":"d243db6b25788f439e7e2f03c05688e92f46764351673bb0e7b2f3631232e186","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"149f9a9e7f04e67afa0e2a49fc0ff421035c01d6b793cfcae7d2e9f6819431e2","impliedFormat":1},{"version":"e8a9dfa4c75ef6d25df8b40eaa9c31e0a69452aaf2ced4a3f4215dbdbaa876f4","impliedFormat":1},{"version":"a70af845a2eb9dd6e2723e319e14ea7fb28b129ec1361c21509b49305448c323","impliedFormat":1},{"version":"b53dc572d4f187904207ae1166652de47aab8eeb00c254d009cb226863076b56","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"f501234c5aeeeb5d7659412335227466aaacf30b952372d60afeb21c02c96348","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"9ac977503f15bf13ca7c82ad9a32a782f42d43e474824e8b3bffe228fd5f2639","impliedFormat":1},{"version":"8b91ff5bb912be3ea213cbcf0075aace1f5d4ff249a0d227ed673868cb7bfabc","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"7cb4f431a4591b0e23002bed805dc871a874dfed6b9a3994dce68a6df73e6739","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"436d7b4543b340b0f3eef4310d524242e41369b9652aa9c70428767c4dcac455","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"e99963ae1e3a48ca7a7958c02f3e88bb963eb7978c28b68ae6b8c9f03309d83c","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"594ae90cacd813fa392ff80d2e0a8eff4e41f4a136329a940e321399dd8895b4","impliedFormat":1},{"version":"d1f333ade8ff35a409b4984e1f11956fe11c61855b0c7e9b59f0313e48b40c4a","impliedFormat":1},{"version":"0224aa4b3464895d69c413a640a19ac2166778a74eb5eb3b36b021c72d42b274","impliedFormat":1},{"version":"2e6fca0024dd8a076a886d9ec031a936ea59ad878a25b944820495d92f8381dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"177459cba484e2f1e08872a3d2fdbca3162d9d43ca5ec9dc0c946835b55f74be","impliedFormat":1},{"version":"2fbf504c4791f9d32cd766cfe6b605bcda63289b925401953a7900db9af85348","impliedFormat":1},{"version":"ed0fb633cae35948d9e144004299a4bdf1ab912667c787b7fbffcd6d8c7b92a2","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"0e312260895afc9de021ce9de3c8a857392f0ccc7f19d3a030e4d6136a4ac91e","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"98fc7231d6c846a8ed19bdef026ddffe5e2182cc818be74899287421ad370a87","impliedFormat":1},{"version":"3a40b5d34e014017539acb92f04cf2bc0aa71e49efb33c66039df93be97842a1","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"8c7e618c2a91ea7f6b5cca272a295864e92c16413be8fc56a943e8c7d5320011","affectsGlobalScope":true,"impliedFormat":1},{"version":"79a85c64bf083c5f4dd7074e804d1000c0c47301b84d48417a224decd681be30","impliedFormat":1},{"version":"9f1e3a76d5f509b5579e567de522b402cb79e201c4f47dcd014451c0580b290d","impliedFormat":1},{"version":"4f1fd541f720030367b5d7ebfea7ae5f9edc8481422993b9a363f459c5412437","impliedFormat":1},{"version":"70f3f8b2dcaf7388f26731a59c79437813e3620b594903525a303cb2a7901016","impliedFormat":1},{"version":"62e8f884c3bc6dff6189b6e662ebe8b238a645938f2df7a97b8a82fca56773a4","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"57a0d1b3d59063d4af2d3f8aac27cfe3c20a0f5d1faf0f8598ccf0b779637939","impliedFormat":1},{"version":"5ff4433a2deae4f85ab1377e90a7554ce6b47ae51c69a84ca30a6e22fae85834","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"97234c5303866576f913d0ccae7d58d6322d9e803c7bf1228a3fda46ab8087b2","affectsGlobalScope":true,"impliedFormat":1},{"version":"93ecf87143cac7b9d05cffc1d6bdc075b7e4fdd48ff05f1fad85043f6ae678d3","impliedFormat":1},{"version":"6f200afcb82b3e9a54bed6db23f2edf2508cd266801257312c0f124b47f2bdb9","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"39338f84e8c4d0e3de7b3c4a7024fb3925f42100eed5cbe73be58902799dff4d","impliedFormat":1},{"version":"fbf83eb33bf5e329527add92acc65da59323876c702ddccf5f4bf1e848c92369","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"515318bc6e656f75e9e34db625316bfafbafd800dfb1642574af93735a24ad38","impliedFormat":1},{"version":"441b9bb09013654aa3d050e68b06464d8959b473e85868249d9d18f692acd35b","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"55246f15e33ff1e2e9e679b25fa9790a48db55dc63d567fe25fac8b6a0efe911","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"03b7804d69cecd66850abada858ed6d4a59001f8c228a9fe212306ee860a4ff6","impliedFormat":1},{"version":"5b26c4dd672d88336bb929787c9bfb55119e80ba89ec6dc923da1c063892843e","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"987fd1f85dc36f4b2c927aa3db814ac6b452e970f4f55d24ed4ecbb7df09be00","impliedFormat":1},{"version":"f12624a4a8d042b68914eac1b0a16571fc1c523173fcdf2517c65d191bd5a86c","impliedFormat":1},{"version":"b4769767f13a1692a66186e01c3aa186ff808d5ff72ed36eda8c37738fb2ac92","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"683edfc4f2b411ebe04729cb6dc09ddd26fbac2c57771a6d7c55964af776e176","impliedFormat":1},{"version":"1ec3f3a5f04cc42df33274fbe5c0937d9a9e06f249a7a26288d7d54f0763ffd4","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"e47f532d6e1617833f13a5b0710c0089d402c89c2f2b54f324e5a20e418d287a","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"8e2577e7262051fd3c5bd6ca2b2056d358ff8853565720f92455860824c25188","impliedFormat":1},{"version":"7ec8d7d483f7394f9da611b10d3a0e402f76ff5c991261e6ce43a15f81ca4258","impliedFormat":1},{"version":"bb9dbb4b2ad81e3e71ec5ba4314973718555b9d04ba2a17dfbf875efecb8e2c0","impliedFormat":1},{"version":"82c3cc48c692438e41b94d936b8acd75ca97b18c50fa1af8a0715eb9d07d18cd","impliedFormat":1},{"version":"045a210189ec63c5488410b33f9fca53d77d051599d0d6506d8048551399c5f3","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"632c45ccb4cdc2c3a80c7a36a63dd7763016e59cac5e07bfb3e37e3548957028","impliedFormat":1},{"version":"c9a2daf6cd1eb854cd5b9e424247c5e306692055738c2effd35f7871d942b76e","impliedFormat":1},{"version":"afa1c49f8e559e413d57343339db857d2a8159435cf9cf7d4deb41718fff1b88","impliedFormat":1},{"version":"e50a7130339a951e6da9e968ed5521b0997a5b0479e148914087213839b5474c","impliedFormat":1}],"root":[[85,90]],"options":{"composite":true,"declaration":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"outDir":"./","rootDir":"..","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"referencedMap":[[92,1],[156,2],[157,2],[158,3],[94,4],[159,5],[160,6],[161,7],[162,8],[163,9],[164,10],[165,11],[166,12],[167,13],[168,13],[169,14],[170,15],[171,16],[172,17],[173,18],[95,16],[93,16],[174,19],[175,20],[176,21],[218,22],[177,23],[178,24],[179,23],[180,25],[181,26],[182,27],[183,28],[184,28],[185,28],[186,29],[187,30],[188,31],[189,32],[190,33],[191,34],[192,34],[193,35],[194,16],[195,16],[196,36],[197,37],[198,38],[199,39],[200,40],[201,41],[202,42],[203,43],[204,44],[205,45],[206,46],[207,47],[208,48],[209,49],[210,50],[211,51],[212,52],[213,53],[214,54],[96,23],[97,16],[98,55],[99,56],[100,16],[101,57],[102,16],[147,58],[148,59],[149,60],[150,60],[151,61],[152,16],[153,5],[154,62],[155,59],[215,63],[216,64],[217,65],[91,16],[63,16],[64,16],[12,16],[10,16],[11,16],[16,16],[15,16],[2,16],[17,16],[18,16],[19,16],[20,16],[21,16],[22,16],[23,16],[24,16],[3,16],[25,16],[26,16],[4,16],[27,16],[31,16],[28,16],[29,16],[30,16],[32,16],[33,16],[34,16],[5,16],[35,16],[36,16],[37,16],[38,16],[6,16],[42,16],[39,16],[40,16],[41,16],[43,16],[7,16],[44,16],[49,16],[50,16],[45,16],[46,16],[47,16],[48,16],[8,16],[54,16],[51,16],[52,16],[53,16],[55,16],[9,16],[56,16],[65,16],[57,16],[58,16],[60,16],[59,16],[1,16],[61,16],[62,16],[14,16],[13,16],[121,66],[135,67],[118,68],[136,69],[145,70],[109,71],[110,72],[108,73],[144,74],[139,75],[143,76],[112,77],[122,78],[132,79],[111,80],[142,81],[106,82],[107,75],[113,78],[114,16],[120,83],[117,78],[104,84],[146,85],[137,86],[125,87],[124,78],[126,88],[129,89],[123,90],[127,91],[140,74],[115,92],[116,93],[130,94],[105,69],[134,95],[133,78],[119,93],[128,96],[131,97],[138,16],[103,16],[141,98],[71,99],[84,100],[75,99],[73,101],[70,102],[72,103],[74,104],[69,16],[79,105],[80,106],[83,16],[81,16],[66,16],[68,16],[67,99],[82,16],[76,101],[78,99],[77,99],[88,107],[90,108],[86,109],[89,110],[85,16],[87,109]],"latestChangedDtsFile":"./src/index.d.ts","version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vyaz/renderer",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"main": "./
|
|
6
|
-
"types": "./
|
|
7
|
-
"files": ["dist"
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"files": ["dist"],
|
|
8
8
|
"publishConfig": {
|
|
9
9
|
"access": "public"
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
|
-
"build": "bun build ./src/index.ts --outdir ./dist --target bun"
|
|
12
|
+
"build": "bun build ./src/index.ts --outdir ./dist --target bun && tsc --project tsconfig.json --emitDeclarationOnly"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@vyaz/core": "
|
|
15
|
+
"@vyaz/core": "^0.0.7"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@types/node": "^26.1.1",
|