@knowvah/dot-engine 1.8.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/README.md +232 -30
  2. package/dist/api/builder.d.ts +3 -0
  3. package/dist/api/builder.d.ts.map +1 -1
  4. package/dist/api/edge-ops.d.ts +7 -0
  5. package/dist/api/edge-ops.d.ts.map +1 -1
  6. package/dist/api/geometry.d.ts +5 -2
  7. package/dist/api/geometry.d.ts.map +1 -1
  8. package/dist/api.js +159 -31
  9. package/dist/api.js.map +3 -3
  10. package/dist/async/collect.d.ts +49 -0
  11. package/dist/async/collect.d.ts.map +1 -0
  12. package/dist/async/fonts.d.ts +20 -0
  13. package/dist/async/fonts.d.ts.map +1 -0
  14. package/dist/async/render-async.d.ts +91 -0
  15. package/dist/async/render-async.d.ts.map +1 -0
  16. package/dist/async/render-into.d.ts +38 -0
  17. package/dist/async/render-into.d.ts.map +1 -0
  18. package/dist/async/sanitize.d.ts +28 -0
  19. package/dist/async/sanitize.d.ts.map +1 -0
  20. package/dist/common/css-font.d.ts +9 -0
  21. package/dist/common/css-font.d.ts.map +1 -0
  22. package/dist/common/htmltable-types.d.ts +3 -3
  23. package/dist/common/htmltable-types.d.ts.map +1 -1
  24. package/dist/common/make-label.d.ts.map +1 -1
  25. package/dist/common/poly-shapes.d.ts.map +1 -1
  26. package/dist/common/textmeasure-factory.d.ts +2 -0
  27. package/dist/common/textmeasure-factory.d.ts.map +1 -1
  28. package/dist/common/textmeasure.d.ts +11 -1
  29. package/dist/common/textmeasure.d.ts.map +1 -1
  30. package/dist/common/utils-inputscale.d.ts +19 -0
  31. package/dist/common/utils-inputscale.d.ts.map +1 -0
  32. package/dist/errors.d.ts +61 -5
  33. package/dist/errors.d.ts.map +1 -1
  34. package/dist/gvc/context.d.ts +36 -4
  35. package/dist/gvc/context.d.ts.map +1 -1
  36. package/dist/gvc/device.d.ts +5 -2
  37. package/dist/gvc/device.d.ts.map +1 -1
  38. package/dist/gvc/image-resolver.d.ts +16 -16
  39. package/dist/gvc/image-resolver.d.ts.map +1 -1
  40. package/dist/gvc/job.d.ts +1 -9
  41. package/dist/gvc/job.d.ts.map +1 -1
  42. package/dist/gvc/usershape.d.ts +2 -12
  43. package/dist/gvc/usershape.d.ts.map +1 -1
  44. package/dist/index.d.ts +27 -8
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +7745 -5550
  47. package/dist/index.js.map +4 -4
  48. package/dist/label/index.d.ts.map +1 -1
  49. package/dist/label/node.d.ts +0 -6
  50. package/dist/label/node.d.ts.map +1 -1
  51. package/dist/label/rectangle.d.ts +1 -7
  52. package/dist/label/rectangle.d.ts.map +1 -1
  53. package/dist/layout/circo/circular.d.ts +8 -5
  54. package/dist/layout/circo/circular.d.ts.map +1 -1
  55. package/dist/layout/dot/pack-components.d.ts +0 -19
  56. package/dist/layout/dot/pack-components.d.ts.map +1 -1
  57. package/dist/layout/dot/position.d.ts +7 -2
  58. package/dist/layout/dot/position.d.ts.map +1 -1
  59. package/dist/layout/fdp/derive.d.ts.map +1 -1
  60. package/dist/layout/fdp/index.d.ts.map +1 -1
  61. package/dist/layout/fdp/init.d.ts.map +1 -1
  62. package/dist/layout/fdp/layout.d.ts.map +1 -1
  63. package/dist/layout/fdp/ports.d.ts +0 -10
  64. package/dist/layout/fdp/ports.d.ts.map +1 -1
  65. package/dist/layout/fdp/xlayout.d.ts +0 -16
  66. package/dist/layout/fdp/xlayout.d.ts.map +1 -1
  67. package/dist/layout/neato/adjust-info.d.ts +117 -0
  68. package/dist/layout/neato/adjust-info.d.ts.map +1 -0
  69. package/dist/layout/neato/cdt-surface.d.ts.map +1 -1
  70. package/dist/layout/neato/constraint-adjust.d.ts +40 -0
  71. package/dist/layout/neato/constraint-adjust.d.ts.map +1 -0
  72. package/dist/layout/neato/edge-len.d.ts +20 -0
  73. package/dist/layout/neato/edge-len.d.ts.map +1 -0
  74. package/dist/layout/neato/fdp-adjust.d.ts +32 -4
  75. package/dist/layout/neato/fdp-adjust.d.ts.map +1 -1
  76. package/dist/layout/neato/index.d.ts +9 -6
  77. package/dist/layout/neato/index.d.ts.map +1 -1
  78. package/dist/layout/neato/init.d.ts +4 -11
  79. package/dist/layout/neato/init.d.ts.map +1 -1
  80. package/dist/layout/neato/kk-paths.d.ts +50 -0
  81. package/dist/layout/neato/kk-paths.d.ts.map +1 -0
  82. package/dist/layout/neato/kk-solve.d.ts +14 -0
  83. package/dist/layout/neato/kk-solve.d.ts.map +1 -0
  84. package/dist/layout/neato/kk.d.ts +44 -0
  85. package/dist/layout/neato/kk.d.ts.map +1 -0
  86. package/dist/layout/neato/multispline-router.d.ts.map +1 -1
  87. package/dist/layout/neato/poly.d.ts +50 -0
  88. package/dist/layout/neato/poly.d.ts.map +1 -0
  89. package/dist/layout/neato/sgd-dijkstra.d.ts +20 -0
  90. package/dist/layout/neato/sgd-dijkstra.d.ts.map +1 -0
  91. package/dist/layout/neato/sgd.d.ts +14 -9
  92. package/dist/layout/neato/sgd.d.ts.map +1 -1
  93. package/dist/layout/neato/start.d.ts +51 -0
  94. package/dist/layout/neato/start.d.ts.map +1 -0
  95. package/dist/layout/neato/vpsc-adjust.d.ts +21 -0
  96. package/dist/layout/neato/vpsc-adjust.d.ts.map +1 -0
  97. package/dist/layout/sfdp/index.d.ts.map +1 -1
  98. package/dist/layout/sfdp/init.d.ts +0 -9
  99. package/dist/layout/sfdp/init.d.ts.map +1 -1
  100. package/dist/layout/sfdp/spring-driver.d.ts.map +1 -1
  101. package/dist/layout/twopi/circle.d.ts +0 -7
  102. package/dist/layout/twopi/circle.d.ts.map +1 -1
  103. package/dist/ortho/ortho-parallel.d.ts.map +1 -1
  104. package/dist/ortho/trap-query.d.ts.map +1 -1
  105. package/dist/parser/index.d.ts +9 -5
  106. package/dist/parser/index.d.ts.map +1 -1
  107. package/dist/render/index.d.ts +2 -0
  108. package/dist/render/index.d.ts.map +1 -1
  109. package/dist/render/public.d.ts +9 -3
  110. package/dist/render/public.d.ts.map +1 -1
  111. package/dist/render/xdot-public.d.ts +7 -2
  112. package/dist/render/xdot-public.d.ts.map +1 -1
  113. package/dist/render.js +7548 -5588
  114. package/dist/render.js.map +4 -4
  115. package/dist/util/xml.d.ts.map +1 -1
  116. package/dist/vpsc/Solver.d.ts +1 -0
  117. package/dist/vpsc/Solver.d.ts.map +1 -1
  118. package/package.json +1 -1
  119. package/src/api/builder.ts +73 -5
  120. package/src/api/edge-ops.ts +19 -0
  121. package/src/api/geometry.ts +22 -5
  122. package/src/async/collect.ts +204 -0
  123. package/src/async/fonts.ts +61 -0
  124. package/src/async/render-async.ts +205 -0
  125. package/src/async/render-into.ts +115 -0
  126. package/src/async/sanitize.ts +150 -0
  127. package/src/common/css-font.ts +109 -0
  128. package/src/common/htmltable-types.ts +4 -5
  129. package/src/common/make-label.ts +10 -1
  130. package/src/common/poly-shapes.ts +4 -1
  131. package/src/common/textmeasure-factory.ts +11 -0
  132. package/src/common/textmeasure.ts +41 -8
  133. package/src/common/utils-inputscale.ts +31 -0
  134. package/src/errors.ts +188 -5
  135. package/src/gvc/context.ts +96 -17
  136. package/src/gvc/device.ts +11 -6
  137. package/src/gvc/image-resolver.ts +25 -2
  138. package/src/gvc/job.ts +3 -1
  139. package/src/gvc/usershape.ts +6 -0
  140. package/src/index.ts +59 -43
  141. package/src/label/index.ts +6 -2
  142. package/src/label/node.ts +2 -1
  143. package/src/label/rectangle.ts +4 -2
  144. package/src/layout/circo/circular.ts +9 -6
  145. package/src/layout/dot/pack-components.ts +6 -2
  146. package/src/layout/dot/position.ts +21 -3
  147. package/src/layout/fdp/derive.ts +7 -6
  148. package/src/layout/fdp/index.ts +45 -5
  149. package/src/layout/fdp/init.ts +7 -6
  150. package/src/layout/fdp/layout.ts +2 -1
  151. package/src/layout/fdp/ports.ts +3 -2
  152. package/src/layout/fdp/xlayout.ts +3 -1
  153. package/src/layout/neato/adjust-info.ts +332 -0
  154. package/src/layout/neato/cdt-surface.ts +50 -30
  155. package/src/layout/neato/constraint-adjust.ts +466 -0
  156. package/src/layout/neato/edge-len.ts +36 -0
  157. package/src/layout/neato/fdp-adjust.ts +117 -12
  158. package/src/layout/neato/index.ts +36 -54
  159. package/src/layout/neato/init.ts +21 -36
  160. package/src/layout/neato/kk-paths.ts +146 -0
  161. package/src/layout/neato/kk-solve.ts +64 -0
  162. package/src/layout/neato/kk.ts +322 -0
  163. package/src/layout/neato/multispline-router.ts +4 -3
  164. package/src/layout/neato/poly.ts +493 -0
  165. package/src/layout/neato/sgd-dijkstra.ts +125 -0
  166. package/src/layout/neato/sgd.ts +63 -40
  167. package/src/layout/neato/start.ts +222 -0
  168. package/src/layout/neato/vpsc-adjust.ts +93 -0
  169. package/src/layout/sfdp/index.ts +4 -5
  170. package/src/layout/sfdp/init.ts +40 -4
  171. package/src/layout/sfdp/spring-driver.ts +30 -1
  172. package/src/layout/twopi/circle.ts +2 -1
  173. package/src/ortho/ortho-parallel.ts +2 -1
  174. package/src/ortho/trap-query.ts +2 -1
  175. package/src/parser/index.ts +11 -11
  176. package/src/render/index.ts +5 -0
  177. package/src/render/public.ts +24 -24
  178. package/src/render/svg.ts +1 -1
  179. package/src/render/xdot-public.ts +19 -18
  180. package/src/util/xml.ts +24 -30
  181. package/src/vpsc/Solver.ts +5 -3
@@ -12,7 +12,8 @@ import type { Point } from '../model/geom.js';
12
12
  import type { Graph } from '../model/graph.js';
13
13
  import type { Node } from '../model/node.js';
14
14
  import type { Edge } from '../model/edge.js';
15
- import type { RendererPlugin, GvcContext } from './context.js';
15
+ import type { RendererPlugin } from './context.js';
16
+ import { GvcContext } from './context.js';
16
17
  import type { TextlabelT } from '../common/types.js';
17
18
  import { RenderJob } from './job.js';
18
19
  /** Cluster labels go through the single emit_label port. @see labels.c:emit_label */
@@ -92,7 +93,9 @@ export declare function renderGraph(g: Graph, job: RenderJob, renderer: Renderer
92
93
  * (`setImageResolver`) and inlines a `data:` URI on a hit instead of the
93
94
  * raw src passthrough. Unset/false reproduces byte-identical pre-AD-1
94
95
  * output. @see src/render/public.ts:RenderOptions.inlineImages
95
- * @throws Error if no renderer is registered for format
96
+ * @throws TypeError `ERR_INVALID_ARG_TYPE` if `ctx` is not a GvcContext, `g`
97
+ * is not an object, or `format` is not a string
98
+ * @throws TypeError `ERR_INVALID_ARG_VALUE` if no renderer is registered for format
96
99
  * @see lib/gvc/gvrender.c:gvrender_select
97
100
  */
98
101
  export declare function render(ctx: GvcContext, g: Graph, format: string, inlineImages?: boolean): string;
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/gvc/device.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAO,MAAM,kBAAkB,CAAC;AAInD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAmF,MAAM,UAAU,CAAC;AAuBtH,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAE5F;AAcD,OAAO,QAAQ,UAAU,CAAC;IACxB,UAAU,SAAS;QACjB,0EAA0E;QAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB;CACF;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,KAAK,CAe9D;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,CAI7F;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,CAI1F;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAGtD;AAuED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CA4BnG;AA2BD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CA8BlF;AAsBD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,UAAU,GAAG,SAAS,EAC1B,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,EACd,UAAU,UAAO,GAChB,IAAI,CA8BN;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAExF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAIzF;AAkFD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAQvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAyBtF;AA8BD;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,MAAM,CA2E9F"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/gvc/device.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,3 @@
1
- /**
2
- * Image byte resolution + browser-safe base64 for inline (data: URI) SVG
3
- * image embedding.
4
- *
5
- * Mirrors `src/gvc/usershape.ts`'s `setImageSizer` pattern (AD3): C resolves
6
- * images through a process-global filesystem dictionary
7
- * (gvusershape.c ImageDict) that is browser-hostile, so the port exposes a
8
- * caller-injected resolver in the same global-registry position instead.
9
- * Unlike `ImageSizer` (which only reports intrinsic dimensions for HTML
10
- * `<IMG>` layout), `ImageResolver` supplies the actual bytes so the SVG
11
- * emitter can inline them as a `data:` URI (AD-1, additive — not a C
12
- * behavior; native Graphviz never inlines image bytes).
13
- *
14
- * @see lib/gvc/gvusershape.c (ImageDict, gvusershape_find/size)
15
- */
16
1
  /**
17
2
  * Caller-supplied image resolver: given a node's `image=`/HTML `<IMG SRC=>`
18
3
  * value, return the raw bytes (optionally with an explicit MIME type), or
@@ -22,10 +7,22 @@ export type ImageResolver = (src: string) => {
22
7
  bytes: Uint8Array;
23
8
  mime?: string;
24
9
  } | Uint8Array | null;
10
+ /**
11
+ * Per-render resolver on the render job (async-api ADR-2): device.ts render()
12
+ * copies `GvcContext.imageResolver` here; svg.ts usershape() passes it to
13
+ * findImageBytes, which then skips the global resolver.
14
+ */
15
+ declare module './job.js' {
16
+ interface RenderJob {
17
+ imageResolver?: ImageResolver;
18
+ }
19
+ }
25
20
  /**
26
21
  * Register (or clear, with null) the global image resolver consulted when
27
22
  * `RenderOptions.inlineImages` is set. Mirrors gvusershape's process-global
28
23
  * dictionary and `setImageSizer`'s registration shape.
24
+ * @throws TypeError `ERR_INVALID_ARG_TYPE` if `fn` is neither a function nor
25
+ * null
29
26
  */
30
27
  export declare function setImageResolver(fn: ImageResolver | null): void;
31
28
  /**
@@ -34,8 +31,11 @@ export declare function setImageResolver(fn: ImageResolver | null): void;
34
31
  * when the resolver omits it). Returns `null` when no resolver is set or the
35
32
  * resolver itself returns `null` — the graceful-miss path that keeps the raw
36
33
  * `src` passthrough in `usershape()`.
34
+ *
35
+ * @param resolver - per-context resolver (ADR-2); when given it is consulted
36
+ * instead of the global one, with the same normalization.
37
37
  */
38
- export declare function findImageBytes(src: string): {
38
+ export declare function findImageBytes(src: string, resolver?: ImageResolver): {
39
39
  bytes: Uint8Array;
40
40
  mime: string;
41
41
  } | null;
@@ -1 +1 @@
1
- {"version":3,"file":"image-resolver.d.ts","sourceRoot":"","sources":["../../src/gvc/image-resolver.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAMH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,GAAG,EAAE,MAAM,KACR;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,GAAG,IAAI,CAAC;AAI9D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAE/D;AA6BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQ5C;AA+CD,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjE"}
1
+ {"version":3,"file":"image-resolver.d.ts","sourceRoot":"","sources":["../../src/gvc/image-resolver.ts"],"names":[],"mappings":"AAwBA;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,GAAG,EAAE,MAAM,KACR;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,GAAG,IAAI,CAAC;AAE9D;;;;GAIG;AACH,OAAO,QAAQ,UAAU,CAAC;IACxB,UAAU,SAAS;QACjB,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;CACF;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAK/D;AA6BD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,aAAa,GACvB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS5C;AA+CD,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjE"}
package/dist/gvc/job.d.ts CHANGED
@@ -1,12 +1,3 @@
1
- /**
2
- * RenderJob — full implementation, replacing the T25 scaffold.
3
- *
4
- * Ports GVJ_s and obj_state_s from lib/gvc/gvcjob.h.
5
- *
6
- * @see lib/gvc/gvcjob.h:GVJ_s
7
- * @see lib/gvc/gvcjob.h:obj_state_s
8
- * @see lib/gvc/gvdevice.c:gvprintdouble
9
- */
10
1
  import type { Graph } from '../model/graph.js';
11
2
  import { FontnameKind } from '../model/layoutParams.js';
12
3
  import type { Node } from '../model/node.js';
@@ -214,6 +205,7 @@ export declare class RenderJob {
214
205
  pushObj(state: ObjState): void;
215
206
  /**
216
207
  * Pop the top object state from the stack.
208
+ * @see lib/common/emit.c:pop_obj_state (assert(obj) at emit.c:135)
217
209
  * @throws Error if the stack is empty.
218
210
  */
219
211
  popObj(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../src/gvc/job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../src/gvc/job.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,10 @@
1
- /**
2
- * User-shape (image) size resolution for HTML <IMG> labels.
3
- *
4
- * C resolves image dimensions through a process-global dictionary
5
- * (gvusershape.c ImageDict) populated from the filesystem — browser-
6
- * hostile. Per AD3, the port exposes a caller-injected ImageSizer in
7
- * the same global-registry position: callers register a sizer before
8
- * rendering; absent or unresolvable sources reproduce C's
9
- * missing-image behavior (warning + zero size).
10
- *
11
- * @see lib/gvc/gvusershape.c (ImageDict, gvusershape_find/size)
12
- */
13
1
  import type { ImageSizer } from '../common/htmltable-types.js';
14
2
  export type { ImageSizer } from '../common/htmltable-types.js';
15
3
  /**
16
4
  * Register (or clear, with null) the global image sizer consulted by
17
5
  * HTML <IMG> sizing. Mirrors gvusershape's process-global dictionary.
6
+ * @throws TypeError `ERR_INVALID_ARG_TYPE` if `sizer` is neither a function
7
+ * nor null
18
8
  */
19
9
  export declare function setImageSizer(sizer: ImageSizer | null): void;
20
10
  /** Resolve an image source via the registered sizer; null if unresolved. */
@@ -1 +1 @@
1
- {"version":3,"file":"usershape.d.ts","sourceRoot":"","sources":["../../src/gvc/usershape.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI/D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAE5D;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAE1E"}
1
+ {"version":3,"file":"usershape.d.ts","sourceRoot":"","sources":["../../src/gvc/usershape.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI/D;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAK5D;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAE1E"}
package/dist/index.d.ts CHANGED
@@ -3,9 +3,14 @@ import type { EngineName } from './gvc/context.js';
3
3
  /**
4
4
  * Render a DOT-language string to SVG using the specified layout engine.
5
5
  *
6
- * Always throws a value implementing {@link GvError}: parse failures throw
7
- * `ParseError`; layout/render failures surface as `RenderError`
8
- * (`RENDER_ERROR`).
6
+ * Throws a {@link DotEngineError} for any problem with the input: `ParseError`
7
+ * (`SYNTAX_*`, `EDGE_OP_*`, `GENERIC_ERROR` for nesting too deep) for invalid
8
+ * DOT, `RenderError`
9
+ * (`RENDER_ERROR`, `UNKNOWN_LAYOUT`, `UNSUPPORTED_FEATURE`) for layout/render
10
+ * failures, and `InternalError` (`INTERNAL_ERROR`, `cause` = original) for a
11
+ * dot-engine bug. Invalid arguments throw a `TypeError` carrying a `code`. A
12
+ * malformed HTML-like label does not throw: as in C (htmlparse.y YYABORT) the
13
+ * label renders empty.
9
14
  *
10
15
  * @remarks
11
16
  * Security: when `dotSource` is untrusted, treat the returned SVG as
@@ -20,25 +25,35 @@ import type { EngineName } from './gvc/context.js';
20
25
  * ('dot', 'neato', 'fdp', 'sfdp', 'circo', 'twopi',
21
26
  * 'osage', 'patchwork') or any custom-registered name
22
27
  * @returns SVG string
23
- * @throws ParseError if dotSource is not valid DOT
24
- * @throws RenderError if layout or rendering fails
28
+ * @throws TypeError `ERR_INVALID_ARG_TYPE` if `dotSource` or `engine` is not a string
29
+ * @throws TypeError `ERR_INVALID_ARG_VALUE` if `engine` names no registered engine
30
+ * @throws ParseError `SYNTAX_ERROR`, `SYNTAX_UNEXPECTED_EOF`,
31
+ * `EDGE_OP_DIRECTED_IN_UNDIRECTED`, `EDGE_OP_UNDIRECTED_IN_DIRECTED` if
32
+ * `dotSource` is not valid DOT
33
+ * @throws RenderError `RENDER_ERROR`, `UNKNOWN_LAYOUT` or `UNSUPPORTED_FEATURE`
34
+ * if layout or rendering fails
35
+ * @throws InternalError `INTERNAL_ERROR` on a dot-engine bug
25
36
  */
26
37
  export declare function renderSvg(dotSource: string, engine: EngineName): string;
27
38
  /**
28
39
  * Result-style render: returns `{ svg }` on success or `{ errors: [one] }` on
29
40
  * the first failure (svg XOR errors). Errors are plain JSON-serializable
30
- * {@link GvError} data objects.
41
+ * {@link GvError} data objects. Returns (never throws) for any DOT input and
42
+ * any failure of the graph itself; throws only for invalid arguments.
31
43
  *
32
44
  * @remarks
33
45
  * Security: same untrusted-input caveat as {@link renderSvg} — the returned
34
46
  * `svg` is attacker-controlled markup for untrusted `dotSource`; apply a CSP or
35
47
  * sanitize before embedding. See the README "Security" section.
48
+ *
49
+ * @throws TypeError `ERR_INVALID_ARG_TYPE` if `dotSource` or `engine` is not a string
50
+ * @throws TypeError `ERR_INVALID_ARG_VALUE` if `engine` names no registered engine
36
51
  */
37
52
  export declare function tryRenderSvg(dotSource: string, engine: EngineName): RenderResult;
38
53
  export { parse } from './parser/index.js';
39
54
  export { ParseError } from './parser/index.js';
40
- export { RenderError } from './errors.js';
41
- export type { GvError, GvErrorType, GvErrorCode, GvExpectation, RenderResult, } from './errors.js';
55
+ export { DotEngineError, InternalError, RenderError, isGvError } from './errors.js';
56
+ export type { GvError, UsageErrorCode, GvErrorType, GvErrorCode, GvExpectation, RenderResult, } from './errors.js';
42
57
  export { setImageSizer } from './gvc/usershape.js';
43
58
  export type { ImageSizer } from './common/htmltable-types.js';
44
59
  export { setImageResolver } from './gvc/image-resolver.js';
@@ -51,4 +66,8 @@ export type { BuiltinEngine, EngineName } from './gvc/context.js';
51
66
  export { render as renderWithContext } from './gvc/device.js';
52
67
  export * from './api/index.js';
53
68
  export * from './render/index.js';
69
+ export { renderSvgAsync } from './async/render-async.js';
70
+ export type { AsyncSvgOptions, AsyncSvgResult } from './async/render-async.js';
71
+ export { renderSvgInto } from './async/render-into.js';
72
+ export type { RenderSvgIntoOptions, RenderSvgIntoResult } from './async/render-into.js';
54
73
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAW,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA8CnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAmBvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,CAMhF;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAM7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EACL,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,GAC1D,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMlE,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAU9D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAW,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmCnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAevE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,CAQhF;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpF,YAAY,EACV,OAAO,EACP,cAAc,EACd,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAM7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EACL,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,GAC1D,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMlE,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAU9D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC"}