@graphty/graph-io 0.3.47 → 0.3.49

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 (770) hide show
  1. package/dist/chunks/{approximations-wWjCRzKj.js → approximations-Bzn3L-je.js} +2 -2
  2. package/dist/chunks/{approximations-wWjCRzKj.js.map → approximations-Bzn3L-je.js.map} +1 -1
  3. package/dist/chunks/bends-BGXjv_U4.js +129 -0
  4. package/dist/chunks/bends-BGXjv_U4.js.map +1 -0
  5. package/dist/chunks/{block-DiGq58c3.js → block-iptrlMBb.js} +947 -134
  6. package/dist/chunks/block-iptrlMBb.js.map +1 -0
  7. package/dist/chunks/choose-CczZJaX_.js +717 -0
  8. package/dist/chunks/choose-CczZJaX_.js.map +1 -0
  9. package/dist/chunks/codes-BE2xir2k.js +157 -0
  10. package/dist/chunks/codes-BE2xir2k.js.map +1 -0
  11. package/dist/chunks/{constants-BKwqelYD.js → constants-CKkYLPtt.js} +2 -2
  12. package/dist/chunks/{constants-BKwqelYD.js.map → constants-CKkYLPtt.js.map} +1 -1
  13. package/dist/chunks/context-C3p0RQxR.js +664 -0
  14. package/dist/chunks/context-C3p0RQxR.js.map +1 -0
  15. package/dist/chunks/{convert-BcQ8_jMo.js → convert-Ct2zelbQ.js} +7 -2
  16. package/dist/chunks/convert-Ct2zelbQ.js.map +1 -0
  17. package/dist/chunks/credentials-DXHx7nwR.js +349 -0
  18. package/dist/chunks/credentials-DXHx7nwR.js.map +1 -0
  19. package/dist/chunks/cx-export-Bt6NoqTQ.js +259 -0
  20. package/dist/chunks/cx-export-Bt6NoqTQ.js.map +1 -0
  21. package/dist/chunks/descriptor-B28U25x4.js +60 -0
  22. package/dist/chunks/descriptor-B28U25x4.js.map +1 -0
  23. package/dist/chunks/descriptor-C-YDhtsn.js +48 -0
  24. package/dist/chunks/descriptor-C-YDhtsn.js.map +1 -0
  25. package/dist/chunks/descriptor-DLA5kINx.js +142 -0
  26. package/dist/chunks/descriptor-DLA5kINx.js.map +1 -0
  27. package/dist/chunks/{emit-CwU8cUmG.js → emit-BwHQkZle.js} +1690 -103
  28. package/dist/chunks/emit-BwHQkZle.js.map +1 -0
  29. package/dist/chunks/{escape-CgzxiYPg.js → escape-CuCIzNMB.js} +12 -12
  30. package/dist/chunks/{escape-CgzxiYPg.js.map → escape-CuCIzNMB.js.map} +1 -1
  31. package/dist/chunks/{export-BvqAXCKh.js → export-Cha4dRFz.js} +48 -1780
  32. package/dist/chunks/export-Cha4dRFz.js.map +1 -0
  33. package/dist/chunks/{exporter--Mk9gXCJ.js → exporter-BP6otMO6.js} +6 -4
  34. package/dist/chunks/{exporter--Mk9gXCJ.js.map → exporter-BP6otMO6.js.map} +1 -1
  35. package/dist/chunks/{exporter-CrDWIyiq.js → exporter-D2CETOMK.js} +1222 -154
  36. package/dist/chunks/exporter-D2CETOMK.js.map +1 -0
  37. package/dist/chunks/{exporter-DndFlGSa.js → exporter-D9yMtocA.js} +7 -6
  38. package/dist/chunks/{exporter-DndFlGSa.js.map → exporter-D9yMtocA.js.map} +1 -1
  39. package/dist/chunks/exporter-_jrBTnos.js +1009 -0
  40. package/dist/chunks/exporter-_jrBTnos.js.map +1 -0
  41. package/dist/chunks/{exporter-CJgfhF-l.js → exporter-nDfxIK5D.js} +9 -7
  42. package/dist/chunks/{exporter-CJgfhF-l.js.map → exporter-nDfxIK5D.js.map} +1 -1
  43. package/dist/chunks/format-BXiAb-1h.js +408 -0
  44. package/dist/chunks/format-BXiAb-1h.js.map +1 -0
  45. package/dist/chunks/{generic-Dq1ntt9q.js → generic-ymWCETAJ.js} +387 -31
  46. package/dist/chunks/generic-ymWCETAJ.js.map +1 -0
  47. package/dist/chunks/{importer-CMmeMWlC.js → importer-B92x1xY5.js} +15 -263
  48. package/dist/chunks/importer-B92x1xY5.js.map +1 -0
  49. package/dist/chunks/{importer-DiZRmOQG.js → importer-CT9mJ1nn.js} +328 -90
  50. package/dist/chunks/importer-CT9mJ1nn.js.map +1 -0
  51. package/dist/chunks/{importer-COTK9Tsl.js → importer-DaLTjbds.js} +116 -1099
  52. package/dist/chunks/importer-DaLTjbds.js.map +1 -0
  53. package/dist/chunks/{importer-iFYPEKaJ.js → importer-GREKMdIf.js} +28 -16
  54. package/dist/chunks/importer-GREKMdIf.js.map +1 -0
  55. package/dist/chunks/{importer-BSvfrX_h.js → importer-PqaaKKnY.js} +23 -1016
  56. package/dist/chunks/importer-PqaaKKnY.js.map +1 -0
  57. package/dist/chunks/{importer-yh_aBCU6.js → importer-Vn5QvmmJ.js} +66 -12
  58. package/dist/chunks/importer-Vn5QvmmJ.js.map +1 -0
  59. package/dist/chunks/{importer-e6LGpqHB.js → importer-vRq4h3j5.js} +1470 -354
  60. package/dist/chunks/importer-vRq4h3j5.js.map +1 -0
  61. package/dist/chunks/input-CAxt_aV-.js +1397 -0
  62. package/dist/chunks/input-CAxt_aV-.js.map +1 -0
  63. package/dist/chunks/{json-elements-DJZRZ6jd.js → json-elements-Cq76WjnZ.js} +4 -4
  64. package/dist/chunks/{json-elements-DJZRZ6jd.js.map → json-elements-Cq76WjnZ.js.map} +1 -1
  65. package/dist/chunks/{lexicon-CT69Kd87.js → lexicon-Clf4QIyl.js} +299 -77
  66. package/dist/chunks/lexicon-Clf4QIyl.js.map +1 -0
  67. package/dist/chunks/{ontology-export-G4MqRdux.js → ontology-export-OMo91mb0.js} +4 -3
  68. package/dist/chunks/{ontology-export-G4MqRdux.js.map → ontology-export-OMo91mb0.js.map} +1 -1
  69. package/dist/chunks/{records-CiaWZrFH.js → records-NJiYvekn.js} +2 -2
  70. package/dist/chunks/{records-CiaWZrFH.js.map → records-NJiYvekn.js.map} +1 -1
  71. package/dist/chunks/{format-BpQBx8MZ.js → report-CwMfYa9J.js} +70 -127
  72. package/dist/chunks/report-CwMfYa9J.js.map +1 -0
  73. package/dist/chunks/round-trip-Zm3_ivgq.js +79 -0
  74. package/dist/chunks/round-trip-Zm3_ivgq.js.map +1 -0
  75. package/dist/chunks/sigv4-EokFic1V.js +247 -0
  76. package/dist/chunks/sigv4-EokFic1V.js.map +1 -0
  77. package/dist/chunks/{styles-BQnsga7p.js → styles-CCs214_3.js} +1300 -168
  78. package/dist/chunks/styles-CCs214_3.js.map +1 -0
  79. package/dist/chunks/styles-Cm62yyQX.js +2812 -0
  80. package/dist/chunks/styles-Cm62yyQX.js.map +1 -0
  81. package/dist/chunks/styles-DPQQIig4.js +1928 -0
  82. package/dist/chunks/styles-DPQQIig4.js.map +1 -0
  83. package/dist/chunks/styles-yed-UMFdNqze.js +1213 -0
  84. package/dist/chunks/styles-yed-UMFdNqze.js.map +1 -0
  85. package/dist/chunks/{text-CzJNFOS9.js → text-ystE2bYi.js} +2 -2
  86. package/dist/chunks/{text-CzJNFOS9.js.map → text-ystE2bYi.js.map} +1 -1
  87. package/dist/csv.js +7 -5
  88. package/dist/csv.js.map +1 -1
  89. package/dist/cx.js +5 -4
  90. package/dist/cx.js.map +1 -1
  91. package/dist/cx2.js +2 -2
  92. package/dist/cys.js +1 -1
  93. package/dist/dot.js +5 -4
  94. package/dist/dot.js.map +1 -1
  95. package/dist/gexf.js +42 -10
  96. package/dist/gexf.js.map +1 -1
  97. package/dist/gml.js +850 -193
  98. package/dist/gml.js.map +1 -1
  99. package/dist/graph-io.js +1189 -220
  100. package/dist/graph-io.js.map +1 -1
  101. package/dist/graphml.js +3 -3
  102. package/dist/json.js +3 -2
  103. package/dist/neo4j.js +6 -4
  104. package/dist/neo4j.js.map +1 -1
  105. package/dist/obo.js +1 -1
  106. package/dist/pajek.js +1 -1
  107. package/dist/positions.js +45 -3
  108. package/dist/positions.js.map +1 -1
  109. package/dist/sources-cypher.d.ts +1 -0
  110. package/dist/sources-cypher.js +1351 -0
  111. package/dist/sources-cypher.js.map +1 -0
  112. package/dist/sources-ndex.d.ts +1 -0
  113. package/dist/sources-ndex.js +278 -0
  114. package/dist/sources-ndex.js.map +1 -0
  115. package/dist/sources-rest.d.ts +1 -0
  116. package/dist/sources-rest.js +1377 -0
  117. package/dist/sources-rest.js.map +1 -0
  118. package/dist/sources-sparql.d.ts +1 -0
  119. package/dist/sources-sparql.js +405 -0
  120. package/dist/sources-sparql.js.map +1 -0
  121. package/dist/src/common/report.d.ts +6 -3
  122. package/dist/src/common/report.d.ts.map +1 -1
  123. package/dist/src/common/report.js +15 -9
  124. package/dist/src/common/report.js.map +1 -1
  125. package/dist/src/formats/cx/importer.d.ts.map +1 -1
  126. package/dist/src/formats/cx/importer.js +5 -1
  127. package/dist/src/formats/cx/importer.js.map +1 -1
  128. package/dist/src/formats/cx/styles.d.ts +24 -1
  129. package/dist/src/formats/cx/styles.d.ts.map +1 -1
  130. package/dist/src/formats/cx/styles.js +118 -11
  131. package/dist/src/formats/cx/styles.js.map +1 -1
  132. package/dist/src/formats/cx2/importer.d.ts.map +1 -1
  133. package/dist/src/formats/cx2/importer.js +1 -0
  134. package/dist/src/formats/cx2/importer.js.map +1 -1
  135. package/dist/src/formats/cx2/styles.d.ts.map +1 -1
  136. package/dist/src/formats/cx2/styles.js +3 -1
  137. package/dist/src/formats/cx2/styles.js.map +1 -1
  138. package/dist/src/formats/cys/importer.d.ts.map +1 -1
  139. package/dist/src/formats/cys/importer.js +1 -0
  140. package/dist/src/formats/cys/importer.js.map +1 -1
  141. package/dist/src/formats/cys/styles.d.ts +2 -0
  142. package/dist/src/formats/cys/styles.d.ts.map +1 -1
  143. package/dist/src/formats/cys/styles.js +15 -7
  144. package/dist/src/formats/cys/styles.js.map +1 -1
  145. package/dist/src/formats/dot/drawing.d.ts +98 -0
  146. package/dist/src/formats/dot/drawing.d.ts.map +1 -0
  147. package/dist/src/formats/dot/drawing.js +734 -0
  148. package/dist/src/formats/dot/drawing.js.map +1 -0
  149. package/dist/src/formats/dot/importer.d.ts.map +1 -1
  150. package/dist/src/formats/dot/importer.js +108 -31
  151. package/dist/src/formats/dot/importer.js.map +1 -1
  152. package/dist/src/formats/dot/label-places.d.ts +34 -0
  153. package/dist/src/formats/dot/label-places.d.ts.map +1 -0
  154. package/dist/src/formats/dot/label-places.js +179 -0
  155. package/dist/src/formats/dot/label-places.js.map +1 -0
  156. package/dist/src/formats/dot/record.d.ts +50 -0
  157. package/dist/src/formats/dot/record.d.ts.map +1 -0
  158. package/dist/src/formats/dot/record.js +275 -0
  159. package/dist/src/formats/dot/record.js.map +1 -0
  160. package/dist/src/formats/dot/styles.d.ts +62 -2
  161. package/dist/src/formats/dot/styles.d.ts.map +1 -1
  162. package/dist/src/formats/dot/styles.js +1457 -120
  163. package/dist/src/formats/dot/styles.js.map +1 -1
  164. package/dist/src/formats/gexf/dialog-metrics.d.ts +15 -0
  165. package/dist/src/formats/gexf/dialog-metrics.d.ts.map +1 -0
  166. package/dist/src/formats/gexf/dialog-metrics.js +59 -0
  167. package/dist/src/formats/gexf/dialog-metrics.js.map +1 -0
  168. package/dist/src/formats/gexf/importer.d.ts +7 -0
  169. package/dist/src/formats/gexf/importer.d.ts.map +1 -1
  170. package/dist/src/formats/gexf/importer.js +41 -5
  171. package/dist/src/formats/gexf/importer.js.map +1 -1
  172. package/dist/src/formats/gexf/preview.d.ts +77 -0
  173. package/dist/src/formats/gexf/preview.d.ts.map +1 -0
  174. package/dist/src/formats/gexf/preview.js +191 -0
  175. package/dist/src/formats/gexf/preview.js.map +1 -0
  176. package/dist/src/formats/gexf/schema.d.ts.map +1 -1
  177. package/dist/src/formats/gexf/schema.js +2 -1
  178. package/dist/src/formats/gexf/schema.js.map +1 -1
  179. package/dist/src/formats/gexf/styles.d.ts +60 -16
  180. package/dist/src/formats/gexf/styles.d.ts.map +1 -1
  181. package/dist/src/formats/gexf/styles.js +883 -131
  182. package/dist/src/formats/gexf/styles.js.map +1 -1
  183. package/dist/src/formats/gml/importer.d.ts +5 -2
  184. package/dist/src/formats/gml/importer.d.ts.map +1 -1
  185. package/dist/src/formats/gml/importer.js +258 -71
  186. package/dist/src/formats/gml/importer.js.map +1 -1
  187. package/dist/src/formats/gml/index.d.ts +1 -1
  188. package/dist/src/formats/gml/index.d.ts.map +1 -1
  189. package/dist/src/formats/gml/index.js +1 -1
  190. package/dist/src/formats/gml/index.js.map +1 -1
  191. package/dist/src/formats/gml/positions.d.ts +7 -0
  192. package/dist/src/formats/gml/positions.d.ts.map +1 -1
  193. package/dist/src/formats/gml/positions.js +29 -7
  194. package/dist/src/formats/gml/positions.js.map +1 -1
  195. package/dist/src/formats/gml/styles.d.ts.map +1 -1
  196. package/dist/src/formats/gml/styles.js +756 -103
  197. package/dist/src/formats/gml/styles.js.map +1 -1
  198. package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -1
  199. package/dist/src/formats/graphml/styles-plain.js +8 -12
  200. package/dist/src/formats/graphml/styles-plain.js.map +1 -1
  201. package/dist/src/formats/graphml/styles-yed.d.ts +21 -15
  202. package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -1
  203. package/dist/src/formats/graphml/styles-yed.js +749 -148
  204. package/dist/src/formats/graphml/styles-yed.js.map +1 -1
  205. package/dist/src/formats/graphml/styles-yfiles3.d.ts +1 -1
  206. package/dist/src/formats/graphml/styles-yfiles3.d.ts.map +1 -1
  207. package/dist/src/formats/graphml/styles-yfiles3.js +429 -64
  208. package/dist/src/formats/graphml/styles-yfiles3.js.map +1 -1
  209. package/dist/src/formats/graphml/yfiles.d.ts +3 -3
  210. package/dist/src/formats/graphml/yfiles.d.ts.map +1 -1
  211. package/dist/src/formats/graphml/yfiles.js +16 -6
  212. package/dist/src/formats/graphml/yfiles.js.map +1 -1
  213. package/dist/src/formats/json/dialect.d.ts +3 -2
  214. package/dist/src/formats/json/dialect.d.ts.map +1 -1
  215. package/dist/src/formats/json/dialect.js +39 -5
  216. package/dist/src/formats/json/dialect.js.map +1 -1
  217. package/dist/src/formats/json/importer.d.ts +13 -2
  218. package/dist/src/formats/json/importer.d.ts.map +1 -1
  219. package/dist/src/formats/json/importer.js +42 -6
  220. package/dist/src/formats/json/importer.js.map +1 -1
  221. package/dist/src/formats/json/index.d.ts +1 -1
  222. package/dist/src/formats/json/index.d.ts.map +1 -1
  223. package/dist/src/formats/json/index.js +1 -1
  224. package/dist/src/formats/json/index.js.map +1 -1
  225. package/dist/src/formats/json/positions.d.ts +5 -2
  226. package/dist/src/formats/json/positions.d.ts.map +1 -1
  227. package/dist/src/formats/json/positions.js +20 -4
  228. package/dist/src/formats/json/positions.js.map +1 -1
  229. package/dist/src/formats/json/styles.d.ts +12 -1
  230. package/dist/src/formats/json/styles.d.ts.map +1 -1
  231. package/dist/src/formats/json/styles.js +1755 -136
  232. package/dist/src/formats/json/styles.js.map +1 -1
  233. package/dist/src/formats/pajek/draw.d.ts +96 -0
  234. package/dist/src/formats/pajek/draw.d.ts.map +1 -0
  235. package/dist/src/formats/pajek/draw.js +372 -0
  236. package/dist/src/formats/pajek/draw.js.map +1 -0
  237. package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
  238. package/dist/src/formats/pajek/exporter.js +70 -51
  239. package/dist/src/formats/pajek/exporter.js.map +1 -1
  240. package/dist/src/formats/pajek/importer.d.ts +9 -0
  241. package/dist/src/formats/pajek/importer.d.ts.map +1 -1
  242. package/dist/src/formats/pajek/importer.js +233 -102
  243. package/dist/src/formats/pajek/importer.js.map +1 -1
  244. package/dist/src/formats/pajek/index.d.ts +1 -0
  245. package/dist/src/formats/pajek/index.d.ts.map +1 -1
  246. package/dist/src/formats/pajek/index.js.map +1 -1
  247. package/dist/src/formats/pajek/styles.d.ts +15 -7
  248. package/dist/src/formats/pajek/styles.d.ts.map +1 -1
  249. package/dist/src/formats/pajek/styles.js +1279 -114
  250. package/dist/src/formats/pajek/styles.js.map +1 -1
  251. package/dist/src/formats/pajek/syntax.d.ts +10 -1
  252. package/dist/src/formats/pajek/syntax.d.ts.map +1 -1
  253. package/dist/src/formats/pajek/syntax.js +26 -2
  254. package/dist/src/formats/pajek/syntax.js.map +1 -1
  255. package/dist/src/formats/xgmml/emit.d.ts +1 -0
  256. package/dist/src/formats/xgmml/emit.d.ts.map +1 -1
  257. package/dist/src/formats/xgmml/emit.js +65 -5
  258. package/dist/src/formats/xgmml/emit.js.map +1 -1
  259. package/dist/src/formats/xgmml/styles.d.ts +23 -3
  260. package/dist/src/formats/xgmml/styles.d.ts.map +1 -1
  261. package/dist/src/formats/xgmml/styles.js +278 -60
  262. package/dist/src/formats/xgmml/styles.js.map +1 -1
  263. package/dist/src/index.d.ts +10 -2
  264. package/dist/src/index.d.ts.map +1 -1
  265. package/dist/src/index.js +11 -2
  266. package/dist/src/index.js.map +1 -1
  267. package/dist/src/positions/convert.d.ts.map +1 -1
  268. package/dist/src/positions/convert.js +11 -1
  269. package/dist/src/positions/convert.js.map +1 -1
  270. package/dist/src/positions/extract.d.ts.map +1 -1
  271. package/dist/src/positions/extract.js +53 -1
  272. package/dist/src/positions/extract.js.map +1 -1
  273. package/dist/src/positions/index.d.ts +1 -1
  274. package/dist/src/positions/index.d.ts.map +1 -1
  275. package/dist/src/positions/types.d.ts +59 -0
  276. package/dist/src/positions/types.d.ts.map +1 -1
  277. package/dist/src/registry.d.ts +173 -1
  278. package/dist/src/registry.d.ts.map +1 -1
  279. package/dist/src/registry.js +196 -1
  280. package/dist/src/registry.js.map +1 -1
  281. package/dist/src/sources/builtins.d.ts +11 -0
  282. package/dist/src/sources/builtins.d.ts.map +1 -0
  283. package/dist/src/sources/builtins.js +53 -0
  284. package/dist/src/sources/builtins.js.map +1 -0
  285. package/dist/src/sources/codes.d.ts +230 -0
  286. package/dist/src/sources/codes.d.ts.map +1 -0
  287. package/dist/src/sources/codes.js +58 -0
  288. package/dist/src/sources/codes.js.map +1 -0
  289. package/dist/src/sources/context.d.ts +112 -0
  290. package/dist/src/sources/context.d.ts.map +1 -0
  291. package/dist/src/sources/context.js +740 -0
  292. package/dist/src/sources/context.js.map +1 -0
  293. package/dist/src/sources/credentials.d.ts +179 -0
  294. package/dist/src/sources/credentials.d.ts.map +1 -0
  295. package/dist/src/sources/credentials.js +301 -0
  296. package/dist/src/sources/credentials.js.map +1 -0
  297. package/dist/src/sources/cypher/descriptor.d.ts +21 -0
  298. package/dist/src/sources/cypher/descriptor.d.ts.map +1 -0
  299. package/dist/src/sources/cypher/descriptor.js +124 -0
  300. package/dist/src/sources/cypher/descriptor.js.map +1 -0
  301. package/dist/src/sources/cypher/flatten.d.ts +72 -0
  302. package/dist/src/sources/cypher/flatten.d.ts.map +1 -0
  303. package/dist/src/sources/cypher/flatten.js +279 -0
  304. package/dist/src/sources/cypher/flatten.js.map +1 -0
  305. package/dist/src/sources/cypher/index.d.ts +33 -0
  306. package/dist/src/sources/cypher/index.d.ts.map +1 -0
  307. package/dist/src/sources/cypher/index.js +511 -0
  308. package/dist/src/sources/cypher/index.js.map +1 -0
  309. package/dist/src/sources/cypher/params.d.ts +40 -0
  310. package/dist/src/sources/cypher/params.d.ts.map +1 -0
  311. package/dist/src/sources/cypher/params.js +6 -0
  312. package/dist/src/sources/cypher/params.js.map +1 -0
  313. package/dist/src/sources/cypher/profiles.d.ts +44 -0
  314. package/dist/src/sources/cypher/profiles.d.ts.map +1 -0
  315. package/dist/src/sources/cypher/profiles.js +61 -0
  316. package/dist/src/sources/cypher/profiles.js.map +1 -0
  317. package/dist/src/sources/cypher/query-builder.d.ts +123 -0
  318. package/dist/src/sources/cypher/query-builder.d.ts.map +1 -0
  319. package/dist/src/sources/cypher/query-builder.js +267 -0
  320. package/dist/src/sources/cypher/query-builder.js.map +1 -0
  321. package/dist/src/sources/cypher/transports/bolt.d.ts +21 -0
  322. package/dist/src/sources/cypher/transports/bolt.d.ts.map +1 -0
  323. package/dist/src/sources/cypher/transports/bolt.js +185 -0
  324. package/dist/src/sources/cypher/transports/bolt.js.map +1 -0
  325. package/dist/src/sources/cypher/transports/neptune-analytics.d.ts +15 -0
  326. package/dist/src/sources/cypher/transports/neptune-analytics.d.ts.map +1 -0
  327. package/dist/src/sources/cypher/transports/neptune-analytics.js +38 -0
  328. package/dist/src/sources/cypher/transports/neptune-analytics.js.map +1 -0
  329. package/dist/src/sources/cypher/transports/neptune-https.d.ts +31 -0
  330. package/dist/src/sources/cypher/transports/neptune-https.d.ts.map +1 -0
  331. package/dist/src/sources/cypher/transports/neptune-https.js +104 -0
  332. package/dist/src/sources/cypher/transports/neptune-https.js.map +1 -0
  333. package/dist/src/sources/cypher/transports/query-api.d.ts +14 -0
  334. package/dist/src/sources/cypher/transports/query-api.d.ts.map +1 -0
  335. package/dist/src/sources/cypher/transports/query-api.js +80 -0
  336. package/dist/src/sources/cypher/transports/query-api.js.map +1 -0
  337. package/dist/src/sources/cypher/transports/transport.d.ts +78 -0
  338. package/dist/src/sources/cypher/transports/transport.d.ts.map +1 -0
  339. package/dist/src/sources/cypher/transports/transport.js +77 -0
  340. package/dist/src/sources/cypher/transports/transport.js.map +1 -0
  341. package/dist/src/sources/cypher/types-map.d.ts +91 -0
  342. package/dist/src/sources/cypher/types-map.d.ts.map +1 -0
  343. package/dist/src/sources/cypher/types-map.js +306 -0
  344. package/dist/src/sources/cypher/types-map.js.map +1 -0
  345. package/dist/src/sources/define.d.ts +47 -0
  346. package/dist/src/sources/define.d.ts.map +1 -0
  347. package/dist/src/sources/define.js +173 -0
  348. package/dist/src/sources/define.js.map +1 -0
  349. package/dist/src/sources/fail.d.ts +33 -0
  350. package/dist/src/sources/fail.d.ts.map +1 -0
  351. package/dist/src/sources/fail.js +49 -0
  352. package/dist/src/sources/fail.js.map +1 -0
  353. package/dist/src/sources/ids.d.ts +69 -0
  354. package/dist/src/sources/ids.d.ts.map +1 -0
  355. package/dist/src/sources/ids.js +69 -0
  356. package/dist/src/sources/ids.js.map +1 -0
  357. package/dist/src/sources/ndex/client.d.ts +31 -0
  358. package/dist/src/sources/ndex/client.d.ts.map +1 -0
  359. package/dist/src/sources/ndex/client.js +90 -0
  360. package/dist/src/sources/ndex/client.js.map +1 -0
  361. package/dist/src/sources/ndex/descriptor.d.ts +10 -0
  362. package/dist/src/sources/ndex/descriptor.d.ts.map +1 -0
  363. package/dist/src/sources/ndex/descriptor.js +55 -0
  364. package/dist/src/sources/ndex/descriptor.js.map +1 -0
  365. package/dist/src/sources/ndex/expand.d.ts +20 -0
  366. package/dist/src/sources/ndex/expand.d.ts.map +1 -0
  367. package/dist/src/sources/ndex/expand.js +87 -0
  368. package/dist/src/sources/ndex/expand.js.map +1 -0
  369. package/dist/src/sources/ndex/index.d.ts +25 -0
  370. package/dist/src/sources/ndex/index.d.ts.map +1 -0
  371. package/dist/src/sources/ndex/index.js +191 -0
  372. package/dist/src/sources/ndex/index.js.map +1 -0
  373. package/dist/src/sources/ndex/params.d.ts +17 -0
  374. package/dist/src/sources/ndex/params.d.ts.map +1 -0
  375. package/dist/src/sources/ndex/params.js +6 -0
  376. package/dist/src/sources/ndex/params.js.map +1 -0
  377. package/dist/src/sources/ndex/share-url.d.ts +40 -0
  378. package/dist/src/sources/ndex/share-url.d.ts.map +1 -0
  379. package/dist/src/sources/ndex/share-url.js +64 -0
  380. package/dist/src/sources/ndex/share-url.js.map +1 -0
  381. package/dist/src/sources/params.d.ts +31 -0
  382. package/dist/src/sources/params.d.ts.map +1 -0
  383. package/dist/src/sources/params.js +6 -0
  384. package/dist/src/sources/params.js.map +1 -0
  385. package/dist/src/sources/registry.d.ts +118 -0
  386. package/dist/src/sources/registry.d.ts.map +1 -0
  387. package/dist/src/sources/registry.js +193 -0
  388. package/dist/src/sources/registry.js.map +1 -0
  389. package/dist/src/sources/rest/descriptor.d.ts +16 -0
  390. package/dist/src/sources/rest/descriptor.d.ts.map +1 -0
  391. package/dist/src/sources/rest/descriptor.js +76 -0
  392. package/dist/src/sources/rest/descriptor.js.map +1 -0
  393. package/dist/src/sources/rest/index.d.ts +14 -0
  394. package/dist/src/sources/rest/index.d.ts.map +1 -0
  395. package/dist/src/sources/rest/index.js +13 -0
  396. package/dist/src/sources/rest/index.js.map +1 -0
  397. package/dist/src/sources/rest/mapping.d.ts +30 -0
  398. package/dist/src/sources/rest/mapping.d.ts.map +1 -0
  399. package/dist/src/sources/rest/mapping.js +362 -0
  400. package/dist/src/sources/rest/mapping.js.map +1 -0
  401. package/dist/src/sources/rest/openalex.d.ts +27 -0
  402. package/dist/src/sources/rest/openalex.d.ts.map +1 -0
  403. package/dist/src/sources/rest/openalex.js +269 -0
  404. package/dist/src/sources/rest/openalex.js.map +1 -0
  405. package/dist/src/sources/rest/paging.d.ts +53 -0
  406. package/dist/src/sources/rest/paging.d.ts.map +1 -0
  407. package/dist/src/sources/rest/paging.js +138 -0
  408. package/dist/src/sources/rest/paging.js.map +1 -0
  409. package/dist/src/sources/rest/params.d.ts +216 -0
  410. package/dist/src/sources/rest/params.d.ts.map +1 -0
  411. package/dist/src/sources/rest/params.js +7 -0
  412. package/dist/src/sources/rest/params.js.map +1 -0
  413. package/dist/src/sources/rest/records.d.ts +41 -0
  414. package/dist/src/sources/rest/records.d.ts.map +1 -0
  415. package/dist/src/sources/rest/records.js +240 -0
  416. package/dist/src/sources/rest/records.js.map +1 -0
  417. package/dist/src/sources/rest/samples/deps-dev.d.ts +10 -0
  418. package/dist/src/sources/rest/samples/deps-dev.d.ts.map +1 -0
  419. package/dist/src/sources/rest/samples/deps-dev.js +47 -0
  420. package/dist/src/sources/rest/samples/deps-dev.js.map +1 -0
  421. package/dist/src/sources/rest/samples/string.d.ts +9 -0
  422. package/dist/src/sources/rest/samples/string.d.ts.map +1 -0
  423. package/dist/src/sources/rest/samples/string.js +42 -0
  424. package/dist/src/sources/rest/samples/string.js.map +1 -0
  425. package/dist/src/sources/rest/selectors.d.ts +41 -0
  426. package/dist/src/sources/rest/selectors.d.ts.map +1 -0
  427. package/dist/src/sources/rest/selectors.js +81 -0
  428. package/dist/src/sources/rest/selectors.js.map +1 -0
  429. package/dist/src/sources/rest/source.d.ts +67 -0
  430. package/dist/src/sources/rest/source.d.ts.map +1 -0
  431. package/dist/src/sources/rest/source.js +650 -0
  432. package/dist/src/sources/rest/source.js.map +1 -0
  433. package/dist/src/sources/rest/templates.d.ts +38 -0
  434. package/dist/src/sources/rest/templates.d.ts.map +1 -0
  435. package/dist/src/sources/rest/templates.js +125 -0
  436. package/dist/src/sources/rest/templates.js.map +1 -0
  437. package/dist/src/sources/run.d.ts +93 -0
  438. package/dist/src/sources/run.d.ts.map +1 -0
  439. package/dist/src/sources/run.js +673 -0
  440. package/dist/src/sources/run.js.map +1 -0
  441. package/dist/src/sources/sha256.d.ts +12 -0
  442. package/dist/src/sources/sha256.d.ts.map +1 -0
  443. package/dist/src/sources/sha256.js +95 -0
  444. package/dist/src/sources/sha256.js.map +1 -0
  445. package/dist/src/sources/sigv4.d.ts +26 -0
  446. package/dist/src/sources/sigv4.d.ts.map +1 -0
  447. package/dist/src/sources/sigv4.js +184 -0
  448. package/dist/src/sources/sigv4.js.map +1 -0
  449. package/dist/src/sources/sparql/descriptor.d.ts +10 -0
  450. package/dist/src/sources/sparql/descriptor.d.ts.map +1 -0
  451. package/dist/src/sources/sparql/descriptor.js +64 -0
  452. package/dist/src/sources/sparql/descriptor.js.map +1 -0
  453. package/dist/src/sources/sparql/index.d.ts +28 -0
  454. package/dist/src/sources/sparql/index.d.ts.map +1 -0
  455. package/dist/src/sources/sparql/index.js +314 -0
  456. package/dist/src/sources/sparql/index.js.map +1 -0
  457. package/dist/src/sources/sparql/ntriples.d.ts +69 -0
  458. package/dist/src/sources/sparql/ntriples.d.ts.map +1 -0
  459. package/dist/src/sources/sparql/ntriples.js +180 -0
  460. package/dist/src/sources/sparql/ntriples.js.map +1 -0
  461. package/dist/src/sources/sparql/params.d.ts +27 -0
  462. package/dist/src/sources/sparql/params.d.ts.map +1 -0
  463. package/dist/src/sources/sparql/params.js +5 -0
  464. package/dist/src/sources/sparql/params.js.map +1 -0
  465. package/dist/src/sources/sparql/query.d.ts +72 -0
  466. package/dist/src/sources/sparql/query.d.ts.map +1 -0
  467. package/dist/src/sources/sparql/query.js +113 -0
  468. package/dist/src/sources/sparql/query.js.map +1 -0
  469. package/dist/src/sources/testing.d.ts +96 -0
  470. package/dist/src/sources/testing.d.ts.map +1 -0
  471. package/dist/src/sources/testing.js +138 -0
  472. package/dist/src/sources/testing.js.map +1 -0
  473. package/dist/src/sources/types.d.ts +696 -0
  474. package/dist/src/sources/types.d.ts.map +1 -0
  475. package/dist/src/sources/types.js +10 -0
  476. package/dist/src/sources/types.js.map +1 -0
  477. package/dist/src/styles/annotations.d.ts +61 -5
  478. package/dist/src/styles/annotations.d.ts.map +1 -1
  479. package/dist/src/styles/annotations.js +130 -22
  480. package/dist/src/styles/annotations.js.map +1 -1
  481. package/dist/src/styles/canon/bends.d.ts +46 -0
  482. package/dist/src/styles/canon/bends.d.ts.map +1 -1
  483. package/dist/src/styles/canon/bends.js +123 -0
  484. package/dist/src/styles/canon/bends.js.map +1 -1
  485. package/dist/src/styles/canon/color-tables.d.ts +6 -1
  486. package/dist/src/styles/canon/color-tables.d.ts.map +1 -1
  487. package/dist/src/styles/canon/color-tables.js +10 -4
  488. package/dist/src/styles/canon/color-tables.js.map +1 -1
  489. package/dist/src/styles/canon/color.d.ts +3 -1
  490. package/dist/src/styles/canon/color.d.ts.map +1 -1
  491. package/dist/src/styles/canon/color.js +103 -3
  492. package/dist/src/styles/canon/color.js.map +1 -1
  493. package/dist/src/styles/canon/enums.d.ts +2 -2
  494. package/dist/src/styles/canon/enums.d.ts.map +1 -1
  495. package/dist/src/styles/canon/enums.js +82 -7
  496. package/dist/src/styles/canon/enums.js.map +1 -1
  497. package/dist/src/styles/canon/graphviz.d.ts +12 -3
  498. package/dist/src/styles/canon/graphviz.d.ts.map +1 -1
  499. package/dist/src/styles/canon/graphviz.js +57 -9
  500. package/dist/src/styles/canon/graphviz.js.map +1 -1
  501. package/dist/src/styles/canon/number.d.ts +8 -0
  502. package/dist/src/styles/canon/number.d.ts.map +1 -1
  503. package/dist/src/styles/canon/number.js +18 -0
  504. package/dist/src/styles/canon/number.js.map +1 -1
  505. package/dist/src/styles/canon/text.d.ts +29 -2
  506. package/dist/src/styles/canon/text.d.ts.map +1 -1
  507. package/dist/src/styles/canon/text.js +156 -16
  508. package/dist/src/styles/canon/text.js.map +1 -1
  509. package/dist/src/styles/codes.d.ts +2 -0
  510. package/dist/src/styles/codes.d.ts.map +1 -1
  511. package/dist/src/styles/codes.js +2 -0
  512. package/dist/src/styles/codes.js.map +1 -1
  513. package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
  514. package/dist/src/styles/cyjs/cascade.js +1037 -35
  515. package/dist/src/styles/cyjs/cascade.js.map +1 -1
  516. package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -1
  517. package/dist/src/styles/cyjs/defaults-table.js +5 -0
  518. package/dist/src/styles/cyjs/defaults-table.js.map +1 -1
  519. package/dist/src/styles/cyjs/emit.d.ts.map +1 -1
  520. package/dist/src/styles/cyjs/emit.js +216 -12
  521. package/dist/src/styles/cyjs/emit.js.map +1 -1
  522. package/dist/src/styles/cyjs/face.d.ts +20 -0
  523. package/dist/src/styles/cyjs/face.d.ts.map +1 -0
  524. package/dist/src/styles/cyjs/face.js +332 -0
  525. package/dist/src/styles/cyjs/face.js.map +1 -0
  526. package/dist/src/styles/cyjs/mappers.d.ts +48 -2
  527. package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
  528. package/dist/src/styles/cyjs/mappers.js +463 -26
  529. package/dist/src/styles/cyjs/mappers.js.map +1 -1
  530. package/dist/src/styles/cyjs/routes.d.ts +53 -0
  531. package/dist/src/styles/cyjs/routes.d.ts.map +1 -0
  532. package/dist/src/styles/cyjs/routes.js +360 -0
  533. package/dist/src/styles/cyjs/routes.js.map +1 -0
  534. package/dist/src/styles/cytoscape/charts.d.ts +23 -0
  535. package/dist/src/styles/cytoscape/charts.d.ts.map +1 -0
  536. package/dist/src/styles/cytoscape/charts.js +560 -0
  537. package/dist/src/styles/cytoscape/charts.js.map +1 -0
  538. package/dist/src/styles/cytoscape/emit.d.ts.map +1 -1
  539. package/dist/src/styles/cytoscape/emit.js +204 -44
  540. package/dist/src/styles/cytoscape/emit.js.map +1 -1
  541. package/dist/src/styles/cytoscape/lexicon.d.ts +97 -3
  542. package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -1
  543. package/dist/src/styles/cytoscape/lexicon.js +413 -79
  544. package/dist/src/styles/cytoscape/lexicon.js.map +1 -1
  545. package/dist/src/styles/cytoscape/mappings.d.ts +30 -0
  546. package/dist/src/styles/cytoscape/mappings.d.ts.map +1 -1
  547. package/dist/src/styles/cytoscape/mappings.js +92 -0
  548. package/dist/src/styles/cytoscape/mappings.js.map +1 -1
  549. package/dist/src/styles/cytoscape/resolve.d.ts +46 -3
  550. package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -1
  551. package/dist/src/styles/cytoscape/resolve.js +632 -22
  552. package/dist/src/styles/cytoscape/resolve.js.map +1 -1
  553. package/dist/src/styles/cytoscape/translate.d.ts.map +1 -1
  554. package/dist/src/styles/cytoscape/translate.js +10 -10
  555. package/dist/src/styles/cytoscape/translate.js.map +1 -1
  556. package/dist/src/styles/defaults.d.ts +50 -0
  557. package/dist/src/styles/defaults.d.ts.map +1 -1
  558. package/dist/src/styles/defaults.js +315 -37
  559. package/dist/src/styles/defaults.js.map +1 -1
  560. package/dist/src/styles/index.d.ts +4 -3
  561. package/dist/src/styles/index.d.ts.map +1 -1
  562. package/dist/src/styles/index.js +3 -2
  563. package/dist/src/styles/index.js.map +1 -1
  564. package/dist/src/styles/internal.d.ts +1 -0
  565. package/dist/src/styles/internal.d.ts.map +1 -1
  566. package/dist/src/styles/internal.js +1 -0
  567. package/dist/src/styles/internal.js.map +1 -1
  568. package/dist/src/styles/io/block.d.ts.map +1 -1
  569. package/dist/src/styles/io/block.js +9 -0
  570. package/dist/src/styles/io/block.js.map +1 -1
  571. package/dist/src/styles/io/generic.d.ts.map +1 -1
  572. package/dist/src/styles/io/generic.js +56 -16
  573. package/dist/src/styles/io/generic.js.map +1 -1
  574. package/dist/src/styles/io/round-trip.d.ts +56 -0
  575. package/dist/src/styles/io/round-trip.d.ts.map +1 -0
  576. package/dist/src/styles/io/round-trip.js +138 -0
  577. package/dist/src/styles/io/round-trip.js.map +1 -0
  578. package/dist/src/styles/io/writer.d.ts.map +1 -1
  579. package/dist/src/styles/io/writer.js +13 -4
  580. package/dist/src/styles/io/writer.js.map +1 -1
  581. package/dist/src/styles/notes.d.ts.map +1 -1
  582. package/dist/src/styles/notes.js +1 -0
  583. package/dist/src/styles/notes.js.map +1 -1
  584. package/dist/src/styles/plan/features.d.ts +1 -1
  585. package/dist/src/styles/plan/features.d.ts.map +1 -1
  586. package/dist/src/styles/plan/features.js +22 -2
  587. package/dist/src/styles/plan/features.js.map +1 -1
  588. package/dist/src/styles/plan/index.d.ts +1 -1
  589. package/dist/src/styles/plan/index.d.ts.map +1 -1
  590. package/dist/src/styles/plan/index.js +1 -1
  591. package/dist/src/styles/plan/index.js.map +1 -1
  592. package/dist/src/styles/plan/plan.d.ts.map +1 -1
  593. package/dist/src/styles/plan/plan.js +61 -4
  594. package/dist/src/styles/plan/plan.js.map +1 -1
  595. package/dist/src/styles/plan/resolve.d.ts +13 -1
  596. package/dist/src/styles/plan/resolve.d.ts.map +1 -1
  597. package/dist/src/styles/plan/resolve.js +53 -6
  598. package/dist/src/styles/plan/resolve.js.map +1 -1
  599. package/dist/src/styles/slots.d.ts +14 -0
  600. package/dist/src/styles/slots.d.ts.map +1 -0
  601. package/dist/src/styles/slots.js +20 -0
  602. package/dist/src/styles/slots.js.map +1 -0
  603. package/dist/src/styles/types.d.ts +638 -5
  604. package/dist/src/styles/types.d.ts.map +1 -1
  605. package/dist/src/styles/vocabulary.d.ts +3 -2
  606. package/dist/src/styles/vocabulary.d.ts.map +1 -1
  607. package/dist/src/styles/vocabulary.js +218 -1
  608. package/dist/src/styles/vocabulary.js.map +1 -1
  609. package/dist/src/types.d.ts +19 -5
  610. package/dist/src/types.d.ts.map +1 -1
  611. package/dist/src/types.js.map +1 -1
  612. package/dist/styles.js +29 -238
  613. package/dist/styles.js.map +1 -1
  614. package/dist/xgmml.js +3 -3
  615. package/docs/samples/people.json +6 -0
  616. package/package.json +53 -8
  617. package/src/common/report.ts +27 -7
  618. package/src/formats/cx/importer.ts +6 -1
  619. package/src/formats/cx/styles.ts +144 -9
  620. package/src/formats/cx2/importer.ts +1 -0
  621. package/src/formats/cx2/styles.ts +3 -1
  622. package/src/formats/cys/importer.ts +1 -0
  623. package/src/formats/cys/styles.ts +27 -5
  624. package/src/formats/dot/drawing.ts +799 -0
  625. package/src/formats/dot/importer.ts +120 -35
  626. package/src/formats/dot/label-places.ts +228 -0
  627. package/src/formats/dot/record.ts +336 -0
  628. package/src/formats/dot/styles.ts +1657 -154
  629. package/src/formats/gexf/dialog-metrics.ts +61 -0
  630. package/src/formats/gexf/importer.ts +50 -5
  631. package/src/formats/gexf/preview.ts +217 -0
  632. package/src/formats/gexf/schema.ts +2 -1
  633. package/src/formats/gexf/styles.ts +1144 -142
  634. package/src/formats/gml/importer.ts +291 -76
  635. package/src/formats/gml/index.ts +1 -1
  636. package/src/formats/gml/positions.ts +29 -7
  637. package/src/formats/gml/styles.ts +854 -111
  638. package/src/formats/graphml/styles-plain.ts +8 -23
  639. package/src/formats/graphml/styles-yed.ts +821 -159
  640. package/src/formats/graphml/styles-yfiles3.ts +485 -63
  641. package/src/formats/graphml/yfiles.ts +19 -6
  642. package/src/formats/json/dialect.ts +41 -5
  643. package/src/formats/json/importer.ts +59 -7
  644. package/src/formats/json/index.ts +1 -0
  645. package/src/formats/json/positions.ts +22 -5
  646. package/src/formats/json/styles.ts +2041 -185
  647. package/src/formats/pajek/draw.ts +458 -0
  648. package/src/formats/pajek/exporter.ts +81 -49
  649. package/src/formats/pajek/importer.ts +278 -103
  650. package/src/formats/pajek/index.ts +1 -0
  651. package/src/formats/pajek/styles.ts +1382 -133
  652. package/src/formats/pajek/syntax.ts +27 -2
  653. package/src/formats/xgmml/emit.ts +73 -5
  654. package/src/formats/xgmml/styles.ts +331 -71
  655. package/src/index.ts +94 -0
  656. package/src/positions/convert.ts +12 -1
  657. package/src/positions/extract.ts +55 -1
  658. package/src/positions/index.ts +1 -0
  659. package/src/positions/types.ts +60 -0
  660. package/src/registry.ts +326 -1
  661. package/src/sources/builtins.ts +63 -0
  662. package/src/sources/codes.ts +235 -0
  663. package/src/sources/context.ts +894 -0
  664. package/src/sources/credentials.ts +409 -0
  665. package/src/sources/cypher/descriptor.ts +131 -0
  666. package/src/sources/cypher/flatten.ts +323 -0
  667. package/src/sources/cypher/index.ts +628 -0
  668. package/src/sources/cypher/params.ts +41 -0
  669. package/src/sources/cypher/profiles.ts +78 -0
  670. package/src/sources/cypher/query-builder.ts +327 -0
  671. package/src/sources/cypher/transports/bolt.ts +228 -0
  672. package/src/sources/cypher/transports/neptune-analytics.ts +41 -0
  673. package/src/sources/cypher/transports/neptune-https.ts +122 -0
  674. package/src/sources/cypher/transports/query-api.ts +100 -0
  675. package/src/sources/cypher/transports/transport.ts +139 -0
  676. package/src/sources/cypher/types-map.ts +418 -0
  677. package/src/sources/define.ts +195 -0
  678. package/src/sources/fail.ts +70 -0
  679. package/src/sources/ids.ts +80 -0
  680. package/src/sources/ndex/client.ts +102 -0
  681. package/src/sources/ndex/descriptor.ts +64 -0
  682. package/src/sources/ndex/expand.ts +100 -0
  683. package/src/sources/ndex/index.ts +235 -0
  684. package/src/sources/ndex/params.ts +17 -0
  685. package/src/sources/ndex/share-url.ts +84 -0
  686. package/src/sources/params.ts +32 -0
  687. package/src/sources/registry.ts +325 -0
  688. package/src/sources/rest/descriptor.ts +79 -0
  689. package/src/sources/rest/index.ts +22 -0
  690. package/src/sources/rest/mapping.ts +401 -0
  691. package/src/sources/rest/openalex.ts +288 -0
  692. package/src/sources/rest/paging.ts +180 -0
  693. package/src/sources/rest/params.ts +243 -0
  694. package/src/sources/rest/records.ts +289 -0
  695. package/src/sources/rest/samples/deps-dev.ts +49 -0
  696. package/src/sources/rest/samples/string.ts +44 -0
  697. package/src/sources/rest/selectors.ts +91 -0
  698. package/src/sources/rest/source.ts +776 -0
  699. package/src/sources/rest/templates.ts +151 -0
  700. package/src/sources/run.ts +793 -0
  701. package/src/sources/sha256.ts +99 -0
  702. package/src/sources/sigv4.ts +209 -0
  703. package/src/sources/sparql/descriptor.ts +67 -0
  704. package/src/sources/sparql/index.ts +356 -0
  705. package/src/sources/sparql/ntriples.ts +219 -0
  706. package/src/sources/sparql/params.ts +28 -0
  707. package/src/sources/sparql/query.ts +162 -0
  708. package/src/sources/testing.ts +210 -0
  709. package/src/sources/types.ts +776 -0
  710. package/src/styles/annotations.ts +201 -27
  711. package/src/styles/canon/bends.ts +137 -0
  712. package/src/styles/canon/color-tables.ts +10 -4
  713. package/src/styles/canon/color.ts +105 -3
  714. package/src/styles/canon/enums.ts +99 -8
  715. package/src/styles/canon/graphviz.ts +71 -10
  716. package/src/styles/canon/number.ts +19 -0
  717. package/src/styles/canon/text.ts +187 -16
  718. package/src/styles/codes.ts +2 -0
  719. package/src/styles/cyjs/cascade.ts +1193 -38
  720. package/src/styles/cyjs/defaults-table.ts +5 -0
  721. package/src/styles/cyjs/emit.ts +247 -16
  722. package/src/styles/cyjs/face.ts +372 -0
  723. package/src/styles/cyjs/mappers.ts +498 -28
  724. package/src/styles/cyjs/routes.ts +432 -0
  725. package/src/styles/cytoscape/charts.ts +684 -0
  726. package/src/styles/cytoscape/emit.ts +220 -44
  727. package/src/styles/cytoscape/lexicon.ts +459 -80
  728. package/src/styles/cytoscape/mappings.ts +108 -0
  729. package/src/styles/cytoscape/resolve.ts +763 -23
  730. package/src/styles/cytoscape/translate.ts +11 -11
  731. package/src/styles/defaults.ts +436 -38
  732. package/src/styles/index.ts +5 -0
  733. package/src/styles/internal.ts +1 -0
  734. package/src/styles/io/block.ts +10 -0
  735. package/src/styles/io/generic.ts +79 -23
  736. package/src/styles/io/round-trip.ts +202 -0
  737. package/src/styles/io/writer.ts +14 -4
  738. package/src/styles/notes.ts +1 -0
  739. package/src/styles/plan/features.ts +23 -2
  740. package/src/styles/plan/index.ts +1 -1
  741. package/src/styles/plan/plan.ts +69 -5
  742. package/src/styles/plan/resolve.ts +61 -6
  743. package/src/styles/slots.ts +25 -0
  744. package/src/styles/types.ts +658 -4
  745. package/src/styles/vocabulary.ts +226 -3
  746. package/src/types.ts +19 -5
  747. package/dist/chunks/block-DiGq58c3.js.map +0 -1
  748. package/dist/chunks/choose--jM0yYCo.js +0 -57
  749. package/dist/chunks/choose--jM0yYCo.js.map +0 -1
  750. package/dist/chunks/convert-BcQ8_jMo.js.map +0 -1
  751. package/dist/chunks/emit-CwU8cUmG.js.map +0 -1
  752. package/dist/chunks/export-BvqAXCKh.js.map +0 -1
  753. package/dist/chunks/exporter-CrDWIyiq.js.map +0 -1
  754. package/dist/chunks/format-BpQBx8MZ.js.map +0 -1
  755. package/dist/chunks/generic-Dq1ntt9q.js.map +0 -1
  756. package/dist/chunks/importer-BSvfrX_h.js.map +0 -1
  757. package/dist/chunks/importer-CMmeMWlC.js.map +0 -1
  758. package/dist/chunks/importer-COTK9Tsl.js.map +0 -1
  759. package/dist/chunks/importer-DiZRmOQG.js.map +0 -1
  760. package/dist/chunks/importer-e6LGpqHB.js.map +0 -1
  761. package/dist/chunks/importer-iFYPEKaJ.js.map +0 -1
  762. package/dist/chunks/importer-yh_aBCU6.js.map +0 -1
  763. package/dist/chunks/lexicon-CT69Kd87.js.map +0 -1
  764. package/dist/chunks/styles-BQnsga7p.js.map +0 -1
  765. package/dist/chunks/styles-D3fRphrO.js +0 -690
  766. package/dist/chunks/styles-D3fRphrO.js.map +0 -1
  767. package/dist/chunks/styles-yed-BF5x3_Y5.js +0 -842
  768. package/dist/chunks/styles-yed-BF5x3_Y5.js.map +0 -1
  769. package/dist/chunks/writer-DMKvthQE.js +0 -448
  770. package/dist/chunks/writer-DMKvthQE.js.map +0 -1
@@ -0,0 +1,776 @@
1
+ /**
2
+ * The network source contract (design sections 2, 2.1 to 2.3, 8, 12.5 and 16.1): what a source is,
3
+ * what it receives, what it returns, and the options of the load functions.
4
+ *
5
+ * Experimental: the contract is frozen only after the built-in sources are built on it (design
6
+ * section 22, item 1). Every union of names is open (`| (string & {})`), so a release can add a
7
+ * value; handle values you do not know.
8
+ */
9
+
10
+ import { type FreezeOptions, type GraphSink, type NodeId } from "@graphty/graph-format";
11
+
12
+ import { type ImportReportBuilder } from "../common/report.js";
13
+ import { type BuilderSeed } from "../registry.js";
14
+ import { type CommonImportOptions, type ImportInput, type ImportReport } from "../types.js";
15
+
16
+ /**
17
+ * What kind of service a source reads. Open union.
18
+ * @category Network sources
19
+ */
20
+ export type SourceKind =
21
+ "repository" | "database" | "sparql" | "rest" | "graphql" | "file-host" | "other" | (string & {}); // NOSONAR(S4335): open string union, keeps the known names autocompleting
22
+
23
+ /**
24
+ * An optional capability a source has. Open union.
25
+ * @category Network sources
26
+ */
27
+ export type SourceFeature = "expand" | "probe" | "list" | "page" | "validate" | (string & {}); // NOSONAR(S4335): open string union, keeps the known names autocompleting
28
+
29
+ /**
30
+ * Where code runs. Open union.
31
+ * @category Network sources
32
+ */
33
+ export type SourceRuntime = "browser" | "node" | "worker" | "other" | (string & {}); // NOSONAR(S4335): open string union, keeps the known names autocompleting
34
+
35
+ /**
36
+ * The type of one source parameter, for a form. Open union.
37
+ * @category Network sources
38
+ */
39
+ export type SourceParamType =
40
+ "string" | "text" | "query" | "integer" | "number" | "boolean" | "enum" | "url" | "node-id" | (string & {}); // NOSONAR(S4335): open string union, keeps the known names autocompleting
41
+
42
+ /**
43
+ * The language of a `query` parameter. Open union.
44
+ * @category Network sources
45
+ */
46
+ export type QueryLanguage = "cypher" | "opencypher" | "gremlin" | "sparql" | "graphql" | "jmespath" | (string & {}); // NOSONAR(S4335): open string union, keeps the known names autocompleting
47
+
48
+ /**
49
+ * Why a source cannot run in a runtime. Open union.
50
+ * @category Network sources
51
+ */
52
+ export type SourceRuntimeReason =
53
+ | "cors"
54
+ | "needs-websocket"
55
+ | "needs-secure-context"
56
+ | "insecure-endpoint"
57
+ | "needs-node"
58
+ | "needs-peer-dependency"
59
+ | (string & {}); // NOSONAR(S4335): open string union, keeps the known names autocompleting
60
+
61
+ /**
62
+ * The kind of a credential. Open union.
63
+ * @category Network sources
64
+ */
65
+ export type CredentialKind = "bearer" | "basic" | "api-key" | "aws-sigv4" | "custom" | (string & {}); // NOSONAR(S4335): open string union, keeps the known names autocompleting
66
+
67
+ /**
68
+ * A credential made by one of the `credentials` factories. The secret is held where no code can
69
+ * read it back: `JSON.stringify` and `util.inspect` show only `{ kind, origins }`. Experimental.
70
+ * @category Network sources
71
+ */
72
+ export interface Credential {
73
+ /** What kind of credential it is. */
74
+ readonly kind: CredentialKind;
75
+ /**
76
+ * The origins it may be sent to. Empty means "the load's endpoint origin", decided when it is
77
+ * used.
78
+ */
79
+ readonly origins: readonly string[];
80
+ /** The user name of a `basic` credential, which is not a secret; undefined for other kinds. */
81
+ readonly username?: string | undefined;
82
+ }
83
+
84
+ /**
85
+ * AWS credentials for `credentials.awsSigV4`. Experimental.
86
+ * @category Network sources
87
+ */
88
+ export interface AwsCredentials {
89
+ /** The access key id. */
90
+ readonly accessKeyId: string;
91
+ /** The secret access key. */
92
+ readonly secretAccessKey: string;
93
+ /** The session token of temporary credentials. */
94
+ readonly sessionToken?: string | undefined;
95
+ }
96
+
97
+ /**
98
+ * One node a `records` source returns: its id and its attributes. Experimental.
99
+ * @category Network sources
100
+ */
101
+ export type NodeRecord = {
102
+ /** The id. */
103
+ readonly id: NodeId;
104
+ } & Readonly<Record<string, unknown>>;
105
+
106
+ /**
107
+ * One edge a `records` source returns: its ends, an optional id, and its attributes. Experimental.
108
+ * @category Network sources
109
+ */
110
+ export type EdgeRecord = {
111
+ /** The source node's id. */
112
+ readonly source: NodeId;
113
+ /** The target node's id. */
114
+ readonly target: NodeId;
115
+ /** The id. */
116
+ readonly id?: NodeId;
117
+ } & Readonly<Record<string, unknown>>;
118
+
119
+ /**
120
+ * Where a paged load resumes. Opaque and JSON-serializable; only the source that made it reads it.
121
+ * @category Network sources
122
+ */
123
+ export type SourceCursor = Readonly<Record<string, string | number | boolean | null>>;
124
+
125
+ /**
126
+ * One page of a `records` source. Experimental.
127
+ * @category Network sources
128
+ */
129
+ export interface RecordBatch {
130
+ /** The nodes of the page. */
131
+ readonly nodes?: readonly NodeRecord[] | undefined;
132
+ /** The edges of the page; an edge to a node not loaded adds that node. */
133
+ readonly edges?: readonly EdgeRecord[] | undefined;
134
+ /** Where to resume; null or absent on the last page. */
135
+ readonly next?: SourceCursor | null | undefined;
136
+ /** Graph facts: `name`, `description`, `modified` (strings) and `directed` (boolean). */
137
+ readonly meta?: Readonly<Record<string, unknown>> | undefined;
138
+ }
139
+
140
+ /**
141
+ * What a `file` source returns: a body the format importers read. Experimental.
142
+ * @category Network sources
143
+ */
144
+ export interface SourceFile {
145
+ /** A fetch Response (streamed) or any importer input. */
146
+ readonly body: Response | ImportInput;
147
+ /** The format ("cx2"), or omitted to detect it. */
148
+ readonly format?: string | undefined;
149
+ /** A file name hint for detection. */
150
+ readonly filename?: string | undefined;
151
+ /** A MIME type hint for detection. */
152
+ readonly mimeType?: string | undefined;
153
+ /** Graph facts the file itself does not hold, written after it is read, as `RecordBatch.meta`. */
154
+ readonly meta?: Readonly<Record<string, unknown>> | undefined;
155
+ }
156
+
157
+ /**
158
+ * What `ctx.fetch` accepts beside fetch's own init. Experimental.
159
+ * @category Network sources
160
+ */
161
+ export type SourceRequestInit = RequestInit & {
162
+ /** false: never retry this request. */
163
+ readonly retry?: false | undefined;
164
+ /** Mark a POST as safe to retry (a read-only query). GET and HEAD always are. */
165
+ readonly idempotent?: boolean | undefined;
166
+ /**
167
+ * Statuses outside 200 to 299 that are returned to the source instead of raised as coded issues
168
+ * (a query error body the source reads itself, a 304). Default none; 304 is always returned.
169
+ */
170
+ readonly allowStatus?: readonly number[] | undefined;
171
+ };
172
+
173
+ /**
174
+ * The caps of a load. Every default is "no limit". Experimental.
175
+ * @category Network sources
176
+ */
177
+ export interface SourceLimitOptions {
178
+ /**
179
+ * Stop once this many nodes were written. Checked after each page a source returns, so a load
180
+ * can end one page past it (a page of works whose references become stub nodes can be
181
+ * thousands); a database source also sends it to the server as a LIMIT.
182
+ */
183
+ readonly maxNodes?: number | undefined;
184
+ /** Stop once this many edges were written. Checked after each page, as `maxNodes` is. */
185
+ readonly maxEdges?: number | undefined;
186
+ /** Stop once this many decoded response bytes were read. */
187
+ readonly maxBytes?: number | undefined;
188
+ /** Stop before sending more requests than this. */
189
+ readonly maxRequests?: number | undefined;
190
+ /** Fail with E_SOURCE_TIMEOUT once the load has run this long. */
191
+ readonly timeoutMs?: number | undefined;
192
+ /**
193
+ * "stop" (default): keep what came first, warn W_SOURCE_LIMIT and record where to resume.
194
+ * "error": fail with E_SOURCE_LIMIT.
195
+ * @defaultValue "stop"
196
+ */
197
+ readonly onLimit?: "stop" | "error" | undefined;
198
+ }
199
+
200
+ /**
201
+ * The caps as a source sees them. Experimental.
202
+ * @category Network sources
203
+ */
204
+ export type SourceLimits = Readonly<SourceLimitOptions> & {
205
+ /**
206
+ * Whether a node or edge cap has been reached. Under "stop" it warns W_SOURCE_LIMIT once and
207
+ * returns true; under "error" it throws E_SOURCE_LIMIT.
208
+ * @returns true when the source should stop
209
+ */
210
+ reached(): boolean;
211
+ };
212
+
213
+ /**
214
+ * How `ctx.fetch` retries. Defaults: 3 retries, full-jitter backoff from 500 ms to 30 s.
215
+ * @category Network sources
216
+ */
217
+ export interface RetryOptions {
218
+ /** Retries after the first attempt. @defaultValue 3 */
219
+ readonly retries?: number | undefined;
220
+ /** The first backoff ceiling in milliseconds. @defaultValue 500 */
221
+ readonly baseDelayMs?: number | undefined;
222
+ /** The largest backoff in milliseconds. @defaultValue 30000 */
223
+ readonly maxDelayMs?: number | undefined;
224
+ }
225
+
226
+ /**
227
+ * How much a source holds for a load, as it counted it, so a caller can show "100 of 28,455".
228
+ * Experimental.
229
+ * @category Network sources
230
+ */
231
+ export interface SourceTotal {
232
+ /** The nodes the load's params match at the source. */
233
+ readonly nodes?: number | undefined;
234
+ /** The edges the load's params match at the source. */
235
+ readonly edges?: number | undefined;
236
+ }
237
+
238
+ /**
239
+ * Facts a source reports with `ctx.finish()`. Experimental.
240
+ * @category Network sources
241
+ */
242
+ export interface SourceFinish {
243
+ /** Where to resume; null or absent when the load is complete. */
244
+ readonly next?: SourceCursor | null | undefined;
245
+ /** Facts about the server: `{ product: "Neo4j", version: "5.24" }`. */
246
+ readonly server?: Readonly<Record<string, string>> | undefined;
247
+ /** What a metered service says is left. */
248
+ readonly budget?:
249
+ | {
250
+ /** What the service says is left. */
251
+ readonly remaining: number;
252
+ /** When it resets, in milliseconds from now. */
253
+ readonly resetMs?: number | undefined;
254
+ }
255
+ | undefined;
256
+ /** What lets a later call tell whether the data changed. */
257
+ readonly validators?: SourceValidators | undefined;
258
+ /** What the source holds for this load, when it counted: the nodes and edges it matches. */
259
+ readonly total?: SourceTotal | undefined;
260
+ }
261
+
262
+ /**
263
+ * What every source method receives: the one place auth, redirects, retries, limits, cancellation
264
+ * and progress are implemented. A source never calls the global `fetch`. Experimental.
265
+ * @category Network sources
266
+ */
267
+ export interface SourceContext {
268
+ /**
269
+ * fetch() with the credential, the redirect guard, retries, the signal, the byte cap and
270
+ * progress. A relative URL resolves against `endpoint`. A status of 401, 403, 404, 429 or any
271
+ * other outside 200 to 299 is raised as its coded issue unless `init.allowStatus` lists it.
272
+ */
273
+ readonly fetch: (input: string | URL, init?: SourceRequestInit) => Promise<Response>;
274
+ /** `fetch` and parse the body as JSON; a body that is not JSON is E_SOURCE_RESPONSE. */
275
+ readonly fetchJson: <T = unknown>(input: string | URL, init?: SourceRequestInit) => Promise<T>;
276
+ /** The caller's endpoint, else the descriptor's default, else null. */
277
+ readonly endpoint: URL | null;
278
+ /** Aborts when the caller cancels or the load times out. */
279
+ readonly signal: AbortSignal;
280
+ /** The report of this load. */
281
+ readonly report: ImportReportBuilder;
282
+ /** The caps; `reached()` counts what the sink received. */
283
+ readonly limits: SourceLimits;
284
+ /**
285
+ * Report progress.
286
+ * @param done - how much is done
287
+ * @param total - the total, when the service says it
288
+ * @param unit - what is counted
289
+ */
290
+ progress(done: number, total?: number, unit?: "items" | "bytes"): void;
291
+ /** The caller's `cursor`, or null on a first load. */
292
+ readonly cursor: SourceCursor | null;
293
+ /**
294
+ * Finish an `import()` source: record where to resume and the server facts, and return the report.
295
+ * @param result - the cursor and facts
296
+ * @returns the report
297
+ */
298
+ finish(result?: SourceFinish): ImportReport;
299
+ /** Where this load runs. */
300
+ readonly runtime: SourceRuntime;
301
+ }
302
+
303
+ /**
304
+ * One parameter a form asks for. Experimental.
305
+ * @category Network sources
306
+ */
307
+ export interface SourceParamDescriptor {
308
+ /** The key in the params object. */
309
+ readonly name: string;
310
+ /** Its default name; catalog data an application may replace. */
311
+ readonly plainName: string;
312
+ /** Its type. */
313
+ readonly type: SourceParamType;
314
+ /** Whether it must be given. */
315
+ readonly required?: boolean | undefined;
316
+ /** The value used when it is not given. */
317
+ readonly default?: unknown;
318
+ /** The smallest number allowed. */
319
+ readonly min?: number | undefined;
320
+ /** The largest number allowed. */
321
+ readonly max?: number | undefined;
322
+ /** The allowed values of an "enum". */
323
+ readonly values?:
324
+ | readonly {
325
+ /** The value a form submits. */
326
+ readonly value: string;
327
+ /** Its default name; catalog data. */
328
+ readonly label: string;
329
+ }[]
330
+ | undefined;
331
+ /** The language of a "query". */
332
+ readonly language?: QueryLanguage | undefined;
333
+ /** Whether a form may hide it by default. */
334
+ readonly advanced?: boolean | undefined;
335
+ /** "filter": compiled into the query, so filtering happens at the source. */
336
+ readonly role?: "filter" | undefined;
337
+ /** What it means; catalog data. */
338
+ readonly description?: string | undefined;
339
+ }
340
+
341
+ /**
342
+ * A public example a source offers. Experimental.
343
+ * @category Network sources
344
+ */
345
+ export interface SourceSample {
346
+ /** Its id ("neo4j-movies"). */
347
+ readonly id: string;
348
+ /** Its default name; catalog data. */
349
+ readonly plainName: string;
350
+ /** The params that load it. */
351
+ readonly params: Readonly<Record<string, unknown>>;
352
+ /** The endpoint, when not the source's default. */
353
+ readonly endpoint?: string | undefined;
354
+ /** A login the service publishes for everyone; never stored. */
355
+ readonly publicLogin?:
356
+ | {
357
+ /** The user name. */
358
+ readonly username: string;
359
+ /** The password, published by the service for everyone. */
360
+ readonly password: string;
361
+ }
362
+ | undefined;
363
+ /** How big it is. */
364
+ readonly counts?:
365
+ | {
366
+ /** How many nodes. */
367
+ readonly nodes?: number | undefined;
368
+ /** How many edges. */
369
+ readonly edges?: number | undefined;
370
+ }
371
+ | undefined;
372
+ /** false: too big to load whole; start from a neighborhood. */
373
+ readonly whole?: boolean | undefined;
374
+ /**
375
+ * A node cap for loading the sample when the caller gives none, for a sample too big to load
376
+ * whole that pages: the load stops at the first page past it, and its cursor reads on.
377
+ */
378
+ readonly firstPage?: number | undefined;
379
+ }
380
+
381
+ /**
382
+ * What a form needs to ask for a source's parameters, as data. Only `plainName` and `params` are
383
+ * required. Experimental.
384
+ * @category Network sources
385
+ */
386
+ export interface SourceDescriptor {
387
+ /** The source's default name; catalog data an application may replace by id. */
388
+ readonly plainName: string;
389
+ /** The parameters. */
390
+ readonly params: readonly SourceParamDescriptor[];
391
+ /** Bump when params or cursors change shape. @defaultValue 1 */
392
+ readonly version?: number | undefined;
393
+ /** What kind of service it is. @defaultValue "other" */
394
+ readonly kind?: SourceKind | undefined;
395
+ /** The credential kinds it takes. @defaultValue [] */
396
+ readonly auth?: readonly CredentialKind[] | undefined;
397
+ /** Whether a credential is needed. @defaultValue "none" */
398
+ readonly authRequired?: "required" | "optional" | "none" | undefined;
399
+ /**
400
+ * Where an `api-key` credential goes, for a form that asks for the key alone: pass it to
401
+ * `credentials.apiKey(descriptor.apiKey, key)`. Absent when the caller must say.
402
+ */
403
+ readonly apiKey?:
404
+ | {
405
+ /** The request header that carries the key. */
406
+ readonly header: string;
407
+ }
408
+ | {
409
+ /** The query parameter that carries the key. */
410
+ readonly query: string;
411
+ }
412
+ | undefined;
413
+ /** The endpoint used when the caller names none. @defaultValue null */
414
+ readonly defaultEndpoint?: string | null | undefined;
415
+ /** Where it runs; a runtime marked unsupported is refused with E_SOURCE_RUNTIME before any request. */
416
+ readonly runtimes?:
417
+ | Readonly<
418
+ Partial<
419
+ Record<
420
+ SourceRuntime,
421
+ {
422
+ /** Whether it runs there. */
423
+ readonly supported: boolean;
424
+ /** Why not, when it does not. */
425
+ readonly reason?: SourceRuntimeReason;
426
+ }
427
+ >
428
+ >
429
+ >
430
+ | undefined;
431
+ /**
432
+ * What it needs from a browser. Absent means "not declared": nothing is checked first.
433
+ * `secureContext: true` is checked before any request.
434
+ */
435
+ readonly needs?:
436
+ | {
437
+ /** Request headers the service must allow from a page. */
438
+ readonly headers?: readonly string[] | undefined;
439
+ /** Whether it needs a WebSocket. */
440
+ readonly websocket?: boolean | undefined;
441
+ /** Whether it needs a secure context (Web Crypto). */
442
+ readonly secureContext?: boolean | undefined;
443
+ }
444
+ | undefined;
445
+ /** Paces `ctx.fetch`: at most `requests` per `perMs`, and `concurrent` at once. */
446
+ readonly rateLimit?:
447
+ | {
448
+ /** At most this many requests per period. */
449
+ readonly requests: number;
450
+ /** The period, in milliseconds. */
451
+ readonly perMs: number;
452
+ /** At most this many requests at once. */
453
+ readonly concurrent?: number;
454
+ }
455
+ | undefined;
456
+ /** The optional features it has; default: from the methods present. */
457
+ readonly features?: readonly SourceFeature[] | undefined;
458
+ /**
459
+ * Upgrade params recorded by an older version.
460
+ * @param params - the old params
461
+ * @param fromVersion - the version they were recorded with
462
+ * @returns the params for the current version
463
+ */
464
+ readonly migrateParams?:
465
+ ((params: Record<string, unknown>, fromVersion: number) => Record<string, unknown>) | undefined;
466
+ /** Public examples to offer. */
467
+ readonly samples?: readonly SourceSample[] | undefined;
468
+ }
469
+
470
+ /**
471
+ * A request to fetch the neighborhood of some nodes. Experimental.
472
+ * @category Network sources
473
+ */
474
+ export interface ExpandRequest<P> {
475
+ /** The params the nodes were loaded with. */
476
+ readonly params: P;
477
+ /** The seed node ids. */
478
+ readonly ids: readonly NodeId[];
479
+ /** How many hops. @defaultValue 1 */
480
+ readonly depth?: number | undefined;
481
+ /** Which edges to follow. @defaultValue "both" */
482
+ readonly direction?: "out" | "in" | "both" | undefined;
483
+ /** At most this many new nodes. */
484
+ readonly limit?: number | undefined;
485
+ /** Only these relationship types. */
486
+ readonly relationshipTypes?: readonly string[] | undefined;
487
+ /** Nodes already loaded; an optimization only. */
488
+ readonly exclude?: readonly NodeId[] | undefined;
489
+ }
490
+
491
+ /**
492
+ * What `probe` answers: the params and credential work. Experimental.
493
+ * @category Network sources
494
+ */
495
+ export interface SourceProbe {
496
+ /** Always true; a failure throws its coded issue. */
497
+ readonly ok: true;
498
+ /** Facts about the server. */
499
+ readonly server?: Readonly<Record<string, string>> | undefined;
500
+ /** How big the graph is, when the service says. */
501
+ readonly counts?:
502
+ | {
503
+ /** How many nodes. */
504
+ readonly nodes?: number | undefined;
505
+ /** How many edges. */
506
+ readonly edges?: number | undefined;
507
+ /** How many bytes the download is. */
508
+ readonly bytes?: number | undefined;
509
+ }
510
+ | undefined;
511
+ }
512
+
513
+ /**
514
+ * A search of what a source holds. Experimental.
515
+ * @category Network sources
516
+ */
517
+ export interface SourceListQuery<P> {
518
+ /** Params narrowing the search. */
519
+ readonly params: Partial<P>;
520
+ /** Search text. */
521
+ readonly search?: string | undefined;
522
+ /** Where to resume. */
523
+ readonly cursor?: SourceCursor | undefined;
524
+ /** Items per page. */
525
+ readonly size?: number | undefined;
526
+ }
527
+
528
+ /**
529
+ * One item a search found. Experimental.
530
+ * @category Network sources
531
+ */
532
+ export interface SourceListItem {
533
+ /** The params that load it. */
534
+ readonly params: Readonly<Record<string, unknown>>;
535
+ /** Its name in the service; the consumer's data. */
536
+ readonly name: string;
537
+ /** Its node count, when known. */
538
+ readonly nodeCount?: number | undefined;
539
+ /** Its edge count, when known. */
540
+ readonly edgeCount?: number | undefined;
541
+ /** When it last changed, ISO-8601. */
542
+ readonly modified?: string | undefined;
543
+ }
544
+
545
+ /**
546
+ * A page of search results. Experimental.
547
+ * @category Network sources
548
+ */
549
+ export interface SourceListing {
550
+ /** The items. */
551
+ readonly items: readonly SourceListItem[];
552
+ /** Where the next page starts, or null. */
553
+ readonly next: SourceCursor | null;
554
+ /** The total, when the service says. */
555
+ readonly total?: number | undefined;
556
+ }
557
+
558
+ /**
559
+ * What lets a later call tell whether a source's data changed. Experimental.
560
+ * @category Network sources
561
+ */
562
+ export interface SourceValidators {
563
+ /** An HTTP ETag. */
564
+ readonly etag?: string | undefined;
565
+ /** An HTTP Last-Modified. */
566
+ readonly lastModified?: string | undefined;
567
+ /** The service's own modification time. */
568
+ readonly modified?: string | undefined;
569
+ /** The server's version. */
570
+ readonly serverVersion?: string | undefined;
571
+ /** SHA-256 of the canonical rows loaded. */
572
+ readonly contentHash?: string | undefined;
573
+ }
574
+
575
+ /**
576
+ * What `validate` answers. Experimental.
577
+ * @category Network sources
578
+ */
579
+ export interface SourceFreshness {
580
+ /** Whether the data changed. */
581
+ readonly status: "current" | "changed" | "unverifiable";
582
+ /** What told. */
583
+ readonly via?: "etag" | "modified" | "version" | "hash" | undefined;
584
+ /** When it changed, ISO-8601. */
585
+ readonly changedAt?: string | undefined;
586
+ /** The new validators. */
587
+ readonly validators: SourceValidators;
588
+ }
589
+
590
+ /**
591
+ * The `source` member of an ImportReport from a source load. Experimental.
592
+ * @category Network sources
593
+ */
594
+ export interface SourceReportInfo {
595
+ /** The source id. */
596
+ readonly id: string;
597
+ /** The source's descriptor version. */
598
+ readonly version: number;
599
+ /** The endpoint, origin and path only. */
600
+ readonly endpoint: string | null;
601
+ /** Requests sent. */
602
+ readonly requests: number;
603
+ /** Decoded response bytes read. */
604
+ readonly bytes: number;
605
+ /** Where to resume; null when the load is complete. Pass it as `cursor`. */
606
+ readonly next: SourceCursor | null;
607
+ /** Facts about the server. */
608
+ readonly server?: Readonly<Record<string, string>> | undefined;
609
+ /** What a metered service says is left. */
610
+ readonly budget?:
611
+ | {
612
+ /** What the service says is left. */
613
+ readonly remaining: number;
614
+ /** When it resets, in milliseconds from now. */
615
+ readonly resetMs?: number | undefined;
616
+ }
617
+ | undefined;
618
+ /** What lets a later call tell whether the data changed. */
619
+ readonly validators?: SourceValidators | undefined;
620
+ /** What the source holds for this load, when it counted: the nodes and edges it matches. */
621
+ readonly total?: SourceTotal | undefined;
622
+ }
623
+
624
+ /**
625
+ * The read method of a `records` source: return a page of nodes and edges, or an async iterable
626
+ * of pages. Experimental.
627
+ * @category Network sources
628
+ */
629
+ export type RecordsFn<P> = (params: P, ctx: SourceContext) => Promise<RecordBatch> | AsyncIterable<RecordBatch>;
630
+ /**
631
+ * The read method of a `file` source: return a body the format importers read. Experimental.
632
+ * @category Network sources
633
+ */
634
+ export type FileFn<P> = (params: P, ctx: SourceContext) => Promise<SourceFile>;
635
+ /**
636
+ * The read method of an `import` source: write into the sink and return the report. Experimental.
637
+ * @category Network sources
638
+ */
639
+ export type ImportFn<P> = (params: P, sink: GraphSink, ctx: SourceContext) => Promise<ImportReport>;
640
+
641
+ /**
642
+ * What every source has beside its one read method. Experimental.
643
+ * @category Network sources
644
+ */
645
+ export interface SourceBase<P> {
646
+ /** Lowercase letters, digits and dashes. A separate name space from formats. */
647
+ readonly id: string;
648
+ /** What a form needs; optional for a source used only from code. */
649
+ readonly descriptor?: SourceDescriptor | undefined;
650
+ /** The node record's id field, when not `id`. */
651
+ readonly idKey?: string | undefined;
652
+ /** The edge record's source field, when not `source`. */
653
+ readonly sourceKey?: string | undefined;
654
+ /** The edge record's target field, when not `target`. */
655
+ readonly targetKey?: string | undefined;
656
+ /**
657
+ * Fetch the neighborhood of some nodes into the sink.
658
+ * @param request - the seeds and how far to go
659
+ * @param sink - where to write
660
+ * @param ctx - the context
661
+ * @returns the report
662
+ */
663
+ expand?(request: ExpandRequest<P>, sink: GraphSink, ctx: SourceContext): Promise<ImportReport>;
664
+ /**
665
+ * Check the params and the credential without loading.
666
+ * @param params - the params
667
+ * @param ctx - the context
668
+ * @returns what the service said
669
+ */
670
+ probe?(params: P, ctx: SourceContext): Promise<SourceProbe>;
671
+ /**
672
+ * Search what the source holds.
673
+ * @param query - the search
674
+ * @param ctx - the context
675
+ * @returns one page of results
676
+ */
677
+ list?(query: SourceListQuery<P>, ctx: SourceContext): Promise<SourceListing>;
678
+ /**
679
+ * Tell whether data loaded earlier changed.
680
+ * @param params - the params it was loaded with
681
+ * @param seen - the validators recorded then
682
+ * @param ctx - the context
683
+ * @returns whether it changed
684
+ */
685
+ validate?(params: P, seen: SourceValidators, ctx: SourceContext): Promise<SourceFreshness>;
686
+ }
687
+
688
+ /**
689
+ * A network source: an id, an optional descriptor, and exactly one of three read methods, simplest
690
+ * first: `records` (return nodes and edges, or an async iterable of pages), `file` (return a body
691
+ * the format importers read) or `import` (write into the sink yourself). Experimental.
692
+ * @category Network sources
693
+ */
694
+ export type GraphSource<P = Record<string, unknown>> =
695
+ | (SourceBase<P> & {
696
+ /** Return `{ nodes, edges }`, or an async iterable of such pages. */
697
+ readonly records: RecordsFn<P>;
698
+ /** Absent: a source has exactly one read method. */
699
+ readonly file?: never;
700
+ /** Absent: a source has exactly one read method. */
701
+ readonly import?: never;
702
+ })
703
+ | (SourceBase<P> & {
704
+ /** Return a file the format importers read. */
705
+ readonly file: FileFn<P>;
706
+ /** Absent: a source has exactly one read method. */
707
+ readonly records?: never;
708
+ /** Absent: a source has exactly one read method. */
709
+ readonly import?: never;
710
+ })
711
+ | (SourceBase<P> & {
712
+ /** Write into the sink. */
713
+ readonly import: ImportFn<P>;
714
+ /** Absent: a source has exactly one read method. */
715
+ readonly records?: never;
716
+ /** Absent: a source has exactly one read method. */
717
+ readonly file?: never;
718
+ });
719
+
720
+ /**
721
+ * A source registered by its descriptor, whose code loads on first use. Experimental.
722
+ * @category Network sources
723
+ */
724
+ export interface LazySource {
725
+ /** The source id. */
726
+ readonly id: string;
727
+ /** The descriptor, available without loading the code. */
728
+ readonly descriptor: SourceDescriptor;
729
+ /**
730
+ * Load the source.
731
+ * @returns the source
732
+ */
733
+ readonly load: () => Promise<GraphSource<never>>;
734
+ }
735
+
736
+ /**
737
+ * One registered source, as `listSources()` describes it. Experimental.
738
+ * @category Network sources
739
+ */
740
+ export interface SourceInfo {
741
+ /** The source id. */
742
+ readonly id: string;
743
+ /** Its descriptor (a bare one, `{ plainName: id, params: [] }`, for a source without one). */
744
+ readonly descriptor: SourceDescriptor;
745
+ /** Whether its code is loaded. */
746
+ readonly loaded: boolean;
747
+ }
748
+
749
+ /**
750
+ * The options of `loadFromSource()` and the other source functions. Experimental.
751
+ * @category Network sources
752
+ */
753
+ export interface LoadFromSourceOptions extends CommonImportOptions {
754
+ /** The service's address; required unless the source has a default. */
755
+ readonly endpoint?: string | URL | undefined;
756
+ /** The credential, sent only to the endpoint's origin or the credential's own `origins`. */
757
+ readonly credential?: Credential | undefined;
758
+ /** Where to resume a capped load: the earlier `report.source.next`. */
759
+ readonly cursor?: SourceCursor | null | undefined;
760
+ /** The caps. */
761
+ readonly limits?: SourceLimitOptions | undefined;
762
+ /** How to retry, or false never to. */
763
+ readonly retry?: RetryOptions | false | undefined;
764
+ /** Prepended to every node id, to keep two loads' ids apart. */
765
+ readonly idPrefix?: string | undefined;
766
+ /** Send a credential without TLS to a host that is not loopback. @defaultValue false */
767
+ readonly allowInsecure?: boolean | undefined;
768
+ /** The fetch to use instead of the global one (tests, recorded responses, Node agents). */
769
+ readonly fetch?: typeof fetch | undefined;
770
+ /** Sent as User-Agent in Node. No default string. */
771
+ readonly userAgent?: string | undefined;
772
+ /** Settings for the builder (loadFromSource and expandFromSource). */
773
+ readonly builder?: BuilderSeed | undefined;
774
+ /** Settings for the freeze (loadFromSource and expandFromSource). */
775
+ readonly freeze?: FreezeOptions | undefined;
776
+ }