@graphty/graph-io 0.3.25 → 0.3.27

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-DrXtu_96.js +56 -0
  4. package/dist/chunks/choose-DrXtu_96.js.map +1 -0
  5. package/dist/chunks/constants-ikG85dT8.js +231 -0
  6. package/dist/chunks/constants-ikG85dT8.js.map +1 -0
  7. package/dist/chunks/{escape-B-tkk_Cl.js → escape-D1HPTUrP.js} +390 -99
  8. package/dist/chunks/escape-D1HPTUrP.js.map +1 -0
  9. package/dist/chunks/export-CHd4tQE2.js +4333 -0
  10. package/dist/chunks/export-CHd4tQE2.js.map +1 -0
  11. package/dist/chunks/{importer-eUREhBGj.js → exporter-D23CKNqF.js} +4969 -3201
  12. package/dist/chunks/exporter-D23CKNqF.js.map +1 -0
  13. package/dist/chunks/{exporter-DIeGJXAZ.js → exporter-DfWTgrti.js} +23 -21
  14. package/dist/chunks/exporter-DfWTgrti.js.map +1 -0
  15. package/dist/chunks/exporter-DhtW6FxK.js +3465 -0
  16. package/dist/chunks/exporter-DhtW6FxK.js.map +1 -0
  17. package/dist/chunks/{exporter-BGrsWamJ.js → exporter-IHv4nkCm.js} +38 -229
  18. package/dist/chunks/exporter-IHv4nkCm.js.map +1 -0
  19. package/dist/chunks/{importer-BWY2FFc5.js → importer-B1wmPQjr.js} +255 -77
  20. package/dist/chunks/importer-B1wmPQjr.js.map +1 -0
  21. package/dist/chunks/{importer-D_e7e7LX.js → importer-B2W_58pz.js} +399 -146
  22. package/dist/chunks/importer-B2W_58pz.js.map +1 -0
  23. package/dist/chunks/importer-BSALvkui.js +2811 -0
  24. package/dist/chunks/importer-BSALvkui.js.map +1 -0
  25. package/dist/chunks/{importer-vi3bSdtw.js → importer-BVRE--Un.js} +510 -77
  26. package/dist/chunks/importer-BVRE--Un.js.map +1 -0
  27. package/dist/chunks/{importer-DET1tg6s.js → importer-CIAzt-wo.js} +1689 -312
  28. package/dist/chunks/importer-CIAzt-wo.js.map +1 -0
  29. package/dist/chunks/{importer-DIrbbnAf.js → importer-DpEW5zeG.js} +585 -226
  30. package/dist/chunks/importer-DpEW5zeG.js.map +1 -0
  31. package/dist/chunks/{importer-zGLo8Dg_.js → importer-z_FL4VMb.js} +488 -161
  32. package/dist/chunks/importer-z_FL4VMb.js.map +1 -0
  33. package/dist/chunks/json-elements-BAmNBZok.js +1225 -0
  34. package/dist/chunks/json-elements-BAmNBZok.js.map +1 -0
  35. package/dist/chunks/ontology-export-Bab4eUA8.js +357 -0
  36. package/dist/chunks/ontology-export-Bab4eUA8.js.map +1 -0
  37. package/dist/chunks/{records-dbRkxwaq.js → records-CdlvL4RO.js} +298 -114
  38. package/dist/chunks/records-CdlvL4RO.js.map +1 -0
  39. package/dist/chunks/{text-Dr0Ifpag.js → text-DzXjAiTl.js} +29 -11
  40. package/dist/chunks/text-DzXjAiTl.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 +952 -262
  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 +344 -87
  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 +565 -158
  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 +21 -3
  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 +39 -22
  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 +869 -189
  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 +3 -1
  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 +402 -85
  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 +146 -33
  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 +682 -287
  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 +227 -80
  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 +101 -27
  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 +110 -28
  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 +239 -86
  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 +67 -35
  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 +186 -54
  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 +21 -22
  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 +8 -3
  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 +40 -6
  468. package/src/common/direction.ts +78 -51
  469. package/src/common/escape.ts +39 -22
  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 +1035 -199
  475. package/src/common/line-format.ts +249 -0
  476. package/src/common/lists.ts +7 -2
  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 +479 -90
  487. package/src/common/zip.ts +169 -7
  488. package/src/formats/csv/exporter.ts +202 -47
  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 +890 -302
  496. package/src/formats/cx/index.ts +4 -3
  497. package/src/formats/cx2/exporter.ts +62 -339
  498. package/src/formats/cx2/importer.ts +318 -87
  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 +142 -34
  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 +113 -28
  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 +321 -102
  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 +90 -42
  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 +216 -55
  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 +36 -28
  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 +12 -4
  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
@@ -9,43 +9,83 @@
9
9
  * the token list is the one intermediate structure of the GML importer, and it costs 17 bytes per
10
10
  * token instead of an object per node.
11
11
  */
12
- /** A bare word: a key, or `INF` / `NAN` at a value position. */
12
+ /**
13
+ * A bare word: a key, or `INF` / `NAN` at a value position.
14
+ * @category Plugin helpers
15
+ */
13
16
  export declare const TOKEN_WORD = 0;
14
- /** An integer literal. */
17
+ /**
18
+ * An integer literal.
19
+ * @category Plugin helpers
20
+ */
15
21
  export declare const TOKEN_INT = 1;
16
- /** A real literal, including the non-finite spellings. */
22
+ /**
23
+ * A real literal, including the non-finite spellings.
24
+ * @category Plugin helpers
25
+ */
17
26
  export declare const TOKEN_REAL = 2;
18
- /** A double-quoted string; start / end delimit the body between the quotes. */
27
+ /**
28
+ * A double-quoted string; start / end delimit the body between the quotes.
29
+ * @category Plugin helpers
30
+ */
19
31
  export declare const TOKEN_STRING = 3;
20
- /** `[`. */
32
+ /**
33
+ * `[`.
34
+ * @category Plugin helpers
35
+ */
21
36
  export declare const TOKEN_OPEN = 4;
22
- /** `]`. */
37
+ /**
38
+ * `]`.
39
+ * @category Plugin helpers
40
+ */
23
41
  export declare const TOKEN_CLOSE = 5;
24
42
  /** The kind of one token. */
25
43
  type TokenKind = 0 | 1 | 2 | 3 | 4 | 5;
26
- /** The NetworkX marker that starts a one-element list written as repeated keys. */
44
+ /**
45
+ * The NetworkX marker that starts a one-element list written as repeated keys.
46
+ * @category Plugin helpers
47
+ */
27
48
  export declare const LIST_START_MARKER = "_networkx_list_start";
28
- /** The string NetworkX writes for an empty list. */
49
+ /**
50
+ * The string NetworkX writes for an empty list.
51
+ * @category Plugin helpers
52
+ */
29
53
  export declare const EMPTY_LIST_TEXT = "[]";
30
- /** The string NetworkX writes for an empty tuple, read as an empty list too. */
54
+ /**
55
+ * The string NetworkX writes for an empty tuple, read as an empty list too.
56
+ * @category Plugin helpers
57
+ */
31
58
  export declare const EMPTY_TUPLE_TEXT = "()";
32
- /** The node key the exporter writes a mangled node's original id into (design section 8.5). */
59
+ /**
60
+ * The node key the exporter writes a mangled node's original id into (design section 8.5).
61
+ * @category Plugin helpers
62
+ */
33
63
  export declare const ORIGINAL_ID_KEY = "graphty_originalId";
34
64
  /**
35
- * Issue code of every grammar violation (shared with the other text formats; the message carries
36
- * the detail): a bare token that is neither a key nor a number, an unclosed string, an unclosed
37
- * `[`, a `]` with no open `[`, a value without a key or a key without a value.
65
+ * The text breaks the format's syntax: a word that is not a key or a number, an unclosed string or `[`, a `]` with no
66
+ * open `[`, or a key without a value. The message says where. The import stops.
67
+ * @category Issue and loss codes
38
68
  */
39
69
  export declare const SYNTAX_STRUCTURE_CODE = "E_SYNTAX";
40
- /** The code of an untokenisable bare token (E_SYNTAX). */
70
+ /**
71
+ * The code of an untokenizable bare token (E_SYNTAX).
72
+ * @category Issue and loss codes
73
+ */
41
74
  export declare const SYNTAX_TOKEN_CODE = "E_SYNTAX";
42
- /** The code of an unclosed string (E_SYNTAX). */
75
+ /**
76
+ * The code of an unclosed string (E_SYNTAX).
77
+ * @category Issue and loss codes
78
+ */
43
79
  export declare const SYNTAX_STRING_CODE = "E_SYNTAX";
44
- /** The code of an unclosed `[` (E_SYNTAX). */
80
+ /**
81
+ * The code of an unclosed `[` (E_SYNTAX).
82
+ * @category Issue and loss codes
83
+ */
45
84
  export declare const SYNTAX_BRACKET_CODE = "E_SYNTAX";
46
85
  /**
47
86
  * A lexical or structural error of a GML text, with the 1-based line it was found on. The importer
48
87
  * turns it into a fatal parse-error issue.
88
+ * @category Plugin helpers
49
89
  */
50
90
  export declare class GmlSyntaxError extends Error {
51
91
  /** The issue code. */
@@ -63,6 +103,7 @@ export declare class GmlSyntaxError extends Error {
63
103
  /**
64
104
  * The tokens of one GML text, structurally validated: every `[` has its matching `]` recorded and
65
105
  * every key is followed by a value, so walkers need no error paths.
106
+ * @category Plugin helpers
66
107
  */
67
108
  export declare class GmlTokens {
68
109
  /** The source text the offsets index into. */
@@ -126,8 +167,9 @@ export declare class GmlTokens {
126
167
  * Lex and structurally validate a whole GML text.
127
168
  *
128
169
  * Lexical rules (NetworkX): whitespace separates tokens; `#` outside a string starts a comment
129
- * that runs to the end of the line; a string is delimited by double quotes and must close on its
130
- * line (there is no escape mechanism; `&#NN;` references are decoded later); `[` and `]` are
170
+ * that runs to the end of the line; a string is delimited by double quotes and may span lines (a
171
+ * line break inside is part of it, GML draft 3.2.5; there is no escape mechanism; `&#NN;`
172
+ * references are decoded later); a U+FEFF between tokens is whitespace; `[` and `]` are
131
173
  * single-character tokens; every other run of characters is a key (`[A-Za-z_][0-9A-Za-z_]*`),
132
174
  * an integer (`[+-]?[0-9]+`), a real (with a decimal point or an exponent, or `INF` / `NAN` in
133
175
  * any case with an optional sign) or an error.
@@ -136,12 +178,14 @@ export declare class GmlTokens {
136
178
  * string, `INF` / `NAN`, or a bracketed sequence of pairs; every `[` has a `]`.
137
179
  * @param text - the GML text
138
180
  * @returns the validated tokens; GmlSyntaxError with the line of the first problem
181
+ * @category Plugin helpers
139
182
  */
140
183
  export declare function tokenizeGml(text: string): GmlTokens;
141
184
  /**
142
185
  * The numeric value of an INT or REAL token (or a WORD that is `INF` / `NAN` at a value position).
143
186
  * @param text - the token text
144
187
  * @returns the number; Infinity / -Infinity / NaN for the non-finite spellings
188
+ * @category Plugin helpers
145
189
  */
146
190
  export declare function numberOfText(text: string): number;
147
191
  /**
@@ -149,6 +193,7 @@ export declare function numberOfText(text: string): number;
149
193
  * @param tokens - the tokens
150
194
  * @param i - the value token index
151
195
  * @returns true when the word is a real
196
+ * @category Plugin helpers
152
197
  */
153
198
  export declare function isNonFiniteWord(tokens: GmlTokens, i: number): boolean;
154
199
  /**
@@ -156,6 +201,7 @@ export declare function isNonFiniteWord(tokens: GmlTokens, i: number): boolean;
156
201
  * writes and reads).
157
202
  * @param text - the candidate key
158
203
  * @returns true when it can be written as a key
204
+ * @category Plugin helpers
159
205
  */
160
206
  export declare function isGmlKey(text: string): boolean;
161
207
  /**
@@ -163,6 +209,7 @@ export declare function isGmlKey(text: string): boolean;
163
209
  * non-letter is prefixed with `x` (the exporter's `sanitizeKeys: "mangle"`).
164
210
  * @param text - the text
165
211
  * @returns a valid key
212
+ * @category Plugin helpers
166
213
  */
167
214
  export declare function mangleGmlKey(text: string): string;
168
215
  /**
@@ -175,6 +222,7 @@ export declare function mangleGmlKey(text: string): string;
175
222
  * @param tokens - the validated tokens
176
223
  * @param open - the index of the record's `[`
177
224
  * @returns a null-prototype object
225
+ * @category Plugin helpers
178
226
  */
179
227
  export declare function parseRecord(tokens: GmlTokens, open: number): Record<string, unknown>;
180
228
  /**
@@ -182,6 +230,7 @@ export declare function parseRecord(tokens: GmlTokens, open: number): Record<str
182
230
  * @param tokens - the tokens
183
231
  * @param v - the value token index (INT, REAL, non-finite WORD or OPEN)
184
232
  * @returns the value
233
+ * @category Plugin helpers
185
234
  */
186
235
  export declare function scalarOrRecord(tokens: GmlTokens, v: number): unknown;
187
236
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../../../src/formats/gml/syntax.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,gEAAgE;AAChE,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,0BAA0B;AAC1B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,0DAA0D;AAC1D,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,+EAA+E;AAC/E,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,WAAW;AACX,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,WAAW;AACX,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,6BAA6B;AAC7B,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvC,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD,oDAAoD;AACpD,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,+FAA+F;AAC/F,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,aAAc,CAAC;AACjD,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,aAAc,CAAC;AAC7C,iDAAiD;AACjD,eAAO,MAAM,kBAAkB,aAAc,CAAC;AAC9C,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,aAAc,CAAC;AAS/C;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACrC,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAM1D;AAED;;;GAGG;AACH,qBAAa,SAAS;IAClB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,+BAA+B;IAC/B,IAAI,EAAE,UAAU,CAAC;IAEjB,+DAA+D;IAC/D,KAAK,EAAE,WAAW,CAAC;IAEnB,uEAAuE;IACvE,GAAG,EAAE,WAAW,CAAC;IAEjB,uCAAuC;IACvC,IAAI,EAAE,WAAW,CAAC;IAElB,iFAAiF;IACjF,KAAK,EAAE,WAAW,CAAC;IAEnB,4BAA4B;IAC5B,KAAK,SAAK;IAEV,mGAAmG;IACnG,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAExE;;;;OAIG;gBACS,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAO;IASzC;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAWrE;;;;OAIG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAIzB;;;;OAIG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAS3B;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAI7B;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAK7B,0BAA0B;IAC1B,OAAO,CAAC,IAAI;CAef;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CA6CnD;AA+ID;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASjD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwCpF;AAsBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEpE"}
1
+ {"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../../../src/formats/gml/syntax.ts"],"names":[],"mappings":"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"}
@@ -11,37 +11,77 @@
11
11
  */
12
12
  import { SYNTAX_CODE } from "../../common/codes.js";
13
13
  import { decodeGmlString } from "../../common/escape.js";
14
- /** A bare word: a key, or `INF` / `NAN` at a value position. */
14
+ import { plural } from "../../common/plural.js";
15
+ /**
16
+ * A bare word: a key, or `INF` / `NAN` at a value position.
17
+ * @category Plugin helpers
18
+ */
15
19
  export const TOKEN_WORD = 0;
16
- /** An integer literal. */
20
+ /**
21
+ * An integer literal.
22
+ * @category Plugin helpers
23
+ */
17
24
  export const TOKEN_INT = 1;
18
- /** A real literal, including the non-finite spellings. */
25
+ /**
26
+ * A real literal, including the non-finite spellings.
27
+ * @category Plugin helpers
28
+ */
19
29
  export const TOKEN_REAL = 2;
20
- /** A double-quoted string; start / end delimit the body between the quotes. */
30
+ /**
31
+ * A double-quoted string; start / end delimit the body between the quotes.
32
+ * @category Plugin helpers
33
+ */
21
34
  export const TOKEN_STRING = 3;
22
- /** `[`. */
35
+ /**
36
+ * `[`.
37
+ * @category Plugin helpers
38
+ */
23
39
  export const TOKEN_OPEN = 4;
24
- /** `]`. */
40
+ /**
41
+ * `]`.
42
+ * @category Plugin helpers
43
+ */
25
44
  export const TOKEN_CLOSE = 5;
26
- /** The NetworkX marker that starts a one-element list written as repeated keys. */
45
+ /**
46
+ * The NetworkX marker that starts a one-element list written as repeated keys.
47
+ * @category Plugin helpers
48
+ */
27
49
  export const LIST_START_MARKER = "_networkx_list_start";
28
- /** The string NetworkX writes for an empty list. */
50
+ /**
51
+ * The string NetworkX writes for an empty list.
52
+ * @category Plugin helpers
53
+ */
29
54
  export const EMPTY_LIST_TEXT = "[]";
30
- /** The string NetworkX writes for an empty tuple, read as an empty list too. */
55
+ /**
56
+ * The string NetworkX writes for an empty tuple, read as an empty list too.
57
+ * @category Plugin helpers
58
+ */
31
59
  export const EMPTY_TUPLE_TEXT = "()";
32
- /** The node key the exporter writes a mangled node's original id into (design section 8.5). */
60
+ /**
61
+ * The node key the exporter writes a mangled node's original id into (design section 8.5).
62
+ * @category Plugin helpers
63
+ */
33
64
  export const ORIGINAL_ID_KEY = "graphty_originalId";
34
65
  /**
35
- * Issue code of every grammar violation (shared with the other text formats; the message carries
36
- * the detail): a bare token that is neither a key nor a number, an unclosed string, an unclosed
37
- * `[`, a `]` with no open `[`, a value without a key or a key without a value.
66
+ * The text breaks the format's syntax: a word that is not a key or a number, an unclosed string or `[`, a `]` with no
67
+ * open `[`, or a key without a value. The message says where. The import stops.
68
+ * @category Issue and loss codes
38
69
  */
39
70
  export const SYNTAX_STRUCTURE_CODE = SYNTAX_CODE;
40
- /** The code of an untokenisable bare token (E_SYNTAX). */
71
+ /**
72
+ * The code of an untokenizable bare token (E_SYNTAX).
73
+ * @category Issue and loss codes
74
+ */
41
75
  export const SYNTAX_TOKEN_CODE = SYNTAX_CODE;
42
- /** The code of an unclosed string (E_SYNTAX). */
76
+ /**
77
+ * The code of an unclosed string (E_SYNTAX).
78
+ * @category Issue and loss codes
79
+ */
43
80
  export const SYNTAX_STRING_CODE = SYNTAX_CODE;
44
- /** The code of an unclosed `[` (E_SYNTAX). */
81
+ /**
82
+ * The code of an unclosed `[` (E_SYNTAX).
83
+ * @category Issue and loss codes
84
+ */
45
85
  export const SYNTAX_BRACKET_CODE = SYNTAX_CODE;
46
86
  const KEY_TEXT = /^[A-Za-z_][0-9A-Za-z_]*$/;
47
87
  const STRICT_KEY_TEXT = /^[A-Za-z][0-9A-Za-z_]*$/;
@@ -52,6 +92,7 @@ const NON_FINITE_WORD = /^(?:inf|infinity|nan)$/i;
52
92
  /**
53
93
  * A lexical or structural error of a GML text, with the 1-based line it was found on. The importer
54
94
  * turns it into a fatal parse-error issue.
95
+ * @category Plugin helpers
55
96
  */
56
97
  export class GmlSyntaxError extends Error {
57
98
  /**
@@ -70,6 +111,7 @@ export class GmlSyntaxError extends Error {
70
111
  /**
71
112
  * The tokens of one GML text, structurally validated: every `[` has its matching `]` recorded and
72
113
  * every key is followed by a value, so walkers need no error paths.
114
+ * @category Plugin helpers
73
115
  */
74
116
  export class GmlTokens {
75
117
  /**
@@ -120,12 +162,20 @@ export class GmlTokens {
120
162
  * @returns the body with character references decoded
121
163
  */
122
164
  stringOf(i) {
123
- const text = this.textOf(i);
165
+ let text = this.textOf(i);
166
+ if (text.includes("\r")) {
167
+ // a line break inside a string is part of it, as LF whatever the file's line ends
168
+ text = text.replaceAll(/\r\n?/g, "\n");
169
+ }
124
170
  if (text.indexOf("&") < 0) {
125
171
  return text;
126
172
  }
127
173
  const report = this.onUnknownEntity;
128
- return decodeGmlString(text, report === null ? undefined : (entity) => { report(entity, this.line[i]); });
174
+ return decodeGmlString(text, report === null
175
+ ? undefined
176
+ : (entity) => {
177
+ report(entity, this.line[i]);
178
+ });
129
179
  }
130
180
  /**
131
181
  * Whether a token is a `[` or `]`.
@@ -165,8 +215,9 @@ export class GmlTokens {
165
215
  * Lex and structurally validate a whole GML text.
166
216
  *
167
217
  * Lexical rules (NetworkX): whitespace separates tokens; `#` outside a string starts a comment
168
- * that runs to the end of the line; a string is delimited by double quotes and must close on its
169
- * line (there is no escape mechanism; `&#NN;` references are decoded later); `[` and `]` are
218
+ * that runs to the end of the line; a string is delimited by double quotes and may span lines (a
219
+ * line break inside is part of it, GML draft 3.2.5; there is no escape mechanism; `&#NN;`
220
+ * references are decoded later); a U+FEFF between tokens is whitespace; `[` and `]` are
170
221
  * single-character tokens; every other run of characters is a key (`[A-Za-z_][0-9A-Za-z_]*`),
171
222
  * an integer (`[+-]?[0-9]+`), a real (with a decimal point or an exponent, or `INF` / `NAN` in
172
223
  * any case with an optional sign) or an error.
@@ -175,12 +226,15 @@ export class GmlTokens {
175
226
  * string, `INF` / `NAN`, or a bracketed sequence of pairs; every `[` has a `]`.
176
227
  * @param text - the GML text
177
228
  * @returns the validated tokens; GmlSyntaxError with the line of the first problem
229
+ * @category Plugin helpers
178
230
  */
179
231
  export function tokenizeGml(text) {
180
232
  const tokens = new GmlTokens(text, Math.max(1024, text.length >>> 3));
181
233
  const n = text.length;
182
234
  let i = 0;
183
235
  let line = 1;
236
+ // the opening line of the first string that spans lines: where a missing quote most likely is
237
+ let spanningLine = 0;
184
238
  while (i < n) {
185
239
  const c = text.charCodeAt(i);
186
240
  if (c === 10) {
@@ -197,6 +251,10 @@ export function tokenizeGml(text) {
197
251
  else if (c === 32 || c === 9 || c === 11 || c === 12) {
198
252
  i++;
199
253
  }
254
+ else if (c === 0xfeff) {
255
+ // a BOM left inside by concatenated files is whitespace; the shared text check reports it
256
+ i++;
257
+ }
200
258
  else if (c === 35) {
201
259
  i = endOfLine(text, i);
202
260
  }
@@ -210,11 +268,23 @@ export function tokenizeGml(text) {
210
268
  }
211
269
  else if (c === 34) {
212
270
  const close = text.indexOf('"', i + 1);
213
- const eol = endOfLine(text, i + 1);
214
- if (close < 0 || close > eol) {
215
- throw new GmlSyntaxError(SYNTAX_STRING_CODE, `unclosed string at line ${line}`, line);
271
+ if (close < 0) {
272
+ const hint = spanningLine === 0
273
+ ? ""
274
+ : `; the string opened at line ${spanningLine} spans lines, so a quote may be missing there`;
275
+ throw new GmlSyntaxError(SYNTAX_STRING_CODE, `unclosed string opened at line ${line}${hint}`, line);
216
276
  }
217
277
  tokens.push(TOKEN_STRING, i + 1, close, line);
278
+ const opened = line;
279
+ for (let k = i + 1; k < close; k++) {
280
+ const d = text.codePointAt(k);
281
+ if (d === 10 || (d === 13 && text.codePointAt(k + 1) !== 10)) {
282
+ line++;
283
+ }
284
+ }
285
+ if (line !== opened && spanningLine === 0) {
286
+ spanningLine = opened;
287
+ }
218
288
  i = close + 1;
219
289
  }
220
290
  else {
@@ -281,8 +351,14 @@ function classifyBare(text, start, end, line) {
281
351
  if (REAL_TEXT.test(token) || NON_FINITE_TEXT.test(token)) {
282
352
  return TOKEN_REAL;
283
353
  }
284
- const shown = token.length > 20 ? `${token.slice(0, 20)}...` : token;
285
- throw new GmlSyntaxError(SYNTAX_TOKEN_CODE, `cannot tokenize "${shown}" at line ${line}`, line);
354
+ // the message is ASCII: a character outside it is shown as \uXXXX and named, since it may look
355
+ // like something else (a no-break space pasted from a web page looks like a space)
356
+ const hex = (c) => (c.codePointAt(0) ?? 0).toString(16).toUpperCase().padStart(4, "0");
357
+ const head = token.length > 20 ? `${token.slice(0, 20)}...` : token;
358
+ const shown = head.replaceAll(/[^\x20-\x7e]/gu, (c) => String.raw `\u` + hex(c));
359
+ const odd = /[^\x21-\x7e]/u.exec(token);
360
+ const note = odd === null ? "" : ` (it holds U+${hex(odd[0])}, which GML allows only inside a string)`;
361
+ throw new GmlSyntaxError(SYNTAX_TOKEN_CODE, `cannot tokenize "${shown}" at line ${line}${note}`, line);
286
362
  }
287
363
  /**
288
364
  * Check the `key value` structure and record the matching bracket of every `[`.
@@ -322,7 +398,7 @@ function validateStructure(tokens) {
322
398
  }
323
399
  if (stack.length > 0) {
324
400
  const open = stack[stack.length - 1];
325
- throw new GmlSyntaxError(SYNTAX_BRACKET_CODE, `unexpected end of input: ${stack.length} bracket(s) still open, the last opened at line ${tokens.line[open]}`, tokens.line[open]);
401
+ throw new GmlSyntaxError(SYNTAX_BRACKET_CODE, `unexpected end of input: ${stack.length} bracket${plural(stack.length)} still open, the last opened at line ${tokens.line[open]}`, tokens.line[open]);
326
402
  }
327
403
  tokens.match = match;
328
404
  }
@@ -348,12 +424,13 @@ function describeToken(tokens, i) {
348
424
  * The numeric value of an INT or REAL token (or a WORD that is `INF` / `NAN` at a value position).
349
425
  * @param text - the token text
350
426
  * @returns the number; Infinity / -Infinity / NaN for the non-finite spellings
427
+ * @category Plugin helpers
351
428
  */
352
429
  export function numberOfText(text) {
353
430
  if (NON_FINITE_TEXT.test(text)) {
354
431
  const lower = text.toLowerCase();
355
432
  if (lower.endsWith("nan")) {
356
- return NaN;
433
+ return Number.NaN;
357
434
  }
358
435
  return lower.startsWith("-") ? -Infinity : Infinity;
359
436
  }
@@ -364,6 +441,7 @@ export function numberOfText(text) {
364
441
  * @param tokens - the tokens
365
442
  * @param i - the value token index
366
443
  * @returns true when the word is a real
444
+ * @category Plugin helpers
367
445
  */
368
446
  export function isNonFiniteWord(tokens, i) {
369
447
  return tokens.kind[i] === TOKEN_WORD && NON_FINITE_WORD.test(tokens.textOf(i));
@@ -373,6 +451,7 @@ export function isNonFiniteWord(tokens, i) {
373
451
  * writes and reads).
374
452
  * @param text - the candidate key
375
453
  * @returns true when it can be written as a key
454
+ * @category Plugin helpers
376
455
  */
377
456
  export function isGmlKey(text) {
378
457
  return STRICT_KEY_TEXT.test(text);
@@ -382,9 +461,10 @@ export function isGmlKey(text) {
382
461
  * non-letter is prefixed with `x` (the exporter's `sanitizeKeys: "mangle"`).
383
462
  * @param text - the text
384
463
  * @returns a valid key
464
+ * @category Plugin helpers
385
465
  */
386
466
  export function mangleGmlKey(text) {
387
- const body = text.replace(/[^0-9A-Za-z_]/g, "_");
467
+ const body = text.replaceAll(/\W/g, "_");
388
468
  return /^[A-Za-z]/.test(body) ? body : `x${body}`;
389
469
  }
390
470
  /**
@@ -397,6 +477,7 @@ export function mangleGmlKey(text) {
397
477
  * @param tokens - the validated tokens
398
478
  * @param open - the index of the record's `[`
399
479
  * @returns a null-prototype object
480
+ * @category Plugin helpers
400
481
  */
401
482
  export function parseRecord(tokens, open) {
402
483
  const root = Object.create(null);
@@ -467,6 +548,7 @@ function storeValue(frame, key, value) {
467
548
  * @param tokens - the tokens
468
549
  * @param v - the value token index (INT, REAL, non-finite WORD or OPEN)
469
550
  * @returns the value
551
+ * @category Plugin helpers
470
552
  */
471
553
  export function scalarOrRecord(tokens, v) {
472
554
  return tokens.kind[v] === TOKEN_OPEN ? parseRecord(tokens, v) : numberOfText(tokens.textOf(v));
@@ -1 +1 @@
1
- {"version":3,"file":"syntax.js","sourceRoot":"","sources":["../../../../src/formats/gml/syntax.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syntax.js","sourceRoot":"","sources":["../../../../src/formats/gml/syntax.ts"],"names":[],"mappings":"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"}