@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
@@ -4,7 +4,7 @@
4
4
  * <attributes>` in the generic one) or, with `table: "nodes"`, the node table (`Id,Label,
5
5
  * <attributes>`), RFC 4180 quoted, one row per logical edge with expanded pairs folded back
6
6
  * through the `pair` role column; or, with `table: "adjacency"`, an adjacency table: a node and its
7
- * neighbours per row (`id:weight` for an explicit weight), no header, no attribute columns.
7
+ * neighbors per row (`id:weight` for an explicit weight), no header, no attribute columns.
8
8
  *
9
9
  * What survives a re-import exactly: ids (as text under the canonical rule), topology and
10
10
  * orientation, explicit weights (blank cells for defaulted ones), the per-row direction of the
@@ -18,34 +18,62 @@
18
18
  *
19
19
  * The adjacency table keeps ids, the node order, isolated nodes, the edge order, orientation and
20
20
  * explicit weights: consecutive edges with the same source share a row, a node the rows would
21
- * otherwise introduce out of index order gets a row of its own first, and a neighbour id holding a
21
+ * otherwise introduce out of index order gets a row of its own first, and a neighbor id holding a
22
22
  * colon is written `id:` when it has no weight so the importer does not read its tail as one.
23
23
  */
24
- import { type ExportCapabilities, type GraphExporter } from "../../types.js";
25
- /** The format-specific options of the CSV exporter. */
26
- export interface CsvExportOptions {
24
+ import { type CommonExportOptions, type ExportCapabilities, type GraphExporter } from "../../types.js";
25
+ /**
26
+ * The format-specific options of the CSV exporter.
27
+ * @category Built-in formats
28
+ */
29
+ export interface CsvExportOptions extends CommonExportOptions {
27
30
  /**
28
- * The header spelling: "gephi" (default) writes `Source,Target,Type,...,Weight` with the per-row
29
- * direction; "generic" writes `source,target,...,weight` and no direction column.
31
+ * The header spelling: "gephi" writes `Source,Target,Type,...,Weight`, with each edge's
32
+ * direction in `Type`; "generic" writes `source,target,...,weight` and no direction column. A JSON
33
+ * dialect name, from an options object shared with JSON saves, is ignored.
34
+ * @defaultValue "gephi"
30
35
  */
31
36
  dialect?: "gephi" | "generic" | undefined;
32
37
  /**
33
- * Which table to write: the edge table (default), the node table, or an adjacency table (a node
34
- * and its neighbours per row; read back with the importer's `table: "adjacency"`).
38
+ * Which table to write. "edges": one edge per row, with the edge attributes; isolated nodes and
39
+ * node attributes are not in it. "nodes": one node per row, with the node attributes and no
40
+ * edges. "adjacency": a node and its neighbors per row, which keeps every node and the node
41
+ * order but no attributes (read it back with `table: "adjacency"`). To keep both nodes and
42
+ * edges, write the node table and the edge table to two files and read them back with the
43
+ * `nodes` import option.
44
+ * @defaultValue "edges"
35
45
  */
36
46
  table?: "edges" | "nodes" | "adjacency" | undefined;
37
- /** The field delimiter; "," by default. */
47
+ /**
48
+ * The field delimiter.
49
+ * @defaultValue ","
50
+ */
38
51
  delimiter?: string | undefined;
39
- /** The line terminator; "\n" by default. */
52
+ /**
53
+ * The line terminator.
54
+ * @defaultValue "\n"
55
+ */
40
56
  newline?: "\n" | "\r\n" | undefined;
41
- /** Whether to write the header row; true by default (an adjacency table never has one). */
57
+ /**
58
+ * Whether to write the header row (an adjacency table never has one). A file without a header is
59
+ * read back by position: source, target, weight, then unnamed columns. checkExport() returns
60
+ * W_CSV_HEADERLESS when the table has other columns; for a plain headerless edge list, pass
61
+ * `dialect: "generic"` and write a graph whose edges have only weights.
62
+ * @defaultValue true
63
+ */
42
64
  header?: boolean | undefined;
43
65
  }
44
- /** The CSV loss-note codes of check(); the shared ones are LOSS's. */
66
+ /**
67
+ * The CSV loss-note codes of check(); the shared ones are LOSS's.
68
+ * @category Built-in formats
69
+ */
45
70
  export declare const CSV_LOSS: Readonly<{
46
- /** Two node ids share one text (a number and a string); export() throws E_INVALID_ID. */
71
+ /**
72
+ * Two node ids would be written as the same text (the number 5 and the text "5"); the save fails with
73
+ * E_INVALID_ID.
74
+ */
47
75
  ID_TEXT_COLLISION: "E_ID_TEXT_COLLISION";
48
- /** Ids whose text reads back as the other type under the canonical rule. */
76
+ /** Ids that read back as a different type, such as the text "7" as the number 7. */
49
77
  ID_TEXT_TYPE: "W_ID_TEXT_TYPE";
50
78
  /**
51
79
  * The generic dialect has no direction column; an undirected or mixed graph reads back as
@@ -57,29 +85,57 @@ export declare const CSV_LOSS: Readonly<{
57
85
  MUTUAL_EXPANDED: "W_MUTUAL_EXPANDED";
58
86
  /** An attribute column named like a reserved header is not written. */
59
87
  RESERVED_NAME: "W_CSV_RESERVED_NAME";
60
- /** A column without a role that the importer gives one back by its name. */
88
+ /**
89
+ * An attribute without a role is written where the format keeps a role (for example, a `name` column as the label), and
90
+ * reads back with that role.
91
+ */
61
92
  ROLE_ASSUMED: "W_ROLE_ASSUMED";
62
- /** A role column (id, label) whose name the importer does not recognise; the role is lost. */
93
+ /** A role column (id, label) whose name the importer does not recognize; the role is lost. */
63
94
  ROLE_NAME: "W_CSV_ROLE_NAME";
64
- /** A role column (id, label) that is not string / dict reads back as string. */
95
+ /** An id or label attribute that is not text reads back as text. */
65
96
  TEXT_ROLE: "W_CSV_TEXT_ROLE";
66
97
  /** NaN / Infinity in a numeric column read back as text. */
67
98
  NONFINITE: "W_CSV_NONFINITE";
68
- /** A text column whose every value reads back as a number or boolean. */
99
+ /**
100
+ * A text value that reads back as a number or a boolean, because the format does not record that it was text (the
101
+ * text "42" reads back as the number 42).
102
+ */
69
103
  TEXT_INFERRED: "W_TEXT_INFERRED";
70
- /** A dict column whose cardinality makes the importer read it back as string, or the reverse. */
104
+ /**
105
+ * A text attribute reads back as a dictionary attribute, or the reverse, because the importer chooses by how often
106
+ * its values repeat. The values are the same.
107
+ */
71
108
  STORAGE_CLASS_CHANGED: "W_STORAGE_CLASS_CHANGED";
72
109
  /** Node attributes are written by a `table: "nodes"` export only. */
73
110
  NODE_TABLE: "W_CSV_NODE_TABLE";
74
- /** The edge table carries no node without an edge: isolated nodes vanish on re-import. */
111
+ /**
112
+ * The edge table has no row for a node without edges, so isolated nodes are missing when the file is read back.
113
+ * Write the node table too (`table: "nodes"`).
114
+ */
75
115
  ISOLATED_NODES: "W_CSV_ISOLATED_NODES";
76
- /** The edge table lists nodes by first appearance; the node order (and indices) change on re-import. */
116
+ /**
117
+ * The edge table lists nodes in the order they first appear in an edge, so the node order changes when the file is
118
+ * read back.
119
+ */
77
120
  NODE_ORDER: "W_CSV_NODE_ORDER";
78
121
  /** An adjacency table holds no edge column but the weight: edge ids, labels and attributes are not written. */
79
122
  EDGE_COLUMNS: "W_CSV_EDGE_COLUMNS";
123
+ /**
124
+ * `header: false` with columns a file without a header cannot name: graph-io reads such a file by position
125
+ * (source, target, weight, then columns it names column4, column5, ...), so these columns read back under other
126
+ * names or in the wrong place (for example, an edge id in the weight's place). Write the header, or write only source,
127
+ * target and weight with `dialect: "generic"`.
128
+ */
129
+ HEADERLESS: "W_CSV_HEADERLESS";
80
130
  }>;
81
- /** What the CSV format keeps as declared. */
131
+ /**
132
+ * What the CSV format keeps as declared.
133
+ * @category Built-in formats
134
+ */
82
135
  export declare const CSV_CAPABILITIES: ExportCapabilities;
83
- /** The CSV / TSV exporter plugin (subpath `@graphty/graph-io/csv`). */
136
+ /**
137
+ * The CSV / TSV exporter plugin (subpath `@graphty/graph-io/csv`).
138
+ * @category Built-in formats
139
+ */
84
140
  export declare const csvExporter: GraphExporter<CsvExportOptions>;
85
141
  //# sourceMappingURL=exporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../../../src/formats/csv/exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAeH,OAAO,EAA4B,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAItH,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;IACpD,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,2FAA2F;IAC3F,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,sEAAsE;AACtE,eAAO,MAAM,QAAQ;IACjB,yFAAyF;;IAEzF,4EAA4E;;IAE5E;;;;OAIG;;IAEH,qDAAqD;;IAErD,uEAAuE;;IAEvE,4EAA4E;;IAE5E,8FAA8F;;IAE9F,gFAAgF;;IAEhF,4DAA4D;;IAE5D,yEAAyE;;IAEzE,iGAAiG;;IAEjG,qEAAqE;;IAErE,0FAA0F;;IAE1F,wGAAwG;;IAExG,+GAA+G;;EAEjH,CAAC;AAEH,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,EAAE,kBAO7B,CAAC;AAo5BH,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAUtD,CAAC"}
1
+ {"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../../../src/formats/csv/exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAgBH,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAItH;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IACzD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;IACpD;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ;IACjB;;;OAGG;;IAEH,oFAAoF;;IAEpF;;;;OAIG;;IAEH,qDAAqD;;IAErD,uEAAuE;;IAEvE;;;OAGG;;IAEH,8FAA8F;;IAE9F,oEAAoE;;IAEpE,4DAA4D;;IAE5D;;;OAGG;;IAEH;;;OAGG;;IAEH,qEAAqE;;IAErE;;;OAGG;;IAEH;;;OAGG;;IAEH,+GAA+G;;IAE/G;;;;;OAKG;;EAEL,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAO7B,CAAC;AAq/BH;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAWtD,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * <attributes>` in the generic one) or, with `table: "nodes"`, the node table (`Id,Label,
5
5
  * <attributes>`), RFC 4180 quoted, one row per logical edge with expanded pairs folded back
6
6
  * through the `pair` role column; or, with `table: "adjacency"`, an adjacency table: a node and its
7
- * neighbours per row (`id:weight` for an explicit weight), no header, no attribute columns.
7
+ * neighbors per row (`id:weight` for an explicit weight), no header, no attribute columns.
8
8
  *
9
9
  * What survives a re-import exactly: ids (as text under the canonical rule), topology and
10
10
  * orientation, explicit weights (blank cells for defaulted ones), the per-row direction of the
@@ -18,7 +18,7 @@
18
18
  *
19
19
  * The adjacency table keeps ids, the node order, isolated nodes, the edge order, orientation and
20
20
  * explicit weights: consecutive edges with the same source share a row, a node the rows would
21
- * otherwise introduce out of index order gets a row of its own first, and a neighbour id holding a
21
+ * otherwise introduce out of index order gets a row of its own first, and a neighbor id holding a
22
22
  * colon is written `id:` when it has no weight so the importer does not read its tail as one.
23
23
  */
24
24
  import { GraphFormatError } from "@graphty/graph-format";
@@ -29,17 +29,24 @@ import { capabilities, checkCapabilities, countMixedEdges, LOSS } from "../../co
29
29
  import { formatDecimal, formatInteger } from "../../common/format.js";
30
30
  import { canonicalId } from "../../common/ids.js";
31
31
  import { joinListText } from "../../common/lists.js";
32
- import { resolveExportOptions } from "../../common/options.js";
32
+ import { otherFormatDialect, resolveExportOptions } from "../../common/options.js";
33
+ import { agree, plural } from "../../common/plural.js";
33
34
  import { inferTextDtype } from "../../common/text.js";
34
35
  import { explicitWeights } from "../../common/weights.js";
35
36
  import { encodeChunks, joinText } from "../../common/writer.js";
36
37
  import { EDGE_ID_NAMES, findColumn, LABEL_NAMES } from "./header.js";
37
38
  import { DELIMITER_CANDIDATES } from "./records.js";
38
- /** The CSV loss-note codes of check(); the shared ones are LOSS's. */
39
+ /**
40
+ * The CSV loss-note codes of check(); the shared ones are LOSS's.
41
+ * @category Built-in formats
42
+ */
39
43
  export const CSV_LOSS = Object.freeze({
40
- /** Two node ids share one text (a number and a string); export() throws E_INVALID_ID. */
44
+ /**
45
+ * Two node ids would be written as the same text (the number 5 and the text "5"); the save fails with
46
+ * E_INVALID_ID.
47
+ */
41
48
  ID_TEXT_COLLISION: LOSS.ID_TEXT_COLLISION,
42
- /** Ids whose text reads back as the other type under the canonical rule. */
49
+ /** Ids that read back as a different type, such as the text "7" as the number 7. */
43
50
  ID_TEXT_TYPE: LOSS.ID_TEXT_TYPE,
44
51
  /**
45
52
  * The generic dialect has no direction column; an undirected or mixed graph reads back as
@@ -51,28 +58,53 @@ export const CSV_LOSS = Object.freeze({
51
58
  MUTUAL_EXPANDED: LOSS.MUTUAL_EXPANDED,
52
59
  /** An attribute column named like a reserved header is not written. */
53
60
  RESERVED_NAME: "W_CSV_RESERVED_NAME",
54
- /** A column without a role that the importer gives one back by its name. */
61
+ /**
62
+ * An attribute without a role is written where the format keeps a role (for example, a `name` column as the label), and
63
+ * reads back with that role.
64
+ */
55
65
  ROLE_ASSUMED: LOSS.ROLE_ASSUMED,
56
- /** A role column (id, label) whose name the importer does not recognise; the role is lost. */
66
+ /** A role column (id, label) whose name the importer does not recognize; the role is lost. */
57
67
  ROLE_NAME: "W_CSV_ROLE_NAME",
58
- /** A role column (id, label) that is not string / dict reads back as string. */
68
+ /** An id or label attribute that is not text reads back as text. */
59
69
  TEXT_ROLE: "W_CSV_TEXT_ROLE",
60
70
  /** NaN / Infinity in a numeric column read back as text. */
61
71
  NONFINITE: "W_CSV_NONFINITE",
62
- /** A text column whose every value reads back as a number or boolean. */
72
+ /**
73
+ * A text value that reads back as a number or a boolean, because the format does not record that it was text (the
74
+ * text "42" reads back as the number 42).
75
+ */
63
76
  TEXT_INFERRED: LOSS.TEXT_INFERRED,
64
- /** A dict column whose cardinality makes the importer read it back as string, or the reverse. */
77
+ /**
78
+ * A text attribute reads back as a dictionary attribute, or the reverse, because the importer chooses by how often
79
+ * its values repeat. The values are the same.
80
+ */
65
81
  STORAGE_CLASS_CHANGED: LOSS.STORAGE_CLASS,
66
82
  /** Node attributes are written by a `table: "nodes"` export only. */
67
83
  NODE_TABLE: "W_CSV_NODE_TABLE",
68
- /** The edge table carries no node without an edge: isolated nodes vanish on re-import. */
84
+ /**
85
+ * The edge table has no row for a node without edges, so isolated nodes are missing when the file is read back.
86
+ * Write the node table too (`table: "nodes"`).
87
+ */
69
88
  ISOLATED_NODES: "W_CSV_ISOLATED_NODES",
70
- /** The edge table lists nodes by first appearance; the node order (and indices) change on re-import. */
89
+ /**
90
+ * The edge table lists nodes in the order they first appear in an edge, so the node order changes when the file is
91
+ * read back.
92
+ */
71
93
  NODE_ORDER: "W_CSV_NODE_ORDER",
72
94
  /** An adjacency table holds no edge column but the weight: edge ids, labels and attributes are not written. */
73
95
  EDGE_COLUMNS: "W_CSV_EDGE_COLUMNS",
96
+ /**
97
+ * `header: false` with columns a file without a header cannot name: graph-io reads such a file by position
98
+ * (source, target, weight, then columns it names column4, column5, ...), so these columns read back under other
99
+ * names or in the wrong place (for example, an edge id in the weight's place). Write the header, or write only source,
100
+ * target and weight with `dialect: "generic"`.
101
+ */
102
+ HEADERLESS: "W_CSV_HEADERLESS",
74
103
  });
75
- /** What the CSV format keeps as declared. */
104
+ /**
105
+ * What the CSV format keeps as declared.
106
+ * @category Built-in formats
107
+ */
76
108
  export const CSV_CAPABILITIES = capabilities({
77
109
  mixedDirection: true,
78
110
  multiEdges: true,
@@ -116,7 +148,10 @@ const SKIPPED_ROLES = new Set([
116
148
  */
117
149
  function resolveCsvExportOptions(options) {
118
150
  const o = options ?? {};
119
- if (o.dialect !== undefined && o.dialect !== "gephi" && o.dialect !== "generic") {
151
+ if (o.dialect !== undefined &&
152
+ o.dialect !== "gephi" &&
153
+ o.dialect !== "generic" &&
154
+ !otherFormatDialect("csv", o.dialect)) {
120
155
  throw new GraphFormatError("E_UNSUPPORTED", 'option dialect: expected "gephi" or "generic"', {
121
156
  option: "dialect",
122
157
  found: o.dialect,
@@ -155,7 +190,8 @@ function resolveCsvExportOptions(options) {
155
190
  });
156
191
  }
157
192
  return {
158
- dialect: DIALECTS[o.dialect ?? "gephi"],
193
+ // another format's dialect (a JSON "d3" in a shared options object) leaves CSV's default
194
+ dialect: DIALECTS[o.dialect === "generic" ? "generic" : "gephi"],
159
195
  table: o.table ?? "edges",
160
196
  delimiter: o.delimiter ?? ",",
161
197
  newline: o.newline ?? "\n",
@@ -235,6 +271,22 @@ function cellText(column, row) {
235
271
  * @param values - whether to scan the values for notes
236
272
  * @returns the plan
237
273
  */
274
+ /**
275
+ * W_CSV_NODE_TABLE: the node columns an edge-table or adjacency export leaves for a second, node-table export.
276
+ * @param names - the node columns, label first
277
+ * @param table - the table being written ("edges" or "adjacency")
278
+ * @param note - the recorder
279
+ */
280
+ function nodeTableNote(names, table, note) {
281
+ const written = names.length;
282
+ if (written > 0) {
283
+ const shown = names
284
+ .slice(0, 3)
285
+ .map((n) => JSON.stringify(n))
286
+ .join(", ") + (written > 3 ? ", ..." : "");
287
+ note(CSV_LOSS.NODE_TABLE, `the ${table === "adjacency" ? "adjacency" : "edge"} table has no room for node attributes: ${written} node column${plural(written)} (${shown}) ${agree(written, "is", "are")} written only by a second export with table: "nodes"`, null, written);
288
+ }
289
+ }
238
290
  /**
239
291
  * The id notes: text collisions are fatal (export() throws E_INVALID_ID); type changes under the
240
292
  * canonical re-read are reported.
@@ -257,7 +309,7 @@ function idNotes(snapshot, values, note) {
257
309
  }
258
310
  }
259
311
  if (collisions > 0) {
260
- note(CSV_LOSS.ID_TEXT_COLLISION, `${collisions} node id(s) share their text with another id (a number and a string); export() will throw E_INVALID_ID`, null, collisions);
312
+ note(CSV_LOSS.ID_TEXT_COLLISION, `${collisions} node id${plural(collisions)} ${agree(collisions, "shares", "share")} their text with another id (a number and a string); the save fails with E_INVALID_ID`, null, collisions);
261
313
  }
262
314
  }
263
315
  if (values && ids.kind !== "identity" && ids.kind !== "dense") {
@@ -269,7 +321,7 @@ function idNotes(snapshot, values, note) {
269
321
  }
270
322
  }
271
323
  if (changed > 0) {
272
- note(CSV_LOSS.ID_TEXT_TYPE, `${changed} node id(s) read back as the other type under ids: "canonical" (a string "1" becomes 1, a number 1.5 becomes "1.5")`, null, changed);
324
+ note(CSV_LOSS.ID_TEXT_TYPE, `${changed} node id${plural(changed)} ${agree(changed, "reads", "read")} back as the other type under ids: "canonical" (a string "1" becomes 1, a number 1.5 becomes "1.5")`, null, changed);
273
325
  }
274
326
  }
275
327
  }
@@ -295,17 +347,17 @@ function planExport(snapshot, options, values) {
295
347
  const where = csv.table === "adjacency" ? "an adjacency table" : "the generic dialect";
296
348
  const mixed = countMixedEdges(snapshot);
297
349
  if (!snapshot.directed) {
298
- note(CSV_LOSS.DIRECTION_DROPPED, `${where} has no direction column; ${snapshot.edgeCount} undirected edge(s) read back as directed unless the importer is told otherwise`, null, snapshot.edgeCount);
350
+ note(CSV_LOSS.DIRECTION_DROPPED, `${where} has no direction column; ${snapshot.edgeCount} undirected edge${plural(snapshot.edgeCount)} ${agree(snapshot.edgeCount, "reads", "read")} back as directed unless the importer is told otherwise`, null, snapshot.edgeCount);
299
351
  }
300
352
  else if (mixed > 0) {
301
- note(CSV_LOSS.DIRECTION_DROPPED, `${where} has no direction column; ${mixed} undirected edge(s) of a mixed graph read back as one directed edge each`, null, mixed);
353
+ note(CSV_LOSS.DIRECTION_DROPPED, `${where} has no direction column; ${mixed} undirected edge${plural(mixed)} of a mixed graph read back as one directed edge each`, null, mixed);
302
354
  }
303
355
  }
304
356
  else if (csv.table === "edges" && !snapshot.directed && edgeRows.length === 0) {
305
357
  note(CSV_LOSS.DIRECTION_DROPPED, "the direction lives in the Type cell of each edge row; an undirected graph without edges reads back as directed", null, 0);
306
358
  }
307
359
  if (folding.mutualCount > 0) {
308
- note(CSV_LOSS.MUTUAL_EXPANDED, `${folding.mutualCount} mutual pair(s) are written as two directed rows; the mutual mark is lost`, null, folding.mutualCount);
360
+ note(CSV_LOSS.MUTUAL_EXPANDED, `${folding.mutualCount} mutual pair${plural(folding.mutualCount)} ${agree(folding.mutualCount, "is", "are")} written as two directed rows; the mutual mark is lost`, null, folding.mutualCount);
309
361
  }
310
362
  if (csv.table === "edges") {
311
363
  noteNodeCoverage(snapshot, edgeRows, note);
@@ -323,7 +375,7 @@ function planExport(snapshot, options, values) {
323
375
  if (csv.table === "adjacency") {
324
376
  const dropped = edgeColumns.length + (edgeId === null ? 0 : 1) + (edgeLabel === null ? 0 : 1);
325
377
  if (dropped > 0) {
326
- note(CSV_LOSS.EDGE_COLUMNS, `${dropped} edge column(s) are not written: an adjacency table holds the weight only`, null, dropped);
378
+ note(CSV_LOSS.EDGE_COLUMNS, `${dropped} edge column${plural(dropped)} ${agree(dropped, "is", "are")} not written: an adjacency table holds the weight only`, null, dropped);
327
379
  }
328
380
  }
329
381
  if (csv.table === "edges" && values) {
@@ -352,10 +404,7 @@ function planExport(snapshot, options, values) {
352
404
  }
353
405
  }
354
406
  else {
355
- const written = nodeColumns.length + (nodeLabel === null ? 0 : 1);
356
- if (written > 0) {
357
- note(CSV_LOSS.NODE_TABLE, `${written} node column(s) are written by a table: "nodes" export only`, null, written);
358
- }
407
+ nodeTableNote([...(nodeLabel === null ? [] : [nodeLabel.meta.name]), ...nodeColumns.map((c) => c.column.meta.name)], csv.table, note);
359
408
  }
360
409
  return {
361
410
  csv,
@@ -406,10 +455,10 @@ function noteNodeCoverage(snapshot, edgeRows, note) {
406
455
  }
407
456
  const isolated = nodeCount - next;
408
457
  if (isolated > 0) {
409
- note(CSV_LOSS.ISOLATED_NODES, `${isolated} node(s) have no edge and cannot be written by the edge table; write the node table (table: "nodes") to keep them`, null, isolated);
458
+ note(CSV_LOSS.ISOLATED_NODES, `${isolated} node${plural(isolated)} ${agree(isolated, "has", "have")} no edge and cannot be written by the edge table; write the node table (table: "nodes") to keep them`, null, isolated);
410
459
  }
411
460
  if (reordered > 0) {
412
- note(CSV_LOSS.NODE_ORDER, `${reordered} node(s) are first mentioned by an edge row out of index order; a re-import numbers nodes by first appearance`, null, reordered);
461
+ note(CSV_LOSS.NODE_ORDER, `${reordered} node${plural(reordered)} ${agree(reordered, "is", "are")} first mentioned by an edge row out of index order; a re-import numbers nodes by first appearance`, null, reordered);
413
462
  }
414
463
  }
415
464
  /**
@@ -530,7 +579,7 @@ function checkValues(column, domain, rows, note, roleColumn = false) {
530
579
  }
531
580
  }
532
581
  if (nonFinite > 0) {
533
- note(CSV_LOSS.NONFINITE, `${label}: ${nonFinite} non-finite value(s) read back as text`, name, nonFinite);
582
+ note(CSV_LOSS.NONFINITE, `${label}: ${nonFinite} non-finite value${plural(nonFinite)} ${agree(nonFinite, "reads", "read")} back as text`, name, nonFinite);
534
583
  }
535
584
  return;
536
585
  }
@@ -588,10 +637,10 @@ function typeText(snapshot, plan, e) {
588
637
  return "Directed";
589
638
  }
590
639
  /**
591
- * A neighbour cell of the adjacency table: `id:weight` for an explicit weight; `id:` for an id
640
+ * A neighbor cell of the adjacency table: `id:weight` for an explicit weight; `id:` for an id
592
641
  * holding a colon without one, so the importer does not read the id's tail as a weight; `id`
593
642
  * otherwise.
594
- * @param id - the neighbour's id text
643
+ * @param id - the neighbor's id text
595
644
  * @param weight - the weight text, or null
596
645
  * @returns the cell text (unquoted)
597
646
  */
@@ -779,6 +828,65 @@ function prepare(snapshot, options) {
779
828
  }
780
829
  return plan;
781
830
  }
831
+ /**
832
+ * The note of a table written without its header: a headerless file is read by position (source, target, weight,
833
+ * then unnamed columns; a node table: id, then unnamed columns), so any other column reads back elsewhere or unnamed.
834
+ * @param plan - the export plan
835
+ * @returns the note, or nothing when the header is written or the positions match
836
+ */
837
+ function headerlessNotes(plan) {
838
+ const { csv } = plan;
839
+ if (csv.header || csv.table === "adjacency") {
840
+ return [];
841
+ }
842
+ const names = csv.table === "nodes" ? headerlessNodeColumns(plan) : headerlessEdgeColumns(plan);
843
+ if (names.length === 0) {
844
+ return [];
845
+ }
846
+ const shown = names.map((n) => JSON.stringify(n)).join(", ");
847
+ return [
848
+ Object.freeze({
849
+ code: CSV_LOSS.HEADERLESS,
850
+ message: `without a header the file is read back by position (${csv.table === "nodes" ? "id" : "source, target, weight"}, then unnamed columns), so ${names.length === 1 ? "the column" : "the columns"} ${shown} ${agree(names.length, "reads", "read")} back unnamed or in another column's place; write the header, or for an edge list pass dialect: "generic" and write only source, target and weight`,
851
+ column: null,
852
+ count: names.length,
853
+ }),
854
+ ];
855
+ }
856
+ /**
857
+ * The node columns a headerless node table does not read back by position: every one after the id.
858
+ * @param plan - the export plan
859
+ * @returns their names
860
+ */
861
+ function headerlessNodeColumns(plan) {
862
+ const label = plan.nodeLabel === null ? [] : [plan.nodeLabel.meta.name];
863
+ return [...label, ...plan.nodeColumns.map((c) => c.header)];
864
+ }
865
+ /**
866
+ * The edge columns a headerless edge list does not read back by position: every one after the
867
+ * endpoints and the weight, and the weight when another column comes before it.
868
+ * @param plan - the export plan
869
+ * @returns their names
870
+ */
871
+ function headerlessEdgeColumns(plan) {
872
+ const { dialect } = plan.csv;
873
+ const names = [];
874
+ if (dialect.type !== null) {
875
+ names.push(dialect.type);
876
+ }
877
+ if (plan.edgeId !== null) {
878
+ names.push(plan.edgeId.meta.name);
879
+ }
880
+ if (plan.edgeLabel !== null) {
881
+ names.push(plan.edgeLabel.meta.name);
882
+ }
883
+ // a weight right after the target is where a headerless read expects it
884
+ if (plan.weights.weighted && names.length > 0) {
885
+ names.push(dialect.weight);
886
+ }
887
+ names.push(...plan.edgeColumns.map((c) => c.header));
888
+ return names;
889
+ }
782
890
  /**
783
891
  * Pre-flight: what a CSV export would lose. The generic notes describe the snapshot as a whole
784
892
  * against the format; the CSV notes concern the table selected by `table`.
@@ -791,11 +899,16 @@ function check(snapshot, options) {
791
899
  return Object.freeze([
792
900
  ...checkCapabilities(snapshot, CSV_CAPABILITIES, plan.common, { roles: KEPT_ROLES }),
793
901
  ...plan.notes,
902
+ ...headerlessNotes(plan),
794
903
  ]);
795
904
  }
796
- /** The CSV / TSV exporter plugin (subpath `@graphty/graph-io/csv`). */
905
+ /**
906
+ * The CSV / TSV exporter plugin (subpath `@graphty/graph-io/csv`).
907
+ * @category Built-in formats
908
+ */
797
909
  export const csvExporter = Object.freeze({
798
910
  format: "csv",
911
+ options: Object.freeze(["delimiter", "dialect", "header", "newline", "table"]),
799
912
  capabilities: CSV_CAPABILITIES,
800
913
  check,
801
914
  export(snapshot, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"exporter.js","sourceRoot":"","sources":["../../../../src/formats/csv/exporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exporter.js","sourceRoot":"","sources":["../../../../src/formats/csv/exporter.ts"],"names":[],"mappings":"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"}