@graphty/graph-io 0.3.46 → 0.3.48

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 (460) hide show
  1. package/dist/chunks/{approximations-wWjCRzKj.js → approximations-C2riR4NT.js} +2 -2
  2. package/dist/chunks/{approximations-wWjCRzKj.js.map → approximations-C2riR4NT.js.map} +1 -1
  3. package/dist/chunks/{block-DiGq58c3.js → block-Cu22ewuS.js} +92 -21
  4. package/dist/chunks/block-Cu22ewuS.js.map +1 -0
  5. package/dist/chunks/{choose--jM0yYCo.js → choose-Cdx6Enl2.js} +3 -3
  6. package/dist/chunks/{choose--jM0yYCo.js.map → choose-Cdx6Enl2.js.map} +1 -1
  7. package/dist/chunks/codes-CV_Bhcyi.js +153 -0
  8. package/dist/chunks/codes-CV_Bhcyi.js.map +1 -0
  9. package/dist/chunks/{constants-BKwqelYD.js → constants-D0LqcsLJ.js} +2 -2
  10. package/dist/chunks/{constants-BKwqelYD.js.map → constants-D0LqcsLJ.js.map} +1 -1
  11. package/dist/chunks/context-cgmmOxZ2.js +663 -0
  12. package/dist/chunks/context-cgmmOxZ2.js.map +1 -0
  13. package/dist/chunks/credentials-BiQsnMTb.js +347 -0
  14. package/dist/chunks/credentials-BiQsnMTb.js.map +1 -0
  15. package/dist/chunks/cx-export-BEeF6ymo.js +259 -0
  16. package/dist/chunks/cx-export-BEeF6ymo.js.map +1 -0
  17. package/dist/chunks/descriptor-BJ-W0Jd-.js +137 -0
  18. package/dist/chunks/descriptor-BJ-W0Jd-.js.map +1 -0
  19. package/dist/chunks/descriptor-C-YDhtsn.js +48 -0
  20. package/dist/chunks/descriptor-C-YDhtsn.js.map +1 -0
  21. package/dist/chunks/{emit-CwU8cUmG.js → emit-CD8xnY8s.js} +70 -10
  22. package/dist/chunks/emit-CD8xnY8s.js.map +1 -0
  23. package/dist/chunks/{escape-CgzxiYPg.js → escape-DH2Egt-l.js} +12 -12
  24. package/dist/chunks/{escape-CgzxiYPg.js.map → escape-DH2Egt-l.js.map} +1 -1
  25. package/dist/chunks/{export-BvqAXCKh.js → export-CZ7VRm4I.js} +53 -1443
  26. package/dist/chunks/export-CZ7VRm4I.js.map +1 -0
  27. package/dist/chunks/{exporter-DndFlGSa.js → exporter-BIdaoIgh.js} +7 -6
  28. package/dist/chunks/{exporter-DndFlGSa.js.map → exporter-BIdaoIgh.js.map} +1 -1
  29. package/dist/chunks/{exporter-CJgfhF-l.js → exporter-ChjL5fmP.js} +8 -7
  30. package/dist/chunks/{exporter-CJgfhF-l.js.map → exporter-ChjL5fmP.js.map} +1 -1
  31. package/dist/chunks/{exporter--Mk9gXCJ.js → exporter-Dcw7Ldtq.js} +6 -4
  32. package/dist/chunks/{exporter--Mk9gXCJ.js.map → exporter-Dcw7Ldtq.js.map} +1 -1
  33. package/dist/chunks/exporter-DtVU80Fa.js +1008 -0
  34. package/dist/chunks/exporter-DtVU80Fa.js.map +1 -0
  35. package/dist/chunks/{exporter-CrDWIyiq.js → exporter-bxxjOrDZ.js} +11 -9
  36. package/dist/chunks/{exporter-CrDWIyiq.js.map → exporter-bxxjOrDZ.js.map} +1 -1
  37. package/dist/chunks/format-BMS-1Nxb.js +64 -0
  38. package/dist/chunks/format-BMS-1Nxb.js.map +1 -0
  39. package/dist/chunks/{generic-Dq1ntt9q.js → generic-CP6YD34u.js} +4 -4
  40. package/dist/chunks/{generic-Dq1ntt9q.js.map → generic-CP6YD34u.js.map} +1 -1
  41. package/dist/chunks/{importer-DiZRmOQG.js → importer-B87_fmVx.js} +13 -17
  42. package/dist/chunks/importer-B87_fmVx.js.map +1 -0
  43. package/dist/chunks/{importer-BSvfrX_h.js → importer-Bji2MeWr.js} +18 -1014
  44. package/dist/chunks/importer-Bji2MeWr.js.map +1 -0
  45. package/dist/chunks/{importer-COTK9Tsl.js → importer-CB_zV5_L.js} +14 -11
  46. package/dist/chunks/importer-CB_zV5_L.js.map +1 -0
  47. package/dist/chunks/{importer-e6LGpqHB.js → importer-CVT-JyDE.js} +12 -9
  48. package/dist/chunks/importer-CVT-JyDE.js.map +1 -0
  49. package/dist/chunks/{importer-yh_aBCU6.js → importer-Cyy6UseH.js} +7 -6
  50. package/dist/chunks/{importer-yh_aBCU6.js.map → importer-Cyy6UseH.js.map} +1 -1
  51. package/dist/chunks/{importer-iFYPEKaJ.js → importer-DPZDN40-.js} +14 -10
  52. package/dist/chunks/{importer-iFYPEKaJ.js.map → importer-DPZDN40-.js.map} +1 -1
  53. package/dist/chunks/{importer-CMmeMWlC.js → importer-e3huMZbm.js} +8 -260
  54. package/dist/chunks/importer-e3huMZbm.js.map +1 -0
  55. package/dist/chunks/input-Ccg9I22A.js +1397 -0
  56. package/dist/chunks/input-Ccg9I22A.js.map +1 -0
  57. package/dist/chunks/{json-elements-DJZRZ6jd.js → json-elements-By172SVq.js} +4 -4
  58. package/dist/chunks/{json-elements-DJZRZ6jd.js.map → json-elements-By172SVq.js.map} +1 -1
  59. package/dist/chunks/{lexicon-CT69Kd87.js → lexicon-u2SI5xcx.js} +19 -5
  60. package/dist/chunks/lexicon-u2SI5xcx.js.map +1 -0
  61. package/dist/chunks/{ontology-export-G4MqRdux.js → ontology-export-BwgMyuF0.js} +4 -3
  62. package/dist/chunks/{ontology-export-G4MqRdux.js.map → ontology-export-BwgMyuF0.js.map} +1 -1
  63. package/dist/chunks/{records-CiaWZrFH.js → records-Cgvxz-Vx.js} +2 -2
  64. package/dist/chunks/{records-CiaWZrFH.js.map → records-Cgvxz-Vx.js.map} +1 -1
  65. package/dist/chunks/{format-BpQBx8MZ.js → report-CgdsL9Hb.js} +72 -129
  66. package/dist/chunks/report-CgdsL9Hb.js.map +1 -0
  67. package/dist/chunks/sigv4-LkAzsLAu.js +247 -0
  68. package/dist/chunks/sigv4-LkAzsLAu.js.map +1 -0
  69. package/dist/chunks/{styles-BQnsga7p.js → styles-CaABMoO1.js} +76 -43
  70. package/dist/chunks/styles-CaABMoO1.js.map +1 -0
  71. package/dist/chunks/{styles-D3fRphrO.js → styles-P_gmFAOi.js} +101 -21
  72. package/dist/chunks/styles-P_gmFAOi.js.map +1 -0
  73. package/dist/chunks/{styles-yed-BF5x3_Y5.js → styles-yed-Cs1nmrjn.js} +60 -20
  74. package/dist/chunks/styles-yed-Cs1nmrjn.js.map +1 -0
  75. package/dist/chunks/{text-CzJNFOS9.js → text-BuKQVMz2.js} +2 -2
  76. package/dist/chunks/{text-CzJNFOS9.js.map → text-BuKQVMz2.js.map} +1 -1
  77. package/dist/chunks/{writer-DMKvthQE.js → writer-DvHTl36J.js} +5 -4
  78. package/dist/chunks/writer-DvHTl36J.js.map +1 -0
  79. package/dist/csv.js +7 -5
  80. package/dist/csv.js.map +1 -1
  81. package/dist/cx.js +5 -4
  82. package/dist/cx.js.map +1 -1
  83. package/dist/cx2.js +2 -2
  84. package/dist/cys.js +1 -1
  85. package/dist/dot.js +2 -2
  86. package/dist/gexf.js +7 -5
  87. package/dist/gexf.js.map +1 -1
  88. package/dist/gml.js +16 -13
  89. package/dist/gml.js.map +1 -1
  90. package/dist/graph-io.js +1181 -224
  91. package/dist/graph-io.js.map +1 -1
  92. package/dist/graphml.js +3 -3
  93. package/dist/json.js +1 -1
  94. package/dist/neo4j.js +6 -4
  95. package/dist/neo4j.js.map +1 -1
  96. package/dist/obo.js +1 -1
  97. package/dist/pajek.js +1 -1
  98. package/dist/sources-cypher.d.ts +1 -0
  99. package/dist/sources-cypher.js +1236 -0
  100. package/dist/sources-cypher.js.map +1 -0
  101. package/dist/sources-ndex.d.ts +1 -0
  102. package/dist/sources-ndex.js +278 -0
  103. package/dist/sources-ndex.js.map +1 -0
  104. package/dist/sources-rest.d.ts +1 -0
  105. package/dist/sources-rest.js +1367 -0
  106. package/dist/sources-rest.js.map +1 -0
  107. package/dist/src/common/report.d.ts +6 -3
  108. package/dist/src/common/report.d.ts.map +1 -1
  109. package/dist/src/common/report.js +15 -9
  110. package/dist/src/common/report.js.map +1 -1
  111. package/dist/src/formats/cx/styles.d.ts.map +1 -1
  112. package/dist/src/formats/cx/styles.js +1 -0
  113. package/dist/src/formats/cx/styles.js.map +1 -1
  114. package/dist/src/formats/dot/styles.d.ts.map +1 -1
  115. package/dist/src/formats/dot/styles.js +3 -1
  116. package/dist/src/formats/dot/styles.js.map +1 -1
  117. package/dist/src/formats/gexf/styles.d.ts +29 -12
  118. package/dist/src/formats/gexf/styles.d.ts.map +1 -1
  119. package/dist/src/formats/gexf/styles.js +160 -31
  120. package/dist/src/formats/gexf/styles.js.map +1 -1
  121. package/dist/src/formats/gml/styles.d.ts.map +1 -1
  122. package/dist/src/formats/gml/styles.js +5 -4
  123. package/dist/src/formats/gml/styles.js.map +1 -1
  124. package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -1
  125. package/dist/src/formats/graphml/styles-plain.js +3 -3
  126. package/dist/src/formats/graphml/styles-plain.js.map +1 -1
  127. package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -1
  128. package/dist/src/formats/graphml/styles-yed.js +89 -19
  129. package/dist/src/formats/graphml/styles-yed.js.map +1 -1
  130. package/dist/src/formats/pajek/styles.d.ts.map +1 -1
  131. package/dist/src/formats/pajek/styles.js +1 -0
  132. package/dist/src/formats/pajek/styles.js.map +1 -1
  133. package/dist/src/formats/xgmml/styles.d.ts.map +1 -1
  134. package/dist/src/formats/xgmml/styles.js +1 -0
  135. package/dist/src/formats/xgmml/styles.js.map +1 -1
  136. package/dist/src/index.d.ts +8 -1
  137. package/dist/src/index.d.ts.map +1 -1
  138. package/dist/src/index.js +9 -1
  139. package/dist/src/index.js.map +1 -1
  140. package/dist/src/registry.d.ts +173 -1
  141. package/dist/src/registry.d.ts.map +1 -1
  142. package/dist/src/registry.js +196 -1
  143. package/dist/src/registry.js.map +1 -1
  144. package/dist/src/sources/builtins.d.ts +11 -0
  145. package/dist/src/sources/builtins.d.ts.map +1 -0
  146. package/dist/src/sources/builtins.js +47 -0
  147. package/dist/src/sources/builtins.js.map +1 -0
  148. package/dist/src/sources/codes.d.ts +230 -0
  149. package/dist/src/sources/codes.d.ts.map +1 -0
  150. package/dist/src/sources/codes.js +58 -0
  151. package/dist/src/sources/codes.js.map +1 -0
  152. package/dist/src/sources/context.d.ts +112 -0
  153. package/dist/src/sources/context.d.ts.map +1 -0
  154. package/dist/src/sources/context.js +739 -0
  155. package/dist/src/sources/context.js.map +1 -0
  156. package/dist/src/sources/credentials.d.ts +179 -0
  157. package/dist/src/sources/credentials.d.ts.map +1 -0
  158. package/dist/src/sources/credentials.js +301 -0
  159. package/dist/src/sources/credentials.js.map +1 -0
  160. package/dist/src/sources/cypher/descriptor.d.ts +21 -0
  161. package/dist/src/sources/cypher/descriptor.d.ts.map +1 -0
  162. package/dist/src/sources/cypher/descriptor.js +119 -0
  163. package/dist/src/sources/cypher/descriptor.js.map +1 -0
  164. package/dist/src/sources/cypher/flatten.d.ts +72 -0
  165. package/dist/src/sources/cypher/flatten.d.ts.map +1 -0
  166. package/dist/src/sources/cypher/flatten.js +279 -0
  167. package/dist/src/sources/cypher/flatten.js.map +1 -0
  168. package/dist/src/sources/cypher/index.d.ts +33 -0
  169. package/dist/src/sources/cypher/index.d.ts.map +1 -0
  170. package/dist/src/sources/cypher/index.js +405 -0
  171. package/dist/src/sources/cypher/index.js.map +1 -0
  172. package/dist/src/sources/cypher/params.d.ts +40 -0
  173. package/dist/src/sources/cypher/params.d.ts.map +1 -0
  174. package/dist/src/sources/cypher/params.js +6 -0
  175. package/dist/src/sources/cypher/params.js.map +1 -0
  176. package/dist/src/sources/cypher/profiles.d.ts +44 -0
  177. package/dist/src/sources/cypher/profiles.d.ts.map +1 -0
  178. package/dist/src/sources/cypher/profiles.js +61 -0
  179. package/dist/src/sources/cypher/profiles.js.map +1 -0
  180. package/dist/src/sources/cypher/query-builder.d.ts +106 -0
  181. package/dist/src/sources/cypher/query-builder.d.ts.map +1 -0
  182. package/dist/src/sources/cypher/query-builder.js +236 -0
  183. package/dist/src/sources/cypher/query-builder.js.map +1 -0
  184. package/dist/src/sources/cypher/transports/bolt.d.ts +21 -0
  185. package/dist/src/sources/cypher/transports/bolt.d.ts.map +1 -0
  186. package/dist/src/sources/cypher/transports/bolt.js +185 -0
  187. package/dist/src/sources/cypher/transports/bolt.js.map +1 -0
  188. package/dist/src/sources/cypher/transports/neptune-analytics.d.ts +15 -0
  189. package/dist/src/sources/cypher/transports/neptune-analytics.d.ts.map +1 -0
  190. package/dist/src/sources/cypher/transports/neptune-analytics.js +38 -0
  191. package/dist/src/sources/cypher/transports/neptune-analytics.js.map +1 -0
  192. package/dist/src/sources/cypher/transports/neptune-https.d.ts +31 -0
  193. package/dist/src/sources/cypher/transports/neptune-https.d.ts.map +1 -0
  194. package/dist/src/sources/cypher/transports/neptune-https.js +104 -0
  195. package/dist/src/sources/cypher/transports/neptune-https.js.map +1 -0
  196. package/dist/src/sources/cypher/transports/query-api.d.ts +14 -0
  197. package/dist/src/sources/cypher/transports/query-api.d.ts.map +1 -0
  198. package/dist/src/sources/cypher/transports/query-api.js +80 -0
  199. package/dist/src/sources/cypher/transports/query-api.js.map +1 -0
  200. package/dist/src/sources/cypher/transports/transport.d.ts +78 -0
  201. package/dist/src/sources/cypher/transports/transport.d.ts.map +1 -0
  202. package/dist/src/sources/cypher/transports/transport.js +77 -0
  203. package/dist/src/sources/cypher/transports/transport.js.map +1 -0
  204. package/dist/src/sources/cypher/types-map.d.ts +91 -0
  205. package/dist/src/sources/cypher/types-map.d.ts.map +1 -0
  206. package/dist/src/sources/cypher/types-map.js +306 -0
  207. package/dist/src/sources/cypher/types-map.js.map +1 -0
  208. package/dist/src/sources/define.d.ts +47 -0
  209. package/dist/src/sources/define.d.ts.map +1 -0
  210. package/dist/src/sources/define.js +173 -0
  211. package/dist/src/sources/define.js.map +1 -0
  212. package/dist/src/sources/fail.d.ts +33 -0
  213. package/dist/src/sources/fail.d.ts.map +1 -0
  214. package/dist/src/sources/fail.js +49 -0
  215. package/dist/src/sources/fail.js.map +1 -0
  216. package/dist/src/sources/ids.d.ts +64 -0
  217. package/dist/src/sources/ids.d.ts.map +1 -0
  218. package/dist/src/sources/ids.js +64 -0
  219. package/dist/src/sources/ids.js.map +1 -0
  220. package/dist/src/sources/ndex/client.d.ts +31 -0
  221. package/dist/src/sources/ndex/client.d.ts.map +1 -0
  222. package/dist/src/sources/ndex/client.js +90 -0
  223. package/dist/src/sources/ndex/client.js.map +1 -0
  224. package/dist/src/sources/ndex/descriptor.d.ts +10 -0
  225. package/dist/src/sources/ndex/descriptor.d.ts.map +1 -0
  226. package/dist/src/sources/ndex/descriptor.js +55 -0
  227. package/dist/src/sources/ndex/descriptor.js.map +1 -0
  228. package/dist/src/sources/ndex/expand.d.ts +20 -0
  229. package/dist/src/sources/ndex/expand.d.ts.map +1 -0
  230. package/dist/src/sources/ndex/expand.js +87 -0
  231. package/dist/src/sources/ndex/expand.js.map +1 -0
  232. package/dist/src/sources/ndex/index.d.ts +25 -0
  233. package/dist/src/sources/ndex/index.d.ts.map +1 -0
  234. package/dist/src/sources/ndex/index.js +191 -0
  235. package/dist/src/sources/ndex/index.js.map +1 -0
  236. package/dist/src/sources/ndex/params.d.ts +17 -0
  237. package/dist/src/sources/ndex/params.d.ts.map +1 -0
  238. package/dist/src/sources/ndex/params.js +6 -0
  239. package/dist/src/sources/ndex/params.js.map +1 -0
  240. package/dist/src/sources/ndex/share-url.d.ts +40 -0
  241. package/dist/src/sources/ndex/share-url.d.ts.map +1 -0
  242. package/dist/src/sources/ndex/share-url.js +64 -0
  243. package/dist/src/sources/ndex/share-url.js.map +1 -0
  244. package/dist/src/sources/params.d.ts +28 -0
  245. package/dist/src/sources/params.d.ts.map +1 -0
  246. package/dist/src/sources/params.js +6 -0
  247. package/dist/src/sources/params.js.map +1 -0
  248. package/dist/src/sources/registry.d.ts +118 -0
  249. package/dist/src/sources/registry.d.ts.map +1 -0
  250. package/dist/src/sources/registry.js +193 -0
  251. package/dist/src/sources/registry.js.map +1 -0
  252. package/dist/src/sources/rest/descriptor.d.ts +16 -0
  253. package/dist/src/sources/rest/descriptor.d.ts.map +1 -0
  254. package/dist/src/sources/rest/descriptor.js +71 -0
  255. package/dist/src/sources/rest/descriptor.js.map +1 -0
  256. package/dist/src/sources/rest/index.d.ts +14 -0
  257. package/dist/src/sources/rest/index.d.ts.map +1 -0
  258. package/dist/src/sources/rest/index.js +13 -0
  259. package/dist/src/sources/rest/index.js.map +1 -0
  260. package/dist/src/sources/rest/mapping.d.ts +30 -0
  261. package/dist/src/sources/rest/mapping.d.ts.map +1 -0
  262. package/dist/src/sources/rest/mapping.js +362 -0
  263. package/dist/src/sources/rest/mapping.js.map +1 -0
  264. package/dist/src/sources/rest/openalex.d.ts +27 -0
  265. package/dist/src/sources/rest/openalex.d.ts.map +1 -0
  266. package/dist/src/sources/rest/openalex.js +269 -0
  267. package/dist/src/sources/rest/openalex.js.map +1 -0
  268. package/dist/src/sources/rest/paging.d.ts +53 -0
  269. package/dist/src/sources/rest/paging.d.ts.map +1 -0
  270. package/dist/src/sources/rest/paging.js +138 -0
  271. package/dist/src/sources/rest/paging.js.map +1 -0
  272. package/dist/src/sources/rest/params.d.ts +216 -0
  273. package/dist/src/sources/rest/params.d.ts.map +1 -0
  274. package/dist/src/sources/rest/params.js +7 -0
  275. package/dist/src/sources/rest/params.js.map +1 -0
  276. package/dist/src/sources/rest/records.d.ts +41 -0
  277. package/dist/src/sources/rest/records.d.ts.map +1 -0
  278. package/dist/src/sources/rest/records.js +240 -0
  279. package/dist/src/sources/rest/records.js.map +1 -0
  280. package/dist/src/sources/rest/samples/deps-dev.d.ts +10 -0
  281. package/dist/src/sources/rest/samples/deps-dev.d.ts.map +1 -0
  282. package/dist/src/sources/rest/samples/deps-dev.js +47 -0
  283. package/dist/src/sources/rest/samples/deps-dev.js.map +1 -0
  284. package/dist/src/sources/rest/samples/string.d.ts +9 -0
  285. package/dist/src/sources/rest/samples/string.d.ts.map +1 -0
  286. package/dist/src/sources/rest/samples/string.js +42 -0
  287. package/dist/src/sources/rest/samples/string.js.map +1 -0
  288. package/dist/src/sources/rest/selectors.d.ts +41 -0
  289. package/dist/src/sources/rest/selectors.d.ts.map +1 -0
  290. package/dist/src/sources/rest/selectors.js +81 -0
  291. package/dist/src/sources/rest/selectors.js.map +1 -0
  292. package/dist/src/sources/rest/source.d.ts +67 -0
  293. package/dist/src/sources/rest/source.d.ts.map +1 -0
  294. package/dist/src/sources/rest/source.js +635 -0
  295. package/dist/src/sources/rest/source.js.map +1 -0
  296. package/dist/src/sources/rest/templates.d.ts +38 -0
  297. package/dist/src/sources/rest/templates.d.ts.map +1 -0
  298. package/dist/src/sources/rest/templates.js +125 -0
  299. package/dist/src/sources/rest/templates.js.map +1 -0
  300. package/dist/src/sources/run.d.ts +93 -0
  301. package/dist/src/sources/run.d.ts.map +1 -0
  302. package/dist/src/sources/run.js +673 -0
  303. package/dist/src/sources/run.js.map +1 -0
  304. package/dist/src/sources/sha256.d.ts +12 -0
  305. package/dist/src/sources/sha256.d.ts.map +1 -0
  306. package/dist/src/sources/sha256.js +95 -0
  307. package/dist/src/sources/sha256.js.map +1 -0
  308. package/dist/src/sources/sigv4.d.ts +24 -0
  309. package/dist/src/sources/sigv4.d.ts.map +1 -0
  310. package/dist/src/sources/sigv4.js +182 -0
  311. package/dist/src/sources/sigv4.js.map +1 -0
  312. package/dist/src/sources/testing.d.ts +96 -0
  313. package/dist/src/sources/testing.d.ts.map +1 -0
  314. package/dist/src/sources/testing.js +138 -0
  315. package/dist/src/sources/testing.js.map +1 -0
  316. package/dist/src/sources/types.d.ts +665 -0
  317. package/dist/src/sources/types.d.ts.map +1 -0
  318. package/dist/src/sources/types.js +10 -0
  319. package/dist/src/sources/types.js.map +1 -0
  320. package/dist/src/styles/canon/enums.d.ts.map +1 -1
  321. package/dist/src/styles/canon/enums.js +1 -0
  322. package/dist/src/styles/canon/enums.js.map +1 -1
  323. package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
  324. package/dist/src/styles/cyjs/cascade.js +68 -2
  325. package/dist/src/styles/cyjs/cascade.js.map +1 -1
  326. package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -1
  327. package/dist/src/styles/cyjs/defaults-table.js +2 -0
  328. package/dist/src/styles/cyjs/defaults-table.js.map +1 -1
  329. package/dist/src/styles/cyjs/emit.d.ts.map +1 -1
  330. package/dist/src/styles/cyjs/emit.js +18 -7
  331. package/dist/src/styles/cyjs/emit.js.map +1 -1
  332. package/dist/src/styles/cyjs/mappers.d.ts +4 -1
  333. package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
  334. package/dist/src/styles/cyjs/mappers.js +2 -0
  335. package/dist/src/styles/cyjs/mappers.js.map +1 -1
  336. package/dist/src/styles/cytoscape/emit.d.ts.map +1 -1
  337. package/dist/src/styles/cytoscape/emit.js +59 -7
  338. package/dist/src/styles/cytoscape/emit.js.map +1 -1
  339. package/dist/src/styles/cytoscape/lexicon.d.ts +6 -0
  340. package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -1
  341. package/dist/src/styles/cytoscape/lexicon.js +26 -2
  342. package/dist/src/styles/cytoscape/lexicon.js.map +1 -1
  343. package/dist/src/styles/cytoscape/resolve.d.ts +4 -1
  344. package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -1
  345. package/dist/src/styles/cytoscape/resolve.js +10 -6
  346. package/dist/src/styles/cytoscape/resolve.js.map +1 -1
  347. package/dist/src/styles/cytoscape/translate.d.ts.map +1 -1
  348. package/dist/src/styles/cytoscape/translate.js +10 -10
  349. package/dist/src/styles/cytoscape/translate.js.map +1 -1
  350. package/dist/src/styles/defaults.d.ts +30 -0
  351. package/dist/src/styles/defaults.d.ts.map +1 -1
  352. package/dist/src/styles/defaults.js +45 -4
  353. package/dist/src/styles/defaults.js.map +1 -1
  354. package/dist/src/styles/io/block.d.ts.map +1 -1
  355. package/dist/src/styles/io/block.js +9 -0
  356. package/dist/src/styles/io/block.js.map +1 -1
  357. package/dist/src/styles/io/writer.d.ts.map +1 -1
  358. package/dist/src/styles/io/writer.js +7 -3
  359. package/dist/src/styles/io/writer.js.map +1 -1
  360. package/dist/src/styles/plan/resolve.d.ts +2 -1
  361. package/dist/src/styles/plan/resolve.d.ts.map +1 -1
  362. package/dist/src/styles/plan/resolve.js +13 -2
  363. package/dist/src/styles/plan/resolve.js.map +1 -1
  364. package/dist/src/styles/types.d.ts +19 -2
  365. package/dist/src/styles/types.d.ts.map +1 -1
  366. package/dist/src/styles/vocabulary.d.ts.map +1 -1
  367. package/dist/src/styles/vocabulary.js +15 -1
  368. package/dist/src/styles/vocabulary.js.map +1 -1
  369. package/dist/src/types.d.ts +19 -5
  370. package/dist/src/types.d.ts.map +1 -1
  371. package/dist/src/types.js.map +1 -1
  372. package/dist/styles.js +11 -11
  373. package/dist/xgmml.js +3 -3
  374. package/docs/samples/people.json +6 -0
  375. package/package.json +29 -4
  376. package/src/common/report.ts +27 -7
  377. package/src/formats/cx/styles.ts +1 -0
  378. package/src/formats/dot/styles.ts +3 -1
  379. package/src/formats/gexf/styles.ts +185 -37
  380. package/src/formats/gml/styles.ts +5 -4
  381. package/src/formats/graphml/styles-plain.ts +3 -9
  382. package/src/formats/graphml/styles-yed.ts +93 -20
  383. package/src/formats/pajek/styles.ts +1 -0
  384. package/src/formats/xgmml/styles.ts +1 -0
  385. package/src/index.ts +90 -0
  386. package/src/registry.ts +326 -1
  387. package/src/sources/builtins.ts +56 -0
  388. package/src/sources/codes.ts +235 -0
  389. package/src/sources/context.ts +893 -0
  390. package/src/sources/credentials.ts +409 -0
  391. package/src/sources/cypher/descriptor.ts +125 -0
  392. package/src/sources/cypher/flatten.ts +323 -0
  393. package/src/sources/cypher/index.ts +498 -0
  394. package/src/sources/cypher/params.ts +41 -0
  395. package/src/sources/cypher/profiles.ts +78 -0
  396. package/src/sources/cypher/query-builder.ts +294 -0
  397. package/src/sources/cypher/transports/bolt.ts +228 -0
  398. package/src/sources/cypher/transports/neptune-analytics.ts +41 -0
  399. package/src/sources/cypher/transports/neptune-https.ts +122 -0
  400. package/src/sources/cypher/transports/query-api.ts +100 -0
  401. package/src/sources/cypher/transports/transport.ts +139 -0
  402. package/src/sources/cypher/types-map.ts +418 -0
  403. package/src/sources/define.ts +195 -0
  404. package/src/sources/fail.ts +70 -0
  405. package/src/sources/ids.ts +74 -0
  406. package/src/sources/ndex/client.ts +102 -0
  407. package/src/sources/ndex/descriptor.ts +64 -0
  408. package/src/sources/ndex/expand.ts +100 -0
  409. package/src/sources/ndex/index.ts +235 -0
  410. package/src/sources/ndex/params.ts +17 -0
  411. package/src/sources/ndex/share-url.ts +84 -0
  412. package/src/sources/params.ts +29 -0
  413. package/src/sources/registry.ts +325 -0
  414. package/src/sources/rest/descriptor.ts +74 -0
  415. package/src/sources/rest/index.ts +22 -0
  416. package/src/sources/rest/mapping.ts +401 -0
  417. package/src/sources/rest/openalex.ts +288 -0
  418. package/src/sources/rest/paging.ts +180 -0
  419. package/src/sources/rest/params.ts +243 -0
  420. package/src/sources/rest/records.ts +289 -0
  421. package/src/sources/rest/samples/deps-dev.ts +49 -0
  422. package/src/sources/rest/samples/string.ts +44 -0
  423. package/src/sources/rest/selectors.ts +91 -0
  424. package/src/sources/rest/source.ts +760 -0
  425. package/src/sources/rest/templates.ts +151 -0
  426. package/src/sources/run.ts +793 -0
  427. package/src/sources/sha256.ts +99 -0
  428. package/src/sources/sigv4.ts +207 -0
  429. package/src/sources/testing.ts +210 -0
  430. package/src/sources/types.ts +741 -0
  431. package/src/styles/canon/enums.ts +1 -0
  432. package/src/styles/cyjs/cascade.ts +81 -2
  433. package/src/styles/cyjs/defaults-table.ts +2 -0
  434. package/src/styles/cyjs/emit.ts +18 -7
  435. package/src/styles/cyjs/mappers.ts +6 -1
  436. package/src/styles/cytoscape/emit.ts +61 -7
  437. package/src/styles/cytoscape/lexicon.ts +28 -2
  438. package/src/styles/cytoscape/resolve.ts +22 -6
  439. package/src/styles/cytoscape/translate.ts +11 -11
  440. package/src/styles/defaults.ts +93 -4
  441. package/src/styles/io/block.ts +10 -0
  442. package/src/styles/io/writer.ts +8 -3
  443. package/src/styles/plan/resolve.ts +14 -2
  444. package/src/styles/types.ts +28 -2
  445. package/src/styles/vocabulary.ts +15 -1
  446. package/src/types.ts +19 -5
  447. package/dist/chunks/block-DiGq58c3.js.map +0 -1
  448. package/dist/chunks/emit-CwU8cUmG.js.map +0 -1
  449. package/dist/chunks/export-BvqAXCKh.js.map +0 -1
  450. package/dist/chunks/format-BpQBx8MZ.js.map +0 -1
  451. package/dist/chunks/importer-BSvfrX_h.js.map +0 -1
  452. package/dist/chunks/importer-CMmeMWlC.js.map +0 -1
  453. package/dist/chunks/importer-COTK9Tsl.js.map +0 -1
  454. package/dist/chunks/importer-DiZRmOQG.js.map +0 -1
  455. package/dist/chunks/importer-e6LGpqHB.js.map +0 -1
  456. package/dist/chunks/lexicon-CT69Kd87.js.map +0 -1
  457. package/dist/chunks/styles-BQnsga7p.js.map +0 -1
  458. package/dist/chunks/styles-D3fRphrO.js.map +0 -1
  459. package/dist/chunks/styles-yed-BF5x3_Y5.js.map +0 -1
  460. package/dist/chunks/writer-DMKvthQE.js.map +0 -1
@@ -1,1005 +1,12 @@
1
- import { GraphFormatError, INVALID_INDEX } from "@graphty/graph-format";
2
- import { c as childrenCsr } from "./children-CA4coBi0.js";
3
- import { d as directionNotes, p as planNodeIds, e as planEdgeIds, O as ORIGINAL_ID_ATTRIBUTE, s as stringify, g as aspectBlock, i as noteList, f as declaredType, j as nextNodeId, z as zAsOption } from "./importer-CMmeMWlC.js";
4
- import { c as capabilities, L as LOSS, r as resolveExportOptions, p as pairFolding, a as checkCapabilities, e as explicitWeights, g as resolveImportOptions, t as textChunks, h as throwIfAborted, i as reportUnusedOptions, j as reportSinkOptions, f as chooseGraph, k as graphChosen, l as DirectionResolver, I as IdCoercer, d as declareResolved, u as uniqueColumnName, w as weightFromValue } from "./export-BvqAXCKh.js";
5
- import { i as isRecord, P as POSITION_COLUMN, h as headText, s as scanAspects, r as reportTooDeep, a as reportSharedBlock, C as CxStructure, J as JsonScanError, E as ExactInteger, c as cxId, p as plainJson, z as zDecl, b as positionDecl, d as declareFresh, e as inexactLiteral, k as keptPrecision } from "./json-elements-DJZRZ6jd.js";
6
- import { p as plural, a1 as TOO_LARGE_CODE, S as SINK_OPTION_CODE, O as OPTION_IGNORED_CODE, D as DIRECTION_FORCED_CODE, b as DIRECTION_REFUSED_CODE, R as ROLE_TAKEN_CODE, C as COLUMN_RENAMED_CODE, N as NO_GRAPH_CODE, a2 as AMBIGUOUS_GRAPH_NAME_CODE, a3 as GRAPH_NOT_FOUND_CODE, i as MULTIPLE_GRAPHS_CODE, I as ID_MERGED_CODE, P as PRECISION_CODE, A as ID_TEXT_TYPE_CODE, W as JSON_NONSTANDARD_NUMBER_CODE, a4 as SINGLE_OBJECT_ASPECT_CODE, L as MULTI_ASPECT_FRAGMENT_CODE, d as UNKNOWN_ELEMENT_CODE, j as DUPLICATE_EDGE_ID_CODE, k as DUPLICATE_NODE_CODE, n as MISSING_ENDPOINT_CODE, o as MISSING_ID_CODE, a5 as STYLES_NOT_IMPORTED_CODE, a6 as PARENT_CYCLE_CODE, m as UNKNOWN_PARENT_CODE, l as DUPLICATE_ATTRIBUTE_CODE, f as DANGLING_REFERENCE_CODE, U as UNKNOWN_ATTR_TYPE_CODE, a7 as WIDENED_CODE, Y as BAD_VALUE_CODE, g as COUNT_MISMATCH_CODE, Q as ASPECT_ORDER_CODE, K as BAD_ASPECT_BLOCK_CODE, V as STATUS_WARNING_CODE, T as STATUS_FAILED_CODE, s as UNKNOWN_ENCODING_CODE, t as ENCODING_FALLBACK_CODE, u as INVALID_ENCODING_CODE, v as INVALID_UTF8_CODE, a8 as SYNTAX_CODE, E as EMPTY_INPUT_CODE, y as ELEMENT_ISSUE, z as INPUT_ISSUE, Z as ImportReportBuilder, a as agree } from "./format-BpQBx8MZ.js";
7
- import { j as joinText, e as encodeChunks } from "./writer-DxjgHwSe.js";
8
- import { c as cytoscapeStyledExport, q as CX_STYLE_CAPABILITIES, s as snapshotBlock, d as blockAspect, r as cytoscapeCxAspect, t as readCxStyles, u as blockOfAspect } from "./styles-BQnsga7p.js";
9
- import { S as STYLE_BLOCK_NAME } from "./block-DiGq58c3.js";
1
+ import { INVALID_INDEX } from "@graphty/graph-format";
2
+ import { d as resolveImportOptions, f as reportUnusedOptions, g as reportSinkOptions, b as chooseGraph, h as graphChosen, i as DirectionResolver, I as IdCoercer, j as declareResolved, u as uniqueColumnName, w as weightFromValue } from "./export-CZ7VRm4I.js";
3
+ import { K as ImportReportBuilder, L as BAD_ASPECT_BLOCK_CODE, E as EMPTY_INPUT_CODE, Q as SYNTAX_CODE, T as BAD_VALUE_CODE, i as MULTIPLE_GRAPHS_CODE, V as TOO_LARGE_CODE, S as SINK_OPTION_CODE, O as OPTION_IGNORED_CODE, D as DIRECTION_FORCED_CODE, b as DIRECTION_REFUSED_CODE, R as ROLE_TAKEN_CODE, C as COLUMN_RENAMED_CODE, N as NO_GRAPH_CODE, W as AMBIGUOUS_GRAPH_NAME_CODE, Y as GRAPH_NOT_FOUND_CODE, I as ID_MERGED_CODE, P as PRECISION_CODE, A as ID_TEXT_TYPE_CODE, Z as JSON_NONSTANDARD_NUMBER_CODE, _ as SINGLE_OBJECT_ASPECT_CODE, $ as MULTI_ASPECT_FRAGMENT_CODE, d as UNKNOWN_ELEMENT_CODE, j as DUPLICATE_EDGE_ID_CODE, k as DUPLICATE_NODE_CODE, n as MISSING_ENDPOINT_CODE, o as MISSING_ID_CODE, a0 as STYLES_NOT_IMPORTED_CODE, a1 as PARENT_CYCLE_CODE, m as UNKNOWN_PARENT_CODE, l as DUPLICATE_ATTRIBUTE_CODE, f as DANGLING_REFERENCE_CODE, U as UNKNOWN_ATTR_TYPE_CODE, a2 as WIDENED_CODE, g as COUNT_MISMATCH_CODE, a3 as ASPECT_ORDER_CODE, a4 as STATUS_WARNING_CODE, a5 as STATUS_FAILED_CODE, s as UNKNOWN_ENCODING_CODE, t as ENCODING_FALLBACK_CODE, u as INVALID_ENCODING_CODE, v as INVALID_UTF8_CODE, y as ELEMENT_ISSUE, z as INPUT_ISSUE, p as plural, a as agree } from "./report-CgdsL9Hb.js";
4
+ import { t as textChunks, b as throwIfAborted } from "./input-Ccg9I22A.js";
5
+ import { h as headText, s as scanAspects, r as reportTooDeep, a as reportSharedBlock, C as CxStructure, i as isRecord, J as JsonScanError, E as ExactInteger, c as cxId, p as plainJson, z as zDecl, b as positionDecl, d as declareFresh, e as inexactLiteral, k as keptPrecision } from "./json-elements-By172SVq.js";
6
+ import { S as STYLE_BLOCK_NAME } from "./block-Cu22ewuS.js";
7
+ import { z as zAsOption, O as ORIGINAL_ID_ATTRIBUTE } from "./importer-e3huMZbm.js";
8
+ import { t as readCxStyles, u as blockOfAspect } from "./styles-CaABMoO1.js";
10
9
  import { f as flipY } from "./convert-BcQ8_jMo.js";
11
- const CX_FORMAT$1 = "cx";
12
- const CX_LOSS = Object.freeze({
13
- /**
14
- * Every edge is written as directed, so an undirected graph, or the undirected edges of a mixed graph, read back
15
- * as directed.
16
- */
17
- UNDIRECTED_AS_DIRECTED: "W_CX_UNDIRECTED_AS_DIRECTED",
18
- /** A nested (json) column is written as a string attribute holding its JSON text. */
19
- JSON_AS_STRING: "W_CX_JSON_AS_STRING",
20
- /** A mutual pair is written as two directed edges without its mark. */
21
- MUTUAL_EXPANDED: LOSS.MUTUAL_EXPANDED,
22
- /**
23
- * An attribute named `weight` without the weight role reads back as the edge weight, or is not written when the
24
- * graph has weights of its own.
25
- */
26
- WEIGHT_KEY_CLASH: LOSS.WEIGHT_KEY_CLASH,
27
- /** A start / end / timestamp column: CX has no time. */
28
- TEMPORAL_DROPPED: LOSS.TEMPORAL,
29
- /** An attribute with a role the format has no place for is written as a plain attribute; the role is lost. */
30
- ROLE_DROPPED: LOSS.ROLE,
31
- /**
32
- * An attribute without a role is written where the format keeps a role (for example, a `name` column as the label), and
33
- * reads back with that role.
34
- */
35
- ROLE_ASSUMED: LOSS.ROLE_ASSUMED,
36
- /**
37
- * An attribute type CX stores as another (a 32-bit float as double, an unsigned integer as long, a byte as
38
- * integer, a dictionary as string); it reads back with that type.
39
- */
40
- DTYPE_UNSUPPORTED: LOSS.DTYPE,
41
- /** A multi-component column (a second view's `position@2`, a vector) is written as a list of doubles. */
42
- COMPONENTS_FLATTENED: LOSS.COMPONENTS,
43
- /** A declared default: CX has none. */
44
- DEFAULT_DROPPED: LOSS.DEFAULT,
45
- /** Declared options: CX has no enumerations. */
46
- OPTIONS_DROPPED: LOSS.OPTIONS,
47
- /**
48
- * Node ids the format cannot write, under `sanitizeIds: "error"`; the save fails with E_INVALID_ID. Pass
49
- * `sanitizeIds: "mangle"` to rewrite them.
50
- */
51
- ID_CHARSET: LOSS.ID_CHARSET,
52
- /** Node ids that are not integers under sanitizeIds "mangle": renumbered, originals kept. */
53
- ID_MANGLED: LOSS.ID_MANGLED,
54
- /** Edges without a usable integer id get generated ids. */
55
- EDGE_IDS_GENERATED: LOSS.EDGE_IDS_GENERATED,
56
- /**
57
- * An attribute with a role (for example, the label) is written where the format keeps that role, and reads back under the
58
- * name the format's importer gives it.
59
- */
60
- COLUMN_NAME_CHANGED: LOSS.COLUMN_NAME_CHANGED,
61
- /** An extension table other than the `cx:citations` / `cx:supports` tables a CX import creates. */
62
- EXTENSION_TABLE_DROPPED: LOSS.EXTENSION_TABLE,
63
- /** A position, stacking order or weight that is NaN or infinite: CX spells no such number there. */
64
- NONFINITE_AS_NULL: LOSS.NONFINITE_AS_NULL,
65
- /** Visual columns (color, size, shape, thickness roles): CX keeps style as visual properties, not roles. */
66
- VIZ_DROPPED: LOSS.VIZ
67
- });
68
- const CX_CAPABILITIES = capabilities({
69
- mixedDirection: false,
70
- multiEdges: true,
71
- selfLoops: true,
72
- edgeIds: "required",
73
- idCharset: "integer",
74
- dtypes: ["string", "f64", "i32", "bool"],
75
- components: false,
76
- lists: true,
77
- json: false,
78
- defaults: false,
79
- options: false,
80
- hierarchy: true,
81
- temporal: "none",
82
- graphAttributes: true,
83
- positions: true,
84
- viz: false
85
- });
86
- const SLOT_ROLES = /* @__PURE__ */ new Set(["label", "position", "id"]);
87
- const ROLE_NAMES = Object.freeze({
88
- label: "name",
89
- position: POSITION_COLUMN,
90
- id: "id",
91
- parent: "parent"
92
- });
93
- const SKIPPED_ROLES = /* @__PURE__ */ new Set([
94
- "directed",
95
- "pair",
96
- "mutual",
97
- "weight",
98
- "timeText",
99
- "originalId",
100
- "parent",
101
- "parents",
102
- "start",
103
- "end",
104
- "timestamp",
105
- "timestamps",
106
- "spells",
107
- "open",
108
- "spellsOpen",
109
- "position",
110
- "color",
111
- "size",
112
- "shape",
113
- "thickness",
114
- "id"
115
- ]);
116
- const BYPASS_NAMESPACE = "cx.bypass";
117
- const PROVENANCE_TABLES = Object.freeze({
118
- "cx:citations": "citations",
119
- "cx:supports": "supports"
120
- });
121
- const NEVER_WRITTEN = /* @__PURE__ */ new Set([
122
- "nodes",
123
- "edges",
124
- "nodeAttributes",
125
- "edgeAttributes",
126
- "networkAttributes",
127
- "cartesianLayout",
128
- "cyGroups",
129
- "cyVisualProperties",
130
- "cyTableColumn",
131
- "cySubNetworks",
132
- "cyNetworkRelations",
133
- "cyViews",
134
- "CX Element ID",
135
- "citations",
136
- "supports",
137
- "nodeCitations",
138
- "edgeCitations",
139
- "nodeSupports",
140
- "edgeSupports",
141
- "functionTerms",
142
- "reifiedEdges",
143
- "numberVerification",
144
- "metaData",
145
- "status",
146
- "groups",
147
- "subnetwork",
148
- STYLE_BLOCK_NAME
149
- ]);
150
- const WEIGHT_ATTRIBUTE = "weight";
151
- const NUMERIC_DTYPES = /* @__PURE__ */ new Set(["f32", "f64", "i32", "u32", "u8"]);
152
- function fromCx(column, namespace) {
153
- return column.meta.origin?.format === CX_FORMAT$1 && column.meta.origin.namespace === namespace;
154
- }
155
- function isBypass(column) {
156
- return column.meta.origin?.namespace === BYPASS_NAMESPACE;
157
- }
158
- function isZ(column) {
159
- return column.meta.extra.cytoscape === "z";
160
- }
161
- function isLink(column) {
162
- return fromCx(column, "provenance") && column.meta.dtype === "list" && (column.meta.name === "citations" || column.meta.name === "supports");
163
- }
164
- function coreNeedsText(column) {
165
- const { dtype } = column.meta;
166
- return dtype !== "string" && dtype !== "dict" && dtype !== "json";
167
- }
168
- function genericNotes(snapshot, common, several, own, notes, note) {
169
- let fatal = null;
170
- const edgeLabel = snapshot.edges.byRole("label")?.meta.name;
171
- const ownNames = new Set(own.filter((c) => c !== null).map((c) => c.meta.name));
172
- for (const gen of checkCapabilities(snapshot, CX_CAPABILITIES, common, {
173
- roles: SLOT_ROLES,
174
- // a parents column reads back as parents only when some node has several parents
175
- roleNames: several ? { ...ROLE_NAMES, parents: "parents" } : ROLE_NAMES
176
- })) {
177
- if (writtenOtherwise(gen, ownNames)) {
178
- continue;
179
- }
180
- if (gen.code === LOSS.JSON) {
181
- const which = gen.column === null ? "a column" : `column "${gen.column}"`;
182
- note(
183
- CX_LOSS.JSON_AS_STRING,
184
- `${which} holds nested values; written as a string attribute holding their JSON text`,
185
- gen.column,
186
- gen.count
187
- );
188
- continue;
189
- }
190
- if (isEdgeLabelRename(gen, edgeLabel)) {
191
- note(
192
- LOSS.ROLE,
193
- `edge column "${edgeLabel ?? ""}" (label) is written as a plain attribute; CX edges have no label slot and the role is lost`,
194
- gen.column,
195
- gen.count
196
- );
197
- continue;
198
- }
199
- if (gen.code === LOSS.MIXED_DIRECTION_ERROR && fatal === null) {
200
- fatal = new GraphFormatError("E_DIRECTED", gen.message, { reason: "mixed direction" });
201
- }
202
- notes.push(gen);
203
- }
204
- if (edgeLabel === "name") {
205
- note(
206
- LOSS.ROLE,
207
- `edge column "name" (label) is written as a plain attribute; CX edges have no label slot and the role is lost`,
208
- "name",
209
- null
210
- );
211
- }
212
- return fatal;
213
- }
214
- function writtenOtherwise(gen, ownNames) {
215
- if (gen.column !== null && ownNames.has(gen.column) && (gen.code === LOSS.JSON || gen.code === LOSS.DTYPE)) {
216
- return true;
217
- }
218
- if (gen.code === LOSS.ID_CHARSET || gen.code === LOSS.ID_MANGLED) {
219
- return true;
220
- }
221
- return gen.code === LOSS.EXTENSION_TABLE && gen.column !== null && gen.column in PROVENANCE_TABLES;
222
- }
223
- function isEdgeLabelRename(gen, edgeLabel) {
224
- return gen.code === LOSS.COLUMN_NAME_CHANGED && gen.column === edgeLabel && gen.message.startsWith("edge column");
225
- }
226
- function planPositions(snapshot, note) {
227
- const position = snapshot.nodes.byRole("position");
228
- const zColumn = [...snapshot.nodes].find(isZ) ?? null;
229
- const z = zColumn !== null && zFitsLayout(zColumn, position) ? zColumn : null;
230
- if (position === null) {
231
- return { position, z, positionZ: false, nonfinite: 0 };
232
- }
233
- let nonfinite = nonFiniteCells(position, (v) => [v[0], v[1]]);
234
- const depth = nonFiniteCells(position, (v) => v[2] === 0 ? [] : [Number.NaN]);
235
- const positionZ = zColumn === null && (position.meta.extra.sourceDims === 3 || depth > 0);
236
- if (positionZ) {
237
- nonfinite += nonFiniteCells(position, (v) => Number.isFinite(v[0]) && Number.isFinite(v[1]) ? [v[2]] : []);
238
- note(
239
- LOSS.COMPONENTS,
240
- `node column "${position.meta.name}" (position) has a third coordinate; CX writes it as the layout's z, which reads back in the z column (a stacking order), not in the position`,
241
- position.meta.name,
242
- depth
243
- );
244
- }
245
- return { position, z, positionZ, nonfinite };
246
- }
247
- function graphColumnNotes(snapshot, note) {
248
- for (const c of snapshot.graph) {
249
- const named = c.meta.name === "name" || c.meta.name === "description";
250
- if (!isBypass(c) && named && (c.dtype === "string" || c.dtype === "dict")) {
251
- note(
252
- LOSS.ROLE_ASSUMED,
253
- `graph column "${c.meta.name}" is written as the network attribute ${c.meta.name}, which reads back as the graph's ${c.meta.name}, not as a column`,
254
- c.meta.name,
255
- null
256
- );
257
- }
258
- }
259
- }
260
- function plan(snapshot, common) {
261
- const { notes, note } = noteList();
262
- const functionTerm = [...snapshot.nodes].find((c) => fromCx(c, "provenance") && c.meta.name === "functionTerm") ?? null;
263
- const reifiedEdge = [...snapshot.nodes].find((c) => fromCx(c, "reifiedEdges") && c.dtype === "u32") ?? null;
264
- const children = childrenCsr(snapshot);
265
- const several = children.column?.meta.role === "parents" && severalParents(children.column);
266
- let fatal = genericNotes(snapshot, common, several, [functionTerm, reifiedEdge], notes, note);
267
- const folding = pairFolding(snapshot);
268
- directionNotes(snapshot, folding, common, CX_LOSS.UNDIRECTED_AS_DIRECTED, note);
269
- const planned = planNodeIds(snapshot, common, "CX", ORIGINAL_ID_ATTRIBUTE, note);
270
- const ids = planned instanceof GraphFormatError ? null : planned;
271
- if (planned instanceof GraphFormatError) {
272
- fatal ??= planned;
273
- }
274
- const edgeIds = planEdgeIds(snapshot, note, ids);
275
- if (snapshot.nodes.has(ORIGINAL_ID_ATTRIBUTE)) {
276
- note(
277
- LOSS.ROLE_ASSUMED,
278
- `node column "${ORIGINAL_ID_ATTRIBUTE}" is the importer's record of mangled ids: it reads back as the node ids unless restoreMangledIds is false`,
279
- ORIGINAL_ID_ATTRIBUTE,
280
- null
281
- );
282
- }
283
- const positions = planPositions(snapshot, note);
284
- const { position, z, positionZ } = positions;
285
- let { nonfinite } = positions;
286
- const collapsed = [...snapshot.nodes].find((c) => fromCx(c, "cyGroups") && c.dtype === "bool") ?? null;
287
- const nodeCore = corePlans(snapshot, note);
288
- const edgeCore = [];
289
- const interaction = snapshot.edges.get("interaction");
290
- if (interaction !== null && (interaction.meta.role === null || !SKIPPED_ROLES.has(interaction.meta.role))) {
291
- edgeCore.push({ key: "i", column: interaction });
292
- coreTextNote(interaction, "edge", note);
293
- }
294
- const coreColumns = new Set([...nodeCore, ...edgeCore].map((c) => c.column));
295
- const special = (c) => coreColumns.has(c) || isBypass(c) || isLink(c) || c === z || c === collapsed || c === functionTerm || c === reifiedEdge || c.meta.role !== null && SKIPPED_ROLES.has(c.meta.role);
296
- const label = snapshot.nodes.byRole("label");
297
- const renamedName = label !== null && label.meta.name !== "name" ? snapshot.nodes.get("name") : null;
298
- if (renamedName !== null) {
299
- note(
300
- LOSS.COLUMN_NAME_CHANGED,
301
- `node column "name" is written as the attribute "name#2" and reads back as "name#2", because the label column "${label?.meta.name ?? ""}" is written as n and takes the name "name"`,
302
- "name",
303
- renamedName.length - renamedName.nullCount
304
- );
305
- }
306
- const nodeAttrs = attributePlans(snapshot.nodes, special, (c) => c === renamedName ? "name#2" : c.meta.name);
307
- const weight = planWeight(snapshot, folding, note);
308
- const plainWeight = snapshot.edges.get(WEIGHT_ATTRIBUTE);
309
- const edgeAttrs = attributePlans(
310
- snapshot.edges,
311
- (c) => special(c) || c === plainWeight && c.meta.role === null,
312
- (c) => c.meta.name
313
- );
314
- nonfinite += weight.nonfinite;
315
- graphColumnNotes(snapshot, note);
316
- const graphAttrs = attributePlans(
317
- snapshot.graph,
318
- (c) => isBypass(c) || c.meta.name === STYLE_BLOCK_NAME,
319
- (c) => c.meta.name
320
- );
321
- if (children.column !== null && children.column.meta.role === "parents" && !several) {
322
- note(
323
- LOSS.COLUMN_NAME_CHANGED,
324
- `node column "${children.column.meta.name}" (parents) holds at most one parent per node; it reads back as the single-parent column "parent"`,
325
- children.column.meta.name,
326
- children.column.length - children.column.nullCount
327
- );
328
- }
329
- if (nonfinite > 0) {
330
- note(
331
- LOSS.NONFINITE_AS_NULL,
332
- `${nonfinite} NaN or infinite position${plural(nonfinite)}, stacking orders or weights cannot be written in CX; they read back unset`,
333
- null,
334
- nonfinite
335
- );
336
- }
337
- return {
338
- notes,
339
- fatal,
340
- ids,
341
- folding,
342
- edgeIds,
343
- weight: weight.plan,
344
- nodeCore,
345
- edgeCore,
346
- nodeAttrs,
347
- edgeAttrs,
348
- graphAttrs,
349
- position,
350
- positionZ,
351
- z,
352
- bypass: {
353
- node: [...snapshot.nodes].filter(isBypass),
354
- edge: [...snapshot.edges].filter(isBypass),
355
- graph: [...snapshot.graph].filter(isBypass)
356
- },
357
- collapsed,
358
- links: linkPlans(snapshot),
359
- functionTerm,
360
- reifiedEdge
361
- };
362
- }
363
- function corePlans(snapshot, note) {
364
- const out = [];
365
- const label = snapshot.nodes.byRole("label");
366
- const plainName = snapshot.nodes.get("name");
367
- const n = label ?? (plainName !== null && plainName.meta.role === null ? plainName : null);
368
- if (n !== null) {
369
- out.push({ key: "n", column: n });
370
- coreTextNote(n, "node", note);
371
- if (n !== label) {
372
- note(
373
- LOSS.ROLE_ASSUMED,
374
- `node column "name" is written as n and reads back as the label`,
375
- "name",
376
- n.length - n.nullCount
377
- );
378
- }
379
- }
380
- const represents = snapshot.nodes.get("represents");
381
- if (represents !== null && represents !== n && (represents.meta.role === null || !SKIPPED_ROLES.has(represents.meta.role))) {
382
- out.push({ key: "r", column: represents });
383
- coreTextNote(represents, "node", note);
384
- }
385
- return out;
386
- }
387
- function coreTextNote(column, domain, note) {
388
- if (coreNeedsText(column)) {
389
- note(
390
- LOSS.DTYPE,
391
- `${domain} column "${column.meta.name}" is ${column.dtype}; CX writes it as text and it reads back as string`,
392
- column.meta.name,
393
- column.length - column.nullCount
394
- );
395
- }
396
- }
397
- function attributePlans(table, skip, rename) {
398
- return [...table].filter((c) => !skip(c)).map((column) => ({ column, name: rename(column), d: declaredType(column) }));
399
- }
400
- function planWeight(snapshot, folding, note) {
401
- const weights = explicitWeights(snapshot);
402
- const plain = snapshot.edges.get(WEIGHT_ATTRIBUTE);
403
- const clash = plain !== null && plain.meta.role === null;
404
- let plan2 = null;
405
- if (weights.weighted) {
406
- plan2 = { value: (e) => weights.isExplicit(e) ? weights.value(e) : void 0 };
407
- if (clash) {
408
- note(
409
- LOSS.WEIGHT_KEY_CLASH,
410
- `edge column "${WEIGHT_ATTRIBUTE}" is not written: the explicit weights are written under that name`,
411
- WEIGHT_ATTRIBUTE,
412
- null
413
- );
414
- }
415
- } else if (clash) {
416
- const numeric = NUMERIC_DTYPES.has(plain.dtype);
417
- note(
418
- LOSS.WEIGHT_KEY_CLASH,
419
- numeric ? `edge column "${WEIGHT_ATTRIBUTE}" is written as the weight attribute and reads back as the edge weight` : `edge column "${WEIGHT_ATTRIBUTE}" is ${plain.dtype}, and CX reads that attribute as the edge weight; it is not written`,
420
- WEIGHT_ATTRIBUTE,
421
- null
422
- );
423
- if (numeric) {
424
- plan2 = { value: (e) => plain.isSet(e) ? plain.value(e) : void 0 };
425
- }
426
- }
427
- return { plan: plan2, nonfinite: plan2 === null ? 0 : nanWeights(snapshot.edgeCount, plan2, folding) };
428
- }
429
- function nanWeights(edgeCount, plan2, folding) {
430
- let nan = 0;
431
- for (let e = 0; e < edgeCount; e++) {
432
- const w = plan2.value(e);
433
- if (!folding.folded(e) && w !== void 0 && Number.isNaN(w)) {
434
- nan++;
435
- }
436
- }
437
- return nan;
438
- }
439
- function zFitsLayout(z, position) {
440
- for (let i = 0; i < z.length; i++) {
441
- if (!z.isSet(i)) {
442
- continue;
443
- }
444
- const value = z.value(i);
445
- const point = position?.isSet(i) === true ? position.value(i) : null;
446
- if (typeof value !== "number" || !Number.isFinite(value) || point === null || !Number.isFinite(point[0]) || !Number.isFinite(point[1])) {
447
- return false;
448
- }
449
- }
450
- return true;
451
- }
452
- function nonFiniteCells(column, pick) {
453
- let count = 0;
454
- for (let i = 0; i < column.length; i++) {
455
- if (column.isSet(i) && pick(column.value(i)).some((v) => !Number.isFinite(v))) {
456
- count++;
457
- }
458
- }
459
- return count;
460
- }
461
- function severalParents(column) {
462
- for (let i = 0; i < column.length; i++) {
463
- if (column.isSet(i) && column.value(i).length > 1) {
464
- return true;
465
- }
466
- }
467
- return false;
468
- }
469
- function linkPlans(snapshot) {
470
- const out = [];
471
- for (const [domain, table] of [
472
- ["node", snapshot.nodes],
473
- ["edge", snapshot.edges]
474
- ]) {
475
- for (const column of table) {
476
- if (isLink(column)) {
477
- const key = column.meta.name;
478
- out.push({ aspect: `${domain}${key === "citations" ? "Citations" : "Supports"}`, key, domain, column });
479
- }
480
- }
481
- }
482
- return out;
483
- }
484
- function scalarText(value) {
485
- if (typeof value === "number") {
486
- return Object.is(value, -0) ? "-0" : String(value);
487
- }
488
- if (typeof value === "string") {
489
- return value;
490
- }
491
- return typeof value === "boolean" ? String(value) : JSON.stringify(value);
492
- }
493
- function cellValue(column, d, row) {
494
- if (!column.isSet(row)) {
495
- return void 0;
496
- }
497
- const value = column.value(row);
498
- if (column.meta.dtype === "json") {
499
- return JSON.stringify(value);
500
- }
501
- if (column.meta.dtype === "list" || column.meta.components > 1) {
502
- const items = Array.from(value);
503
- return d === "string" ? JSON.stringify(items) : items.map(scalarText);
504
- }
505
- return scalarText(value);
506
- }
507
- function coreText(column, row) {
508
- if (!column.isSet(row)) {
509
- return void 0;
510
- }
511
- const value = column.value(row);
512
- if (column.meta.dtype === "json" || column.meta.dtype === "list" || column.meta.components > 1) {
513
- return JSON.stringify(column.meta.dtype === "json" ? value : Array.from(value));
514
- }
515
- return scalarText(value);
516
- }
517
- function writtenEdges(snapshot, folding) {
518
- const out = [];
519
- for (let e = 0; e < snapshot.edgeCount; e++) {
520
- if (!folding.folded(e)) {
521
- out.push(e);
522
- }
523
- }
524
- return out;
525
- }
526
- function aspects(snapshot, p, ids, styled) {
527
- const { src, dst } = snapshot.edgeList();
528
- const edges = writtenEdges(snapshot, p.folding);
529
- const nodeRange = () => Array.from({ length: snapshot.nodeCount }, (_, i2) => i2);
530
- const nodeCore = (key) => p.nodeCore.find((c) => c.key === key)?.column ?? null;
531
- const n = nodeCore("n");
532
- const r = nodeCore("r");
533
- const i = p.edgeCore[0]?.column ?? null;
534
- const kept = snapshot.meta.sourceFormat === CX_FORMAT$1 && isRecord(snapshot.meta.extra.cx) ? snapshot.meta.extra.cx : {};
535
- const out = [
536
- {
537
- name: "nodes",
538
- idCounter: nextNodeId(ids, snapshot.nodeCount),
539
- *elements() {
540
- for (let row = 0; row < snapshot.nodeCount; row++) {
541
- const element = { "@id": ids.idAt(row) };
542
- const name = n === null ? void 0 : coreText(n, row);
543
- const represents = r === null ? void 0 : coreText(r, row);
544
- if (name !== void 0) {
545
- element.n = name;
546
- }
547
- if (represents !== void 0) {
548
- element.r = represents;
549
- }
550
- yield element;
551
- }
552
- }
553
- },
554
- {
555
- name: "edges",
556
- idCounter: edges.reduce((max, e) => Math.max(max, p.edgeIds[e] + 1), 0),
557
- *elements() {
558
- for (const e of edges) {
559
- const element = {
560
- "@id": p.edgeIds[e],
561
- s: ids.idAt(src[e]),
562
- t: ids.idAt(dst[e])
563
- };
564
- const interaction = i === null ? void 0 : coreText(i, e);
565
- if (interaction !== void 0) {
566
- element.i = interaction;
567
- }
568
- yield element;
569
- }
570
- }
571
- },
572
- {
573
- name: "nodeAttributes",
574
- *elements() {
575
- for (const a of p.nodeAttrs) {
576
- for (let row = 0; row < snapshot.nodeCount; row++) {
577
- const v = cellValue(a.column, a.d, row);
578
- if (v !== void 0) {
579
- yield { po: ids.idAt(row), n: a.name, v, d: a.d };
580
- }
581
- }
582
- }
583
- for (let row = 0; row < snapshot.nodeCount; row++) {
584
- if (ids.isChanged(row)) {
585
- yield {
586
- po: ids.idAt(row),
587
- n: ORIGINAL_ID_ATTRIBUTE,
588
- v: String(ids.originalAt(row)),
589
- d: "string"
590
- };
591
- }
592
- }
593
- }
594
- },
595
- {
596
- name: "edgeAttributes",
597
- *elements() {
598
- for (const a of p.edgeAttrs) {
599
- for (const e of edges) {
600
- const v = cellValue(a.column, a.d, e);
601
- if (v !== void 0) {
602
- yield { po: p.edgeIds[e], n: a.name, v, d: a.d };
603
- }
604
- }
605
- }
606
- if (p.weight !== null) {
607
- for (const e of edges) {
608
- const w = p.weight.value(e);
609
- if (w !== void 0 && !Number.isNaN(w)) {
610
- yield { po: p.edgeIds[e], n: WEIGHT_ATTRIBUTE, v: scalarText(w), d: "double" };
611
- }
612
- }
613
- }
614
- }
615
- },
616
- {
617
- name: "networkAttributes",
618
- *elements() {
619
- for (const a of p.graphAttrs) {
620
- const v = cellValue(a.column, a.d, 0);
621
- if (v !== void 0) {
622
- yield { n: a.name, v, d: a.d };
623
- }
624
- }
625
- const { meta } = snapshot;
626
- for (const [key, value] of [
627
- ["name", meta.name],
628
- ["description", meta.description]
629
- ]) {
630
- if (value !== null && !p.graphAttrs.some((a) => a.name === key)) {
631
- yield { n: key, v: value, d: "string" };
632
- }
633
- }
634
- }
635
- },
636
- { name: "cyTableColumn", elements: () => tableColumns(p, ids) },
637
- { name: "cartesianLayout", elements: () => layoutElements(p, ids, nodeRange()) },
638
- { name: "cyGroups", elements: () => groupElements(snapshot, p, ids, edges) },
639
- {
640
- name: "cyVisualProperties",
641
- elements: () => styled === null ? visualProperties(p, ids, nodeRange(), edges, kept) : styledVisualProperties(styled, ids, p.edgeIds, edges)
642
- }
643
- ];
644
- const block = snapshotBlock(snapshot);
645
- if (block !== null) {
646
- out.push({ name: STYLE_BLOCK_NAME, elements: () => blockAspect(block) });
647
- }
648
- out.push(...provenanceAspects(snapshot, p, ids, edges));
649
- for (const [name, value] of Object.entries(kept)) {
650
- if (!NEVER_WRITTEN.has(name) && Array.isArray(value)) {
651
- out.push({ name, elements: () => keptElements(value, kept.subnetwork, STYLE_ASPECTS.has(name)) });
652
- }
653
- }
654
- return out;
655
- }
656
- function* tableColumns(p, ids) {
657
- for (const { key, column } of [...p.nodeCore, ...p.edgeCore]) {
658
- const n = { n: "name", r: "represents", i: "interaction" }[key];
659
- if (n !== void 0 && column !== null) {
660
- yield { applies_to: key === "i" ? "edge_table" : "node_table", n, d: "string" };
661
- }
662
- }
663
- for (const a of p.nodeAttrs) {
664
- yield { applies_to: "node_table", n: a.name, d: a.d };
665
- }
666
- if (ids.changed > 0) {
667
- yield { applies_to: "node_table", n: ORIGINAL_ID_ATTRIBUTE, d: "string" };
668
- }
669
- for (const a of p.edgeAttrs) {
670
- yield { applies_to: "edge_table", n: a.name, d: a.d };
671
- }
672
- if (p.weight !== null) {
673
- yield { applies_to: "edge_table", n: WEIGHT_ATTRIBUTE, d: "double" };
674
- }
675
- for (const a of p.graphAttrs) {
676
- yield { applies_to: "network_table", n: a.name, d: a.d };
677
- }
678
- }
679
- const STYLE_ASPECTS = /* @__PURE__ */ new Set(["tableVisualProperties", "cyTableVisualProperties"]);
680
- function* keptElements(elements, subnetwork, style) {
681
- for (const element of elements) {
682
- if (!isRecord(element)) {
683
- yield element;
684
- continue;
685
- }
686
- if (element.s !== void 0 && element.s !== null && element.s !== subnetwork) {
687
- continue;
688
- }
689
- const { s: _scope, ...rest } = element;
690
- yield style ? rewriteView(rest) : rest;
691
- }
692
- }
693
- function rewriteView(element) {
694
- const out = { ...element };
695
- if ("view" in out) {
696
- out.view = 0;
697
- }
698
- if (typeof out.applies_to === "number") {
699
- out.applies_to = 0;
700
- }
701
- return out;
702
- }
703
- function* layoutElements(p, ids, rows) {
704
- const { position } = p;
705
- if (position === null) {
706
- return;
707
- }
708
- for (const row of rows) {
709
- if (!position.isSet(row)) {
710
- continue;
711
- }
712
- const point = position.value(row);
713
- if (!Number.isFinite(point[0]) || !Number.isFinite(point[1])) {
714
- continue;
715
- }
716
- const entry = { node: ids.idAt(row), x: point[0], y: point[1] === 0 ? 0 : -point[1] };
717
- if (p.z?.isSet(row) === true) {
718
- entry.z = p.z.value(row);
719
- } else if (p.positionZ && Number.isFinite(point[2])) {
720
- entry.z = point[2];
721
- }
722
- yield entry;
723
- }
724
- }
725
- function* groupElements(snapshot, p, ids, edges) {
726
- const children = childrenCsr(snapshot);
727
- const groupsOf = /* @__PURE__ */ new Map();
728
- const groups = [];
729
- for (let g = 0; g < snapshot.nodeCount; g++) {
730
- const members = children.childrenOf(g);
731
- if (members.length > 0 || p.collapsed?.isSet(g) === true) {
732
- groups.push(g);
733
- }
734
- for (const c of members) {
735
- groupsOf.set(c, [...groupsOf.get(c) ?? [], g]);
736
- }
737
- }
738
- if (groups.length === 0) {
739
- return;
740
- }
741
- const { internal, external } = groupEdges(snapshot, p, groupsOf, edges);
742
- const label = p.nodeCore.find((c) => c.key === "n")?.column ?? null;
743
- for (const g of groups) {
744
- const entry = { "@id": ids.idAt(g) };
745
- const name = label === null ? void 0 : coreText(label, g);
746
- if (name !== void 0) {
747
- entry.n = name;
748
- }
749
- entry.nodes = Array.from(children.childrenOf(g), (c) => ids.idAt(c));
750
- entry.internal_edges = internal.get(g) ?? [];
751
- entry.external_edges = external.get(g) ?? [];
752
- if (p.collapsed?.isSet(g) === true) {
753
- entry.collapsed = p.collapsed.value(g);
754
- }
755
- yield entry;
756
- }
757
- }
758
- function groupEdges(snapshot, p, groupsOf, edges) {
759
- const internal = /* @__PURE__ */ new Map();
760
- const external = /* @__PURE__ */ new Map();
761
- const add = (table, g, id) => {
762
- table.set(g, [...table.get(g) ?? [], id]);
763
- };
764
- const { src, dst } = snapshot.edgeList();
765
- for (const e of edges) {
766
- const ofSource = groupsOf.get(src[e]) ?? [];
767
- const ofTarget = groupsOf.get(dst[e]) ?? [];
768
- for (const g of ofSource) {
769
- add(ofTarget.includes(g) ? internal : external, g, p.edgeIds[e]);
770
- }
771
- for (const g of ofTarget.filter((t) => !ofSource.includes(t))) {
772
- add(external, g, p.edgeIds[e]);
773
- }
774
- }
775
- return { internal, external };
776
- }
777
- function bypassValues(columns, row) {
778
- let out = null;
779
- for (const column of columns) {
780
- if (column.isSet(row)) {
781
- const property = column.meta.origin?.id;
782
- out ??= {};
783
- out[typeof property === "string" && property.length > 0 ? property : column.meta.name] = scalarText(
784
- column.value(row)
785
- );
786
- }
787
- }
788
- return out;
789
- }
790
- function* visualProperties(p, ids, rows, edges, kept) {
791
- const network = bypassValues(p.bypass.graph, 0);
792
- if (network !== null) {
793
- yield { properties_of: "network", properties: network };
794
- }
795
- const view = ownView(kept);
796
- for (const entry of Array.isArray(kept.cyVisualProperties) ? kept.cyVisualProperties : []) {
797
- if (isRecord(entry) && !["nodes", "edges", "network"].includes(String(entry.properties_of)) && (view === null || entry.view === void 0 || entry.view === null || entry.view === view)) {
798
- yield rewriteView(entry);
799
- }
800
- }
801
- for (const row of rows) {
802
- const properties = bypassValues(p.bypass.node, row);
803
- if (properties !== null) {
804
- yield { properties_of: "nodes", applies_to: ids.idAt(row), properties };
805
- }
806
- }
807
- for (const e of edges) {
808
- const properties = bypassValues(p.bypass.edge, e);
809
- if (properties !== null) {
810
- yield { properties_of: "edges", applies_to: p.edgeIds[e], properties };
811
- }
812
- }
813
- }
814
- function* styledVisualProperties(styled, ids, edgeIds, edges) {
815
- yield* cytoscapeCxAspect(styled.style);
816
- const text = (m) => Object.fromEntries([...m].map(([k, v]) => [k, String(v)]));
817
- for (let row = 0; row < styled.bypasses.node.length; row++) {
818
- const m = styled.bypasses.node[row];
819
- if (m !== null && m.size > 0) {
820
- yield { properties_of: "nodes", applies_to: ids.idAt(row), properties: text(m) };
821
- }
822
- }
823
- for (const e of edges) {
824
- const m = styled.bypasses.edge[e];
825
- if (m !== null && m.size > 0) {
826
- yield { properties_of: "edges", applies_to: edgeIds[e], properties: text(m) };
827
- }
828
- }
829
- }
830
- function ownView(kept) {
831
- const sub = kept.subnetwork;
832
- for (const r of Array.isArray(kept.cyNetworkRelations) ? kept.cyNetworkRelations : []) {
833
- if (isRecord(r) && r.r === "view" && (sub === void 0 || r.p === sub)) {
834
- return r.c;
835
- }
836
- }
837
- for (const v of Array.isArray(kept.cyViews) ? kept.cyViews : []) {
838
- if (isRecord(v) && (sub === void 0 || v.s === sub)) {
839
- return v["@id"];
840
- }
841
- }
842
- return null;
843
- }
844
- function provenanceAspects(snapshot, p, ids, edges) {
845
- const out = [];
846
- for (const [table, aspect2] of Object.entries(PROVENANCE_TABLES)) {
847
- const ext = snapshot.extensions.get(table);
848
- if (ext === void 0) {
849
- continue;
850
- }
851
- const idColumn = ext.get("id");
852
- const fields = [...ext].filter((c) => c !== idColumn);
853
- let max = -1;
854
- for (let row = 0; row < ext.rowCount; row++) {
855
- if (idColumn?.isSet(row) === true) {
856
- max = Math.max(max, Number(idColumn.value(row)));
857
- }
858
- }
859
- out.push({
860
- name: aspect2,
861
- idCounter: max + 1,
862
- *elements() {
863
- for (let row = 0; row < ext.rowCount; row++) {
864
- const element = {};
865
- if (idColumn?.isSet(row) === true) {
866
- element["@id"] = idColumn.value(row);
867
- }
868
- for (const field of fields) {
869
- if (field.isSet(row)) {
870
- element[field.meta.name] = field.value(row);
871
- }
872
- }
873
- yield element;
874
- }
875
- }
876
- });
877
- }
878
- for (const link of p.links) {
879
- out.push({
880
- name: link.aspect,
881
- *elements() {
882
- const rows = link.domain === "node" ? Array.from({ length: snapshot.nodeCount }, (_, i) => i) : edges;
883
- for (const row of rows) {
884
- if (link.column.isSet(row)) {
885
- const po = link.domain === "node" ? ids.idAt(row) : p.edgeIds[row];
886
- yield { po: [po], [link.key]: Array.from(link.column.value(row)) };
887
- }
888
- }
889
- }
890
- });
891
- }
892
- const terms = p.functionTerm;
893
- if (terms !== null) {
894
- out.push({
895
- name: "functionTerms",
896
- *elements() {
897
- for (let row = 0; row < snapshot.nodeCount; row++) {
898
- const term = terms.isSet(row) ? terms.value(row) : null;
899
- if (isRecord(term)) {
900
- yield { po: ids.idAt(row), ...term };
901
- }
902
- }
903
- }
904
- });
905
- }
906
- const reified = p.reifiedEdge;
907
- if (reified !== null) {
908
- out.push({
909
- name: "reifiedEdges",
910
- *elements() {
911
- for (let row = 0; row < snapshot.nodeCount; row++) {
912
- const edge = reified.isSet(row) ? reified.value(row) : -1;
913
- if (edge >= 0 && edge < snapshot.edgeCount) {
914
- yield { node: ids.idAt(row), edge: p.edgeIds[edge] };
915
- }
916
- }
917
- }
918
- });
919
- }
920
- return out;
921
- }
922
- function* write(snapshot, p, styled = null) {
923
- if (p.fatal !== null) {
924
- throw p.fatal;
925
- }
926
- const { ids } = p;
927
- if (ids === null) {
928
- throw new GraphFormatError("E_INVALID_ID", "node ids cannot be written as CX integers", { reason: "charset" });
929
- }
930
- const all = aspects(snapshot, p, ids, styled);
931
- const written2 = [];
932
- for (const aspect2 of all) {
933
- let count = 0;
934
- for (const _ of aspect2.elements()) {
935
- count++;
936
- }
937
- if (count > 0 || aspect2.name === "nodes") {
938
- written2.push({ aspect: aspect2, count });
939
- }
940
- }
941
- const metaData = written2.map(({ aspect: aspect2, count }) => ({
942
- name: aspect2.name,
943
- version: "1.0",
944
- ...aspect2.idCounter === void 0 ? {} : { idCounter: aspect2.idCounter },
945
- elementCount: count,
946
- consistencyGroup: 1
947
- }));
948
- yield '[{"numberVerification":[{"longNumber":281474976710655}]},\n';
949
- yield `{"metaData":${stringify(metaData)}},
950
- `;
951
- for (const { aspect: aspect2 } of written2) {
952
- yield* aspectBlock(aspect2.name, mapIterable(aspect2.elements(), stringify));
953
- }
954
- yield '{"status":[{"error":"","success":true}]}]\n';
955
- }
956
- function* mapIterable(items, fn) {
957
- for (const item of items) {
958
- yield fn(item);
959
- }
960
- }
961
- const cxExporter = Object.freeze({
962
- format: CX_FORMAT$1,
963
- options: Object.freeze([]),
964
- capabilities: CX_CAPABILITIES,
965
- styles: Object.freeze({ capabilities: CX_STYLE_CAPABILITIES }),
966
- /**
967
- * Pre-flight: what export() would lose, without writing anything.
968
- * @param snapshot - the snapshot
969
- * @param options - the common options
970
- * @returns the notes, empty when the export is exact
971
- */
972
- check(snapshot, options) {
973
- const styled = cytoscapeStyledExport(snapshot, options?.styles, "desktop");
974
- return Object.freeze([
975
- ...plan(styled?.snapshot ?? snapshot, resolveExportOptions(options)).notes,
976
- ...styled?.notes ?? []
977
- ]);
978
- },
979
- /**
980
- * Write the document as UTF-8 chunks.
981
- * @param snapshot - the snapshot
982
- * @param options - the common options
983
- * @returns the chunks
984
- */
985
- export(snapshot, options) {
986
- return encodeChunks(written(snapshot, options));
987
- },
988
- /**
989
- * Write the document as one string.
990
- * @param snapshot - the snapshot
991
- * @param options - the common options
992
- * @returns the document
993
- */
994
- exportToString(snapshot, options) {
995
- return joinText(written(snapshot, options));
996
- }
997
- });
998
- function written(snapshot, options) {
999
- const styled = cytoscapeStyledExport(snapshot, options?.styles, "desktop");
1000
- const target = styled?.snapshot ?? snapshot;
1001
- return write(target, plan(target, resolveExportOptions(options)), styled?.styled ?? null);
1002
- }
1003
10
  const CX_FORMAT = "cx";
1004
11
  const CX_BYPASS_NAMESPACE = "cx.bypass";
1005
12
  const CX_ISSUE = Object.freeze({
@@ -1869,7 +876,7 @@ class CxReader {
1869
876
  * @param doc - the collected document
1870
877
  * @param plan - the graph to read
1871
878
  */
1872
- constructor(sink, report, options, zAs, doc, plan2) {
879
+ constructor(sink, report, options, zAs, doc, plan) {
1873
880
  this.rootNodes = /* @__PURE__ */ new Set();
1874
881
  this.rootEdges = /* @__PURE__ */ new Set();
1875
882
  this.nodeRows = /* @__PURE__ */ new Map();
@@ -1892,7 +899,7 @@ class CxReader {
1892
899
  this.options = options;
1893
900
  this.zAs = zAs;
1894
901
  this.doc = doc;
1895
- this.plan = plan2;
902
+ this.plan = plan;
1896
903
  this.direction = new DirectionResolver(sink, report, options.onMixedDirection);
1897
904
  this.coercer = new IdCoercer(options.ids);
1898
905
  for (const { value } of aspect(doc, "nodes")) {
@@ -3671,20 +2678,17 @@ const cxImporter = Object.freeze({
3671
2678
  const nodes = aspect(doc, "nodes").length;
3672
2679
  const edges = aspect(doc, "edges").length;
3673
2680
  return graphPlans(doc, report).map(
3674
- (plan2) => Object.freeze({
3675
- index: plan2.index,
3676
- name: plan2.name,
3677
- nodes: memberCount(plan2.nodes, nodes),
3678
- edges: memberCount(plan2.edges, edges)
2681
+ (plan) => Object.freeze({
2682
+ index: plan.index,
2683
+ name: plan.name,
2684
+ nodes: memberCount(plan.nodes, nodes),
2685
+ edges: memberCount(plan.edges, edges)
3679
2686
  })
3680
2687
  );
3681
2688
  }
3682
2689
  });
3683
2690
  export {
3684
- CX_CAPABILITIES as C,
3685
- CX_ISSUE as a,
3686
- CX_LOSS as b,
3687
- cxExporter as c,
3688
- cxImporter as d
2691
+ CX_ISSUE as C,
2692
+ cxImporter as c
3689
2693
  };
3690
- //# sourceMappingURL=importer-BSvfrX_h.js.map
2694
+ //# sourceMappingURL=importer-Bji2MeWr.js.map