@graphty/graph-format 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 (224) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +216 -43
  3. package/dist/graph-format.d.ts +1 -0
  4. package/dist/graph-format.d.ts.map +1 -0
  5. package/dist/graph-format.js +15798 -0
  6. package/dist/graph-format.js.map +1 -0
  7. package/dist/src/builder/arena.d.ts +85 -0
  8. package/dist/src/builder/arena.d.ts.map +1 -0
  9. package/dist/src/builder/arena.js +154 -0
  10. package/dist/src/builder/arena.js.map +1 -0
  11. package/dist/src/builder/compact.d.ts +515 -0
  12. package/dist/src/builder/compact.d.ts.map +1 -0
  13. package/dist/src/builder/compact.js +1553 -0
  14. package/dist/src/builder/compact.js.map +1 -0
  15. package/dist/src/builder/counting-sort.d.ts +96 -0
  16. package/dist/src/builder/counting-sort.d.ts.map +1 -0
  17. package/dist/src/builder/counting-sort.js +430 -0
  18. package/dist/src/builder/counting-sort.js.map +1 -0
  19. package/dist/src/builder/freeze.d.ts +72 -0
  20. package/dist/src/builder/freeze.d.ts.map +1 -0
  21. package/dist/src/builder/freeze.js +548 -0
  22. package/dist/src/builder/freeze.js.map +1 -0
  23. package/dist/src/builder/graph-builder.d.ts +602 -0
  24. package/dist/src/builder/graph-builder.d.ts.map +1 -0
  25. package/dist/src/builder/graph-builder.js +1940 -0
  26. package/dist/src/builder/graph-builder.js.map +1 -0
  27. package/dist/src/builder/options.d.ts +16 -0
  28. package/dist/src/builder/options.d.ts.map +1 -0
  29. package/dist/src/builder/options.js +21 -0
  30. package/dist/src/builder/options.js.map +1 -0
  31. package/dist/src/columns/bitmap.d.ts +96 -0
  32. package/dist/src/columns/bitmap.d.ts.map +1 -0
  33. package/dist/src/columns/bitmap.js +184 -0
  34. package/dist/src/columns/bitmap.js.map +1 -0
  35. package/dist/src/columns/column.d.ts +220 -0
  36. package/dist/src/columns/column.d.ts.map +1 -0
  37. package/dist/src/columns/column.js +2109 -0
  38. package/dist/src/columns/column.js.map +1 -0
  39. package/dist/src/columns/dictionary.d.ts +60 -0
  40. package/dist/src/columns/dictionary.d.ts.map +1 -0
  41. package/dist/src/columns/dictionary.js +102 -0
  42. package/dist/src/columns/dictionary.js.map +1 -0
  43. package/dist/src/columns/growable.d.ts +198 -0
  44. package/dist/src/columns/growable.d.ts.map +1 -0
  45. package/dist/src/columns/growable.js +296 -0
  46. package/dist/src/columns/growable.js.map +1 -0
  47. package/dist/src/columns/infer.d.ts +121 -0
  48. package/dist/src/columns/infer.d.ts.map +1 -0
  49. package/dist/src/columns/infer.js +268 -0
  50. package/dist/src/columns/infer.js.map +1 -0
  51. package/dist/src/columns/remap.d.ts +143 -0
  52. package/dist/src/columns/remap.d.ts.map +1 -0
  53. package/dist/src/columns/remap.js +588 -0
  54. package/dist/src/columns/remap.js.map +1 -0
  55. package/dist/src/columns/table.d.ts +184 -0
  56. package/dist/src/columns/table.d.ts.map +1 -0
  57. package/dist/src/columns/table.js +485 -0
  58. package/dist/src/columns/table.js.map +1 -0
  59. package/dist/src/constants.d.ts +34 -0
  60. package/dist/src/constants.d.ts.map +1 -0
  61. package/dist/src/constants.js +79 -0
  62. package/dist/src/constants.js.map +1 -0
  63. package/dist/src/errors.d.ts +76 -0
  64. package/dist/src/errors.d.ts.map +1 -0
  65. package/dist/src/errors.js +32 -0
  66. package/dist/src/errors.js.map +1 -0
  67. package/dist/src/ids/edge-id-index.d.ts +77 -0
  68. package/dist/src/ids/edge-id-index.d.ts.map +1 -0
  69. package/dist/src/ids/edge-id-index.js +155 -0
  70. package/dist/src/ids/edge-id-index.js.map +1 -0
  71. package/dist/src/ids/node-id-map.d.ts +280 -0
  72. package/dist/src/ids/node-id-map.d.ts.map +1 -0
  73. package/dist/src/ids/node-id-map.js +1139 -0
  74. package/dist/src/ids/node-id-map.js.map +1 -0
  75. package/dist/src/ids/string-store.d.ts +219 -0
  76. package/dist/src/ids/string-store.d.ts.map +1 -0
  77. package/dist/src/ids/string-store.js +526 -0
  78. package/dist/src/ids/string-store.js.map +1 -0
  79. package/dist/src/index.d.ts +30 -0
  80. package/dist/src/index.d.ts.map +1 -0
  81. package/dist/src/index.js +29 -0
  82. package/dist/src/index.js.map +1 -0
  83. package/dist/src/populate/from-csr.d.ts +61 -0
  84. package/dist/src/populate/from-csr.d.ts.map +1 -0
  85. package/dist/src/populate/from-csr.js +706 -0
  86. package/dist/src/populate/from-csr.js.map +1 -0
  87. package/dist/src/populate/from-edge-arrays.d.ts +51 -0
  88. package/dist/src/populate/from-edge-arrays.d.ts.map +1 -0
  89. package/dist/src/populate/from-edge-arrays.js +217 -0
  90. package/dist/src/populate/from-edge-arrays.js.map +1 -0
  91. package/dist/src/populate/from-records.d.ts +51 -0
  92. package/dist/src/populate/from-records.d.ts.map +1 -0
  93. package/dist/src/populate/from-records.js +447 -0
  94. package/dist/src/populate/from-records.js.map +1 -0
  95. package/dist/src/snapshot/derived.d.ts +211 -0
  96. package/dist/src/snapshot/derived.d.ts.map +1 -0
  97. package/dist/src/snapshot/derived.js +1254 -0
  98. package/dist/src/snapshot/derived.js.map +1 -0
  99. package/dist/src/snapshot/graph-meta.d.ts +23 -0
  100. package/dist/src/snapshot/graph-meta.d.ts.map +1 -0
  101. package/dist/src/snapshot/graph-meta.js +159 -0
  102. package/dist/src/snapshot/graph-meta.js.map +1 -0
  103. package/dist/src/snapshot/graph-snapshot.d.ts +509 -0
  104. package/dist/src/snapshot/graph-snapshot.d.ts.map +1 -0
  105. package/dist/src/snapshot/graph-snapshot.js +1247 -0
  106. package/dist/src/snapshot/graph-snapshot.js.map +1 -0
  107. package/dist/src/snapshot/hash.d.ts +90 -0
  108. package/dist/src/snapshot/hash.d.ts.map +1 -0
  109. package/dist/src/snapshot/hash.js +228 -0
  110. package/dist/src/snapshot/hash.js.map +1 -0
  111. package/dist/src/snapshot/queries.d.ts +74 -0
  112. package/dist/src/snapshot/queries.d.ts.map +1 -0
  113. package/dist/src/snapshot/queries.js +131 -0
  114. package/dist/src/snapshot/queries.js.map +1 -0
  115. package/dist/src/snapshot/validate.d.ts +192 -0
  116. package/dist/src/snapshot/validate.d.ts.map +1 -0
  117. package/dist/src/snapshot/validate.js +990 -0
  118. package/dist/src/snapshot/validate.js.map +1 -0
  119. package/dist/src/snapshot/views.d.ts +274 -0
  120. package/dist/src/snapshot/views.d.ts.map +1 -0
  121. package/dist/src/snapshot/views.js +856 -0
  122. package/dist/src/snapshot/views.js.map +1 -0
  123. package/dist/src/types/builder.d.ts +456 -0
  124. package/dist/src/types/builder.d.ts.map +1 -0
  125. package/dist/src/types/builder.js +11 -0
  126. package/dist/src/types/builder.js.map +1 -0
  127. package/dist/src/types/columns.d.ts +615 -0
  128. package/dist/src/types/columns.d.ts.map +1 -0
  129. package/dist/src/types/columns.js +14 -0
  130. package/dist/src/types/columns.js.map +1 -0
  131. package/dist/src/types/index.d.ts +14 -0
  132. package/dist/src/types/index.d.ts.map +1 -0
  133. package/dist/src/types/index.js +11 -0
  134. package/dist/src/types/index.js.map +1 -0
  135. package/dist/src/types/internal.d.ts +172 -0
  136. package/dist/src/types/internal.d.ts.map +1 -0
  137. package/dist/src/types/internal.js +13 -0
  138. package/dist/src/types/internal.js.map +1 -0
  139. package/dist/src/types/snapshot.d.ts +801 -0
  140. package/dist/src/types/snapshot.d.ts.map +1 -0
  141. package/dist/src/types/snapshot.js +14 -0
  142. package/dist/src/types/snapshot.js.map +1 -0
  143. package/dist/src/types/wire.d.ts +196 -0
  144. package/dist/src/types/wire.d.ts.map +1 -0
  145. package/dist/src/types/wire.js +8 -0
  146. package/dist/src/types/wire.js.map +1 -0
  147. package/dist/src/util/mask.d.ts +55 -0
  148. package/dist/src/util/mask.d.ts.map +1 -0
  149. package/dist/src/util/mask.js +71 -0
  150. package/dist/src/util/mask.js.map +1 -0
  151. package/dist/src/util/options.d.ts +22 -0
  152. package/dist/src/util/options.d.ts.map +1 -0
  153. package/dist/src/util/options.js +49 -0
  154. package/dist/src/util/options.js.map +1 -0
  155. package/dist/src/util/shared-buffers.d.ts +42 -0
  156. package/dist/src/util/shared-buffers.d.ts.map +1 -0
  157. package/dist/src/util/shared-buffers.js +52 -0
  158. package/dist/src/util/shared-buffers.js.map +1 -0
  159. package/dist/src/util/typed-array.d.ts +205 -0
  160. package/dist/src/util/typed-array.d.ts.map +1 -0
  161. package/dist/src/util/typed-array.js +289 -0
  162. package/dist/src/util/typed-array.js.map +1 -0
  163. package/dist/src/wire/bytes.d.ts +69 -0
  164. package/dist/src/wire/bytes.d.ts.map +1 -0
  165. package/dist/src/wire/bytes.js +361 -0
  166. package/dist/src/wire/bytes.js.map +1 -0
  167. package/dist/src/wire/carried-views.d.ts +111 -0
  168. package/dist/src/wire/carried-views.d.ts.map +1 -0
  169. package/dist/src/wire/carried-views.js +286 -0
  170. package/dist/src/wire/carried-views.js.map +1 -0
  171. package/dist/src/wire/from-wire.d.ts +144 -0
  172. package/dist/src/wire/from-wire.d.ts.map +1 -0
  173. package/dist/src/wire/from-wire.js +1425 -0
  174. package/dist/src/wire/from-wire.js.map +1 -0
  175. package/dist/src/wire/to-wire.d.ts +171 -0
  176. package/dist/src/wire/to-wire.d.ts.map +1 -0
  177. package/dist/src/wire/to-wire.js +652 -0
  178. package/dist/src/wire/to-wire.js.map +1 -0
  179. package/dist/tsconfig.build.tsbuildinfo +1 -0
  180. package/package.json +72 -7
  181. package/src/builder/arena.ts +192 -0
  182. package/src/builder/compact.ts +1811 -0
  183. package/src/builder/counting-sort.ts +506 -0
  184. package/src/builder/freeze.ts +689 -0
  185. package/src/builder/graph-builder.ts +2264 -0
  186. package/src/builder/options.ts +29 -0
  187. package/src/columns/bitmap.ts +196 -0
  188. package/src/columns/column.ts +2574 -0
  189. package/src/columns/dictionary.ts +114 -0
  190. package/src/columns/growable.ts +350 -0
  191. package/src/columns/infer.ts +285 -0
  192. package/src/columns/remap.ts +663 -0
  193. package/src/columns/table.ts +568 -0
  194. package/src/constants.ts +89 -0
  195. package/src/errors.ts +115 -0
  196. package/src/ids/edge-id-index.ts +179 -0
  197. package/src/ids/node-id-map.ts +1340 -0
  198. package/src/ids/string-store.ts +589 -0
  199. package/src/index.ts +139 -0
  200. package/src/lib-resizable-array-buffer.d.ts +34 -0
  201. package/src/populate/from-csr.ts +802 -0
  202. package/src/populate/from-edge-arrays.ts +257 -0
  203. package/src/populate/from-records.ts +536 -0
  204. package/src/snapshot/derived.ts +1486 -0
  205. package/src/snapshot/graph-meta.ts +167 -0
  206. package/src/snapshot/graph-snapshot.ts +1503 -0
  207. package/src/snapshot/hash.ts +241 -0
  208. package/src/snapshot/queries.ts +136 -0
  209. package/src/snapshot/validate.ts +1108 -0
  210. package/src/snapshot/views.ts +943 -0
  211. package/src/types/builder.ts +480 -0
  212. package/src/types/columns.ts +727 -0
  213. package/src/types/index.ts +14 -0
  214. package/src/types/internal.ts +195 -0
  215. package/src/types/snapshot.ts +886 -0
  216. package/src/types/wire.ts +207 -0
  217. package/src/util/mask.ts +89 -0
  218. package/src/util/options.ts +57 -0
  219. package/src/util/shared-buffers.ts +56 -0
  220. package/src/util/typed-array.ts +371 -0
  221. package/src/wire/bytes.ts +440 -0
  222. package/src/wire/carried-views.ts +327 -0
  223. package/src/wire/from-wire.ts +1690 -0
  224. package/src/wire/to-wire.ts +755 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"from-csr.js","sourceRoot":"","sources":["../../../src/populate/from-csr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAmB,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,cAAc,EAAsB,MAAM,+BAA+B,CAAC;AACnF,OAAO,EACH,kBAAkB,EAClB,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,iBAAiB,GACpB,MAAM,yBAAyB,CAAC;AAqBjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,yEAAyE;AAEzE,8CAA8C;AAC9C,MAAM,UAAU,GAAqC;IACjD,YAAY;IACZ,cAAc;IACd,qBAAqB;IACrB,UAAU;IACV,eAAe;IACf,oBAAoB;IACpB,eAAe;CAClB,CAAC;AAEF,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAetF;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAY,EAAE,QAAgB;IAClD,OAAO,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,GAAG,IAAI,cAAc,QAAQ,EAAE,EAAE;QAC/E,KAAK,EAAE,IAAI;QACX,QAAQ;QACR,MAAM,EAAE,OAAO;KAClB,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,KAAe;IAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;QAC3F,MAAM,IAAI,gBAAgB,CAAC,aAAa,EAAE,aAAa,KAAK,CAAC,SAAS,sCAAsC,EAAE;YAC1G,KAAK,EAAE,KAAK,CAAC,SAAS;YACtB,GAAG,EAAE,SAAS;SACjB,CAAC,CAAC;IACP,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;QACzC,MAAM,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;QACzC,MAAM,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,YAAY,CAAC,EAAE,CAAC;QACpG,MAAM,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,YAAY,WAAW,CAAC,EAAE,CAAC;QAC7E,MAAM,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,YAAY,WAAW,CAAC,EAAE,CAAC;QAC7E,MAAM,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,kBAAkB,CAAC,IAAI,EAAE,aAAa,KAAK,CAAC,SAAS,gCAAgC,EAAE;YACzF,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,KAAK,CAAC,SAAS;SACzB,CAAC,CAAC;IACP,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,kBAAkB,CAAC,IAAI,EAAE,cAAc,KAAK,CAAC,MAAM,CAAC,MAAM,sBAAsB,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,EAAE;YACzG,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC;YAC7B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;SAC7B,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,KAAsB;IAC3C,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,SAAc,EAAE,SAAiB;IACtD,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;YAClD,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,OAAe,EAAE,OAA0C;IAC9E,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,WAAW,CAAC,KAAe,EAAE,KAAsB;IACxD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;IACtC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/D,IAAI,SAAS,GAAe,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;IACpD,IAAI,SAAS,GAAe,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;IACpD,IAAI,SAAiB,CAAC;IACtB,IAAI,QAAQ,EAAE,CAAC;QACX,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC;QACxC,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,kBAAkB,CAAC,IAAI,EAAE,+BAA+B,QAAQ,kBAAkB,SAAS,EAAE,EAAE;gBACjG,QAAQ;gBACR,SAAS;aACZ,CAAC,CAAC;QACP,CAAC;QACD,2FAA2F;QAC3F,MAAM,QAAQ,GAAG,SAAS,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAChG,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,SAAS,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBACvG,MAAM,aAAa,CAAC,gDAAgD,EAAE;oBAClE,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,SAAS,CAAC,MAAM;oBACvB,QAAQ,EAAE,SAAS;iBACtB,CAAC,CAAC;YACP,CAAC;YACD,SAAS,GAAG,IAAI,CAAC;YACjB,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,SAAS,GAAG,eAAe,CAAC,SAAgB,EAAE,SAAS,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,aAAa,CAAC,2CAA2C,EAAE;gBAC7D,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,mBAAmB;aAC9B,CAAC,CAAC;QACP,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;oBACrB,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;YACD,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACJ,SAAS,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,SAAS,KAAT,SAAS,GAAK,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,EAAC;IACxD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACjG,CAAC;AAED,sFAAsF;AAEtF;;;;;GAKG;AACH,SAAS,YAAY,CAAC,IAAkB,EAAE,KAAyB;IAC/D,OAAO;QACH,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK;KACR,CAAC;AACN,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,IAA+B;IACvD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/B,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACpC,MAAM,MAAM,GAAwC;QAChD,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,SAAS;KACjB,CAAC;IACF,MAAM,QAAQ,GAA+C;QACzD,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;KAClB,CAAC;IACF,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC3C,SAAS;QACb,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,SAAS,KAAK,CAAC,EAAE,CAAC;YACtG,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QACxG,MAAM,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACT,MAAM,GAAG,MAAM,CAAC;QACpB,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM;QACN,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,MAAM,GAAG,IAAI;QACzB,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,aAAa,EAAE,MAAM,GAAG,IAAI;KAC/B,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAkB;IACjC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,kFAAkF;AAElF;;;;;;;;GAQG;AACH,SAAS,OAAO,CAAC,KAAe,EAAE,KAAsB,EAAE,IAAa;IACnE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,gBAAgB,CACtB,iBAAiB,EACjB,WAAW,GAAG,CAAC,MAAM,gCAAgC,SAAS,EAAE,EAChE;YACI,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,GAAG,CAAC,MAAM;SACpB,CACJ,CAAC;IACN,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,KAAK,MAAM,CAAC;IAClC,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAChF,OAAO,gBAAgB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,OAAO,CACZ,MAAuB,EACvB,QAAgB,EAChB,OAA2E,EAC3E,IAAa;IAEb,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,+FAA+F;IAC/F,MAAM,MAAM,GAAiD,EAAE,CAAC;IAChE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3E,CAAC;aAAM,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACtG,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;IACL,CAAC;IACD,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAiC;IAC9D,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACpG,CAAC;AAED,qEAAqE;AAErE;;;;GAIG;AACH,SAAS,YAAY,CAAC,MAA8B;IAChD,OAAO,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,OAAO,CAAC,QAAiB,EAAE,SAAiB,EAAE,IAAgB,EAAE,aAAqB;IAC1F,OAAO,YAAY,CAAC;QAChB,QAAQ;QACR,SAAS;QACT,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,aAAa;KAChB,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,MAA8B,EAAE,KAAoB;IACtE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;IACX,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,kBAAkB,CAAC,IAAI,EAAE,QAAQ,IAAI,eAAe,KAAK,uBAAuB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;gBACjG,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC;aACxB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;AACL,CAAC;AAED,oFAAoF;AAEpF;;;;;GAKG;AACH,SAAS,UAAU,CAAC,CAAgB;IAChC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxF,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,CAAgB;IACnC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,SAAS;YACb,CAAC;YACD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC3C,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,KAAoB,EAAE,OAAsB;IAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE;gBAC9F,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aAC9B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC;IACpC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5F,MAAM,UAAU,GAAG,SAAS,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/F,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1B,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE;oBACxE,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;oBACvB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;iBACvB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,SAAwB,EAAE,KAAoB;IACjE,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,YAAY,CACvB;QACI,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,OAAO,EAAE,KAAK,CAAC,OAAO;KACzB,EACD,IAAI,CACP,CAAC;IACF,OAAO;QACH,GAAG,KAAK;QACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;QAC1B,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;QAC1B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;QAC5B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;QAChC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;QAChC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;KAC3B,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,CAAgB;IAChD,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACjB,UAAU,CAAC,CAAC,CAAC,CAAC;IACd,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,MAAM,GAAwC;QAChD,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;QAClB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;QAClB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;KACrB,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YACzB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;AACL,CAAC;AAED,+EAA+E;AAE/E;;;;GAIG;AACH,SAAS,cAAc,CAAC,OAAuB;IAK3C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC;IACzC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,gBAAgB,CAAC,eAAe,EAAE,gCAAgC,KAAK,EAAE,EAAE;YACjF,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,oBAAoB;SAC/B,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;AACxF,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,OAAO,CAAC,KAAe,EAAE,UAA0B,EAAE;IACjE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1D,UAAU,CAAC,KAAK,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IAE3B,qCAAqC;IACrC,IAAI,IAAgB,CAAC;IACrB,IAAI,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,IAAI,GAAG,iBAAiB,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,+FAA+F;IAC/F,sFAAsF;IACtF,MAAM,WAAW,GAAG,KAAK,KAAK,MAAM,CAAC;IACrC,IAAI,KAAoB,CAAC;IACzB,IAAI,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,KAAK,GAAG,WAAW,CACf;YACI,GAAG,MAAM;YACT,QAAQ,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI;YAC/B,mBAAmB,EAAE,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;SAC3D,EACD,MAAM,CACT,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC5E,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnE,CAAC;IAED,MAAM,KAAK,GAAkB;QACzB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,QAAQ;QACR,SAAS;QACT,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK;QACL,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC;QAC1D,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC;QACnE,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9B,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;QAClC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,KAAK;KAClB,CAAC;IACF,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAExC,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,6EAA6E;QAC7E,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnB,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnB,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,cAAc,CAAC;YAC3B,GAAG,YAAY;YACf,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK;SACpF,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACpC,CAAC;YACD,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QACxB,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC1B,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,+GAA+G;AAC/G,MAAM,cAAc,GAAqC,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;AAE7F;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,QAAuB,EAAE,MAA8B;IACxE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,MAAM,GAAG,GAAsD,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC/E,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,SAAS;QACb,CAAC;QACD,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,kBAAkB,CACpB,IAAI,EACJ,QAAQ,IAAI,eAAe,KAAK,uBAAuB,QAAQ,CAAC,IAAI,CAAC,EAAE,EACvE;oBACI,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;iBAC3B,CACJ,CAAC;YACN,CAAC;YACD,SAAS;QACb,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * `fromEdgeArrays()` (design section 8.1, entry point 1): COO typed arrays with dense node indices,
3
+ * the 20 ms path. The input goes through the builder's index-space fast path -- `addAnonymousNodes`
4
+ * (no id Map unless `ids` is given) plus one `addEdges` call -- and then the freeze pipeline of design
5
+ * section 6.3, so every builder policy (duplicate edges, self-loops, weight precision) and every
6
+ * freeze option (label, prepare, arena, checksum) applies exactly as it does to a hand-built
7
+ * builder. Attribute columns are staged in the builder too, so a merging duplicate policy or a
8
+ * dropped self-loop gathers them through the same remaps as any other column (design section 5.11).
9
+ *
10
+ * The options object is the intersection of BuilderOptionsPatch and FreezeOptions; `splitOptions`
11
+ * routes each field to the builder or to the freeze and is shared with `fromRecords`.
12
+ */
13
+ import { type GraphSnapshot } from "../snapshot/graph-snapshot.js";
14
+ import { type BuilderOptionsPatch, type EdgeArraysInput, type FreezeOptions, type GraphBuilderOptions } from "../types/index.js";
15
+ /** The builder half and the freeze half of a `BuilderOptionsPatch & FreezeOptions` object. */
16
+ interface SplitOptions {
17
+ /** The builder options; `directed` is the caller's input value. */
18
+ readonly builder: GraphBuilderOptions;
19
+ /** The freeze options. */
20
+ readonly freeze: FreezeOptions;
21
+ }
22
+ /**
23
+ * Route the fields of a factory options object to the builder constructor and to `freeze()`.
24
+ * `duplicateEdges` (a field of both) becomes the builder's default policy, which the freeze then
25
+ * applies; an `options.directed` must agree with the input's own `directed` (E_DIRECTED otherwise; the input is
26
+ * authoritative). Undefined fields are left to the builder's and the freeze's own defaults.
27
+ * @param directed - the input's direction
28
+ * @param options - the combined options
29
+ * @returns the two halves
30
+ */
31
+ export declare function splitOptions(directed: boolean, options: BuilderOptionsPatch & FreezeOptions): SplitOptions;
32
+ /**
33
+ * Build a snapshot from COO typed arrays with dense node indices (design section 8.1): the builder's
34
+ * index-space fast path (`addAnonymousNodes` + `addEdges`, no id Map unless `ids` is given) followed
35
+ * by the freeze pipeline, so the result is exactly what a builder fed the same nodes, edges, columns
36
+ * and meta would freeze to. Without `ids` the id map is `identity` with offset 0 and no storage;
37
+ * with `ids` the kind is detected at freeze (design section 4.2). Float64 weights select the f64
38
+ * staging precision unless `options.weightDtype` says otherwise, so the values are downcast to f32 in
39
+ * the arc array and an f64 shadow column is kept only when some value is not f32-exact (design
40
+ * section 3.7).
41
+ * @param input - the arrays; `nodeCount` is required unless `ids` is given (E_INDEX_RANGE); `src`,
42
+ * `dst` and `weights` must have one entry per edge (E_COLUMN_LENGTH); every index must be below the
43
+ * node count (E_UNKNOWN_NODE); no weight may be NaN (E_INVALID_WEIGHT); ids must be distinct legal
44
+ * ids (E_DUPLICATE_ID / E_INVALID_ID); columns must have the table's row count (E_COLUMN_LENGTH)
45
+ * @param options - builder policies and freeze options; `duplicateEdges` and `selfLoops` apply at the
46
+ * freeze (E_DUPLICATE_EDGE / E_SELF_LOOP under the "error" policies)
47
+ * @returns the frozen snapshot
48
+ */
49
+ export declare function fromEdgeArrays(input: EdgeArraysInput, options?: BuilderOptionsPatch & FreezeOptions): GraphSnapshot;
50
+ export {};
51
+ //# sourceMappingURL=from-edge-arrays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"from-edge-arrays.d.ts","sourceRoot":"","sources":["../../../src/populate/from-edge-arrays.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACH,KAAK,mBAAmB,EAGxB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAG3B,MAAM,mBAAmB,CAAC;AAI3B,8FAA8F;AAC9F,UAAU,YAAY;IAClB,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,GAAG,aAAa,GAAG,YAAY,CA4B1G;AA2HD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC1B,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,mBAAmB,GAAG,aAAkB,GAClD,aAAa,CAsCf"}
@@ -0,0 +1,217 @@
1
+ /**
2
+ * `fromEdgeArrays()` (design section 8.1, entry point 1): COO typed arrays with dense node indices,
3
+ * the 20 ms path. The input goes through the builder's index-space fast path -- `addAnonymousNodes`
4
+ * (no id Map unless `ids` is given) plus one `addEdges` call -- and then the freeze pipeline of design
5
+ * section 6.3, so every builder policy (duplicate edges, self-loops, weight precision) and every
6
+ * freeze option (label, prepare, arena, checksum) applies exactly as it does to a hand-built
7
+ * builder. Attribute columns are staged in the builder too, so a merging duplicate policy or a
8
+ * dropped self-loop gathers them through the same remaps as any other column (design section 5.11).
9
+ *
10
+ * The options object is the intersection of BuilderOptionsPatch and FreezeOptions; `splitOptions`
11
+ * routes each field to the builder or to the freeze and is shared with `fromRecords`.
12
+ */
13
+ import { GraphBuilder } from "../builder/graph-builder.js";
14
+ import { columnFromValues, metaToDecl } from "../columns/column.js";
15
+ import { GraphFormatError } from "../errors.js";
16
+ /**
17
+ * Route the fields of a factory options object to the builder constructor and to `freeze()`.
18
+ * `duplicateEdges` (a field of both) becomes the builder's default policy, which the freeze then
19
+ * applies; an `options.directed` must agree with the input's own `directed` (E_DIRECTED otherwise; the input is
20
+ * authoritative). Undefined fields are left to the builder's and the freeze's own defaults.
21
+ * @param directed - the input's direction
22
+ * @param options - the combined options
23
+ * @returns the two halves
24
+ */
25
+ export function splitOptions(directed, options) {
26
+ if (options.directed !== undefined && options.directed !== directed) {
27
+ throw new GraphFormatError("E_DIRECTED", `options.directed (${String(options.directed)}) disagrees with the input's directed (${String(directed)})`, { reason: "direction mismatch", directed, found: options.directed });
28
+ }
29
+ return {
30
+ builder: {
31
+ directed,
32
+ weighted: options.weighted,
33
+ weightDtype: options.weightDtype,
34
+ duplicateEdges: options.duplicateEdges,
35
+ selfLoops: options.selfLoops,
36
+ addMissingNodes: options.addMissingNodes,
37
+ expectedNodes: options.expectedNodes,
38
+ expectedEdges: options.expectedEdges,
39
+ },
40
+ freeze: {
41
+ label: options.label,
42
+ prepare: options.prepare,
43
+ arena: options.arena,
44
+ release: options.release,
45
+ profile: options.profile,
46
+ checksum: options.checksum,
47
+ },
48
+ };
49
+ }
50
+ // ============================================================ columns
51
+ /**
52
+ * Whether a column value is a typed array (as opposed to a ColumnInput).
53
+ * @param value - the column value
54
+ * @returns true for a typed array
55
+ */
56
+ function isTypedArrayData(value) {
57
+ return ArrayBuffer.isView(value);
58
+ }
59
+ /**
60
+ * Stage one caller-supplied column in the builder (design section 8.1). A typed array (bare or
61
+ * inside a ColumnInput) is bulk-set with its declaration; a JS array of values is resolved with the
62
+ * same inference `AttributeTable.set()` applies (design section 5.1 widening, list detection) and
63
+ * written row by row into a declared column, so a string / list / json column reaches the snapshot
64
+ * through the same freeze step as every other column.
65
+ * @param builder - the builder
66
+ * @param domain - "node" or "edge"
67
+ * @param rows - the table's row count (nodeCount or edge count); a JS array must have this many entries
68
+ * @param name - the column name (the record key; a `decl.name` is ignored)
69
+ * @param value - the typed array or ColumnInput
70
+ */
71
+ function stageColumn(builder, domain, rows, name, value) {
72
+ const data = isTypedArrayData(value) ? value : value.data;
73
+ const decl = isTypedArrayData(value) ? {} : value.decl;
74
+ if (ArrayBuffer.isView(data)) {
75
+ if (domain === "node") {
76
+ builder.setNodeColumn(name, data, decl);
77
+ }
78
+ else {
79
+ builder.setEdgeColumn(name, data, decl);
80
+ }
81
+ return;
82
+ }
83
+ const column = columnFromValues(domain, rows, name, data, decl);
84
+ const declaration = { ...metaToDecl(column.meta), name, dtype: column.dtype };
85
+ const handle = domain === "node" ? builder.declareNodeColumn(declaration) : builder.declareEdgeColumn(declaration);
86
+ for (let row = 0; row < rows; row++) {
87
+ if (!column.isSet(row)) {
88
+ continue;
89
+ }
90
+ const cell = column.value(row);
91
+ if (domain === "node") {
92
+ builder.setNodeValue(handle, row, cell);
93
+ }
94
+ else {
95
+ builder.setEdgeValue(handle, row, cell);
96
+ }
97
+ }
98
+ }
99
+ // ============================================================ the entry point
100
+ /**
101
+ * The E_COLUMN_LENGTH error for two input arrays whose lengths disagree.
102
+ * @param field - the array that is wrong
103
+ * @param expected - the length it should have
104
+ * @param found - the length it has
105
+ * @returns the error
106
+ */
107
+ function lengthError(field, expected, found) {
108
+ return new GraphFormatError("E_COLUMN_LENGTH", `${field} has ${found} entries, expected ${expected}`, {
109
+ field,
110
+ expected,
111
+ found,
112
+ });
113
+ }
114
+ /**
115
+ * Resolve the node count of an EdgeArraysInput: `ids.length` when ids are given (and `nodeCount`,
116
+ * when also given, must agree), else `nodeCount`, which is then required.
117
+ * @param input - the input
118
+ * @returns the node count
119
+ */
120
+ function resolveNodeCount(input) {
121
+ const { nodeCount, ids } = input;
122
+ if (nodeCount !== undefined && (!Number.isInteger(nodeCount) || nodeCount < 0)) {
123
+ throw new GraphFormatError("E_INDEX_RANGE", `nodeCount ${nodeCount} is not a non-negative integer`, {
124
+ field: "nodeCount",
125
+ found: nodeCount,
126
+ });
127
+ }
128
+ if (ids !== undefined) {
129
+ if (nodeCount !== undefined && nodeCount !== ids.length) {
130
+ throw lengthError("ids", nodeCount, ids.length);
131
+ }
132
+ return ids.length;
133
+ }
134
+ if (nodeCount === undefined) {
135
+ throw new GraphFormatError("E_INDEX_RANGE", "nodeCount is required when no ids are given", {
136
+ field: "nodeCount",
137
+ });
138
+ }
139
+ return nodeCount;
140
+ }
141
+ /**
142
+ * Add the caller's ids to the builder in index order; every id must be distinct so that index i holds
143
+ * ids[i] (E_DUPLICATE_ID otherwise, naming the id and both positions).
144
+ * @param builder - the builder
145
+ * @param ids - the ids in index order
146
+ */
147
+ function addIds(builder, ids) {
148
+ const indices = builder.addNodes(ids);
149
+ for (let i = 0; i < indices.length; i++) {
150
+ if (indices[i] !== i) {
151
+ const id = ids[i];
152
+ throw new GraphFormatError("E_DUPLICATE_ID", `ids[${i}] repeats the id of index ${indices[i]}`, {
153
+ id,
154
+ index: indices[i],
155
+ position: i,
156
+ });
157
+ }
158
+ }
159
+ }
160
+ /**
161
+ * Build a snapshot from COO typed arrays with dense node indices (design section 8.1): the builder's
162
+ * index-space fast path (`addAnonymousNodes` + `addEdges`, no id Map unless `ids` is given) followed
163
+ * by the freeze pipeline, so the result is exactly what a builder fed the same nodes, edges, columns
164
+ * and meta would freeze to. Without `ids` the id map is `identity` with offset 0 and no storage;
165
+ * with `ids` the kind is detected at freeze (design section 4.2). Float64 weights select the f64
166
+ * staging precision unless `options.weightDtype` says otherwise, so the values are downcast to f32 in
167
+ * the arc array and an f64 shadow column is kept only when some value is not f32-exact (design
168
+ * section 3.7).
169
+ * @param input - the arrays; `nodeCount` is required unless `ids` is given (E_INDEX_RANGE); `src`,
170
+ * `dst` and `weights` must have one entry per edge (E_COLUMN_LENGTH); every index must be below the
171
+ * node count (E_UNKNOWN_NODE); no weight may be NaN (E_INVALID_WEIGHT); ids must be distinct legal
172
+ * ids (E_DUPLICATE_ID / E_INVALID_ID); columns must have the table's row count (E_COLUMN_LENGTH)
173
+ * @param options - builder policies and freeze options; `duplicateEdges` and `selfLoops` apply at the
174
+ * freeze (E_DUPLICATE_EDGE / E_SELF_LOOP under the "error" policies)
175
+ * @returns the frozen snapshot
176
+ */
177
+ export function fromEdgeArrays(input, options = {}) {
178
+ const { src, dst, weights } = input;
179
+ if (dst.length !== src.length) {
180
+ throw lengthError("dst", src.length, dst.length);
181
+ }
182
+ if (weights !== undefined && weights.length !== src.length) {
183
+ throw lengthError("weights", src.length, weights.length);
184
+ }
185
+ const nodeCount = resolveNodeCount(input);
186
+ const edgeCount = src.length;
187
+ const split = splitOptions(input.directed, options);
188
+ const builderOptions = {
189
+ ...split.builder,
190
+ weightDtype: options.weightDtype ?? (weights instanceof Float64Array ? "f64" : undefined),
191
+ expectedNodes: options.expectedNodes ?? nodeCount,
192
+ expectedEdges: options.expectedEdges ?? edgeCount,
193
+ };
194
+ const builder = new GraphBuilder(builderOptions);
195
+ if (input.ids === undefined) {
196
+ builder.addAnonymousNodes(nodeCount);
197
+ }
198
+ else {
199
+ addIds(builder, input.ids);
200
+ }
201
+ builder.addEdges(src, dst, weights);
202
+ if (input.nodeColumns !== undefined) {
203
+ for (const name of Object.keys(input.nodeColumns)) {
204
+ stageColumn(builder, "node", nodeCount, name, input.nodeColumns[name]);
205
+ }
206
+ }
207
+ if (input.edgeColumns !== undefined) {
208
+ for (const name of Object.keys(input.edgeColumns)) {
209
+ stageColumn(builder, "edge", edgeCount, name, input.edgeColumns[name]);
210
+ }
211
+ }
212
+ if (input.meta !== undefined) {
213
+ builder.setMeta(input.meta);
214
+ }
215
+ return builder.freeze(split.freeze);
216
+ }
217
+ //# sourceMappingURL=from-edge-arrays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"from-edge-arrays.js","sourceRoot":"","sources":["../../../src/populate/from-edge-arrays.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * `fromRecords()` (design section 8.1, entry point 3): plain node-link records, the shape every JSON
3
+ * dialect parses into and what graphty-element's data sources emit. Every record is pushed into a
4
+ * GraphBuilder scalar by scalar -- the id, the endpoints and the weight through `addNode` / `addEdge`,
5
+ * every other key through `setNodeValue` / `setEdgeValue` -- so attribute columns are inferred and
6
+ * widened per column by the builder exactly as `addNodeRecord` / `addEdgeRecord` would (design
7
+ * section 5.1), and the FreezeReport carries the widenings. The reserved keys (the node id, the edge
8
+ * source / target and the weight) never become attribute columns: the id map and the arc array
9
+ * already hold them.
10
+ *
11
+ * Id coercion (design section 4.1) is applied here, before an id reaches the builder: "keep" (the
12
+ * default; JSON values are already typed), "canonical" (canonical integer text becomes a number,
13
+ * everything else stays a string), "string" and "number".
14
+ */
15
+ import { type GraphSnapshot } from "../snapshot/graph-snapshot.js";
16
+ import { type BuilderOptionsPatch, type FreezeOptions, type FreezeReport, type IdCoercion, type NodeId, type RecordsInput } from "../types/index.js";
17
+ /**
18
+ * Apply an id coercion rule to one id cell (design section 4.1). The result still goes through the
19
+ * builder's own id validation (E_INVALID_ID for anything that is not a finite number or a well-formed
20
+ * string), so this function only converts; it rejects the shapes a rule cannot convert.
21
+ * @param value - the cell value
22
+ * @param rule - the coercion rule
23
+ * @param field - which cell, for the error message
24
+ * @returns the id to hand to the builder
25
+ */
26
+ export declare function coerceId(value: unknown, rule: IdCoercion, field: string): NodeId;
27
+ /**
28
+ * Build a snapshot from node-link records (design section 8.1): node records (optional; every node
29
+ * an edge names is created under addMissingNodes, the default) and edge records, pushed into a
30
+ * GraphBuilder one scalar at a time and frozen. The node id comes from `nodeId` ("id" by default;
31
+ * null makes the node index the record position and the endpoints indices, the d3 v3 shape), the
32
+ * endpoints from `edgeSource` / `edgeTarget` ("source" / "target" by default, falling back to "src"
33
+ * / "from" and "dst" / "to"), the weight from `edgeWeight` ("weight" by default; null = unweighted).
34
+ * Every other key becomes an attribute column per `columns`: "infer" (default) lets the builder
35
+ * infer and widen per column (design section 5.1), "json" stores each key as a json column, "none"
36
+ * loads only the structure, and a ColumnDecl list stores only the declared keys. Ids are coerced per
37
+ * `ids` ("keep" by default). The staging weight precision defaults to f64 so a JSON weight such as
38
+ * 0.1 is never corrupted (the shadow column costs nothing when every value is f32-exact); pass
39
+ * `weightDtype: "f32"` to opt out.
40
+ * @param input - the records and keys; a record without its id or an endpoint, or with an id the
41
+ * coercion rule cannot convert, is E_INVALID_ID; a non-numeric weight is E_INVALID_WEIGHT; an
42
+ * unknown endpoint under addMissingNodes false is E_UNKNOWN_NODE
43
+ * @param options - builder policies and freeze options
44
+ * @returns the snapshot and the freeze report (its `widened` entries name the inferred columns that
45
+ * widened while the records were read)
46
+ */
47
+ export declare function fromRecords(input: RecordsInput, options?: BuilderOptionsPatch & FreezeOptions): {
48
+ snapshot: GraphSnapshot;
49
+ report: FreezeReport;
50
+ };
51
+ //# sourceMappingURL=from-records.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"from-records.d.ts","sourceRoot":"","sources":["../../../src/populate/from-records.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACH,KAAK,mBAAmB,EAGxB,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,YAAY,EACpB,MAAM,mBAAmB,CAAC;AAgD3B;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkDhF;AA4WD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CACvB,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,mBAAmB,GAAG,aAAkB,GAClD;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAanD"}