@graphty/graph-io 0.0.0 → 0.2.1

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 (339) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +250 -28
  3. package/dist/chunks/children-CL3Cy0ez.js +238 -0
  4. package/dist/chunks/children-CL3Cy0ez.js.map +1 -0
  5. package/dist/chunks/escape-DyI8JofU.js +938 -0
  6. package/dist/chunks/escape-DyI8JofU.js.map +1 -0
  7. package/dist/chunks/importer-CQnJuWJw.js +2987 -0
  8. package/dist/chunks/importer-CQnJuWJw.js.map +1 -0
  9. package/dist/chunks/importer-CpCpfbxr.js +2015 -0
  10. package/dist/chunks/importer-CpCpfbxr.js.map +1 -0
  11. package/dist/chunks/importer-DbnGYr3_.js +2342 -0
  12. package/dist/chunks/importer-DbnGYr3_.js.map +1 -0
  13. package/dist/chunks/importer-GozH8DkN.js +3050 -0
  14. package/dist/chunks/importer-GozH8DkN.js.map +1 -0
  15. package/dist/chunks/records-CGpxszm1.js +605 -0
  16. package/dist/chunks/records-CGpxszm1.js.map +1 -0
  17. package/dist/chunks/text-CajMdVFy.js +189 -0
  18. package/dist/chunks/text-CajMdVFy.js.map +1 -0
  19. package/dist/chunks/writer-DxSKC7TL.js +2842 -0
  20. package/dist/chunks/writer-DxSKC7TL.js.map +1 -0
  21. package/dist/csv.d.ts +1 -0
  22. package/dist/csv.js +1702 -0
  23. package/dist/csv.js.map +1 -0
  24. package/dist/dot.d.ts +1 -0
  25. package/dist/dot.js +8 -0
  26. package/dist/dot.js.map +1 -0
  27. package/dist/gexf.d.ts +1 -0
  28. package/dist/gexf.js +3466 -0
  29. package/dist/gexf.js.map +1 -0
  30. package/dist/gml.d.ts +1 -0
  31. package/dist/gml.js +2647 -0
  32. package/dist/gml.js.map +1 -0
  33. package/dist/graph-io.d.ts +1 -0
  34. package/dist/graph-io.js +790 -0
  35. package/dist/graph-io.js.map +1 -0
  36. package/dist/graphml.d.ts +1 -0
  37. package/dist/graphml.js +8 -0
  38. package/dist/graphml.js.map +1 -0
  39. package/dist/json.d.ts +1 -0
  40. package/dist/json.js +11 -0
  41. package/dist/json.js.map +1 -0
  42. package/dist/neo4j.d.ts +1 -0
  43. package/dist/neo4j.js +2046 -0
  44. package/dist/neo4j.js.map +1 -0
  45. package/dist/pajek.d.ts +1 -0
  46. package/dist/pajek.js +8 -0
  47. package/dist/pajek.js.map +1 -0
  48. package/dist/src/children.d.ts +134 -0
  49. package/dist/src/children.d.ts.map +1 -0
  50. package/dist/src/children.js +274 -0
  51. package/dist/src/children.js.map +1 -0
  52. package/dist/src/common/attributes.d.ts +229 -0
  53. package/dist/src/common/attributes.d.ts.map +1 -0
  54. package/dist/src/common/attributes.js +368 -0
  55. package/dist/src/common/attributes.js.map +1 -0
  56. package/dist/src/common/codes.d.ts +105 -0
  57. package/dist/src/common/codes.d.ts.map +1 -0
  58. package/dist/src/common/codes.js +107 -0
  59. package/dist/src/common/codes.js.map +1 -0
  60. package/dist/src/common/declared-types.d.ts +84 -0
  61. package/dist/src/common/declared-types.d.ts.map +1 -0
  62. package/dist/src/common/declared-types.js +326 -0
  63. package/dist/src/common/declared-types.js.map +1 -0
  64. package/dist/src/common/direction.d.ts +206 -0
  65. package/dist/src/common/direction.d.ts.map +1 -0
  66. package/dist/src/common/direction.js +370 -0
  67. package/dist/src/common/direction.js.map +1 -0
  68. package/dist/src/common/escape.d.ts +92 -0
  69. package/dist/src/common/escape.d.ts.map +1 -0
  70. package/dist/src/common/escape.js +212 -0
  71. package/dist/src/common/escape.js.map +1 -0
  72. package/dist/src/common/export.d.ts +249 -0
  73. package/dist/src/common/export.d.ts.map +1 -0
  74. package/dist/src/common/export.js +594 -0
  75. package/dist/src/common/export.js.map +1 -0
  76. package/dist/src/common/format.d.ts +59 -0
  77. package/dist/src/common/format.d.ts.map +1 -0
  78. package/dist/src/common/format.js +106 -0
  79. package/dist/src/common/format.js.map +1 -0
  80. package/dist/src/common/ids.d.ts +83 -0
  81. package/dist/src/common/ids.d.ts.map +1 -0
  82. package/dist/src/common/ids.js +158 -0
  83. package/dist/src/common/ids.js.map +1 -0
  84. package/dist/src/common/input.d.ts +100 -0
  85. package/dist/src/common/input.d.ts.map +1 -0
  86. package/dist/src/common/input.js +335 -0
  87. package/dist/src/common/input.js.map +1 -0
  88. package/dist/src/common/lists.d.ts +34 -0
  89. package/dist/src/common/lists.d.ts.map +1 -0
  90. package/dist/src/common/lists.js +185 -0
  91. package/dist/src/common/lists.js.map +1 -0
  92. package/dist/src/common/options.d.ts +108 -0
  93. package/dist/src/common/options.d.ts.map +1 -0
  94. package/dist/src/common/options.js +265 -0
  95. package/dist/src/common/options.js.map +1 -0
  96. package/dist/src/common/report.d.ts +187 -0
  97. package/dist/src/common/report.d.ts.map +1 -0
  98. package/dist/src/common/report.js +274 -0
  99. package/dist/src/common/report.js.map +1 -0
  100. package/dist/src/common/temporal.d.ts +71 -0
  101. package/dist/src/common/temporal.d.ts.map +1 -0
  102. package/dist/src/common/temporal.js +266 -0
  103. package/dist/src/common/temporal.js.map +1 -0
  104. package/dist/src/common/text.d.ts +104 -0
  105. package/dist/src/common/text.d.ts.map +1 -0
  106. package/dist/src/common/text.js +255 -0
  107. package/dist/src/common/text.js.map +1 -0
  108. package/dist/src/common/weights.d.ts +77 -0
  109. package/dist/src/common/weights.d.ts.map +1 -0
  110. package/dist/src/common/weights.js +156 -0
  111. package/dist/src/common/weights.js.map +1 -0
  112. package/dist/src/common/writer.d.ts +51 -0
  113. package/dist/src/common/writer.d.ts.map +1 -0
  114. package/dist/src/common/writer.js +108 -0
  115. package/dist/src/common/writer.js.map +1 -0
  116. package/dist/src/common/xml.d.ts +245 -0
  117. package/dist/src/common/xml.d.ts.map +1 -0
  118. package/dist/src/common/xml.js +942 -0
  119. package/dist/src/common/xml.js.map +1 -0
  120. package/dist/src/formats/csv/exporter.d.ts +70 -0
  121. package/dist/src/formats/csv/exporter.d.ts.map +1 -0
  122. package/dist/src/formats/csv/exporter.js +682 -0
  123. package/dist/src/formats/csv/exporter.js.map +1 -0
  124. package/dist/src/formats/csv/header.d.ts +66 -0
  125. package/dist/src/formats/csv/header.d.ts.map +1 -0
  126. package/dist/src/formats/csv/header.js +152 -0
  127. package/dist/src/formats/csv/header.js.map +1 -0
  128. package/dist/src/formats/csv/importer.d.ts +82 -0
  129. package/dist/src/formats/csv/importer.d.ts.map +1 -0
  130. package/dist/src/formats/csv/importer.js +849 -0
  131. package/dist/src/formats/csv/importer.js.map +1 -0
  132. package/dist/src/formats/csv/index.d.ts +60 -0
  133. package/dist/src/formats/csv/index.d.ts.map +1 -0
  134. package/dist/src/formats/csv/index.js +63 -0
  135. package/dist/src/formats/csv/index.js.map +1 -0
  136. package/dist/src/formats/csv/records.d.ts +188 -0
  137. package/dist/src/formats/csv/records.d.ts.map +1 -0
  138. package/dist/src/formats/csv/records.js +702 -0
  139. package/dist/src/formats/csv/records.js.map +1 -0
  140. package/dist/src/formats/csv/values.d.ts +105 -0
  141. package/dist/src/formats/csv/values.d.ts.map +1 -0
  142. package/dist/src/formats/csv/values.js +192 -0
  143. package/dist/src/formats/csv/values.js.map +1 -0
  144. package/dist/src/formats/dot/exporter.d.ts +52 -0
  145. package/dist/src/formats/dot/exporter.d.ts.map +1 -0
  146. package/dist/src/formats/dot/exporter.js +836 -0
  147. package/dist/src/formats/dot/exporter.js.map +1 -0
  148. package/dist/src/formats/dot/importer.d.ts +102 -0
  149. package/dist/src/formats/dot/importer.d.ts.map +1 -0
  150. package/dist/src/formats/dot/importer.js +1291 -0
  151. package/dist/src/formats/dot/importer.js.map +1 -0
  152. package/dist/src/formats/dot/index.d.ts +7 -0
  153. package/dist/src/formats/dot/index.d.ts.map +1 -0
  154. package/dist/src/formats/dot/index.js +7 -0
  155. package/dist/src/formats/dot/index.js.map +1 -0
  156. package/dist/src/formats/dot/names.d.ts +29 -0
  157. package/dist/src/formats/dot/names.d.ts.map +1 -0
  158. package/dist/src/formats/dot/names.js +28 -0
  159. package/dist/src/formats/dot/names.js.map +1 -0
  160. package/dist/src/formats/dot/tokenizer.d.ts +114 -0
  161. package/dist/src/formats/dot/tokenizer.d.ts.map +1 -0
  162. package/dist/src/formats/dot/tokenizer.js +341 -0
  163. package/dist/src/formats/dot/tokenizer.js.map +1 -0
  164. package/dist/src/formats/gexf/exporter.d.ts +56 -0
  165. package/dist/src/formats/gexf/exporter.d.ts.map +1 -0
  166. package/dist/src/formats/gexf/exporter.js +1395 -0
  167. package/dist/src/formats/gexf/exporter.js.map +1 -0
  168. package/dist/src/formats/gexf/importer.d.ts +73 -0
  169. package/dist/src/formats/gexf/importer.d.ts.map +1 -0
  170. package/dist/src/formats/gexf/importer.js +1880 -0
  171. package/dist/src/formats/gexf/importer.js.map +1 -0
  172. package/dist/src/formats/gexf/index.d.ts +96 -0
  173. package/dist/src/formats/gexf/index.d.ts.map +1 -0
  174. package/dist/src/formats/gexf/index.js +97 -0
  175. package/dist/src/formats/gexf/index.js.map +1 -0
  176. package/dist/src/formats/gexf/schema.d.ts +135 -0
  177. package/dist/src/formats/gexf/schema.d.ts.map +1 -0
  178. package/dist/src/formats/gexf/schema.js +323 -0
  179. package/dist/src/formats/gexf/schema.js.map +1 -0
  180. package/dist/src/formats/gml/exporter.d.ts +69 -0
  181. package/dist/src/formats/gml/exporter.d.ts.map +1 -0
  182. package/dist/src/formats/gml/exporter.js +1093 -0
  183. package/dist/src/formats/gml/exporter.js.map +1 -0
  184. package/dist/src/formats/gml/importer.d.ts +66 -0
  185. package/dist/src/formats/gml/importer.d.ts.map +1 -0
  186. package/dist/src/formats/gml/importer.js +1331 -0
  187. package/dist/src/formats/gml/importer.js.map +1 -0
  188. package/dist/src/formats/gml/index.d.ts +85 -0
  189. package/dist/src/formats/gml/index.d.ts.map +1 -0
  190. package/dist/src/formats/gml/index.js +88 -0
  191. package/dist/src/formats/gml/index.js.map +1 -0
  192. package/dist/src/formats/gml/syntax.d.ts +186 -0
  193. package/dist/src/formats/gml/syntax.d.ts.map +1 -0
  194. package/dist/src/formats/gml/syntax.js +467 -0
  195. package/dist/src/formats/gml/syntax.js.map +1 -0
  196. package/dist/src/formats/graphml/constants.d.ts +169 -0
  197. package/dist/src/formats/graphml/constants.d.ts.map +1 -0
  198. package/dist/src/formats/graphml/constants.js +165 -0
  199. package/dist/src/formats/graphml/constants.js.map +1 -0
  200. package/dist/src/formats/graphml/exporter.d.ts +34 -0
  201. package/dist/src/formats/graphml/exporter.d.ts.map +1 -0
  202. package/dist/src/formats/graphml/exporter.js +1176 -0
  203. package/dist/src/formats/graphml/exporter.js.map +1 -0
  204. package/dist/src/formats/graphml/importer.d.ts +31 -0
  205. package/dist/src/formats/graphml/importer.d.ts.map +1 -0
  206. package/dist/src/formats/graphml/importer.js +1607 -0
  207. package/dist/src/formats/graphml/importer.js.map +1 -0
  208. package/dist/src/formats/graphml/index.d.ts +8 -0
  209. package/dist/src/formats/graphml/index.d.ts.map +1 -0
  210. package/dist/src/formats/graphml/index.js +8 -0
  211. package/dist/src/formats/graphml/index.js.map +1 -0
  212. package/dist/src/formats/graphml/tree.d.ts +72 -0
  213. package/dist/src/formats/graphml/tree.d.ts.map +1 -0
  214. package/dist/src/formats/graphml/tree.js +290 -0
  215. package/dist/src/formats/graphml/tree.js.map +1 -0
  216. package/dist/src/formats/json/dialect.d.ts +125 -0
  217. package/dist/src/formats/json/dialect.d.ts.map +1 -0
  218. package/dist/src/formats/json/dialect.js +262 -0
  219. package/dist/src/formats/json/dialect.js.map +1 -0
  220. package/dist/src/formats/json/exporter.d.ts +89 -0
  221. package/dist/src/formats/json/exporter.d.ts.map +1 -0
  222. package/dist/src/formats/json/exporter.js +1358 -0
  223. package/dist/src/formats/json/exporter.js.map +1 -0
  224. package/dist/src/formats/json/importer.d.ts +108 -0
  225. package/dist/src/formats/json/importer.d.ts.map +1 -0
  226. package/dist/src/formats/json/importer.js +1838 -0
  227. package/dist/src/formats/json/importer.js.map +1 -0
  228. package/dist/src/formats/json/index.d.ts +8 -0
  229. package/dist/src/formats/json/index.d.ts.map +1 -0
  230. package/dist/src/formats/json/index.js +8 -0
  231. package/dist/src/formats/json/index.js.map +1 -0
  232. package/dist/src/formats/neo4j/exporter.d.ts +68 -0
  233. package/dist/src/formats/neo4j/exporter.d.ts.map +1 -0
  234. package/dist/src/formats/neo4j/exporter.js +1055 -0
  235. package/dist/src/formats/neo4j/exporter.js.map +1 -0
  236. package/dist/src/formats/neo4j/header.d.ts +52 -0
  237. package/dist/src/formats/neo4j/header.d.ts.map +1 -0
  238. package/dist/src/formats/neo4j/header.js +131 -0
  239. package/dist/src/formats/neo4j/header.js.map +1 -0
  240. package/dist/src/formats/neo4j/importer.d.ts +73 -0
  241. package/dist/src/formats/neo4j/importer.d.ts.map +1 -0
  242. package/dist/src/formats/neo4j/importer.js +932 -0
  243. package/dist/src/formats/neo4j/importer.js.map +1 -0
  244. package/dist/src/formats/neo4j/index.d.ts +79 -0
  245. package/dist/src/formats/neo4j/index.d.ts.map +1 -0
  246. package/dist/src/formats/neo4j/index.js +83 -0
  247. package/dist/src/formats/neo4j/index.js.map +1 -0
  248. package/dist/src/formats/pajek/exporter.d.ts +58 -0
  249. package/dist/src/formats/pajek/exporter.d.ts.map +1 -0
  250. package/dist/src/formats/pajek/exporter.js +825 -0
  251. package/dist/src/formats/pajek/exporter.js.map +1 -0
  252. package/dist/src/formats/pajek/importer.d.ts +88 -0
  253. package/dist/src/formats/pajek/importer.d.ts.map +1 -0
  254. package/dist/src/formats/pajek/importer.js +1047 -0
  255. package/dist/src/formats/pajek/importer.js.map +1 -0
  256. package/dist/src/formats/pajek/index.d.ts +7 -0
  257. package/dist/src/formats/pajek/index.d.ts.map +1 -0
  258. package/dist/src/formats/pajek/index.js +7 -0
  259. package/dist/src/formats/pajek/index.js.map +1 -0
  260. package/dist/src/formats/pajek/syntax.d.ts +112 -0
  261. package/dist/src/formats/pajek/syntax.d.ts.map +1 -0
  262. package/dist/src/formats/pajek/syntax.js +269 -0
  263. package/dist/src/formats/pajek/syntax.js.map +1 -0
  264. package/dist/src/index.d.ts +35 -0
  265. package/dist/src/index.d.ts.map +1 -0
  266. package/dist/src/index.js +39 -0
  267. package/dist/src/index.js.map +1 -0
  268. package/dist/src/registry.d.ts +207 -0
  269. package/dist/src/registry.d.ts.map +1 -0
  270. package/dist/src/registry.js +481 -0
  271. package/dist/src/registry.js.map +1 -0
  272. package/dist/src/sniff.d.ts +104 -0
  273. package/dist/src/sniff.d.ts.map +1 -0
  274. package/dist/src/sniff.js +357 -0
  275. package/dist/src/sniff.js.map +1 -0
  276. package/dist/src/types.d.ts +238 -0
  277. package/dist/src/types.d.ts.map +1 -0
  278. package/dist/src/types.js +29 -0
  279. package/dist/src/types.js.map +1 -0
  280. package/dist/tsconfig.build.tsbuildinfo +1 -0
  281. package/package.json +122 -7
  282. package/src/children.ts +335 -0
  283. package/src/common/attributes.ts +520 -0
  284. package/src/common/codes.ts +153 -0
  285. package/src/common/declared-types.ts +374 -0
  286. package/src/common/direction.ts +518 -0
  287. package/src/common/escape.ts +231 -0
  288. package/src/common/export.ts +817 -0
  289. package/src/common/format.ts +111 -0
  290. package/src/common/ids.ts +176 -0
  291. package/src/common/input.ts +378 -0
  292. package/src/common/lists.ts +196 -0
  293. package/src/common/options.ts +377 -0
  294. package/src/common/report.ts +352 -0
  295. package/src/common/temporal.ts +302 -0
  296. package/src/common/text.ts +294 -0
  297. package/src/common/weights.ts +202 -0
  298. package/src/common/writer.ts +123 -0
  299. package/src/common/xml.ts +1053 -0
  300. package/src/formats/csv/exporter.ts +894 -0
  301. package/src/formats/csv/header.ts +172 -0
  302. package/src/formats/csv/importer.ts +1104 -0
  303. package/src/formats/csv/index.ts +88 -0
  304. package/src/formats/csv/records.ts +813 -0
  305. package/src/formats/csv/values.ts +224 -0
  306. package/src/formats/dot/exporter.ts +1014 -0
  307. package/src/formats/dot/importer.ts +1549 -0
  308. package/src/formats/dot/index.ts +7 -0
  309. package/src/formats/dot/names.ts +40 -0
  310. package/src/formats/dot/tokenizer.ts +384 -0
  311. package/src/formats/gexf/exporter.ts +1696 -0
  312. package/src/formats/gexf/importer.ts +2333 -0
  313. package/src/formats/gexf/index.ts +142 -0
  314. package/src/formats/gexf/schema.ts +361 -0
  315. package/src/formats/gml/exporter.ts +1404 -0
  316. package/src/formats/gml/importer.ts +1591 -0
  317. package/src/formats/gml/index.ts +128 -0
  318. package/src/formats/gml/syntax.ts +545 -0
  319. package/src/formats/graphml/constants.ts +225 -0
  320. package/src/formats/graphml/exporter.ts +1458 -0
  321. package/src/formats/graphml/importer.ts +2027 -0
  322. package/src/formats/graphml/index.ts +8 -0
  323. package/src/formats/graphml/tree.ts +318 -0
  324. package/src/formats/json/dialect.ts +317 -0
  325. package/src/formats/json/exporter.ts +1616 -0
  326. package/src/formats/json/importer.ts +2271 -0
  327. package/src/formats/json/index.ts +8 -0
  328. package/src/formats/neo4j/exporter.ts +1287 -0
  329. package/src/formats/neo4j/header.ts +156 -0
  330. package/src/formats/neo4j/importer.ts +1220 -0
  331. package/src/formats/neo4j/index.ts +116 -0
  332. package/src/formats/pajek/exporter.ts +1000 -0
  333. package/src/formats/pajek/importer.ts +1311 -0
  334. package/src/formats/pajek/index.ts +7 -0
  335. package/src/formats/pajek/syntax.ts +307 -0
  336. package/src/index.ts +244 -0
  337. package/src/registry.ts +617 -0
  338. package/src/sniff.ts +397 -0
  339. package/src/types.ts +262 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importer.js","sourceRoot":"","sources":["../../../../src/formats/graphml/importer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The `@graphty/graph-io/graphml` subpath: the GraphML importer and exporter (design section 8.2),
3
+ * their option types and their issue and loss-note code tables.
4
+ */
5
+ export { GRAPHML_ISSUE, GRAPHML_LOSS } from "./constants.js";
6
+ export { graphmlExporter, type GraphmlExportOptions } from "./exporter.js";
7
+ export { graphmlImporter, type GraphmlImportOptions } from "./importer.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/formats/graphml/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The `@graphty/graph-io/graphml` subpath: the GraphML importer and exporter (design section 8.2),
3
+ * their option types and their issue and loss-note code tables.
4
+ */
5
+ export { GRAPHML_ISSUE, GRAPHML_LOSS } from "./constants.js";
6
+ export { graphmlExporter } from "./exporter.js";
7
+ export { graphmlImporter } from "./importer.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/formats/graphml/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAA6B,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,eAAe,EAA6B,MAAM,eAAe,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Nested XML inside a GraphML `<data>` element (yFiles / yEd `y:ShapeNode`, `y:PolyLineEdge`,
3
+ * ...) as a JSON tree, the value of a `json` column with `origin.namespace: "yfiles"` (design
4
+ * section 8.5: structure preserved, not byte-exact). The shape follows the fast-xml-parser
5
+ * convention graphty-element's parser already navigates: an element is an object whose
6
+ * `@_<name>` keys are its attributes, whose `#text` key is its non-whitespace character data
7
+ * when it also has attributes or children, and whose other keys are its child elements (an
8
+ * array when a name repeats); an element with neither attributes nor children is its text
9
+ * (an empty string for an empty element).
10
+ *
11
+ * The builder consumes the tokenizer events of one subtree; the writer produces the XML text of
12
+ * a tree again, so a yFiles column re-exports as the same nested markup.
13
+ */
14
+ /**
15
+ * Builds the tree of one subtree from start / end / text events. The outermost frame is the
16
+ * `<data>` element itself; `finish()` returns its content: the object of its children, or its
17
+ * text when it has none.
18
+ */
19
+ export declare class XmlTreeBuilder {
20
+ private readonly frames;
21
+ private readonly root;
22
+ /** Create a builder whose implicit root is the containing element. */
23
+ constructor();
24
+ /**
25
+ * Whether the builder is inside a child element (as opposed to at the root level).
26
+ * @returns true while at least one child element is open
27
+ */
28
+ get open(): boolean;
29
+ /**
30
+ * An element starts.
31
+ * @param name - the element name as written
32
+ * @param attrs - its attributes
33
+ */
34
+ start(name: string, attrs: ReadonlyMap<string, string>): void;
35
+ /**
36
+ * Character data inside the current element.
37
+ * @param text - the text
38
+ */
39
+ text(text: string): void;
40
+ /** The current element ends; its value is attached to its parent. */
41
+ end(): void;
42
+ /**
43
+ * The content of the containing element: its text when it has no child elements, otherwise
44
+ * the object of its children (with `#text` for non-whitespace mixed content).
45
+ * @returns the value to store in the json column
46
+ */
47
+ finish(): unknown;
48
+ }
49
+ /**
50
+ * Whether a value is a tree the writer can serialise: a string, number, boolean or null (text),
51
+ * an array of such trees, or an object whose keys are `#text`, `@_<Name>` or `<Name>` with tree
52
+ * values.
53
+ * @param value - the value
54
+ * @returns true when writeXmlTree() accepts it
55
+ */
56
+ export declare function isXmlTree(value: unknown): boolean;
57
+ /**
58
+ * Why a value is not a serialisable tree.
59
+ * @param value - the value
60
+ * @returns a message, or null when the value is a tree
61
+ */
62
+ export declare function treeProblem(value: unknown): string | null;
63
+ /**
64
+ * Write the content of a tree as XML text: the children (and mixed text) of the containing
65
+ * element. Leaf elements are written inline so their text stays exact; elements with children
66
+ * are broken over lines and indented.
67
+ * @param value - the tree (the content of a `<data>` element)
68
+ * @param indent - the indentation of the containing element's children
69
+ * @param out - receives the text parts
70
+ */
71
+ export declare function writeXmlTree(value: unknown, indent: string, out: string[]): void;
72
+ //# sourceMappingURL=tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/formats/graphml/tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAyBH;;;;GAIG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAE7B,sEAAsE;;IAKtE;;;OAGG;IACH,IAAI,IAAI,IAAI,OAAO,CAElB;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAU7D;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB,qEAAqE;IACrE,GAAG,IAAI,IAAI;IAWX;;;;OAIG;IACH,MAAM,IAAI,OAAO;CAepB;AAoCD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA6CzD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAuBhF"}
@@ -0,0 +1,290 @@
1
+ /**
2
+ * Nested XML inside a GraphML `<data>` element (yFiles / yEd `y:ShapeNode`, `y:PolyLineEdge`,
3
+ * ...) as a JSON tree, the value of a `json` column with `origin.namespace: "yfiles"` (design
4
+ * section 8.5: structure preserved, not byte-exact). The shape follows the fast-xml-parser
5
+ * convention graphty-element's parser already navigates: an element is an object whose
6
+ * `@_<name>` keys are its attributes, whose `#text` key is its non-whitespace character data
7
+ * when it also has attributes or children, and whose other keys are its child elements (an
8
+ * array when a name repeats); an element with neither attributes nor children is its text
9
+ * (an empty string for an empty element).
10
+ *
11
+ * The builder consumes the tokenizer events of one subtree; the writer produces the XML text of
12
+ * a tree again, so a yFiles column re-exports as the same nested markup.
13
+ */
14
+ import { GraphFormatError } from "@graphty/graph-format";
15
+ import { escapeXmlAttribute, escapeXmlText } from "../../common/escape.js";
16
+ import { isWhitespace, isXmlName } from "../../common/xml.js";
17
+ /** The prefix of an attribute key in a tree object. */
18
+ const ATTRIBUTE_PREFIX = "@_";
19
+ /** The key of an element's character data when it also has attributes or children. */
20
+ const TEXT_KEY = "#text";
21
+ /**
22
+ * Builds the tree of one subtree from start / end / text events. The outermost frame is the
23
+ * `<data>` element itself; `finish()` returns its content: the object of its children, or its
24
+ * text when it has none.
25
+ */
26
+ export class XmlTreeBuilder {
27
+ /** Create a builder whose implicit root is the containing element. */
28
+ constructor() {
29
+ this.frames = [];
30
+ this.root = { name: "", node: {}, hasAttrs: false, hasChildren: false, text: "" };
31
+ }
32
+ /**
33
+ * Whether the builder is inside a child element (as opposed to at the root level).
34
+ * @returns true while at least one child element is open
35
+ */
36
+ get open() {
37
+ return this.frames.length > 0;
38
+ }
39
+ /**
40
+ * An element starts.
41
+ * @param name - the element name as written
42
+ * @param attrs - its attributes
43
+ */
44
+ start(name, attrs) {
45
+ const node = {};
46
+ let hasAttrs = false;
47
+ for (const [key, value] of attrs) {
48
+ node[ATTRIBUTE_PREFIX + key] = value;
49
+ hasAttrs = true;
50
+ }
51
+ this.frames.push({ name, node, hasAttrs, hasChildren: false, text: "" });
52
+ }
53
+ /**
54
+ * Character data inside the current element.
55
+ * @param text - the text
56
+ */
57
+ text(text) {
58
+ const frame = this.frames.length > 0 ? this.frames[this.frames.length - 1] : this.root;
59
+ frame.text += text;
60
+ }
61
+ /** The current element ends; its value is attached to its parent. */
62
+ end() {
63
+ const frame = this.frames.pop();
64
+ if (frame === undefined) {
65
+ throw new GraphFormatError("E_COLUMN_TYPE", "XmlTreeBuilder.end() without a matching start()", {
66
+ reason: "tree builder underflow",
67
+ });
68
+ }
69
+ const parent = this.frames.length > 0 ? this.frames[this.frames.length - 1] : this.root;
70
+ attachChild(parent, frame.name, valueOf(frame));
71
+ }
72
+ /**
73
+ * The content of the containing element: its text when it has no child elements, otherwise
74
+ * the object of its children (with `#text` for non-whitespace mixed content).
75
+ * @returns the value to store in the json column
76
+ */
77
+ finish() {
78
+ if (this.frames.length > 0) {
79
+ throw new GraphFormatError("E_COLUMN_TYPE", "XmlTreeBuilder.finish() with open elements", {
80
+ reason: "tree builder open",
81
+ });
82
+ }
83
+ const { root } = this;
84
+ if (!root.hasChildren) {
85
+ return root.text;
86
+ }
87
+ if (!isWhitespace(root.text)) {
88
+ root.node[TEXT_KEY] = root.text;
89
+ }
90
+ return root.node;
91
+ }
92
+ }
93
+ /**
94
+ * The value of a finished element: its text when it has neither attributes nor children,
95
+ * else its node with `#text` set to non-whitespace text.
96
+ * @param frame - the finished frame
97
+ * @returns the value
98
+ */
99
+ function valueOf(frame) {
100
+ if (!frame.hasAttrs && !frame.hasChildren) {
101
+ return frame.text;
102
+ }
103
+ if (!isWhitespace(frame.text)) {
104
+ frame.node[TEXT_KEY] = frame.text;
105
+ }
106
+ return frame.node;
107
+ }
108
+ /**
109
+ * Attach a child value under a name, turning a repeated name into an array.
110
+ * @param parent - the parent frame
111
+ * @param name - the child element name
112
+ * @param value - the child value
113
+ */
114
+ function attachChild(parent, name, value) {
115
+ parent.hasChildren = true;
116
+ const existing = parent.node[name];
117
+ if (existing === undefined) {
118
+ parent.node[name] = value;
119
+ }
120
+ else if (Array.isArray(existing)) {
121
+ existing.push(value);
122
+ }
123
+ else {
124
+ parent.node[name] = [existing, value];
125
+ }
126
+ }
127
+ /**
128
+ * Whether a value is a tree the writer can serialise: a string, number, boolean or null (text),
129
+ * an array of such trees, or an object whose keys are `#text`, `@_<Name>` or `<Name>` with tree
130
+ * values.
131
+ * @param value - the value
132
+ * @returns true when writeXmlTree() accepts it
133
+ */
134
+ export function isXmlTree(value) {
135
+ return treeProblem(value) === null;
136
+ }
137
+ /**
138
+ * Why a value is not a serialisable tree.
139
+ * @param value - the value
140
+ * @returns a message, or null when the value is a tree
141
+ */
142
+ export function treeProblem(value) {
143
+ if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
144
+ return null;
145
+ }
146
+ if (Array.isArray(value)) {
147
+ for (const item of value) {
148
+ if (Array.isArray(item)) {
149
+ return "nested arrays cannot be written as elements";
150
+ }
151
+ const problem = treeProblem(item);
152
+ if (problem !== null) {
153
+ return problem;
154
+ }
155
+ }
156
+ return null;
157
+ }
158
+ if (typeof value !== "object") {
159
+ return `a ${typeof value} cannot be written as XML`;
160
+ }
161
+ for (const [key, child] of Object.entries(value)) {
162
+ if (key === TEXT_KEY) {
163
+ if (child !== null && typeof child === "object") {
164
+ return "#text must be a scalar";
165
+ }
166
+ continue;
167
+ }
168
+ if (key.startsWith(ATTRIBUTE_PREFIX)) {
169
+ const name = key.slice(ATTRIBUTE_PREFIX.length);
170
+ if (!isXmlName(name)) {
171
+ return `"${name}" is not an XML attribute name`;
172
+ }
173
+ if (child !== null && typeof child === "object") {
174
+ return `attribute ${name} must be a scalar`;
175
+ }
176
+ continue;
177
+ }
178
+ if (!isXmlName(key)) {
179
+ return `"${key}" is not an XML element name`;
180
+ }
181
+ const problem = treeProblem(child);
182
+ if (problem !== null) {
183
+ return problem;
184
+ }
185
+ }
186
+ return null;
187
+ }
188
+ /**
189
+ * Write the content of a tree as XML text: the children (and mixed text) of the containing
190
+ * element. Leaf elements are written inline so their text stays exact; elements with children
191
+ * are broken over lines and indented.
192
+ * @param value - the tree (the content of a `<data>` element)
193
+ * @param indent - the indentation of the containing element's children
194
+ * @param out - receives the text parts
195
+ */
196
+ export function writeXmlTree(value, indent, out) {
197
+ const problem = treeProblem(value);
198
+ if (problem !== null) {
199
+ throw new GraphFormatError("E_COLUMN_TYPE", `a yfiles value cannot be written as XML: ${problem}`, {
200
+ reason: "xml tree",
201
+ });
202
+ }
203
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
204
+ out.push(escapeXmlText(scalarText(value)));
205
+ return;
206
+ }
207
+ const object = value;
208
+ let text = null;
209
+ for (const [key, child] of Object.entries(object)) {
210
+ if (key === TEXT_KEY) {
211
+ text = scalarText(child);
212
+ }
213
+ else if (!key.startsWith(ATTRIBUTE_PREFIX)) {
214
+ writeElements(key, child, indent, out);
215
+ }
216
+ }
217
+ if (text !== null) {
218
+ out.push(escapeXmlText(text));
219
+ }
220
+ }
221
+ /**
222
+ * Write one element (or, for an array, one element per item).
223
+ * @param name - the element name
224
+ * @param value - the element value
225
+ * @param indent - the indentation of this element
226
+ * @param out - receives the text parts
227
+ */
228
+ function writeElements(name, value, indent, out) {
229
+ if (Array.isArray(value)) {
230
+ for (const item of value) {
231
+ writeElements(name, item, indent, out);
232
+ }
233
+ return;
234
+ }
235
+ if (value === null || typeof value !== "object") {
236
+ const text = scalarText(value);
237
+ out.push(text.length === 0 ? `\n${indent}<${name}/>` : `\n${indent}<${name}>${escapeXmlText(text)}</${name}>`);
238
+ return;
239
+ }
240
+ const object = value;
241
+ let attrs = "";
242
+ let text = null;
243
+ let hasChildren = false;
244
+ for (const [key, child] of Object.entries(object)) {
245
+ if (key === TEXT_KEY) {
246
+ text = scalarText(child);
247
+ }
248
+ else if (key.startsWith(ATTRIBUTE_PREFIX)) {
249
+ attrs += ` ${key.slice(ATTRIBUTE_PREFIX.length)}="${escapeXmlAttribute(scalarText(child))}"`;
250
+ }
251
+ else {
252
+ hasChildren = true;
253
+ }
254
+ }
255
+ if (!hasChildren) {
256
+ out.push(text === null || text.length === 0
257
+ ? `\n${indent}<${name}${attrs}/>`
258
+ : `\n${indent}<${name}${attrs}>${escapeXmlText(text)}</${name}>`);
259
+ return;
260
+ }
261
+ out.push(`\n${indent}<${name}${attrs}>`);
262
+ const inner = `${indent} `;
263
+ for (const [key, child] of Object.entries(object)) {
264
+ if (key !== TEXT_KEY && !key.startsWith(ATTRIBUTE_PREFIX)) {
265
+ writeElements(key, child, inner, out);
266
+ }
267
+ }
268
+ if (text !== null) {
269
+ out.push(escapeXmlText(text));
270
+ }
271
+ out.push(`\n${indent}</${name}>`);
272
+ }
273
+ /**
274
+ * The text of a scalar tree value.
275
+ * @param value - a string, number, boolean or null
276
+ * @returns the text; an empty string for null
277
+ */
278
+ function scalarText(value) {
279
+ switch (typeof value) {
280
+ case "string":
281
+ return value;
282
+ case "number":
283
+ case "boolean":
284
+ case "bigint":
285
+ return String(value);
286
+ default:
287
+ return "";
288
+ }
289
+ }
290
+ //# sourceMappingURL=tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/formats/graphml/tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * What the JSON importer and exporter share (design sections 8.2 and 8.5): the dialect names, the
3
+ * reserved `meta.extra.json` shape record the importer writes and the exporter reads back, the
4
+ * per-dialect capability tables, the fixed key sets of each dialect and the small JSON value
5
+ * helpers both sides use.
6
+ *
7
+ * Dialects: NetworkX node-link (`nodes` + `links` / `edges`, graph-level `directed` / `multigraph`
8
+ * / `graph`), the d3 lineage of the same shape (`links`, `name` ids, integer index endpoints),
9
+ * JSON Graph Format v2 (`graph.nodes` keyed by id, per-edge `directed`, hyperedges), Cytoscape.js
10
+ * elements (`data.id` / `data.source` / `data.target`, `position`, `classes`, `data.parent`),
11
+ * graphology serialisation (`key` / `attributes`, `undirected` edges, `options.type` / `multi`) and
12
+ * vis.js (`from` / `to`).
13
+ */
14
+ import { type GraphMeta } from "@graphty/graph-format";
15
+ import { type ExportCapabilities } from "../../types.js";
16
+ /** The JSON dialects the plugin reads and writes. */
17
+ export type JsonDialect = "node-link" | "d3" | "jgf" | "cytoscape" | "graphology" | "vis";
18
+ /** Every dialect name, for option checking and messages. */
19
+ export declare const JSON_DIALECTS: readonly JsonDialect[];
20
+ /** The key under `meta.extra` that holds the shape record (design section 8.5). */
21
+ export declare const META_KEY = "json";
22
+ /**
23
+ * The shape information the importer records under `meta.extra.json` so the exporter can write the
24
+ * same file back (design section 8.5). Every field is optional because a snapshot may come from
25
+ * another format or from an older record.
26
+ */
27
+ export interface JsonShapeMeta {
28
+ /** The dialect the file was read as. */
29
+ readonly dialect?: JsonDialect | undefined;
30
+ /** node-link / d3: the key the edge array was under ("links" or "edges"). */
31
+ readonly edgesKey?: string | undefined;
32
+ /** node-link / d3: the key holding the node id ("id", "name", ...); null when nodes were positional. */
33
+ readonly nodeIdKey?: string | null | undefined;
34
+ /** node-link / d3: whether edge endpoints were array positions rather than ids. */
35
+ readonly indexLinks?: boolean | undefined;
36
+ /** node-link / d3 / vis: the endpoint keys the file used. */
37
+ readonly sourceKey?: string | undefined;
38
+ /** node-link / d3 / vis: the endpoint keys the file used. */
39
+ readonly targetKey?: string | undefined;
40
+ /** jgf: the graph `id`. */
41
+ readonly id?: string | undefined;
42
+ /** jgf: the graph `type`. */
43
+ readonly type?: string | undefined;
44
+ /** graphology: `options.allowSelfLoops` as declared. */
45
+ readonly allowSelfLoops?: boolean | undefined;
46
+ /** cytoscape: every top-level key besides `elements` and `data` (style, zoom, pan, ...), verbatim. */
47
+ readonly cytoscape?: Readonly<Record<string, unknown>> | undefined;
48
+ }
49
+ /**
50
+ * Whether a value is a plain JSON object (not null, not an array).
51
+ * @param value - any value
52
+ * @returns true for an object that is not an array
53
+ */
54
+ export declare function isJsonObject(value: unknown): value is Record<string, unknown>;
55
+ /**
56
+ * Whether a record has an own property; JSON.parse output is checked with hasOwnProperty so a key
57
+ * named "constructor" or "__proto__" is never read from the prototype.
58
+ * @param record - the record
59
+ * @param key - the key
60
+ * @returns true when the key is an own property
61
+ */
62
+ export declare function hasKey(record: Readonly<Record<string, unknown>>, key: string): boolean;
63
+ /**
64
+ * Whether a text names a dialect.
65
+ * @param value - any value
66
+ * @returns true for one of JSON_DIALECTS
67
+ */
68
+ export declare function isJsonDialect(value: unknown): value is JsonDialect;
69
+ /**
70
+ * The dialect of a parsed JSON document, by the shape rules of design section 8.2 (Cytoscape:
71
+ * `elements` or a top-level array of `{ data }` elements; JGF: `graph.nodes` / `graph.edges` or
72
+ * `graphs[]`; graphology: `options.type` / `options.multi`, `key` nodes without `id`, edges with
73
+ * `undirected` or an `attributes` record; vis: edges with `from` / `to`; d3: `links` without
74
+ * `directed` / `multigraph` / `graph`; else node-link). Pure: the importer wraps it with its issue
75
+ * codes, the registry's sniff() uses it on a head that parses as a whole document.
76
+ * @param root - the parsed document
77
+ * @returns the dialect, or null when the document is not a graph document in any dialect
78
+ */
79
+ export declare function sniffJsonDialect(root: unknown): JsonDialect | null;
80
+ /**
81
+ * The shape record of a snapshot's metadata, or an empty record when the snapshot did not come
82
+ * from the JSON importer.
83
+ * @param meta - the snapshot's metadata
84
+ * @returns the fields found under `meta.extra.json`, each only when it has the expected type
85
+ */
86
+ export declare function shapeMetaOf(meta: GraphMeta): JsonShapeMeta;
87
+ /** The direction a dialect assumes when the file declares none (design section 8.4, `defaultDirected`). */
88
+ export declare const DIALECT_DEFAULT_DIRECTED: Readonly<Record<JsonDialect, boolean>>;
89
+ /**
90
+ * What one dialect can express (design section 8.5): positions and visual columns are written as
91
+ * plain attributes (an array for a multi-component column) and read back without their role,
92
+ * except Cytoscape's `position` object; containment only as the Cytoscape `data.parent`; mixed
93
+ * direction only where the dialect carries a per-edge flag (JGF `directed`, graphology
94
+ * `undirected`); edge ids where the dialect has a slot (not node-link / d3); nothing temporal;
95
+ * graph attributes everywhere but d3 (the bare shape) and vis.
96
+ * @param dialect - the dialect
97
+ * @returns its frozen capability table
98
+ */
99
+ export declare function dialectCapabilities(dialect: JsonDialect): ExportCapabilities;
100
+ /** The Cytoscape element-level keys (everything else on an element lives under `data`). */
101
+ export declare const CYTOSCAPE_ELEMENT_KEYS: ReadonlySet<string>;
102
+ /** The Cytoscape element keys the importer maps structurally rather than to columns. */
103
+ export declare const CYTOSCAPE_STRUCTURAL_KEYS: ReadonlySet<string>;
104
+ /**
105
+ * The suffix the importer appends to a column name that collides with a structural column or a
106
+ * reserved key of its dialect (design section 5.6 names collisions deterministically); the exporter
107
+ * strips it when the value goes back to the level the suffix names.
108
+ */
109
+ export declare const SUFFIX: Readonly<{
110
+ /** A Cytoscape `data` key or a JGF / graphology attribute that collides with a structural column. */
111
+ data: "#data";
112
+ /** An element-level key the dialect does not define (Cytoscape, JGF, graphology). */
113
+ element: "#element";
114
+ }>;
115
+ /** The default source keys of a node-link edge record, tried in order (as fromRecords does). */
116
+ export declare const NODE_LINK_SOURCE_KEYS: readonly string[];
117
+ /** The default target keys of a node-link edge record, tried in order. */
118
+ export declare const NODE_LINK_TARGET_KEYS: readonly string[];
119
+ /** The name of the position column every JSON dialect writes / reads (design section 5.2). */
120
+ export declare const POSITION_COLUMN = "position";
121
+ /** The name of the Cytoscape classes column (a list of strings with role "classes"). */
122
+ export declare const CLASSES_COLUMN = "classes";
123
+ /** The name of the Cytoscape parent column (u32 refersTo node, role "parent"). */
124
+ export declare const PARENT_COLUMN = "parent";
125
+ //# sourceMappingURL=dialect.d.ts.map