@knowvah/dot-engine 1.2.3 → 1.2.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.
Files changed (39) hide show
  1. package/README.md +15 -0
  2. package/dist/cdt/bag.d.ts +6 -4
  3. package/dist/cdt/bag.d.ts.map +1 -1
  4. package/dist/common/graph-init.d.ts.map +1 -1
  5. package/dist/common/htmltable-lex.d.ts.map +1 -1
  6. package/dist/common/record.d.ts.map +1 -1
  7. package/dist/common/splines-clip.d.ts +8 -0
  8. package/dist/common/splines-clip.d.ts.map +1 -1
  9. package/dist/common/splines-routespl.d.ts +4 -0
  10. package/dist/common/splines-routespl.d.ts.map +1 -1
  11. package/dist/index.js +2038 -2004
  12. package/dist/index.js.map +4 -4
  13. package/dist/render.js +96 -62
  14. package/dist/render.js.map +3 -3
  15. package/dist/xdot/parse.d.ts.map +1 -1
  16. package/package.json +3 -2
  17. package/src/cdt/bag.ts +30 -52
  18. package/src/common/graph-init.ts +14 -9
  19. package/src/common/htmltable-lex.ts +17 -4
  20. package/src/common/htmltable-parse.ts +1 -1
  21. package/src/common/record.ts +3 -5
  22. package/src/common/splines-clip.ts +25 -0
  23. package/src/common/splines-routespl.ts +66 -0
  24. package/src/xdot/parse.ts +3 -1
  25. package/dist/gvc/textlayout.d.ts +0 -33
  26. package/dist/gvc/textlayout.d.ts.map +0 -1
  27. package/dist/layout/osage/layout.d.ts +0 -49
  28. package/dist/layout/osage/layout.d.ts.map +0 -1
  29. package/dist/layout/pack/test-helpers.d.ts +0 -7
  30. package/dist/layout/pack/test-helpers.d.ts.map +0 -1
  31. package/dist/layout/patchwork/tree-node.d.ts +0 -46
  32. package/dist/layout/patchwork/tree-node.d.ts.map +0 -1
  33. package/dist/xdot/lex.d.ts +0 -22
  34. package/dist/xdot/lex.d.ts.map +0 -1
  35. package/src/gvc/textlayout.ts +0 -44
  36. package/src/layout/osage/layout.ts +0 -254
  37. package/src/layout/pack/test-helpers.ts +0 -46
  38. package/src/layout/patchwork/tree-node.ts +0 -120
  39. package/src/xdot/lex.ts +0 -151
package/README.md CHANGED
@@ -172,6 +172,21 @@ Trade-off: the built-in model is reproducible across machines; the host-faithful
172
172
  path matches the rendering font but is platform-dependent (as native graphviz is).
173
173
  See the Text measurement guide for the full contract.
174
174
 
175
+ `CanvasTextMeasurer` accepts **any** 2D context that implements `font` +
176
+ `measureText().width` — the `canvas` package is one provider, not a requirement.
177
+ `@napi-rs/canvas` (prebuilt N-API binaries, no `prebuild-install`) works too:
178
+
179
+ ```ts
180
+ import { createCanvas } from '@napi-rs/canvas';
181
+ setTextMeasurer(new CanvasTextMeasurer(createCanvas(0, 0).getContext('2d') as unknown as CanvasRenderingContext2D));
182
+ ```
183
+
184
+ Pick the engine you **render** with: the two libraries resolve system fonts
185
+ differently (measured on macOS: `bold` Helvetica and Times/Courier substitution
186
+ diverge by 4–14% between them, while regular-weight Helvetica/Arial agree to
187
+ <0.2%). "Host-faithful" means measuring with the same font stack that later
188
+ draws the text — mixing engines reintroduces the mismatch you opted in to avoid.
189
+
175
190
  ## Security
176
191
 
177
192
  **Treat rendered output as attacker-controlled markup whenever the DOT source is
package/dist/cdt/bag.d.ts CHANGED
@@ -2,10 +2,12 @@
2
2
  * DtBag — ordered multiset (Dtobag) backed by a splay tree.
3
3
  *
4
4
  * Unlike DtSplay (DT_OSET), DtBag allows duplicate keys. On insert of a
5
- * duplicate, the new node is inserted immediately to the LEFT of the
6
- * matching node (mirrors C dttree.c DT_OBAG insert: new node placed in
7
- * link.left, i.e. the right partition, becoming the successor of the
8
- * matching group — faithfully ported from dttree.c lines 226-230).
5
+ * duplicate, the matched (old) node is threaded onto the new node's RIGHT
6
+ * subtree — not the left, as an earlier version of this comment claimed.
7
+ * C dttree.c DT_INSERT's DT_OBAG found-branch does
8
+ * `root->left = NULL; root->right = link.left; link.left = root;`
9
+ * (dttree.c:223-231): the old matched node is pushed onto the head of the
10
+ * RIGHT partition, which becomes the new root's `.right` subtree.
9
11
  *
10
12
  * Iteration (first/next) produces ascending comparator order. Among
11
13
  * equal-key nodes the sub-order is the deterministic order CDT's Dtobag
@@ -1 +1 @@
1
- {"version":3,"file":"bag.d.ts","sourceRoot":"","sources":["../../src/cdt/bag.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAgEpD,qBAAa,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;IACzB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAKtD,mCAAmC;IACnC,IAAI,IAAI,MAAM;IAEd;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAcjB;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAevB;;;OAGG;IACH,KAAK,IAAI,CAAC,GAAG,SAAS;IAMtB;;;OAGG;IACH,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAe3B;;;OAGG;IACH,IAAI,IAAI,CAAC,GAAG,SAAS;IAMrB,2BAA2B;IAC3B,KAAK,IAAI,IAAI;IAKb,kEAAkE;IAClE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;CAcjC"}
1
+ {"version":3,"file":"bag.d.ts","sourceRoot":"","sources":["../../src/cdt/bag.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAkCpD,qBAAa,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;IACzB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAKtD,mCAAmC;IACnC,IAAI,IAAI,MAAM;IAEd;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAcjB;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAqBvB;;;OAGG;IACH,KAAK,IAAI,CAAC,GAAG,SAAS;IAMtB;;;OAGG;IACH,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAe3B;;;OAGG;IACH,IAAI,IAAI,CAAC,GAAG,SAAS;IAMrB,2BAA2B;IAC3B,KAAK,IAAI,IAAI;IAKb,kEAAkE;IAClE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;CAcjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph-init.d.ts","sourceRoot":"","sources":["../../src/common/graph-init.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAa/C,yCAAyC;AACzC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,yCAAyC;AACzC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,yCAAyC;AACzC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,yCAAyC;AACzC,eAAO,MAAM,UAAU,IAAI,CAAC;AAQ5B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAKzC,8DAA8D;AAC9D,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,SAAS,IAAI,CAAC;AAW3B;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAY5C;AAsJD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAsG7D"}
1
+ {"version":3,"file":"graph-init.d.ts","sourceRoot":"","sources":["../../src/common/graph-init.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAa/C,yCAAyC;AACzC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,yCAAyC;AACzC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,yCAAyC;AACzC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,yCAAyC;AACzC,eAAO,MAAM,UAAU,IAAI,CAAC;AAQ5B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAKzC,8DAA8D;AAC9D,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,SAAS,IAAI,CAAC;AAW3B;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAY5C;AA2JD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAsG7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"htmltable-lex.d.ts","sourceRoot":"","sources":["../../src/common/htmltable-lex.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,YAAY,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAgHlD,yCAAyC;AACzC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,WAOnC"}
1
+ {"version":3,"file":"htmltable-lex.d.ts","sourceRoot":"","sources":["../../src/common/htmltable-lex.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,YAAY,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA6HlD,yCAAyC;AACzC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,WAOnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/common/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/common/record.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,12 @@ export declare const ARR_NORM = 1;
18
18
  export declare function newSpline(e: Edge, sz: number): Bezier;
19
19
  /** @see lib/common/splines.c:clip_and_install */
20
20
  export declare function clipAndInstall(fe: Edge, hn: Node, ps: Point[], pn: number, info: SplineInfo): void;
21
+ /**
22
+ * Stage-dump hook for the clip/install output (diagnosis only; null in
23
+ * production — same pattern as splines-routespl.ts:setRouteDump).
24
+ */
25
+ type ClipDumpFn = (stage: string, tail: string, head: string, payload: unknown) => void;
26
+ /** Install (or clear) the clip-stage dump callback. Diagnosis only. */
27
+ export declare function setClipDump(fn: ClipDumpFn | null): void;
28
+ export {};
21
29
  //# sourceMappingURL=splines-clip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"splines-clip.d.ts","sourceRoot":"","sources":["../../src/common/splines-clip.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAO,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAS7C,gFAAgF;AAChF,eAAO,MAAM,QAAQ,IAAI,CAAC;AAia1B,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAQrD;AAMD,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAgBlG"}
1
+ {"version":3,"file":"splines-clip.d.ts","sourceRoot":"","sources":["../../src/common/splines-clip.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAO,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAS7C,gFAAgF;AAChF,eAAO,MAAM,QAAQ,IAAI,CAAC;AAia1B,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAQrD;AAMD,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CA6BlG;AAED;;;GAGG;AACH,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAGxF,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAEvD"}
@@ -8,6 +8,10 @@
8
8
  */
9
9
  import type { Point, Box } from '../model/geom.js';
10
10
  import type { Path } from './types.js';
11
+ /** Stage payload consumer installed by a diagnosis harness. */
12
+ export type RouteDumpFn = (stage: string, tail: string, head: string, payload: unknown) => void;
13
+ /** Install (or clear) the routing stage-dump callback. Diagnosis only. */
14
+ export declare function setRouteDump(fn: RouteDumpFn | null): void;
11
15
  /**
12
16
  * Repairs minor errors in the box path (gaps, slight overlaps).
13
17
  * Returns true on hard failure; false on success.
@@ -1 +1 @@
1
- {"version":3,"file":"splines-routespl.d.ts","sourceRoot":"","sources":["../../src/common/splines-routespl.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAsGvC;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAwBvE;AAqDD;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,GAAG,EAAE,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,KAAK,EAAE,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,IAAI,CAKN;AAkND;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,CAEvD"}
1
+ {"version":3,"file":"splines-routespl.d.ts","sourceRoot":"","sources":["../../src/common/splines-routespl.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAavC,+DAA+D;AAC/D,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KACxD,IAAI,CAAC;AAIV,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAEzD;AA2HD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAwBvE;AAqDD;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,GAAG,EAAE,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,KAAK,EAAE,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,IAAI,CAKN;AAwOD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,CAEvD"}