@graphty/graph-io 0.0.0 → 0.2.0

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":"records.js","sourceRoot":"","sources":["../../../../src/formats/csv/records.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * The untyped attribute columns of the CSV importer (design sections 5.1 and 5.4): every cell is
3
+ * parsed by the fixed lexical grammar and pushed as a scalar, the sink's per-column inference
4
+ * widens `bool -> i32 -> f64 -> string`, and a column whose sampled values are all text becomes a
5
+ * `dict` when its cardinality stays below half the sampled rows (the 1024-row heuristic of
6
+ * design section 5.4). The sample is the only buffering: at most DICT_SAMPLE_ROWS (row, text)
7
+ * pairs per column, flushed on the decision.
8
+ *
9
+ * An unquoted empty cell is unset (never written); a quoted empty cell is the empty string. A
10
+ * column whose every cell is unset is declared as a nullable string column at the end so the
11
+ * header survives a round trip. Inferred columns go through the shared TextCellWriter, which keeps
12
+ * the column's dtype the one the 5.1 grammar implies and the lexical form of numeric-looking cells
13
+ * that a widening to string would otherwise rewrite.
14
+ */
15
+ import { type GraphSink } from "@graphty/graph-format";
16
+ import { type ImportReportBuilder } from "../../common/report.js";
17
+ /**
18
+ * One inferred attribute column of a node or edge table, written cell by cell.
19
+ */
20
+ export declare class InferredColumn {
21
+ /** The column name in the sink. */
22
+ readonly name: string;
23
+ private readonly domain;
24
+ private readonly sink;
25
+ private readonly report;
26
+ private handle;
27
+ /** Whether values are pushed as text: a dict column, or a caller's string / dict column of the name. */
28
+ private text;
29
+ /** Whether the column was declared as a dict by this writer. */
30
+ private dict;
31
+ /** Whether the dtype decision was made; until then values are sampled. */
32
+ private decided;
33
+ /** Whether every sampled value so far is text under the lexical grammar (a dict candidate). */
34
+ private candidate;
35
+ private readonly heuristic;
36
+ /** The inferred-column writer, once the column was decided to be inferred (neither dict nor a caller's). */
37
+ private writer;
38
+ private readonly pendingRows;
39
+ private readonly pendingTexts;
40
+ /**
41
+ * Create a column writer; nothing is declared until the first value or finish().
42
+ * @param name - the column name
43
+ * @param domain - node or edge
44
+ * @param sink - the sink
45
+ * @param report - the report a refused sampled value is recorded in (the flush has no line numbers)
46
+ * @param sampleRows - rows sampled before the dict decision; DICT_SAMPLE_ROWS by default
47
+ */
48
+ constructor(name: string, domain: "node" | "edge", sink: GraphSink, report: ImportReportBuilder, sampleRows?: number);
49
+ /**
50
+ * Whether the column was declared as a dict.
51
+ * @returns true after a dict decision
52
+ */
53
+ get isDict(): boolean;
54
+ /**
55
+ * Write one set cell.
56
+ * @param row - the node or edge index
57
+ * @param text - the cell text (the empty string for a quoted empty cell)
58
+ */
59
+ write(row: number, text: string): void;
60
+ /**
61
+ * Decide an undecided column from what was sampled (or declare an all-empty column as string)
62
+ * and flush the sample. Call once at the end of the input.
63
+ */
64
+ finish(): void;
65
+ /**
66
+ * Make the dtype decision: a dict when every sampled value is text and the cardinality is low
67
+ * and no column of the name exists yet; inference otherwise. A column the sink already holds
68
+ * (a caller's) receives the cell text when it is a string or dict column and the parsed value
69
+ * otherwise. The sample is flushed either way; a sampled value the sink refuses (a caller's
70
+ * typed column of the name) is recorded as an issue of this column and the flush continues.
71
+ */
72
+ private decide;
73
+ /**
74
+ * Push one value: text into a dict or a caller's text column, the parsed scalar into a caller's
75
+ * typed column, and everything else through the inferred-column writer.
76
+ * @param row - the node or edge index
77
+ * @param text - the cell text
78
+ */
79
+ private push;
80
+ /**
81
+ * Set a cell in the sink's table for this domain.
82
+ * @param column - the handle or name
83
+ * @param row - the row
84
+ * @param value - the value
85
+ */
86
+ private set;
87
+ /**
88
+ * The sink's handle for this column's name.
89
+ * @returns the handle, or INVALID_INDEX when the sink has no such column yet
90
+ */
91
+ private lookup;
92
+ /**
93
+ * Whether the sink's existing column of this name is a string or dict column, probed through
94
+ * the sink's declare (the same shape returns the existing handle, another is E_COLUMN_EXISTS).
95
+ * @returns true when cell text is what the column holds
96
+ */
97
+ private holdsText;
98
+ /**
99
+ * Declare the column with a fixed dtype.
100
+ * @param dtype - dict or string
101
+ * @returns the handle
102
+ */
103
+ private declare;
104
+ }
105
+ //# sourceMappingURL=values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../../src/formats/csv/values.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAuC,KAAK,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AAG3G,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE;;GAEG;AACH,qBAAa,cAAc;IACvB,mCAAmC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IAEjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,OAAO,CAAC,MAAM,CAA+C;IAE7D,wGAAwG;IACxG,OAAO,CAAC,IAAI,CAAS;IAErB,gEAAgE;IAChE,OAAO,CAAC,IAAI,CAAS;IAErB,0EAA0E;IAC1E,OAAO,CAAC,OAAO,CAAS;IAExB,+FAA+F;IAC/F,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAE1C,4GAA4G;IAC5G,OAAO,CAAC,MAAM,CAA+B;IAE7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAE5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAE7C;;;;;;;OAOG;gBAEC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,mBAAmB,EAC3B,UAAU,GAAE,MAAyB;IASzC;;;OAGG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBtC;;;OAGG;IACH,MAAM,IAAI,IAAI;IAYd;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;IA0Bd;;;;;OAKG;IACH,OAAO,CAAC,IAAI;IAUZ;;;;;OAKG;IACH,OAAO,CAAC,GAAG;IAQX;;;OAGG;IACH,OAAO,CAAC,MAAM;IAId;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAcjB;;;;OAIG;IACH,OAAO,CAAC,OAAO;CAIlB"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * The untyped attribute columns of the CSV importer (design sections 5.1 and 5.4): every cell is
3
+ * parsed by the fixed lexical grammar and pushed as a scalar, the sink's per-column inference
4
+ * widens `bool -> i32 -> f64 -> string`, and a column whose sampled values are all text becomes a
5
+ * `dict` when its cardinality stays below half the sampled rows (the 1024-row heuristic of
6
+ * design section 5.4). The sample is the only buffering: at most DICT_SAMPLE_ROWS (row, text)
7
+ * pairs per column, flushed on the decision.
8
+ *
9
+ * An unquoted empty cell is unset (never written); a quoted empty cell is the empty string. A
10
+ * column whose every cell is unset is declared as a nullable string column at the end so the
11
+ * header survives a round trip. Inferred columns go through the shared TextCellWriter, which keeps
12
+ * the column's dtype the one the 5.1 grammar implies and the lexical form of numeric-looking cells
13
+ * that a widening to string would otherwise rewrite.
14
+ */
15
+ import { GraphFormatError, INVALID_INDEX } from "@graphty/graph-format";
16
+ import { DICT_SAMPLE_ROWS, DictHeuristic } from "../../common/attributes.js";
17
+ import { inferTextDtype, parseTextCell, TextCellWriter } from "../../common/text.js";
18
+ /**
19
+ * One inferred attribute column of a node or edge table, written cell by cell.
20
+ */
21
+ export class InferredColumn {
22
+ /**
23
+ * Create a column writer; nothing is declared until the first value or finish().
24
+ * @param name - the column name
25
+ * @param domain - node or edge
26
+ * @param sink - the sink
27
+ * @param report - the report a refused sampled value is recorded in (the flush has no line numbers)
28
+ * @param sampleRows - rows sampled before the dict decision; DICT_SAMPLE_ROWS by default
29
+ */
30
+ constructor(name, domain, sink, report, sampleRows = DICT_SAMPLE_ROWS) {
31
+ this.handle = INVALID_INDEX;
32
+ /** Whether values are pushed as text: a dict column, or a caller's string / dict column of the name. */
33
+ this.text = false;
34
+ /** Whether the column was declared as a dict by this writer. */
35
+ this.dict = false;
36
+ /** Whether the dtype decision was made; until then values are sampled. */
37
+ this.decided = false;
38
+ /** Whether every sampled value so far is text under the lexical grammar (a dict candidate). */
39
+ this.candidate = true;
40
+ /** The inferred-column writer, once the column was decided to be inferred (neither dict nor a caller's). */
41
+ this.writer = null;
42
+ this.pendingRows = [];
43
+ this.pendingTexts = [];
44
+ this.name = name;
45
+ this.domain = domain;
46
+ this.sink = sink;
47
+ this.report = report;
48
+ this.heuristic = new DictHeuristic(sampleRows);
49
+ }
50
+ /**
51
+ * Whether the column was declared as a dict.
52
+ * @returns true after a dict decision
53
+ */
54
+ get isDict() {
55
+ return this.dict;
56
+ }
57
+ /**
58
+ * Write one set cell.
59
+ * @param row - the node or edge index
60
+ * @param text - the cell text (the empty string for a quoted empty cell)
61
+ */
62
+ write(row, text) {
63
+ if (this.decided) {
64
+ this.push(row, text);
65
+ return;
66
+ }
67
+ this.pendingRows.push(row);
68
+ this.pendingTexts.push(text);
69
+ if (this.candidate && inferTextDtype(text) !== "string") {
70
+ this.candidate = false;
71
+ }
72
+ const full = this.heuristic.observe(text);
73
+ if (full || !this.candidate) {
74
+ this.decide();
75
+ }
76
+ }
77
+ /**
78
+ * Decide an undecided column from what was sampled (or declare an all-empty column as string)
79
+ * and flush the sample. Call once at the end of the input.
80
+ */
81
+ finish() {
82
+ if (!this.decided) {
83
+ this.decide();
84
+ }
85
+ if (this.handle === INVALID_INDEX) {
86
+ this.handle = this.lookup();
87
+ if (this.handle === INVALID_INDEX) {
88
+ this.handle = this.declare("string");
89
+ }
90
+ }
91
+ }
92
+ /**
93
+ * Make the dtype decision: a dict when every sampled value is text and the cardinality is low
94
+ * and no column of the name exists yet; inference otherwise. A column the sink already holds
95
+ * (a caller's) receives the cell text when it is a string or dict column and the parsed value
96
+ * otherwise. The sample is flushed either way; a sampled value the sink refuses (a caller's
97
+ * typed column of the name) is recorded as an issue of this column and the flush continues.
98
+ */
99
+ decide() {
100
+ this.decided = true;
101
+ const existing = this.lookup();
102
+ if (existing !== INVALID_INDEX) {
103
+ this.handle = existing;
104
+ this.text = this.holdsText();
105
+ }
106
+ else if (this.candidate && this.heuristic.decide() === "dict") {
107
+ this.dict = true;
108
+ this.text = true;
109
+ this.handle = this.declare("dict");
110
+ }
111
+ else {
112
+ this.writer = new TextCellWriter(this.name, this.domain, this.sink, this.report);
113
+ }
114
+ const rows = this.pendingRows;
115
+ const texts = this.pendingTexts;
116
+ for (let i = 0; i < rows.length; i++) {
117
+ try {
118
+ this.push(rows[i], texts[i]);
119
+ }
120
+ catch (err) {
121
+ this.report.recordError(err, { element: this.name });
122
+ }
123
+ }
124
+ rows.length = 0;
125
+ texts.length = 0;
126
+ }
127
+ /**
128
+ * Push one value: text into a dict or a caller's text column, the parsed scalar into a caller's
129
+ * typed column, and everything else through the inferred-column writer.
130
+ * @param row - the node or edge index
131
+ * @param text - the cell text
132
+ */
133
+ push(row, text) {
134
+ if (this.writer !== null) {
135
+ this.writer.write(row, text);
136
+ this.handle = this.writer.column;
137
+ return;
138
+ }
139
+ const value = this.text ? text : parseTextCell(text);
140
+ this.set(this.handle, row, value);
141
+ }
142
+ /**
143
+ * Set a cell in the sink's table for this domain.
144
+ * @param column - the handle or name
145
+ * @param row - the row
146
+ * @param value - the value
147
+ */
148
+ set(column, row, value) {
149
+ if (this.domain === "node") {
150
+ this.sink.setNodeValue(column, row, value);
151
+ }
152
+ else {
153
+ this.sink.setEdgeValue(column, row, value);
154
+ }
155
+ }
156
+ /**
157
+ * The sink's handle for this column's name.
158
+ * @returns the handle, or INVALID_INDEX when the sink has no such column yet
159
+ */
160
+ lookup() {
161
+ return this.domain === "node" ? this.sink.nodeColumn(this.name) : this.sink.edgeColumn(this.name);
162
+ }
163
+ /**
164
+ * Whether the sink's existing column of this name is a string or dict column, probed through
165
+ * the sink's declare (the same shape returns the existing handle, another is E_COLUMN_EXISTS).
166
+ * @returns true when cell text is what the column holds
167
+ */
168
+ holdsText() {
169
+ for (const dtype of ["string", "dict"]) {
170
+ try {
171
+ this.declare(dtype);
172
+ return true;
173
+ }
174
+ catch (err) {
175
+ if (!(err instanceof GraphFormatError) || err.code !== "E_COLUMN_EXISTS") {
176
+ throw err;
177
+ }
178
+ }
179
+ }
180
+ return false;
181
+ }
182
+ /**
183
+ * Declare the column with a fixed dtype.
184
+ * @param dtype - dict or string
185
+ * @returns the handle
186
+ */
187
+ declare(dtype) {
188
+ const decl = { name: this.name, dtype, nullable: true, origin: { format: "csv" } };
189
+ return this.domain === "node" ? this.sink.declareNodeColumn(decl) : this.sink.declareEdgeColumn(decl);
190
+ }
191
+ }
192
+ //# sourceMappingURL=values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../../../src/formats/csv/values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The DOT / Graphviz exporter (design section 8.5; research note 07 section 9). Writes one
3
+ * `[strict] graph | digraph [name] { ... }` with the graph attributes first, every node in index
4
+ * order (a node statement carrying its set cells as attributes, or a `subgraph` block for a cluster
5
+ * container node with its members nested inside), then every logical edge in index order with its
6
+ * explicit weight, `key` (the edge id role), ports and attributes.
7
+ *
8
+ * What the format keeps and what check() reports: any id and any text (DOT quotes everything
9
+ * except a text ending in a backslash, which the lexer cannot read back); bool / i32 / f64 cells
10
+ * (f64 written with a decimal point so the dtype survives re-import; other numeric dtypes are
11
+ * written and read back inferred); containment through the parent role (clusters); graph
12
+ * attributes; node positions as `pos="x,y"`. Mixed direction is folded per onMixedDirection
13
+ * (DOT has none); lists, json, defaults, options, temporal and visual roles cannot be written.
14
+ */
15
+ import { type GraphExporter } from "../../types.js";
16
+ /** The DOT exporter's format-specific options. */
17
+ export interface DotExportOptions {
18
+ /** The indentation of one nesting level; four spaces by default. */
19
+ indent?: string | undefined;
20
+ /** The graph name to write; `meta.name` by default, null for an anonymous graph. */
21
+ name?: string | null | undefined;
22
+ /** Whether to write `strict`; by default when `meta.extra.dot.strict` is true. */
23
+ strict?: boolean | undefined;
24
+ }
25
+ /** The LossNote codes of the DOT exporter; the shared ones are LOSS's. */
26
+ export declare const DOT_LOSS: Readonly<{
27
+ /** An id, name or text with a backslash before a quote or at its end cannot be written as a DOT quoted string; export() throws. */
28
+ TRAILING_BACKSLASH: "E_DOT_TRAILING_BACKSLASH";
29
+ /** A non-finite f32 / f64 cell has no numeric DOT spelling and reads back as text. */
30
+ NON_FINITE: "W_DOT_NON_FINITE";
31
+ /** Text cells that look like numbers or booleans read back as such (DOT attribute values are untyped). */
32
+ TEXT_INFERRED: "W_TEXT_INFERRED";
33
+ /** A plain column named like an attribute the exporter writes for a role (weight, key, pos) is not written. */
34
+ ATTRIBUTE_CLASH: "W_DOT_ATTRIBUTE_CLASH";
35
+ /** A mutual pair is written as two directed edges. */
36
+ MUTUAL_EXPANDED: "W_MUTUAL_EXPANDED";
37
+ /** A parents (multi-parent) column cannot be written; DOT clusters nest. */
38
+ PARENTS_DROPPED: "W_PARENTS_DROPPED";
39
+ /** A position column that is not a node column of 2 or 3 components is not written. */
40
+ POSITION_SHAPE: "W_DOT_POSITION_SHAPE";
41
+ /** An id whose text reads back as the other type under ids: "canonical" (1.5 as text, "1" as 1). */
42
+ ID_TEXT_TYPE: "W_ID_TEXT_TYPE";
43
+ /** A declared column whose every row is unset is not written (DOT writes cells, never declarations). */
44
+ EMPTY_COLUMN_DROPPED: "W_EMPTY_COLUMN_DROPPED";
45
+ /** A role-less column named `label` reads back with the label role. */
46
+ ROLE_ASSUMED: "W_ROLE_ASSUMED";
47
+ }>;
48
+ /**
49
+ * The exporter plugin for DOT / Graphviz text (design section 12.4).
50
+ */
51
+ export declare const dotExporter: GraphExporter<DotExportOptions>;
52
+ //# sourceMappingURL=exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../../../src/formats/dot/exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAcH,OAAO,EAAqD,KAAK,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAatH,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC7B,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,0EAA0E;AAC1E,eAAO,MAAM,QAAQ;IACjB,mIAAmI;;IAEnI,sFAAsF;;IAEtF,0GAA0G;;IAE1G,+GAA+G;;IAE/G,sDAAsD;;IAEtD,4EAA4E;;IAE5E,uFAAuF;;IAEvF,oGAAoG;;IAEpG,wGAAwG;;IAExG,uEAAuE;;EAEzE,CAAC;AAsFH;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAwCtD,CAAC"}