@graphty/graph-io 0.3.47 → 0.3.49

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 (770) hide show
  1. package/dist/chunks/{approximations-wWjCRzKj.js → approximations-Bzn3L-je.js} +2 -2
  2. package/dist/chunks/{approximations-wWjCRzKj.js.map → approximations-Bzn3L-je.js.map} +1 -1
  3. package/dist/chunks/bends-BGXjv_U4.js +129 -0
  4. package/dist/chunks/bends-BGXjv_U4.js.map +1 -0
  5. package/dist/chunks/{block-DiGq58c3.js → block-iptrlMBb.js} +947 -134
  6. package/dist/chunks/block-iptrlMBb.js.map +1 -0
  7. package/dist/chunks/choose-CczZJaX_.js +717 -0
  8. package/dist/chunks/choose-CczZJaX_.js.map +1 -0
  9. package/dist/chunks/codes-BE2xir2k.js +157 -0
  10. package/dist/chunks/codes-BE2xir2k.js.map +1 -0
  11. package/dist/chunks/{constants-BKwqelYD.js → constants-CKkYLPtt.js} +2 -2
  12. package/dist/chunks/{constants-BKwqelYD.js.map → constants-CKkYLPtt.js.map} +1 -1
  13. package/dist/chunks/context-C3p0RQxR.js +664 -0
  14. package/dist/chunks/context-C3p0RQxR.js.map +1 -0
  15. package/dist/chunks/{convert-BcQ8_jMo.js → convert-Ct2zelbQ.js} +7 -2
  16. package/dist/chunks/convert-Ct2zelbQ.js.map +1 -0
  17. package/dist/chunks/credentials-DXHx7nwR.js +349 -0
  18. package/dist/chunks/credentials-DXHx7nwR.js.map +1 -0
  19. package/dist/chunks/cx-export-Bt6NoqTQ.js +259 -0
  20. package/dist/chunks/cx-export-Bt6NoqTQ.js.map +1 -0
  21. package/dist/chunks/descriptor-B28U25x4.js +60 -0
  22. package/dist/chunks/descriptor-B28U25x4.js.map +1 -0
  23. package/dist/chunks/descriptor-C-YDhtsn.js +48 -0
  24. package/dist/chunks/descriptor-C-YDhtsn.js.map +1 -0
  25. package/dist/chunks/descriptor-DLA5kINx.js +142 -0
  26. package/dist/chunks/descriptor-DLA5kINx.js.map +1 -0
  27. package/dist/chunks/{emit-CwU8cUmG.js → emit-BwHQkZle.js} +1690 -103
  28. package/dist/chunks/emit-BwHQkZle.js.map +1 -0
  29. package/dist/chunks/{escape-CgzxiYPg.js → escape-CuCIzNMB.js} +12 -12
  30. package/dist/chunks/{escape-CgzxiYPg.js.map → escape-CuCIzNMB.js.map} +1 -1
  31. package/dist/chunks/{export-BvqAXCKh.js → export-Cha4dRFz.js} +48 -1780
  32. package/dist/chunks/export-Cha4dRFz.js.map +1 -0
  33. package/dist/chunks/{exporter--Mk9gXCJ.js → exporter-BP6otMO6.js} +6 -4
  34. package/dist/chunks/{exporter--Mk9gXCJ.js.map → exporter-BP6otMO6.js.map} +1 -1
  35. package/dist/chunks/{exporter-CrDWIyiq.js → exporter-D2CETOMK.js} +1222 -154
  36. package/dist/chunks/exporter-D2CETOMK.js.map +1 -0
  37. package/dist/chunks/{exporter-DndFlGSa.js → exporter-D9yMtocA.js} +7 -6
  38. package/dist/chunks/{exporter-DndFlGSa.js.map → exporter-D9yMtocA.js.map} +1 -1
  39. package/dist/chunks/exporter-_jrBTnos.js +1009 -0
  40. package/dist/chunks/exporter-_jrBTnos.js.map +1 -0
  41. package/dist/chunks/{exporter-CJgfhF-l.js → exporter-nDfxIK5D.js} +9 -7
  42. package/dist/chunks/{exporter-CJgfhF-l.js.map → exporter-nDfxIK5D.js.map} +1 -1
  43. package/dist/chunks/format-BXiAb-1h.js +408 -0
  44. package/dist/chunks/format-BXiAb-1h.js.map +1 -0
  45. package/dist/chunks/{generic-Dq1ntt9q.js → generic-ymWCETAJ.js} +387 -31
  46. package/dist/chunks/generic-ymWCETAJ.js.map +1 -0
  47. package/dist/chunks/{importer-CMmeMWlC.js → importer-B92x1xY5.js} +15 -263
  48. package/dist/chunks/importer-B92x1xY5.js.map +1 -0
  49. package/dist/chunks/{importer-DiZRmOQG.js → importer-CT9mJ1nn.js} +328 -90
  50. package/dist/chunks/importer-CT9mJ1nn.js.map +1 -0
  51. package/dist/chunks/{importer-COTK9Tsl.js → importer-DaLTjbds.js} +116 -1099
  52. package/dist/chunks/importer-DaLTjbds.js.map +1 -0
  53. package/dist/chunks/{importer-iFYPEKaJ.js → importer-GREKMdIf.js} +28 -16
  54. package/dist/chunks/importer-GREKMdIf.js.map +1 -0
  55. package/dist/chunks/{importer-BSvfrX_h.js → importer-PqaaKKnY.js} +23 -1016
  56. package/dist/chunks/importer-PqaaKKnY.js.map +1 -0
  57. package/dist/chunks/{importer-yh_aBCU6.js → importer-Vn5QvmmJ.js} +66 -12
  58. package/dist/chunks/importer-Vn5QvmmJ.js.map +1 -0
  59. package/dist/chunks/{importer-e6LGpqHB.js → importer-vRq4h3j5.js} +1470 -354
  60. package/dist/chunks/importer-vRq4h3j5.js.map +1 -0
  61. package/dist/chunks/input-CAxt_aV-.js +1397 -0
  62. package/dist/chunks/input-CAxt_aV-.js.map +1 -0
  63. package/dist/chunks/{json-elements-DJZRZ6jd.js → json-elements-Cq76WjnZ.js} +4 -4
  64. package/dist/chunks/{json-elements-DJZRZ6jd.js.map → json-elements-Cq76WjnZ.js.map} +1 -1
  65. package/dist/chunks/{lexicon-CT69Kd87.js → lexicon-Clf4QIyl.js} +299 -77
  66. package/dist/chunks/lexicon-Clf4QIyl.js.map +1 -0
  67. package/dist/chunks/{ontology-export-G4MqRdux.js → ontology-export-OMo91mb0.js} +4 -3
  68. package/dist/chunks/{ontology-export-G4MqRdux.js.map → ontology-export-OMo91mb0.js.map} +1 -1
  69. package/dist/chunks/{records-CiaWZrFH.js → records-NJiYvekn.js} +2 -2
  70. package/dist/chunks/{records-CiaWZrFH.js.map → records-NJiYvekn.js.map} +1 -1
  71. package/dist/chunks/{format-BpQBx8MZ.js → report-CwMfYa9J.js} +70 -127
  72. package/dist/chunks/report-CwMfYa9J.js.map +1 -0
  73. package/dist/chunks/round-trip-Zm3_ivgq.js +79 -0
  74. package/dist/chunks/round-trip-Zm3_ivgq.js.map +1 -0
  75. package/dist/chunks/sigv4-EokFic1V.js +247 -0
  76. package/dist/chunks/sigv4-EokFic1V.js.map +1 -0
  77. package/dist/chunks/{styles-BQnsga7p.js → styles-CCs214_3.js} +1300 -168
  78. package/dist/chunks/styles-CCs214_3.js.map +1 -0
  79. package/dist/chunks/styles-Cm62yyQX.js +2812 -0
  80. package/dist/chunks/styles-Cm62yyQX.js.map +1 -0
  81. package/dist/chunks/styles-DPQQIig4.js +1928 -0
  82. package/dist/chunks/styles-DPQQIig4.js.map +1 -0
  83. package/dist/chunks/styles-yed-UMFdNqze.js +1213 -0
  84. package/dist/chunks/styles-yed-UMFdNqze.js.map +1 -0
  85. package/dist/chunks/{text-CzJNFOS9.js → text-ystE2bYi.js} +2 -2
  86. package/dist/chunks/{text-CzJNFOS9.js.map → text-ystE2bYi.js.map} +1 -1
  87. package/dist/csv.js +7 -5
  88. package/dist/csv.js.map +1 -1
  89. package/dist/cx.js +5 -4
  90. package/dist/cx.js.map +1 -1
  91. package/dist/cx2.js +2 -2
  92. package/dist/cys.js +1 -1
  93. package/dist/dot.js +5 -4
  94. package/dist/dot.js.map +1 -1
  95. package/dist/gexf.js +42 -10
  96. package/dist/gexf.js.map +1 -1
  97. package/dist/gml.js +850 -193
  98. package/dist/gml.js.map +1 -1
  99. package/dist/graph-io.js +1189 -220
  100. package/dist/graph-io.js.map +1 -1
  101. package/dist/graphml.js +3 -3
  102. package/dist/json.js +3 -2
  103. package/dist/neo4j.js +6 -4
  104. package/dist/neo4j.js.map +1 -1
  105. package/dist/obo.js +1 -1
  106. package/dist/pajek.js +1 -1
  107. package/dist/positions.js +45 -3
  108. package/dist/positions.js.map +1 -1
  109. package/dist/sources-cypher.d.ts +1 -0
  110. package/dist/sources-cypher.js +1351 -0
  111. package/dist/sources-cypher.js.map +1 -0
  112. package/dist/sources-ndex.d.ts +1 -0
  113. package/dist/sources-ndex.js +278 -0
  114. package/dist/sources-ndex.js.map +1 -0
  115. package/dist/sources-rest.d.ts +1 -0
  116. package/dist/sources-rest.js +1377 -0
  117. package/dist/sources-rest.js.map +1 -0
  118. package/dist/sources-sparql.d.ts +1 -0
  119. package/dist/sources-sparql.js +405 -0
  120. package/dist/sources-sparql.js.map +1 -0
  121. package/dist/src/common/report.d.ts +6 -3
  122. package/dist/src/common/report.d.ts.map +1 -1
  123. package/dist/src/common/report.js +15 -9
  124. package/dist/src/common/report.js.map +1 -1
  125. package/dist/src/formats/cx/importer.d.ts.map +1 -1
  126. package/dist/src/formats/cx/importer.js +5 -1
  127. package/dist/src/formats/cx/importer.js.map +1 -1
  128. package/dist/src/formats/cx/styles.d.ts +24 -1
  129. package/dist/src/formats/cx/styles.d.ts.map +1 -1
  130. package/dist/src/formats/cx/styles.js +118 -11
  131. package/dist/src/formats/cx/styles.js.map +1 -1
  132. package/dist/src/formats/cx2/importer.d.ts.map +1 -1
  133. package/dist/src/formats/cx2/importer.js +1 -0
  134. package/dist/src/formats/cx2/importer.js.map +1 -1
  135. package/dist/src/formats/cx2/styles.d.ts.map +1 -1
  136. package/dist/src/formats/cx2/styles.js +3 -1
  137. package/dist/src/formats/cx2/styles.js.map +1 -1
  138. package/dist/src/formats/cys/importer.d.ts.map +1 -1
  139. package/dist/src/formats/cys/importer.js +1 -0
  140. package/dist/src/formats/cys/importer.js.map +1 -1
  141. package/dist/src/formats/cys/styles.d.ts +2 -0
  142. package/dist/src/formats/cys/styles.d.ts.map +1 -1
  143. package/dist/src/formats/cys/styles.js +15 -7
  144. package/dist/src/formats/cys/styles.js.map +1 -1
  145. package/dist/src/formats/dot/drawing.d.ts +98 -0
  146. package/dist/src/formats/dot/drawing.d.ts.map +1 -0
  147. package/dist/src/formats/dot/drawing.js +734 -0
  148. package/dist/src/formats/dot/drawing.js.map +1 -0
  149. package/dist/src/formats/dot/importer.d.ts.map +1 -1
  150. package/dist/src/formats/dot/importer.js +108 -31
  151. package/dist/src/formats/dot/importer.js.map +1 -1
  152. package/dist/src/formats/dot/label-places.d.ts +34 -0
  153. package/dist/src/formats/dot/label-places.d.ts.map +1 -0
  154. package/dist/src/formats/dot/label-places.js +179 -0
  155. package/dist/src/formats/dot/label-places.js.map +1 -0
  156. package/dist/src/formats/dot/record.d.ts +50 -0
  157. package/dist/src/formats/dot/record.d.ts.map +1 -0
  158. package/dist/src/formats/dot/record.js +275 -0
  159. package/dist/src/formats/dot/record.js.map +1 -0
  160. package/dist/src/formats/dot/styles.d.ts +62 -2
  161. package/dist/src/formats/dot/styles.d.ts.map +1 -1
  162. package/dist/src/formats/dot/styles.js +1457 -120
  163. package/dist/src/formats/dot/styles.js.map +1 -1
  164. package/dist/src/formats/gexf/dialog-metrics.d.ts +15 -0
  165. package/dist/src/formats/gexf/dialog-metrics.d.ts.map +1 -0
  166. package/dist/src/formats/gexf/dialog-metrics.js +59 -0
  167. package/dist/src/formats/gexf/dialog-metrics.js.map +1 -0
  168. package/dist/src/formats/gexf/importer.d.ts +7 -0
  169. package/dist/src/formats/gexf/importer.d.ts.map +1 -1
  170. package/dist/src/formats/gexf/importer.js +41 -5
  171. package/dist/src/formats/gexf/importer.js.map +1 -1
  172. package/dist/src/formats/gexf/preview.d.ts +77 -0
  173. package/dist/src/formats/gexf/preview.d.ts.map +1 -0
  174. package/dist/src/formats/gexf/preview.js +191 -0
  175. package/dist/src/formats/gexf/preview.js.map +1 -0
  176. package/dist/src/formats/gexf/schema.d.ts.map +1 -1
  177. package/dist/src/formats/gexf/schema.js +2 -1
  178. package/dist/src/formats/gexf/schema.js.map +1 -1
  179. package/dist/src/formats/gexf/styles.d.ts +60 -16
  180. package/dist/src/formats/gexf/styles.d.ts.map +1 -1
  181. package/dist/src/formats/gexf/styles.js +883 -131
  182. package/dist/src/formats/gexf/styles.js.map +1 -1
  183. package/dist/src/formats/gml/importer.d.ts +5 -2
  184. package/dist/src/formats/gml/importer.d.ts.map +1 -1
  185. package/dist/src/formats/gml/importer.js +258 -71
  186. package/dist/src/formats/gml/importer.js.map +1 -1
  187. package/dist/src/formats/gml/index.d.ts +1 -1
  188. package/dist/src/formats/gml/index.d.ts.map +1 -1
  189. package/dist/src/formats/gml/index.js +1 -1
  190. package/dist/src/formats/gml/index.js.map +1 -1
  191. package/dist/src/formats/gml/positions.d.ts +7 -0
  192. package/dist/src/formats/gml/positions.d.ts.map +1 -1
  193. package/dist/src/formats/gml/positions.js +29 -7
  194. package/dist/src/formats/gml/positions.js.map +1 -1
  195. package/dist/src/formats/gml/styles.d.ts.map +1 -1
  196. package/dist/src/formats/gml/styles.js +756 -103
  197. package/dist/src/formats/gml/styles.js.map +1 -1
  198. package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -1
  199. package/dist/src/formats/graphml/styles-plain.js +8 -12
  200. package/dist/src/formats/graphml/styles-plain.js.map +1 -1
  201. package/dist/src/formats/graphml/styles-yed.d.ts +21 -15
  202. package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -1
  203. package/dist/src/formats/graphml/styles-yed.js +749 -148
  204. package/dist/src/formats/graphml/styles-yed.js.map +1 -1
  205. package/dist/src/formats/graphml/styles-yfiles3.d.ts +1 -1
  206. package/dist/src/formats/graphml/styles-yfiles3.d.ts.map +1 -1
  207. package/dist/src/formats/graphml/styles-yfiles3.js +429 -64
  208. package/dist/src/formats/graphml/styles-yfiles3.js.map +1 -1
  209. package/dist/src/formats/graphml/yfiles.d.ts +3 -3
  210. package/dist/src/formats/graphml/yfiles.d.ts.map +1 -1
  211. package/dist/src/formats/graphml/yfiles.js +16 -6
  212. package/dist/src/formats/graphml/yfiles.js.map +1 -1
  213. package/dist/src/formats/json/dialect.d.ts +3 -2
  214. package/dist/src/formats/json/dialect.d.ts.map +1 -1
  215. package/dist/src/formats/json/dialect.js +39 -5
  216. package/dist/src/formats/json/dialect.js.map +1 -1
  217. package/dist/src/formats/json/importer.d.ts +13 -2
  218. package/dist/src/formats/json/importer.d.ts.map +1 -1
  219. package/dist/src/formats/json/importer.js +42 -6
  220. package/dist/src/formats/json/importer.js.map +1 -1
  221. package/dist/src/formats/json/index.d.ts +1 -1
  222. package/dist/src/formats/json/index.d.ts.map +1 -1
  223. package/dist/src/formats/json/index.js +1 -1
  224. package/dist/src/formats/json/index.js.map +1 -1
  225. package/dist/src/formats/json/positions.d.ts +5 -2
  226. package/dist/src/formats/json/positions.d.ts.map +1 -1
  227. package/dist/src/formats/json/positions.js +20 -4
  228. package/dist/src/formats/json/positions.js.map +1 -1
  229. package/dist/src/formats/json/styles.d.ts +12 -1
  230. package/dist/src/formats/json/styles.d.ts.map +1 -1
  231. package/dist/src/formats/json/styles.js +1755 -136
  232. package/dist/src/formats/json/styles.js.map +1 -1
  233. package/dist/src/formats/pajek/draw.d.ts +96 -0
  234. package/dist/src/formats/pajek/draw.d.ts.map +1 -0
  235. package/dist/src/formats/pajek/draw.js +372 -0
  236. package/dist/src/formats/pajek/draw.js.map +1 -0
  237. package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
  238. package/dist/src/formats/pajek/exporter.js +70 -51
  239. package/dist/src/formats/pajek/exporter.js.map +1 -1
  240. package/dist/src/formats/pajek/importer.d.ts +9 -0
  241. package/dist/src/formats/pajek/importer.d.ts.map +1 -1
  242. package/dist/src/formats/pajek/importer.js +233 -102
  243. package/dist/src/formats/pajek/importer.js.map +1 -1
  244. package/dist/src/formats/pajek/index.d.ts +1 -0
  245. package/dist/src/formats/pajek/index.d.ts.map +1 -1
  246. package/dist/src/formats/pajek/index.js.map +1 -1
  247. package/dist/src/formats/pajek/styles.d.ts +15 -7
  248. package/dist/src/formats/pajek/styles.d.ts.map +1 -1
  249. package/dist/src/formats/pajek/styles.js +1279 -114
  250. package/dist/src/formats/pajek/styles.js.map +1 -1
  251. package/dist/src/formats/pajek/syntax.d.ts +10 -1
  252. package/dist/src/formats/pajek/syntax.d.ts.map +1 -1
  253. package/dist/src/formats/pajek/syntax.js +26 -2
  254. package/dist/src/formats/pajek/syntax.js.map +1 -1
  255. package/dist/src/formats/xgmml/emit.d.ts +1 -0
  256. package/dist/src/formats/xgmml/emit.d.ts.map +1 -1
  257. package/dist/src/formats/xgmml/emit.js +65 -5
  258. package/dist/src/formats/xgmml/emit.js.map +1 -1
  259. package/dist/src/formats/xgmml/styles.d.ts +23 -3
  260. package/dist/src/formats/xgmml/styles.d.ts.map +1 -1
  261. package/dist/src/formats/xgmml/styles.js +278 -60
  262. package/dist/src/formats/xgmml/styles.js.map +1 -1
  263. package/dist/src/index.d.ts +10 -2
  264. package/dist/src/index.d.ts.map +1 -1
  265. package/dist/src/index.js +11 -2
  266. package/dist/src/index.js.map +1 -1
  267. package/dist/src/positions/convert.d.ts.map +1 -1
  268. package/dist/src/positions/convert.js +11 -1
  269. package/dist/src/positions/convert.js.map +1 -1
  270. package/dist/src/positions/extract.d.ts.map +1 -1
  271. package/dist/src/positions/extract.js +53 -1
  272. package/dist/src/positions/extract.js.map +1 -1
  273. package/dist/src/positions/index.d.ts +1 -1
  274. package/dist/src/positions/index.d.ts.map +1 -1
  275. package/dist/src/positions/types.d.ts +59 -0
  276. package/dist/src/positions/types.d.ts.map +1 -1
  277. package/dist/src/registry.d.ts +173 -1
  278. package/dist/src/registry.d.ts.map +1 -1
  279. package/dist/src/registry.js +196 -1
  280. package/dist/src/registry.js.map +1 -1
  281. package/dist/src/sources/builtins.d.ts +11 -0
  282. package/dist/src/sources/builtins.d.ts.map +1 -0
  283. package/dist/src/sources/builtins.js +53 -0
  284. package/dist/src/sources/builtins.js.map +1 -0
  285. package/dist/src/sources/codes.d.ts +230 -0
  286. package/dist/src/sources/codes.d.ts.map +1 -0
  287. package/dist/src/sources/codes.js +58 -0
  288. package/dist/src/sources/codes.js.map +1 -0
  289. package/dist/src/sources/context.d.ts +112 -0
  290. package/dist/src/sources/context.d.ts.map +1 -0
  291. package/dist/src/sources/context.js +740 -0
  292. package/dist/src/sources/context.js.map +1 -0
  293. package/dist/src/sources/credentials.d.ts +179 -0
  294. package/dist/src/sources/credentials.d.ts.map +1 -0
  295. package/dist/src/sources/credentials.js +301 -0
  296. package/dist/src/sources/credentials.js.map +1 -0
  297. package/dist/src/sources/cypher/descriptor.d.ts +21 -0
  298. package/dist/src/sources/cypher/descriptor.d.ts.map +1 -0
  299. package/dist/src/sources/cypher/descriptor.js +124 -0
  300. package/dist/src/sources/cypher/descriptor.js.map +1 -0
  301. package/dist/src/sources/cypher/flatten.d.ts +72 -0
  302. package/dist/src/sources/cypher/flatten.d.ts.map +1 -0
  303. package/dist/src/sources/cypher/flatten.js +279 -0
  304. package/dist/src/sources/cypher/flatten.js.map +1 -0
  305. package/dist/src/sources/cypher/index.d.ts +33 -0
  306. package/dist/src/sources/cypher/index.d.ts.map +1 -0
  307. package/dist/src/sources/cypher/index.js +511 -0
  308. package/dist/src/sources/cypher/index.js.map +1 -0
  309. package/dist/src/sources/cypher/params.d.ts +40 -0
  310. package/dist/src/sources/cypher/params.d.ts.map +1 -0
  311. package/dist/src/sources/cypher/params.js +6 -0
  312. package/dist/src/sources/cypher/params.js.map +1 -0
  313. package/dist/src/sources/cypher/profiles.d.ts +44 -0
  314. package/dist/src/sources/cypher/profiles.d.ts.map +1 -0
  315. package/dist/src/sources/cypher/profiles.js +61 -0
  316. package/dist/src/sources/cypher/profiles.js.map +1 -0
  317. package/dist/src/sources/cypher/query-builder.d.ts +123 -0
  318. package/dist/src/sources/cypher/query-builder.d.ts.map +1 -0
  319. package/dist/src/sources/cypher/query-builder.js +267 -0
  320. package/dist/src/sources/cypher/query-builder.js.map +1 -0
  321. package/dist/src/sources/cypher/transports/bolt.d.ts +21 -0
  322. package/dist/src/sources/cypher/transports/bolt.d.ts.map +1 -0
  323. package/dist/src/sources/cypher/transports/bolt.js +185 -0
  324. package/dist/src/sources/cypher/transports/bolt.js.map +1 -0
  325. package/dist/src/sources/cypher/transports/neptune-analytics.d.ts +15 -0
  326. package/dist/src/sources/cypher/transports/neptune-analytics.d.ts.map +1 -0
  327. package/dist/src/sources/cypher/transports/neptune-analytics.js +38 -0
  328. package/dist/src/sources/cypher/transports/neptune-analytics.js.map +1 -0
  329. package/dist/src/sources/cypher/transports/neptune-https.d.ts +31 -0
  330. package/dist/src/sources/cypher/transports/neptune-https.d.ts.map +1 -0
  331. package/dist/src/sources/cypher/transports/neptune-https.js +104 -0
  332. package/dist/src/sources/cypher/transports/neptune-https.js.map +1 -0
  333. package/dist/src/sources/cypher/transports/query-api.d.ts +14 -0
  334. package/dist/src/sources/cypher/transports/query-api.d.ts.map +1 -0
  335. package/dist/src/sources/cypher/transports/query-api.js +80 -0
  336. package/dist/src/sources/cypher/transports/query-api.js.map +1 -0
  337. package/dist/src/sources/cypher/transports/transport.d.ts +78 -0
  338. package/dist/src/sources/cypher/transports/transport.d.ts.map +1 -0
  339. package/dist/src/sources/cypher/transports/transport.js +77 -0
  340. package/dist/src/sources/cypher/transports/transport.js.map +1 -0
  341. package/dist/src/sources/cypher/types-map.d.ts +91 -0
  342. package/dist/src/sources/cypher/types-map.d.ts.map +1 -0
  343. package/dist/src/sources/cypher/types-map.js +306 -0
  344. package/dist/src/sources/cypher/types-map.js.map +1 -0
  345. package/dist/src/sources/define.d.ts +47 -0
  346. package/dist/src/sources/define.d.ts.map +1 -0
  347. package/dist/src/sources/define.js +173 -0
  348. package/dist/src/sources/define.js.map +1 -0
  349. package/dist/src/sources/fail.d.ts +33 -0
  350. package/dist/src/sources/fail.d.ts.map +1 -0
  351. package/dist/src/sources/fail.js +49 -0
  352. package/dist/src/sources/fail.js.map +1 -0
  353. package/dist/src/sources/ids.d.ts +69 -0
  354. package/dist/src/sources/ids.d.ts.map +1 -0
  355. package/dist/src/sources/ids.js +69 -0
  356. package/dist/src/sources/ids.js.map +1 -0
  357. package/dist/src/sources/ndex/client.d.ts +31 -0
  358. package/dist/src/sources/ndex/client.d.ts.map +1 -0
  359. package/dist/src/sources/ndex/client.js +90 -0
  360. package/dist/src/sources/ndex/client.js.map +1 -0
  361. package/dist/src/sources/ndex/descriptor.d.ts +10 -0
  362. package/dist/src/sources/ndex/descriptor.d.ts.map +1 -0
  363. package/dist/src/sources/ndex/descriptor.js +55 -0
  364. package/dist/src/sources/ndex/descriptor.js.map +1 -0
  365. package/dist/src/sources/ndex/expand.d.ts +20 -0
  366. package/dist/src/sources/ndex/expand.d.ts.map +1 -0
  367. package/dist/src/sources/ndex/expand.js +87 -0
  368. package/dist/src/sources/ndex/expand.js.map +1 -0
  369. package/dist/src/sources/ndex/index.d.ts +25 -0
  370. package/dist/src/sources/ndex/index.d.ts.map +1 -0
  371. package/dist/src/sources/ndex/index.js +191 -0
  372. package/dist/src/sources/ndex/index.js.map +1 -0
  373. package/dist/src/sources/ndex/params.d.ts +17 -0
  374. package/dist/src/sources/ndex/params.d.ts.map +1 -0
  375. package/dist/src/sources/ndex/params.js +6 -0
  376. package/dist/src/sources/ndex/params.js.map +1 -0
  377. package/dist/src/sources/ndex/share-url.d.ts +40 -0
  378. package/dist/src/sources/ndex/share-url.d.ts.map +1 -0
  379. package/dist/src/sources/ndex/share-url.js +64 -0
  380. package/dist/src/sources/ndex/share-url.js.map +1 -0
  381. package/dist/src/sources/params.d.ts +31 -0
  382. package/dist/src/sources/params.d.ts.map +1 -0
  383. package/dist/src/sources/params.js +6 -0
  384. package/dist/src/sources/params.js.map +1 -0
  385. package/dist/src/sources/registry.d.ts +118 -0
  386. package/dist/src/sources/registry.d.ts.map +1 -0
  387. package/dist/src/sources/registry.js +193 -0
  388. package/dist/src/sources/registry.js.map +1 -0
  389. package/dist/src/sources/rest/descriptor.d.ts +16 -0
  390. package/dist/src/sources/rest/descriptor.d.ts.map +1 -0
  391. package/dist/src/sources/rest/descriptor.js +76 -0
  392. package/dist/src/sources/rest/descriptor.js.map +1 -0
  393. package/dist/src/sources/rest/index.d.ts +14 -0
  394. package/dist/src/sources/rest/index.d.ts.map +1 -0
  395. package/dist/src/sources/rest/index.js +13 -0
  396. package/dist/src/sources/rest/index.js.map +1 -0
  397. package/dist/src/sources/rest/mapping.d.ts +30 -0
  398. package/dist/src/sources/rest/mapping.d.ts.map +1 -0
  399. package/dist/src/sources/rest/mapping.js +362 -0
  400. package/dist/src/sources/rest/mapping.js.map +1 -0
  401. package/dist/src/sources/rest/openalex.d.ts +27 -0
  402. package/dist/src/sources/rest/openalex.d.ts.map +1 -0
  403. package/dist/src/sources/rest/openalex.js +269 -0
  404. package/dist/src/sources/rest/openalex.js.map +1 -0
  405. package/dist/src/sources/rest/paging.d.ts +53 -0
  406. package/dist/src/sources/rest/paging.d.ts.map +1 -0
  407. package/dist/src/sources/rest/paging.js +138 -0
  408. package/dist/src/sources/rest/paging.js.map +1 -0
  409. package/dist/src/sources/rest/params.d.ts +216 -0
  410. package/dist/src/sources/rest/params.d.ts.map +1 -0
  411. package/dist/src/sources/rest/params.js +7 -0
  412. package/dist/src/sources/rest/params.js.map +1 -0
  413. package/dist/src/sources/rest/records.d.ts +41 -0
  414. package/dist/src/sources/rest/records.d.ts.map +1 -0
  415. package/dist/src/sources/rest/records.js +240 -0
  416. package/dist/src/sources/rest/records.js.map +1 -0
  417. package/dist/src/sources/rest/samples/deps-dev.d.ts +10 -0
  418. package/dist/src/sources/rest/samples/deps-dev.d.ts.map +1 -0
  419. package/dist/src/sources/rest/samples/deps-dev.js +47 -0
  420. package/dist/src/sources/rest/samples/deps-dev.js.map +1 -0
  421. package/dist/src/sources/rest/samples/string.d.ts +9 -0
  422. package/dist/src/sources/rest/samples/string.d.ts.map +1 -0
  423. package/dist/src/sources/rest/samples/string.js +42 -0
  424. package/dist/src/sources/rest/samples/string.js.map +1 -0
  425. package/dist/src/sources/rest/selectors.d.ts +41 -0
  426. package/dist/src/sources/rest/selectors.d.ts.map +1 -0
  427. package/dist/src/sources/rest/selectors.js +81 -0
  428. package/dist/src/sources/rest/selectors.js.map +1 -0
  429. package/dist/src/sources/rest/source.d.ts +67 -0
  430. package/dist/src/sources/rest/source.d.ts.map +1 -0
  431. package/dist/src/sources/rest/source.js +650 -0
  432. package/dist/src/sources/rest/source.js.map +1 -0
  433. package/dist/src/sources/rest/templates.d.ts +38 -0
  434. package/dist/src/sources/rest/templates.d.ts.map +1 -0
  435. package/dist/src/sources/rest/templates.js +125 -0
  436. package/dist/src/sources/rest/templates.js.map +1 -0
  437. package/dist/src/sources/run.d.ts +93 -0
  438. package/dist/src/sources/run.d.ts.map +1 -0
  439. package/dist/src/sources/run.js +673 -0
  440. package/dist/src/sources/run.js.map +1 -0
  441. package/dist/src/sources/sha256.d.ts +12 -0
  442. package/dist/src/sources/sha256.d.ts.map +1 -0
  443. package/dist/src/sources/sha256.js +95 -0
  444. package/dist/src/sources/sha256.js.map +1 -0
  445. package/dist/src/sources/sigv4.d.ts +26 -0
  446. package/dist/src/sources/sigv4.d.ts.map +1 -0
  447. package/dist/src/sources/sigv4.js +184 -0
  448. package/dist/src/sources/sigv4.js.map +1 -0
  449. package/dist/src/sources/sparql/descriptor.d.ts +10 -0
  450. package/dist/src/sources/sparql/descriptor.d.ts.map +1 -0
  451. package/dist/src/sources/sparql/descriptor.js +64 -0
  452. package/dist/src/sources/sparql/descriptor.js.map +1 -0
  453. package/dist/src/sources/sparql/index.d.ts +28 -0
  454. package/dist/src/sources/sparql/index.d.ts.map +1 -0
  455. package/dist/src/sources/sparql/index.js +314 -0
  456. package/dist/src/sources/sparql/index.js.map +1 -0
  457. package/dist/src/sources/sparql/ntriples.d.ts +69 -0
  458. package/dist/src/sources/sparql/ntriples.d.ts.map +1 -0
  459. package/dist/src/sources/sparql/ntriples.js +180 -0
  460. package/dist/src/sources/sparql/ntriples.js.map +1 -0
  461. package/dist/src/sources/sparql/params.d.ts +27 -0
  462. package/dist/src/sources/sparql/params.d.ts.map +1 -0
  463. package/dist/src/sources/sparql/params.js +5 -0
  464. package/dist/src/sources/sparql/params.js.map +1 -0
  465. package/dist/src/sources/sparql/query.d.ts +72 -0
  466. package/dist/src/sources/sparql/query.d.ts.map +1 -0
  467. package/dist/src/sources/sparql/query.js +113 -0
  468. package/dist/src/sources/sparql/query.js.map +1 -0
  469. package/dist/src/sources/testing.d.ts +96 -0
  470. package/dist/src/sources/testing.d.ts.map +1 -0
  471. package/dist/src/sources/testing.js +138 -0
  472. package/dist/src/sources/testing.js.map +1 -0
  473. package/dist/src/sources/types.d.ts +696 -0
  474. package/dist/src/sources/types.d.ts.map +1 -0
  475. package/dist/src/sources/types.js +10 -0
  476. package/dist/src/sources/types.js.map +1 -0
  477. package/dist/src/styles/annotations.d.ts +61 -5
  478. package/dist/src/styles/annotations.d.ts.map +1 -1
  479. package/dist/src/styles/annotations.js +130 -22
  480. package/dist/src/styles/annotations.js.map +1 -1
  481. package/dist/src/styles/canon/bends.d.ts +46 -0
  482. package/dist/src/styles/canon/bends.d.ts.map +1 -1
  483. package/dist/src/styles/canon/bends.js +123 -0
  484. package/dist/src/styles/canon/bends.js.map +1 -1
  485. package/dist/src/styles/canon/color-tables.d.ts +6 -1
  486. package/dist/src/styles/canon/color-tables.d.ts.map +1 -1
  487. package/dist/src/styles/canon/color-tables.js +10 -4
  488. package/dist/src/styles/canon/color-tables.js.map +1 -1
  489. package/dist/src/styles/canon/color.d.ts +3 -1
  490. package/dist/src/styles/canon/color.d.ts.map +1 -1
  491. package/dist/src/styles/canon/color.js +103 -3
  492. package/dist/src/styles/canon/color.js.map +1 -1
  493. package/dist/src/styles/canon/enums.d.ts +2 -2
  494. package/dist/src/styles/canon/enums.d.ts.map +1 -1
  495. package/dist/src/styles/canon/enums.js +82 -7
  496. package/dist/src/styles/canon/enums.js.map +1 -1
  497. package/dist/src/styles/canon/graphviz.d.ts +12 -3
  498. package/dist/src/styles/canon/graphviz.d.ts.map +1 -1
  499. package/dist/src/styles/canon/graphviz.js +57 -9
  500. package/dist/src/styles/canon/graphviz.js.map +1 -1
  501. package/dist/src/styles/canon/number.d.ts +8 -0
  502. package/dist/src/styles/canon/number.d.ts.map +1 -1
  503. package/dist/src/styles/canon/number.js +18 -0
  504. package/dist/src/styles/canon/number.js.map +1 -1
  505. package/dist/src/styles/canon/text.d.ts +29 -2
  506. package/dist/src/styles/canon/text.d.ts.map +1 -1
  507. package/dist/src/styles/canon/text.js +156 -16
  508. package/dist/src/styles/canon/text.js.map +1 -1
  509. package/dist/src/styles/codes.d.ts +2 -0
  510. package/dist/src/styles/codes.d.ts.map +1 -1
  511. package/dist/src/styles/codes.js +2 -0
  512. package/dist/src/styles/codes.js.map +1 -1
  513. package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
  514. package/dist/src/styles/cyjs/cascade.js +1037 -35
  515. package/dist/src/styles/cyjs/cascade.js.map +1 -1
  516. package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -1
  517. package/dist/src/styles/cyjs/defaults-table.js +5 -0
  518. package/dist/src/styles/cyjs/defaults-table.js.map +1 -1
  519. package/dist/src/styles/cyjs/emit.d.ts.map +1 -1
  520. package/dist/src/styles/cyjs/emit.js +216 -12
  521. package/dist/src/styles/cyjs/emit.js.map +1 -1
  522. package/dist/src/styles/cyjs/face.d.ts +20 -0
  523. package/dist/src/styles/cyjs/face.d.ts.map +1 -0
  524. package/dist/src/styles/cyjs/face.js +332 -0
  525. package/dist/src/styles/cyjs/face.js.map +1 -0
  526. package/dist/src/styles/cyjs/mappers.d.ts +48 -2
  527. package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
  528. package/dist/src/styles/cyjs/mappers.js +463 -26
  529. package/dist/src/styles/cyjs/mappers.js.map +1 -1
  530. package/dist/src/styles/cyjs/routes.d.ts +53 -0
  531. package/dist/src/styles/cyjs/routes.d.ts.map +1 -0
  532. package/dist/src/styles/cyjs/routes.js +360 -0
  533. package/dist/src/styles/cyjs/routes.js.map +1 -0
  534. package/dist/src/styles/cytoscape/charts.d.ts +23 -0
  535. package/dist/src/styles/cytoscape/charts.d.ts.map +1 -0
  536. package/dist/src/styles/cytoscape/charts.js +560 -0
  537. package/dist/src/styles/cytoscape/charts.js.map +1 -0
  538. package/dist/src/styles/cytoscape/emit.d.ts.map +1 -1
  539. package/dist/src/styles/cytoscape/emit.js +204 -44
  540. package/dist/src/styles/cytoscape/emit.js.map +1 -1
  541. package/dist/src/styles/cytoscape/lexicon.d.ts +97 -3
  542. package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -1
  543. package/dist/src/styles/cytoscape/lexicon.js +413 -79
  544. package/dist/src/styles/cytoscape/lexicon.js.map +1 -1
  545. package/dist/src/styles/cytoscape/mappings.d.ts +30 -0
  546. package/dist/src/styles/cytoscape/mappings.d.ts.map +1 -1
  547. package/dist/src/styles/cytoscape/mappings.js +92 -0
  548. package/dist/src/styles/cytoscape/mappings.js.map +1 -1
  549. package/dist/src/styles/cytoscape/resolve.d.ts +46 -3
  550. package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -1
  551. package/dist/src/styles/cytoscape/resolve.js +632 -22
  552. package/dist/src/styles/cytoscape/resolve.js.map +1 -1
  553. package/dist/src/styles/cytoscape/translate.d.ts.map +1 -1
  554. package/dist/src/styles/cytoscape/translate.js +10 -10
  555. package/dist/src/styles/cytoscape/translate.js.map +1 -1
  556. package/dist/src/styles/defaults.d.ts +50 -0
  557. package/dist/src/styles/defaults.d.ts.map +1 -1
  558. package/dist/src/styles/defaults.js +315 -37
  559. package/dist/src/styles/defaults.js.map +1 -1
  560. package/dist/src/styles/index.d.ts +4 -3
  561. package/dist/src/styles/index.d.ts.map +1 -1
  562. package/dist/src/styles/index.js +3 -2
  563. package/dist/src/styles/index.js.map +1 -1
  564. package/dist/src/styles/internal.d.ts +1 -0
  565. package/dist/src/styles/internal.d.ts.map +1 -1
  566. package/dist/src/styles/internal.js +1 -0
  567. package/dist/src/styles/internal.js.map +1 -1
  568. package/dist/src/styles/io/block.d.ts.map +1 -1
  569. package/dist/src/styles/io/block.js +9 -0
  570. package/dist/src/styles/io/block.js.map +1 -1
  571. package/dist/src/styles/io/generic.d.ts.map +1 -1
  572. package/dist/src/styles/io/generic.js +56 -16
  573. package/dist/src/styles/io/generic.js.map +1 -1
  574. package/dist/src/styles/io/round-trip.d.ts +56 -0
  575. package/dist/src/styles/io/round-trip.d.ts.map +1 -0
  576. package/dist/src/styles/io/round-trip.js +138 -0
  577. package/dist/src/styles/io/round-trip.js.map +1 -0
  578. package/dist/src/styles/io/writer.d.ts.map +1 -1
  579. package/dist/src/styles/io/writer.js +13 -4
  580. package/dist/src/styles/io/writer.js.map +1 -1
  581. package/dist/src/styles/notes.d.ts.map +1 -1
  582. package/dist/src/styles/notes.js +1 -0
  583. package/dist/src/styles/notes.js.map +1 -1
  584. package/dist/src/styles/plan/features.d.ts +1 -1
  585. package/dist/src/styles/plan/features.d.ts.map +1 -1
  586. package/dist/src/styles/plan/features.js +22 -2
  587. package/dist/src/styles/plan/features.js.map +1 -1
  588. package/dist/src/styles/plan/index.d.ts +1 -1
  589. package/dist/src/styles/plan/index.d.ts.map +1 -1
  590. package/dist/src/styles/plan/index.js +1 -1
  591. package/dist/src/styles/plan/index.js.map +1 -1
  592. package/dist/src/styles/plan/plan.d.ts.map +1 -1
  593. package/dist/src/styles/plan/plan.js +61 -4
  594. package/dist/src/styles/plan/plan.js.map +1 -1
  595. package/dist/src/styles/plan/resolve.d.ts +13 -1
  596. package/dist/src/styles/plan/resolve.d.ts.map +1 -1
  597. package/dist/src/styles/plan/resolve.js +53 -6
  598. package/dist/src/styles/plan/resolve.js.map +1 -1
  599. package/dist/src/styles/slots.d.ts +14 -0
  600. package/dist/src/styles/slots.d.ts.map +1 -0
  601. package/dist/src/styles/slots.js +20 -0
  602. package/dist/src/styles/slots.js.map +1 -0
  603. package/dist/src/styles/types.d.ts +638 -5
  604. package/dist/src/styles/types.d.ts.map +1 -1
  605. package/dist/src/styles/vocabulary.d.ts +3 -2
  606. package/dist/src/styles/vocabulary.d.ts.map +1 -1
  607. package/dist/src/styles/vocabulary.js +218 -1
  608. package/dist/src/styles/vocabulary.js.map +1 -1
  609. package/dist/src/types.d.ts +19 -5
  610. package/dist/src/types.d.ts.map +1 -1
  611. package/dist/src/types.js.map +1 -1
  612. package/dist/styles.js +29 -238
  613. package/dist/styles.js.map +1 -1
  614. package/dist/xgmml.js +3 -3
  615. package/docs/samples/people.json +6 -0
  616. package/package.json +53 -8
  617. package/src/common/report.ts +27 -7
  618. package/src/formats/cx/importer.ts +6 -1
  619. package/src/formats/cx/styles.ts +144 -9
  620. package/src/formats/cx2/importer.ts +1 -0
  621. package/src/formats/cx2/styles.ts +3 -1
  622. package/src/formats/cys/importer.ts +1 -0
  623. package/src/formats/cys/styles.ts +27 -5
  624. package/src/formats/dot/drawing.ts +799 -0
  625. package/src/formats/dot/importer.ts +120 -35
  626. package/src/formats/dot/label-places.ts +228 -0
  627. package/src/formats/dot/record.ts +336 -0
  628. package/src/formats/dot/styles.ts +1657 -154
  629. package/src/formats/gexf/dialog-metrics.ts +61 -0
  630. package/src/formats/gexf/importer.ts +50 -5
  631. package/src/formats/gexf/preview.ts +217 -0
  632. package/src/formats/gexf/schema.ts +2 -1
  633. package/src/formats/gexf/styles.ts +1144 -142
  634. package/src/formats/gml/importer.ts +291 -76
  635. package/src/formats/gml/index.ts +1 -1
  636. package/src/formats/gml/positions.ts +29 -7
  637. package/src/formats/gml/styles.ts +854 -111
  638. package/src/formats/graphml/styles-plain.ts +8 -23
  639. package/src/formats/graphml/styles-yed.ts +821 -159
  640. package/src/formats/graphml/styles-yfiles3.ts +485 -63
  641. package/src/formats/graphml/yfiles.ts +19 -6
  642. package/src/formats/json/dialect.ts +41 -5
  643. package/src/formats/json/importer.ts +59 -7
  644. package/src/formats/json/index.ts +1 -0
  645. package/src/formats/json/positions.ts +22 -5
  646. package/src/formats/json/styles.ts +2041 -185
  647. package/src/formats/pajek/draw.ts +458 -0
  648. package/src/formats/pajek/exporter.ts +81 -49
  649. package/src/formats/pajek/importer.ts +278 -103
  650. package/src/formats/pajek/index.ts +1 -0
  651. package/src/formats/pajek/styles.ts +1382 -133
  652. package/src/formats/pajek/syntax.ts +27 -2
  653. package/src/formats/xgmml/emit.ts +73 -5
  654. package/src/formats/xgmml/styles.ts +331 -71
  655. package/src/index.ts +94 -0
  656. package/src/positions/convert.ts +12 -1
  657. package/src/positions/extract.ts +55 -1
  658. package/src/positions/index.ts +1 -0
  659. package/src/positions/types.ts +60 -0
  660. package/src/registry.ts +326 -1
  661. package/src/sources/builtins.ts +63 -0
  662. package/src/sources/codes.ts +235 -0
  663. package/src/sources/context.ts +894 -0
  664. package/src/sources/credentials.ts +409 -0
  665. package/src/sources/cypher/descriptor.ts +131 -0
  666. package/src/sources/cypher/flatten.ts +323 -0
  667. package/src/sources/cypher/index.ts +628 -0
  668. package/src/sources/cypher/params.ts +41 -0
  669. package/src/sources/cypher/profiles.ts +78 -0
  670. package/src/sources/cypher/query-builder.ts +327 -0
  671. package/src/sources/cypher/transports/bolt.ts +228 -0
  672. package/src/sources/cypher/transports/neptune-analytics.ts +41 -0
  673. package/src/sources/cypher/transports/neptune-https.ts +122 -0
  674. package/src/sources/cypher/transports/query-api.ts +100 -0
  675. package/src/sources/cypher/transports/transport.ts +139 -0
  676. package/src/sources/cypher/types-map.ts +418 -0
  677. package/src/sources/define.ts +195 -0
  678. package/src/sources/fail.ts +70 -0
  679. package/src/sources/ids.ts +80 -0
  680. package/src/sources/ndex/client.ts +102 -0
  681. package/src/sources/ndex/descriptor.ts +64 -0
  682. package/src/sources/ndex/expand.ts +100 -0
  683. package/src/sources/ndex/index.ts +235 -0
  684. package/src/sources/ndex/params.ts +17 -0
  685. package/src/sources/ndex/share-url.ts +84 -0
  686. package/src/sources/params.ts +32 -0
  687. package/src/sources/registry.ts +325 -0
  688. package/src/sources/rest/descriptor.ts +79 -0
  689. package/src/sources/rest/index.ts +22 -0
  690. package/src/sources/rest/mapping.ts +401 -0
  691. package/src/sources/rest/openalex.ts +288 -0
  692. package/src/sources/rest/paging.ts +180 -0
  693. package/src/sources/rest/params.ts +243 -0
  694. package/src/sources/rest/records.ts +289 -0
  695. package/src/sources/rest/samples/deps-dev.ts +49 -0
  696. package/src/sources/rest/samples/string.ts +44 -0
  697. package/src/sources/rest/selectors.ts +91 -0
  698. package/src/sources/rest/source.ts +776 -0
  699. package/src/sources/rest/templates.ts +151 -0
  700. package/src/sources/run.ts +793 -0
  701. package/src/sources/sha256.ts +99 -0
  702. package/src/sources/sigv4.ts +209 -0
  703. package/src/sources/sparql/descriptor.ts +67 -0
  704. package/src/sources/sparql/index.ts +356 -0
  705. package/src/sources/sparql/ntriples.ts +219 -0
  706. package/src/sources/sparql/params.ts +28 -0
  707. package/src/sources/sparql/query.ts +162 -0
  708. package/src/sources/testing.ts +210 -0
  709. package/src/sources/types.ts +776 -0
  710. package/src/styles/annotations.ts +201 -27
  711. package/src/styles/canon/bends.ts +137 -0
  712. package/src/styles/canon/color-tables.ts +10 -4
  713. package/src/styles/canon/color.ts +105 -3
  714. package/src/styles/canon/enums.ts +99 -8
  715. package/src/styles/canon/graphviz.ts +71 -10
  716. package/src/styles/canon/number.ts +19 -0
  717. package/src/styles/canon/text.ts +187 -16
  718. package/src/styles/codes.ts +2 -0
  719. package/src/styles/cyjs/cascade.ts +1193 -38
  720. package/src/styles/cyjs/defaults-table.ts +5 -0
  721. package/src/styles/cyjs/emit.ts +247 -16
  722. package/src/styles/cyjs/face.ts +372 -0
  723. package/src/styles/cyjs/mappers.ts +498 -28
  724. package/src/styles/cyjs/routes.ts +432 -0
  725. package/src/styles/cytoscape/charts.ts +684 -0
  726. package/src/styles/cytoscape/emit.ts +220 -44
  727. package/src/styles/cytoscape/lexicon.ts +459 -80
  728. package/src/styles/cytoscape/mappings.ts +108 -0
  729. package/src/styles/cytoscape/resolve.ts +763 -23
  730. package/src/styles/cytoscape/translate.ts +11 -11
  731. package/src/styles/defaults.ts +436 -38
  732. package/src/styles/index.ts +5 -0
  733. package/src/styles/internal.ts +1 -0
  734. package/src/styles/io/block.ts +10 -0
  735. package/src/styles/io/generic.ts +79 -23
  736. package/src/styles/io/round-trip.ts +202 -0
  737. package/src/styles/io/writer.ts +14 -4
  738. package/src/styles/notes.ts +1 -0
  739. package/src/styles/plan/features.ts +23 -2
  740. package/src/styles/plan/index.ts +1 -1
  741. package/src/styles/plan/plan.ts +69 -5
  742. package/src/styles/plan/resolve.ts +61 -6
  743. package/src/styles/slots.ts +25 -0
  744. package/src/styles/types.ts +658 -4
  745. package/src/styles/vocabulary.ts +226 -3
  746. package/src/types.ts +19 -5
  747. package/dist/chunks/block-DiGq58c3.js.map +0 -1
  748. package/dist/chunks/choose--jM0yYCo.js +0 -57
  749. package/dist/chunks/choose--jM0yYCo.js.map +0 -1
  750. package/dist/chunks/convert-BcQ8_jMo.js.map +0 -1
  751. package/dist/chunks/emit-CwU8cUmG.js.map +0 -1
  752. package/dist/chunks/export-BvqAXCKh.js.map +0 -1
  753. package/dist/chunks/exporter-CrDWIyiq.js.map +0 -1
  754. package/dist/chunks/format-BpQBx8MZ.js.map +0 -1
  755. package/dist/chunks/generic-Dq1ntt9q.js.map +0 -1
  756. package/dist/chunks/importer-BSvfrX_h.js.map +0 -1
  757. package/dist/chunks/importer-CMmeMWlC.js.map +0 -1
  758. package/dist/chunks/importer-COTK9Tsl.js.map +0 -1
  759. package/dist/chunks/importer-DiZRmOQG.js.map +0 -1
  760. package/dist/chunks/importer-e6LGpqHB.js.map +0 -1
  761. package/dist/chunks/importer-iFYPEKaJ.js.map +0 -1
  762. package/dist/chunks/importer-yh_aBCU6.js.map +0 -1
  763. package/dist/chunks/lexicon-CT69Kd87.js.map +0 -1
  764. package/dist/chunks/styles-BQnsga7p.js.map +0 -1
  765. package/dist/chunks/styles-D3fRphrO.js +0 -690
  766. package/dist/chunks/styles-D3fRphrO.js.map +0 -1
  767. package/dist/chunks/styles-yed-BF5x3_Y5.js +0 -842
  768. package/dist/chunks/styles-yed-BF5x3_Y5.js.map +0 -1
  769. package/dist/chunks/writer-DMKvthQE.js +0 -448
  770. package/dist/chunks/writer-DMKvthQE.js.map +0 -1
@@ -14,20 +14,84 @@ function v(value, source) {
14
14
  }
15
15
  const CY = "cytoscape-impl vizmap-gui-impl default_vizmap.xml, style default, line";
16
16
  const CYL = "cytoscape-api BasicVisualLexicon.java line";
17
+ /** Cytoscape desktop's zigzag and sine-wave strokes: both swing 10 px and repeat every 20 px. */
18
+ const CY_WAVE = "cytoscape-impl ding-presentation-impl 3.10.5 org.cytoscape.ding.impl.strokes: ZigzagStroke (amplitude 10, a turn every 10) and SineWaveStroke (amplitude 10, wavelength 20)";
17
19
  const CYJS = "cytoscape.js 3.34.3 dist/cytoscape.cjs.js line";
18
20
  const GV = "graphviz.org/docs/attrs";
19
21
  const YED_QA = "yEd Q&A, How can I change the default nodes and/or default edges";
20
22
  const YED_CORPUS = "yEd GraphML corpus, most frequent value";
21
23
  const YED_EDGE = "yFiles for Java 2.19 EdgeRealizer API docs";
24
+ const YED_BG = "yFiles for Java 2.19 DefaultBackgroundRenderer API docs";
22
25
  const Y3 = "yFiles for HTML API docs,";
23
26
  const GEPHI = "gephi master 92e503df61a7";
24
27
  const VIS = "vis-network 10.1.2 vis-network.esm.js";
28
+ const VIS9 = "vis-network 9.1.9 standalone/umd/vis-network.js";
25
29
  const SIGMA = "sigma 3.0.3 packages/sigma/src";
30
+ const SIGMA4 = "sigma 4.0.1 dist/types-d8ce3382.esm.js";
26
31
  const PAJEK = "Pajek 6.02 reference manual";
27
- const PAJEK_SHAPES = "the SHAPES.CFG Pajek writes when none exists (DrawEPS.htm), " +
28
- "github.com/ohshane/radical-clustering 0f568f67893558035868b3db1bf365870ba52f6b shapes.cfg, SHAPE ELLIPSE";
29
32
  const OGDF = "ogdf master 1a40505ac006";
33
+ const OGDF_SVG = "OGDF 2025.10 GraphIO::drawSVG with its default SVGSettings (graph-io/test/fidelity/oracles/gml-specimen-labels-p5.svg: ";
30
34
  const NX = "networkx 6da4704cbf32 networkx/drawing/nx_pylab.py line";
35
+ const MEASURED = "measured in the program's own SVG export (graph-io/test/fidelity/oracles/";
36
+ const PAJEK_SVG = `${MEASURED}pajek-`;
37
+ /**
38
+ * Cytoscape desktop draws an arrow `EDGE_*_ARROW_SIZE` (6 by default, the neutral arrowSize 1) plus the line width
39
+ * across, a DELTA twice as long, a square, a circle and a half arrow as long as that, and a T bar as wide as the
40
+ * DELTA is long and a tenth of that deep: measured on cx-ndex-90f78bcd (width 1), cx2-u2os-hierarchy (width 2),
41
+ * cx2-signor-aml and cx2-syn-bypass (widths 1 and 7).
42
+ */
43
+ const CYTOSCAPE_ARROWHEAD = {
44
+ length: (size, width) => 2 * (6 * size + width),
45
+ aspect: 0.5,
46
+ shapes: {
47
+ square: { length: 0.5, aspect: 1 },
48
+ circle: { length: 0.5, aspect: 1 },
49
+ "circle-open": { length: 0.5, aspect: 1 },
50
+ // HALF_TOP's barb: 1.135 long and 1 to one side of its line
51
+ half: { length: 0.5675, aspect: 0.881 },
52
+ "other:half-bottom": { length: 0.5675, aspect: 0.881 },
53
+ tee: { length: 0.1, aspect: 10 },
54
+ // a square's outline, and a half circle (half a CIRCLE deep, as wide)
55
+ "other:open-square": { length: 0.5, aspect: 1 },
56
+ "other:half-circle": { length: 0.25, aspect: 2 },
57
+ "other:open-half-circle": { length: 0.25, aspect: 2 },
58
+ },
59
+ source: `${MEASURED}cx-ndex-90f78bcd, cx2-u2os-hierarchy, cx2-signor-aml, cx2-syn-bypass, cx-syn-mappings: each arrow's unit glyph), Cytoscape 3.10.5`,
60
+ };
61
+ /**
62
+ * Cytoscape desktop draws a node's outline its size less its border's width across and strokes the border along it,
63
+ * so the border's outer edge is the node's size: a 40 x 40 HEXAGON with a border of 1 is a 39-wide path.
64
+ */
65
+ /** Cytoscape desktop draws a curved edge through its handles, and the loops it adds itself, through their midpoints. */
66
+ const CYTOSCAPE_BEND_CURVE = v("midpoints", "cytoscape-impl ding-presentation-impl GraphGraphics.java computeCubicPolyEdgePath (cubic pieces between the handles' midpoints, controls pulled toward each handle by CURVE_ELLIPTICAL)");
67
+ /**
68
+ * Cytoscape desktop draws a label's background box round its words alone: as wide as the text and one line tall,
69
+ * the font's ascent plus descent (1.164 of a DejaVu Sans font's size), which is also the step between its lines.
70
+ */
71
+ const CYTOSCAPE_LABEL_BOX = `${MEASURED}xgmml-specimen-labels: label-background-* boxes and the captions' two lines), Cytoscape 3.10.5`;
72
+ const CYTOSCAPE_LABEL_PADDING = v(0, CYTOSCAPE_LABEL_BOX);
73
+ const CYTOSCAPE_LABEL_LINE_HEIGHT = v(1, CYTOSCAPE_LABEL_BOX);
74
+ const CYTOSCAPE_BORDER_INSIDE = v("inside", `${MEASURED}cx2-repro-shared-interaction, cys-luad-vest-v2, cx2-synthetic-lethal), Cytoscape 3.10.5`);
75
+ /**
76
+ * draw.io draws a yEd or yFiles file's arrows `endSize` 6 plus the line width long and as wide; yEd itself could not
77
+ * be run, so draw.io's drawing stands in.
78
+ */
79
+ const DRAWIO_ARROWHEAD = {
80
+ length: (size, width) => 6 * size + width,
81
+ aspect: 1,
82
+ source: `${MEASURED}graphml-*, draw.io 32.4.1 standing in for yEd)`,
83
+ };
84
+ /**
85
+ * The largest corner radius of a rounded rectangle whose file gives none, in the program's units. Cytoscape.js is the
86
+ * one program that publishes its rule (`getRoundRectangleRadius`); the others draw barely rounded corners too, so they
87
+ * get the same 8, and a 513 x 453 group keeps small corners instead of a quarter of its side.
88
+ * @param tool - the program, when it is not Cytoscape.js and so states no radius of its own
89
+ * @returns the default
90
+ */
91
+ function cornerCap(tool) {
92
+ const rule = `${CYJS} 4386`;
93
+ return v(8, tool === undefined ? rule : `${rule} (Cytoscape.js's rule; ${tool} states none)`);
94
+ }
31
95
  /**
32
96
  * The defaults of every program graph-io recognizes as a file's writer, by tool id.
33
97
  * @category Styles
@@ -37,6 +101,8 @@ export const TOOL_DEFAULTS = new Map([
37
101
  tool: "cytoscape",
38
102
  version: "cytoscape-impl develop 6c63e97c5152 (3.11)",
39
103
  units: "px",
104
+ roundedCornerRadius: cornerCap("cytoscape"),
105
+ arrowhead: CYTOSCAPE_ARROWHEAD,
40
106
  node: {
41
107
  fill: v("#89d0f5", `${CY} 382`),
42
108
  fillOpacity: v(1, `${CY} 383`),
@@ -46,29 +112,41 @@ export const TOOL_DEFAULTS = new Map([
46
112
  borderColor: v("#cccccc", `${CY} 392`),
47
113
  borderWidth: v(0, `${CY} 350`),
48
114
  borderStyle: v("solid", `${CY} 366`),
115
+ borderPosition: CYTOSCAPE_BORDER_INSIDE,
116
+ borderWaveAmplitude: v(10, CY_WAVE),
117
+ borderWavePeriod: v(20, CY_WAVE),
49
118
  labelColor: v("#000000", `${CY} 395`),
50
- labelFont: v("sans-serif", `${CY} 370`),
119
+ labelFont: v("DejaVu Sans, sans-serif", `${CY} 370 (SansSerif, drawn in Java's face for it)`),
51
120
  labelWeight: v("normal", `${CY} 370`),
52
121
  labelItalic: v(false, `${CY} 370`),
53
122
  labelSize: v(12, `${CY} 371`),
123
+ labelWrapWidth: v(200, `${CY} 372`),
124
+ labelWrapTrailingSpace: v(true, `${MEASURED}cx-ndex-90f78bcd: each word is measured with the space after it), Cytoscape 3.10.5`),
54
125
  labelPosition: v("center", `${CY} 380`),
126
+ labelPadding: CYTOSCAPE_LABEL_PADDING,
127
+ labelLineHeight: CYTOSCAPE_LABEL_LINE_HEIGHT,
55
128
  },
56
129
  edge: {
57
130
  color: v("#848484", `${CY} 431`),
58
131
  width: v(2, `${CY} 417`),
59
132
  lineStyle: v("solid", `${CY} 438`),
133
+ waveAmplitude: v(10, CY_WAVE),
134
+ wavePeriod: v(20, CY_WAVE),
60
135
  opacity: v(1, `${CY} 423`),
61
136
  sourceArrow: v("none", `${CY} 437`),
62
137
  targetArrow: v("none", `${CY} 428`),
63
138
  sourceArrowColor: v("#000000", `${CY} 432`),
64
139
  targetArrowColor: v("#000000", `${CY} 432`),
65
140
  labelColor: v("#000000", `${CY} 415`),
66
- labelFont: v("sans-serif", `${CY} 439`),
141
+ labelFont: v("DejaVu Sans, sans-serif", `${CY} 439 (SansSerif, drawn in Java's face for it)`),
67
142
  labelWeight: v("normal", `${CY} 439`),
68
143
  labelItalic: v(false, `${CY} 439`),
69
144
  labelSize: v(10, `${CY} 439`),
145
+ labelPadding: CYTOSCAPE_LABEL_PADDING,
146
+ labelLineHeight: CYTOSCAPE_LABEL_LINE_HEIGHT,
70
147
  // EDGE_CURVED is true there, but it only rounds an edge's bends: an edge without bends is straight
71
148
  curved: v(false, `${CY} 422`),
149
+ bendCurve: CYTOSCAPE_BEND_CURVE,
72
150
  },
73
151
  graph: { background: v("#ffffff", `${CY} 335`) },
74
152
  derived: [{ kind: "labelFromColumn", column: "name", source: `${CY} 406-408` }],
@@ -77,6 +155,8 @@ export const TOOL_DEFAULTS = new Map([
77
155
  tool: "cytoscape-fallbacks",
78
156
  version: "cytoscape-api develop (3.11)",
79
157
  units: "px",
158
+ roundedCornerRadius: cornerCap("cytoscape-fallbacks"),
159
+ arrowhead: CYTOSCAPE_ARROWHEAD,
80
160
  node: {
81
161
  fill: v("#c80000", `${CYL} 83`),
82
162
  fillOpacity: v(1, `${CYL} 273`),
@@ -85,24 +165,36 @@ export const TOOL_DEFAULTS = new Map([
85
165
  height: v(40, `${CYL} 163`),
86
166
  borderColor: v("#000000", `${CYL} 230`),
87
167
  borderWidth: v(2, `${CYL} 54`),
168
+ borderPosition: CYTOSCAPE_BORDER_INSIDE,
169
+ borderWaveAmplitude: v(10, CY_WAVE),
170
+ borderWavePeriod: v(20, CY_WAVE),
88
171
  labelColor: v("#000000", `${CYL} 91`),
89
- labelFont: v("sans-serif", `${CYL} 255`),
172
+ labelFont: v("DejaVu Sans, sans-serif", `${CYL} 255 (SansSerif, drawn in Java's face for it)`),
90
173
  labelWeight: v("normal", `${CYL} 255`),
91
174
  labelItalic: v(false, `${CYL} 255`),
92
175
  labelSize: v(12, `${CYL} 55`),
176
+ labelWrapWidth: v(200, `${CYL} 196`),
177
+ labelWrapTrailingSpace: v(true, `${MEASURED}cx-ndex-90f78bcd: each word is measured with the space after it), Cytoscape 3.10.5`),
93
178
  labelPosition: v("center", `${CYL} 205`),
179
+ labelPadding: CYTOSCAPE_LABEL_PADDING,
180
+ labelLineHeight: CYTOSCAPE_LABEL_LINE_HEIGHT,
94
181
  },
95
182
  edge: {
96
183
  color: v("#404040", `${CYL} 469`),
97
184
  width: v(1, `${CYL} 368`),
98
185
  lineStyle: v("solid", `${CYL} 392`),
186
+ waveAmplitude: v(10, CY_WAVE),
187
+ wavePeriod: v(20, CY_WAVE),
99
188
  sourceArrow: v("none", `${CYL} 487`),
100
189
  targetArrow: v("none", `${CYL} 493`),
101
190
  labelColor: v("#000000", `${CYL} 327`),
102
- labelFont: v("sans-serif", `${CYL} 408`),
191
+ labelFont: v("DejaVu Sans, sans-serif", `${CYL} 408 (SansSerif, drawn in Java's face for it)`),
103
192
  labelWeight: v("normal", `${CYL} 408`),
104
193
  labelItalic: v(false, `${CYL} 408`),
105
194
  labelSize: v(10, `${CYL} 416`),
195
+ labelPadding: CYTOSCAPE_LABEL_PADDING,
196
+ labelLineHeight: CYTOSCAPE_LABEL_LINE_HEIGHT,
197
+ bendCurve: CYTOSCAPE_BEND_CURVE,
106
198
  },
107
199
  graph: { background: v("#ffffff", `${CYL} 667`) },
108
200
  derived: [],
@@ -111,6 +203,22 @@ export const TOOL_DEFAULTS = new Map([
111
203
  tool: "cytoscape-js",
112
204
  version: "cytoscape.js 3.34.3",
113
205
  units: "px",
206
+ roundedCornerRadius: cornerCap(),
207
+ arrowhead: {
208
+ // getArrowWidth, and the triangle's points at +-0.15, -0.3 of it
209
+ length: (size, width) => 0.3 * Math.max((width * 13.37) ** 0.9, 29) * size,
210
+ aspect: 1,
211
+ // a tee is 0.1 of the arrow width deep, the triangle 0.3 long; triangle-tee reaches back to its bar
212
+ // at 0.5, circle-triangle to 0.6 and triangle-cross to its cross line at 0.4 plus the line's width
213
+ shapes: {
214
+ tee: { length: 1 / 3, aspect: 3 },
215
+ "other:triangle-tee": { length: 5 / 3, aspect: 0.6 },
216
+ "other:triangle-cross": { length: 1.5, aspect: 0.66 },
217
+ "other:circle-triangle": { length: 2, aspect: 0.5 },
218
+ "other:chevron": { length: 2 / 3, aspect: 1.5 },
219
+ },
220
+ source: `${CYJS} 23497 (getArrowWidth), 22714-22716 (triangle), 22813-22814 (tee), 22627 (arrowShapeWidth)`,
221
+ },
114
222
  node: {
115
223
  fill: v("#999999", `${CYJS} 18536`),
116
224
  fillOpacity: v(1, `${CYJS} 18538`),
@@ -120,17 +228,42 @@ export const TOOL_DEFAULTS = new Map([
120
228
  borderColor: v("#000000", `${CYJS} 18555`),
121
229
  borderWidth: v(0, `${CYJS} 18557`),
122
230
  borderStyle: v("solid", `${CYJS} 18558`),
231
+ borderPosition: v("center", `${CYJS} 18563`),
232
+ outerBorderColor: v("#999999", `${CYJS} 18564`),
233
+ // the underlay and the overlay draw nothing until an opacity is set; then these
234
+ underlayColor: v("#000000", `${CYJS} 18524`),
235
+ underlayPadding: v(10, `${CYJS} 18525`),
236
+ underlayShape: v("round-rectangle", `${CYJS} 18526`),
237
+ overlayColor: v("#000000", `${CYJS} 18519`),
238
+ overlayPadding: v(10, `${CYJS} 18520`),
239
+ overlayShape: v("round-rectangle", `${CYJS} 18521`),
123
240
  opacity: v(1, `${CYJS} 18503`),
124
241
  labelColor: v("#000000", `${CYJS} 18474`),
125
242
  labelSize: v(16, `${CYJS} 18496`),
126
243
  labelFont: v("Helvetica Neue, Helvetica, sans-serif", `${CYJS} 18493`),
127
244
  labelWeight: v("normal", `${CYJS} 18495`),
128
245
  labelPosition: v("top", `${CYJS} 18470-18471`),
246
+ // text-wrap: wrap measures `subline + word + wordSeparator` against text-max-width; ponytail: a
247
+ // line's last word has no separator there, where graphty counts a space after it too
248
+ labelWrapTrailingSpace: v(true, `${CYJS} 25218`),
129
249
  },
130
250
  edge: {
131
251
  color: v("#999999", `${CYJS} 18639`),
132
252
  sourceArrowColor: v("#999999", `${CYJS} 18639`),
133
253
  targetArrowColor: v("#999999", `${CYJS} 18639`),
254
+ outlineColor: v("#000000", `${CYJS} 18644`),
255
+ underlayColor: v("#000000", `${CYJS} 18524`),
256
+ underlayPadding: v(10, `${CYJS} 18525`),
257
+ overlayColor: v("#000000", `${CYJS} 18519`),
258
+ overlayPadding: v(10, `${CYJS} 18520`),
259
+ gradientKind: v("none", `${CYJS} 18640 (line-fill solid)`),
260
+ midSourceArrowColor: v("#999999", `${CYJS} 18639`),
261
+ midTargetArrowColor: v("#999999", `${CYJS} 18639`),
262
+ // an edge's label is centered on the line's middle (recalculateEdgeLabelProjections)
263
+ labelPosition: v("center", `${CYJS} 24942`),
264
+ // a source or target label is centered on the line where it leaves its node, unless offset
265
+ sourceLabelOffset: v(0, `${CYJS} 18511, 18515`),
266
+ targetLabelOffset: v(0, `${CYJS} 18511, 18515`),
134
267
  width: v(3, `${CYJS} 18711`),
135
268
  lineStyle: v("solid", `${CYJS} 18638`),
136
269
  opacity: v(1, `${CYJS} 18503`),
@@ -138,28 +271,56 @@ export const TOOL_DEFAULTS = new Map([
138
271
  targetArrow: v("none", `${CYJS} 18671`),
139
272
  arrowSize: v(1, `${CYJS} 18660`),
140
273
  curved: v(false, `${CYJS} 18658`),
274
+ // control-point-step-size 40: a quadratic's middle is half as far out as its control point
275
+ fanSpacing: v(20, `${CYJS} 18647`),
141
276
  labelColor: v("#000000", `${CYJS} 18474`),
142
277
  labelSize: v(16, `${CYJS} 18496`),
143
278
  labelFont: v("Helvetica Neue, Helvetica, sans-serif", `${CYJS} 18493`),
144
279
  labelWeight: v("normal", `${CYJS} 18495`),
145
280
  },
146
- graph: {},
281
+ graph: {
282
+ // the canvas is cleared to transparent, so the page's default white shows through
283
+ background: v("#ffffff", `${CYJS} 31537 (clearCanvas: clearRect)`),
284
+ },
147
285
  derived: [],
148
286
  },
149
287
  {
150
288
  tool: "graphviz",
151
289
  version: "graphviz main (16.1.0)",
152
290
  units: "px",
291
+ roundedCornerRadius: cornerCap("graphviz"),
292
+ arrowhead: {
293
+ // ARROW_LENGTH 10 and the normal arrow's half width 0.35 of its length
294
+ length: (size) => 10 * size,
295
+ aspect: 0.7,
296
+ // each arrow type's length factor and the half width its arrow_type_* function draws
297
+ shapes: {
298
+ tee: { length: 0.2, aspect: 5 },
299
+ square: { length: 0.8, aspect: 1 },
300
+ diamond: { length: 1.2, aspect: 2 / 3 },
301
+ "diamond-open": { length: 1.2, aspect: 2 / 3 },
302
+ circle: { length: 0.8, aspect: 1 },
303
+ "circle-open": { length: 0.8, aspect: 1 },
304
+ crow: { length: 1, aspect: 0.9 },
305
+ vee: { length: 1, aspect: 0.9 },
306
+ // the arc of curve and icurve, a half circle of radius half the arrow's length across its
307
+ // stem (the stem is the line, carried on to the tip)
308
+ "other:curve": { length: 0.5, aspect: 2 },
309
+ "other:inv-curve": { length: 0.5, aspect: 2 },
310
+ },
311
+ source: "graphviz lib/common/arrows.c (ARROW_LENGTH 10, Arrowtypes lenfact, arrow_type_normal 0.35, arrow_type_crow 0.45, arrow_type_tee, arrow_type_box 0.4, arrow_type_diamond 1/3, arrow_type_dot, arrow_type_curve)",
312
+ },
153
313
  node: {
154
314
  fillOpacity: v(0, `${GV}/style/ (default "", not filled)`),
155
315
  borderColor: v("#000000", `${GV}/color/`),
156
316
  borderWidth: v(1, `${GV}/penwidth/; lib/common/const.h line 77`),
317
+ borderPosition: v("center", `${MEASURED}dot-synth-nodes), Graphviz strokes the node's own outline`),
157
318
  shape: v("ellipse", `${GV}/shape/; lib/common/const.h line 76`),
158
319
  width: v(54, `${GV}/width/ (0.75 inch); lib/common/const.h line 72`),
159
320
  height: v(36, `${GV}/height/ (0.5 inch); lib/common/const.h line 73`),
160
321
  labelColor: v("#000000", `${GV}/fontcolor/`),
161
322
  labelSize: v(14, `${GV}/fontsize/; lib/common/const.h line 61`),
162
- labelFont: v("Times-Roman", `${GV}/fontname/; lib/common/const.h line 67`),
323
+ labelFont: v("Times, serif", `${GV}/fontname/ (Times-Roman); lib/common/const.h line 67`),
163
324
  labelPosition: v("center", `${GV}/labelloc/`),
164
325
  },
165
326
  edge: {
@@ -171,9 +332,11 @@ export const TOOL_DEFAULTS = new Map([
171
332
  arrowSize: v(1, `${GV}/arrowsize/`),
172
333
  labelColor: v("#000000", `${GV}/fontcolor/`),
173
334
  labelSize: v(14, `${GV}/fontsize/`),
174
- labelFont: v("Times-Roman", `${GV}/fontname/`),
335
+ labelFont: v("Times, serif", `${GV}/fontname/ (Times-Roman)`),
336
+ },
337
+ graph: {
338
+ background: v("#ffffff", `${GV}/bgcolor/ (default unset); lib/common/emit.c emit_background (an unset bgcolor paints the page white)`),
175
339
  },
176
- graph: {},
177
340
  derived: [
178
341
  { kind: "labelFromId", source: String.raw `${GV}/label/ (default \N, the node name)` },
179
342
  {
@@ -187,14 +350,17 @@ export const TOOL_DEFAULTS = new Map([
187
350
  tool: "yed",
188
351
  version: "yEd / yFiles for Java 2.19",
189
352
  units: "px",
353
+ roundedCornerRadius: cornerCap("yed"),
354
+ arrowhead: DRAWIO_ARROWHEAD,
190
355
  node: {
191
356
  fill: v("#ffcc00", `${YED_QA}; ${YED_CORPUS} of y:Fill color`),
192
357
  shape: v("rectangle", "yFiles for Java 2.19 ShapeNodeRealizer API docs"),
193
358
  borderColor: v("#000000", `${YED_CORPUS} of y:BorderStyle`),
194
359
  borderWidth: v(1, `${YED_CORPUS} of y:BorderStyle`),
195
360
  borderStyle: v("solid", `${YED_CORPUS} of y:BorderStyle`),
361
+ borderPosition: v("center", `${MEASURED}graphml-*, draw.io 32.4.1 standing in for yEd)`),
196
362
  labelColor: v("#000000", `${YED_CORPUS} of y:NodeLabel`),
197
- labelFont: v("Dialog", `${YED_CORPUS} of y:NodeLabel`),
363
+ labelFont: v("DejaVu Sans, sans-serif", `${YED_CORPUS} of y:NodeLabel (Dialog's face)`),
198
364
  labelSize: v(12, `${YED_CORPUS} of y:NodeLabel`),
199
365
  labelWeight: v("normal", `${YED_CORPUS} of y:NodeLabel`),
200
366
  labelPosition: v("center", `${YED_CORPUS} of y:NodeLabel`),
@@ -206,24 +372,30 @@ export const TOOL_DEFAULTS = new Map([
206
372
  sourceArrow: v("none", `${YED_EDGE} (defaults to Arrow.NONE)`),
207
373
  targetArrow: v("none", `${YED_EDGE} (defaults to Arrow.NONE)`),
208
374
  labelColor: v("#000000", `${YED_CORPUS} of y:EdgeLabel`),
209
- labelFont: v("Dialog", `${YED_CORPUS} of y:EdgeLabel`),
375
+ labelFont: v("DejaVu Sans, sans-serif", `${YED_CORPUS} of y:EdgeLabel (Dialog's face)`),
210
376
  labelSize: v(12, `${YED_CORPUS} of y:EdgeLabel`),
211
377
  },
212
- graph: {},
378
+ graph: {
379
+ background: v("#ffffff", `${YED_BG} (setColor: "By default the background color is white"); yEd manual, Preferences, Background tab`),
380
+ },
213
381
  derived: [],
214
382
  },
215
383
  {
216
384
  tool: "yfiles3",
217
385
  version: "yFiles for HTML (API docs retrieved 2026-10-11)",
218
386
  units: "px",
387
+ roundedCornerRadius: cornerCap("yfiles3"),
388
+ arrowhead: DRAWIO_ARROWHEAD,
219
389
  node: {
220
390
  fill: v("#ffffff", `${Y3} ShapeNodeStyle fill`),
221
391
  borderColor: v("#000000", `${Y3} ShapeNodeStyle stroke`),
222
392
  borderWidth: v(1, `${Y3} ShapeNodeStyle stroke`),
393
+ borderPosition: v("center", `${MEASURED}graphml-yfiles-html-*, draw.io 32.4.1 standing in for yFiles)`),
223
394
  shape: v("rectangle", `${Y3} ShapeNodeStyle shape`),
224
395
  labelColor: v("#000000", `${Y3} LabelStyle textFill`),
225
396
  labelFont: v("Arial", `${Y3} LabelStyle font`),
226
397
  labelSize: v(12, `${Y3} LabelStyle font`),
398
+ labelPosition: v("center", `${Y3} IGraph.nodeDefaults labels layoutParameter (InteriorLabelModel center)`),
227
399
  },
228
400
  edge: {
229
401
  color: v("#000000", `${Y3} PolylineEdgeStyle stroke`),
@@ -234,29 +406,43 @@ export const TOOL_DEFAULTS = new Map([
234
406
  labelFont: v("Arial", `${Y3} LabelStyle font`),
235
407
  labelSize: v(12, `${Y3} LabelStyle font`),
236
408
  },
237
- graph: {},
409
+ graph: {
410
+ background: v("#ffffff", `${Y3} GraphComponent (a transparent canvas over the page's white)`),
411
+ },
238
412
  derived: [],
239
413
  },
240
414
  {
241
415
  tool: "gephi",
242
416
  version: "gephi 0.11.4-SNAPSHOT",
243
417
  units: "relative",
418
+ roundedCornerRadius: cornerCap("gephi"),
419
+ arrowhead: {
420
+ length: (size, width) => 3.25 * width * size,
421
+ aspect: 0.9,
422
+ source: `${MEASURED}gexf-synth-nx-viz, widths 1 to 4), Gephi Toolkit 0.11.3`,
423
+ },
244
424
  node: {
245
425
  fill: v("#000000", "gephi/graphstore a4c790b2343e NodeImpl.java line 322"),
246
- width: v(10, `${GEPHI} AbstractProcessor.java lines 195-198`),
247
- height: v(10, `${GEPHI} AbstractProcessor.java lines 195-198`),
426
+ width: v(20, `${GEPHI} AbstractProcessor.java lines 195-198 (size 10 is a radius)`),
427
+ height: v(20, `${GEPHI} AbstractProcessor.java lines 195-198 (size 10 is a radius)`),
248
428
  shape: v("ellipse", "GEXF 1.3 viz shape default disc; Preview NodeRenderer"),
429
+ borderPosition: v("inside", `${MEASURED}gexf-specimen-node-fills-borders-p3), Gephi Toolkit 0.11.3: the border is stroked on a circle of radius size - border / 2`),
249
430
  labelPosition: v("center", `${GEPHI} NodeLabelRenderer.java (a label is drawn centered on its node)`),
431
+ // a node drawn under another still shows its label (gexf-cns-wos n5 under n109: "Borner, K")
432
+ labelOnTop: v(true, `${GEPHI} PreviewController (the node label items are drawn after every node); Gephi Toolkit 0.11.3 SVG export: g#node-labels after g#nodes`),
250
433
  },
251
434
  edge: {
252
435
  sourceArrow: v("none", `${GEPHI} DefaultPreset.java line 62`),
253
436
  targetArrow: v("none", `${GEPHI} DefaultPreset.java line 62`),
437
+ curved: v(true, `${GEPHI} DefaultPreset.java (EDGE_CURVED true); Gephi Toolkit 0.11.3 SVG export`),
438
+ fanned: v(false, `${GEPHI} EdgeRenderer.java (each curved edge bows left of its own direction, siblings ignored); Gephi Toolkit 0.11.3 SVG export`),
439
+ arcRadius: v(1 / 1.2, `${GEPHI} EdgeRenderer.java (CurvedEdgeRenderer: an arc through both node centers of radius length / ARC_CURVENESS, default 1.2)`),
254
440
  },
255
441
  graph: { background: v("#ffffff", `${GEPHI} VizConfig.java line 111`) },
256
442
  derived: [
257
443
  {
258
- kind: "colorFromSourceNode",
259
- source: `${GEPHI} VizConfig.java line 119 (EdgeColorMode.SOURCE)`,
444
+ kind: "colorFromEndNodes",
445
+ source: `${GEPHI} DefaultPreset.java (EDGE_COLOR EdgeColor.Mode.MIXED); Gephi Toolkit 0.11.3 SVG export`,
260
446
  },
261
447
  {
262
448
  kind: "widthFromWeight",
@@ -273,26 +459,56 @@ export const TOOL_DEFAULTS = new Map([
273
459
  tool: "vis-network",
274
460
  version: "vis-network 10.1.2",
275
461
  units: "px",
462
+ roundedCornerRadius: cornerCap("vis-network"),
463
+ arrowhead: {
464
+ // EdgeBase.getArrowData: 15 * scaleFactor + 3 * width; ArrowHead's points at -1, +-0.3
465
+ length: (size, width) => 15 * size + 3 * width,
466
+ aspect: 0.6,
467
+ // its bar is 0.15 of the arrow's length deep and as wide as the arrow is long; its box is 0.6 of the
468
+ // length square, its circle 0.8 of the length across, and its curve and inv_curve arcs have a
469
+ // radius of 0.4 of it
470
+ shapes: {
471
+ tee: { length: 0.15, aspect: 1 / 0.15 },
472
+ square: { length: 0.6, aspect: 1 },
473
+ circle: { length: 0.8, aspect: 1 },
474
+ "other:curve": { length: 0.4, aspect: 2 },
475
+ "other:inv-curve": { length: 0.4, aspect: 2 },
476
+ },
477
+ source: `${VIS} EdgeBase.getArrowData, ArrowHead, Bar, Box, Circle, Curve, InvertedCurve (measured on json-vis-unix, json-vis-world, json-vis-synth)`,
478
+ },
479
+ nodeBorderOnScreen: v(true, `${VIS9} NodeBase.initContextForDraw and performStroke: borderWidth / view.scale, at most the node's width`),
276
480
  node: {
277
481
  fill: v("#97c2fc", `${VIS} lines 32986-33110`),
278
482
  borderColor: v("#2b7ce9", `${VIS} lines 32986-33110`),
279
483
  borderWidth: v(1, `${VIS} lines 32986-33110`),
484
+ // a canvas stroke along the node's own outline, half in and half out (NodeBase.performStroke)
485
+ borderPosition: v("center", `${VIS9} NodeBase.performStroke: ctx.stroke() on the shape's own path`),
280
486
  shape: v("ellipse", `${VIS} lines 32986-33110`),
281
487
  labelColor: v("#343434", `${VIS} lines 32986-33110`),
282
488
  labelSize: v(14, `${VIS} lines 32986-33110`),
283
489
  labelFont: v("arial", `${VIS} lines 32986-33110`),
284
490
  labelPosition: v("center", `${VIS} lines 32986-33110`),
491
+ // Label.draw returns before drawing when the font is under drawThreshold - 1 px on screen
492
+ labelMinScreenSize: v(4, `${VIS9} Label.draw, nodes scaling.label.drawThreshold 5`),
285
493
  },
286
494
  edge: {
287
495
  width: v(1, `${VIS} lines 25160-25290`),
496
+ outlineColor: v("#6f6f6f", `${VIS} lines 25160-25290 (background.color)`),
288
497
  lineStyle: v("solid", `${VIS} lines 25160-25290 (dashes false)`),
289
498
  sourceArrow: v("none", `${VIS} lines 25160-25290`),
290
499
  targetArrow: v("none", `${VIS} lines 25160-25290`),
291
500
  labelColor: v("#343434", `${VIS} lines 25160-25290`),
292
501
  labelSize: v(14, `${VIS} lines 25160-25290`),
293
502
  labelFont: v("arial", `${VIS} lines 25160-25290`),
503
+ labelMinScreenSize: v(4, `${VIS9} Label.draw, edges scaling.label.drawThreshold 5`),
504
+ // an edge label is drawn on the line, its letters stroked white 2 px wide (font.strokeWidth 2)
505
+ labelPosition: v("center", `${VIS9} Edge.drawLabel (the label at the line's middle point)`),
506
+ labelOutlineColor: v("#ffffff", `${VIS} lines 25160-25290 (font.strokeColor)`),
507
+ labelOutlineWidth: v(2, `${VIS} lines 25160-25290 (font.strokeWidth)`),
508
+ },
509
+ graph: {
510
+ background: v("#ffffff", "vis-network 9.1.9 vis-network.esm.js line 32378 (clearRect: the page's white shows through)"),
294
511
  },
295
- graph: {},
296
512
  derived: [
297
513
  { kind: "labelFromColumn", column: "label", source: `${VIS} lines 32986-33110` },
298
514
  { kind: "colorFromSourceNode", source: `${VIS} lines 25160-25290 (color.inherit "from")` },
@@ -300,50 +516,95 @@ export const TOOL_DEFAULTS = new Map([
300
516
  },
301
517
  {
302
518
  tool: "sigma",
303
- version: "sigma 3.0.3",
519
+ version: "sigma 4.0.1",
304
520
  units: "relative",
521
+ roundedCornerRadius: cornerCap("sigma"),
305
522
  node: {
306
- fill: v("#999999", `${SIGMA}/settings.ts lines 119-126`),
523
+ fill: v("#666666", `${SIGMA4} DEFAULT_NODE_DISPLAY_DATA (color "#666")`),
307
524
  shape: v("ellipse", `${SIGMA}/settings.ts lines 119-126`),
308
- width: v(2, `${SIGMA}/sigma.ts line 76`),
309
- height: v(2, `${SIGMA}/sigma.ts line 76`),
525
+ width: v(20, `${SIGMA4} DEFAULT_NODE_DISPLAY_DATA (size 10 is a radius)`),
526
+ height: v(20, `${SIGMA4} DEFAULT_NODE_DISPLAY_DATA (size 10 is a radius)`),
310
527
  labelColor: v("#000000", `${SIGMA}/settings.ts lines 119-126`),
311
528
  labelFont: v("Arial", `${SIGMA}/settings.ts lines 119-126`),
312
- labelSize: v(14, `${SIGMA}/settings.ts lines 119-126`),
529
+ // sigma 4 sets every node's labelSize to 12 before its styles run; the 14 in sigma.esm.js
530
+ // (`defaultLabelSize`) is only reached by a node whose styles cleared it.
531
+ labelSize: v(12, `${SIGMA4} DEFAULT_NODE_DISPLAY_DATA (labelSize 12)`),
313
532
  labelWeight: v("normal", `${SIGMA}/settings.ts lines 119-126`),
533
+ labelPosition: v("right", `${SIGMA4} DEFAULT_NODE_DISPLAY_DATA (labelPosition "right")`),
534
+ // sigma keeps the largest node's label per 100 px cell of its first framing; it avoids no overlap
535
+ labelGridCellSize: v(100, `${SIGMA4} LabelGrid.getLabelsToDisplay (labelDensity 1, labelGridCellSize 100)`),
536
+ labelOnTop: v(true, `${SIGMA4} labels are drawn by their own program after every node and edge`),
537
+ // a node's label is drawn only while its node's rendered size (a radius) is 6 px or more
538
+ labelMinNodeScreenSize: v(12, `${SIGMA4} renderLabels (labelRenderedSizeThreshold 6, a radius)`),
314
539
  },
315
540
  edge: {
316
541
  color: v("#cccccc", `${SIGMA}/settings.ts lines 119-126`),
317
- width: v(0.5, `${SIGMA}/sigma.ts line 100`),
542
+ // an edge of sigma's default size 1, drawn half as wide as its size (readSigmaRow)
543
+ width: v(0.5, `${SIGMA4} DEFAULT_EDGE_DISPLAY_DATA (size 1)`),
544
+ // an edge label (renderEdgeLabels) is drawn at its line's middle, 12 px, in #666
545
+ labelColor: v("#666666", `${SIGMA4} DEFAULT_EDGE_DISPLAY_DATA (labelColor "#666")`),
546
+ labelSize: v(12, "sigma 4.0.1 dist/sigma.esm.js line 2816 (DEFAULT_EDGE_LABEL_SIZE)"),
547
+ labelPosition: v("center", "sigma 4.0.1 dist/sigma.esm.js line 3647 (the middle of its two ends)"),
318
548
  sourceArrow: v("none", `${SIGMA}/settings.ts lines 119-126 (type line)`),
319
549
  targetArrow: v("none", `${SIGMA}/settings.ts lines 119-126 (type line)`),
550
+ // no edge is drawn thinner on screen, whatever its size (the shader's max(size, minEdgeThickness 1.7),
551
+ // drawn half as wide as a node of that size is in radius, as readSigmaRow halves a size)
552
+ minScreenWidth: v(0.85, `${SIGMA4} edge program (pixelsThickness = max(size, minEdgeThickness 1.7))`),
553
+ },
554
+ graph: {
555
+ background: v("#ffffff", "sigma 4.0.1 dist/sigma.esm.js line 5202 (gl.clear to transparent: the page's white shows through)"),
320
556
  },
321
- graph: {},
322
557
  derived: [{ kind: "labelFromColumn", column: "label", source: `${SIGMA}/settings.ts lines 119-126` }],
323
558
  },
324
559
  {
325
560
  tool: "pajek",
326
561
  version: "Pajek 6.02",
327
- units: "relative",
562
+ // PostScript points, the unit of Pajek's EPS and SVG export (formats/pajek/styles.ts)
563
+ units: "px",
564
+ roundedCornerRadius: cornerCap("pajek"),
565
+ // a line's `s` (arrowSize) scales Pajek's arrowhead whatever its width: 6 x s long (tip to its back
566
+ // corners) and 5 x s wide
567
+ arrowhead: {
568
+ length: (size) => 6 * size,
569
+ aspect: 5 / 6,
570
+ source: `${PAJEK_SVG}specimen-arrows: s 0.5, 1, 2, 3 and 5 draw arrowheads 3, 6, 12, 18 and 30 long, 2.5, 5, 10, 15 and 25 wide; football: s 4 and 9)`,
571
+ },
328
572
  node: {
329
573
  shape: v("ellipse", `${PAJEK} p. 85`),
330
574
  opacity: v(1, `${PAJEK} p. 87`),
331
- borderColor: v("#000000", `${PAJEK}, vertex parameter bc (default Black)`),
332
- borderWidth: v(0.2, `${PAJEK}, vertex parameter bw (default 1, against the default vertex size 5)`),
333
- labelColor: v("#000000", `${PAJEK_SHAPES} (lc Black)`),
334
- labelPosition: v("center", `${PAJEK_SHAPES} (lr 0); ${PAJEK} p. 85 (radius 0 is centered)`),
575
+ // Pajek 6.02's own defaults, as its SVG export draws a vertex and label the file gives no
576
+ // parameters for (the manual names these settings but not their values)
577
+ borderColor: v("#660000", `${PAJEK_SVG}football, kdorola: every vertex without bc)`),
578
+ borderWidth: v(0.5, `${PAJEK_SVG}football, kdorola: every vertex without bw)`),
579
+ // an SVG stroke along the vertex's own outline, half in and half out
580
+ borderPosition: v("center", `${PAJEK_SVG}specimen-node-fills-borders-p3: bw 8 draws a vertex of size 36 44 across)`),
581
+ width: v(20, `${PAJEK_SVG}football, iliad: a vertex without s_size, x_fact or y_fact)`),
582
+ height: v(20, `${PAJEK_SVG}football, iliad: a vertex without s_size, x_fact or y_fact)`),
583
+ fill: v("#ffd9bc", `${PAJEK_SVG}football, kdorola: every vertex without ic)`),
584
+ labelColor: v("#ad0000", `${PAJEK_SVG}football, 1crn: every label without lc)`),
585
+ labelSize: v(15, `${PAJEK_SVG}football, 1crn: every label without fos)`),
586
+ labelFont: v("Arial", `${PAJEK_SVG}football, 1crn: every label without font)`),
587
+ labelWeight: v("bold", `${PAJEK_SVG}football, 1crn: every label is bold)`),
588
+ // the text starts 20 from the center at lphi 285 and runs to the right, its baseline through
589
+ // that point: its left edge's middle at 20 cos 285 across and 20 sin 285 less 0.3465 of its
590
+ // size down (formats/pajek/styles.ts readLabelPosition)
591
+ labelPosition: v("center", `${PAJEK_SVG}football, 1crn, specimen-labels: lr 20 lphi 285)`),
592
+ labelOffsetX: v(5.176380902, `${PAJEK_SVG}football, 1crn, specimen-labels: lr 20 lphi 285)`),
593
+ labelOffsetY: v(14.121016526, `${PAJEK_SVG}football, 1crn, specimen-labels: lr 20 lphi 285)`),
594
+ labelShiftX: v(0.5, `${PAJEK_SVG}football, 1crn, specimen-labels: text-anchor start)`),
335
595
  },
336
596
  edge: {
337
- color: v("#000000", `${PAJEK} p. 90`),
338
- // No line width: Pajek's w is read as the file has it, not as a factor of the vertex size as bw is,
339
- // so a default of 1 here, with no vertex size in the file, became the length every other length
340
- // of the drawing was scaled by, and a border 0.2 wide was drawn far too thin to see.
597
+ // an edge (undirected) is drawn twice the width of an arc; the arc rule below sets an arc's
598
+ width: v(2, `${PAJEK_SVG}1crn, lin-rel4, synth-vertices: edges without w; c: w 0.5 drawn 1)`),
599
+ color: v("#007091", `${PAJEK_SVG}1crn, lin-rel4, c: edges without c)`),
341
600
  lineStyle: v("solid", `${PAJEK} p. 90`),
342
601
  opacity: v(1, `${PAJEK} p. 87`),
343
602
  sourceArrow: v("none", `${PAJEK} p. 91`),
344
603
  targetArrow: v("none", `${PAJEK} p. 91 (edges have none)`),
345
604
  },
346
- graph: {},
605
+ graph: {
606
+ background: v("#ffffff", `${PAJEK}, Draw window (assumed: a white background)`),
607
+ },
347
608
  derived: [
348
609
  { kind: "labelFromColumn", column: "label", source: `${PAJEK}, vertex labels (drawn by default)` },
349
610
  { kind: "targetArrowOnDirected", arrow: "triangle", source: `${PAJEK} p. 91 (arcs)` },
@@ -353,6 +614,13 @@ export const TOOL_DEFAULTS = new Map([
353
614
  tool: "ogdf",
354
615
  version: "ogdf master 1a40505ac006",
355
616
  units: "px",
617
+ roundedCornerRadius: cornerCap("ogdf"),
618
+ // OGDF's arrowhead is three times its line's width long and half as wide as it is long
619
+ arrowhead: {
620
+ length: (size, width) => 3 * width * size,
621
+ aspect: 0.5,
622
+ source: `${MEASURED}gml-specimen-arrows-p5.svg: lineWidth 1, 1.5 and 3 draw arrowheads 3, 4.5 and 9 long, 1.5, 2.25 and 4.5 wide)`,
623
+ },
356
624
  node: {
357
625
  fill: v("#ffffff", `${OGDF} LayoutStandards.cpp lines 38-45`),
358
626
  shape: v("rectangle", `${OGDF} LayoutStandards.cpp lines 38-45`),
@@ -361,19 +629,29 @@ export const TOOL_DEFAULTS = new Map([
361
629
  borderColor: v("#000000", `${OGDF} LayoutStandards.cpp lines 38-45`),
362
630
  borderWidth: v(1, `${OGDF} LayoutStandards.cpp lines 38-45`),
363
631
  borderStyle: v("solid", `${OGDF} LayoutStandards.cpp lines 38-45`),
632
+ // GraphIO::drawSVG's default SVGSettings: every label in one font, centered on its node
633
+ labelColor: v("#000000", `${OGDF_SVG}fill #000000)`),
634
+ labelFont: v("Arial", `${OGDF_SVG}font-family Arial)`),
635
+ labelSize: v(10, `${OGDF_SVG}font-size 10)`),
636
+ labelPosition: v("center", `${OGDF_SVG}text-anchor middle at the node's center)`),
364
637
  },
365
638
  edge: {
366
639
  color: v("#000000", `${OGDF} LayoutStandards.cpp lines 38-45`),
367
640
  width: v(1, `${OGDF} LayoutStandards.cpp lines 38-45`),
368
641
  lineStyle: v("solid", `${OGDF} LayoutStandards.cpp lines 38-45`),
642
+ labelColor: v("#000000", `${OGDF_SVG}fill #000000)`),
643
+ labelFont: v("Arial", `${OGDF_SVG}font-family Arial)`),
644
+ labelSize: v(10, `${OGDF_SVG}font-size 10)`),
645
+ labelPosition: v("center", `${OGDF_SVG}text-anchor middle on the line, dominant-baseline middle)`),
369
646
  },
370
- graph: {},
647
+ graph: { background: v("#ffffff", `${OGDF_SVG}no background: the page's white shows through)`) },
371
648
  derived: [],
372
649
  },
373
650
  {
374
651
  tool: "networkx",
375
652
  version: "networkx 3.7 (main 6da4704cbf32)",
376
653
  units: "px",
654
+ roundedCornerRadius: cornerCap("networkx"),
377
655
  node: {
378
656
  fill: v("#1f78b4", `${NX} 1378`),
379
657
  fillOpacity: v(1, `${NX} 549`),