@meonode/canvas 2.0.2 → 2.0.3

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.
Files changed (68) hide show
  1. package/dist/cjs/canvas/canvas.helper.js +0 -230
  2. package/dist/cjs/canvas/canvas.helper.js.map +1 -1
  3. package/dist/cjs/canvas/chart.canvas.js +70 -144
  4. package/dist/cjs/canvas/chart.canvas.js.map +1 -1
  5. package/dist/cjs/canvas/image.canvas.js +2 -2
  6. package/dist/cjs/canvas/image.canvas.js.map +1 -1
  7. package/dist/cjs/canvas/layout.canvas.js +6 -6
  8. package/dist/cjs/canvas/layout.canvas.js.map +1 -1
  9. package/dist/cjs/canvas/root.canvas.js +23 -117
  10. package/dist/cjs/canvas/root.canvas.js.map +1 -1
  11. package/dist/cjs/canvas/text.canvas.js +2 -2
  12. package/dist/cjs/canvas/text.canvas.js.map +1 -1
  13. package/dist/cjs/src/canvas/canvas.helper.d.ts +1 -20
  14. package/dist/cjs/src/canvas/canvas.helper.d.ts.map +1 -1
  15. package/dist/cjs/src/canvas/canvas.type.d.ts +1 -12
  16. package/dist/cjs/src/canvas/canvas.type.d.ts.map +1 -1
  17. package/dist/cjs/src/canvas/chart.canvas.d.ts +1 -1
  18. package/dist/cjs/src/canvas/chart.canvas.d.ts.map +1 -1
  19. package/dist/cjs/src/canvas/image.canvas.d.ts +1 -1
  20. package/dist/cjs/src/canvas/image.canvas.d.ts.map +1 -1
  21. package/dist/cjs/src/canvas/layout.canvas.d.ts +2 -2
  22. package/dist/cjs/src/canvas/layout.canvas.d.ts.map +1 -1
  23. package/dist/cjs/src/canvas/root.canvas.d.ts +3 -2
  24. package/dist/cjs/src/canvas/root.canvas.d.ts.map +1 -1
  25. package/dist/cjs/src/canvas/text.canvas.d.ts +1 -1
  26. package/dist/cjs/src/canvas/text.canvas.d.ts.map +1 -1
  27. package/dist/cjs/src/worker/comlink.pool.d.ts +30 -0
  28. package/dist/cjs/src/worker/comlink.pool.d.ts.map +1 -0
  29. package/dist/cjs/src/worker/comlink.setup.d.ts +4 -0
  30. package/dist/cjs/src/worker/comlink.setup.d.ts.map +1 -0
  31. package/dist/cjs/src/worker/worker.types.d.ts +5 -68
  32. package/dist/cjs/src/worker/worker.types.d.ts.map +1 -1
  33. package/dist/cjs/worker/comlink.pool.js +164 -0
  34. package/dist/cjs/worker/comlink.pool.js.map +1 -0
  35. package/dist/cjs/worker/comlink.setup.js +53 -0
  36. package/dist/cjs/worker/comlink.setup.js.map +1 -0
  37. package/dist/cjs/worker/render.worker.js +58 -61
  38. package/dist/cjs/worker/render.worker.js.map +1 -1
  39. package/dist/esm/canvas/canvas.helper.js +1 -230
  40. package/dist/esm/canvas/chart.canvas.js +71 -145
  41. package/dist/esm/canvas/image.canvas.js +2 -2
  42. package/dist/esm/canvas/layout.canvas.js +6 -6
  43. package/dist/esm/canvas/root.canvas.js +23 -116
  44. package/dist/esm/canvas/text.canvas.js +2 -2
  45. package/dist/esm/src/canvas/canvas.helper.d.ts +1 -20
  46. package/dist/esm/src/canvas/canvas.helper.d.ts.map +1 -1
  47. package/dist/esm/src/canvas/canvas.type.d.ts +1 -12
  48. package/dist/esm/src/canvas/canvas.type.d.ts.map +1 -1
  49. package/dist/esm/src/canvas/chart.canvas.d.ts +1 -1
  50. package/dist/esm/src/canvas/chart.canvas.d.ts.map +1 -1
  51. package/dist/esm/src/canvas/image.canvas.d.ts +1 -1
  52. package/dist/esm/src/canvas/image.canvas.d.ts.map +1 -1
  53. package/dist/esm/src/canvas/layout.canvas.d.ts +2 -2
  54. package/dist/esm/src/canvas/layout.canvas.d.ts.map +1 -1
  55. package/dist/esm/src/canvas/root.canvas.d.ts +3 -2
  56. package/dist/esm/src/canvas/root.canvas.d.ts.map +1 -1
  57. package/dist/esm/src/canvas/text.canvas.d.ts +1 -1
  58. package/dist/esm/src/canvas/text.canvas.d.ts.map +1 -1
  59. package/dist/esm/src/worker/comlink.pool.d.ts +30 -0
  60. package/dist/esm/src/worker/comlink.pool.d.ts.map +1 -0
  61. package/dist/esm/src/worker/comlink.setup.d.ts +4 -0
  62. package/dist/esm/src/worker/comlink.setup.d.ts.map +1 -0
  63. package/dist/esm/src/worker/worker.types.d.ts +5 -68
  64. package/dist/esm/src/worker/worker.types.d.ts.map +1 -1
  65. package/dist/esm/worker/comlink.pool.js +139 -0
  66. package/dist/esm/worker/comlink.setup.js +30 -0
  67. package/dist/esm/worker/render.worker.js +38 -60
  68. package/package.json +2 -1
@@ -1,6 +1,6 @@
1
1
  import type { CanvasRenderingContext2D } from 'skia-canvas';
2
2
  import * as YogaTypes from 'yoga-layout';
3
- import type { BoxProps, RootProps } from '../canvas/canvas.type.js';
3
+ import type { BoxProps } from '../canvas/canvas.type.js';
4
4
  export declare const drawBorders: ({ ctx, node, x, y, width, height, radii, borderColor, borderStyle, }: {
5
5
  ctx: CanvasRenderingContext2D;
6
6
  node: YogaTypes.Node;
@@ -52,23 +52,4 @@ export declare const parseBorderRadius: (radiusProp: BoxProps["borderRadius"]) =
52
52
  * @returns The parsed number, or 0 if the value is not a number or a valid percentage.
53
53
  */
54
54
  export declare function parsePercentage(value: number | string | undefined, base: number): number;
55
- /**
56
- * Pre-processes a RootProps descriptor tree on the main thread before postMessage.
57
- * Executes function props against available data, stores results as serializable fields,
58
- * then strips remaining functions as a safety net.
59
- */
60
- export declare class WorkerPreProcessor {
61
- private static readonly CHART_COLORS;
62
- static process(props: RootProps): RootProps;
63
- private static processDescriptor;
64
- private static processChartDescriptor;
65
- /**
66
- * Converts a BoxNode instance or CanvasElement to a CanvasElement.
67
- * Public API functions (Box(), Text(), etc.) already return CanvasElements,
68
- * but if someone returns an actual class instance, we convert it via initialProps.
69
- */
70
- private static nodeToDescriptor;
71
- private static generateColor;
72
- static stripNonSerializable<T>(obj: T): T;
73
- }
74
55
  //# sourceMappingURL=canvas.helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.helper.d.ts","sourceRoot":"","sources":["../../../../src/canvas/canvas.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AAExC,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAiF,MAAM,yBAAyB,CAAA;AAEjJ,eAAO,MAAM,WAAW,GAAI,sEAUzB;IACD,GAAG,EAAE,wBAAwB,CAAA;IAC7B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAA;IACpB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IACpC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;CACrC,SA8IA,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,KAAK,wBAAwB,EAC7B,GAAG,MAAM,EACT,GAAG,MAAM,EACT,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,OAAO;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,SAoCtF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,QAAQ,CAAC,cAAc,CAAC,KACnC;IACD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CAYnB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQxF;AAED;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAgF;IAEpH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAc3C,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAYhC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAuHrC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA6C/B,OAAO,CAAC,MAAM,CAAC,aAAa;IAI5B,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;CAuB1C"}
1
+ {"version":3,"file":"canvas.helper.d.ts","sourceRoot":"","sources":["../../../../src/canvas/canvas.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AAExC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD,eAAO,MAAM,WAAW,GAAI,sEAUzB;IACD,GAAG,EAAE,wBAAwB,CAAA;IAC7B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAA;IACpB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IACpC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;CACrC,SA8IA,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,KAAK,wBAAwB,EAC7B,GAAG,MAAM,EACT,GAAG,MAAM,EACT,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,OAAO;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,SAoCtF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,QAAQ,CAAC,cAAc,CAAC,KACnC;IACD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CAYnB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQxF"}
@@ -45,7 +45,7 @@ export type CanvasElement = {
45
45
  } | {
46
46
  __type: 'Chart';
47
47
  props: Omit<ChartProps<ChartType>, 'options'> & {
48
- options?: Record<string, unknown> & PreComputedChartOptions;
48
+ options?: Record<string, unknown>;
49
49
  };
50
50
  };
51
51
  export interface FontRegistrationInfo {
@@ -868,17 +868,6 @@ interface PieChartSpecificOptions {
868
868
  sliceBorderRadius?: number;
869
869
  }
870
870
  export type ChartOptions<T extends ChartType> = T extends 'bar' | 'line' ? BaseChartOptions<T> & CartesianChartSpecificOptions : T extends 'pie' | 'doughnut' ? BaseChartOptions<T> & PieChartSpecificOptions : BaseChartOptions<T>;
871
- /**
872
- * Pre-computed values from function props, resolved on the main thread
873
- * before being sent to a worker thread via postMessage (structured clone).
874
- */
875
- export interface PreComputedChartOptions {
876
- _preComputedXAxisLabels?: string[];
877
- _preComputedYAxisLabels?: string[];
878
- _preComputedLegendItems?: (CanvasElement | null | undefined)[];
879
- _preComputedLabelItems?: (CanvasElement | null | undefined)[];
880
- _preComputedValueItems?: (CanvasElement | null | undefined)[][];
881
- }
882
871
  /**
883
872
  * Properties for rendering a chart inside a `BoxNode`.
884
873
  * Extends `BoxProps` so layout and visual styles can be applied.
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.type.d.ts","sourceRoot":"","sources":["../../../../src/canvas/canvas.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas.type.d.ts","sourceRoot":"","sources":["../../../../src/canvas/canvas.type.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export declare class ChartNode<T extends ChartType> extends BoxNode {
7
7
  private chartOptions;
8
8
  constructor(props: ChartProps<T> & BaseProps);
9
9
  private validateProps;
10
- protected _renderContent(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number): void;
10
+ protected _renderContent(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number): Promise<void>;
11
11
  private getSmartYAxisFormatter;
12
12
  private getLegendLayout;
13
13
  private renderBarChart;
@@ -1 +1 @@
1
- {"version":3,"file":"chart.canvas.d.ts","sourceRoot":"","sources":["../../../../src/canvas/chart.canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAuB,MAAM,2BAA2B,CAAA;AACxE,OAAO,KAAK,EACV,SAAS,EAGT,UAAU,EACV,SAAS,EAET,aAAa,EAEd,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AA2B3D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,OAAO;IACzD,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAoD;gBAE5D,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAyB5C,OAAO,CAAC,aAAa;IAqBrB,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA8B3G,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,eAAe;IAqGvB,OAAO,CAAC,cAAc;IA4JtB,OAAO,CAAC,eAAe;IA0IvB,OAAO,CAAC,cAAc;IA4EtB,OAAO,CAAC,mBAAmB;IA4E3B,OAAO,CAAC,YAAY;IA8IpB,OAAO,CAAC,aAAa;CAItB;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,SAAS,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,KAAG,aAG5E,CAAA"}
1
+ {"version":3,"file":"chart.canvas.d.ts","sourceRoot":"","sources":["../../../../src/canvas/chart.canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,2BAA2B,CAAA;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAoC,UAAU,EAAE,SAAS,EAAqB,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACnJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAI3D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,OAAO;IACzD,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAA0B;gBAElC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAyB5C,OAAO,CAAC,aAAa;cAqBL,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA8BjH,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,eAAe;YAqGT,cAAc;YA+Id,eAAe;YAiIf,cAAc;YAsEd,mBAAmB;YAsEnB,YAAY;IAmI1B,OAAO,CAAC,aAAa;CAItB;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,SAAS,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,KAAG,aAG5E,CAAA"}
@@ -45,7 +45,7 @@ export declare class ImageNode extends BoxNode {
45
45
  * Renders the image with correct sizing, clipping, and positioning.
46
46
  * Handles object-fit, object-position, and visual effects like saturation.
47
47
  */
48
- protected _renderContent(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number): void;
48
+ protected _renderContent(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number): Promise<void>;
49
49
  }
50
50
  /**
51
51
  * Factory function to create ImageNode instances
@@ -1 +1 @@
1
- {"version":3,"file":"image.canvas.d.ts","sourceRoot":"","sources":["../../../../src/canvas/image.canvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,IAAI,WAAW,EAAa,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAuBnD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;AAEhE;;;GAGG;AACH,qBAAa,SAAU,SAAQ,OAAO;IAC5B,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IACrC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,cAAc,CAA6B;gBAEvC,KAAK,EAAE,UAAU;IAYtB,IAAI,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjF;;;;;;OAMG;YACW,iBAAiB;IA4E/B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,UAAU;IAoEX,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC;;;OAGG;cACgB,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAoJrH;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,UAAU,KAAG,aAGxC,CAAA"}
1
+ {"version":3,"file":"image.canvas.d.ts","sourceRoot":"","sources":["../../../../src/canvas/image.canvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,IAAI,WAAW,EAAa,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAuBnD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;AAEhE;;;GAGG;AACH,qBAAa,SAAU,SAAQ,OAAO;IAC5B,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IACrC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,cAAc,CAA6B;gBAEvC,KAAK,EAAE,UAAU;IAYtB,IAAI,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjF;;;;;;OAMG;YACW,iBAAiB;IA4E/B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,UAAU;IAoEX,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC;;;OAGG;cACsB,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAoJ3H;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,UAAU,KAAG,aAGxC,CAAA"}
@@ -75,7 +75,7 @@ export declare class BoxNode {
75
75
  * @param {number} offsetX X offset for rendering.
76
76
  * @param {number} offsetY Y offset for rendering.
77
77
  */
78
- render(ctx: CanvasRenderingContext2D, offsetX?: number, offsetY?: number): void;
78
+ render(ctx: CanvasRenderingContext2D, offsetX?: number, offsetY?: number): Promise<void>;
79
79
  /**
80
80
  * Renders the node's visual content including background fills, shadows, and borders.
81
81
  * This is an internal method used by the render() pipeline.
@@ -85,7 +85,7 @@ export declare class BoxNode {
85
85
  * @param width The width of the content area to render
86
86
  * @param height The height of the content area to render
87
87
  */
88
- protected _renderContent(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number): void;
88
+ protected _renderContent(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number): Promise<void>;
89
89
  }
90
90
  /**
91
91
  * Creates a new BoxNode instance.
@@ -1 +1 @@
1
- {"version":3,"file":"layout.canvas.d.ts","sourceRoot":"","sources":["../../../../src/canvas/layout.canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAkB,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAGjG,OAAa,EAAS,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAE9D;;;;GAIG;AACH,qBAAa,OAAO;IAClB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE/B;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IAEV;;OAEG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAA;IAEnB;;OAEG;IACH,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAA;IAE3B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ;;;OAGG;gBACS,KAAK,GAAE,QAAQ,GAAG,SAAc;IAqB5C;;OAEG;IACI,sBAAsB;IAW7B;;;OAGG;IACH,SAAS,CAAC,sBAAsB,CAAC,WAAW,EAAE,QAAQ,GAAG,SAAS;IAqClE;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAanD;;;OAGG;IACI,cAAc,IAAI,OAAO;IAiBhC;;OAEG;IACH,SAAS,CAAC,+BAA+B;IAIzC;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ;IAyInC;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,OAAO,GAAE,MAAU,EAAE,OAAO,GAAE,MAAU;IA+J9E;;;;;;;;OAQG;IACH,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAoR5G;AAWD;;;;GAIG;AACH,eAAO,MAAM,GAAG,GAAI,uBAAuB,QAAQ,KAAG,aAIpD,CAAA;AAEF;;;GAGG;AACH,qBAAa,UAAW,SAAQ,OAAO;gBACzB,KAAK,GAAE,QAAQ,GAAG,SAAc;CAS7C;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,uBAAuB,QAAQ,KAAG,aAIvD,CAAA;AAEF;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,OAAO;gBACtB,KAAK,GAAE,QAAQ,GAAG,SAAc;CAS7C;AAED;;;;GAIG;AACH,eAAO,MAAM,GAAG,GAAI,uBAAuB,QAAQ,KAAG,aAIpD,CAAA"}
1
+ {"version":3,"file":"layout.canvas.d.ts","sourceRoot":"","sources":["../../../../src/canvas/layout.canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAkB,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAGjG,OAAa,EAAS,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAE9D;;;;GAIG;AACH,qBAAa,OAAO;IAClB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE/B;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IAEV;;OAEG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAA;IAEnB;;OAEG;IACH,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAA;IAE3B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ;;;OAGG;gBACS,KAAK,GAAE,QAAQ,GAAG,SAAc;IAqB5C;;OAEG;IACI,sBAAsB;IAW7B;;;OAGG;IACH,SAAS,CAAC,sBAAsB,CAAC,WAAW,EAAE,QAAQ,GAAG,SAAS;IAqClE;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAanD;;;OAGG;IACI,cAAc,IAAI,OAAO;IAiBhC;;OAEG;IACH,SAAS,CAAC,+BAA+B;IAIzC;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ;IAyInC;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,OAAO,GAAE,MAAU,EAAE,OAAO,GAAE,MAAU;IA+JpF;;;;;;;;OAQG;cACa,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAoRlH;AAWD;;;;GAIG;AACH,eAAO,MAAM,GAAG,GAAI,uBAAuB,QAAQ,KAAG,aAIpD,CAAA;AAEF;;;GAGG;AACH,qBAAa,UAAW,SAAQ,OAAO;gBACzB,KAAK,GAAE,QAAQ,GAAG,SAAc;CAS7C;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,uBAAuB,QAAQ,KAAG,aAIvD,CAAA;AAEF;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,OAAO;gBACtB,KAAK,GAAE,QAAQ,GAAG,SAAc;CAS7C;AAED;;;;GAIG;AACH,eAAO,MAAM,GAAG,GAAI,uBAAuB,QAAQ,KAAG,aAIpD,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Canvas } from 'skia-canvas';
1
+ import { Canvas, type CanvasRenderingContext2D } from 'skia-canvas';
2
2
  import { ColumnNode, BoxNode } from '../canvas/layout.canvas.js';
3
3
  import type { BaseProps, RootProps, CanvasElement, RootPropsWithWorker, RootPropsWithoutWorker } from '../canvas/canvas.type.js';
4
4
  export declare const _clearRegisteredFonts: () => void;
@@ -58,7 +58,8 @@ export declare class RootNode extends ColumnNode {
58
58
  * and final drawing
59
59
  * @returns Promise resolving to the rendered Canvas instance
60
60
  */
61
- render(): Promise<Canvas>;
61
+ render(ctx: CanvasRenderingContext2D, offsetX?: number, offsetY?: number): Promise<void>;
62
+ render(ctx?: CanvasRenderingContext2D, offsetX?: number, offsetY?: number): Promise<Canvas>;
62
63
  }
63
64
  /**
64
65
  * Creates and renders a new root node with the given properties.
@@ -1 +1 @@
1
- {"version":3,"file":"root.canvas.d.ts","sourceRoot":"","sources":["../../../../src/canvas/root.canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA8C,MAAM,aAAa,CAAA;AAEhF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAW,MAAM,2BAA2B,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAmB/H,eAAO,MAAM,qBAAqB,YAEjC,CAAA;AAwBD,MAAM,WAAW,kBAAkB;IACjC,uFAAuF;IACvF,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,kBAAkB,QAGpD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,SAKxB;AAgMD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAmB5D;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,UAAU;IAC9B,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;IACpC,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAoB;IAClC,8CAA8C;IAC9C,OAAO,CAAC,GAAG,CAAwC;IACnD,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B;;;;OAIG;gBACS,KAAK,EAAE,SAAS,GAAG,SAAS;IAoDxC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;CAqDhC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG;IAAE,OAAO,IAAI,IAAI,CAAA;CAAE,CAAC,CAAA;AACvF,wBAAgB,IAAI,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"root.canvas.d.ts","sourceRoot":"","sources":["../../../../src/canvas/root.canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEhF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAW,MAAM,2BAA2B,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAgB/H,eAAO,MAAM,qBAAqB,YAEjC,CAAA;AAmBD,MAAM,WAAW,kBAAkB;IACjC,uFAAuF;IACvF,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,kBAAkB,QAGpD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,SAKxB;AAqFD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAmB5D;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,UAAU;IAC9B,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;IACpC,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAoB;IAClC,8CAA8C;IAC9C,OAAO,CAAC,GAAG,CAAwC;IACnD,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B;;;;OAIG;gBACS,KAAK,EAAE,SAAS,GAAG,SAAS;IAoDxC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACY,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACjG,MAAM,CAAC,GAAG,CAAC,EAAE,wBAAwB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA4DlG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG;IAAE,OAAO,IAAI,IAAI,CAAA;CAAE,CAAC,CAAA;AACvF,wBAAgB,IAAI,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA"}
@@ -156,7 +156,7 @@ export declare class TextNode extends BoxNode {
156
156
  * @param width Content box total width including padding
157
157
  * @param height Content box total height including padding
158
158
  */
159
- protected _renderContent(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number): void;
159
+ protected _renderContent(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number): Promise<void>;
160
160
  }
161
161
  /**
162
162
  * Creates a new TextNode instance with rich text support
@@ -1 +1 @@
1
- {"version":3,"file":"text.canvas.d.ts","sourceRoot":"","sources":["../../../../src/canvas/text.canvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAe,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACpF,OAAO,EAAU,KAAK,wBAAwB,EAA2B,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAGnD;;;GAGG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAwC;IACzE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,kBAAkB,CAAe;IAEjC,KAAK,EAAE,SAAS,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;gBAElC,IAAI,GAAE,MAAM,GAAG,MAAW,EAAE,KAAK,GAAE,SAAc;IAuB7D;;;;;;;;OAQG;WACW,gBAAgB,CAC5B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,GAAE;QACL,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAA;QACpC,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;QAClC,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAA;QACjD,YAAY,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAA;KACnD;cAwBW,aAAa,IAAI,IAAI;IAoDxC;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,aAAa;IA+ErB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gBAAgB;IAyBxB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IAiCrB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,WAAW;IA+NnB;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;IA6KpB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAmErB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;;;;;;;;;;OAgBG;cACgB,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAkXrH;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,GAAG,MAAM,EAAE,QAAQ,SAAS,KAAG,aAI9D,CAAA"}
1
+ {"version":3,"file":"text.canvas.d.ts","sourceRoot":"","sources":["../../../../src/canvas/text.canvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAe,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACpF,OAAO,EAAU,KAAK,wBAAwB,EAA2B,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAGnD;;;GAGG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAwC;IACzE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,kBAAkB,CAAe;IAEjC,KAAK,EAAE,SAAS,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;gBAElC,IAAI,GAAE,MAAM,GAAG,MAAW,EAAE,KAAK,GAAE,SAAc;IAuB7D;;;;;;;;OAQG;WACW,gBAAgB,CAC5B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,GAAE;QACL,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAA;QACpC,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;QAClC,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAA;QACjD,YAAY,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAA;KACnD;cAwBW,aAAa,IAAI,IAAI;IAoDxC;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,aAAa;IA+ErB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gBAAgB;IAyBxB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IAiCrB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,WAAW;IA+NnB;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;IA6KpB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAmErB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;;;;;;;;;;OAgBG;cACsB,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAkX3H;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,GAAG,MAAM,EAAE,QAAQ,SAAS,KAAG,aAI9D,CAAA"}
@@ -0,0 +1,30 @@
1
+ import type { RenderResult } from '../worker/worker.types.js';
2
+ import type { RootProps } from '../canvas/canvas.type.js';
3
+ export interface PoolRenderResult extends RenderResult {
4
+ workerIdx: number;
5
+ }
6
+ /**
7
+ * Deeply walks an object tree, wraps any function values with Comlink.proxy(),
8
+ * and tracks wrapped proxies for deterministic cleanup.
9
+ */
10
+ export declare function wrapFunctions<T>(obj: T, proxies: Set<unknown>): T;
11
+ /**
12
+ * Pool of Comlink-wrapped worker threads.
13
+ * Manages idle/queue scheduling and proxy lifecycle.
14
+ */
15
+ export declare class ComlinkPool {
16
+ private workers;
17
+ private endpoints;
18
+ private idle;
19
+ private queue;
20
+ constructor(size: number);
21
+ private acquire;
22
+ private release;
23
+ private drain;
24
+ private executeRender;
25
+ render(props: RootProps): Promise<PoolRenderResult>;
26
+ callOnCanvas(workerIdx: number, canvasId: number, method: string, args: unknown[]): Promise<Buffer | string | void>;
27
+ releaseCanvas(workerIdx: number, canvasId: number): void;
28
+ terminate(): void;
29
+ }
30
+ //# sourceMappingURL=comlink.pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comlink.pool.d.ts","sourceRoot":"","sources":["../../../../src/worker/comlink.pool.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,SAAS,EAAE,MAAM,CAAA;CAClB;AAQD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAuBjE;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,KAAK,CAAmB;gBAEpB,IAAI,EAAE,MAAM;IAYxB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,KAAK;YAQC,aAAa;IAWrB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0CzD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAInH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxD,SAAS;CAOV"}
@@ -0,0 +1,4 @@
1
+ import * as Comlink from 'comlink';
2
+ import nodeEndpoint from 'comlink/dist/esm/node-adapter.mjs';
3
+ export { Comlink, nodeEndpoint };
4
+ //# sourceMappingURL=comlink.setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comlink.setup.d.ts","sourceRoot":"","sources":["../../../../src/worker/comlink.setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAKlC,OAAO,YAAY,MAAM,mCAAmC,CAAA;AA2B5D,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,76 +1,13 @@
1
- import type { ExportFormat, ExportOptions, SaveOptions, RenderOptions } from 'skia-canvas';
2
1
  import type { RootProps } from '../canvas/canvas.type.js';
3
- export interface CanvasCallMap {
4
- toBuffer: {
5
- args: [ExportFormat, ExportOptions?];
6
- result: Buffer;
7
- };
8
- toURL: {
9
- args: [ExportFormat, ExportOptions?];
10
- result: string;
11
- };
12
- toFile: {
13
- args: [string, SaveOptions?];
14
- result: void;
15
- };
16
- toSharp: {
17
- args: [RenderOptions?];
18
- result: Buffer;
19
- };
20
- }
21
- export type CanvasCallMethod = keyof CanvasCallMap;
22
- export type CallArgs<M extends CanvasCallMethod> = CanvasCallMap[M]['args'];
23
- export type CallResult<M extends CanvasCallMethod> = CanvasCallMap[M]['result'];
24
- export interface WorkerRenderRequest {
25
- type: 'render';
26
- taskId: number;
27
- props: RootProps;
28
- }
29
- /** Discriminated union — narrows args alongside method in switch statements */
30
- export type WorkerCallRequest = {
31
- type: 'call';
32
- taskId: number;
33
- canvasId: number;
34
- method: 'toBuffer';
35
- args: CallArgs<'toBuffer'>;
36
- } | {
37
- type: 'call';
38
- taskId: number;
39
- canvasId: number;
40
- method: 'toURL';
41
- args: CallArgs<'toURL'>;
42
- } | {
43
- type: 'call';
44
- taskId: number;
45
- canvasId: number;
46
- method: 'toFile';
47
- args: CallArgs<'toFile'>;
48
- } | {
49
- type: 'call';
50
- taskId: number;
51
- canvasId: number;
52
- method: 'toSharp';
53
- args: CallArgs<'toSharp'>;
54
- };
55
- export interface WorkerReleaseRequest {
56
- type: 'release';
57
- canvasId: number;
58
- }
59
- export type WorkerRequest = WorkerRenderRequest | WorkerCallRequest | WorkerReleaseRequest;
60
- export interface WorkerRenderResponse {
61
- taskId: number;
2
+ export interface RenderResult {
62
3
  canvasId: number;
63
4
  buffer: Buffer;
64
5
  width: number;
65
6
  height: number;
66
7
  }
67
- export interface WorkerCallResponse {
68
- taskId: number;
69
- result: Buffer | string | void;
70
- }
71
- export interface WorkerErrorResponse {
72
- taskId: number;
73
- error: string;
8
+ export interface WorkerAPI {
9
+ render(props: RootProps): Promise<RenderResult>;
10
+ callOnCanvas(canvasId: number, method: string, args: unknown[]): Promise<Buffer | string | void>;
11
+ releaseCanvas(canvasId: number): void;
74
12
  }
75
- export type WorkerResponse = WorkerRenderResponse | WorkerCallResponse | WorkerErrorResponse;
76
13
  //# sourceMappingURL=worker.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.types.d.ts","sourceRoot":"","sources":["../../../../src/worker/worker.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.types.d.ts","sourceRoot":"","sources":["../../../../src/worker/worker.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC/C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAA;IAChG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACtC"}
@@ -0,0 +1,164 @@
1
+ 'use strict';
2
+
3
+ var node_worker_threads = require('node:worker_threads');
4
+ var node_url = require('node:url');
5
+ var path = require('node:path');
6
+ require('./comlink.setup.js');
7
+ var Comlink = require('comlink');
8
+ var nodeEndpoint = require('comlink/dist/esm/node-adapter.mjs');
9
+
10
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
11
+ function _interopNamespaceDefault(e) {
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n.default = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
29
+ var Comlink__namespace = /*#__PURE__*/_interopNamespaceDefault(Comlink);
30
+
31
+ /**
32
+ * Deeply walks an object tree, wraps any function values with Comlink.proxy(),
33
+ * and tracks wrapped proxies for deterministic cleanup.
34
+ */
35
+ function wrapFunctions(obj, proxies) {
36
+ if (obj === null || obj === undefined)
37
+ return obj;
38
+ if (typeof obj === 'function') {
39
+ const wrapped = Comlink__namespace.proxy(obj);
40
+ proxies.add(wrapped);
41
+ return wrapped;
42
+ }
43
+ if (typeof obj !== 'object')
44
+ return obj;
45
+ // Preserve binary data types — don't walk into them
46
+ if (Buffer.isBuffer(obj))
47
+ return obj;
48
+ if (obj instanceof ArrayBuffer)
49
+ return obj;
50
+ if (ArrayBuffer.isView(obj))
51
+ return obj;
52
+ if (Array.isArray(obj)) {
53
+ return obj.map(item => wrapFunctions(item, proxies));
54
+ }
55
+ const result = {};
56
+ for (const key of Object.keys(obj)) {
57
+ result[key] = wrapFunctions(obj[key], proxies);
58
+ }
59
+ return result;
60
+ }
61
+ /**
62
+ * Pool of Comlink-wrapped worker threads.
63
+ * Manages idle/queue scheduling and proxy lifecycle.
64
+ */
65
+ class ComlinkPool {
66
+ workers = [];
67
+ endpoints = [];
68
+ idle = [];
69
+ queue = [];
70
+ constructor(size) {
71
+ const workerFile = path__namespace.join(path__namespace.dirname(node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('worker/comlink.pool.js', document.baseURI).href)))), '../worker/render.worker.js');
72
+ for (let i = 0; i < size; i++) {
73
+ const worker = new node_worker_threads.Worker(workerFile);
74
+ const endpoint = Comlink__namespace.wrap(nodeEndpoint(worker));
75
+ this.workers.push(worker);
76
+ this.endpoints.push(endpoint);
77
+ this.idle.push(i);
78
+ }
79
+ }
80
+ acquire() {
81
+ return this.idle.pop() ?? null;
82
+ }
83
+ release(idx) {
84
+ this.idle.push(idx);
85
+ this.drain();
86
+ }
87
+ drain() {
88
+ while (this.queue.length > 0 && this.idle.length > 0) {
89
+ const task = this.queue.shift();
90
+ const idx = this.idle.pop();
91
+ void this.executeRender(idx, task.props, task.resolve, task.reject);
92
+ }
93
+ }
94
+ async executeRender(idx, props, resolve, reject) {
95
+ try {
96
+ const result = await this.endpoints[idx].render(props);
97
+ resolve({ ...result, workerIdx: idx });
98
+ }
99
+ catch (err) {
100
+ reject(err instanceof Error ? err : new Error(String(err)));
101
+ }
102
+ finally {
103
+ this.release(idx);
104
+ }
105
+ }
106
+ async render(props) {
107
+ const proxies = new Set();
108
+ const wrapped = wrapFunctions(props, proxies);
109
+ const cleanup = () => {
110
+ for (const p of proxies) {
111
+ try {
112
+ ;
113
+ p[Comlink__namespace.releaseProxy]?.();
114
+ }
115
+ catch {
116
+ // Proxy may already be released
117
+ }
118
+ }
119
+ };
120
+ // Direct path — idle worker available
121
+ const idx = this.acquire();
122
+ if (idx !== null) {
123
+ try {
124
+ const result = await this.endpoints[idx].render(wrapped);
125
+ return { ...result, workerIdx: idx };
126
+ }
127
+ finally {
128
+ this.release(idx);
129
+ cleanup();
130
+ }
131
+ }
132
+ // Queued path — cleanup AFTER the queued task completes, not before
133
+ return new Promise((resolve, reject) => {
134
+ this.queue.push({
135
+ props: wrapped,
136
+ resolve: result => {
137
+ cleanup();
138
+ resolve(result);
139
+ },
140
+ reject: err => {
141
+ cleanup();
142
+ reject(err);
143
+ },
144
+ });
145
+ });
146
+ }
147
+ callOnCanvas(workerIdx, canvasId, method, args) {
148
+ return this.endpoints[workerIdx].callOnCanvas(canvasId, method, args);
149
+ }
150
+ releaseCanvas(workerIdx, canvasId) {
151
+ this.endpoints[workerIdx].releaseCanvas(canvasId);
152
+ }
153
+ terminate() {
154
+ this.workers.forEach(w => w.terminate());
155
+ this.workers = [];
156
+ this.endpoints = [];
157
+ this.idle = [];
158
+ this.queue = [];
159
+ }
160
+ }
161
+
162
+ exports.ComlinkPool = ComlinkPool;
163
+ exports.wrapFunctions = wrapFunctions;
164
+ //# sourceMappingURL=comlink.pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comlink.pool.js","sources":["../../../../../src/worker/comlink.pool.ts"],"sourcesContent":["import { Worker } from 'node:worker_threads'\nimport { fileURLToPath } from 'node:url'\nimport * as path from 'node:path'\nimport { Comlink, nodeEndpoint } from '@/worker/comlink.setup.js'\nimport type { Remote } from 'comlink'\nimport type { WorkerAPI, RenderResult } from '@/worker/worker.types.js'\nimport type { RootProps } from '@/canvas/canvas.type.js'\n\nexport interface PoolRenderResult extends RenderResult {\n workerIdx: number\n}\n\ninterface QueuedTask {\n props: RootProps\n resolve: (result: PoolRenderResult) => void\n reject: (err: Error) => void\n}\n\n/**\n * Deeply walks an object tree, wraps any function values with Comlink.proxy(),\n * and tracks wrapped proxies for deterministic cleanup.\n */\nexport function wrapFunctions<T>(obj: T, proxies: Set<unknown>): T {\n if (obj === null || obj === undefined) return obj\n if (typeof obj === 'function') {\n const wrapped = Comlink.proxy(obj)\n proxies.add(wrapped)\n return wrapped as unknown as T\n }\n if (typeof obj !== 'object') return obj\n\n // Preserve binary data types — don't walk into them\n if (Buffer.isBuffer(obj)) return obj\n if (obj instanceof ArrayBuffer) return obj\n if (ArrayBuffer.isView(obj)) return obj\n\n if (Array.isArray(obj)) {\n return obj.map(item => wrapFunctions(item, proxies)) as unknown as T\n }\n\n const result: Record<string, unknown> = {}\n for (const key of Object.keys(obj as Record<string, unknown>)) {\n result[key] = wrapFunctions((obj as Record<string, unknown>)[key], proxies)\n }\n return result as T\n}\n\n/**\n * Pool of Comlink-wrapped worker threads.\n * Manages idle/queue scheduling and proxy lifecycle.\n */\nexport class ComlinkPool {\n private workers: Worker[] = []\n private endpoints: Remote<WorkerAPI>[] = []\n private idle: number[] = []\n private queue: QueuedTask[] = []\n\n constructor(size: number) {\n const workerFile = path.join(path.dirname(fileURLToPath(import.meta.url)), '../worker/render.worker.js')\n\n for (let i = 0; i < size; i++) {\n const worker = new Worker(workerFile)\n const endpoint = Comlink.wrap<WorkerAPI>(nodeEndpoint(worker))\n this.workers.push(worker)\n this.endpoints.push(endpoint)\n this.idle.push(i)\n }\n }\n\n private acquire(): number | null {\n return this.idle.pop() ?? null\n }\n\n private release(idx: number) {\n this.idle.push(idx)\n this.drain()\n }\n\n private drain() {\n while (this.queue.length > 0 && this.idle.length > 0) {\n const task = this.queue.shift()!\n const idx = this.idle.pop()!\n void this.executeRender(idx, task.props, task.resolve, task.reject)\n }\n }\n\n private async executeRender(idx: number, props: RootProps, resolve: (result: PoolRenderResult) => void, reject: (err: Error) => void) {\n try {\n const result = await this.endpoints[idx].render(props)\n resolve({ ...result, workerIdx: idx })\n } catch (err) {\n reject(err instanceof Error ? err : new Error(String(err)))\n } finally {\n this.release(idx)\n }\n }\n\n async render(props: RootProps): Promise<PoolRenderResult> {\n const proxies = new Set<unknown>()\n const wrapped = wrapFunctions(props, proxies)\n\n const cleanup = () => {\n for (const p of proxies) {\n try {\n ;(p as any)[Comlink.releaseProxy]?.()\n } catch {\n // Proxy may already be released\n }\n }\n }\n\n // Direct path — idle worker available\n const idx = this.acquire()\n if (idx !== null) {\n try {\n const result = await this.endpoints[idx].render(wrapped)\n return { ...result, workerIdx: idx }\n } finally {\n this.release(idx)\n cleanup()\n }\n }\n\n // Queued path — cleanup AFTER the queued task completes, not before\n return new Promise<PoolRenderResult>((resolve, reject) => {\n this.queue.push({\n props: wrapped,\n resolve: result => {\n cleanup()\n resolve(result)\n },\n reject: err => {\n cleanup()\n reject(err)\n },\n })\n })\n }\n\n callOnCanvas(workerIdx: number, canvasId: number, method: string, args: unknown[]): Promise<Buffer | string | void> {\n return this.endpoints[workerIdx].callOnCanvas(canvasId, method, args) as Promise<Buffer | string | void>\n }\n\n releaseCanvas(workerIdx: number, canvasId: number): void {\n this.endpoints[workerIdx].releaseCanvas(canvasId)\n }\n\n terminate() {\n this.workers.forEach(w => w.terminate())\n this.workers = []\n this.endpoints = []\n this.idle = []\n this.queue = []\n }\n}\n"],"names":["Comlink","path","fileURLToPath","Worker"],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var Comlink = require('comlink');
4
+ var node_worker_threads = require('node:worker_threads');
5
+ var nodeEndpoint = require('comlink/dist/esm/node-adapter.mjs');
6
+
7
+ function _interopNamespaceDefault(e) {
8
+ var n = Object.create(null);
9
+ if (e) {
10
+ Object.keys(e).forEach(function (k) {
11
+ if (k !== 'default') {
12
+ var d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: function () { return e[k]; }
16
+ });
17
+ }
18
+ });
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+
24
+ var Comlink__namespace = /*#__PURE__*/_interopNamespaceDefault(Comlink);
25
+
26
+ // src/worker/comlink.setup.ts
27
+ /**
28
+ * Fix Comlink.proxy() for Node.js worker_threads (issue #313).
29
+ * The built-in proxy transfer handler uses browser MessageChannel.
30
+ * This override uses Node's MessageChannel instead.
31
+ *
32
+ * Must be called on BOTH main thread and worker before any Comlink usage.
33
+ */
34
+ function installNodeProxyHandler() {
35
+ Comlink__namespace.transferHandlers.set('proxy', {
36
+ canHandle: (obj) => typeof obj === 'object' && obj !== null && Comlink__namespace.proxyMarker in obj,
37
+ serialize: (obj) => {
38
+ const { port1, port2 } = new node_worker_threads.MessageChannel();
39
+ Comlink__namespace.expose(obj, nodeEndpoint(port1));
40
+ return [port2, [port2]];
41
+ },
42
+ deserialize: (port) => {
43
+ port.start?.();
44
+ return Comlink__namespace.wrap(nodeEndpoint(port));
45
+ },
46
+ });
47
+ }
48
+ // Install immediately on import
49
+ installNodeProxyHandler();
50
+
51
+ exports.Comlink = Comlink__namespace;
52
+ exports.nodeEndpoint = nodeEndpoint;
53
+ //# sourceMappingURL=comlink.setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comlink.setup.js","sources":["../../../../../src/worker/comlink.setup.ts"],"sourcesContent":["// src/worker/comlink.setup.ts\nimport * as Comlink from 'comlink'\nimport { MessageChannel } from 'node:worker_threads'\n\n// Use deep import path — Comlink has no `exports` field (issue #508)\n// @ts-expect-error — Comlink's node-adapter has no type declarations at this path\nimport nodeEndpoint from 'comlink/dist/esm/node-adapter.mjs'\n\n/**\n * Fix Comlink.proxy() for Node.js worker_threads (issue #313).\n * The built-in proxy transfer handler uses browser MessageChannel.\n * This override uses Node's MessageChannel instead.\n *\n * Must be called on BOTH main thread and worker before any Comlink usage.\n */\nfunction installNodeProxyHandler() {\n Comlink.transferHandlers.set('proxy', {\n canHandle: (obj: unknown): obj is { [Comlink.proxyMarker]: true } => typeof obj === 'object' && obj !== null && Comlink.proxyMarker in obj,\n serialize: (obj: unknown) => {\n const { port1, port2 } = new MessageChannel()\n Comlink.expose(obj, nodeEndpoint(port1))\n return [port2, [port2]]\n },\n deserialize: (port: MessagePort) => {\n ;(port as any).start?.()\n return Comlink.wrap(nodeEndpoint(port))\n },\n })\n}\n\n// Install immediately on import\ninstallNodeProxyHandler()\n\nexport { Comlink, nodeEndpoint }\n"],"names":["Comlink","MessageChannel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAQA;;;;;;AAMG;AACH,SAAS,uBAAuB,GAAA;AAC9B,IAAAA,kBAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE;AACpC,QAAA,SAAS,EAAE,CAAC,GAAY,KAA6C,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAIA,kBAAO,CAAC,WAAW,IAAI,GAAG;AAC1I,QAAA,SAAS,EAAE,CAAC,GAAY,KAAI;YAC1B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAIC,kCAAc,EAAE;YAC7CD,kBAAO,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACxC,YAAA,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;AACD,QAAA,WAAW,EAAE,CAAC,IAAiB,KAAI;AAC/B,YAAA,IAAY,CAAC,KAAK,IAAI;YACxB,OAAOA,kBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;AACF,KAAA,CAAC;AACJ;AAEA;AACA,uBAAuB,EAAE;;;;;"}