@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
@@ -0,0 +1,1009 @@
1
+ import { GraphFormatError } from "@graphty/graph-format";
2
+ import { c as childrenCsr } from "./children-CA4coBi0.js";
3
+ import { d as directionNotes, p as planNodeIds, a as planEdgeIds, s as stringify, b as aspectBlock, n as noteList, c as declaredType, e as nextNodeId } from "./cx-export-Bt6NoqTQ.js";
4
+ import { p as pairFolding } from "./format-BXiAb-1h.js";
5
+ import { c as capabilities, L as LOSS, r as resolveExportOptions, a as checkCapabilities, e as explicitWeights } from "./export-Cha4dRFz.js";
6
+ import { i as isRecord, P as POSITION_COLUMN } from "./json-elements-Cq76WjnZ.js";
7
+ import { p as plural } from "./report-CwMfYa9J.js";
8
+ import { j as joinText, e as encodeChunks } from "./writer-DxjgHwSe.js";
9
+ import { c as cytoscapeStyledExport, C as CX_STYLE_CAPABILITIES, s as snapshotBlock, b as blockAspect, d as cytoscapeCxAspect } from "./styles-CCs214_3.js";
10
+ import { S as STYLE_BLOCK_NAME } from "./block-iptrlMBb.js";
11
+ import { O as ORIGINAL_ID_ATTRIBUTE } from "./importer-B92x1xY5.js";
12
+ const CX_FORMAT = "cx";
13
+ const CX_LOSS = Object.freeze({
14
+ /**
15
+ * Every edge is written as directed, so an undirected graph, or the undirected edges of a mixed graph, read back
16
+ * as directed.
17
+ */
18
+ UNDIRECTED_AS_DIRECTED: "W_CX_UNDIRECTED_AS_DIRECTED",
19
+ /** A nested (json) column is written as a string attribute holding its JSON text. */
20
+ JSON_AS_STRING: "W_CX_JSON_AS_STRING",
21
+ /** A mutual pair is written as two directed edges without its mark. */
22
+ MUTUAL_EXPANDED: LOSS.MUTUAL_EXPANDED,
23
+ /**
24
+ * An attribute named `weight` without the weight role reads back as the edge weight, or is not written when the
25
+ * graph has weights of its own.
26
+ */
27
+ WEIGHT_KEY_CLASH: LOSS.WEIGHT_KEY_CLASH,
28
+ /** A start / end / timestamp column: CX has no time. */
29
+ TEMPORAL_DROPPED: LOSS.TEMPORAL,
30
+ /** An attribute with a role the format has no place for is written as a plain attribute; the role is lost. */
31
+ ROLE_DROPPED: LOSS.ROLE,
32
+ /**
33
+ * An attribute without a role is written where the format keeps a role (for example, a `name` column as the label), and
34
+ * reads back with that role.
35
+ */
36
+ ROLE_ASSUMED: LOSS.ROLE_ASSUMED,
37
+ /**
38
+ * An attribute type CX stores as another (a 32-bit float as double, an unsigned integer as long, a byte as
39
+ * integer, a dictionary as string); it reads back with that type.
40
+ */
41
+ DTYPE_UNSUPPORTED: LOSS.DTYPE,
42
+ /** A multi-component column (a second view's `position@2`, a vector) is written as a list of doubles. */
43
+ COMPONENTS_FLATTENED: LOSS.COMPONENTS,
44
+ /** A declared default: CX has none. */
45
+ DEFAULT_DROPPED: LOSS.DEFAULT,
46
+ /** Declared options: CX has no enumerations. */
47
+ OPTIONS_DROPPED: LOSS.OPTIONS,
48
+ /**
49
+ * Node ids the format cannot write, under `sanitizeIds: "error"`; the save fails with E_INVALID_ID. Pass
50
+ * `sanitizeIds: "mangle"` to rewrite them.
51
+ */
52
+ ID_CHARSET: LOSS.ID_CHARSET,
53
+ /** Node ids that are not integers under sanitizeIds "mangle": renumbered, originals kept. */
54
+ ID_MANGLED: LOSS.ID_MANGLED,
55
+ /** Edges without a usable integer id get generated ids. */
56
+ EDGE_IDS_GENERATED: LOSS.EDGE_IDS_GENERATED,
57
+ /**
58
+ * An attribute with a role (for example, the label) is written where the format keeps that role, and reads back under the
59
+ * name the format's importer gives it.
60
+ */
61
+ COLUMN_NAME_CHANGED: LOSS.COLUMN_NAME_CHANGED,
62
+ /** An extension table other than the `cx:citations` / `cx:supports` tables a CX import creates. */
63
+ EXTENSION_TABLE_DROPPED: LOSS.EXTENSION_TABLE,
64
+ /** A position, stacking order or weight that is NaN or infinite: CX spells no such number there. */
65
+ NONFINITE_AS_NULL: LOSS.NONFINITE_AS_NULL,
66
+ /** Visual columns (color, size, shape, thickness roles): CX keeps style as visual properties, not roles. */
67
+ VIZ_DROPPED: LOSS.VIZ
68
+ });
69
+ const CX_CAPABILITIES = capabilities({
70
+ mixedDirection: false,
71
+ multiEdges: true,
72
+ selfLoops: true,
73
+ edgeIds: "required",
74
+ idCharset: "integer",
75
+ dtypes: ["string", "f64", "i32", "bool"],
76
+ components: false,
77
+ lists: true,
78
+ json: false,
79
+ defaults: false,
80
+ options: false,
81
+ hierarchy: true,
82
+ temporal: "none",
83
+ graphAttributes: true,
84
+ positions: true,
85
+ viz: false
86
+ });
87
+ const SLOT_ROLES = /* @__PURE__ */ new Set(["label", "position", "id"]);
88
+ const ROLE_NAMES = Object.freeze({
89
+ label: "name",
90
+ position: POSITION_COLUMN,
91
+ id: "id",
92
+ parent: "parent"
93
+ });
94
+ const SKIPPED_ROLES = /* @__PURE__ */ new Set([
95
+ "directed",
96
+ "pair",
97
+ "mutual",
98
+ "weight",
99
+ "timeText",
100
+ "originalId",
101
+ "parent",
102
+ "parents",
103
+ "start",
104
+ "end",
105
+ "timestamp",
106
+ "timestamps",
107
+ "spells",
108
+ "open",
109
+ "spellsOpen",
110
+ "position",
111
+ "color",
112
+ "size",
113
+ "shape",
114
+ "thickness",
115
+ "id"
116
+ ]);
117
+ const BYPASS_NAMESPACE = "cx.bypass";
118
+ const PROVENANCE_TABLES = Object.freeze({
119
+ "cx:citations": "citations",
120
+ "cx:supports": "supports"
121
+ });
122
+ const NEVER_WRITTEN = /* @__PURE__ */ new Set([
123
+ "nodes",
124
+ "edges",
125
+ "nodeAttributes",
126
+ "edgeAttributes",
127
+ "networkAttributes",
128
+ "cartesianLayout",
129
+ "cyGroups",
130
+ "cyVisualProperties",
131
+ "cyTableColumn",
132
+ "cySubNetworks",
133
+ "cyNetworkRelations",
134
+ "cyViews",
135
+ "CX Element ID",
136
+ "citations",
137
+ "supports",
138
+ "nodeCitations",
139
+ "edgeCitations",
140
+ "nodeSupports",
141
+ "edgeSupports",
142
+ "functionTerms",
143
+ "reifiedEdges",
144
+ "numberVerification",
145
+ "metaData",
146
+ "status",
147
+ "groups",
148
+ "subnetwork",
149
+ STYLE_BLOCK_NAME
150
+ ]);
151
+ const WEIGHT_ATTRIBUTE = "weight";
152
+ const NUMERIC_DTYPES = /* @__PURE__ */ new Set(["f32", "f64", "i32", "u32", "u8"]);
153
+ function fromCx(column, namespace) {
154
+ return column.meta.origin?.format === CX_FORMAT && column.meta.origin.namespace === namespace;
155
+ }
156
+ function isBypass(column) {
157
+ return column.meta.origin?.namespace === BYPASS_NAMESPACE;
158
+ }
159
+ function isZ(column) {
160
+ return column.meta.extra.cytoscape === "z";
161
+ }
162
+ function isLink(column) {
163
+ return fromCx(column, "provenance") && column.meta.dtype === "list" && (column.meta.name === "citations" || column.meta.name === "supports");
164
+ }
165
+ function coreNeedsText(column) {
166
+ const { dtype } = column.meta;
167
+ return dtype !== "string" && dtype !== "dict" && dtype !== "json";
168
+ }
169
+ function genericNotes(snapshot, common, several, own, notes, note) {
170
+ let fatal = null;
171
+ const edgeLabel = snapshot.edges.byRole("label")?.meta.name;
172
+ const ownNames = new Set(own.filter((c) => c !== null).map((c) => c.meta.name));
173
+ for (const gen of checkCapabilities(snapshot, CX_CAPABILITIES, common, {
174
+ roles: SLOT_ROLES,
175
+ // a parents column reads back as parents only when some node has several parents
176
+ roleNames: several ? { ...ROLE_NAMES, parents: "parents" } : ROLE_NAMES
177
+ })) {
178
+ if (writtenOtherwise(gen, ownNames)) {
179
+ continue;
180
+ }
181
+ if (gen.code === LOSS.JSON) {
182
+ const which = gen.column === null ? "a column" : `column "${gen.column}"`;
183
+ note(
184
+ CX_LOSS.JSON_AS_STRING,
185
+ `${which} holds nested values; written as a string attribute holding their JSON text`,
186
+ gen.column,
187
+ gen.count
188
+ );
189
+ continue;
190
+ }
191
+ if (isEdgeLabelRename(gen, edgeLabel)) {
192
+ note(
193
+ LOSS.ROLE,
194
+ `edge column "${edgeLabel ?? ""}" (label) is written as a plain attribute; CX edges have no label slot and the role is lost`,
195
+ gen.column,
196
+ gen.count
197
+ );
198
+ continue;
199
+ }
200
+ if (gen.code === LOSS.MIXED_DIRECTION_ERROR && fatal === null) {
201
+ fatal = new GraphFormatError("E_DIRECTED", gen.message, { reason: "mixed direction" });
202
+ }
203
+ notes.push(gen);
204
+ }
205
+ if (edgeLabel === "name") {
206
+ note(
207
+ LOSS.ROLE,
208
+ `edge column "name" (label) is written as a plain attribute; CX edges have no label slot and the role is lost`,
209
+ "name",
210
+ null
211
+ );
212
+ }
213
+ return fatal;
214
+ }
215
+ function writtenOtherwise(gen, ownNames) {
216
+ if (gen.column !== null && ownNames.has(gen.column) && (gen.code === LOSS.JSON || gen.code === LOSS.DTYPE)) {
217
+ return true;
218
+ }
219
+ if (gen.code === LOSS.ID_CHARSET || gen.code === LOSS.ID_MANGLED) {
220
+ return true;
221
+ }
222
+ return gen.code === LOSS.EXTENSION_TABLE && gen.column !== null && gen.column in PROVENANCE_TABLES;
223
+ }
224
+ function isEdgeLabelRename(gen, edgeLabel) {
225
+ return gen.code === LOSS.COLUMN_NAME_CHANGED && gen.column === edgeLabel && gen.message.startsWith("edge column");
226
+ }
227
+ function planPositions(snapshot, note) {
228
+ const position = snapshot.nodes.byRole("position");
229
+ const zColumn = [...snapshot.nodes].find(isZ) ?? null;
230
+ const z = zColumn !== null && zFitsLayout(zColumn, position) ? zColumn : null;
231
+ if (position === null) {
232
+ return { position, z, positionZ: false, nonfinite: 0 };
233
+ }
234
+ let nonfinite = nonFiniteCells(position, (v) => [v[0], v[1]]);
235
+ const depth = nonFiniteCells(position, (v) => v[2] === 0 ? [] : [Number.NaN]);
236
+ const positionZ = zColumn === null && (position.meta.extra.sourceDims === 3 || depth > 0);
237
+ if (positionZ) {
238
+ nonfinite += nonFiniteCells(position, (v) => Number.isFinite(v[0]) && Number.isFinite(v[1]) ? [v[2]] : []);
239
+ note(
240
+ LOSS.COMPONENTS,
241
+ `node column "${position.meta.name}" (position) has a third coordinate; CX writes it as the layout's z, which reads back in the z column (a stacking order), not in the position`,
242
+ position.meta.name,
243
+ depth
244
+ );
245
+ }
246
+ return { position, z, positionZ, nonfinite };
247
+ }
248
+ function graphColumnNotes(snapshot, note) {
249
+ for (const c of snapshot.graph) {
250
+ const named = c.meta.name === "name" || c.meta.name === "description";
251
+ if (!isBypass(c) && named && (c.dtype === "string" || c.dtype === "dict")) {
252
+ note(
253
+ LOSS.ROLE_ASSUMED,
254
+ `graph column "${c.meta.name}" is written as the network attribute ${c.meta.name}, which reads back as the graph's ${c.meta.name}, not as a column`,
255
+ c.meta.name,
256
+ null
257
+ );
258
+ }
259
+ }
260
+ }
261
+ function plan(snapshot, common) {
262
+ const { notes, note } = noteList();
263
+ const functionTerm = [...snapshot.nodes].find((c) => fromCx(c, "provenance") && c.meta.name === "functionTerm") ?? null;
264
+ const reifiedEdge = [...snapshot.nodes].find((c) => fromCx(c, "reifiedEdges") && c.dtype === "u32") ?? null;
265
+ const children = childrenCsr(snapshot);
266
+ const several = children.column?.meta.role === "parents" && severalParents(children.column);
267
+ let fatal = genericNotes(snapshot, common, several, [functionTerm, reifiedEdge], notes, note);
268
+ const folding = pairFolding(snapshot);
269
+ directionNotes(snapshot, folding, common, CX_LOSS.UNDIRECTED_AS_DIRECTED, note);
270
+ const planned = planNodeIds(snapshot, common, "CX", ORIGINAL_ID_ATTRIBUTE, note);
271
+ const ids = planned instanceof GraphFormatError ? null : planned;
272
+ if (planned instanceof GraphFormatError) {
273
+ fatal ??= planned;
274
+ }
275
+ const edgeIds = planEdgeIds(snapshot, note, ids);
276
+ if (snapshot.nodes.has(ORIGINAL_ID_ATTRIBUTE)) {
277
+ note(
278
+ LOSS.ROLE_ASSUMED,
279
+ `node column "${ORIGINAL_ID_ATTRIBUTE}" is the importer's record of mangled ids: it reads back as the node ids unless restoreMangledIds is false`,
280
+ ORIGINAL_ID_ATTRIBUTE,
281
+ null
282
+ );
283
+ }
284
+ const positions = planPositions(snapshot, note);
285
+ const { position, z, positionZ } = positions;
286
+ let { nonfinite } = positions;
287
+ const collapsed = [...snapshot.nodes].find((c) => fromCx(c, "cyGroups") && c.dtype === "bool") ?? null;
288
+ const nodeCore = corePlans(snapshot, note);
289
+ const edgeCore = [];
290
+ const interaction = snapshot.edges.get("interaction");
291
+ if (interaction !== null && (interaction.meta.role === null || !SKIPPED_ROLES.has(interaction.meta.role))) {
292
+ edgeCore.push({ key: "i", column: interaction });
293
+ coreTextNote(interaction, "edge", note);
294
+ }
295
+ const coreColumns = new Set([...nodeCore, ...edgeCore].map((c) => c.column));
296
+ const special = (c) => coreColumns.has(c) || isBypass(c) || isLink(c) || c === z || c === collapsed || c === functionTerm || c === reifiedEdge || c.meta.role !== null && SKIPPED_ROLES.has(c.meta.role);
297
+ const label = snapshot.nodes.byRole("label");
298
+ const renamedName = label !== null && label.meta.name !== "name" ? snapshot.nodes.get("name") : null;
299
+ if (renamedName !== null) {
300
+ note(
301
+ LOSS.COLUMN_NAME_CHANGED,
302
+ `node column "name" is written as the attribute "name#2" and reads back as "name#2", because the label column "${label?.meta.name ?? ""}" is written as n and takes the name "name"`,
303
+ "name",
304
+ renamedName.length - renamedName.nullCount
305
+ );
306
+ }
307
+ const nodeAttrs = attributePlans(snapshot.nodes, special, (c) => c === renamedName ? "name#2" : c.meta.name);
308
+ const weight = planWeight(snapshot, folding, note);
309
+ const plainWeight = snapshot.edges.get(WEIGHT_ATTRIBUTE);
310
+ const edgeAttrs = attributePlans(
311
+ snapshot.edges,
312
+ (c) => special(c) || c === plainWeight && c.meta.role === null,
313
+ (c) => c.meta.name
314
+ );
315
+ nonfinite += weight.nonfinite;
316
+ graphColumnNotes(snapshot, note);
317
+ const graphAttrs = attributePlans(
318
+ snapshot.graph,
319
+ (c) => isBypass(c) || c.meta.name === STYLE_BLOCK_NAME,
320
+ (c) => c.meta.name
321
+ );
322
+ if (children.column !== null && children.column.meta.role === "parents" && !several) {
323
+ note(
324
+ LOSS.COLUMN_NAME_CHANGED,
325
+ `node column "${children.column.meta.name}" (parents) holds at most one parent per node; it reads back as the single-parent column "parent"`,
326
+ children.column.meta.name,
327
+ children.column.length - children.column.nullCount
328
+ );
329
+ }
330
+ if (nonfinite > 0) {
331
+ note(
332
+ LOSS.NONFINITE_AS_NULL,
333
+ `${nonfinite} NaN or infinite position${plural(nonfinite)}, stacking orders or weights cannot be written in CX; they read back unset`,
334
+ null,
335
+ nonfinite
336
+ );
337
+ }
338
+ return {
339
+ notes,
340
+ fatal,
341
+ ids,
342
+ folding,
343
+ edgeIds,
344
+ weight: weight.plan,
345
+ nodeCore,
346
+ edgeCore,
347
+ nodeAttrs,
348
+ edgeAttrs,
349
+ graphAttrs,
350
+ position,
351
+ positionZ,
352
+ z,
353
+ bypass: {
354
+ node: [...snapshot.nodes].filter(isBypass),
355
+ edge: [...snapshot.edges].filter(isBypass),
356
+ graph: [...snapshot.graph].filter(isBypass)
357
+ },
358
+ collapsed,
359
+ links: linkPlans(snapshot),
360
+ functionTerm,
361
+ reifiedEdge
362
+ };
363
+ }
364
+ function corePlans(snapshot, note) {
365
+ const out = [];
366
+ const label = snapshot.nodes.byRole("label");
367
+ const plainName = snapshot.nodes.get("name");
368
+ const n = label ?? (plainName !== null && plainName.meta.role === null ? plainName : null);
369
+ if (n !== null) {
370
+ out.push({ key: "n", column: n });
371
+ coreTextNote(n, "node", note);
372
+ if (n !== label) {
373
+ note(
374
+ LOSS.ROLE_ASSUMED,
375
+ `node column "name" is written as n and reads back as the label`,
376
+ "name",
377
+ n.length - n.nullCount
378
+ );
379
+ }
380
+ }
381
+ const represents = snapshot.nodes.get("represents");
382
+ if (represents !== null && represents !== n && (represents.meta.role === null || !SKIPPED_ROLES.has(represents.meta.role))) {
383
+ out.push({ key: "r", column: represents });
384
+ coreTextNote(represents, "node", note);
385
+ }
386
+ return out;
387
+ }
388
+ function coreTextNote(column, domain, note) {
389
+ if (coreNeedsText(column)) {
390
+ note(
391
+ LOSS.DTYPE,
392
+ `${domain} column "${column.meta.name}" is ${column.dtype}; CX writes it as text and it reads back as string`,
393
+ column.meta.name,
394
+ column.length - column.nullCount
395
+ );
396
+ }
397
+ }
398
+ function attributePlans(table, skip, rename) {
399
+ return [...table].filter((c) => !skip(c)).map((column) => ({ column, name: rename(column), d: declaredType(column) }));
400
+ }
401
+ function planWeight(snapshot, folding, note) {
402
+ const weights = explicitWeights(snapshot);
403
+ const plain = snapshot.edges.get(WEIGHT_ATTRIBUTE);
404
+ const clash = plain !== null && plain.meta.role === null;
405
+ let plan2 = null;
406
+ if (weights.weighted) {
407
+ plan2 = { value: (e) => weights.isExplicit(e) ? weights.value(e) : void 0 };
408
+ if (clash) {
409
+ note(
410
+ LOSS.WEIGHT_KEY_CLASH,
411
+ `edge column "${WEIGHT_ATTRIBUTE}" is not written: the explicit weights are written under that name`,
412
+ WEIGHT_ATTRIBUTE,
413
+ null
414
+ );
415
+ }
416
+ } else if (clash) {
417
+ const numeric = NUMERIC_DTYPES.has(plain.dtype);
418
+ note(
419
+ LOSS.WEIGHT_KEY_CLASH,
420
+ numeric ? `edge column "${WEIGHT_ATTRIBUTE}" is written as the weight attribute and reads back as the edge weight` : `edge column "${WEIGHT_ATTRIBUTE}" is ${plain.dtype}, and CX reads that attribute as the edge weight; it is not written`,
421
+ WEIGHT_ATTRIBUTE,
422
+ null
423
+ );
424
+ if (numeric) {
425
+ plan2 = { value: (e) => plain.isSet(e) ? plain.value(e) : void 0 };
426
+ }
427
+ }
428
+ return { plan: plan2, nonfinite: plan2 === null ? 0 : nanWeights(snapshot.edgeCount, plan2, folding) };
429
+ }
430
+ function nanWeights(edgeCount, plan2, folding) {
431
+ let nan = 0;
432
+ for (let e = 0; e < edgeCount; e++) {
433
+ const w = plan2.value(e);
434
+ if (!folding.folded(e) && w !== void 0 && Number.isNaN(w)) {
435
+ nan++;
436
+ }
437
+ }
438
+ return nan;
439
+ }
440
+ function zFitsLayout(z, position) {
441
+ for (let i = 0; i < z.length; i++) {
442
+ if (!z.isSet(i)) {
443
+ continue;
444
+ }
445
+ const value = z.value(i);
446
+ const point = position?.isSet(i) === true ? position.value(i) : null;
447
+ if (typeof value !== "number" || !Number.isFinite(value) || point === null || !Number.isFinite(point[0]) || !Number.isFinite(point[1])) {
448
+ return false;
449
+ }
450
+ }
451
+ return true;
452
+ }
453
+ function nonFiniteCells(column, pick) {
454
+ let count = 0;
455
+ for (let i = 0; i < column.length; i++) {
456
+ if (column.isSet(i) && pick(column.value(i)).some((v) => !Number.isFinite(v))) {
457
+ count++;
458
+ }
459
+ }
460
+ return count;
461
+ }
462
+ function severalParents(column) {
463
+ for (let i = 0; i < column.length; i++) {
464
+ if (column.isSet(i) && column.value(i).length > 1) {
465
+ return true;
466
+ }
467
+ }
468
+ return false;
469
+ }
470
+ function linkPlans(snapshot) {
471
+ const out = [];
472
+ for (const [domain, table] of [
473
+ ["node", snapshot.nodes],
474
+ ["edge", snapshot.edges]
475
+ ]) {
476
+ for (const column of table) {
477
+ if (isLink(column)) {
478
+ const key = column.meta.name;
479
+ out.push({ aspect: `${domain}${key === "citations" ? "Citations" : "Supports"}`, key, domain, column });
480
+ }
481
+ }
482
+ }
483
+ return out;
484
+ }
485
+ function scalarText(value) {
486
+ if (typeof value === "number") {
487
+ return Object.is(value, -0) ? "-0" : String(value);
488
+ }
489
+ if (typeof value === "string") {
490
+ return value;
491
+ }
492
+ return typeof value === "boolean" ? String(value) : JSON.stringify(value);
493
+ }
494
+ function cellValue(column, d, row) {
495
+ if (!column.isSet(row)) {
496
+ return void 0;
497
+ }
498
+ const value = column.value(row);
499
+ if (column.meta.dtype === "json") {
500
+ return JSON.stringify(value);
501
+ }
502
+ if (column.meta.dtype === "list" || column.meta.components > 1) {
503
+ const items = Array.from(value);
504
+ return d === "string" ? JSON.stringify(items) : items.map(scalarText);
505
+ }
506
+ return scalarText(value);
507
+ }
508
+ function coreText(column, row) {
509
+ if (!column.isSet(row)) {
510
+ return void 0;
511
+ }
512
+ const value = column.value(row);
513
+ if (column.meta.dtype === "json" || column.meta.dtype === "list" || column.meta.components > 1) {
514
+ return JSON.stringify(column.meta.dtype === "json" ? value : Array.from(value));
515
+ }
516
+ return scalarText(value);
517
+ }
518
+ function writtenEdges(snapshot, folding) {
519
+ const out = [];
520
+ for (let e = 0; e < snapshot.edgeCount; e++) {
521
+ if (!folding.folded(e)) {
522
+ out.push(e);
523
+ }
524
+ }
525
+ return out;
526
+ }
527
+ function aspects(snapshot, p, ids, styled) {
528
+ const { src, dst } = snapshot.edgeList();
529
+ const edges = writtenEdges(snapshot, p.folding);
530
+ const nodeRange = () => Array.from({ length: snapshot.nodeCount }, (_, i2) => i2);
531
+ const nodeCore = (key) => p.nodeCore.find((c) => c.key === key)?.column ?? null;
532
+ const n = nodeCore("n");
533
+ const r = nodeCore("r");
534
+ const i = p.edgeCore[0]?.column ?? null;
535
+ const kept = snapshot.meta.sourceFormat === CX_FORMAT && isRecord(snapshot.meta.extra.cx) ? snapshot.meta.extra.cx : {};
536
+ const out = [
537
+ {
538
+ name: "nodes",
539
+ idCounter: nextNodeId(ids, snapshot.nodeCount),
540
+ *elements() {
541
+ for (let row = 0; row < snapshot.nodeCount; row++) {
542
+ const element = { "@id": ids.idAt(row) };
543
+ const name = n === null ? void 0 : coreText(n, row);
544
+ const represents = r === null ? void 0 : coreText(r, row);
545
+ if (name !== void 0) {
546
+ element.n = name;
547
+ }
548
+ if (represents !== void 0) {
549
+ element.r = represents;
550
+ }
551
+ yield element;
552
+ }
553
+ }
554
+ },
555
+ {
556
+ name: "edges",
557
+ idCounter: edges.reduce((max, e) => Math.max(max, p.edgeIds[e] + 1), 0),
558
+ *elements() {
559
+ for (const e of edges) {
560
+ const element = {
561
+ "@id": p.edgeIds[e],
562
+ s: ids.idAt(src[e]),
563
+ t: ids.idAt(dst[e])
564
+ };
565
+ const interaction = i === null ? void 0 : coreText(i, e);
566
+ if (interaction !== void 0) {
567
+ element.i = interaction;
568
+ }
569
+ yield element;
570
+ }
571
+ }
572
+ },
573
+ {
574
+ name: "nodeAttributes",
575
+ *elements() {
576
+ for (const a of p.nodeAttrs) {
577
+ for (let row = 0; row < snapshot.nodeCount; row++) {
578
+ const v = cellValue(a.column, a.d, row);
579
+ if (v !== void 0) {
580
+ yield { po: ids.idAt(row), n: a.name, v, d: a.d };
581
+ }
582
+ }
583
+ }
584
+ for (let row = 0; row < snapshot.nodeCount; row++) {
585
+ if (ids.isChanged(row)) {
586
+ yield {
587
+ po: ids.idAt(row),
588
+ n: ORIGINAL_ID_ATTRIBUTE,
589
+ v: String(ids.originalAt(row)),
590
+ d: "string"
591
+ };
592
+ }
593
+ }
594
+ }
595
+ },
596
+ {
597
+ name: "edgeAttributes",
598
+ *elements() {
599
+ for (const a of p.edgeAttrs) {
600
+ for (const e of edges) {
601
+ const v = cellValue(a.column, a.d, e);
602
+ if (v !== void 0) {
603
+ yield { po: p.edgeIds[e], n: a.name, v, d: a.d };
604
+ }
605
+ }
606
+ }
607
+ if (p.weight !== null) {
608
+ for (const e of edges) {
609
+ const w = p.weight.value(e);
610
+ if (w !== void 0 && !Number.isNaN(w)) {
611
+ yield { po: p.edgeIds[e], n: WEIGHT_ATTRIBUTE, v: scalarText(w), d: "double" };
612
+ }
613
+ }
614
+ }
615
+ }
616
+ },
617
+ {
618
+ name: "networkAttributes",
619
+ *elements() {
620
+ for (const a of p.graphAttrs) {
621
+ const v = cellValue(a.column, a.d, 0);
622
+ if (v !== void 0) {
623
+ yield { n: a.name, v, d: a.d };
624
+ }
625
+ }
626
+ const { meta } = snapshot;
627
+ for (const [key, value] of [
628
+ ["name", meta.name],
629
+ ["description", meta.description]
630
+ ]) {
631
+ if (value !== null && !p.graphAttrs.some((a) => a.name === key)) {
632
+ yield { n: key, v: value, d: "string" };
633
+ }
634
+ }
635
+ }
636
+ },
637
+ { name: "cyTableColumn", elements: () => tableColumns(p, ids) },
638
+ { name: "cartesianLayout", elements: () => layoutElements(p, ids, nodeRange()) },
639
+ { name: "cyGroups", elements: () => groupElements(snapshot, p, ids, edges) },
640
+ {
641
+ name: "cyVisualProperties",
642
+ elements: () => styled === null ? visualProperties(p, ids, nodeRange(), edges, kept) : styledVisualProperties(styled, ids, p.edgeIds, edges)
643
+ }
644
+ ];
645
+ const block = snapshotBlock(snapshot);
646
+ if (block !== null) {
647
+ out.push({ name: STYLE_BLOCK_NAME, elements: () => blockAspect(block) });
648
+ }
649
+ out.push(...provenanceAspects(snapshot, p, ids, edges));
650
+ for (const [name, value] of Object.entries(kept)) {
651
+ if (!NEVER_WRITTEN.has(name) && Array.isArray(value)) {
652
+ out.push({ name, elements: () => keptElements(value, kept.subnetwork, STYLE_ASPECTS.has(name)) });
653
+ }
654
+ }
655
+ return out;
656
+ }
657
+ function* tableColumns(p, ids) {
658
+ for (const { key, column } of [...p.nodeCore, ...p.edgeCore]) {
659
+ const n = { n: "name", r: "represents", i: "interaction" }[key];
660
+ if (n !== void 0 && column !== null) {
661
+ yield { applies_to: key === "i" ? "edge_table" : "node_table", n, d: "string" };
662
+ }
663
+ }
664
+ for (const a of p.nodeAttrs) {
665
+ yield { applies_to: "node_table", n: a.name, d: a.d };
666
+ }
667
+ if (ids.changed > 0) {
668
+ yield { applies_to: "node_table", n: ORIGINAL_ID_ATTRIBUTE, d: "string" };
669
+ }
670
+ for (const a of p.edgeAttrs) {
671
+ yield { applies_to: "edge_table", n: a.name, d: a.d };
672
+ }
673
+ if (p.weight !== null) {
674
+ yield { applies_to: "edge_table", n: WEIGHT_ATTRIBUTE, d: "double" };
675
+ }
676
+ for (const a of p.graphAttrs) {
677
+ yield { applies_to: "network_table", n: a.name, d: a.d };
678
+ }
679
+ }
680
+ const STYLE_ASPECTS = /* @__PURE__ */ new Set(["tableVisualProperties", "cyTableVisualProperties"]);
681
+ function* keptElements(elements, subnetwork, style) {
682
+ for (const element of elements) {
683
+ if (!isRecord(element)) {
684
+ yield element;
685
+ continue;
686
+ }
687
+ if (element.s !== void 0 && element.s !== null && element.s !== subnetwork) {
688
+ continue;
689
+ }
690
+ const { s: _scope, ...rest } = element;
691
+ yield style ? rewriteView(rest) : rest;
692
+ }
693
+ }
694
+ function rewriteView(element) {
695
+ const out = { ...element };
696
+ if ("view" in out) {
697
+ out.view = 0;
698
+ }
699
+ if (typeof out.applies_to === "number") {
700
+ out.applies_to = 0;
701
+ }
702
+ return out;
703
+ }
704
+ function* layoutElements(p, ids, rows) {
705
+ const { position } = p;
706
+ if (position === null) {
707
+ return;
708
+ }
709
+ for (const row of rows) {
710
+ if (!position.isSet(row)) {
711
+ continue;
712
+ }
713
+ const point = position.value(row);
714
+ if (!Number.isFinite(point[0]) || !Number.isFinite(point[1])) {
715
+ continue;
716
+ }
717
+ const entry = { node: ids.idAt(row), x: point[0], y: point[1] === 0 ? 0 : -point[1] };
718
+ if (p.z?.isSet(row) === true) {
719
+ entry.z = p.z.value(row);
720
+ } else if (p.positionZ && Number.isFinite(point[2])) {
721
+ entry.z = point[2];
722
+ }
723
+ yield entry;
724
+ }
725
+ }
726
+ function* groupElements(snapshot, p, ids, edges) {
727
+ const children = childrenCsr(snapshot);
728
+ const groupsOf = /* @__PURE__ */ new Map();
729
+ const groups = [];
730
+ for (let g = 0; g < snapshot.nodeCount; g++) {
731
+ const members = children.childrenOf(g);
732
+ if (members.length > 0 || p.collapsed?.isSet(g) === true) {
733
+ groups.push(g);
734
+ }
735
+ for (const c of members) {
736
+ groupsOf.set(c, [...groupsOf.get(c) ?? [], g]);
737
+ }
738
+ }
739
+ if (groups.length === 0) {
740
+ return;
741
+ }
742
+ const { internal, external } = groupEdges(snapshot, p, groupsOf, edges);
743
+ const label = p.nodeCore.find((c) => c.key === "n")?.column ?? null;
744
+ for (const g of groups) {
745
+ const entry = { "@id": ids.idAt(g) };
746
+ const name = label === null ? void 0 : coreText(label, g);
747
+ if (name !== void 0) {
748
+ entry.n = name;
749
+ }
750
+ entry.nodes = Array.from(children.childrenOf(g), (c) => ids.idAt(c));
751
+ entry.internal_edges = internal.get(g) ?? [];
752
+ entry.external_edges = external.get(g) ?? [];
753
+ if (p.collapsed?.isSet(g) === true) {
754
+ entry.collapsed = p.collapsed.value(g);
755
+ }
756
+ yield entry;
757
+ }
758
+ }
759
+ function groupEdges(snapshot, p, groupsOf, edges) {
760
+ const internal = /* @__PURE__ */ new Map();
761
+ const external = /* @__PURE__ */ new Map();
762
+ const add = (table, g, id) => {
763
+ table.set(g, [...table.get(g) ?? [], id]);
764
+ };
765
+ const { src, dst } = snapshot.edgeList();
766
+ for (const e of edges) {
767
+ const ofSource = groupsOf.get(src[e]) ?? [];
768
+ const ofTarget = groupsOf.get(dst[e]) ?? [];
769
+ for (const g of ofSource) {
770
+ add(ofTarget.includes(g) ? internal : external, g, p.edgeIds[e]);
771
+ }
772
+ for (const g of ofTarget.filter((t) => !ofSource.includes(t))) {
773
+ add(external, g, p.edgeIds[e]);
774
+ }
775
+ }
776
+ return { internal, external };
777
+ }
778
+ function bypassValues(columns, row) {
779
+ let out = null;
780
+ for (const column of columns) {
781
+ if (column.isSet(row)) {
782
+ const property = column.meta.origin?.id;
783
+ out ??= {};
784
+ out[typeof property === "string" && property.length > 0 ? property : column.meta.name] = scalarText(
785
+ column.value(row)
786
+ );
787
+ }
788
+ }
789
+ return out;
790
+ }
791
+ function* visualProperties(p, ids, rows, edges, kept) {
792
+ const network = bypassValues(p.bypass.graph, 0);
793
+ if (network !== null) {
794
+ yield { properties_of: "network", properties: network };
795
+ }
796
+ const view = ownView(kept);
797
+ for (const entry of Array.isArray(kept.cyVisualProperties) ? kept.cyVisualProperties : []) {
798
+ if (isRecord(entry) && !["nodes", "edges", "network"].includes(String(entry.properties_of)) && (view === null || entry.view === void 0 || entry.view === null || entry.view === view)) {
799
+ yield rewriteView(entry);
800
+ }
801
+ }
802
+ for (const row of rows) {
803
+ const properties = bypassValues(p.bypass.node, row);
804
+ if (properties !== null) {
805
+ yield { properties_of: "nodes", applies_to: ids.idAt(row), properties };
806
+ }
807
+ }
808
+ for (const e of edges) {
809
+ const properties = bypassValues(p.bypass.edge, e);
810
+ if (properties !== null) {
811
+ yield { properties_of: "edges", applies_to: p.edgeIds[e], properties };
812
+ }
813
+ }
814
+ }
815
+ function* styledVisualProperties(styled, ids, edgeIds, edges) {
816
+ yield* cytoscapeCxAspect(styled.style);
817
+ const text = (m) => Object.fromEntries([...m].map(([k, v]) => [k, String(v)]));
818
+ for (let row = 0; row < styled.bypasses.node.length; row++) {
819
+ const m = styled.bypasses.node[row];
820
+ if (m !== null && m.size > 0) {
821
+ yield { properties_of: "nodes", applies_to: ids.idAt(row), properties: text(m) };
822
+ }
823
+ }
824
+ for (const e of edges) {
825
+ const m = styled.bypasses.edge[e];
826
+ if (m !== null && m.size > 0) {
827
+ yield { properties_of: "edges", applies_to: edgeIds[e], properties: text(m) };
828
+ }
829
+ }
830
+ }
831
+ function ownView(kept) {
832
+ const sub = kept.subnetwork;
833
+ for (const r of Array.isArray(kept.cyNetworkRelations) ? kept.cyNetworkRelations : []) {
834
+ if (isRecord(r) && r.r === "view" && (sub === void 0 || r.p === sub)) {
835
+ return r.c;
836
+ }
837
+ }
838
+ for (const v of Array.isArray(kept.cyViews) ? kept.cyViews : []) {
839
+ if (isRecord(v) && (sub === void 0 || v.s === sub)) {
840
+ return v["@id"];
841
+ }
842
+ }
843
+ return null;
844
+ }
845
+ function provenanceAspects(snapshot, p, ids, edges) {
846
+ const out = [];
847
+ for (const [table, aspect] of Object.entries(PROVENANCE_TABLES)) {
848
+ const ext = snapshot.extensions.get(table);
849
+ if (ext === void 0) {
850
+ continue;
851
+ }
852
+ const idColumn = ext.get("id");
853
+ const fields = [...ext].filter((c) => c !== idColumn);
854
+ let max = -1;
855
+ for (let row = 0; row < ext.rowCount; row++) {
856
+ if (idColumn?.isSet(row) === true) {
857
+ max = Math.max(max, Number(idColumn.value(row)));
858
+ }
859
+ }
860
+ out.push({
861
+ name: aspect,
862
+ idCounter: max + 1,
863
+ *elements() {
864
+ for (let row = 0; row < ext.rowCount; row++) {
865
+ const element = {};
866
+ if (idColumn?.isSet(row) === true) {
867
+ element["@id"] = idColumn.value(row);
868
+ }
869
+ for (const field of fields) {
870
+ if (field.isSet(row)) {
871
+ element[field.meta.name] = field.value(row);
872
+ }
873
+ }
874
+ yield element;
875
+ }
876
+ }
877
+ });
878
+ }
879
+ for (const link of p.links) {
880
+ out.push({
881
+ name: link.aspect,
882
+ *elements() {
883
+ const rows = link.domain === "node" ? Array.from({ length: snapshot.nodeCount }, (_, i) => i) : edges;
884
+ for (const row of rows) {
885
+ if (link.column.isSet(row)) {
886
+ const po = link.domain === "node" ? ids.idAt(row) : p.edgeIds[row];
887
+ yield { po: [po], [link.key]: Array.from(link.column.value(row)) };
888
+ }
889
+ }
890
+ }
891
+ });
892
+ }
893
+ const terms = p.functionTerm;
894
+ if (terms !== null) {
895
+ out.push({
896
+ name: "functionTerms",
897
+ *elements() {
898
+ for (let row = 0; row < snapshot.nodeCount; row++) {
899
+ const term = terms.isSet(row) ? terms.value(row) : null;
900
+ if (isRecord(term)) {
901
+ yield { po: ids.idAt(row), ...term };
902
+ }
903
+ }
904
+ }
905
+ });
906
+ }
907
+ const reified = p.reifiedEdge;
908
+ if (reified !== null) {
909
+ out.push({
910
+ name: "reifiedEdges",
911
+ *elements() {
912
+ for (let row = 0; row < snapshot.nodeCount; row++) {
913
+ const edge = reified.isSet(row) ? reified.value(row) : -1;
914
+ if (edge >= 0 && edge < snapshot.edgeCount) {
915
+ yield { node: ids.idAt(row), edge: p.edgeIds[edge] };
916
+ }
917
+ }
918
+ }
919
+ });
920
+ }
921
+ return out;
922
+ }
923
+ function* write(snapshot, p, styled = null) {
924
+ if (p.fatal !== null) {
925
+ throw p.fatal;
926
+ }
927
+ const { ids } = p;
928
+ if (ids === null) {
929
+ throw new GraphFormatError("E_INVALID_ID", "node ids cannot be written as CX integers", { reason: "charset" });
930
+ }
931
+ const all = aspects(snapshot, p, ids, styled);
932
+ const written2 = [];
933
+ for (const aspect of all) {
934
+ let count = 0;
935
+ for (const _ of aspect.elements()) {
936
+ count++;
937
+ }
938
+ if (count > 0 || aspect.name === "nodes") {
939
+ written2.push({ aspect, count });
940
+ }
941
+ }
942
+ const metaData = written2.map(({ aspect, count }) => ({
943
+ name: aspect.name,
944
+ version: "1.0",
945
+ ...aspect.idCounter === void 0 ? {} : { idCounter: aspect.idCounter },
946
+ elementCount: count,
947
+ consistencyGroup: 1
948
+ }));
949
+ yield '[{"numberVerification":[{"longNumber":281474976710655}]},\n';
950
+ yield `{"metaData":${stringify(metaData)}},
951
+ `;
952
+ for (const { aspect } of written2) {
953
+ yield* aspectBlock(aspect.name, mapIterable(aspect.elements(), stringify));
954
+ }
955
+ yield '{"status":[{"error":"","success":true}]}]\n';
956
+ }
957
+ function* mapIterable(items, fn) {
958
+ for (const item of items) {
959
+ yield fn(item);
960
+ }
961
+ }
962
+ const cxExporter = Object.freeze({
963
+ format: CX_FORMAT,
964
+ options: Object.freeze([]),
965
+ capabilities: CX_CAPABILITIES,
966
+ styles: Object.freeze({ capabilities: CX_STYLE_CAPABILITIES }),
967
+ /**
968
+ * Pre-flight: what export() would lose, without writing anything.
969
+ * @param snapshot - the snapshot
970
+ * @param options - the common options
971
+ * @returns the notes, empty when the export is exact
972
+ */
973
+ check(snapshot, options) {
974
+ const styled = cytoscapeStyledExport(snapshot, options?.styles, "desktop");
975
+ return Object.freeze([
976
+ ...plan(styled?.snapshot ?? snapshot, resolveExportOptions(options)).notes,
977
+ ...styled?.notes ?? []
978
+ ]);
979
+ },
980
+ /**
981
+ * Write the document as UTF-8 chunks.
982
+ * @param snapshot - the snapshot
983
+ * @param options - the common options
984
+ * @returns the chunks
985
+ */
986
+ export(snapshot, options) {
987
+ return encodeChunks(written(snapshot, options));
988
+ },
989
+ /**
990
+ * Write the document as one string.
991
+ * @param snapshot - the snapshot
992
+ * @param options - the common options
993
+ * @returns the document
994
+ */
995
+ exportToString(snapshot, options) {
996
+ return joinText(written(snapshot, options));
997
+ }
998
+ });
999
+ function written(snapshot, options) {
1000
+ const styled = cytoscapeStyledExport(snapshot, options?.styles, "desktop");
1001
+ const target = styled?.snapshot ?? snapshot;
1002
+ return write(target, plan(target, resolveExportOptions(options)), styled?.styled ?? null);
1003
+ }
1004
+ export {
1005
+ CX_CAPABILITIES as C,
1006
+ CX_LOSS as a,
1007
+ cxExporter as c
1008
+ };
1009
+ //# sourceMappingURL=exporter-_jrBTnos.js.map