@graphty/graph-io 0.3.24 → 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
@@ -25,6 +25,7 @@ const XML_REPLACEMENTS = {
25
25
  * surrogate) has no XML spelling at all and is E_COLUMN_TYPE; the exporters' check() counts them.
26
26
  * @param text - the text
27
27
  * @returns the escaped text
28
+ * @category Plugin helpers
28
29
  */
29
30
  export function escapeXmlText(text) {
30
31
  if (hasIllegalXmlChar(text)) {
@@ -34,9 +35,10 @@ export function escapeXmlText(text) {
34
35
  }
35
36
  /**
36
37
  * Escape text for a double-quoted XML attribute value: `&`, `<`, `>`, `"` and the whitespace
37
- * characters attribute normalisation would fold; a character XML 1.0 forbids is E_COLUMN_TYPE.
38
+ * characters attribute normalization would fold; a character XML 1.0 forbids is E_COLUMN_TYPE.
38
39
  * @param text - the text
39
40
  * @returns the escaped text
41
+ * @category Plugin helpers
40
42
  */
41
43
  export function escapeXmlAttribute(text) {
42
44
  if (hasIllegalXmlChar(text)) {
@@ -63,6 +65,7 @@ const GML_SPECIAL = /["&]|[^ -~]/gu;
63
65
  * A lone surrogate cannot be written and is E_COLUMN_TYPE.
64
66
  * @param text - the text
65
67
  * @returns the quoted GML string
68
+ * @category Plugin helpers
66
69
  */
67
70
  export function quoteGmlString(text) {
68
71
  const escaped = text.replace(GML_SPECIAL, (c) => {
@@ -103,18 +106,23 @@ const GML_NAMED = (() => {
103
106
  /**
104
107
  * Decode the character entities of a GML string body (the inverse of quoteGmlString on the text
105
108
  * between the quotes): numeric references, the XML entities and the ISO-8859-1 HTML entities. An
106
- * unknown named entity is left as written and handed to `onUnknown`.
109
+ * unknown named entity, or a numeric reference beyond U+10FFFF, is left as written and handed to
110
+ * `onUnknown`.
107
111
  * @param body - the text between the quotes
108
- * @param onUnknown - called with each unknown named entity (`&name;`), when given
112
+ * @param onUnknown - called with each entity left as written (`&name;`, `&#99999999;`), when given
109
113
  * @returns the decoded text
114
+ * @category Plugin helpers
110
115
  */
111
116
  export function decodeGmlString(body, onUnknown) {
112
117
  return body.replace(GML_ENTITY, (whole, entity) => {
113
- if (entity.startsWith("#x")) {
114
- return String.fromCodePoint(Number.parseInt(entity.slice(2), 16));
115
- }
116
118
  if (entity.startsWith("#")) {
117
- return String.fromCodePoint(Number.parseInt(entity.slice(1), 10));
119
+ const code = entity.startsWith("#x") ? Number.parseInt(entity.slice(2), 16) : Number(entity.slice(1));
120
+ if (code <= 0x10ffff) {
121
+ return String.fromCodePoint(code);
122
+ }
123
+ // beyond Unicode: no character to decode to, kept as written like an unknown name
124
+ onUnknown?.(whole);
125
+ return whole;
118
126
  }
119
127
  const known = GML_NAMED.get(entity);
120
128
  if (known === undefined) {
@@ -131,6 +139,7 @@ const DOT_KEYWORDS = new Set(["node", "edge", "graph", "digraph", "subgraph", "s
131
139
  * a digit, or a numeral, and not a keyword (case-insensitive).
132
140
  * @param text - the text
133
141
  * @returns true when the text can be written bare
142
+ * @category Plugin helpers
134
143
  */
135
144
  export function isBareDotId(text) {
136
145
  if (DOT_KEYWORDS.has(text.toLowerCase())) {
@@ -167,6 +176,7 @@ function isDotIdentifier(text) {
167
176
  * the closing quote. Every other text is writable; quoteDotId() writes it.
168
177
  * @param text - the id, name or value text
169
178
  * @returns true when quoteDotId(text) reads back as `text`
179
+ * @category Plugin helpers
170
180
  */
171
181
  export function isWritableDotText(text) {
172
182
  return !text.endsWith("\\") && !text.includes('\\"') && !/\\[\r\n]/.test(text);
@@ -178,6 +188,7 @@ export function isWritableDotText(text) {
178
188
  * backslash has no DOT spelling (isWritableDotText); the caller refuses it before writing.
179
189
  * @param text - the id or label text
180
190
  * @returns the DOT ID
191
+ * @category Plugin helpers
181
192
  */
182
193
  export function quoteDotId(text) {
183
194
  if (isBareDotId(text)) {
@@ -186,33 +197,36 @@ export function quoteDotId(text) {
186
197
  return `"${text.replace(/"/g, '\\"')}"`;
187
198
  }
188
199
  /**
189
- * Write a set CSV cell per RFC 4180: quoted with `"` doubled when the text contains the
190
- * delimiter, a quote, a CR or LF, or leading / trailing whitespace; bare otherwise. The empty
191
- * string is written as the quoted empty cell `""`, so the importers can tell a set empty string
192
- * (and an empty-string node id, legal under design section 4.1) from an unset cell, which every
193
- * exporter writes as nothing between the delimiters.
200
+ * Write a set CSV cell per RFC 4180: quoted, with the quote character doubled, when the text
201
+ * contains the delimiter, the quote character, a CR or LF, or leading / trailing whitespace; bare
202
+ * otherwise. The empty string is written as an empty quoted cell (`""`), so the importers can tell a
203
+ * set empty string (and an empty-string node id) from an unset cell, which every exporter writes as
204
+ * nothing between the delimiters.
194
205
  * @param text - the cell text of a set cell
195
206
  * @param delimiter - the field delimiter (default ",")
207
+ * @param quote - the quote character (default `"`)
196
208
  * @returns the cell as written
209
+ * @category Plugin helpers
197
210
  */
198
- export function quoteCsvCell(text, delimiter = ",") {
211
+ export function quoteCsvCell(text, delimiter = ",", quote = '"') {
199
212
  if (text.length === 0) {
200
- return '""';
213
+ return quote + quote;
201
214
  }
202
215
  if (!text.includes(delimiter) &&
203
- !text.includes('"') &&
216
+ !text.includes(quote) &&
204
217
  !text.includes("\n") &&
205
218
  !text.includes("\r") &&
206
219
  text === text.trim()) {
207
220
  return text;
208
221
  }
209
- return `"${text.replace(/"/g, '""')}"`;
222
+ return `${quote}${text.split(quote).join(quote + quote)}${quote}`;
210
223
  }
211
224
  /**
212
225
  * Whether a text can be a Pajek label: Pajek has no escape mechanism inside its double-quoted
213
226
  * labels, so a text containing a double quote, a CR or an LF cannot be written.
214
227
  * @param text - the label text
215
228
  * @returns true when quotePajekLabel() can write it
229
+ * @category Plugin helpers
216
230
  */
217
231
  export function isPajekLabel(text) {
218
232
  return !text.includes('"') && !text.includes("\n") && !text.includes("\r");
@@ -224,6 +238,7 @@ export function isPajekLabel(text) {
224
238
  * the exporter's check() counts those.
225
239
  * @param text - the label text
226
240
  * @returns the label as written
241
+ * @category Plugin helpers
227
242
  */
228
243
  export function quotePajekLabel(text) {
229
244
  if (!isPajekLabel(text)) {
@@ -232,7 +247,8 @@ export function quotePajekLabel(text) {
232
247
  value: text,
233
248
  });
234
249
  }
235
- if (text.length > 0 && !/[\s"]/.test(text) && !text.startsWith("[")) {
250
+ // a bare `%` token starts a comment for the importer, so such a text is quoted too
251
+ if (text.length > 0 && !/[\s"]/.test(text) && !text.startsWith("[") && !text.startsWith("%")) {
236
252
  return text;
237
253
  }
238
254
  return `"${text}"`;
@@ -1 +1 @@
1
- {"version":3,"file":"escape.js","sourceRoot":"","sources":["../../../src/common/escape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"escape.js","sourceRoot":"","sources":["../../../src/common/escape.ts"],"names":[],"mappings":"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"}
@@ -5,36 +5,63 @@
5
5
  * the ids the format cannot hold and hands the exporter the originals to write into its
6
6
  * `graphty:originalId` attribute).
7
7
  *
8
- * Every exporter's check() calls checkCapabilities() first and appends its format-specific notes
9
- * (design section 8.5 names W_GML_RECORD_NUMBER_TYPE and W_OPEN_INTERVAL); export() calls
8
+ * Every exporter's check() calls checkCapabilities() first and appends its format-specific notes;
9
+ * export() calls
10
10
  * sanitizeIds() before writing anything.
11
11
  */
12
- import { type Dtype, type GraphSnapshot, type NodeId } from "@graphty/graph-format";
12
+ import { type Dtype, GraphFormatError, type GraphSnapshot, type IdCoercion, type NodeId } from "@graphty/graph-format";
13
13
  import { type ExportCapabilities, type LossNote } from "../types.js";
14
14
  import { type ResolvedExportOptions } from "./options.js";
15
- /** The shared LossNote codes of checkCapabilities(). */
15
+ /**
16
+ * The shared LossNote codes of checkCapabilities().
17
+ * @category Issue and loss codes
18
+ */
16
19
  export declare const LOSS: Readonly<{
17
- /** The format has no mixed direction; expanded pairs are written per onMixedDirection. */
20
+ /**
21
+ * A node or edge attribute is not written: the format has no attributes, or none of this kind
22
+ * (`CheckExtras.attributes` false).
23
+ */
24
+ COLUMN_DROPPED: "W_COLUMN_DROPPED";
25
+ /**
26
+ * The graph has both directed and undirected edges, the format holds one direction per file, and
27
+ * `onMixedDirection` is "directed" or "undirected": every edge is written with that direction.
28
+ */
18
29
  MIXED_DIRECTION: "W_MIXED_DIRECTION";
19
- /** The format has no mixed direction and onMixedDirection is "error": export() will throw E_DIRECTED. */
30
+ /**
31
+ * The graph has both directed and undirected edges and `onMixedDirection` is "error". An import stops; a save to a
32
+ * format that holds one direction per file fails with E_DIRECTED. Pass "directed" or "undirected" to read or write
33
+ * it anyway.
34
+ */
20
35
  MIXED_DIRECTION_ERROR: "E_MIXED_DIRECTION";
21
36
  /** Parallel edges in a format without them. */
22
37
  MULTI_EDGES: "W_MULTI_EDGES";
23
38
  /** Self-loops in a format without them. */
24
39
  SELF_LOOPS: "W_SELF_LOOPS";
25
- /** The format requires edge ids and the snapshot has none; canonical e0..e{E-1} are generated. */
40
+ /**
41
+ * The format needs an id on every edge and the graph has none, so the file gets ids e0, e1, e2 and so on, which
42
+ * read back as edge ids.
43
+ */
26
44
  EDGE_IDS_GENERATED: "W_EDGE_IDS_GENERATED";
27
- /** The snapshot has an edge id column and the format cannot write one. */
45
+ /** The graph has edge ids and the format has no place for them, so they are not written. */
28
46
  EDGE_IDS_DROPPED: "W_EDGE_IDS_DROPPED";
29
47
  /** Ids outside the format's charset are rewritten (sanitizeIds "mangle"). */
30
48
  ID_MANGLED: "W_ID_MANGLED";
31
- /** Ids outside the format's charset and sanitizeIds "error": export() will throw E_INVALID_ID. */
49
+ /**
50
+ * Node ids the format cannot write, under `sanitizeIds: "error"`; the save fails with E_INVALID_ID. Pass
51
+ * `sanitizeIds: "mangle"` to rewrite them.
52
+ */
32
53
  ID_CHARSET: "E_ID_CHARSET";
33
54
  /** The format numbers nodes 1..N; ids that are not their 1-based index are kept as labels only. */
34
55
  ID_RENUMBERED: "W_ID_RENUMBERED";
35
- /** A column dtype the format does not keep as declared. */
56
+ /**
57
+ * An attribute's type is one the format cannot store as it is (for example, a 32-bit float in a format that has only 64-bit
58
+ * numbers), so it reads back with the nearest type the format has.
59
+ */
36
60
  DTYPE: "W_DTYPE_UNSUPPORTED";
37
- /** A multi-component column in a format without strides. */
61
+ /**
62
+ * An attribute with several numbers per element (other than a position) is written as separate values or a list,
63
+ * and does not read back as one attribute.
64
+ */
38
65
  COMPONENTS: "W_COMPONENTS_FLATTENED";
39
66
  /** A list column in a format without lists. */
40
67
  LIST: "W_LIST_UNSUPPORTED";
@@ -48,9 +75,9 @@ export declare const LOSS: Readonly<{
48
75
  HIERARCHY: "W_HIERARCHY_DROPPED";
49
76
  /** A start / end / timestamp column in a format without temporal support. */
50
77
  TEMPORAL: "W_TEMPORAL_DROPPED";
51
- /** A `<column>.text` companion (design section 5.1) the format cannot carry. */
78
+ /** A `<column>.text` companion the format cannot carry. */
52
79
  TEMPORAL_TEXT: "W_TEMPORAL_TEXT_DROPPED";
53
- /** A role column the format has no slot for; written as a plain attribute, the role lost. */
80
+ /** An attribute with a role the format has no place for is written as a plain attribute; the role is lost. */
54
81
  ROLE: "W_ROLE_DROPPED";
55
82
  /** A parents (multi-parent) column in a format with single containment only. */
56
83
  PARENTS: "W_PARENTS_DROPPED";
@@ -60,31 +87,55 @@ export declare const LOSS: Readonly<{
60
87
  MUTUAL_AS_UNDIRECTED: "W_MUTUAL_AS_UNDIRECTED";
61
88
  /** Node ids whose written text reads back as the other type under the importer's id rule. */
62
89
  ID_TEXT_TYPE: "W_ID_TEXT_TYPE";
63
- /** Two node ids share one written text; export() throws E_INVALID_ID. */
90
+ /**
91
+ * Two node ids would be written as the same text (the number 5 and the text "5"); the save fails with
92
+ * E_INVALID_ID.
93
+ */
64
94
  ID_TEXT_COLLISION: "E_ID_TEXT_COLLISION";
65
- /** A plain column named like the importer's weight key reads back as THE weight. */
95
+ /**
96
+ * An attribute without the weight role is named like the attribute graph-io reads weights from (for example, `weight`), so
97
+ * it reads back as the edge weight.
98
+ */
66
99
  WEIGHT_KEY_CLASH: "W_WEIGHT_KEY_CLASH";
67
- /** A role-less column whose written name the importer maps to a role. */
100
+ /**
101
+ * An attribute without a role is written where the format keeps a role (for example, a `name` column as the label), and
102
+ * reads back with that role.
103
+ */
68
104
  ROLE_ASSUMED: "W_ROLE_ASSUMED";
69
- /** A role column written into the format's slot reads back under the importer's fixed name. */
105
+ /**
106
+ * An attribute with a role (for example, the label) is written where the format keeps that role, and reads back under the
107
+ * name the format's importer gives it.
108
+ */
70
109
  COLUMN_NAME_CHANGED: "W_COLUMN_NAME_CHANGED";
71
110
  /** A declared column whose every row is unset vanishes through a format without declarations. */
72
111
  EMPTY_COLUMN: "W_EMPTY_COLUMN_DROPPED";
73
- /** A string / dict column that reads back as the other storage class (the dictionary heuristic). */
112
+ /**
113
+ * A text attribute reads back as a dictionary attribute, or the reverse, because the importer chooses by how often
114
+ * its values repeat. The values are the same.
115
+ */
74
116
  STORAGE_CLASS: "W_STORAGE_CLASS_CHANGED";
75
- /** An f64 column whose set values are all integral reads back as i32 through an untyped format. */
117
+ /**
118
+ * A number attribute whose values are all whole numbers reads back as integers, because the format does not record
119
+ * the type.
120
+ */
76
121
  INTEGRAL_F64: "W_INTEGRAL_F64_AS_I32";
77
- /** Text cells that read back as numbers or booleans under the 5.1 grammar. */
122
+ /**
123
+ * A text value that reads back as a number or a boolean, because the format does not record that it was text (the
124
+ * text "42" reads back as the number 42).
125
+ */
78
126
  TEXT_INFERRED: "W_TEXT_INFERRED";
79
- /** A string cell holding a character XML 1.0 forbids; export() throws E_COLUMN_TYPE. */
127
+ /** A text value holds a character XML 1.0 forbids (most control characters); the save fails with E_COLUMN_TYPE. */
80
128
  XML_ILLEGAL_CHAR: "E_XML_ILLEGAL_CHAR";
81
- /** A dict column without declared options gains one on re-import. */
129
+ /**
130
+ * A text attribute stored as a dictionary, without a declared list of allowed values, reads back with its distinct
131
+ * values as that list.
132
+ */
82
133
  OPTIONS_GAINED: "W_OPTIONS_GAINED";
83
134
  /** A spells column in a format without spells. */
84
135
  SPELLS: "W_SPELLS_DROPPED";
85
136
  /** Dynamic attribute values (extension tables) in a format without them. */
86
137
  DYNAMIC_VALUES: "W_DYNAMIC_VALUES_DROPPED";
87
- /** An open-interval column in a format without open intervals (design section 5.1). */
138
+ /** An open-interval column in a format without open intervals. */
88
139
  OPEN_INTERVAL: "W_OPEN_INTERVAL";
89
140
  /** Graph-level attributes in a format without them. */
90
141
  GRAPH_ATTRIBUTES: "W_GRAPH_ATTRIBUTES_DROPPED";
@@ -94,26 +145,50 @@ export declare const LOSS: Readonly<{
94
145
  VIZ: "W_VIZ_DROPPED";
95
146
  /** An extension table the format cannot carry. */
96
147
  EXTENSION_TABLE: "W_EXTENSION_TABLE_DROPPED";
148
+ /** A NaN or infinite number the format cannot spell; not written (or written as null), it reads back unset. */
149
+ NONFINITE_AS_NULL: "W_NONFINITE_AS_NULL";
150
+ /**
151
+ * The graph has edge weights and the file does not keep them (the format has no weights, or an option turned them
152
+ * off): every edge reads back with the default weight 1.
153
+ */
154
+ WEIGHTS_DROPPED: "W_WEIGHTS_DROPPED";
97
155
  }>;
98
- /** The capabilities of a format that keeps nothing beyond plain topology; the base every exporter overrides. */
156
+ /**
157
+ * The error a save throws for the first `E_` note of a check() result, or null when there is none.
158
+ * An exporter calls it before it writes anything, so every format refuses a save the same way: an
159
+ * id note (E_ID_CHARSET, E_ID_TEXT_COLLISION) throws E_INVALID_ID, E_MIXED_DIRECTION throws
160
+ * E_DIRECTED, E_XML_ILLEGAL_CHAR throws E_COLUMN_TYPE, and any other note E_UNSUPPORTED. Map your
161
+ * own note codes onto these with `codes`. The error's `details.code` is the note's code.
162
+ * @param notes - what check() returned
163
+ * @param codes - the error code for each of your own note codes, such as
164
+ * `{ E_PAIRS_BAD_ID: "E_INVALID_ID" }`
165
+ * @returns the error to throw, or null
166
+ * @category Writing a format
167
+ */
168
+ export declare function refusedSave(notes: readonly LossNote[], codes?: Readonly<Record<string, "E_INVALID_ID" | "E_DIRECTED" | "E_COLUMN_TYPE" | "E_UNSUPPORTED">>): GraphFormatError | null;
169
+ /**
170
+ * The capabilities of a format that keeps nothing beyond plain topology; the base every exporter overrides.
171
+ * @category Plugin helpers
172
+ */
99
173
  export declare const NO_CAPABILITIES: ExportCapabilities;
100
174
  /**
101
175
  * Build a capabilities table from the fields a format supports; every field left out is the
102
176
  * conservative NO_CAPABILITIES value, so an exporter states what it keeps and nothing is assumed.
103
177
  * @param supported - the fields the format supports
104
178
  * @returns a frozen table
179
+ * @category Writing a format
105
180
  */
106
181
  export declare function capabilities(supported: Partial<ExportCapabilities>): ExportCapabilities;
107
182
  /**
108
- * Format facts checkCapabilities() needs that the 12.4 table does not carry.
109
- * Consumed by the per-format importers and exporters under src/formats.
183
+ * Format facts checkCapabilities() needs that the capabilities table does not carry.
110
184
  * @public
185
+ * @category Writing a format
111
186
  */
112
187
  export interface CheckExtras {
113
188
  /** Whether the format can write open intervals (GEXF 1.2 startopen / endopen); default false. */
114
189
  readonly openIntervals?: boolean | undefined;
115
190
  /**
116
- * Whether the format carries the `<column>.text` companions of design section 5.1 (the lexical
191
+ * Whether the format carries the `<column>.text` companion columns (the lexical
117
192
  * form of a temporal value); default false, and every companion is then reported as
118
193
  * W_TEMPORAL_TEXT_DROPPED.
119
194
  */
@@ -137,9 +212,37 @@ export interface CheckExtras {
137
212
  * importer gives it). Defaults to none.
138
213
  */
139
214
  readonly roleNames?: Readonly<Record<string, string>> | undefined;
215
+ /**
216
+ * False for a format that writes no node or edge attributes except the ones whose role is in
217
+ * `roles`: every other attribute column is reported once as W_COLUMN_DROPPED, instead of the
218
+ * type and role notes a written column gets. Default true. `nodeAttributes` and
219
+ * `edgeAttributes` override it for one kind.
220
+ */
221
+ readonly attributes?: boolean | undefined;
222
+ /** Like `attributes`, for node attributes only: false for a format that writes no node attributes. */
223
+ readonly nodeAttributes?: boolean | undefined;
224
+ /** Like `attributes`, for edge attributes only: false for a format that writes no edge attributes. */
225
+ readonly edgeAttributes?: boolean | undefined;
226
+ /**
227
+ * Columns the format writes although it writes no other attributes: a column a format option
228
+ * names, such as an edge label column. Keyed by `node` or `edge`. They get no W_COLUMN_DROPPED
229
+ * note; the type notes of a written column still apply.
230
+ */
231
+ readonly writtenColumns?: Readonly<Partial<Record<"node" | "edge", readonly string[]>>> | undefined;
232
+ /**
233
+ * False for a format (or an option) that writes no edge weights: a weighted graph gets one
234
+ * W_WEIGHTS_DROPPED note. Default true.
235
+ */
236
+ readonly weights?: boolean | undefined;
237
+ /**
238
+ * How the format's importer turns id text back into ids ("canonical" for most text formats), so
239
+ * an id that comes back with another type (the text "7" as the number 7) is reported as
240
+ * W_ID_TEXT_TYPE. Omit it when the format records each id's type.
241
+ */
242
+ readonly idsReadBack?: IdCoercion | undefined;
140
243
  }
141
244
  /**
142
- * The generic pre-flight of design section 8.5: compare a snapshot with a format's capabilities
245
+ * The generic pre-flight check: compare a snapshot with a format's capabilities
143
246
  * and return one LossNote per gap, with the shared codes of LOSS. Format-specific notes are the
144
247
  * exporter's to append.
145
248
  * @param snapshot - the snapshot about to be exported
@@ -147,6 +250,7 @@ export interface CheckExtras {
147
250
  * @param options - the resolved common export options
148
251
  * @param extras - format facts the capabilities table does not carry
149
252
  * @returns the notes, empty when the export is exact
253
+ * @category Writing a format
150
254
  */
151
255
  export declare function checkCapabilities(snapshot: GraphSnapshot, caps: ExportCapabilities, options: ResolvedExportOptions, extras?: CheckExtras): LossNote[];
152
256
  /**
@@ -154,6 +258,7 @@ export declare function checkCapabilities(snapshot: GraphSnapshot, caps: ExportC
154
258
  * expanded pair count once; an expanded self-loop has no mirror and counts once).
155
259
  * @param snapshot - the snapshot
156
260
  * @returns the count; 0 for an undirected snapshot or one without the directed role
261
+ * @category Plugin helpers
157
262
  */
158
263
  export declare function countMixedEdges(snapshot: GraphSnapshot): number;
159
264
  /**
@@ -161,18 +266,19 @@ export declare function countMixedEdges(snapshot: GraphSnapshot): number;
161
266
  * over the forward CSR; an undirected parallel edge is counted in both rows.
162
267
  * @param snapshot - the snapshot
163
268
  * @returns the count
269
+ * @category Plugin helpers
164
270
  */
165
271
  export declare function countParallelArcs(snapshot: GraphSnapshot): number;
166
272
  /**
167
273
  * The id charsets of ExportCapabilities.
168
- * Consumed by the per-format importers and exporters under src/formats.
169
274
  * @public
275
+ * @category Plugin helpers
170
276
  */
171
277
  export type IdCharset = ExportCapabilities["idCharset"];
172
278
  /**
173
- * The ids to write for every node after sanitising (design section 8.5).
174
- * Consumed by the per-format importers and exporters under src/formats.
279
+ * The ids to write for every node after sanitising.
175
280
  * @public
281
+ * @category Writing a format
176
282
  */
177
283
  export interface SanitizedIds {
178
284
  /** The charset applied. */
@@ -202,12 +308,14 @@ export interface SanitizedIds {
202
308
  * Whether a code point is an XML NameChar.
203
309
  * @param cp - the code point
204
310
  * @returns true when it may appear in an NMTOKEN
311
+ * @category Plugin helpers
205
312
  */
206
313
  export declare function isNameChar(cp: number): boolean;
207
314
  /**
208
315
  * Whether a text is an XML NMTOKEN (one or more NameChars; GraphML node and edge ids).
209
316
  * @param text - the text
210
317
  * @returns true for a non-empty text of NameChars
318
+ * @category Plugin helpers
211
319
  */
212
320
  export declare function isNmtoken(text: string): boolean;
213
321
  /**
@@ -215,6 +323,7 @@ export declare function isNmtoken(text: string): boolean;
215
323
  * @param id - the id
216
324
  * @param charset - the charset
217
325
  * @returns true when the id needs no rewriting ("dense-1-based" is never true: see sanitizeIds)
326
+ * @category Plugin helpers
218
327
  */
219
328
  export declare function isRepresentableId(id: NodeId, charset: IdCharset): boolean;
220
329
  /**
@@ -223,10 +332,11 @@ export declare function isRepresentableId(id: NodeId, charset: IdCharset): boole
223
332
  * @param snapshot - the snapshot
224
333
  * @param charset - the charset
225
334
  * @returns the count
335
+ * @category Plugin helpers
226
336
  */
227
337
  export declare function countUnrepresentableIds(snapshot: GraphSnapshot, charset: IdCharset): number;
228
338
  /**
229
- * Sanitise the node ids for a charset (design section 8.5). Under "error" any id the charset
339
+ * Sanitise the node ids for a charset. Under "error" any id the charset
230
340
  * cannot hold is E_INVALID_ID (details.reason "charset") and nothing is written; under "mangle"
231
341
  * such ids are rewritten deterministically and uniquely: NMTOKEN by replacing every other
232
342
  * character with `_` (an empty result becomes `_`) and suffixing `_2`, `_3`... on collision;
@@ -238,12 +348,14 @@ export declare function countUnrepresentableIds(snapshot: GraphSnapshot, charset
238
348
  * @param charset - the charset
239
349
  * @param mode - the resolved sanitizeIds option
240
350
  * @returns the ids to write
351
+ * @category Writing a format
241
352
  */
242
353
  export declare function sanitizeIds(snapshot: GraphSnapshot, charset: IdCharset, mode: "error" | "mangle"): SanitizedIds;
243
354
  /**
244
355
  * Rewrite a text as an NMTOKEN: every character that is not a NameChar becomes `_`.
245
356
  * @param text - the text
246
357
  * @returns a non-empty NMTOKEN
358
+ * @category Plugin helpers
247
359
  */
248
360
  export declare function mangleNmtoken(text: string): string;
249
361
  //# sourceMappingURL=export.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/common/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/common/export.ts"],"names":[],"mappings":"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"}