@graphty/graph-io 0.3.47 → 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
@@ -0,0 +1,741 @@
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
+ * Facts a source reports with `ctx.finish()`. Experimental.
228
+ * @category Network sources
229
+ */
230
+ export interface SourceFinish {
231
+ /** Where to resume; null or absent when the load is complete. */
232
+ readonly next?: SourceCursor | null | undefined;
233
+ /** Facts about the server: `{ product: "Neo4j", version: "5.24" }`. */
234
+ readonly server?: Readonly<Record<string, string>> | undefined;
235
+ /** What a metered service says is left. */
236
+ readonly budget?:
237
+ | {
238
+ /** What the service says is left. */
239
+ readonly remaining: number;
240
+ /** When it resets, in milliseconds from now. */
241
+ readonly resetMs?: number | undefined;
242
+ }
243
+ | undefined;
244
+ /** What lets a later call tell whether the data changed. */
245
+ readonly validators?: SourceValidators | undefined;
246
+ }
247
+
248
+ /**
249
+ * What every source method receives: the one place auth, redirects, retries, limits, cancellation
250
+ * and progress are implemented. A source never calls the global `fetch`. Experimental.
251
+ * @category Network sources
252
+ */
253
+ export interface SourceContext {
254
+ /**
255
+ * fetch() with the credential, the redirect guard, retries, the signal, the byte cap and
256
+ * progress. A relative URL resolves against `endpoint`. A status of 401, 403, 404, 429 or any
257
+ * other outside 200 to 299 is raised as its coded issue unless `init.allowStatus` lists it.
258
+ */
259
+ readonly fetch: (input: string | URL, init?: SourceRequestInit) => Promise<Response>;
260
+ /** `fetch` and parse the body as JSON; a body that is not JSON is E_SOURCE_RESPONSE. */
261
+ readonly fetchJson: <T = unknown>(input: string | URL, init?: SourceRequestInit) => Promise<T>;
262
+ /** The caller's endpoint, else the descriptor's default, else null. */
263
+ readonly endpoint: URL | null;
264
+ /** Aborts when the caller cancels or the load times out. */
265
+ readonly signal: AbortSignal;
266
+ /** The report of this load. */
267
+ readonly report: ImportReportBuilder;
268
+ /** The caps; `reached()` counts what the sink received. */
269
+ readonly limits: SourceLimits;
270
+ /**
271
+ * Report progress.
272
+ * @param done - how much is done
273
+ * @param total - the total, when the service says it
274
+ * @param unit - what is counted
275
+ */
276
+ progress(done: number, total?: number, unit?: "items" | "bytes"): void;
277
+ /** The caller's `cursor`, or null on a first load. */
278
+ readonly cursor: SourceCursor | null;
279
+ /**
280
+ * Finish an `import()` source: record where to resume and the server facts, and return the report.
281
+ * @param result - the cursor and facts
282
+ * @returns the report
283
+ */
284
+ finish(result?: SourceFinish): ImportReport;
285
+ /** Where this load runs. */
286
+ readonly runtime: SourceRuntime;
287
+ }
288
+
289
+ /**
290
+ * One parameter a form asks for. Experimental.
291
+ * @category Network sources
292
+ */
293
+ export interface SourceParamDescriptor {
294
+ /** The key in the params object. */
295
+ readonly name: string;
296
+ /** Its default name; catalog data an application may replace. */
297
+ readonly plainName: string;
298
+ /** Its type. */
299
+ readonly type: SourceParamType;
300
+ /** Whether it must be given. */
301
+ readonly required?: boolean | undefined;
302
+ /** The value used when it is not given. */
303
+ readonly default?: unknown;
304
+ /** The smallest number allowed. */
305
+ readonly min?: number | undefined;
306
+ /** The largest number allowed. */
307
+ readonly max?: number | undefined;
308
+ /** The allowed values of an "enum". */
309
+ readonly values?:
310
+ | readonly {
311
+ /** The value a form submits. */
312
+ readonly value: string;
313
+ /** Its default name; catalog data. */
314
+ readonly label: string;
315
+ }[]
316
+ | undefined;
317
+ /** The language of a "query". */
318
+ readonly language?: QueryLanguage | undefined;
319
+ /** Whether a form may hide it by default. */
320
+ readonly advanced?: boolean | undefined;
321
+ /** "filter": compiled into the query, so filtering happens at the source. */
322
+ readonly role?: "filter" | undefined;
323
+ /** What it means; catalog data. */
324
+ readonly description?: string | undefined;
325
+ }
326
+
327
+ /**
328
+ * A public example a source offers. Experimental.
329
+ * @category Network sources
330
+ */
331
+ export interface SourceSample {
332
+ /** Its id ("neo4j-movies"). */
333
+ readonly id: string;
334
+ /** Its default name; catalog data. */
335
+ readonly plainName: string;
336
+ /** The params that load it. */
337
+ readonly params: Readonly<Record<string, unknown>>;
338
+ /** The endpoint, when not the source's default. */
339
+ readonly endpoint?: string | undefined;
340
+ /** A login the service publishes for everyone; never stored. */
341
+ readonly publicLogin?:
342
+ | {
343
+ /** The user name. */
344
+ readonly username: string;
345
+ /** The password, published by the service for everyone. */
346
+ readonly password: string;
347
+ }
348
+ | undefined;
349
+ /** How big it is. */
350
+ readonly counts?:
351
+ | {
352
+ /** How many nodes. */
353
+ readonly nodes?: number | undefined;
354
+ /** How many edges. */
355
+ readonly edges?: number | undefined;
356
+ }
357
+ | undefined;
358
+ /** false: too big to load whole; start from a neighborhood. */
359
+ readonly whole?: boolean | undefined;
360
+ }
361
+
362
+ /**
363
+ * What a form needs to ask for a source's parameters, as data. Only `plainName` and `params` are
364
+ * required. Experimental.
365
+ * @category Network sources
366
+ */
367
+ export interface SourceDescriptor {
368
+ /** The source's default name; catalog data an application may replace by id. */
369
+ readonly plainName: string;
370
+ /** The parameters. */
371
+ readonly params: readonly SourceParamDescriptor[];
372
+ /** Bump when params or cursors change shape. @defaultValue 1 */
373
+ readonly version?: number | undefined;
374
+ /** What kind of service it is. @defaultValue "other" */
375
+ readonly kind?: SourceKind | undefined;
376
+ /** The credential kinds it takes. @defaultValue [] */
377
+ readonly auth?: readonly CredentialKind[] | undefined;
378
+ /** Whether a credential is needed. @defaultValue "none" */
379
+ readonly authRequired?: "required" | "optional" | "none" | undefined;
380
+ /** The endpoint used when the caller names none. @defaultValue null */
381
+ readonly defaultEndpoint?: string | null | undefined;
382
+ /** Where it runs; a runtime marked unsupported is refused with E_SOURCE_RUNTIME before any request. */
383
+ readonly runtimes?:
384
+ | Readonly<
385
+ Partial<
386
+ Record<
387
+ SourceRuntime,
388
+ {
389
+ /** Whether it runs there. */
390
+ readonly supported: boolean;
391
+ /** Why not, when it does not. */
392
+ readonly reason?: SourceRuntimeReason;
393
+ }
394
+ >
395
+ >
396
+ >
397
+ | undefined;
398
+ /**
399
+ * What it needs from a browser. Absent means "not declared": nothing is checked first.
400
+ * `secureContext: true` is checked before any request.
401
+ */
402
+ readonly needs?:
403
+ | {
404
+ /** Request headers the service must allow from a page. */
405
+ readonly headers?: readonly string[] | undefined;
406
+ /** Whether it needs a WebSocket. */
407
+ readonly websocket?: boolean | undefined;
408
+ /** Whether it needs a secure context (Web Crypto). */
409
+ readonly secureContext?: boolean | undefined;
410
+ }
411
+ | undefined;
412
+ /** Paces `ctx.fetch`: at most `requests` per `perMs`, and `concurrent` at once. */
413
+ readonly rateLimit?:
414
+ | {
415
+ /** At most this many requests per period. */
416
+ readonly requests: number;
417
+ /** The period, in milliseconds. */
418
+ readonly perMs: number;
419
+ /** At most this many requests at once. */
420
+ readonly concurrent?: number;
421
+ }
422
+ | undefined;
423
+ /** The optional features it has; default: from the methods present. */
424
+ readonly features?: readonly SourceFeature[] | undefined;
425
+ /**
426
+ * Upgrade params recorded by an older version.
427
+ * @param params - the old params
428
+ * @param fromVersion - the version they were recorded with
429
+ * @returns the params for the current version
430
+ */
431
+ readonly migrateParams?:
432
+ ((params: Record<string, unknown>, fromVersion: number) => Record<string, unknown>) | undefined;
433
+ /** Public examples to offer. */
434
+ readonly samples?: readonly SourceSample[] | undefined;
435
+ }
436
+
437
+ /**
438
+ * A request to fetch the neighborhood of some nodes. Experimental.
439
+ * @category Network sources
440
+ */
441
+ export interface ExpandRequest<P> {
442
+ /** The params the nodes were loaded with. */
443
+ readonly params: P;
444
+ /** The seed node ids. */
445
+ readonly ids: readonly NodeId[];
446
+ /** How many hops. @defaultValue 1 */
447
+ readonly depth?: number | undefined;
448
+ /** Which edges to follow. @defaultValue "both" */
449
+ readonly direction?: "out" | "in" | "both" | undefined;
450
+ /** At most this many new nodes. */
451
+ readonly limit?: number | undefined;
452
+ /** Only these relationship types. */
453
+ readonly relationshipTypes?: readonly string[] | undefined;
454
+ /** Nodes already loaded; an optimization only. */
455
+ readonly exclude?: readonly NodeId[] | undefined;
456
+ }
457
+
458
+ /**
459
+ * What `probe` answers: the params and credential work. Experimental.
460
+ * @category Network sources
461
+ */
462
+ export interface SourceProbe {
463
+ /** Always true; a failure throws its coded issue. */
464
+ readonly ok: true;
465
+ /** Facts about the server. */
466
+ readonly server?: Readonly<Record<string, string>> | undefined;
467
+ /** How big the graph is, when the service says. */
468
+ readonly counts?:
469
+ | {
470
+ /** How many nodes. */
471
+ readonly nodes?: number | undefined;
472
+ /** How many edges. */
473
+ readonly edges?: number | undefined;
474
+ /** How many bytes the download is. */
475
+ readonly bytes?: number | undefined;
476
+ }
477
+ | undefined;
478
+ }
479
+
480
+ /**
481
+ * A search of what a source holds. Experimental.
482
+ * @category Network sources
483
+ */
484
+ export interface SourceListQuery<P> {
485
+ /** Params narrowing the search. */
486
+ readonly params: Partial<P>;
487
+ /** Search text. */
488
+ readonly search?: string | undefined;
489
+ /** Where to resume. */
490
+ readonly cursor?: SourceCursor | undefined;
491
+ /** Items per page. */
492
+ readonly size?: number | undefined;
493
+ }
494
+
495
+ /**
496
+ * One item a search found. Experimental.
497
+ * @category Network sources
498
+ */
499
+ export interface SourceListItem {
500
+ /** The params that load it. */
501
+ readonly params: Readonly<Record<string, unknown>>;
502
+ /** Its name in the service; the consumer's data. */
503
+ readonly name: string;
504
+ /** Its node count, when known. */
505
+ readonly nodeCount?: number | undefined;
506
+ /** Its edge count, when known. */
507
+ readonly edgeCount?: number | undefined;
508
+ /** When it last changed, ISO-8601. */
509
+ readonly modified?: string | undefined;
510
+ }
511
+
512
+ /**
513
+ * A page of search results. Experimental.
514
+ * @category Network sources
515
+ */
516
+ export interface SourceListing {
517
+ /** The items. */
518
+ readonly items: readonly SourceListItem[];
519
+ /** Where the next page starts, or null. */
520
+ readonly next: SourceCursor | null;
521
+ /** The total, when the service says. */
522
+ readonly total?: number | undefined;
523
+ }
524
+
525
+ /**
526
+ * What lets a later call tell whether a source's data changed. Experimental.
527
+ * @category Network sources
528
+ */
529
+ export interface SourceValidators {
530
+ /** An HTTP ETag. */
531
+ readonly etag?: string | undefined;
532
+ /** An HTTP Last-Modified. */
533
+ readonly lastModified?: string | undefined;
534
+ /** The service's own modification time. */
535
+ readonly modified?: string | undefined;
536
+ /** The server's version. */
537
+ readonly serverVersion?: string | undefined;
538
+ /** SHA-256 of the canonical rows loaded. */
539
+ readonly contentHash?: string | undefined;
540
+ }
541
+
542
+ /**
543
+ * What `validate` answers. Experimental.
544
+ * @category Network sources
545
+ */
546
+ export interface SourceFreshness {
547
+ /** Whether the data changed. */
548
+ readonly status: "current" | "changed" | "unverifiable";
549
+ /** What told. */
550
+ readonly via?: "etag" | "modified" | "version" | "hash" | undefined;
551
+ /** When it changed, ISO-8601. */
552
+ readonly changedAt?: string | undefined;
553
+ /** The new validators. */
554
+ readonly validators: SourceValidators;
555
+ }
556
+
557
+ /**
558
+ * The `source` member of an ImportReport from a source load. Experimental.
559
+ * @category Network sources
560
+ */
561
+ export interface SourceReportInfo {
562
+ /** The source id. */
563
+ readonly id: string;
564
+ /** The source's descriptor version. */
565
+ readonly version: number;
566
+ /** The endpoint, origin and path only. */
567
+ readonly endpoint: string | null;
568
+ /** Requests sent. */
569
+ readonly requests: number;
570
+ /** Decoded response bytes read. */
571
+ readonly bytes: number;
572
+ /** Where to resume; null when the load is complete. Pass it as `cursor`. */
573
+ readonly next: SourceCursor | null;
574
+ /** Facts about the server. */
575
+ readonly server?: Readonly<Record<string, string>> | undefined;
576
+ /** What a metered service says is left. */
577
+ readonly budget?:
578
+ | {
579
+ /** What the service says is left. */
580
+ readonly remaining: number;
581
+ /** When it resets, in milliseconds from now. */
582
+ readonly resetMs?: number | undefined;
583
+ }
584
+ | undefined;
585
+ /** What lets a later call tell whether the data changed. */
586
+ readonly validators?: SourceValidators | undefined;
587
+ }
588
+
589
+ /**
590
+ * The read method of a `records` source: return a page of nodes and edges, or an async iterable
591
+ * of pages. Experimental.
592
+ * @category Network sources
593
+ */
594
+ export type RecordsFn<P> = (params: P, ctx: SourceContext) => Promise<RecordBatch> | AsyncIterable<RecordBatch>;
595
+ /**
596
+ * The read method of a `file` source: return a body the format importers read. Experimental.
597
+ * @category Network sources
598
+ */
599
+ export type FileFn<P> = (params: P, ctx: SourceContext) => Promise<SourceFile>;
600
+ /**
601
+ * The read method of an `import` source: write into the sink and return the report. Experimental.
602
+ * @category Network sources
603
+ */
604
+ export type ImportFn<P> = (params: P, sink: GraphSink, ctx: SourceContext) => Promise<ImportReport>;
605
+
606
+ /**
607
+ * What every source has beside its one read method. Experimental.
608
+ * @category Network sources
609
+ */
610
+ export interface SourceBase<P> {
611
+ /** Lowercase letters, digits and dashes. A separate name space from formats. */
612
+ readonly id: string;
613
+ /** What a form needs; optional for a source used only from code. */
614
+ readonly descriptor?: SourceDescriptor | undefined;
615
+ /** The node record's id field, when not `id`. */
616
+ readonly idKey?: string | undefined;
617
+ /** The edge record's source field, when not `source`. */
618
+ readonly sourceKey?: string | undefined;
619
+ /** The edge record's target field, when not `target`. */
620
+ readonly targetKey?: string | undefined;
621
+ /**
622
+ * Fetch the neighborhood of some nodes into the sink.
623
+ * @param request - the seeds and how far to go
624
+ * @param sink - where to write
625
+ * @param ctx - the context
626
+ * @returns the report
627
+ */
628
+ expand?(request: ExpandRequest<P>, sink: GraphSink, ctx: SourceContext): Promise<ImportReport>;
629
+ /**
630
+ * Check the params and the credential without loading.
631
+ * @param params - the params
632
+ * @param ctx - the context
633
+ * @returns what the service said
634
+ */
635
+ probe?(params: P, ctx: SourceContext): Promise<SourceProbe>;
636
+ /**
637
+ * Search what the source holds.
638
+ * @param query - the search
639
+ * @param ctx - the context
640
+ * @returns one page of results
641
+ */
642
+ list?(query: SourceListQuery<P>, ctx: SourceContext): Promise<SourceListing>;
643
+ /**
644
+ * Tell whether data loaded earlier changed.
645
+ * @param params - the params it was loaded with
646
+ * @param seen - the validators recorded then
647
+ * @param ctx - the context
648
+ * @returns whether it changed
649
+ */
650
+ validate?(params: P, seen: SourceValidators, ctx: SourceContext): Promise<SourceFreshness>;
651
+ }
652
+
653
+ /**
654
+ * A network source: an id, an optional descriptor, and exactly one of three read methods, simplest
655
+ * first: `records` (return nodes and edges, or an async iterable of pages), `file` (return a body
656
+ * the format importers read) or `import` (write into the sink yourself). Experimental.
657
+ * @category Network sources
658
+ */
659
+ export type GraphSource<P = Record<string, unknown>> =
660
+ | (SourceBase<P> & {
661
+ /** Return `{ nodes, edges }`, or an async iterable of such pages. */
662
+ readonly records: RecordsFn<P>;
663
+ /** Absent: a source has exactly one read method. */
664
+ readonly file?: never;
665
+ /** Absent: a source has exactly one read method. */
666
+ readonly import?: never;
667
+ })
668
+ | (SourceBase<P> & {
669
+ /** Return a file the format importers read. */
670
+ readonly file: FileFn<P>;
671
+ /** Absent: a source has exactly one read method. */
672
+ readonly records?: never;
673
+ /** Absent: a source has exactly one read method. */
674
+ readonly import?: never;
675
+ })
676
+ | (SourceBase<P> & {
677
+ /** Write into the sink. */
678
+ readonly import: ImportFn<P>;
679
+ /** Absent: a source has exactly one read method. */
680
+ readonly records?: never;
681
+ /** Absent: a source has exactly one read method. */
682
+ readonly file?: never;
683
+ });
684
+
685
+ /**
686
+ * A source registered by its descriptor, whose code loads on first use. Experimental.
687
+ * @category Network sources
688
+ */
689
+ export interface LazySource {
690
+ /** The source id. */
691
+ readonly id: string;
692
+ /** The descriptor, available without loading the code. */
693
+ readonly descriptor: SourceDescriptor;
694
+ /**
695
+ * Load the source.
696
+ * @returns the source
697
+ */
698
+ readonly load: () => Promise<GraphSource<never>>;
699
+ }
700
+
701
+ /**
702
+ * One registered source, as `listSources()` describes it. Experimental.
703
+ * @category Network sources
704
+ */
705
+ export interface SourceInfo {
706
+ /** The source id. */
707
+ readonly id: string;
708
+ /** Its descriptor (a bare one, `{ plainName: id, params: [] }`, for a source without one). */
709
+ readonly descriptor: SourceDescriptor;
710
+ /** Whether its code is loaded. */
711
+ readonly loaded: boolean;
712
+ }
713
+
714
+ /**
715
+ * The options of `loadFromSource()` and the other source functions. Experimental.
716
+ * @category Network sources
717
+ */
718
+ export interface LoadFromSourceOptions extends CommonImportOptions {
719
+ /** The service's address; required unless the source has a default. */
720
+ readonly endpoint?: string | URL | undefined;
721
+ /** The credential, sent only to the endpoint's origin or the credential's own `origins`. */
722
+ readonly credential?: Credential | undefined;
723
+ /** Where to resume a capped load: the earlier `report.source.next`. */
724
+ readonly cursor?: SourceCursor | null | undefined;
725
+ /** The caps. */
726
+ readonly limits?: SourceLimitOptions | undefined;
727
+ /** How to retry, or false never to. */
728
+ readonly retry?: RetryOptions | false | undefined;
729
+ /** Prepended to every node id, to keep two loads' ids apart. */
730
+ readonly idPrefix?: string | undefined;
731
+ /** Send a credential without TLS to a host that is not loopback. @defaultValue false */
732
+ readonly allowInsecure?: boolean | undefined;
733
+ /** The fetch to use instead of the global one (tests, recorded responses, Node agents). */
734
+ readonly fetch?: typeof fetch | undefined;
735
+ /** Sent as User-Agent in Node. No default string. */
736
+ readonly userAgent?: string | undefined;
737
+ /** Settings for the builder (loadFromSource and expandFromSource). */
738
+ readonly builder?: BuilderSeed | undefined;
739
+ /** Settings for the freeze (loadFromSource and expandFromSource). */
740
+ readonly freeze?: FreezeOptions | undefined;
741
+ }