@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
@@ -27,6 +27,27 @@ const opacity255 = (raw, site) => {
27
27
  // CX2's 0..1 opacity.
28
28
  const opacity01 = (raw, site) => canonOpacity(raw, "css", site);
29
29
  const length = (raw, site) => canonNumber(raw, site);
30
+ // An arrow size as the neutral factor: Cytoscape's normal arrow is size 6 (default_vizmap.xml).
31
+ export const arrowSizeParser = (raw, site) => {
32
+ const v = canonNumber(raw, site);
33
+ return v === null ? null : num6(v / 6);
34
+ };
35
+ // Degrees, clockwise on screen as Cytoscape turns a label, folded into 0..360.
36
+ // ponytail: a continuous mapping across 0 (from -30 to 30) folds to 330..30 and interpolates the long way round;
37
+ // keep the sign when a file needs it.
38
+ const rotation = (raw, site) => {
39
+ const v = typeof raw === "number" ? raw : Number(scalarText(raw, site)?.trim() ?? Number.NaN);
40
+ if (!Number.isFinite(v)) {
41
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, String(raw));
42
+ return null;
43
+ }
44
+ return num6(((v % 360) + 360) % 360);
45
+ };
46
+ // Cytoscape desktop holds a font size as a whole number, so every value read for one is drawn rounded.
47
+ const fontSize = (raw, site) => {
48
+ const v = canonNumber(raw, site);
49
+ return v === null ? null : Math.round(v);
50
+ };
30
51
  const text = (raw, site) => canonText(raw, site);
31
52
  const bool = (raw, site) => canonBoolean(raw, site);
32
53
  // CX2's `element` / `none`, or a boolean.
@@ -62,29 +83,34 @@ const shape = (raw, site) => {
62
83
  const CY_ARROWS = new Map([
63
84
  ["none", "none"],
64
85
  ["delta", "triangle"],
65
- ["arrow", "vee"],
86
+ // a filled delta with a shallow notch in its back, as long and wide as DELTA (Cytoscape 3.10.5 SVG export)
87
+ ["arrow", "triangle"],
66
88
  ["diamond", "diamond"],
67
89
  ["circle", "circle"],
68
90
  ["t", "tee"],
69
91
  ["half_top", "half"],
70
- ["half_bottom", "half"],
92
+ // the half arrow on the line's other side from HALF_TOP's
93
+ ["half_bottom", "other:half-bottom"],
71
94
  ["square", "square"],
72
95
  ["delta_short_1", "triangle"],
73
96
  ["delta_short_2", "triangle"],
74
- ["arrow_short", "vee"],
97
+ // a short arrow whose notch is too shallow to show: drawn as the triangle it reads as
98
+ ["arrow_short", "triangle"],
75
99
  ["diamond_short_1", "diamond"],
76
100
  ["diamond_short_2", "diamond"],
77
101
  ["open_delta", "triangle-open"],
78
102
  ["open_circle", "circle-open"],
79
103
  ["open_diamond", "diamond-open"],
80
104
  ["open_square", "other:open-square"],
81
- ["cross_delta", "vee"],
82
- ["cross_open_delta", "triangle-open"],
105
+ // a delta with a bar across the line behind it
106
+ ["cross_delta", "other:cross-delta"],
107
+ ["cross_open_delta", "other:cross-open-delta"],
83
108
  ["open_half_circle", "other:open-half-circle"],
84
109
  ["half_circle", "other:half-circle"],
85
110
  ["triangle", "triangle"],
86
111
  ["triangle-tee", "tee"],
87
- ["triangle-cross", "vee"],
112
+ // CX2's spelling of CROSS_DELTA
113
+ ["triangle-cross", "other:cross-delta"],
88
114
  ["triangle-backcurve", "triangle"],
89
115
  ["tee", "tee"],
90
116
  ["vee", "vee"],
@@ -94,7 +120,42 @@ const CY_ARROWS = new Map([
94
120
  ["open-square", "other:open-square"],
95
121
  ["open-delta", "triangle-open"],
96
122
  ["half-top", "half"],
97
- ["half-bottom", "half"],
123
+ ["half-bottom", "other:half-bottom"],
124
+ ]);
125
+ /**
126
+ * How much longer and wider than the neutral shape it is read as each Cytoscape arrow is drawn: the short deltas and
127
+ * diamonds, the short arrow and the crossed deltas (a bar behind the delta), from the unit glyphs Cytoscape 3.10.5's
128
+ * SVG export draws (a DELTA is 2 long and 1 wide, DELTA_SHORT_1 1 by 1, ARROW_SHORT 1.2 by 0.8, CROSS_DELTA 3 by 1.5).
129
+ * Every other arrow is drawn in its shape's own proportions.
130
+ */
131
+ const CY_ARROW_PROPORTIONS = new Map([
132
+ ["delta_short_1", { length: 0.5, width: 1 }],
133
+ ["delta_short_2", { length: 0.25, width: 1 }],
134
+ ["arrow_short", { length: 0.6, width: 0.8 }],
135
+ ["diamond_short_1", { length: 0.5, width: 1 }],
136
+ ["diamond_short_2", { length: 0.25, width: 1 }],
137
+ ["cross_delta", { length: 1.5, width: 1.5 }],
138
+ ["cross_open_delta", { length: 1.5, width: 1.5 }],
139
+ ["triangle-cross", { length: 1.5, width: 1.5 }],
140
+ ]);
141
+ /**
142
+ * How far from its node Cytoscape draws each arrow that stands off the node's outline, as a multiple of the arrow's
143
+ * own length along its line, from the unit glyphs Cytoscape 3.10.5's SVG export draws back from the outline: T's bar
144
+ * from 0.8 to 1 (4 of its 0.2), a half circle from 0.5 to 1, HALF_TOP's barb from 0.3 to 1.435, a square from 0.25
145
+ * to 1.25. Every other arrow touches the outline.
146
+ */
147
+ const CY_ARROW_GAPS = new Map([
148
+ ["t", 4],
149
+ ["tee", 4],
150
+ ["half_circle", 1],
151
+ ["open_half_circle", 1],
152
+ ["half_top", 0.3 / 1.135],
153
+ ["half_bottom", 0.3 / 1.135],
154
+ ["half-top", 0.3 / 1.135],
155
+ ["half-bottom", 0.3 / 1.135],
156
+ ["square", 0.25],
157
+ ["open_square", 0.25],
158
+ ["open-square", 0.25],
98
159
  ]);
99
160
  /** Cytoscape 2.x numbered arrow codes. */
100
161
  const LEGACY_ARROW = [
@@ -117,16 +178,52 @@ const LEGACY_ARROW = [
117
178
  "half_top",
118
179
  "half_bottom",
119
180
  ];
181
+ /**
182
+ * A Cytoscape arrow name, lowercase, with a 2.x numbered code read as its name.
183
+ * @param s - the raw name
184
+ * @returns the key
185
+ */
186
+ function arrowKey(s) {
187
+ const key = s.trim().toLowerCase();
188
+ return /^\d{1,2}$/.test(key) ? (LEGACY_ARROW.at(Number(key)) ?? key) : key;
189
+ }
120
190
  const arrow = (raw, site) => {
121
191
  const s = scalarText(raw, site);
122
192
  if (s === null) {
123
193
  return null;
124
194
  }
125
- let key = s.trim().toLowerCase();
126
- if (/^\d{1,2}$/.test(key)) {
127
- key = LEGACY_ARROW.at(Number(key)) ?? key;
195
+ return caseless(CY_ARROWS.get(arrowKey(s)) ?? canonEnum("arrow", s, "cytoscape", site));
196
+ };
197
+ /**
198
+ * The parser of an arrow's length or width as a fraction of its neutral shape's, from the arrow's name: 1 for every
199
+ * arrow Cytoscape draws in its shape's proportions, so a bypass over a short default draws the full shape again.
200
+ * @param side - which proportion
201
+ * @returns the parser; null for a name it does not know (the shape's parser notes it)
202
+ */
203
+ export function arrowProportion(side) {
204
+ return (raw, site) => {
205
+ const s = scalarText(raw, site);
206
+ if (s === null) {
207
+ return null;
208
+ }
209
+ const key = arrowKey(s);
210
+ return CY_ARROW_PROPORTIONS.get(key)?.[side] ?? (CY_ARROWS.has(key) ? 1 : null);
211
+ };
212
+ }
213
+ /**
214
+ * The parser of how far an arrow stands off its node, as a multiple of its own length (`CY_ARROW_GAPS`), from the
215
+ * arrow's name: 0 for an arrow that touches the node.
216
+ * @param raw - the arrow's name
217
+ * @param site - where it was read
218
+ * @returns the gap; null for a name it does not know (the shape's parser notes it)
219
+ */
220
+ export const arrowGap = (raw, site) => {
221
+ const s = scalarText(raw, site);
222
+ if (s === null) {
223
+ return null;
128
224
  }
129
- return caseless(CY_ARROWS.get(key) ?? canonEnum("arrow", s, "cytoscape", site));
225
+ const key = arrowKey(s);
226
+ return CY_ARROW_GAPS.get(key) ?? (CY_ARROWS.has(key) ? 0 : null);
130
227
  };
131
228
  /** Cytoscape's line types, lowercase. */
132
229
  const CY_LINES = new Map([
@@ -174,14 +271,45 @@ function lineOf(kind) {
174
271
  if (v === null || isStyleValue("node", kind, v) || kind === "lineStyle") {
175
272
  return v;
176
273
  }
177
- // a line type a border does not have is kept as other:
178
- return `other:${key}`;
274
+ // a line type a border does not have is kept as other:, spelled as the line type's own (other:forward-slash)
275
+ return v.startsWith("other:") ? v : `other:${v}`;
276
+ };
277
+ }
278
+ /**
279
+ * A Java font name's own style: `Dialog.bolditalic` is the bold italic face of `Dialog`, and Java draws it bold and
280
+ * italic whatever style the rest of the face states (`Dialog.bolditalic,plain,12` is drawn bold italic).
281
+ * @param name - the font name
282
+ * @returns the family without the suffix, and whether the suffix makes it bold or italic
283
+ */
284
+ function javaFace(name) {
285
+ const m = /\.(bold|italic|plain|bolditalic)$/i.exec(name);
286
+ const suffix = m?.[1].toLowerCase() ?? "";
287
+ return {
288
+ family: m === null ? name : name.slice(0, m.index),
289
+ weight: suffix.includes("bold") ? "bold" : "normal",
290
+ italic: suffix.includes("italic"),
291
+ };
292
+ }
293
+ /**
294
+ * A face whose family may carry a Java style suffix, its suffix's style added to the stated one.
295
+ * @param family - the family as written
296
+ * @param bold - whether the face states bold
297
+ * @param italic - whether the face states italic
298
+ * @returns the face
299
+ */
300
+ function withSuffix(family, bold, italic) {
301
+ const own = javaFace(family.trim());
302
+ return {
303
+ family: own.family,
304
+ weight: bold || own.weight === "bold" ? "bold" : "normal",
305
+ italic: italic || own.italic,
179
306
  };
180
307
  }
181
308
  /**
182
309
  * A font face: `SansSerif,plain,12`, `Dialog.bold,bold,12`, the legacy `SansSerif-0-12` (style bits 1 bold,
183
310
  * 2 italic) or CX2's `{ FONT_FAMILY, FONT_STYLE, FONT_WEIGHT }`, whose `FONT_NAME` (the font Cytoscape desktop
184
- * wrote it from, which its own import restores) wins over the CSS family when present.
311
+ * wrote it from, which its own import restores) wins over the CSS family when present. A Java style suffix on the
312
+ * name (`SansSerif.bold`) is drawn as well.
185
313
  * @param raw - the value
186
314
  * @param site - where it was read
187
315
  * @returns the face, or null
@@ -196,14 +324,12 @@ function fontFace(raw, site) {
196
324
  }
197
325
  const parts = s.split(",");
198
326
  if (parts.length >= 2) {
199
- const st = parts[1].trim().toLowerCase();
200
- return {
201
- family: parts[0].trim().replace(/\.(?:bold|italic|plain|bolditalic)$/i, ""),
202
- weight: st.includes("bold") ? "bold" : "normal",
203
- italic: st.includes("italic"),
204
- };
327
+ // desktop takes the face from the name alone (`FontVisualProperty.parseSerializableString`): its style word is
328
+ // what it writes, not what it reads, so a passthrough of `Serif,bold,12` is drawn plain (Cytoscape 3.10.5's
329
+ // SVG of specimen-mappings-bypass-p19, passthrough-font-face) and `SansSerif.bold,bold,10` bold by its suffix
330
+ return withSuffix(parts[0], false, false);
205
331
  }
206
- return legacyFontFace(s) ?? { family: s.trim(), weight: "normal", italic: false };
332
+ return legacyFontFace(s) ?? withSuffix(s, false, false);
207
333
  }
208
334
  /**
209
335
  * CX2's font face object.
@@ -215,18 +341,14 @@ function cx2FontFace(o, site) {
215
341
  const name = Object.hasOwn(o, "FONT_NAME") ? scalarText(o.FONT_NAME, site) : null;
216
342
  let family = Object.hasOwn(o, "FONT_FAMILY") ? scalarText(o.FONT_FAMILY, site) : null;
217
343
  if (name !== null && name.trim() !== "") {
218
- family = name.trim().replace(/\.(?:bold|italic|plain|bolditalic)$/i, "");
344
+ family = name;
219
345
  }
220
346
  if (family === null) {
221
347
  return null;
222
348
  }
223
349
  const weight = Object.hasOwn(o, "FONT_WEIGHT") ? String(o.FONT_WEIGHT) : "";
224
350
  const style = Object.hasOwn(o, "FONT_STYLE") ? String(o.FONT_STYLE) : "";
225
- return {
226
- family: family.trim(),
227
- weight: /bold/i.test(weight.slice(0, 32)) ? "bold" : "normal",
228
- italic: /italic/i.test(style.slice(0, 32)),
229
- };
351
+ return withSuffix(family, /bold/i.test(weight.slice(0, 32)), /italic/i.test(style.slice(0, 32)));
230
352
  }
231
353
  /**
232
354
  * The legacy `Family-style-size` face: the last two dash parts are numbers, the style's bits 1 bold and 2 italic.
@@ -246,75 +368,217 @@ function legacyFontFace(s) {
246
368
  family = family.slice(0, -"-bold".length);
247
369
  bold = true;
248
370
  }
249
- return { family: family.replace(/\.bold$/i, ""), weight: bold ? "bold" : "normal", italic: (bits & 2) !== 0 };
371
+ return withSuffix(family, bold, (bits & 2) !== 0);
250
372
  }
251
- /** Java's logical font names, which Cytoscape desktop writes, as the CSS generic families they stand for. */
373
+ /**
374
+ * The faces Java draws its logical fonts in on Linux, where the oracles were drawn (the JDK's fontconfig maps
375
+ * SansSerif and Dialog to DejaVu Sans), each before the CSS generic family it stands for. A label wraps by its width
376
+ * in that face: a browser's own sans-serif (Liberation Sans) is 14 percent narrower, so its lines break later.
377
+ */
378
+ export const JAVA_SANS = "DejaVu Sans, sans-serif";
379
+ export const JAVA_SERIF = "DejaVu Serif, serif";
380
+ export const JAVA_MONO = "DejaVu Sans Mono, monospace";
252
381
  /** The family a Java logical font name is read as (`Dialog` is drawn as a sans-serif font). */
253
- export const JAVA_FONTS = new Map([
254
- ["sansserif", "sans-serif"],
255
- ["dialog", "sans-serif"],
256
- ["default", "sans-serif"],
257
- ["dialoginput", "monospace"],
258
- ["monospaced", "monospace"],
259
- ["serif", "serif"],
382
+ const JAVA_FONTS = new Map([
383
+ // CX2's CSS generic families too: Cytoscape desktop hands them to Java, which draws them as these
384
+ ["sans-serif", JAVA_SANS],
385
+ ["monospace", JAVA_MONO],
386
+ ["sansserif", JAVA_SANS],
387
+ ["dialog", JAVA_SANS],
388
+ ["default", JAVA_SANS],
389
+ ["dialoginput", JAVA_MONO],
390
+ ["monospaced", JAVA_MONO],
391
+ ["serif", JAVA_SERIF],
260
392
  ]);
261
393
  const fontFamily = (raw, site) => {
262
394
  const family = fontFace(raw, site)?.family ?? null;
263
- return family === null ? null : (JAVA_FONTS.get(family.toLowerCase()) ?? family);
395
+ return family === null ? null : javaFamily(family);
264
396
  };
397
+ /** The CSS generic families. */
398
+ const CSS_GENERIC = new Set([
399
+ "sans-serif",
400
+ "serif",
401
+ "monospace",
402
+ "cursive",
403
+ "fantasy",
404
+ "system-ui",
405
+ ]);
406
+ /**
407
+ * A Java font name as the CSS family Cytoscape draws it with: a logical name as its generic family, and any other
408
+ * with Dialog's face after it, because Java draws a font it does not have as Dialog
409
+ * (`Calibri-Bold` on a machine without Calibri is drawn in Dialog's face and measured so when a label wraps).
410
+ * @param family - the Java font name, without its style suffix
411
+ * @returns the CSS family
412
+ */
413
+ export function javaFamily(family) {
414
+ const logical = JAVA_FONTS.get(family.toLowerCase());
415
+ if (logical !== undefined) {
416
+ return logical;
417
+ }
418
+ // a CSS generic family or family list (CX2 writes them) already says what stands in for a missing font
419
+ return family.includes(",") || CSS_GENERIC.has(family.toLowerCase()) ? family : `${family}, ${JAVA_SANS}`;
420
+ }
265
421
  const fontWeight = (raw, site) => fontFace(raw, site)?.weight ?? null;
266
422
  const fontItalic = (raw, site) => fontFace(raw, site)?.italic ?? null;
267
- /** The node anchor of a desktop label position `C,C,c,0.00,0.00`. */
423
+ /** A desktop anchor letter as a point of a box, x right and y down, each -1, 0 or 1. */
268
424
  const ANCHOR = new Map([
269
- ["C", "center"],
270
- ["N", "top"],
271
- ["S", "bottom"],
272
- ["E", "right"],
273
- ["W", "left"],
274
- ["NE", "top-right"],
275
- ["NW", "top-left"],
276
- ["SE", "bottom-right"],
277
- ["SW", "bottom-left"],
278
- ["NONE", "center"],
425
+ ["C", [0, 0]],
426
+ ["N", [0, -1]],
427
+ ["S", [0, 1]],
428
+ ["E", [1, 0]],
429
+ ["W", [-1, 0]],
430
+ ["NE", [1, -1]],
431
+ ["NW", [-1, -1]],
432
+ ["SE", [1, 1]],
433
+ ["SW", [-1, 1]],
434
+ ["NONE", [0, 0]],
279
435
  ]);
280
- /** CX2's `HORIZONTAL_ANCHOR,VERTICAL_ANCHOR`, lowercase. */
281
- const CX2_ANCHOR = new Map([
282
- ["center,center", "center"],
283
- ["center,top", "top"],
284
- ["center,bottom", "bottom"],
285
- ["right,center", "right"],
286
- ["left,center", "left"],
287
- ["right,top", "top-right"],
288
- ["left,top", "top-left"],
289
- ["right,bottom", "bottom-right"],
290
- ["left,bottom", "bottom-left"],
436
+ /** CX2's anchor and align words as a point of a box on one axis. */
437
+ const CX2_SIDE = new Map([
438
+ ["center", 0],
439
+ ["left", -1],
440
+ ["right", 1],
441
+ ["top", -1],
442
+ ["bottom", 1],
291
443
  ]);
292
- const labelPosition = (raw, site) => {
293
- let key;
294
- let found;
444
+ /** A label justification as the neutral text alignment. */
445
+ const JUSTIFY = new Map([
446
+ ["l", "left"],
447
+ ["left", "left"],
448
+ ["c", "center"],
449
+ ["center", "center"],
450
+ ["r", "right"],
451
+ ["right", "right"],
452
+ ]);
453
+ /**
454
+ * The anchors of CX2's edge label position `{ EDGE_ANCHOR, LABEL_ANCHOR, ... }`, each a desktop anchor letter, as
455
+ * `[edge x, edge y, label x, label y]`; undefined where a letter is not one.
456
+ * @param o - the position
457
+ * @param site - where a bad value is noted
458
+ * @returns the four sides
459
+ */
460
+ function cx2EdgeAnchors(o, site) {
461
+ const letter = (key) => ANCHOR.get((scalarText(Object.hasOwn(o, key) ? o[key] : "C", site) ?? "").trim().toUpperCase());
462
+ return [
463
+ ...(letter("EDGE_ANCHOR") ?? [undefined, undefined]),
464
+ ...(letter("LABEL_ANCHOR") ?? [undefined, undefined]),
465
+ ];
466
+ }
467
+ /**
468
+ * Reads a label position: desktop's `C,C,c,0.00,0.00` (node anchor, label anchor, justification, x and y offsets)
469
+ * or CX2's `{ HORIZONTAL_ANCHOR, VERTICAL_ANCHOR, HORIZONTAL_ALIGN, VERTICAL_ALIGN, JUSTIFICATION, MARGIN_X,
470
+ * MARGIN_Y }` (for an edge's label `{ EDGE_ANCHOR, LABEL_ANCHOR, JUSTIFICATION, MARGIN_X, MARGIN_Y }`, the anchors
471
+ * as desktop's letters).
472
+ * @param raw - the value
473
+ * @param site - where a bad value is noted
474
+ * @returns the place, or null
475
+ * @category Styles
476
+ */
477
+ export function cytoscapeLabelPlace(raw, site) {
295
478
  if (raw !== null && typeof raw === "object" && !Array.isArray(raw)) {
296
479
  const o = raw;
297
- const h = scalarText(Object.hasOwn(o, "HORIZONTAL_ANCHOR") ? o.HORIZONTAL_ANCHOR : "center", site);
298
- const v = scalarText(Object.hasOwn(o, "VERTICAL_ANCHOR") ? o.VERTICAL_ANCHOR : "center", site);
299
- if (h === null || v === null) {
480
+ const word = (key) => {
481
+ const v = Object.hasOwn(o, key) ? scalarText(o[key], site) : null;
482
+ return (v ?? "center").trim().toLowerCase();
483
+ };
484
+ const num = (key) => {
485
+ const v = Object.hasOwn(o, key) ? Number(o[key]) : 0;
486
+ return Number.isFinite(v) ? v : 0;
487
+ };
488
+ const sides = Object.hasOwn(o, "EDGE_ANCHOR")
489
+ ? cx2EdgeAnchors(o, site)
490
+ : ["HORIZONTAL_ANCHOR", "VERTICAL_ANCHOR", "HORIZONTAL_ALIGN", "VERTICAL_ALIGN"].map((k) => CX2_SIDE.get(word(k)));
491
+ if (sides.includes(undefined)) {
492
+ noteAt(site, STYLE_ISSUE.UNKNOWN_VALUE, JSON.stringify(raw).slice(0, 64));
300
493
  return null;
301
494
  }
302
- key = `${h.trim().toLowerCase()},${v.trim().toLowerCase()}`;
303
- found = CX2_ANCHOR.get(key);
495
+ const [nx, ny, lx, ly] = sides;
496
+ return {
497
+ node: [nx, ny],
498
+ label: [lx, ly],
499
+ justify: JUSTIFY.get(word("JUSTIFICATION")) ?? "center",
500
+ offset: [num("MARGIN_X"), num("MARGIN_Y")],
501
+ };
304
502
  }
305
- else {
306
- const s = scalarText(raw, site);
307
- if (s === null) {
308
- return null;
309
- }
310
- key = s;
311
- found = ANCHOR.get(s.split(",")[0].trim().toUpperCase());
503
+ const s = scalarText(raw, site);
504
+ if (s === null) {
505
+ return null;
312
506
  }
313
- if (found === undefined) {
314
- noteAt(site, STYLE_ISSUE.UNKNOWN_VALUE, key);
507
+ const parts = s.split(",").map((p) => p.trim());
508
+ const node = ANCHOR.get(parts[0].toUpperCase());
509
+ // a position naming only the node's anchor pins the label's opposite point there, as Cytoscape 2.x did
510
+ const label = parts.length > 1 ? ANCHOR.get(parts[1].toUpperCase()) : node?.map((v) => -v);
511
+ if (node === undefined || label === undefined) {
512
+ noteAt(site, STYLE_ISSUE.UNKNOWN_VALUE, s);
315
513
  return null;
316
514
  }
317
- return found;
515
+ const at = (i) => {
516
+ const v = Number(parts[i] ?? 0);
517
+ return Number.isFinite(v) ? v : 0;
518
+ };
519
+ return {
520
+ node,
521
+ label: [label[0], label[1]],
522
+ justify: JUSTIFY.get((parts[2] ?? "c").toLowerCase()) ?? "center",
523
+ offset: [at(3), at(4)],
524
+ };
525
+ }
526
+ /** The neutral position of a label inside its node against each side, by `[x, y]` of the side, y down. */
527
+ const INSIDE = new Map([
528
+ ["0,0", "center"],
529
+ ["0,-1", "inside-top"],
530
+ ["0,1", "inside-bottom"],
531
+ ["-1,0", "inside-left"],
532
+ ["1,0", "inside-right"],
533
+ ["-1,-1", "inside-top-left"],
534
+ ["1,-1", "inside-top-right"],
535
+ ["-1,1", "inside-bottom-left"],
536
+ ["1,1", "inside-bottom-right"],
537
+ ]);
538
+ /**
539
+ * The neutral `labelPosition` a Cytoscape label position starts from: where the label's point is the node's own
540
+ * point on both axes (its center, or inside against a side or a corner), that position; anywhere else `center`,
541
+ * with the rest said by `labelOffsetX`/`Y` and `labelShiftX`/`Y` (see `cytoscapeLabelMove()`).
542
+ * @param place - the label position
543
+ * @returns the neutral position
544
+ * @category Styles
545
+ */
546
+ export function cytoscapeLabelBase(place) {
547
+ const inside = place.node[0] === place.label[0] && place.node[1] === place.label[1];
548
+ return inside ? (INSIDE.get(`${place.node[0]},${place.node[1]}`) ?? "center") : "center";
549
+ }
550
+ /**
551
+ * How far a Cytoscape label is moved from its `cytoscapeLabelBase()` position: the offset in px (y down), with the
552
+ * node's anchor point added when the base is `center` and the anchors differ, and the shift by the label's own
553
+ * size that pins the label's anchor point there.
554
+ * @param place - the label position
555
+ * @param width - the node's width (0 for an edge's middle)
556
+ * @param height - the node's height (0 for an edge's middle)
557
+ * @returns the offset and the shift, each `[x, y]`
558
+ * @category Styles
559
+ */
560
+ export function cytoscapeLabelMove(place, width, height) {
561
+ if (cytoscapeLabelBase(place) !== "center" ||
562
+ (place.node[0] === 0 && place.node[1] === 0 && place.label[0] === 0 && place.label[1] === 0)) {
563
+ return { offset: place.offset, shift: [0, 0] };
564
+ }
565
+ return {
566
+ offset: [(place.node[0] * width) / 2 + place.offset[0], (place.node[1] * height) / 2 + place.offset[1]],
567
+ shift: [halfBack(place.label[0]), halfBack(place.label[1])],
568
+ };
569
+ }
570
+ /**
571
+ * How far a label is shifted, as a fraction of its own size, to pin its point `side` (-1, 0 or 1) where its middle was.
572
+ * @param side - the label's point on one axis
573
+ * @returns the shift (0, never -0, for the middle)
574
+ * @category Styles
575
+ */
576
+ export function halfBack(side) {
577
+ return side === 0 ? 0 : -side / 2;
578
+ }
579
+ const labelPosition = (raw, site) => {
580
+ const place = cytoscapeLabelPlace(raw, site);
581
+ return place === null ? null : cytoscapeLabelBase(place);
318
582
  };
319
583
  /**
320
584
  * The visual properties that set each neutral property, in the order Cytoscape prefers them: the first one a style
@@ -346,6 +610,13 @@ export const CYTOSCAPE_LEXICON = Object.freeze({
346
610
  ["NODE_BORDER_COLOR", color],
347
611
  ],
348
612
  ],
613
+ [
614
+ "borderOpacity",
615
+ [
616
+ ["NODE_BORDER_TRANSPARENCY", opacity255],
617
+ ["NODE_BORDER_OPACITY", opacity01],
618
+ ],
619
+ ],
349
620
  ["borderWidth", [["NODE_BORDER_WIDTH", length]]],
350
621
  [
351
622
  "borderStyle",
@@ -360,11 +631,26 @@ export const CYTOSCAPE_LEXICON = Object.freeze({
360
631
  ["height", [["NODE_HEIGHT", length]]],
361
632
  ["label", [["NODE_LABEL", text]]],
362
633
  ["labelColor", [["NODE_LABEL_COLOR", color]]],
363
- ["labelSize", [["NODE_LABEL_FONT_SIZE", length]]],
634
+ ["labelSize", [["NODE_LABEL_FONT_SIZE", fontSize]]],
635
+ [
636
+ "labelWrapWidth",
637
+ [
638
+ ["NODE_LABEL_WIDTH", length],
639
+ ["NODE_LABEL_MAX_WIDTH", length],
640
+ ],
641
+ ],
364
642
  ["labelFont", [["NODE_LABEL_FONT_FACE", fontFamily]]],
365
643
  ["labelWeight", [["NODE_LABEL_FONT_FACE", fontWeight]]],
366
644
  ["labelItalic", [["NODE_LABEL_FONT_FACE", fontItalic]]],
367
645
  ["labelPosition", [["NODE_LABEL_POSITION", labelPosition]]],
646
+ ["labelRotation", [["NODE_LABEL_ROTATION", rotation]]],
647
+ [
648
+ "labelOpacity",
649
+ [
650
+ ["NODE_LABEL_TRANSPARENCY", opacity255],
651
+ ["NODE_LABEL_OPACITY", opacity01],
652
+ ],
653
+ ],
368
654
  ["tooltip", [["NODE_TOOLTIP", text]]],
369
655
  [
370
656
  "visible",
@@ -401,6 +687,14 @@ export const CYTOSCAPE_LEXICON = Object.freeze({
401
687
  ],
402
688
  ["sourceArrow", [["EDGE_SOURCE_ARROW_SHAPE", arrow]]],
403
689
  ["targetArrow", [["EDGE_TARGET_ARROW_SHAPE", arrow]]],
690
+ // One neutral size for both ends: the target's, else the source's.
691
+ [
692
+ "arrowSize",
693
+ [
694
+ ["EDGE_TARGET_ARROW_SIZE", arrowSizeParser],
695
+ ["EDGE_SOURCE_ARROW_SIZE", arrowSizeParser],
696
+ ],
697
+ ],
404
698
  [
405
699
  "sourceArrowColor",
406
700
  [
@@ -418,10 +712,25 @@ export const CYTOSCAPE_LEXICON = Object.freeze({
418
712
  ["curved", [["EDGE_CURVED", bool]]],
419
713
  ["label", [["EDGE_LABEL", text]]],
420
714
  ["labelColor", [["EDGE_LABEL_COLOR", color]]],
421
- ["labelSize", [["EDGE_LABEL_FONT_SIZE", length]]],
715
+ ["labelSize", [["EDGE_LABEL_FONT_SIZE", fontSize]]],
422
716
  ["labelFont", [["EDGE_LABEL_FONT_FACE", fontFamily]]],
423
717
  ["labelWeight", [["EDGE_LABEL_FONT_FACE", fontWeight]]],
424
718
  ["labelItalic", [["EDGE_LABEL_FONT_FACE", fontItalic]]],
719
+ [
720
+ "labelWrapWidth",
721
+ [
722
+ ["EDGE_LABEL_WIDTH", length],
723
+ ["EDGE_LABEL_MAX_WIDTH", length],
724
+ ],
725
+ ],
726
+ ["labelRotation", [["EDGE_LABEL_ROTATION", rotation]]],
727
+ [
728
+ "labelOpacity",
729
+ [
730
+ ["EDGE_LABEL_TRANSPARENCY", opacity255],
731
+ ["EDGE_LABEL_OPACITY", opacity01],
732
+ ],
733
+ ],
425
734
  ["tooltip", [["EDGE_TOOLTIP", text]]],
426
735
  [
427
736
  "visible",
@@ -438,6 +747,12 @@ export const NODE_SIZE_VP = "NODE_SIZE";
438
747
  export const sizeParser = length;
439
748
  /** The parser of colors, for the network background and `arrowColorMatchesEdge`. */
440
749
  export const colorParser = color;
750
+ /**
751
+ * The parser of 0..255 transparencies (desktop) and 0..1 opacities (CX2), by visual property.
752
+ * @param vp - the visual property (`*_TRANSPARENCY` or `*_OPACITY`)
753
+ * @returns its parser
754
+ */
755
+ export const opacityParser = (vp) => (vp.endsWith("_OPACITY") ? opacity01 : opacity255);
441
756
  /** Every visual property the lexicon reads. */
442
757
  const KNOWN_VPS = new Set([
443
758
  NODE_SIZE_VP,
@@ -602,4 +917,23 @@ export function normalizeVisualProperties(target, raw, notes) {
602
917
  }
603
918
  return out;
604
919
  }
920
+ /**
921
+ * The step a continuous mapping's value is rounded to for the integer visual properties Cytoscape desktop rounds an
922
+ * interpolated value of (cytoscape-api BasicVisualLexicon: the font sizes and the 0..255 transparencies; the latter
923
+ * read as opacities, so 1/255).
924
+ */
925
+ const INTEGER_VP_STEPS = new Map([
926
+ ["NODE_LABEL_FONT_SIZE", 1],
927
+ ["EDGE_LABEL_FONT_SIZE", 1],
928
+ ["NODE_TRANSPARENCY", 1 / 255],
929
+ ["EDGE_TRANSPARENCY", 1 / 255],
930
+ ]);
931
+ /**
932
+ * The step Cytoscape rounds an interpolated value of a visual property to.
933
+ * @param vp - the visual property
934
+ * @returns the step, or undefined for a property that holds fractions
935
+ */
936
+ export function vpStep(vp) {
937
+ return INTEGER_VP_STEPS.get(vp);
938
+ }
605
939
  //# sourceMappingURL=lexicon.js.map