@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
+ {"fileNames":["../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../graph-format/dist/src/constants.d.ts","../../graph-format/dist/src/errors.d.ts","../../graph-format/dist/src/columns/table.d.ts","../../graph-format/dist/src/types/columns.d.ts","../../graph-format/dist/src/ids/node-id-map.d.ts","../../graph-format/dist/src/types/internal.d.ts","../../graph-format/dist/src/snapshot/graph-meta.d.ts","../../graph-format/dist/src/snapshot/graph-snapshot.d.ts","../../graph-format/dist/src/types/wire.d.ts","../../graph-format/dist/src/types/snapshot.d.ts","../../graph-format/dist/src/types/builder.d.ts","../../graph-format/dist/src/types/index.d.ts","../../graph-format/dist/src/builder/graph-builder.d.ts","../../graph-format/dist/src/columns/dictionary.d.ts","../../graph-format/dist/src/columns/column.d.ts","../../graph-format/dist/src/columns/remap.d.ts","../../graph-format/dist/src/builder/arena.d.ts","../../graph-format/dist/src/populate/from-csr.d.ts","../../graph-format/dist/src/populate/from-edge-arrays.d.ts","../../graph-format/dist/src/populate/from-records.d.ts","../../graph-format/dist/src/snapshot/derived.d.ts","../../graph-format/dist/src/snapshot/views.d.ts","../../graph-format/dist/src/util/mask.d.ts","../../graph-format/dist/src/util/typed-array.d.ts","../../graph-format/dist/src/wire/bytes.d.ts","../../graph-format/dist/src/wire/from-wire.d.ts","../../graph-format/dist/src/index.d.ts","../../graph-format/dist/graph-format.d.ts","../src/children.ts","../src/types.ts","../src/common/codes.ts","../src/common/report.ts","../src/common/input.ts","../src/common/text.ts","../src/common/temporal.ts","../src/common/declared-types.ts","../src/common/lists.ts","../src/common/attributes.ts","../src/common/direction.ts","../src/common/ids.ts","../src/common/options.ts","../src/common/format.ts","../src/common/weights.ts","../src/formats/csv/header.ts","../src/formats/csv/records.ts","../src/formats/csv/values.ts","../src/formats/csv/importer.ts","../src/common/export.ts","../src/common/xml.ts","../src/common/escape.ts","../src/common/writer.ts","../src/formats/csv/exporter.ts","../src/formats/csv/index.ts","../src/formats/dot/names.ts","../src/formats/dot/exporter.ts","../src/formats/dot/tokenizer.ts","../src/formats/dot/importer.ts","../src/formats/dot/index.ts","../src/formats/gexf/schema.ts","../src/formats/gexf/importer.ts","../src/formats/gexf/exporter.ts","../src/formats/gexf/index.ts","../src/formats/gml/syntax.ts","../src/formats/gml/exporter.ts","../src/formats/gml/importer.ts","../src/formats/gml/index.ts","../src/formats/graphml/constants.ts","../src/formats/graphml/tree.ts","../src/formats/graphml/exporter.ts","../src/formats/graphml/importer.ts","../src/formats/graphml/index.ts","../src/formats/json/dialect.ts","../src/formats/json/exporter.ts","../src/formats/json/importer.ts","../src/formats/json/index.ts","../src/formats/neo4j/header.ts","../src/formats/neo4j/importer.ts","../src/formats/neo4j/exporter.ts","../src/formats/neo4j/index.ts","../src/formats/pajek/syntax.ts","../src/formats/pajek/exporter.ts","../src/formats/pajek/importer.ts","../src/formats/pajek/index.ts","../src/sniff.ts","../src/registry.ts","../src/index.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/compatibility/index.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@20.19.27/node_modules/@types/node/index.d.ts"],"fileIdsList":[[74,139,186],[59,139,186],[53,59,61,139,186],[139,186],[50,59,139,186],[48,49,50,51,52,55,56,57,58,60,62,63,65,66,67,68,69,70,71,72,73,139,186],[55,59,64,139,186],[55,59,139,186],[53,59,139,186],[48,53,54,59,139,186],[51,57,139,186],[50,139,186],[51,56,57,58,139,186],[48,51,52,55,56,139,186],[49,55,59,139,186],[75,139,186],[75,77,78,79,82,83,84,139,186],[75,82,139,186],[75,78,79,139,186],[75,96,139,186],[75,77,78,88,139,186],[75,78,139,186],[75,77,78,79,139,186],[75,77,139,186],[75,79,139,186],[75,83,89,139,186],[75,77,78,95,139,186],[75,77,81,84,85,86,87,88,89,90,91,95,97,98,139,186],[75,81,139,186],[75,77,78,79,80,85,86,87,88,90,91,92,93,139,186],[78,81,91,92,94,99,139,186],[75,77,79,80,139,186],[75,79,81,85,139,186],[75,76,77,81,86,87,88,89,90,95,97,98,101,139,186],[75,77,78,79,80,81,85,86,87,88,90,101,103,139,186],[102,104,139,186],[75,77,82,83,84,86,87,88,89,90,95,96,97,98,106,139,186],[75,77,78,79,80,82,83,84,85,86,87,88,90,96,106,139,186],[78,106,107,108,139,186],[75,77,85,86,88,89,90,95,97,98,110,139,186],[75,77,78,79,80,85,86,87,88,90,110,139,186],[78,111,112,139,186],[78,97,139,186],[78,139,186],[75,76,77,86,87,88,89,90,95,96,97,98,114,115,139,186],[75,77,79,80,83,84,85,86,87,88,90,96,114,115,139,186],[114,116,117,139,186],[75,96,97,139,186],[75,77,95,139,186],[75,77,86,88,89,90,95,98,119,139,186],[75,77,78,79,80,85,86,87,88,90,119,139,186],[119,120,121,139,186],[75,77,78,82,83,86,87,88,89,90,92,95,97,98,123,124,139,186],[75,77,78,79,80,83,84,85,86,87,88,90,92,123,139,186],[78,92,124,125,139,186],[75,77,86,87,88,89,90,95,97,98,127,139,186],[75,77,78,79,80,81,85,86,87,88,90,127,139,186],[128,129,139,186],[76,77,78,79,80,81,85,86,87,88,89,90,95,96,98,100,105,109,113,118,122,126,130,131,132,139,186],[75,77,79,80,100,105,109,113,118,122,126,130,131,139,186],[77,119,139,186],[139,183,186],[139,185,186],[186],[139,186,191,219],[139,186,187,192,197,205,216,227],[139,186,187,188,197,205],[134,135,136,139,186],[139,186,189,228],[139,186,190,191,198,206],[139,186,191,216,224],[139,186,192,194,197,205],[139,185,186,193],[139,186,194,195],[139,186,196,197],[139,185,186,197],[139,186,197,198,199,216,227],[139,186,197,198,199,212,216,219],[139,186,194,197,200,205,216,227],[139,186,197,198,200,201,205,216,224,227],[139,186,200,202,216,224,227],[137,138,139,140,141,142,143,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233],[139,186,197,203],[139,186,204,227,232],[139,186,194,197,205,216],[139,186,206],[139,186,207],[139,185,186,208],[139,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233],[139,186,210],[139,186,211],[139,186,197,212,213],[139,186,212,214,228,230],[139,186,197,216,217,219],[139,186,218,219],[139,186,216,217],[139,186,219],[139,186,220],[139,183,186,216,221],[139,186,197,222,223],[139,186,222,223],[139,186,191,205,216,224],[139,186,225],[139,186,205,226],[139,186,200,211,227],[139,186,191,228],[139,186,216,229],[139,186,204,230],[139,186,231],[139,181,186],[139,181,186,197,199,208,216,219,227,230,232],[139,186,216,233],[139,153,157,186,227],[139,153,186,216,227],[139,148,186],[139,150,153,186,224,227],[139,186,205,224],[139,186,234],[139,148,186,234],[139,150,153,186,205,227],[139,145,146,149,152,186,197,216,227],[139,153,160,186],[139,145,151,186],[139,153,174,175,186],[139,149,153,186,219,227,234],[139,174,186,234],[139,147,148,186,234],[139,153,186],[139,147,148,149,150,151,152,153,154,155,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,175,176,177,178,179,180,186],[139,153,168,186],[139,153,160,161,186],[139,151,153,161,162,186],[139,152,186],[139,145,148,153,186],[139,153,157,161,162,186],[139,157,186],[139,151,153,156,186,227],[139,145,150,153,160,186],[139,186,216],[139,148,153,174,186,232,234]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},"5ae6687d490b01491b89a3c4d42e6783800dfafef153296a3b2c6657d604547a","99f359625a3a1df763e02d755d9702bc3ed40eeb4505f07707a01f2f6c5792ad","bd32c3b5c60e7f36345111f72fcc7632e1c72ae337bee4e3510532e1d21783ca","76a020b93fc82091823d3be765921797015cfbfbbec1347ea732c006c8561312","5b0c89a44b7e31c5feea030a26d44259581cebd05e7bb0d2fb515a22175b773c","a57ad5f7a360e4f43b14e2167ea8166b8c3132c05b456ae77dd435b506324ded","b347146e100645250c33cf3559ce838862d3106e63a6a5d6b193ec598230658e","190a47e3ff72c94431576d393185bb36e94e0623fe7476aa2e818f366ddedb70","fd9346cd933acd58596f5b5b471b3f5756248f154807e6a68e2733bdca0f80eb","e029d7294007461b3b3c67de45e8e27939a548bb55219291a0d519a996120bdf","3ac3e6a0e5d8bf77c360ac389db89a05ca2f5be5cd06556ebb07bdd215d7f45f","1282720cef65236bae0bc5d19c15b5edfd8e9f07660770c4472ddb9c46f2c4a4","1358984f5b045ec723e24a27f6ecddc652b662c42ca6af54d9f69d5c0a927573","065afc8333aa091f2de0eb8241200719482d7da934d4c6137a36de6333974367","5757b235853f6834740596942fef797d198954d4e48856687e61172eee190236","d791e3b8c587768e94a9ee0be3471abe547a920ef44c9530e1e3c3614c25e682","6e490c2abee951affea84d0daa090dfdd5598137d59ffe3c4fd3fd74947fdc77","46ad24a96e76bc9b1b16c0aa7de8f68952ad840362ac542aead149e3155750aa","214bb559255860aed23470bab53b0a0b8229e9f0e8eef31d99ee52c1f5efa7ec","474150b68ff5c25347286b81c4d2349b018c8811952770edd9136a585c404a92","4c48bc8ffac5f7d83add78cf627cfd4eaa29a77fdcdd0529903c7d713a8eb5fd","05eb82f658c048afb7e0ed357c315882625b5981658f52331795812fb6fa8388","14e84217fd46ed670066a71fae8ac4080004540be2cfe730d159db85fb638f36","aae558e1a337b29f9a536ba8fc65600c2f3b39a7d131ad15e1d0559242c3f16e","398159cded96619d57c7f30fceb7150604f730c8d2797af916b3c68033993b3c","b6edc132731bd9afbab687ffde0ef0f8efae7fcbc5253cd2e1262d602b2564d2","73b891063fd0022398bd2678e08e3b46533a9ec4a1302af56f52b3fcccc4623b","dc191dc98c992e087105745a1646d87d4a1f620ddb32a74ff871950a8c8faa64",{"version":"a846fbeb042549e325db0316e52dd08b0facd82a6264d742ea31d8749bc25aa4","signature":"a8796943aba12f83d144cf5099d0afaabce62641dead31da9a3aa76167119e29"},{"version":"09f298367634513c71a190babc8944ee3bfa2f52d921ef300b2cafed5f2dbc04","signature":"70f39d68affbe1886e138e9974c5ffb31bcd2d4dad978bbbb987ff21dd19a855"},{"version":"4d36450c576175a5cd545f063b6960b2a05f37a8211fd1ff64dd0641b7810309","signature":"0e5bc9457d49b509c50163044c1cd55280660a0c2675c76f985ef4b73fce5e42"},{"version":"7a280e973bbae5e1e4cf2329b9e51aa7efb8d69e34d05ba0c0e543b9eb8ca28a","signature":"8ece7876ede31b6c728137c59fbff4ed703867c0478a9da03ee51cb8142ddf98"},{"version":"a2987ab0434a3da63e1dbbc25c1395ffc9d8f1ae08d69443c69ccbeaf32085f1","signature":"0e2c49d7a52348e5f5dc05c8ea362c14fe7943f5325614aaef298f0ea295a29e"},{"version":"13572312a2b2fb20fc4aeee8608e9f5d292676628f8c85218544b54fd0542959","signature":"e4dbafaca50bd67e5556902267ec431b3ea8137095088a0f1f8bc5974ed11e9c"},{"version":"365bdb7bde2d68670960bb41b040fd642f13f7caee18ee8b38967fe3482e6035","signature":"365aa65f89174c583976f4980925c8a5083f22e62097a1f6f4f8d0c57fda77c0"},{"version":"6b3c3fee70931d4b13d4762301ddd6c014303519e065f060e40594743da36410","signature":"8c989689328daeab8578679395b1ebf304811641fd874debbabb4fb4658cc816"},{"version":"ed2f8d4d57b4f7a64754f9dbbd3347ff034b8da53401a21e021fe17c50da6aa7","signature":"70d71c8d09c54a20916345646df1534537f5221b5fcaabe07923a3d84dbb49a1"},{"version":"7ed0476f2846dd3e5e452df1b6ce1475e2d0a910b148c843c6877cf1e000975a","signature":"b71590e1386ed5a76760a6a464a87b82814f677b2438ac02af2cb0e40b9ec717"},{"version":"0f3417a3065537eaa9bbeafc7b3c2d7afad78d81e9fe8ba24e0bb155b9cd7cb8","signature":"6199305c6831fa454a5456db1bb15abd9bdf49cfbbe8c4393d0ae45cc7945aa8"},{"version":"5dd9012e1942213379dc39221f73365439b4585b170ec3bbd9010c206f7b77eb","signature":"625376b03ba4065b5924b1d8b27fe8600eebdc04026e85a30e9c63c501a2626d"},{"version":"4c01911a28891e31b5582c9c765894ceab1c466f06effd683267b672c03b2328","signature":"e0c46f2b195553d27d9dec1403c56e9e3cfa2031a4aacc6e3095cfc79e19a6c6"},{"version":"e75132ea0478b93af9584cdccf3df42b290e66d88e2ab8e9d38c5c5835055088","signature":"623ad75b485a59ee44968d0c0afe168a9502ecdfa60a7971caca3ffa26610a14"},{"version":"bf19170f62bff1931765d176d4bfe5d6faa2984264fd543c14996c640f56eaf6","signature":"6ab49d9e6bcb9cad6a38bd90496ed24025decb1bf1149f5d433cc7c0b563f945"},{"version":"882976c0967eff993e380d89633c2a552510f24a2bf77a7b6cae4c1f965e2950","signature":"762fcbaf89a65145a8baa03e7b5819f9858d1cd9d6ecff4a4e6ce286417428c0"},{"version":"408f322bbd3379f73817707df3353c3a1c6d882f7511219c0286c1429e059c77","signature":"f83be9f2adf7e7e883f1c793c8abf3e066d7269c99ceb746f068c681e78be937"},{"version":"23a62f5481b1032a11d499b954a9efee3261d9c2b9d37e9972cf2a858526dd00","signature":"fa849c771f0e643fed5768832fa4095dcf28ab78c91abc9cb0c2948a352fe2d1"},{"version":"c33145c8616d2fcdca317641e20c67c4527e2facd16d50ac00ca3608cd316460","signature":"0dd2f41874adf30fa50b3070d2d2ca6270fd66dd9ccad6eefa5abd4d75ff854e"},{"version":"ea8dcf6be79f58f23f923a4381283bb2445a7d0d14e34436b3e04982956da250","signature":"e75d5349fcaf6e63e4761558c457dfa9f6fad1064c0990c5aeb83dca36a0f032"},{"version":"0d6ae73156a2b10c2cd564389269365e6cf46c857122fedd5768058612b6f70a","signature":"ae30790c97c0d929410e4832482a94bbcd0400cfe93d538952ed7df877507356"},{"version":"ae0b6deb001cba7fcbae60736bb8ca79272e4dfdb3625cb260bb9994c70bca2c","signature":"85658d03a1065cf879953db90bfeb072f7d65c68fab8860a9e51e41777d01b9f"},{"version":"28254cd43f5c2fa48c91ff36dd46c779660b6551dadbaafe975f856be7811aa3","signature":"5059bac7d9952e03e53d3fb7abc3f2b5c216bf4ae0384702a6643a94015c42fb"},{"version":"8e48aeb159ed036ebca4ce9838e5ee9b8168a7a05c62d5e3d908c0a559d18be2","signature":"c2266bd5b64264ddec996f5bb350272e32f3ccfd7a56288df025d1224d66c55a"},{"version":"dbd9bd1c667bea3755c3a9196e3089e8b4e1d68435a058c5f02fded502cd8afe","signature":"aa59e66efb6e28e05b8e2ac7105cc67b349bcee6a1db8e74c7b65eb9ceb582a1"},{"version":"832861280476e7fb772063fb3b282f632f9dbef9d3a45ba67f6585c307c24479","signature":"04cda7e922f9e95699a62b123025d32e02e82eaf701d3d59a4cb804fe7b9429c"},{"version":"2c20cd2ab20d8f21a6b23d08ea3a18a8f1916610316ba4a8d60a5f29546d45ba","signature":"7949757fc65970b0f774f4d2d618be0f92a7983dcfe3325f3fa18f5d5b042826"},{"version":"9811c546122c893a31f1324c1a85f17e8cf7038708a19789135d08ee25860e8a","signature":"f732051522fc9aaa1f0d5b7bd75aa0f7c454692c0e7e9f94d1605663148ff909"},{"version":"ecdf44c9958b2b1f5f93761755df549e5922cb98ab7bdde02dd00f0f07b347d8","signature":"ef4b45ab1450f6d06fc0d569cdcb5d6c4a825b70e7235d698ee732032122f296"},{"version":"4101d89ab7cdf66aaa290489375bd35ba3694bf4170acd42e6b77dd91823b987","signature":"76ab8b50133f51499af4ad7f2ca4f3772c0864c394830676a738b86928de1e02"},{"version":"f685c8337e9ead2d02e25d4f6703aab53490d8ec927e0709ed6e85cf57c3e2d7","signature":"9edaa8a2300ac38225e20a90ebb77a35715c85a134759f331e007487f573cf5a"},{"version":"2562ad1a46b12fce02443de399206f89db8f1dd8993c7e77d34ec0f568cfbd2e","signature":"279f1162623740f167493bab6bcb490b289b4ec4ab6e297eb5d2248eda646a15"},{"version":"811588e1e0c7ccbcc76549abe71ea6140d50ca27828beb8002262c2e6d0934c5","signature":"cace867cd7d919219b71b3e5fb8f9e7084baea1db286ede8d00c4e7b89a080dc"},{"version":"17c3fb5447a00cc8e0ddb607e67e04b7e782a91df108d3a12935d90718f807ce","signature":"4160dd3a7a9598ebc82b22dff0d5f23cc79799e806068f52f81bdaa30487adbb"},{"version":"8d58da500fa1a5951ae6e94f49fa23bc492ed043810c89d2dafbbcc18494db32","signature":"a1a3718d4fecb4fd59df17c5ea6e8f70606f2215938e4c833309647d86adbc52"},{"version":"eb09dd8d0e11dca7544f842d298df67fee73acdf9795d1552b4eaeb9253f4820","signature":"90db58f42c58ad3bff041eba34eaf24fb22ef201d03e736eedd9146c9049d229"},{"version":"4fb1e7742b53459c54b96d2730614305ac3c0998f47437369d410f271f47f2db","signature":"1ecb8c6badb67897bbdea461f0e5536cf6a77e3f09a533a67fff1b5fadc712c1"},{"version":"79d53ac30da5bf39a1aa9eafc564e1d76a895ecea29218eaf946bda4b0d8e3bd","signature":"261a04bc8832e6acb011c1de60cc75e2778ed7602d11da24cf10f6cfaecb95e3"},{"version":"1d6ac426844dec2a205c613d47f9cbfe6055e37e0f922087ab2c99844c722ae5","signature":"19221dc97edf579dedfdb4a076165f73b60119b4e470e5348535010c9a323652"},{"version":"2f231f0e2399b4d04318c2ef5f3eb712d75f0ed4e472e5822b8683b515eac7fb","signature":"e0e3a420f241925b761e830bc376d4308750564c6177674f4f01134f0f335d53"},{"version":"1f58c7ed85ce3eb7de08197d024945c83be3884e5b8b377b830db40c1c587944","signature":"30de0e0ca525e68d39a2a8ccb906edc027aa532cf58fb4e9bf8e7e0134aa79ed"},{"version":"61f76bd09eebe548b229395b6caa46520cbb29eacd09290b2722c5e7f28f273a","signature":"8e10f4aa2456a946771f284ebe67c7936929cfba1309740619d81a3de9f71746"},{"version":"c53998daefb640c562e516198a80ebcbea957f853b66690201a41b33a73607a1","signature":"fd5791027d7006cb8c295f7054fdf7d87a1b153c54c1e73f932399dedf7b738c"},{"version":"3897a770e7889215521a49f8863db040557cddc9b033df74997c00e3443d9991","signature":"8190ac8d2e5d15b69399dd2b5448616f631568a199f119307285cdccd17430ec"},{"version":"da6ebbca4fee88448cbd7356ec3acbd9d4dbb4bb88e918f1dedf7f051ae8e918","signature":"7c619ff8aa0398f084275c2e1a3189848620ef4be72c6c5d3272512819782c3b"},{"version":"4a46c67164ee6033dddb5c82c51c4d2a45f2dabbdfa99b340f8a949ff347a2c8","signature":"736b4c553c21756b0866a41a60d63dabebdcf18d7b67ccd31a30d7d59c3cbb8b"},{"version":"207207d4ffe3680a27cee1d5f4ffb42683860572b73b310e9579a5ac8b6bf394","signature":"3cf3180c35985a6a5b130da577fabcc9ac705a9cb3377bd50fc3ccd678b62ea4"},{"version":"34b59ba4f7f0c62f397cd4963e26a51d8218e35f3053eb877c6c64994c23a49f","signature":"4769f3a265ea374f007c4742299b12358631e3b8aaef7cb6d9d5d4b4b327f209"},{"version":"82e3823dc88f134795b1c8d52607918ef9490562a60c664b5cc0281ef38c42bd","signature":"019af5265ce5830e6696f9bb585f3c1e6478794c9466b30b9b67f87b97ed9051"},{"version":"74b3177e52babbbbbb097e575d012099dc114a5f8ae9d362ccdffed4444a8fc4","signature":"d99244f4f74c68c57360b015146fe5d3fd17cb0ff5e4edc4a7e9d62fee0da3ef"},{"version":"00d332b29b2747733cbbb90aa9071ed8b390d90b2304a61a007146726a917c4f","signature":"80562be5954d0ffdc3a6474c24431475ad9576b4e5bb904cec3c96765115bb47"},{"version":"42397154ab86b99b94511326eb6cb2f06a031562ccf1fbbd1f9bf6528191cb6a","signature":"61c656dca950f7db684cfa184d15ae5a455bc1974e3475cb75eefd76b7334a0b"},{"version":"d4cff482017c390f0ce25d6af01456664450ae4cee806d1de927f458c67871b8","signature":"7b3c71c790920b5b5133f64ea45197d751e3a40435f6b5c0691b2262787b1a4b"},{"version":"3f97b5955bdaf247adbf482fd202a88fef64a7f283c4e8b958f52191328cb50a","signature":"fabbc3d133df38d62310e999fdbccf5feb47254d291ffd2056647c063a873bf3"},{"version":"b9954c5f38383d43cd3ae23ce9e02511ac1757fad70ee14faa52d94601b0ebed","signature":"33e998c09226c7ac271cdd5d36905dc3f2661a2d6fb4f5687aa7e7fa7767f2fd"},{"version":"b8830e5ebe6344b1ec33f1b6fcf9068f8bdea41279a0f14b2284f80d86e5379b","signature":"d6505c07d835b69d4fd8679b78431cf97b357a69ee8dcc51148d658ab6fc1340"},{"version":"97164e6fee1634d691e33c8184a4efd5f95fd9268287d90459443558edf05492","signature":"ff1d07496bae7cd49f7157ce3c51afef896f931d17a811660cfa7a46d8541ee9"},{"version":"969f7c605e95f9bb8133f751f2160e8e4e2396e6b086a212274fb7a920388abd","signature":"7ab71f373a1d1723d6550c2e8126d17968385c5276a887e68fd8aae70ca6b583"},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"2fd4c143eff88dabb57701e6a40e02a4dbc36d5eb1362e7964d32028056a782b","impliedFormat":1},{"version":"714435130b9015fae551788df2a88038471a5a11eb471f27c4ede86552842bc9","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"27fdb0da0daf3b337c5530c5f266efe046a6ceb606e395b346974e4360c36419","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"d9e971bba9cf977c7774abbd4d2e3413a231af8a06a2e8b16af2a606bc91ddd0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"47ab634529c5955b6ad793474ae188fce3e6163e3a3fb5edd7e0e48f14435333","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"0225ecb9ed86bdb7a2c7fd01f1556906902929377b44483dc4b83e03b3ef227d","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"f9ab232778f2842ffd6955f88b1049982fa2ecb764d129ee4893cbc290f41977","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"05db535df8bdc30d9116fe754a3473d1b6479afbc14ae8eb18b605c62677d518","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1}],"root":[[76,133]],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"module":6,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUncheckedIndexedAccess":false,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7},"referencedMap":[[75,1],[64,2],[60,2],[62,3],[61,4],[63,5],[50,2],[48,4],[49,4],[52,2],[74,6],[65,7],[66,8],[67,8],[68,9],[54,2],[55,10],[69,2],[58,11],[51,12],[59,13],[53,11],[57,14],[56,11],[70,2],[71,2],[72,8],[73,15],[76,16],[85,17],[78,4],[83,18],[86,19],[97,20],[95,21],[89,4],[87,22],[80,23],[84,16],[88,23],[79,24],[82,16],[81,25],[90,26],[98,4],[96,27],[99,28],[91,29],[94,30],[100,31],[92,32],[93,33],[102,34],[104,35],[105,36],[101,16],[103,4],[108,37],[107,38],[109,39],[106,18],[111,40],[112,41],[113,42],[110,43],[114,44],[116,45],[117,46],[118,47],[115,48],[119,49],[120,50],[121,51],[122,52],[125,53],[123,16],[124,54],[126,55],[128,56],[129,57],[130,58],[127,4],[133,59],[132,60],[131,61],[77,16],[183,62],[184,62],[185,63],[139,64],[186,65],[187,66],[188,67],[134,4],[137,68],[135,4],[136,4],[189,69],[190,70],[191,71],[192,72],[193,73],[194,74],[195,74],[196,75],[197,76],[198,77],[199,78],[140,4],[138,4],[200,79],[201,80],[202,81],[234,82],[203,83],[204,84],[205,85],[206,86],[207,87],[208,88],[209,89],[210,90],[211,91],[212,92],[213,92],[214,93],[215,4],[216,94],[218,95],[217,96],[219,97],[220,98],[221,99],[222,100],[223,101],[224,102],[225,103],[226,104],[227,105],[228,106],[229,107],[230,108],[231,109],[141,4],[142,4],[143,4],[182,110],[232,111],[233,112],[144,4],[46,4],[47,4],[8,4],[9,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[20,4],[21,4],[4,4],[22,4],[26,4],[23,4],[24,4],[25,4],[27,4],[28,4],[29,4],[5,4],[30,4],[31,4],[32,4],[33,4],[6,4],[37,4],[34,4],[35,4],[36,4],[38,4],[7,4],[39,4],[44,4],[45,4],[40,4],[41,4],[42,4],[43,4],[1,4],[160,113],[170,114],[159,113],[180,115],[151,116],[150,117],[179,118],[173,119],[178,120],[153,121],[167,122],[152,123],[176,124],[148,125],[147,118],[177,126],[149,127],[154,128],[155,4],[158,128],[145,4],[181,129],[171,130],[162,131],[163,132],[165,133],[161,134],[164,135],[174,118],[156,136],[157,137],[166,138],[146,139],[169,130],[168,128],[172,4],[175,140]],"latestChangedDtsFile":"./src/index.d.ts","version":"5.9.3"}
package/package.json CHANGED
@@ -1,10 +1,125 @@
1
1
  {
2
2
  "name": "@graphty/graph-io",
3
- "version": "0.0.0",
4
- "description": "OIDC trusted publishing setup package for @graphty/graph-io",
3
+ "version": "0.2.1",
4
+ "description": "Importers and exporters (GEXF, GraphML, GML, DOT, Pajek, CSV, JSON, Neo4j) for the @graphty/graph-format snapshot",
5
+ "author": "Adam Powers <apowers@ato.ms>",
6
+ "type": "module",
7
+ "main": "dist/graph-io.js",
8
+ "types": "dist/graph-io.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/graph-io.d.ts",
12
+ "import": "./dist/graph-io.js",
13
+ "default": "./dist/graph-io.js"
14
+ },
15
+ "./gexf": {
16
+ "types": "./dist/gexf.d.ts",
17
+ "import": "./dist/gexf.js",
18
+ "default": "./dist/gexf.js"
19
+ },
20
+ "./graphml": {
21
+ "types": "./dist/graphml.d.ts",
22
+ "import": "./dist/graphml.js",
23
+ "default": "./dist/graphml.js"
24
+ },
25
+ "./gml": {
26
+ "types": "./dist/gml.d.ts",
27
+ "import": "./dist/gml.js",
28
+ "default": "./dist/gml.js"
29
+ },
30
+ "./dot": {
31
+ "types": "./dist/dot.d.ts",
32
+ "import": "./dist/dot.js",
33
+ "default": "./dist/dot.js"
34
+ },
35
+ "./pajek": {
36
+ "types": "./dist/pajek.d.ts",
37
+ "import": "./dist/pajek.js",
38
+ "default": "./dist/pajek.js"
39
+ },
40
+ "./csv": {
41
+ "types": "./dist/csv.d.ts",
42
+ "import": "./dist/csv.js",
43
+ "default": "./dist/csv.js"
44
+ },
45
+ "./json": {
46
+ "types": "./dist/json.d.ts",
47
+ "import": "./dist/json.js",
48
+ "default": "./dist/json.js"
49
+ },
50
+ "./neo4j": {
51
+ "types": "./dist/neo4j.d.ts",
52
+ "import": "./dist/neo4j.js",
53
+ "default": "./dist/neo4j.js"
54
+ }
55
+ },
56
+ "sideEffects": false,
57
+ "files": [
58
+ "dist/",
59
+ "src/",
60
+ "README.md",
61
+ "LICENSE"
62
+ ],
63
+ "publishConfig": {
64
+ "access": "public",
65
+ "provenance": true
66
+ },
67
+ "engines": {
68
+ "node": ">=18.19.0"
69
+ },
70
+ "repository": {
71
+ "type": "git",
72
+ "url": "git+https://github.com/graphty-org/graphty-monorepo.git",
73
+ "directory": "graph-io"
74
+ },
5
75
  "keywords": [
6
- "oidc",
7
- "trusted-publishing",
8
- "setup"
9
- ]
10
- }
76
+ "graph",
77
+ "gexf",
78
+ "graphml",
79
+ "gml",
80
+ "dot",
81
+ "graphviz",
82
+ "pajek",
83
+ "csv",
84
+ "json",
85
+ "neo4j",
86
+ "graph-format"
87
+ ],
88
+ "license": "MIT",
89
+ "bugs": {
90
+ "url": "https://github.com/graphty-org/graphty-monorepo/issues"
91
+ },
92
+ "homepage": "https://github.com/graphty-org/graphty-monorepo/tree/master/graph-io#readme",
93
+ "dependencies": {
94
+ "@graphty/graph-format": "0.2.1"
95
+ },
96
+ "peerDependencies": {
97
+ "@graphty/graph-format": "^0.2.0"
98
+ },
99
+ "devDependencies": {
100
+ "@vitest/coverage-v8": "^3.2.4",
101
+ "@vitest/ui": "^3.2.4",
102
+ "fast-check": "^4.2.0",
103
+ "fast-xml-parser": "^5.11.1",
104
+ "tsx": "^4.20.3",
105
+ "typescript": "^5.9.3",
106
+ "vite": "^7.0.5",
107
+ "vitest": "^3.2.4"
108
+ },
109
+ "scripts": {
110
+ "build": "tsc -p tsconfig.build.json",
111
+ "build:bundle": "node scripts/build-bundle.js",
112
+ "build:all": "npm run build && npm run build:bundle",
113
+ "lint": "eslint && tsc --noEmit -p tsconfig.json",
114
+ "lint:fix": "eslint --fix",
115
+ "typecheck": "tsc --noEmit -p tsconfig.json",
116
+ "typecheck:strict-consumer": "tsc -p tsconfig.strict-consumer.json",
117
+ "test": "vitest",
118
+ "test:ui": "vitest --ui",
119
+ "test:run": "vitest run",
120
+ "coverage": "vitest run --coverage",
121
+ "coverage:preview": "npx serve coverage -p 9057",
122
+ "benchmark": "tsx benchmarks/run.ts",
123
+ "ready:commit": "npm run build:all && npm run lint && npm run typecheck:strict-consumer && npm run test:run"
124
+ }
125
+ }
@@ -0,0 +1,335 @@
1
+ /**
2
+ * The children CSR over a containment column (design sections 5.10, 7.1 and 8.2): containment
3
+ * (GEXF `pid` / `<parents>`, Cytoscape `parent`, DOT clusters, GraphML nested graphs) is a node
4
+ * column with the `parent` role (u32, refersTo node) or the `parents` role (list of u32) and never
5
+ * enters the CSR of the snapshot. Importers and exporters that need to walk containers top-down
6
+ * (nested subgraphs, cluster blocks, parent lists) build this inverse index once: for every node
7
+ * `u`, `children[rowPtr[u] .. rowPtr[u + 1])` are its children in ascending index order, `roots`
8
+ * are the nodes with no parent, and `depthFirst()` is the pre-order the nested writers use.
9
+ *
10
+ * The helper is deliberately outside the core (7.1: it computes a property the arrays do not
11
+ * already imply and only io needs it). A reference is ignored when it is unset, INVALID_INDEX, out
12
+ * of range, or the node itself; a cycle (a parent chain that never reaches a root) is reported
13
+ * through `unreachable` and its members are appended to the depth-first order in index order so
14
+ * every node is written exactly once.
15
+ */
16
+
17
+ import { type Column, type GraphSnapshot, INVALID_INDEX } from "@graphty/graph-format";
18
+
19
+ /** The role of the column a children CSR is built over. */
20
+ export type ContainmentRole = "parent" | "parents";
21
+
22
+ /** How the CSR is built: from a role column of the snapshot (default `parent`, then `parents`) or an explicit column. */
23
+ export interface ChildrenOptions {
24
+ /**
25
+ * The column to read: a role name (`parent` for the u32 single-parent column, `parents` for
26
+ * the list column) or a column object of either shape; "auto" (default) takes the `parent`
27
+ * role column when the snapshot has one, else `parents`, else no containment; null builds
28
+ * the empty CSR (every node a root) whatever the snapshot holds.
29
+ */
30
+ readonly column?: ContainmentRole | Column | "auto" | null | undefined;
31
+ }
32
+
33
+ /** One depth-first traversal of the containment forest. */
34
+ export interface DepthFirstOrder {
35
+ /** Every node index exactly once: roots in index order, each followed by its descendants, cycle members last. */
36
+ readonly order: Uint32Array;
37
+ /** The depth of every node in the traversal (0 for a root or a cycle member forced to the top). */
38
+ readonly depth: Uint32Array;
39
+ /** Whether `order` differs from `0..n-1`. */
40
+ readonly reordered: boolean;
41
+ }
42
+
43
+ /**
44
+ * The children CSR of a snapshot's containment column (design sections 5.10 and 7.1): the inverse
45
+ * of the parent relation as a compressed sparse row structure over node indices.
46
+ */
47
+ export class ChildrenCsr {
48
+ /** The number of nodes (the row count of the CSR). */
49
+ readonly nodeCount: number;
50
+ /** `rowPtr[u] .. rowPtr[u + 1]` is the range of `children` holding the children of `u`; length nodeCount + 1. */
51
+ readonly rowPtr: Uint32Array;
52
+ /** Child node indices, ascending within each parent's range. */
53
+ readonly children: Uint32Array;
54
+ /** The nodes with no (valid) parent, in index order. */
55
+ readonly roots: Uint32Array;
56
+ /** Every (child, parent) reference kept; equal to `children.length`. */
57
+ readonly edgeCount: number;
58
+ /** References dropped because they were INVALID_INDEX, out of range or self-references. */
59
+ readonly dropped: number;
60
+ /** Nodes whose parent chain never reaches a root (members of a cycle), counted once each. */
61
+ readonly unreachable: number;
62
+ /** The column the CSR was built from, or null when the snapshot has no containment. */
63
+ readonly column: Column | null;
64
+
65
+ private readonly parentCount: Uint32Array;
66
+
67
+ /**
68
+ * Build the CSR; use childrenCsr() rather than the constructor.
69
+ * @param nodeCount - the node count
70
+ * @param rowPtr - the row pointers
71
+ * @param children - the child list
72
+ * @param parentCount - parents per node (0 for a root)
73
+ * @param dropped - references ignored
74
+ * @param column - the source column, or null
75
+ */
76
+ constructor(
77
+ nodeCount: number,
78
+ rowPtr: Uint32Array,
79
+ children: Uint32Array,
80
+ parentCount: Uint32Array,
81
+ dropped: number,
82
+ column: Column | null,
83
+ ) {
84
+ this.nodeCount = nodeCount;
85
+ this.rowPtr = rowPtr;
86
+ this.children = children;
87
+ this.parentCount = parentCount;
88
+ this.edgeCount = children.length;
89
+ this.dropped = dropped;
90
+ this.column = column;
91
+ let rootCount = 0;
92
+ for (let u = 0; u < nodeCount; u++) {
93
+ if (parentCount[u] === 0) {
94
+ rootCount++;
95
+ }
96
+ }
97
+ const roots = new Uint32Array(rootCount);
98
+ let r = 0;
99
+ for (let u = 0; u < nodeCount; u++) {
100
+ if (parentCount[u] === 0) {
101
+ roots[r++] = u;
102
+ }
103
+ }
104
+ this.roots = roots;
105
+ this.unreachable = nodeCount - this.reachableCount();
106
+ }
107
+
108
+ /**
109
+ * The children of a node, as a view into `children` (do not modify).
110
+ * @param node - the node index
111
+ * @returns the child indices in ascending order; empty for a leaf
112
+ */
113
+ childrenOf(node: number): Uint32Array {
114
+ return this.children.subarray(this.rowPtr[node], this.rowPtr[node + 1]);
115
+ }
116
+
117
+ /**
118
+ * How many children a node has.
119
+ * @param node - the node index
120
+ * @returns the count
121
+ */
122
+ childCount(node: number): number {
123
+ return this.rowPtr[node + 1] - this.rowPtr[node];
124
+ }
125
+
126
+ /**
127
+ * Whether a node is a container (has at least one child).
128
+ * @param node - the node index
129
+ * @returns true when it has children
130
+ */
131
+ hasChildren(node: number): boolean {
132
+ return this.rowPtr[node + 1] > this.rowPtr[node];
133
+ }
134
+
135
+ /**
136
+ * How many parents a node has: 0 for a root, 1 under a `parent` column, any number under `parents`.
137
+ * @param node - the node index
138
+ * @returns the parent count
139
+ */
140
+ parentCountOf(node: number): number {
141
+ return this.parentCount[node];
142
+ }
143
+
144
+ /**
145
+ * Whether a node has no parent.
146
+ * @param node - the node index
147
+ * @returns true for a root
148
+ */
149
+ isRoot(node: number): boolean {
150
+ return this.parentCount[node] === 0;
151
+ }
152
+
153
+ /**
154
+ * Whether the snapshot has any containment at all.
155
+ * @returns true when at least one child reference was kept
156
+ */
157
+ isEmpty(): boolean {
158
+ return this.edgeCount === 0;
159
+ }
160
+
161
+ /**
162
+ * A pre-order depth-first traversal from the roots in index order (children in ascending
163
+ * order), then every node not yet visited (a cycle member, or a multi-parent node reached
164
+ * only through a cycle) in index order at depth 0. Each node appears exactly once, so nested
165
+ * writers emit every element once even for a `parents` column that shares a child.
166
+ * @returns the order, the depth of every node and whether the order differs from index order
167
+ */
168
+ depthFirst(): DepthFirstOrder {
169
+ const n = this.nodeCount;
170
+ const order = new Uint32Array(n);
171
+ const depth = new Uint32Array(n);
172
+ const visited = new Uint8Array(n);
173
+ const stackNode: number[] = [];
174
+ const stackCursor: number[] = [];
175
+ let position = 0;
176
+ let reordered = false;
177
+ const place = (u: number, d: number): void => {
178
+ visited[u] = 1;
179
+ if (u !== position) {
180
+ reordered = true;
181
+ }
182
+ order[position++] = u;
183
+ depth[u] = d;
184
+ };
185
+ const visit = (root: number): void => {
186
+ place(root, 0);
187
+ stackNode.push(root);
188
+ stackCursor.push(this.rowPtr[root]);
189
+ while (stackNode.length > 0) {
190
+ const top = stackNode.length - 1;
191
+ const u = stackNode[top];
192
+ const cursor = stackCursor[top];
193
+ if (cursor >= this.rowPtr[u + 1]) {
194
+ stackNode.pop();
195
+ stackCursor.pop();
196
+ continue;
197
+ }
198
+ stackCursor[top] = cursor + 1;
199
+ const v = this.children[cursor];
200
+ if (visited[v] === 1) {
201
+ continue;
202
+ }
203
+ place(v, stackNode.length);
204
+ stackNode.push(v);
205
+ stackCursor.push(this.rowPtr[v]);
206
+ }
207
+ };
208
+ for (const root of this.roots) {
209
+ visit(root);
210
+ }
211
+ for (let u = 0; u < n; u++) {
212
+ if (visited[u] === 0) {
213
+ visit(u);
214
+ }
215
+ }
216
+ return { order, depth, reordered };
217
+ }
218
+
219
+ /**
220
+ * The nodes reachable from the roots by following child references.
221
+ * @returns how many nodes a traversal from the roots reaches
222
+ */
223
+ private reachableCount(): number {
224
+ const visited = new Uint8Array(this.nodeCount);
225
+ // every node is pushed at most once, so a stack of nodeCount entries never overflows
226
+ const stack = new Uint32Array(this.nodeCount);
227
+ let top = 0;
228
+ let count = 0;
229
+ for (const root of this.roots) {
230
+ visited[root] = 1;
231
+ count++;
232
+ stack[top++] = root;
233
+ while (top > 0) {
234
+ const u = stack[--top];
235
+ for (let k = this.rowPtr[u]; k < this.rowPtr[u + 1]; k++) {
236
+ const v = this.children[k];
237
+ if (visited[v] === 0) {
238
+ visited[v] = 1;
239
+ count++;
240
+ stack[top++] = v;
241
+ }
242
+ }
243
+ }
244
+ }
245
+ return count;
246
+ }
247
+ }
248
+
249
+ /**
250
+ * Build the children CSR of a snapshot (design section 7.1: a graph-io helper, not a core view).
251
+ * @param snapshot - the snapshot
252
+ * @param options - which column to read; the `parent` role, then `parents`, by default
253
+ * @returns the CSR; empty (every node a root) when the snapshot has no containment column
254
+ */
255
+ export function childrenCsr(snapshot: GraphSnapshot, options: ChildrenOptions = {}): ChildrenCsr {
256
+ const column = resolveColumn(snapshot, options.column === undefined ? "auto" : options.column);
257
+ return childrenFromColumn(snapshot.nodeCount, column);
258
+ }
259
+
260
+ /**
261
+ * Build the children CSR over one containment column without a snapshot (an importer that holds
262
+ * the column before freezing, a test).
263
+ * @param nodeCount - the node count the references index into
264
+ * @param column - a u32 `parent`-shaped column, a list-of-u32 `parents`-shaped column, or null for none
265
+ * @returns the CSR
266
+ */
267
+ export function childrenFromColumn(nodeCount: number, column: Column | null): ChildrenCsr {
268
+ const rowPtr = new Uint32Array(nodeCount + 1);
269
+ const parentCount = new Uint32Array(nodeCount);
270
+ let dropped = 0;
271
+ const references: number[] = [];
272
+ if (column !== null) {
273
+ const rows = Math.min(column.length, nodeCount);
274
+ const keep = (child: number, parent: number): void => {
275
+ if (!Number.isInteger(parent) || parent === INVALID_INDEX || parent >= nodeCount || parent === child) {
276
+ dropped++;
277
+ return;
278
+ }
279
+ references.push(child, parent);
280
+ rowPtr[parent + 1]++;
281
+ parentCount[child]++;
282
+ };
283
+ if (column.dtype === "u32") {
284
+ const { data } = column;
285
+ for (let i = 0; i < rows; i++) {
286
+ if (column.isSet(i)) {
287
+ keep(i, data[i]);
288
+ }
289
+ }
290
+ } else if (column.dtype === "list") {
291
+ for (let i = 0; i < rows; i++) {
292
+ if (!column.isSet(i)) {
293
+ continue;
294
+ }
295
+ for (const item of column.sliceOf(i)) {
296
+ if (typeof item === "number") {
297
+ keep(i, item);
298
+ } else {
299
+ dropped++;
300
+ }
301
+ }
302
+ }
303
+ } else {
304
+ throw new TypeError(
305
+ `a containment column must be u32 or a list of u32, found ${column.dtype} column "${column.meta.name}"`,
306
+ );
307
+ }
308
+ }
309
+ for (let u = 0; u < nodeCount; u++) {
310
+ rowPtr[u + 1] += rowPtr[u];
311
+ }
312
+ const children = new Uint32Array(rowPtr[nodeCount]);
313
+ const fill = rowPtr.slice(0, nodeCount);
314
+ // references were collected in ascending child order, so each parent's range fills ascending
315
+ for (let k = 0; k < references.length; k += 2) {
316
+ children[fill[references[k + 1]]++] = references[k];
317
+ }
318
+ return new ChildrenCsr(nodeCount, rowPtr, children, parentCount, dropped, column);
319
+ }
320
+
321
+ /**
322
+ * The column a ChildrenOptions selects.
323
+ * @param snapshot - the snapshot
324
+ * @param choice - the option value
325
+ * @returns the column, or null when the snapshot has none of that shape
326
+ */
327
+ function resolveColumn(snapshot: GraphSnapshot, choice: ContainmentRole | Column | "auto" | null): Column | null {
328
+ if (typeof choice !== "string") {
329
+ return choice;
330
+ }
331
+ if (choice === "parent" || choice === "parents") {
332
+ return snapshot.nodes.byRole(choice);
333
+ }
334
+ return snapshot.nodes.byRole("parent") ?? snapshot.nodes.byRole("parents");
335
+ }