@graphty/graph-io 0.3.25 → 0.3.26

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 (581) hide show
  1. package/README.md +49 -414
  2. package/dist/chunks/children-CL3Cy0ez.js.map +1 -1
  3. package/dist/chunks/choose-BbJI55dx.js +56 -0
  4. package/dist/chunks/choose-BbJI55dx.js.map +1 -0
  5. package/dist/chunks/constants-BCsFsMj4.js +231 -0
  6. package/dist/chunks/constants-BCsFsMj4.js.map +1 -0
  7. package/dist/chunks/{escape-B-tkk_Cl.js → escape-D0g6NNUy.js} +382 -92
  8. package/dist/chunks/escape-D0g6NNUy.js.map +1 -0
  9. package/dist/chunks/export-BTI4yQgy.js +4333 -0
  10. package/dist/chunks/export-BTI4yQgy.js.map +1 -0
  11. package/dist/chunks/exporter-BMqk5oxW.js +3465 -0
  12. package/dist/chunks/exporter-BMqk5oxW.js.map +1 -0
  13. package/dist/chunks/{importer-eUREhBGj.js → exporter-Cra2GYcN.js} +4969 -3201
  14. package/dist/chunks/exporter-Cra2GYcN.js.map +1 -0
  15. package/dist/chunks/{exporter-BGrsWamJ.js → exporter-Dxh231ZF.js} +38 -229
  16. package/dist/chunks/exporter-Dxh231ZF.js.map +1 -0
  17. package/dist/chunks/{exporter-DIeGJXAZ.js → exporter-tne475KK.js} +22 -20
  18. package/dist/chunks/exporter-tne475KK.js.map +1 -0
  19. package/dist/chunks/importer-90YWhJoF.js +2811 -0
  20. package/dist/chunks/importer-90YWhJoF.js.map +1 -0
  21. package/dist/chunks/{importer-D_e7e7LX.js → importer-Bcl1d4xH.js} +398 -145
  22. package/dist/chunks/importer-Bcl1d4xH.js.map +1 -0
  23. package/dist/chunks/{importer-BWY2FFc5.js → importer-BfIsp1f9.js} +255 -77
  24. package/dist/chunks/importer-BfIsp1f9.js.map +1 -0
  25. package/dist/chunks/{importer-zGLo8Dg_.js → importer-C_TEA1zJ.js} +484 -157
  26. package/dist/chunks/importer-C_TEA1zJ.js.map +1 -0
  27. package/dist/chunks/{importer-DET1tg6s.js → importer-DCjOvO7U.js} +1687 -310
  28. package/dist/chunks/importer-DCjOvO7U.js.map +1 -0
  29. package/dist/chunks/{importer-vi3bSdtw.js → importer-DfVu6j59.js} +509 -76
  30. package/dist/chunks/importer-DfVu6j59.js.map +1 -0
  31. package/dist/chunks/{importer-DIrbbnAf.js → importer-Dku_VAIY.js} +585 -226
  32. package/dist/chunks/importer-Dku_VAIY.js.map +1 -0
  33. package/dist/chunks/json-elements-3tnyt5uZ.js +1225 -0
  34. package/dist/chunks/json-elements-3tnyt5uZ.js.map +1 -0
  35. package/dist/chunks/ontology-export-B9Tcf37D.js +357 -0
  36. package/dist/chunks/ontology-export-B9Tcf37D.js.map +1 -0
  37. package/dist/chunks/{records-dbRkxwaq.js → records-CQXT__mY.js} +298 -114
  38. package/dist/chunks/records-CQXT__mY.js.map +1 -0
  39. package/dist/chunks/{text-Dr0Ifpag.js → text-DmcUs5_Q.js} +29 -11
  40. package/dist/chunks/text-DmcUs5_Q.js.map +1 -0
  41. package/dist/chunks/{writer-C7flM-Ih.js → writer-DxjgHwSe.js} +19 -1
  42. package/dist/chunks/writer-DxjgHwSe.js.map +1 -0
  43. package/dist/csv.js +951 -261
  44. package/dist/csv.js.map +1 -1
  45. package/dist/cx.js +6 -3
  46. package/dist/cx2.js +2 -2
  47. package/dist/cys.js +6 -3
  48. package/dist/dot.js +1 -1
  49. package/dist/gexf.js +554 -122
  50. package/dist/gexf.js.map +1 -1
  51. package/dist/gml.js +342 -85
  52. package/dist/gml.js.map +1 -1
  53. package/dist/graph-io.js +1105 -213
  54. package/dist/graph-io.js.map +1 -1
  55. package/dist/graphml.js +3 -2
  56. package/dist/graphml.js.map +1 -1
  57. package/dist/json.js +3 -2
  58. package/dist/neo4j.js +564 -157
  59. package/dist/neo4j.js.map +1 -1
  60. package/dist/obo.js +6 -3
  61. package/dist/pajek.js +1 -1
  62. package/dist/src/children.d.ts +18 -6
  63. package/dist/src/children.d.ts.map +1 -1
  64. package/dist/src/children.js +6 -3
  65. package/dist/src/children.js.map +1 -1
  66. package/dist/src/common/attributes.d.ts +29 -11
  67. package/dist/src/common/attributes.d.ts.map +1 -1
  68. package/dist/src/common/attributes.js +25 -7
  69. package/dist/src/common/attributes.js.map +1 -1
  70. package/dist/src/common/cell-budget.d.ts +9 -2
  71. package/dist/src/common/cell-budget.d.ts.map +1 -1
  72. package/dist/src/common/cell-budget.js +11 -3
  73. package/dist/src/common/cell-budget.js.map +1 -1
  74. package/dist/src/common/choose.d.ts +19 -0
  75. package/dist/src/common/choose.d.ts.map +1 -0
  76. package/dist/src/common/choose.js +72 -0
  77. package/dist/src/common/choose.js.map +1 -0
  78. package/dist/src/common/codes.d.ts +456 -66
  79. package/dist/src/common/codes.d.ts.map +1 -1
  80. package/dist/src/common/codes.js +458 -66
  81. package/dist/src/common/codes.js.map +1 -1
  82. package/dist/src/common/compare.d.ts +81 -0
  83. package/dist/src/common/compare.d.ts.map +1 -0
  84. package/dist/src/common/compare.js +394 -0
  85. package/dist/src/common/compare.js.map +1 -0
  86. package/dist/src/common/cx-export.d.ts +123 -0
  87. package/dist/src/common/cx-export.d.ts.map +1 -0
  88. package/dist/src/common/cx-export.js +334 -0
  89. package/dist/src/common/cx-export.js.map +1 -0
  90. package/dist/src/common/declared-types.d.ts +22 -2
  91. package/dist/src/common/declared-types.d.ts.map +1 -1
  92. package/dist/src/common/declared-types.js +19 -1
  93. package/dist/src/common/declared-types.js.map +1 -1
  94. package/dist/src/common/direction.d.ts +74 -50
  95. package/dist/src/common/direction.d.ts.map +1 -1
  96. package/dist/src/common/direction.js +47 -27
  97. package/dist/src/common/direction.js.map +1 -1
  98. package/dist/src/common/escape.d.ts +21 -9
  99. package/dist/src/common/escape.d.ts.map +1 -1
  100. package/dist/src/common/escape.js +33 -17
  101. package/dist/src/common/escape.js.map +1 -1
  102. package/dist/src/common/export.d.ts +144 -32
  103. package/dist/src/common/export.d.ts.map +1 -1
  104. package/dist/src/common/export.js +216 -42
  105. package/dist/src/common/export.js.map +1 -1
  106. package/dist/src/common/format.d.ts +23 -1
  107. package/dist/src/common/format.d.ts.map +1 -1
  108. package/dist/src/common/format.js +26 -1
  109. package/dist/src/common/format.js.map +1 -1
  110. package/dist/src/common/ids.d.ts +9 -2
  111. package/dist/src/common/ids.d.ts.map +1 -1
  112. package/dist/src/common/ids.js +6 -2
  113. package/dist/src/common/ids.js.map +1 -1
  114. package/dist/src/common/input.d.ts +122 -28
  115. package/dist/src/common/input.d.ts.map +1 -1
  116. package/dist/src/common/input.js +890 -124
  117. package/dist/src/common/input.js.map +1 -1
  118. package/dist/src/common/json-elements.d.ts +144 -20
  119. package/dist/src/common/json-elements.d.ts.map +1 -1
  120. package/dist/src/common/json-elements.js +868 -188
  121. package/dist/src/common/json-elements.js.map +1 -1
  122. package/dist/src/common/line-format.d.ts +90 -0
  123. package/dist/src/common/line-format.d.ts.map +1 -0
  124. package/dist/src/common/line-format.js +185 -0
  125. package/dist/src/common/line-format.js.map +1 -0
  126. package/dist/src/common/lists.d.ts +6 -1
  127. package/dist/src/common/lists.d.ts.map +1 -1
  128. package/dist/src/common/lists.js +2 -0
  129. package/dist/src/common/lists.js.map +1 -1
  130. package/dist/src/common/ontology-export.d.ts +167 -0
  131. package/dist/src/common/ontology-export.d.ts.map +1 -0
  132. package/dist/src/common/ontology-export.js +359 -0
  133. package/dist/src/common/ontology-export.js.map +1 -0
  134. package/dist/src/common/ontology.d.ts +25 -3
  135. package/dist/src/common/ontology.d.ts.map +1 -1
  136. package/dist/src/common/ontology.js +30 -9
  137. package/dist/src/common/ontology.js.map +1 -1
  138. package/dist/src/common/options.d.ts +62 -12
  139. package/dist/src/common/options.d.ts.map +1 -1
  140. package/dist/src/common/options.js +89 -11
  141. package/dist/src/common/options.js.map +1 -1
  142. package/dist/src/common/plural.d.ts +31 -0
  143. package/dist/src/common/plural.d.ts.map +1 -0
  144. package/dist/src/common/plural.js +46 -0
  145. package/dist/src/common/plural.js.map +1 -0
  146. package/dist/src/common/report.d.ts +72 -14
  147. package/dist/src/common/report.d.ts.map +1 -1
  148. package/dist/src/common/report.js +146 -22
  149. package/dist/src/common/report.js.map +1 -1
  150. package/dist/src/common/temporal.d.ts +22 -5
  151. package/dist/src/common/temporal.d.ts.map +1 -1
  152. package/dist/src/common/temporal.js +13 -2
  153. package/dist/src/common/temporal.js.map +1 -1
  154. package/dist/src/common/text.d.ts +39 -23
  155. package/dist/src/common/text.d.ts.map +1 -1
  156. package/dist/src/common/text.js +51 -21
  157. package/dist/src/common/text.js.map +1 -1
  158. package/dist/src/common/weights.d.ts +37 -4
  159. package/dist/src/common/weights.d.ts.map +1 -1
  160. package/dist/src/common/weights.js +61 -2
  161. package/dist/src/common/weights.js.map +1 -1
  162. package/dist/src/common/writer.d.ts +19 -3
  163. package/dist/src/common/writer.d.ts.map +1 -1
  164. package/dist/src/common/writer.js +30 -2
  165. package/dist/src/common/writer.js.map +1 -1
  166. package/dist/src/common/xml.d.ts +125 -9
  167. package/dist/src/common/xml.d.ts.map +1 -1
  168. package/dist/src/common/xml.js +400 -83
  169. package/dist/src/common/xml.js.map +1 -1
  170. package/dist/src/common/zip.d.ts +44 -4
  171. package/dist/src/common/zip.d.ts.map +1 -1
  172. package/dist/src/common/zip.js +134 -5
  173. package/dist/src/common/zip.js.map +1 -1
  174. package/dist/src/formats/csv/exporter.d.ts +80 -24
  175. package/dist/src/formats/csv/exporter.d.ts.map +1 -1
  176. package/dist/src/formats/csv/exporter.js +145 -32
  177. package/dist/src/formats/csv/exporter.js.map +1 -1
  178. package/dist/src/formats/csv/header.d.ts +38 -9
  179. package/dist/src/formats/csv/header.d.ts.map +1 -1
  180. package/dist/src/formats/csv/header.js +46 -10
  181. package/dist/src/formats/csv/header.js.map +1 -1
  182. package/dist/src/formats/csv/importer.d.ts +187 -37
  183. package/dist/src/formats/csv/importer.d.ts.map +1 -1
  184. package/dist/src/formats/csv/importer.js +835 -204
  185. package/dist/src/formats/csv/importer.js.map +1 -1
  186. package/dist/src/formats/csv/index.d.ts +100 -19
  187. package/dist/src/formats/csv/index.d.ts.map +1 -1
  188. package/dist/src/formats/csv/index.js +94 -21
  189. package/dist/src/formats/csv/index.js.map +1 -1
  190. package/dist/src/formats/csv/records.d.ts +95 -10
  191. package/dist/src/formats/csv/records.d.ts.map +1 -1
  192. package/dist/src/formats/csv/records.js +333 -122
  193. package/dist/src/formats/csv/records.js.map +1 -1
  194. package/dist/src/formats/csv/values.d.ts +1 -0
  195. package/dist/src/formats/csv/values.d.ts.map +1 -1
  196. package/dist/src/formats/csv/values.js +1 -0
  197. package/dist/src/formats/csv/values.js.map +1 -1
  198. package/dist/src/formats/cx/exporter.d.ts +102 -0
  199. package/dist/src/formats/cx/exporter.d.ts.map +1 -0
  200. package/dist/src/formats/cx/exporter.js +1217 -0
  201. package/dist/src/formats/cx/exporter.js.map +1 -0
  202. package/dist/src/formats/cx/importer.d.ts +79 -32
  203. package/dist/src/formats/cx/importer.d.ts.map +1 -1
  204. package/dist/src/formats/cx/importer.js +680 -285
  205. package/dist/src/formats/cx/importer.js.map +1 -1
  206. package/dist/src/formats/cx/index.d.ts +4 -3
  207. package/dist/src/formats/cx/index.d.ts.map +1 -1
  208. package/dist/src/formats/cx/index.js +4 -3
  209. package/dist/src/formats/cx/index.js.map +1 -1
  210. package/dist/src/formats/cx2/exporter.d.ts +29 -11
  211. package/dist/src/formats/cx2/exporter.d.ts.map +1 -1
  212. package/dist/src/formats/cx2/exporter.js +39 -268
  213. package/dist/src/formats/cx2/exporter.js.map +1 -1
  214. package/dist/src/formats/cx2/importer.d.ts +78 -28
  215. package/dist/src/formats/cx2/importer.d.ts.map +1 -1
  216. package/dist/src/formats/cx2/importer.js +226 -79
  217. package/dist/src/formats/cx2/importer.js.map +1 -1
  218. package/dist/src/formats/cx2/index.d.ts +2 -1
  219. package/dist/src/formats/cx2/index.d.ts.map +1 -1
  220. package/dist/src/formats/cx2/index.js +2 -1
  221. package/dist/src/formats/cx2/index.js.map +1 -1
  222. package/dist/src/formats/cys/constants.d.ts +66 -17
  223. package/dist/src/formats/cys/constants.d.ts.map +1 -1
  224. package/dist/src/formats/cys/constants.js +59 -18
  225. package/dist/src/formats/cys/constants.js.map +1 -1
  226. package/dist/src/formats/cys/exporter.d.ts +118 -0
  227. package/dist/src/formats/cys/exporter.d.ts.map +1 -0
  228. package/dist/src/formats/cys/exporter.js +1072 -0
  229. package/dist/src/formats/cys/exporter.js.map +1 -0
  230. package/dist/src/formats/cys/importer.d.ts +22 -8
  231. package/dist/src/formats/cys/importer.d.ts.map +1 -1
  232. package/dist/src/formats/cys/importer.js +510 -149
  233. package/dist/src/formats/cys/importer.js.map +1 -1
  234. package/dist/src/formats/cys/index.d.ts +4 -2
  235. package/dist/src/formats/cys/index.d.ts.map +1 -1
  236. package/dist/src/formats/cys/index.js +4 -2
  237. package/dist/src/formats/cys/index.js.map +1 -1
  238. package/dist/src/formats/cys/session.d.ts +46 -7
  239. package/dist/src/formats/cys/session.d.ts.map +1 -1
  240. package/dist/src/formats/cys/session.js +98 -24
  241. package/dist/src/formats/cys/session.js.map +1 -1
  242. package/dist/src/formats/cys/tables.d.ts +9 -2
  243. package/dist/src/formats/cys/tables.d.ts.map +1 -1
  244. package/dist/src/formats/cys/tables.js +29 -7
  245. package/dist/src/formats/cys/tables.js.map +1 -1
  246. package/dist/src/formats/dot/exporter.d.ts +42 -14
  247. package/dist/src/formats/dot/exporter.d.ts.map +1 -1
  248. package/dist/src/formats/dot/exporter.js +56 -29
  249. package/dist/src/formats/dot/exporter.js.map +1 -1
  250. package/dist/src/formats/dot/importer.d.ts +91 -29
  251. package/dist/src/formats/dot/importer.d.ts.map +1 -1
  252. package/dist/src/formats/dot/importer.js +190 -39
  253. package/dist/src/formats/dot/importer.js.map +1 -1
  254. package/dist/src/formats/dot/index.d.ts +2 -1
  255. package/dist/src/formats/dot/index.d.ts.map +1 -1
  256. package/dist/src/formats/dot/index.js +2 -1
  257. package/dist/src/formats/dot/index.js.map +1 -1
  258. package/dist/src/formats/dot/names.d.ts +44 -11
  259. package/dist/src/formats/dot/names.d.ts.map +1 -1
  260. package/dist/src/formats/dot/names.js +44 -11
  261. package/dist/src/formats/dot/names.js.map +1 -1
  262. package/dist/src/formats/dot/tokenizer.d.ts +9 -2
  263. package/dist/src/formats/dot/tokenizer.d.ts.map +1 -1
  264. package/dist/src/formats/dot/tokenizer.js +20 -5
  265. package/dist/src/formats/dot/tokenizer.js.map +1 -1
  266. package/dist/src/formats/gexf/exporter.d.ts +46 -15
  267. package/dist/src/formats/gexf/exporter.d.ts.map +1 -1
  268. package/dist/src/formats/gexf/exporter.js +45 -15
  269. package/dist/src/formats/gexf/exporter.js.map +1 -1
  270. package/dist/src/formats/gexf/importer.d.ts +87 -23
  271. package/dist/src/formats/gexf/importer.d.ts.map +1 -1
  272. package/dist/src/formats/gexf/importer.js +471 -90
  273. package/dist/src/formats/gexf/importer.js.map +1 -1
  274. package/dist/src/formats/gexf/index.d.ts +84 -21
  275. package/dist/src/formats/gexf/index.d.ts.map +1 -1
  276. package/dist/src/formats/gexf/index.js +80 -23
  277. package/dist/src/formats/gexf/index.js.map +1 -1
  278. package/dist/src/formats/gexf/schema.d.ts +67 -15
  279. package/dist/src/formats/gexf/schema.d.ts.map +1 -1
  280. package/dist/src/formats/gexf/schema.js +59 -13
  281. package/dist/src/formats/gexf/schema.js.map +1 -1
  282. package/dist/src/formats/gml/exporter.d.ts +69 -21
  283. package/dist/src/formats/gml/exporter.d.ts.map +1 -1
  284. package/dist/src/formats/gml/exporter.js +74 -29
  285. package/dist/src/formats/gml/exporter.js.map +1 -1
  286. package/dist/src/formats/gml/importer.d.ts +116 -25
  287. package/dist/src/formats/gml/importer.d.ts.map +1 -1
  288. package/dist/src/formats/gml/importer.js +290 -61
  289. package/dist/src/formats/gml/importer.js.map +1 -1
  290. package/dist/src/formats/gml/index.d.ts +87 -24
  291. package/dist/src/formats/gml/index.d.ts.map +1 -1
  292. package/dist/src/formats/gml/index.js +79 -26
  293. package/dist/src/formats/gml/index.js.map +1 -1
  294. package/dist/src/formats/gml/syntax.d.ts +67 -18
  295. package/dist/src/formats/gml/syntax.d.ts.map +1 -1
  296. package/dist/src/formats/gml/syntax.js +108 -26
  297. package/dist/src/formats/gml/syntax.js.map +1 -1
  298. package/dist/src/formats/graphml/constants.d.ts +174 -44
  299. package/dist/src/formats/graphml/constants.d.ts.map +1 -1
  300. package/dist/src/formats/graphml/constants.js +165 -44
  301. package/dist/src/formats/graphml/constants.js.map +1 -1
  302. package/dist/src/formats/graphml/exporter.d.ts +17 -9
  303. package/dist/src/formats/graphml/exporter.d.ts.map +1 -1
  304. package/dist/src/formats/graphml/exporter.js +33 -12
  305. package/dist/src/formats/graphml/exporter.js.map +1 -1
  306. package/dist/src/formats/graphml/importer.d.ts +19 -7
  307. package/dist/src/formats/graphml/importer.d.ts.map +1 -1
  308. package/dist/src/formats/graphml/importer.js +466 -39
  309. package/dist/src/formats/graphml/importer.js.map +1 -1
  310. package/dist/src/formats/graphml/index.d.ts +2 -1
  311. package/dist/src/formats/graphml/index.d.ts.map +1 -1
  312. package/dist/src/formats/graphml/index.js +2 -1
  313. package/dist/src/formats/graphml/index.js.map +1 -1
  314. package/dist/src/formats/graphml/tree.d.ts +6 -2
  315. package/dist/src/formats/graphml/tree.d.ts.map +1 -1
  316. package/dist/src/formats/graphml/tree.js +6 -2
  317. package/dist/src/formats/graphml/tree.js.map +1 -1
  318. package/dist/src/formats/graphml/yfiles.d.ts +8 -3
  319. package/dist/src/formats/graphml/yfiles.d.ts.map +1 -1
  320. package/dist/src/formats/graphml/yfiles.js +36 -15
  321. package/dist/src/formats/graphml/yfiles.js.map +1 -1
  322. package/dist/src/formats/json/dialect.d.ts +88 -24
  323. package/dist/src/formats/json/dialect.d.ts.map +1 -1
  324. package/dist/src/formats/json/dialect.js +109 -19
  325. package/dist/src/formats/json/dialect.js.map +1 -1
  326. package/dist/src/formats/json/exporter.d.ts +134 -22
  327. package/dist/src/formats/json/exporter.d.ts.map +1 -1
  328. package/dist/src/formats/json/exporter.js +135 -54
  329. package/dist/src/formats/json/exporter.js.map +1 -1
  330. package/dist/src/formats/json/importer.d.ts +173 -52
  331. package/dist/src/formats/json/importer.d.ts.map +1 -1
  332. package/dist/src/formats/json/importer.js +899 -220
  333. package/dist/src/formats/json/importer.js.map +1 -1
  334. package/dist/src/formats/json/index.d.ts +3 -2
  335. package/dist/src/formats/json/index.d.ts.map +1 -1
  336. package/dist/src/formats/json/index.js +3 -2
  337. package/dist/src/formats/json/index.js.map +1 -1
  338. package/dist/src/formats/json/obographs-export.d.ts +68 -0
  339. package/dist/src/formats/json/obographs-export.d.ts.map +1 -0
  340. package/dist/src/formats/json/obographs-export.js +941 -0
  341. package/dist/src/formats/json/obographs-export.js.map +1 -0
  342. package/dist/src/formats/json/obographs.d.ts +26 -0
  343. package/dist/src/formats/json/obographs.d.ts.map +1 -1
  344. package/dist/src/formats/json/obographs.js +297 -80
  345. package/dist/src/formats/json/obographs.js.map +1 -1
  346. package/dist/src/formats/neo4j/exporter.d.ts +109 -21
  347. package/dist/src/formats/neo4j/exporter.d.ts.map +1 -1
  348. package/dist/src/formats/neo4j/exporter.js +238 -85
  349. package/dist/src/formats/neo4j/exporter.js.map +1 -1
  350. package/dist/src/formats/neo4j/header.d.ts +17 -4
  351. package/dist/src/formats/neo4j/header.d.ts.map +1 -1
  352. package/dist/src/formats/neo4j/header.js +36 -4
  353. package/dist/src/formats/neo4j/header.js.map +1 -1
  354. package/dist/src/formats/neo4j/importer.d.ts +107 -27
  355. package/dist/src/formats/neo4j/importer.d.ts.map +1 -1
  356. package/dist/src/formats/neo4j/importer.js +415 -63
  357. package/dist/src/formats/neo4j/importer.js.map +1 -1
  358. package/dist/src/formats/neo4j/index.d.ts +73 -23
  359. package/dist/src/formats/neo4j/index.d.ts.map +1 -1
  360. package/dist/src/formats/neo4j/index.js +65 -25
  361. package/dist/src/formats/neo4j/index.js.map +1 -1
  362. package/dist/src/formats/obo/exporter.d.ts +150 -0
  363. package/dist/src/formats/obo/exporter.d.ts.map +1 -0
  364. package/dist/src/formats/obo/exporter.js +1736 -0
  365. package/dist/src/formats/obo/exporter.js.map +1 -0
  366. package/dist/src/formats/obo/importer.d.ts +95 -19
  367. package/dist/src/formats/obo/importer.d.ts.map +1 -1
  368. package/dist/src/formats/obo/importer.js +475 -104
  369. package/dist/src/formats/obo/importer.js.map +1 -1
  370. package/dist/src/formats/obo/index.d.ts +6 -3
  371. package/dist/src/formats/obo/index.d.ts.map +1 -1
  372. package/dist/src/formats/obo/index.js +6 -3
  373. package/dist/src/formats/obo/index.js.map +1 -1
  374. package/dist/src/formats/obo/syntax.d.ts +108 -4
  375. package/dist/src/formats/obo/syntax.d.ts.map +1 -1
  376. package/dist/src/formats/obo/syntax.js +211 -34
  377. package/dist/src/formats/obo/syntax.js.map +1 -1
  378. package/dist/src/formats/pajek/exporter.d.ts +54 -16
  379. package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
  380. package/dist/src/formats/pajek/exporter.js +66 -34
  381. package/dist/src/formats/pajek/exporter.js.map +1 -1
  382. package/dist/src/formats/pajek/importer.d.ts +84 -22
  383. package/dist/src/formats/pajek/importer.d.ts.map +1 -1
  384. package/dist/src/formats/pajek/importer.js +303 -83
  385. package/dist/src/formats/pajek/importer.js.map +1 -1
  386. package/dist/src/formats/pajek/index.d.ts +2 -1
  387. package/dist/src/formats/pajek/index.d.ts.map +1 -1
  388. package/dist/src/formats/pajek/index.js +2 -1
  389. package/dist/src/formats/pajek/index.js.map +1 -1
  390. package/dist/src/formats/pajek/syntax.d.ts +77 -14
  391. package/dist/src/formats/pajek/syntax.d.ts.map +1 -1
  392. package/dist/src/formats/pajek/syntax.js +183 -51
  393. package/dist/src/formats/pajek/syntax.js.map +1 -1
  394. package/dist/src/formats/xgmml/columns.d.ts +1 -0
  395. package/dist/src/formats/xgmml/columns.d.ts.map +1 -1
  396. package/dist/src/formats/xgmml/columns.js +4 -0
  397. package/dist/src/formats/xgmml/columns.js.map +1 -1
  398. package/dist/src/formats/xgmml/constants.d.ts +186 -56
  399. package/dist/src/formats/xgmml/constants.d.ts.map +1 -1
  400. package/dist/src/formats/xgmml/constants.js +181 -57
  401. package/dist/src/formats/xgmml/constants.js.map +1 -1
  402. package/dist/src/formats/xgmml/document.d.ts +65 -11
  403. package/dist/src/formats/xgmml/document.d.ts.map +1 -1
  404. package/dist/src/formats/xgmml/document.js +157 -28
  405. package/dist/src/formats/xgmml/document.js.map +1 -1
  406. package/dist/src/formats/xgmml/emit.d.ts +61 -3
  407. package/dist/src/formats/xgmml/emit.d.ts.map +1 -1
  408. package/dist/src/formats/xgmml/emit.js +129 -26
  409. package/dist/src/formats/xgmml/emit.js.map +1 -1
  410. package/dist/src/formats/xgmml/exporter.d.ts +13 -6
  411. package/dist/src/formats/xgmml/exporter.d.ts.map +1 -1
  412. package/dist/src/formats/xgmml/exporter.js +20 -21
  413. package/dist/src/formats/xgmml/exporter.js.map +1 -1
  414. package/dist/src/formats/xgmml/importer.d.ts +33 -12
  415. package/dist/src/formats/xgmml/importer.d.ts.map +1 -1
  416. package/dist/src/formats/xgmml/importer.js +35 -72
  417. package/dist/src/formats/xgmml/importer.js.map +1 -1
  418. package/dist/src/formats/xgmml/index.d.ts +1 -0
  419. package/dist/src/formats/xgmml/index.d.ts.map +1 -1
  420. package/dist/src/formats/xgmml/index.js +1 -0
  421. package/dist/src/formats/xgmml/index.js.map +1 -1
  422. package/dist/src/formats/xgmml/values.d.ts +8 -1
  423. package/dist/src/formats/xgmml/values.d.ts.map +1 -1
  424. package/dist/src/formats/xgmml/values.js +7 -2
  425. package/dist/src/formats/xgmml/values.js.map +1 -1
  426. package/dist/src/index.d.ts +23 -18
  427. package/dist/src/index.d.ts.map +1 -1
  428. package/dist/src/index.js +28 -16
  429. package/dist/src/index.js.map +1 -1
  430. package/dist/src/registry.d.ts +478 -92
  431. package/dist/src/registry.d.ts.map +1 -1
  432. package/dist/src/registry.js +807 -88
  433. package/dist/src/registry.js.map +1 -1
  434. package/dist/src/sniff.d.ts +61 -19
  435. package/dist/src/sniff.d.ts.map +1 -1
  436. package/dist/src/sniff.js +121 -29
  437. package/dist/src/sniff.js.map +1 -1
  438. package/dist/src/types.d.ts +362 -112
  439. package/dist/src/types.d.ts.map +1 -1
  440. package/dist/src/types.js +28 -7
  441. package/dist/src/types.js.map +1 -1
  442. package/dist/xgmml.js +2 -2
  443. package/docs/samples/README.md +25 -0
  444. package/docs/samples/got-edges.csv +353 -0
  445. package/docs/samples/got-network.graphml +1384 -0
  446. package/docs/samples/got-nodes.csv +108 -0
  447. package/docs/samples/got.cx +930 -0
  448. package/docs/samples/got.cx2 +465 -0
  449. package/docs/samples/got.gexf +471 -0
  450. package/docs/samples/got.gml +2650 -0
  451. package/docs/samples/got.json +2546 -0
  452. package/docs/samples/got.net +461 -0
  453. package/docs/samples/movies-nodes.csv +9 -0
  454. package/docs/samples/movies-rels.csv +8 -0
  455. package/docs/samples/networks.cys +0 -0
  456. package/docs/samples/proteins.xgmml +9 -0
  457. package/docs/samples/teams.gv +24 -0
  458. package/docs/samples/vehicles.obo +25 -0
  459. package/package.json +9 -4
  460. package/src/children.ts +18 -6
  461. package/src/common/attributes.ts +29 -11
  462. package/src/common/cell-budget.ts +11 -3
  463. package/src/common/choose.ts +89 -0
  464. package/src/common/codes.ts +490 -66
  465. package/src/common/compare.ts +472 -0
  466. package/src/common/cx-export.ts +432 -0
  467. package/src/common/declared-types.ts +38 -4
  468. package/src/common/direction.ts +78 -51
  469. package/src/common/escape.ts +33 -17
  470. package/src/common/export.ts +284 -47
  471. package/src/common/format.ts +30 -1
  472. package/src/common/ids.ts +14 -3
  473. package/src/common/input.ts +1057 -134
  474. package/src/common/json-elements.ts +1034 -198
  475. package/src/common/line-format.ts +249 -0
  476. package/src/common/lists.ts +6 -1
  477. package/src/common/ontology-export.ts +461 -0
  478. package/src/common/ontology.ts +31 -9
  479. package/src/common/options.ts +110 -15
  480. package/src/common/plural.ts +49 -0
  481. package/src/common/report.ts +168 -25
  482. package/src/common/temporal.ts +22 -5
  483. package/src/common/text.ts +62 -23
  484. package/src/common/weights.ts +74 -4
  485. package/src/common/writer.ts +37 -3
  486. package/src/common/xml.ts +477 -88
  487. package/src/common/zip.ts +169 -7
  488. package/src/formats/csv/exporter.ts +201 -46
  489. package/src/formats/csv/header.ts +50 -11
  490. package/src/formats/csv/importer.ts +1133 -245
  491. package/src/formats/csv/index.ts +106 -19
  492. package/src/formats/csv/records.ts +396 -122
  493. package/src/formats/csv/values.ts +1 -0
  494. package/src/formats/cx/exporter.ts +1483 -0
  495. package/src/formats/cx/importer.ts +888 -300
  496. package/src/formats/cx/index.ts +4 -3
  497. package/src/formats/cx2/exporter.ts +61 -338
  498. package/src/formats/cx2/importer.ts +317 -86
  499. package/src/formats/cx2/index.ts +2 -1
  500. package/src/formats/cys/constants.ts +62 -17
  501. package/src/formats/cys/exporter.ts +1368 -0
  502. package/src/formats/cys/importer.ts +659 -157
  503. package/src/formats/cys/index.ts +4 -2
  504. package/src/formats/cys/session.ts +139 -31
  505. package/src/formats/cys/tables.ts +47 -9
  506. package/src/formats/dot/exporter.ts +83 -37
  507. package/src/formats/dot/importer.ts +248 -54
  508. package/src/formats/dot/index.ts +2 -1
  509. package/src/formats/dot/names.ts +44 -11
  510. package/src/formats/dot/tokenizer.ts +25 -6
  511. package/src/formats/gexf/exporter.ts +57 -18
  512. package/src/formats/gexf/importer.ts +636 -105
  513. package/src/formats/gexf/index.ts +90 -21
  514. package/src/formats/gexf/schema.ts +67 -15
  515. package/src/formats/gml/exporter.ts +90 -36
  516. package/src/formats/gml/importer.ts +388 -67
  517. package/src/formats/gml/index.ts +85 -24
  518. package/src/formats/gml/syntax.ts +111 -26
  519. package/src/formats/graphml/constants.ts +178 -44
  520. package/src/formats/graphml/exporter.ts +52 -18
  521. package/src/formats/graphml/importer.ts +640 -60
  522. package/src/formats/graphml/index.ts +2 -1
  523. package/src/formats/graphml/tree.ts +6 -2
  524. package/src/formats/graphml/yfiles.ts +37 -15
  525. package/src/formats/json/dialect.ts +128 -29
  526. package/src/formats/json/exporter.ts +205 -68
  527. package/src/formats/json/importer.ts +1163 -253
  528. package/src/formats/json/index.ts +3 -1
  529. package/src/formats/json/obographs-export.ts +1197 -0
  530. package/src/formats/json/obographs.ts +353 -92
  531. package/src/formats/neo4j/exporter.ts +320 -101
  532. package/src/formats/neo4j/header.ts +44 -6
  533. package/src/formats/neo4j/importer.ts +512 -73
  534. package/src/formats/neo4j/index.ts +75 -23
  535. package/src/formats/obo/exporter.ts +2210 -0
  536. package/src/formats/obo/importer.ts +622 -109
  537. package/src/formats/obo/index.ts +6 -3
  538. package/src/formats/obo/syntax.ts +232 -37
  539. package/src/formats/pajek/exporter.ts +89 -41
  540. package/src/formats/pajek/importer.ts +407 -93
  541. package/src/formats/pajek/index.ts +2 -1
  542. package/src/formats/pajek/syntax.ts +213 -52
  543. package/src/formats/xgmml/columns.ts +10 -0
  544. package/src/formats/xgmml/constants.ts +183 -56
  545. package/src/formats/xgmml/document.ts +212 -34
  546. package/src/formats/xgmml/emit.ts +175 -34
  547. package/src/formats/xgmml/exporter.ts +35 -27
  548. package/src/formats/xgmml/importer.ts +64 -86
  549. package/src/formats/xgmml/index.ts +1 -0
  550. package/src/formats/xgmml/values.ts +11 -3
  551. package/src/index.ts +81 -11
  552. package/src/registry.ts +1121 -135
  553. package/src/sniff.ts +163 -32
  554. package/src/types.ts +385 -114
  555. package/dist/chunks/escape-B-tkk_Cl.js.map +0 -1
  556. package/dist/chunks/export-Bh60Dv-n.js +0 -582
  557. package/dist/chunks/export-Bh60Dv-n.js.map +0 -1
  558. package/dist/chunks/exporter-BGrsWamJ.js.map +0 -1
  559. package/dist/chunks/exporter-DIeGJXAZ.js.map +0 -1
  560. package/dist/chunks/importer-BWY2FFc5.js.map +0 -1
  561. package/dist/chunks/importer-DD-xv9_Y.js +0 -1471
  562. package/dist/chunks/importer-DD-xv9_Y.js.map +0 -1
  563. package/dist/chunks/importer-DET1tg6s.js.map +0 -1
  564. package/dist/chunks/importer-DEcKhsmQ.js +0 -1614
  565. package/dist/chunks/importer-DEcKhsmQ.js.map +0 -1
  566. package/dist/chunks/importer-DIrbbnAf.js.map +0 -1
  567. package/dist/chunks/importer-D_e7e7LX.js.map +0 -1
  568. package/dist/chunks/importer-eUREhBGj.js.map +0 -1
  569. package/dist/chunks/importer-vi3bSdtw.js.map +0 -1
  570. package/dist/chunks/importer-zGLo8Dg_.js.map +0 -1
  571. package/dist/chunks/json-elements-DDS8N2Dd.js +0 -779
  572. package/dist/chunks/json-elements-DDS8N2Dd.js.map +0 -1
  573. package/dist/chunks/ontology-BnrJ4I98.js +0 -113
  574. package/dist/chunks/ontology-BnrJ4I98.js.map +0 -1
  575. package/dist/chunks/records-dbRkxwaq.js.map +0 -1
  576. package/dist/chunks/report-B1z4WT9e.js +0 -2372
  577. package/dist/chunks/report-B1z4WT9e.js.map +0 -1
  578. package/dist/chunks/text-Dr0Ifpag.js.map +0 -1
  579. package/dist/chunks/weights-Dzba96G3.js +0 -176
  580. package/dist/chunks/weights-Dzba96G3.js.map +0 -1
  581. package/dist/chunks/writer-C7flM-Ih.js.map +0 -1
@@ -1,28 +1,38 @@
1
1
  /**
2
- * The GEXF subpath entry (`@graphty/graph-io/gexf`, design section 8.2): the importer and exporter
2
+ * The GEXF subpath entry (`@graphty/graph-io/gexf`): the importer and exporter
3
3
  * objects with their format-specific option types, the exporter's loss-note codes and the
4
4
  * importer's issue codes grouped in one table.
5
+ * @module @graphty/graph-io/gexf
5
6
  */
6
7
 
7
8
  import {
8
9
  BAD_DEFAULT_CODE,
9
10
  BAD_OPTIONS_CODE,
11
+ BAD_VALUE_CODE,
10
12
  COLUMN_RENAMED_CODE,
13
+ COLUMN_TYPE_CODE,
11
14
  COUNT_HINT_CODE,
15
+ COUNT_MISMATCH_CODE,
12
16
  DIRECTION_FORCED_CODE,
13
17
  DIRECTION_REFUSED_CODE,
14
18
  DUPLICATE_ATTRIBUTE_CODE,
15
19
  DUPLICATE_EDGE_ID_CODE,
16
20
  DUPLICATE_NODE_CODE,
21
+ ELEMENT_ISSUE,
22
+ EMPTY_INPUT_CODE,
23
+ ENCODING_CONFLICT_CODE,
17
24
  ENCODING_FALLBACK_CODE,
18
25
  ID_MERGED_CODE,
26
+ INPUT_ISSUE,
19
27
  INVALID_ENCODING_CODE,
20
28
  INVALID_UTF8_CODE,
21
29
  MISSING_ENDPOINT_CODE,
22
30
  MISSING_ID_CODE,
23
31
  MIXED_DIRECTION_CODE,
32
+ MULTIPLE_GRAPHS_CODE,
24
33
  NO_GRAPH_CODE,
25
34
  OPTION_IGNORED_CODE,
35
+ PARENT_CYCLE_CODE,
26
36
  PRECISION_CODE,
27
37
  ROLE_TAKEN_CODE,
28
38
  SINK_OPTION_CODE,
@@ -31,6 +41,7 @@ import {
31
41
  UNKNOWN_ELEMENT_CODE,
32
42
  UNKNOWN_ENCODING_CODE,
33
43
  UNKNOWN_PARENT_CODE,
44
+ UNKNOWN_XML_ATTRIBUTE_CODE,
34
45
  XML_SYNTAX_CODE,
35
46
  } from "../../common/codes.js";
36
47
  import {
@@ -45,7 +56,9 @@ import {
45
56
  OPEN_BOUND_CONFLICT_CODE,
46
57
  SPELL_OPEN_CODE,
47
58
  TIMED_STATIC_CODE,
59
+ TIMESTAMP_CONFLICT_CODE,
48
60
  UNKNOWN_ATTRIBUTE_CODE,
61
+ VALUE_OUTSIDE_OPTIONS_CODE,
49
62
  VIZ_DYNAMIC_CODE,
50
63
  VIZ_SKIPPED_CODE,
51
64
  VIZ_VALUE_CODE,
@@ -57,43 +70,77 @@ export { gexfImporter, type GexfImportOptions } from "./importer.js";
57
70
  export { type GexfVersion } from "./schema.js";
58
71
 
59
72
  /**
60
- * The issue codes the GEXF importer records (design section 8.6), by name: the codes shared with
61
- * the other importers (src/common/codes.ts) and the GEXF-specific ones. A key is the code without
73
+ * The issue codes the GEXF importer records, by name: the codes shared with
74
+ * the other importers and the GEXF-specific ones. A key is the code without
62
75
  * its severity and format prefixes.
76
+ * @category Built-in formats
63
77
  */
64
78
  export const GEXF_ISSUE = Object.freeze({
65
- /** The XML is not well-formed (fatal). */
79
+ ...INPUT_ISSUE,
80
+ ...ELEMENT_ISSUE,
81
+ /**
82
+ * A value that does not parse as the type its attribute declares ("x" in an integer attribute). The value is
83
+ * left unset; the node or edge is kept.
84
+ */
85
+ COLUMN_TYPE: COLUMN_TYPE_CODE,
86
+ /** The XML is not well-formed. The import stops. */
66
87
  XML_SYNTAX: XML_SYNTAX_CODE,
67
- /** The input holds invalid UTF-8 (fatal). */
88
+ /** The input is not valid UTF-8. The import stops. */
68
89
  INVALID_UTF8: INVALID_UTF8_CODE,
69
- /** Invalid bytes in the encoding a BOM, a declaration or the encoding option chose (fatal). */
90
+ /**
91
+ * Some bytes are not valid in the encoding that was chosen (by a byte order mark, the file's declaration or the
92
+ * `encoding` option). The import stops.
93
+ */
70
94
  INVALID_ENCODING: INVALID_ENCODING_CODE,
71
95
  /** Bytes that are not UTF-8 and declare no encoding were read as windows-1252. */
72
96
  ENCODING_FALLBACK: ENCODING_FALLBACK_CODE,
73
97
  /** A declared encoding the platform cannot decode was ignored. */
74
98
  UNKNOWN_ENCODING: UNKNOWN_ENCODING_CODE,
75
- /** The root element is not `<gexf>` (fatal). */
99
+ /** A declared encoding the byte order mark contradicts (the mark wins). */
100
+ ENCODING_CONFLICT: ENCODING_CONFLICT_CODE,
101
+ /** The input holds no XML at all: it is empty, whitespace or a byte order mark only. The import stops. */
102
+ EMPTY_INPUT: EMPTY_INPUT_CODE,
103
+ /** The root element is not `<gexf>`. The import stops. */
76
104
  NOT_GEXF: NOT_GEXF_CODE,
77
- /** The document has no `<graph>` (fatal). */
105
+ /** The document has no `<graph>`. The import stops. */
78
106
  NO_GRAPH: NO_GRAPH_CODE,
107
+ /**
108
+ * The file holds more than one `<graph>` element; their nodes and edges are merged into one graph.
109
+ * `importAllGraphs()` reads every one.
110
+ */
111
+ MULTIPLE_GRAPHS: MULTIPLE_GRAPHS_CODE,
79
112
  /** `<edges>` without `<nodes>`. */
80
113
  MISSING_NODES: MISSING_NODES_CODE,
81
114
  /** A node without an id. */
82
115
  MISSING_ID: MISSING_ID_CODE,
83
116
  /** An edge without a source or target. */
84
117
  MISSING_ENDPOINT: MISSING_ENDPOINT_CODE,
118
+ /** An edge endpoint that names no declared node (addMissingNodes false, the GEXF default). */
119
+ UNKNOWN_NODE: "E_UNKNOWN_NODE",
85
120
  /** An edge `type` outside directed / undirected / mutual. */
86
121
  EDGE_TYPE: EDGE_TYPE_CODE,
87
- /** A `pid` / `<parent for>` naming an unknown node. */
122
+ /** A `pid` / `<parent for>` naming an unknown node, a `<parent>` without for, or the children of a skipped node. */
88
123
  UNKNOWN_PARENT: UNKNOWN_PARENT_CODE,
124
+ /** A `pid` / nested containment that would close a parent cycle; that link is dropped. */
125
+ PARENT_CYCLE: PARENT_CYCLE_CODE,
126
+ /** An inverted interval (start after end) of an element, a spell or a value; it is not kept. */
127
+ BAD_VALUE: BAD_VALUE_CODE,
89
128
  /** An `<attributes class>` outside node / edge. */
90
129
  ATTRIBUTES_CLASS: ATTRIBUTES_CLASS_CODE,
91
130
  /** An `<attribute>` without an id. */
92
131
  ATTRIBUTE_ID: ATTRIBUTE_ID_CODE,
93
132
  /** A `<graph>` header attribute with an unknown value. */
94
133
  HEADER_VALUE: HEADER_VALUE_CODE,
95
- /** A `count` hint the sink cannot reserve (ignored). */
134
+ /**
135
+ * A node or edge count the file announces is too large to reserve room for; it is ignored and the elements are
136
+ * read as they come.
137
+ */
96
138
  COUNT_HINT: COUNT_HINT_CODE,
139
+ /**
140
+ * A `count` attribute disagrees with the number of nodes or edges actually in its section. The elements are read
141
+ * as they are.
142
+ */
143
+ COUNT_MISMATCH: COUNT_MISMATCH_CODE,
97
144
  /** A node id declared twice. */
98
145
  DUPLICATE_NODE: DUPLICATE_NODE_CODE,
99
146
  /** An edge id declared twice (the second edge is skipped). */
@@ -108,9 +155,15 @@ export const GEXF_ISSUE = Object.freeze({
108
155
  BAD_DEFAULT: BAD_DEFAULT_CODE,
109
156
  /** Options that do not parse as the declared type. */
110
157
  BAD_OPTIONS: BAD_OPTIONS_CODE,
111
- /** A column renamed `<name>#<id>` because the name was taken (design section 5.6). */
158
+ /**
159
+ * An attribute was renamed `<name>#<suffix>` because another attribute already has its name, for example
160
+ * two attributes declared with the same name.
161
+ */
112
162
  COLUMN_RENAMED: COLUMN_RENAMED_CODE,
113
- /** A column declared without its role because the table already holds it. */
163
+ /**
164
+ * You read into a graph builder that already has an id, label or position attribute, so this file's one is kept as
165
+ * a plain attribute.
166
+ */
114
167
  ROLE_TAKEN: ROLE_TAKEN_CODE,
115
168
  /** An `<attvalue for>` naming an undeclared attribute. */
116
169
  UNKNOWN_ATTRIBUTE: UNKNOWN_ATTRIBUTE_CODE,
@@ -118,13 +171,13 @@ export const GEXF_ISSUE = Object.freeze({
118
171
  ATTVALUE_SHAPE: ATTVALUE_SHAPE_CODE,
119
172
  /** A timed value on an attribute of a static group. */
120
173
  TIMED_VALUE_ON_STATIC: TIMED_STATIC_CODE,
121
- /** A long value beyond 2^53 rounded. */
174
+ /** An integer beyond 2^53 was stored as the nearest 64-bit float; pass `long: "string"` to keep every digit. */
122
175
  PRECISION: PRECISION_CODE,
123
- /** Two id texts merged into one number under ids "number". */
176
+ /** Two different id texts became the same number because `ids` is "number", so their nodes were merged. */
124
177
  ID_MERGED: ID_MERGED_CODE,
125
178
  /** The XML weight attribute ignored under weightFrom null. */
126
179
  WEIGHT_IGNORED: WEIGHT_IGNORED_CODE,
127
- /** viz elements skipped under viz: false. */
180
+ /** Viz elements skipped under viz: false. */
128
181
  VIZ_SKIPPED: VIZ_SKIPPED_CODE,
129
182
  /** A 1.2 dynamic viz element whose bounds were dropped. */
130
183
  VIZ_DYNAMIC_DROPPED: VIZ_DYNAMIC_CODE,
@@ -134,18 +187,34 @@ export const GEXF_ISSUE = Object.freeze({
134
187
  VIZ_VALUE: VIZ_VALUE_CODE,
135
188
  /** Both `start` and `startopen` (or `end` and `endopen`) on one element. */
136
189
  OPEN_BOUND_CONFLICT: OPEN_BOUND_CONFLICT_CODE,
137
- /** An element or attribute GEXF does not define was skipped. */
190
+ /** Both `timestamp` and `start` / `end` on one element or value. */
191
+ TIMESTAMP_CONFLICT: TIMESTAMP_CONFLICT_CODE,
192
+ /** A value outside the declared `<options>` (kept). */
193
+ VALUE_OUTSIDE_OPTIONS: VALUE_OUTSIDE_OPTIONS_CODE,
194
+ /** An element GEXF does not define at that place was skipped. */
138
195
  UNKNOWN_ELEMENT: UNKNOWN_ELEMENT_CODE,
196
+ /** An XML attribute GEXF does not define on that element was ignored. */
197
+ UNKNOWN_XML_ATTRIBUTE: UNKNOWN_XML_ATTRIBUTE_CODE,
139
198
  /** Text where GEXF allows only elements was ignored. */
140
199
  STRAY_TEXT: STRAY_TEXT_CODE,
141
- /** A common option the importer has no use for was given. */
200
+ /** You set an option this format does not use; it had no effect. The message names the option. */
142
201
  OPTION_IGNORED: OPTION_IGNORED_CODE,
143
- /** A builder-policy option the sink does not honour. */
202
+ /**
203
+ * You read into your own graph builder, which was created with a different `addMissingNodes`, `duplicateEdges`,
204
+ * `selfLoops` or `weightDtype` than the option you passed; the builder's setting applies.
205
+ */
144
206
  SINK_OPTION: SINK_OPTION_CODE,
145
- /** The sink refused the file's direction. */
207
+ /**
208
+ * You read into a graph builder whose direction is already set, or which already holds edges, so the file is read
209
+ * with the builder's direction instead of its own.
210
+ */
146
211
  DIRECTION_REFUSED: DIRECTION_REFUSED_CODE,
147
- /** Edges forced to the policy's direction. */
212
+ /** Edges of the other direction were read with the direction `onMixedDirection` chose. */
148
213
  DIRECTION_FORCED: DIRECTION_FORCED_CODE,
149
- /** A mixed file under onMixedDirection "error" (fatal). */
214
+ /**
215
+ * The graph has both directed and undirected edges and `onMixedDirection` is "error". An import stops; a save to a
216
+ * format that holds one direction per file fails with E_DIRECTED. Pass "directed" or "undirected" to read or write
217
+ * it anyway.
218
+ */
150
219
  MIXED_DIRECTION: MIXED_DIRECTION_CODE,
151
220
  });
@@ -11,31 +11,55 @@ import { type ColumnDecl, type Dtype } from "@graphty/graph-format";
11
11
 
12
12
  import { TIME_TEXT_ROLE, TIME_TEXT_SUFFIX } from "../../common/temporal.js";
13
13
 
14
- /** The GEXF versions the exporter writes. */
14
+ /**
15
+ * The GEXF versions the exporter writes.
16
+ * @category Built-in formats
17
+ */
15
18
  export type GexfVersion = "1.2" | "1.3";
16
19
 
17
- /** The format name. */
20
+ /**
21
+ * The format name.
22
+ * @category Plugin helpers
23
+ */
18
24
  export const GEXF_FORMAT = "gexf";
19
25
 
20
- /** The namespace URIs of each version. */
26
+ /**
27
+ * The namespace URIs of each version.
28
+ * @category Plugin helpers
29
+ */
21
30
  export const GEXF_NAMESPACES: Readonly<Record<GexfVersion, { readonly gexf: string; readonly viz: string }>> = {
22
31
  "1.2": { gexf: "http://www.gexf.net/1.2draft", viz: "http://www.gexf.net/1.2draft/viz" },
23
32
  "1.3": { gexf: "http://gexf.net/1.3", viz: "http://gexf.net/1.3/viz" },
24
33
  };
25
34
 
26
- /** The default edge type values of `<graph defaultedgetype>` and `<edge type>`. */
35
+ /**
36
+ * The default edge type values of `<graph defaultedgetype>` and `<edge type>`.
37
+ * @category Plugin helpers
38
+ */
27
39
  export type GexfEdgeType = "directed" | "undirected" | "mutual";
28
40
 
29
- /** The GEXF `timeformat` values. */
41
+ /**
42
+ * The GEXF `timeformat` values.
43
+ * @category Plugin helpers
44
+ */
30
45
  export const TIME_FORMATS: ReadonlySet<string> = new Set(["integer", "double", "date", "dateTime"]);
31
46
 
32
- /** The GEXF graph `mode` values. */
47
+ /**
48
+ * The GEXF graph `mode` values.
49
+ * @category Plugin helpers
50
+ */
33
51
  export const GRAPH_MODES: ReadonlySet<string> = new Set(["static", "dynamic", "slice"]);
34
52
 
35
- /** The GEXF 1.3 `timerepresentation` values. */
53
+ /**
54
+ * The GEXF 1.3 `timerepresentation` values.
55
+ * @category Plugin helpers
56
+ */
36
57
  export const TIME_REPRESENTATIONS: ReadonlySet<string> = new Set(["interval", "timestamp"]);
37
58
 
38
- /** The `origin.namespace` of viz-derived columns. */
59
+ /**
60
+ * The `origin.namespace` of viz-derived columns.
61
+ * @category Plugin helpers
62
+ */
39
63
  export const VIZ_NAMESPACE = "viz";
40
64
 
41
65
  /** The origin every XML-derived column declares. */
@@ -47,6 +71,7 @@ const VIZ_ORIGIN = { format: GEXF_FORMAT, namespace: VIZ_NAMESPACE };
47
71
  /**
48
72
  * The fixed node column names the importer owns (design section 5.6): a declared attribute with
49
73
  * one of these titles is renamed `<title>#<id>` so the XML-derived column keeps its name and role.
74
+ * @category Plugin helpers
50
75
  */
51
76
  export const NODE_COLUMNS = Object.freeze({
52
77
  label: "label",
@@ -83,7 +108,10 @@ const EDGE_COLUMNS = Object.freeze({
83
108
  shape: "shape",
84
109
  });
85
110
 
86
- /** Every reserved node column name, including the temporal companions. */
111
+ /**
112
+ * Every reserved node column name, including the temporal companions.
113
+ * @category Plugin helpers
114
+ */
87
115
  export const RESERVED_NODE_NAMES: ReadonlySet<string> = new Set([
88
116
  ...Object.values(NODE_COLUMNS),
89
117
  NODE_COLUMNS.start + TIME_TEXT_SUFFIX,
@@ -91,7 +119,10 @@ export const RESERVED_NODE_NAMES: ReadonlySet<string> = new Set([
91
119
  NODE_COLUMNS.timestamp + TIME_TEXT_SUFFIX,
92
120
  ]);
93
121
 
94
- /** Every reserved edge column name, including the temporal companions. */
122
+ /**
123
+ * Every reserved edge column name, including the temporal companions.
124
+ * @category Plugin helpers
125
+ */
95
126
  export const RESERVED_EDGE_NAMES: ReadonlySet<string> = new Set([
96
127
  ...Object.values(EDGE_COLUMNS),
97
128
  EDGE_COLUMNS.start + TIME_TEXT_SUFFIX,
@@ -99,7 +130,10 @@ export const RESERVED_EDGE_NAMES: ReadonlySet<string> = new Set([
99
130
  EDGE_COLUMNS.timestamp + TIME_TEXT_SUFFIX,
100
131
  ]);
101
132
 
102
- /** The declarations of the XML-derived node columns, keyed as NODE_COLUMNS. */
133
+ /**
134
+ * The declarations of the XML-derived node columns, keyed as NODE_COLUMNS.
135
+ * @category Plugin helpers
136
+ */
103
137
  export const NODE_DECLS: Readonly<Record<keyof typeof NODE_COLUMNS, ColumnDecl>> = {
104
138
  label: { name: NODE_COLUMNS.label, dtype: "string", role: "label", nullable: true, origin: XML_ORIGIN },
105
139
  parent: {
@@ -171,7 +205,10 @@ export const NODE_DECLS: Readonly<Record<keyof typeof NODE_COLUMNS, ColumnDecl>>
171
205
  shapeUri: { name: NODE_COLUMNS.shapeUri, dtype: "string", nullable: true, origin: VIZ_ORIGIN },
172
206
  };
173
207
 
174
- /** The declarations of the XML-derived edge columns, keyed as EDGE_COLUMNS. */
208
+ /**
209
+ * The declarations of the XML-derived edge columns, keyed as EDGE_COLUMNS.
210
+ * @category Plugin helpers
211
+ */
175
212
  export const EDGE_DECLS: Readonly<Record<keyof typeof EDGE_COLUMNS, ColumnDecl>> = {
176
213
  id: { name: EDGE_COLUMNS.id, dtype: "string", role: "id", unique: true, nullable: true, origin: XML_ORIGIN },
177
214
  label: { name: EDGE_COLUMNS.label, dtype: "string", role: "label", nullable: true, origin: XML_ORIGIN },
@@ -217,16 +254,25 @@ export const EDGE_DECLS: Readonly<Record<keyof typeof EDGE_COLUMNS, ColumnDecl>>
217
254
  shape: { name: EDGE_COLUMNS.shape, dtype: "dict", role: "shape", nullable: true, origin: VIZ_ORIGIN },
218
255
  };
219
256
 
220
- /** The bit of the `open` column marking an open start (design section 5.1). */
257
+ /**
258
+ * The bit of the `open` column marking an open start (design section 5.1).
259
+ * @category Plugin helpers
260
+ */
221
261
  export const OPEN_START = 1;
222
262
 
223
- /** The bit of the `open` column marking an open end. */
263
+ /**
264
+ * The bit of the `open` column marking an open end.
265
+ * @category Plugin helpers
266
+ */
224
267
  export const OPEN_END = 2;
225
268
 
226
269
  /** The prefix of a temporal extension table's name (design section 5.10). */
227
270
  const TEMPORAL_TABLE_PREFIX = "temporal:";
228
271
 
229
- /** The column names of a temporal extension table (design section 5.10). */
272
+ /**
273
+ * The column names of a temporal extension table (design section 5.10).
274
+ * @category Plugin helpers
275
+ */
230
276
  export const TEMPORAL_COLUMNS = Object.freeze({
231
277
  element: "element",
232
278
  start: "start",
@@ -243,6 +289,7 @@ export const TEMPORAL_COLUMNS = Object.freeze({
243
289
  * @param domain - node or edge
244
290
  * @param column - the static column's name
245
291
  * @returns `temporal:<domain>:<column>`
292
+ * @category Plugin helpers
246
293
  */
247
294
  export function temporalTableName(domain: "node" | "edge", column: string): string {
248
295
  return `${TEMPORAL_TABLE_PREFIX}${domain}:${column}`;
@@ -252,6 +299,7 @@ export function temporalTableName(domain: "node" | "edge", column: string): stri
252
299
  * Split a temporal table name into its domain and column.
253
300
  * @param name - the table name
254
301
  * @returns the parts, or null when the name is not a temporal table's
302
+ * @category Plugin helpers
255
303
  */
256
304
  export function parseTemporalTableName(name: string): { domain: "node" | "edge"; column: string } | null {
257
305
  if (!name.startsWith(TEMPORAL_TABLE_PREFIX)) {
@@ -277,6 +325,7 @@ export function parseTemporalTableName(name: string): { domain: "node" | "edge";
277
325
  * @param value - the value column's declaration fields (dtype, itemDtype, options...)
278
326
  * @param temporalValue - whether the value is itself a temporal type needing a text companion
279
327
  * @returns the declarations in table order
328
+ * @category Plugin helpers
280
329
  */
281
330
  export function temporalTableDecls(
282
331
  domain: "node" | "edge",
@@ -330,6 +379,7 @@ const TYPES_1_3: ReadonlySet<string> = new Set([
330
379
  * @param type - the type text
331
380
  * @param version - the target version
332
381
  * @returns true when the version declares it
382
+ * @category Plugin helpers
333
383
  */
334
384
  export function isScalarType(type: string, version: GexfVersion): boolean {
335
385
  return (version === "1.2" ? TYPES_1_2 : TYPES_1_3).has(type);
@@ -340,6 +390,7 @@ export function isScalarType(type: string, version: GexfVersion): boolean {
340
390
  * @param type - the type text
341
391
  * @param version - the target version
342
392
  * @returns true when the version declares it
393
+ * @category Plugin helpers
343
394
  */
344
395
  export function isListType(type: string, version: GexfVersion): boolean {
345
396
  if (version === "1.2") {
@@ -352,6 +403,7 @@ export function isListType(type: string, version: GexfVersion): boolean {
352
403
  * The canonical GEXF scalar type of a column dtype (design section 5.1 reversed).
353
404
  * @param dtype - a scalar dtype
354
405
  * @returns the type text; u32 becomes `long` (its range exceeds `integer`), u8 `integer`, json `string`
406
+ * @category Plugin helpers
355
407
  */
356
408
  export function canonicalScalarType(dtype: Dtype): string {
357
409
  switch (dtype) {