@graphty/graph-io 0.3.46 → 0.3.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/dist/chunks/{approximations-wWjCRzKj.js → approximations-C2riR4NT.js} +2 -2
  2. package/dist/chunks/{approximations-wWjCRzKj.js.map → approximations-C2riR4NT.js.map} +1 -1
  3. package/dist/chunks/{block-DiGq58c3.js → block-Cu22ewuS.js} +92 -21
  4. package/dist/chunks/block-Cu22ewuS.js.map +1 -0
  5. package/dist/chunks/{choose--jM0yYCo.js → choose-Cdx6Enl2.js} +3 -3
  6. package/dist/chunks/{choose--jM0yYCo.js.map → choose-Cdx6Enl2.js.map} +1 -1
  7. package/dist/chunks/codes-CV_Bhcyi.js +153 -0
  8. package/dist/chunks/codes-CV_Bhcyi.js.map +1 -0
  9. package/dist/chunks/{constants-BKwqelYD.js → constants-D0LqcsLJ.js} +2 -2
  10. package/dist/chunks/{constants-BKwqelYD.js.map → constants-D0LqcsLJ.js.map} +1 -1
  11. package/dist/chunks/context-cgmmOxZ2.js +663 -0
  12. package/dist/chunks/context-cgmmOxZ2.js.map +1 -0
  13. package/dist/chunks/credentials-BiQsnMTb.js +347 -0
  14. package/dist/chunks/credentials-BiQsnMTb.js.map +1 -0
  15. package/dist/chunks/cx-export-BEeF6ymo.js +259 -0
  16. package/dist/chunks/cx-export-BEeF6ymo.js.map +1 -0
  17. package/dist/chunks/descriptor-BJ-W0Jd-.js +137 -0
  18. package/dist/chunks/descriptor-BJ-W0Jd-.js.map +1 -0
  19. package/dist/chunks/descriptor-C-YDhtsn.js +48 -0
  20. package/dist/chunks/descriptor-C-YDhtsn.js.map +1 -0
  21. package/dist/chunks/{emit-CwU8cUmG.js → emit-CD8xnY8s.js} +70 -10
  22. package/dist/chunks/emit-CD8xnY8s.js.map +1 -0
  23. package/dist/chunks/{escape-CgzxiYPg.js → escape-DH2Egt-l.js} +12 -12
  24. package/dist/chunks/{escape-CgzxiYPg.js.map → escape-DH2Egt-l.js.map} +1 -1
  25. package/dist/chunks/{export-BvqAXCKh.js → export-CZ7VRm4I.js} +53 -1443
  26. package/dist/chunks/export-CZ7VRm4I.js.map +1 -0
  27. package/dist/chunks/{exporter-DndFlGSa.js → exporter-BIdaoIgh.js} +7 -6
  28. package/dist/chunks/{exporter-DndFlGSa.js.map → exporter-BIdaoIgh.js.map} +1 -1
  29. package/dist/chunks/{exporter-CJgfhF-l.js → exporter-ChjL5fmP.js} +8 -7
  30. package/dist/chunks/{exporter-CJgfhF-l.js.map → exporter-ChjL5fmP.js.map} +1 -1
  31. package/dist/chunks/{exporter--Mk9gXCJ.js → exporter-Dcw7Ldtq.js} +6 -4
  32. package/dist/chunks/{exporter--Mk9gXCJ.js.map → exporter-Dcw7Ldtq.js.map} +1 -1
  33. package/dist/chunks/exporter-DtVU80Fa.js +1008 -0
  34. package/dist/chunks/exporter-DtVU80Fa.js.map +1 -0
  35. package/dist/chunks/{exporter-CrDWIyiq.js → exporter-bxxjOrDZ.js} +11 -9
  36. package/dist/chunks/{exporter-CrDWIyiq.js.map → exporter-bxxjOrDZ.js.map} +1 -1
  37. package/dist/chunks/format-BMS-1Nxb.js +64 -0
  38. package/dist/chunks/format-BMS-1Nxb.js.map +1 -0
  39. package/dist/chunks/{generic-Dq1ntt9q.js → generic-CP6YD34u.js} +4 -4
  40. package/dist/chunks/{generic-Dq1ntt9q.js.map → generic-CP6YD34u.js.map} +1 -1
  41. package/dist/chunks/{importer-DiZRmOQG.js → importer-B87_fmVx.js} +13 -17
  42. package/dist/chunks/importer-B87_fmVx.js.map +1 -0
  43. package/dist/chunks/{importer-BSvfrX_h.js → importer-Bji2MeWr.js} +18 -1014
  44. package/dist/chunks/importer-Bji2MeWr.js.map +1 -0
  45. package/dist/chunks/{importer-COTK9Tsl.js → importer-CB_zV5_L.js} +14 -11
  46. package/dist/chunks/importer-CB_zV5_L.js.map +1 -0
  47. package/dist/chunks/{importer-e6LGpqHB.js → importer-CVT-JyDE.js} +12 -9
  48. package/dist/chunks/importer-CVT-JyDE.js.map +1 -0
  49. package/dist/chunks/{importer-yh_aBCU6.js → importer-Cyy6UseH.js} +7 -6
  50. package/dist/chunks/{importer-yh_aBCU6.js.map → importer-Cyy6UseH.js.map} +1 -1
  51. package/dist/chunks/{importer-iFYPEKaJ.js → importer-DPZDN40-.js} +14 -10
  52. package/dist/chunks/{importer-iFYPEKaJ.js.map → importer-DPZDN40-.js.map} +1 -1
  53. package/dist/chunks/{importer-CMmeMWlC.js → importer-e3huMZbm.js} +8 -260
  54. package/dist/chunks/importer-e3huMZbm.js.map +1 -0
  55. package/dist/chunks/input-Ccg9I22A.js +1397 -0
  56. package/dist/chunks/input-Ccg9I22A.js.map +1 -0
  57. package/dist/chunks/{json-elements-DJZRZ6jd.js → json-elements-By172SVq.js} +4 -4
  58. package/dist/chunks/{json-elements-DJZRZ6jd.js.map → json-elements-By172SVq.js.map} +1 -1
  59. package/dist/chunks/{lexicon-CT69Kd87.js → lexicon-u2SI5xcx.js} +19 -5
  60. package/dist/chunks/lexicon-u2SI5xcx.js.map +1 -0
  61. package/dist/chunks/{ontology-export-G4MqRdux.js → ontology-export-BwgMyuF0.js} +4 -3
  62. package/dist/chunks/{ontology-export-G4MqRdux.js.map → ontology-export-BwgMyuF0.js.map} +1 -1
  63. package/dist/chunks/{records-CiaWZrFH.js → records-Cgvxz-Vx.js} +2 -2
  64. package/dist/chunks/{records-CiaWZrFH.js.map → records-Cgvxz-Vx.js.map} +1 -1
  65. package/dist/chunks/{format-BpQBx8MZ.js → report-CgdsL9Hb.js} +72 -129
  66. package/dist/chunks/report-CgdsL9Hb.js.map +1 -0
  67. package/dist/chunks/sigv4-LkAzsLAu.js +247 -0
  68. package/dist/chunks/sigv4-LkAzsLAu.js.map +1 -0
  69. package/dist/chunks/{styles-BQnsga7p.js → styles-CaABMoO1.js} +76 -43
  70. package/dist/chunks/styles-CaABMoO1.js.map +1 -0
  71. package/dist/chunks/{styles-D3fRphrO.js → styles-P_gmFAOi.js} +101 -21
  72. package/dist/chunks/styles-P_gmFAOi.js.map +1 -0
  73. package/dist/chunks/{styles-yed-BF5x3_Y5.js → styles-yed-Cs1nmrjn.js} +60 -20
  74. package/dist/chunks/styles-yed-Cs1nmrjn.js.map +1 -0
  75. package/dist/chunks/{text-CzJNFOS9.js → text-BuKQVMz2.js} +2 -2
  76. package/dist/chunks/{text-CzJNFOS9.js.map → text-BuKQVMz2.js.map} +1 -1
  77. package/dist/chunks/{writer-DMKvthQE.js → writer-DvHTl36J.js} +5 -4
  78. package/dist/chunks/writer-DvHTl36J.js.map +1 -0
  79. package/dist/csv.js +7 -5
  80. package/dist/csv.js.map +1 -1
  81. package/dist/cx.js +5 -4
  82. package/dist/cx.js.map +1 -1
  83. package/dist/cx2.js +2 -2
  84. package/dist/cys.js +1 -1
  85. package/dist/dot.js +2 -2
  86. package/dist/gexf.js +7 -5
  87. package/dist/gexf.js.map +1 -1
  88. package/dist/gml.js +16 -13
  89. package/dist/gml.js.map +1 -1
  90. package/dist/graph-io.js +1181 -224
  91. package/dist/graph-io.js.map +1 -1
  92. package/dist/graphml.js +3 -3
  93. package/dist/json.js +1 -1
  94. package/dist/neo4j.js +6 -4
  95. package/dist/neo4j.js.map +1 -1
  96. package/dist/obo.js +1 -1
  97. package/dist/pajek.js +1 -1
  98. package/dist/sources-cypher.d.ts +1 -0
  99. package/dist/sources-cypher.js +1236 -0
  100. package/dist/sources-cypher.js.map +1 -0
  101. package/dist/sources-ndex.d.ts +1 -0
  102. package/dist/sources-ndex.js +278 -0
  103. package/dist/sources-ndex.js.map +1 -0
  104. package/dist/sources-rest.d.ts +1 -0
  105. package/dist/sources-rest.js +1367 -0
  106. package/dist/sources-rest.js.map +1 -0
  107. package/dist/src/common/report.d.ts +6 -3
  108. package/dist/src/common/report.d.ts.map +1 -1
  109. package/dist/src/common/report.js +15 -9
  110. package/dist/src/common/report.js.map +1 -1
  111. package/dist/src/formats/cx/styles.d.ts.map +1 -1
  112. package/dist/src/formats/cx/styles.js +1 -0
  113. package/dist/src/formats/cx/styles.js.map +1 -1
  114. package/dist/src/formats/dot/styles.d.ts.map +1 -1
  115. package/dist/src/formats/dot/styles.js +3 -1
  116. package/dist/src/formats/dot/styles.js.map +1 -1
  117. package/dist/src/formats/gexf/styles.d.ts +29 -12
  118. package/dist/src/formats/gexf/styles.d.ts.map +1 -1
  119. package/dist/src/formats/gexf/styles.js +160 -31
  120. package/dist/src/formats/gexf/styles.js.map +1 -1
  121. package/dist/src/formats/gml/styles.d.ts.map +1 -1
  122. package/dist/src/formats/gml/styles.js +5 -4
  123. package/dist/src/formats/gml/styles.js.map +1 -1
  124. package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -1
  125. package/dist/src/formats/graphml/styles-plain.js +3 -3
  126. package/dist/src/formats/graphml/styles-plain.js.map +1 -1
  127. package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -1
  128. package/dist/src/formats/graphml/styles-yed.js +89 -19
  129. package/dist/src/formats/graphml/styles-yed.js.map +1 -1
  130. package/dist/src/formats/pajek/styles.d.ts.map +1 -1
  131. package/dist/src/formats/pajek/styles.js +1 -0
  132. package/dist/src/formats/pajek/styles.js.map +1 -1
  133. package/dist/src/formats/xgmml/styles.d.ts.map +1 -1
  134. package/dist/src/formats/xgmml/styles.js +1 -0
  135. package/dist/src/formats/xgmml/styles.js.map +1 -1
  136. package/dist/src/index.d.ts +8 -1
  137. package/dist/src/index.d.ts.map +1 -1
  138. package/dist/src/index.js +9 -1
  139. package/dist/src/index.js.map +1 -1
  140. package/dist/src/registry.d.ts +173 -1
  141. package/dist/src/registry.d.ts.map +1 -1
  142. package/dist/src/registry.js +196 -1
  143. package/dist/src/registry.js.map +1 -1
  144. package/dist/src/sources/builtins.d.ts +11 -0
  145. package/dist/src/sources/builtins.d.ts.map +1 -0
  146. package/dist/src/sources/builtins.js +47 -0
  147. package/dist/src/sources/builtins.js.map +1 -0
  148. package/dist/src/sources/codes.d.ts +230 -0
  149. package/dist/src/sources/codes.d.ts.map +1 -0
  150. package/dist/src/sources/codes.js +58 -0
  151. package/dist/src/sources/codes.js.map +1 -0
  152. package/dist/src/sources/context.d.ts +112 -0
  153. package/dist/src/sources/context.d.ts.map +1 -0
  154. package/dist/src/sources/context.js +739 -0
  155. package/dist/src/sources/context.js.map +1 -0
  156. package/dist/src/sources/credentials.d.ts +179 -0
  157. package/dist/src/sources/credentials.d.ts.map +1 -0
  158. package/dist/src/sources/credentials.js +301 -0
  159. package/dist/src/sources/credentials.js.map +1 -0
  160. package/dist/src/sources/cypher/descriptor.d.ts +21 -0
  161. package/dist/src/sources/cypher/descriptor.d.ts.map +1 -0
  162. package/dist/src/sources/cypher/descriptor.js +119 -0
  163. package/dist/src/sources/cypher/descriptor.js.map +1 -0
  164. package/dist/src/sources/cypher/flatten.d.ts +72 -0
  165. package/dist/src/sources/cypher/flatten.d.ts.map +1 -0
  166. package/dist/src/sources/cypher/flatten.js +279 -0
  167. package/dist/src/sources/cypher/flatten.js.map +1 -0
  168. package/dist/src/sources/cypher/index.d.ts +33 -0
  169. package/dist/src/sources/cypher/index.d.ts.map +1 -0
  170. package/dist/src/sources/cypher/index.js +405 -0
  171. package/dist/src/sources/cypher/index.js.map +1 -0
  172. package/dist/src/sources/cypher/params.d.ts +40 -0
  173. package/dist/src/sources/cypher/params.d.ts.map +1 -0
  174. package/dist/src/sources/cypher/params.js +6 -0
  175. package/dist/src/sources/cypher/params.js.map +1 -0
  176. package/dist/src/sources/cypher/profiles.d.ts +44 -0
  177. package/dist/src/sources/cypher/profiles.d.ts.map +1 -0
  178. package/dist/src/sources/cypher/profiles.js +61 -0
  179. package/dist/src/sources/cypher/profiles.js.map +1 -0
  180. package/dist/src/sources/cypher/query-builder.d.ts +106 -0
  181. package/dist/src/sources/cypher/query-builder.d.ts.map +1 -0
  182. package/dist/src/sources/cypher/query-builder.js +236 -0
  183. package/dist/src/sources/cypher/query-builder.js.map +1 -0
  184. package/dist/src/sources/cypher/transports/bolt.d.ts +21 -0
  185. package/dist/src/sources/cypher/transports/bolt.d.ts.map +1 -0
  186. package/dist/src/sources/cypher/transports/bolt.js +185 -0
  187. package/dist/src/sources/cypher/transports/bolt.js.map +1 -0
  188. package/dist/src/sources/cypher/transports/neptune-analytics.d.ts +15 -0
  189. package/dist/src/sources/cypher/transports/neptune-analytics.d.ts.map +1 -0
  190. package/dist/src/sources/cypher/transports/neptune-analytics.js +38 -0
  191. package/dist/src/sources/cypher/transports/neptune-analytics.js.map +1 -0
  192. package/dist/src/sources/cypher/transports/neptune-https.d.ts +31 -0
  193. package/dist/src/sources/cypher/transports/neptune-https.d.ts.map +1 -0
  194. package/dist/src/sources/cypher/transports/neptune-https.js +104 -0
  195. package/dist/src/sources/cypher/transports/neptune-https.js.map +1 -0
  196. package/dist/src/sources/cypher/transports/query-api.d.ts +14 -0
  197. package/dist/src/sources/cypher/transports/query-api.d.ts.map +1 -0
  198. package/dist/src/sources/cypher/transports/query-api.js +80 -0
  199. package/dist/src/sources/cypher/transports/query-api.js.map +1 -0
  200. package/dist/src/sources/cypher/transports/transport.d.ts +78 -0
  201. package/dist/src/sources/cypher/transports/transport.d.ts.map +1 -0
  202. package/dist/src/sources/cypher/transports/transport.js +77 -0
  203. package/dist/src/sources/cypher/transports/transport.js.map +1 -0
  204. package/dist/src/sources/cypher/types-map.d.ts +91 -0
  205. package/dist/src/sources/cypher/types-map.d.ts.map +1 -0
  206. package/dist/src/sources/cypher/types-map.js +306 -0
  207. package/dist/src/sources/cypher/types-map.js.map +1 -0
  208. package/dist/src/sources/define.d.ts +47 -0
  209. package/dist/src/sources/define.d.ts.map +1 -0
  210. package/dist/src/sources/define.js +173 -0
  211. package/dist/src/sources/define.js.map +1 -0
  212. package/dist/src/sources/fail.d.ts +33 -0
  213. package/dist/src/sources/fail.d.ts.map +1 -0
  214. package/dist/src/sources/fail.js +49 -0
  215. package/dist/src/sources/fail.js.map +1 -0
  216. package/dist/src/sources/ids.d.ts +64 -0
  217. package/dist/src/sources/ids.d.ts.map +1 -0
  218. package/dist/src/sources/ids.js +64 -0
  219. package/dist/src/sources/ids.js.map +1 -0
  220. package/dist/src/sources/ndex/client.d.ts +31 -0
  221. package/dist/src/sources/ndex/client.d.ts.map +1 -0
  222. package/dist/src/sources/ndex/client.js +90 -0
  223. package/dist/src/sources/ndex/client.js.map +1 -0
  224. package/dist/src/sources/ndex/descriptor.d.ts +10 -0
  225. package/dist/src/sources/ndex/descriptor.d.ts.map +1 -0
  226. package/dist/src/sources/ndex/descriptor.js +55 -0
  227. package/dist/src/sources/ndex/descriptor.js.map +1 -0
  228. package/dist/src/sources/ndex/expand.d.ts +20 -0
  229. package/dist/src/sources/ndex/expand.d.ts.map +1 -0
  230. package/dist/src/sources/ndex/expand.js +87 -0
  231. package/dist/src/sources/ndex/expand.js.map +1 -0
  232. package/dist/src/sources/ndex/index.d.ts +25 -0
  233. package/dist/src/sources/ndex/index.d.ts.map +1 -0
  234. package/dist/src/sources/ndex/index.js +191 -0
  235. package/dist/src/sources/ndex/index.js.map +1 -0
  236. package/dist/src/sources/ndex/params.d.ts +17 -0
  237. package/dist/src/sources/ndex/params.d.ts.map +1 -0
  238. package/dist/src/sources/ndex/params.js +6 -0
  239. package/dist/src/sources/ndex/params.js.map +1 -0
  240. package/dist/src/sources/ndex/share-url.d.ts +40 -0
  241. package/dist/src/sources/ndex/share-url.d.ts.map +1 -0
  242. package/dist/src/sources/ndex/share-url.js +64 -0
  243. package/dist/src/sources/ndex/share-url.js.map +1 -0
  244. package/dist/src/sources/params.d.ts +28 -0
  245. package/dist/src/sources/params.d.ts.map +1 -0
  246. package/dist/src/sources/params.js +6 -0
  247. package/dist/src/sources/params.js.map +1 -0
  248. package/dist/src/sources/registry.d.ts +118 -0
  249. package/dist/src/sources/registry.d.ts.map +1 -0
  250. package/dist/src/sources/registry.js +193 -0
  251. package/dist/src/sources/registry.js.map +1 -0
  252. package/dist/src/sources/rest/descriptor.d.ts +16 -0
  253. package/dist/src/sources/rest/descriptor.d.ts.map +1 -0
  254. package/dist/src/sources/rest/descriptor.js +71 -0
  255. package/dist/src/sources/rest/descriptor.js.map +1 -0
  256. package/dist/src/sources/rest/index.d.ts +14 -0
  257. package/dist/src/sources/rest/index.d.ts.map +1 -0
  258. package/dist/src/sources/rest/index.js +13 -0
  259. package/dist/src/sources/rest/index.js.map +1 -0
  260. package/dist/src/sources/rest/mapping.d.ts +30 -0
  261. package/dist/src/sources/rest/mapping.d.ts.map +1 -0
  262. package/dist/src/sources/rest/mapping.js +362 -0
  263. package/dist/src/sources/rest/mapping.js.map +1 -0
  264. package/dist/src/sources/rest/openalex.d.ts +27 -0
  265. package/dist/src/sources/rest/openalex.d.ts.map +1 -0
  266. package/dist/src/sources/rest/openalex.js +269 -0
  267. package/dist/src/sources/rest/openalex.js.map +1 -0
  268. package/dist/src/sources/rest/paging.d.ts +53 -0
  269. package/dist/src/sources/rest/paging.d.ts.map +1 -0
  270. package/dist/src/sources/rest/paging.js +138 -0
  271. package/dist/src/sources/rest/paging.js.map +1 -0
  272. package/dist/src/sources/rest/params.d.ts +216 -0
  273. package/dist/src/sources/rest/params.d.ts.map +1 -0
  274. package/dist/src/sources/rest/params.js +7 -0
  275. package/dist/src/sources/rest/params.js.map +1 -0
  276. package/dist/src/sources/rest/records.d.ts +41 -0
  277. package/dist/src/sources/rest/records.d.ts.map +1 -0
  278. package/dist/src/sources/rest/records.js +240 -0
  279. package/dist/src/sources/rest/records.js.map +1 -0
  280. package/dist/src/sources/rest/samples/deps-dev.d.ts +10 -0
  281. package/dist/src/sources/rest/samples/deps-dev.d.ts.map +1 -0
  282. package/dist/src/sources/rest/samples/deps-dev.js +47 -0
  283. package/dist/src/sources/rest/samples/deps-dev.js.map +1 -0
  284. package/dist/src/sources/rest/samples/string.d.ts +9 -0
  285. package/dist/src/sources/rest/samples/string.d.ts.map +1 -0
  286. package/dist/src/sources/rest/samples/string.js +42 -0
  287. package/dist/src/sources/rest/samples/string.js.map +1 -0
  288. package/dist/src/sources/rest/selectors.d.ts +41 -0
  289. package/dist/src/sources/rest/selectors.d.ts.map +1 -0
  290. package/dist/src/sources/rest/selectors.js +81 -0
  291. package/dist/src/sources/rest/selectors.js.map +1 -0
  292. package/dist/src/sources/rest/source.d.ts +67 -0
  293. package/dist/src/sources/rest/source.d.ts.map +1 -0
  294. package/dist/src/sources/rest/source.js +635 -0
  295. package/dist/src/sources/rest/source.js.map +1 -0
  296. package/dist/src/sources/rest/templates.d.ts +38 -0
  297. package/dist/src/sources/rest/templates.d.ts.map +1 -0
  298. package/dist/src/sources/rest/templates.js +125 -0
  299. package/dist/src/sources/rest/templates.js.map +1 -0
  300. package/dist/src/sources/run.d.ts +93 -0
  301. package/dist/src/sources/run.d.ts.map +1 -0
  302. package/dist/src/sources/run.js +673 -0
  303. package/dist/src/sources/run.js.map +1 -0
  304. package/dist/src/sources/sha256.d.ts +12 -0
  305. package/dist/src/sources/sha256.d.ts.map +1 -0
  306. package/dist/src/sources/sha256.js +95 -0
  307. package/dist/src/sources/sha256.js.map +1 -0
  308. package/dist/src/sources/sigv4.d.ts +24 -0
  309. package/dist/src/sources/sigv4.d.ts.map +1 -0
  310. package/dist/src/sources/sigv4.js +182 -0
  311. package/dist/src/sources/sigv4.js.map +1 -0
  312. package/dist/src/sources/testing.d.ts +96 -0
  313. package/dist/src/sources/testing.d.ts.map +1 -0
  314. package/dist/src/sources/testing.js +138 -0
  315. package/dist/src/sources/testing.js.map +1 -0
  316. package/dist/src/sources/types.d.ts +665 -0
  317. package/dist/src/sources/types.d.ts.map +1 -0
  318. package/dist/src/sources/types.js +10 -0
  319. package/dist/src/sources/types.js.map +1 -0
  320. package/dist/src/styles/canon/enums.d.ts.map +1 -1
  321. package/dist/src/styles/canon/enums.js +1 -0
  322. package/dist/src/styles/canon/enums.js.map +1 -1
  323. package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
  324. package/dist/src/styles/cyjs/cascade.js +68 -2
  325. package/dist/src/styles/cyjs/cascade.js.map +1 -1
  326. package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -1
  327. package/dist/src/styles/cyjs/defaults-table.js +2 -0
  328. package/dist/src/styles/cyjs/defaults-table.js.map +1 -1
  329. package/dist/src/styles/cyjs/emit.d.ts.map +1 -1
  330. package/dist/src/styles/cyjs/emit.js +18 -7
  331. package/dist/src/styles/cyjs/emit.js.map +1 -1
  332. package/dist/src/styles/cyjs/mappers.d.ts +4 -1
  333. package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
  334. package/dist/src/styles/cyjs/mappers.js +2 -0
  335. package/dist/src/styles/cyjs/mappers.js.map +1 -1
  336. package/dist/src/styles/cytoscape/emit.d.ts.map +1 -1
  337. package/dist/src/styles/cytoscape/emit.js +59 -7
  338. package/dist/src/styles/cytoscape/emit.js.map +1 -1
  339. package/dist/src/styles/cytoscape/lexicon.d.ts +6 -0
  340. package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -1
  341. package/dist/src/styles/cytoscape/lexicon.js +26 -2
  342. package/dist/src/styles/cytoscape/lexicon.js.map +1 -1
  343. package/dist/src/styles/cytoscape/resolve.d.ts +4 -1
  344. package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -1
  345. package/dist/src/styles/cytoscape/resolve.js +10 -6
  346. package/dist/src/styles/cytoscape/resolve.js.map +1 -1
  347. package/dist/src/styles/cytoscape/translate.d.ts.map +1 -1
  348. package/dist/src/styles/cytoscape/translate.js +10 -10
  349. package/dist/src/styles/cytoscape/translate.js.map +1 -1
  350. package/dist/src/styles/defaults.d.ts +30 -0
  351. package/dist/src/styles/defaults.d.ts.map +1 -1
  352. package/dist/src/styles/defaults.js +45 -4
  353. package/dist/src/styles/defaults.js.map +1 -1
  354. package/dist/src/styles/io/block.d.ts.map +1 -1
  355. package/dist/src/styles/io/block.js +9 -0
  356. package/dist/src/styles/io/block.js.map +1 -1
  357. package/dist/src/styles/io/writer.d.ts.map +1 -1
  358. package/dist/src/styles/io/writer.js +7 -3
  359. package/dist/src/styles/io/writer.js.map +1 -1
  360. package/dist/src/styles/plan/resolve.d.ts +2 -1
  361. package/dist/src/styles/plan/resolve.d.ts.map +1 -1
  362. package/dist/src/styles/plan/resolve.js +13 -2
  363. package/dist/src/styles/plan/resolve.js.map +1 -1
  364. package/dist/src/styles/types.d.ts +19 -2
  365. package/dist/src/styles/types.d.ts.map +1 -1
  366. package/dist/src/styles/vocabulary.d.ts.map +1 -1
  367. package/dist/src/styles/vocabulary.js +15 -1
  368. package/dist/src/styles/vocabulary.js.map +1 -1
  369. package/dist/src/types.d.ts +19 -5
  370. package/dist/src/types.d.ts.map +1 -1
  371. package/dist/src/types.js.map +1 -1
  372. package/dist/styles.js +11 -11
  373. package/dist/xgmml.js +3 -3
  374. package/docs/samples/people.json +6 -0
  375. package/package.json +29 -4
  376. package/src/common/report.ts +27 -7
  377. package/src/formats/cx/styles.ts +1 -0
  378. package/src/formats/dot/styles.ts +3 -1
  379. package/src/formats/gexf/styles.ts +185 -37
  380. package/src/formats/gml/styles.ts +5 -4
  381. package/src/formats/graphml/styles-plain.ts +3 -9
  382. package/src/formats/graphml/styles-yed.ts +93 -20
  383. package/src/formats/pajek/styles.ts +1 -0
  384. package/src/formats/xgmml/styles.ts +1 -0
  385. package/src/index.ts +90 -0
  386. package/src/registry.ts +326 -1
  387. package/src/sources/builtins.ts +56 -0
  388. package/src/sources/codes.ts +235 -0
  389. package/src/sources/context.ts +893 -0
  390. package/src/sources/credentials.ts +409 -0
  391. package/src/sources/cypher/descriptor.ts +125 -0
  392. package/src/sources/cypher/flatten.ts +323 -0
  393. package/src/sources/cypher/index.ts +498 -0
  394. package/src/sources/cypher/params.ts +41 -0
  395. package/src/sources/cypher/profiles.ts +78 -0
  396. package/src/sources/cypher/query-builder.ts +294 -0
  397. package/src/sources/cypher/transports/bolt.ts +228 -0
  398. package/src/sources/cypher/transports/neptune-analytics.ts +41 -0
  399. package/src/sources/cypher/transports/neptune-https.ts +122 -0
  400. package/src/sources/cypher/transports/query-api.ts +100 -0
  401. package/src/sources/cypher/transports/transport.ts +139 -0
  402. package/src/sources/cypher/types-map.ts +418 -0
  403. package/src/sources/define.ts +195 -0
  404. package/src/sources/fail.ts +70 -0
  405. package/src/sources/ids.ts +74 -0
  406. package/src/sources/ndex/client.ts +102 -0
  407. package/src/sources/ndex/descriptor.ts +64 -0
  408. package/src/sources/ndex/expand.ts +100 -0
  409. package/src/sources/ndex/index.ts +235 -0
  410. package/src/sources/ndex/params.ts +17 -0
  411. package/src/sources/ndex/share-url.ts +84 -0
  412. package/src/sources/params.ts +29 -0
  413. package/src/sources/registry.ts +325 -0
  414. package/src/sources/rest/descriptor.ts +74 -0
  415. package/src/sources/rest/index.ts +22 -0
  416. package/src/sources/rest/mapping.ts +401 -0
  417. package/src/sources/rest/openalex.ts +288 -0
  418. package/src/sources/rest/paging.ts +180 -0
  419. package/src/sources/rest/params.ts +243 -0
  420. package/src/sources/rest/records.ts +289 -0
  421. package/src/sources/rest/samples/deps-dev.ts +49 -0
  422. package/src/sources/rest/samples/string.ts +44 -0
  423. package/src/sources/rest/selectors.ts +91 -0
  424. package/src/sources/rest/source.ts +760 -0
  425. package/src/sources/rest/templates.ts +151 -0
  426. package/src/sources/run.ts +793 -0
  427. package/src/sources/sha256.ts +99 -0
  428. package/src/sources/sigv4.ts +207 -0
  429. package/src/sources/testing.ts +210 -0
  430. package/src/sources/types.ts +741 -0
  431. package/src/styles/canon/enums.ts +1 -0
  432. package/src/styles/cyjs/cascade.ts +81 -2
  433. package/src/styles/cyjs/defaults-table.ts +2 -0
  434. package/src/styles/cyjs/emit.ts +18 -7
  435. package/src/styles/cyjs/mappers.ts +6 -1
  436. package/src/styles/cytoscape/emit.ts +61 -7
  437. package/src/styles/cytoscape/lexicon.ts +28 -2
  438. package/src/styles/cytoscape/resolve.ts +22 -6
  439. package/src/styles/cytoscape/translate.ts +11 -11
  440. package/src/styles/defaults.ts +93 -4
  441. package/src/styles/io/block.ts +10 -0
  442. package/src/styles/io/writer.ts +8 -3
  443. package/src/styles/plan/resolve.ts +14 -2
  444. package/src/styles/types.ts +28 -2
  445. package/src/styles/vocabulary.ts +15 -1
  446. package/src/types.ts +19 -5
  447. package/dist/chunks/block-DiGq58c3.js.map +0 -1
  448. package/dist/chunks/emit-CwU8cUmG.js.map +0 -1
  449. package/dist/chunks/export-BvqAXCKh.js.map +0 -1
  450. package/dist/chunks/format-BpQBx8MZ.js.map +0 -1
  451. package/dist/chunks/importer-BSvfrX_h.js.map +0 -1
  452. package/dist/chunks/importer-CMmeMWlC.js.map +0 -1
  453. package/dist/chunks/importer-COTK9Tsl.js.map +0 -1
  454. package/dist/chunks/importer-DiZRmOQG.js.map +0 -1
  455. package/dist/chunks/importer-e6LGpqHB.js.map +0 -1
  456. package/dist/chunks/lexicon-CT69Kd87.js.map +0 -1
  457. package/dist/chunks/styles-BQnsga7p.js.map +0 -1
  458. package/dist/chunks/styles-D3fRphrO.js.map +0 -1
  459. package/dist/chunks/styles-yed-BF5x3_Y5.js.map +0 -1
  460. package/dist/chunks/writer-DMKvthQE.js.map +0 -1
@@ -0,0 +1,119 @@
1
+ /**
2
+ * The descriptors of the Cypher source and its presets: catalog data, available without loading
3
+ * the sources' code.
4
+ */
5
+ /** The parameters every Cypher source shares. */
6
+ const CYPHER_PARAMS = [
7
+ { name: "query", plainName: "Query", type: "query", language: "cypher" },
8
+ {
9
+ name: "mode",
10
+ plainName: "Mode",
11
+ type: "enum",
12
+ values: [
13
+ { value: "query", label: "Query" },
14
+ { value: "all", label: "Everything" },
15
+ { value: "neighborhood", label: "Neighborhood" },
16
+ ],
17
+ },
18
+ { name: "ids", plainName: "Seed ids", type: "node-id" },
19
+ { name: "depth", plainName: "Depth", type: "integer", default: 1, min: 1, max: 10 },
20
+ { name: "labels", plainName: "Labels", type: "string", role: "filter", advanced: true },
21
+ { name: "relationshipTypes", plainName: "Relationship types", type: "string", role: "filter", advanced: true },
22
+ { name: "idProperty", plainName: "Id property", type: "string", advanced: true },
23
+ { name: "database", plainName: "Database", type: "string" },
24
+ {
25
+ name: "long",
26
+ plainName: "Large integers",
27
+ type: "enum",
28
+ advanced: true,
29
+ values: [
30
+ { value: "f64", label: "Number" },
31
+ { value: "string", label: "Text" },
32
+ ],
33
+ },
34
+ { name: "countFirst", plainName: "Count first", type: "boolean", advanced: true },
35
+ { name: "pageSize", plainName: "Page size", type: "integer", default: 1000, min: 1, max: 100000, advanced: true },
36
+ ];
37
+ /** The transport parameter of the generic source. */
38
+ const TRANSPORT_PARAM = {
39
+ name: "transport",
40
+ plainName: "Transport",
41
+ type: "enum",
42
+ values: [
43
+ { value: "query-api", label: "Neo4j Query API" },
44
+ { value: "bolt", label: "Bolt" },
45
+ { value: "neptune-https", label: "Neptune Database" },
46
+ { value: "neptune-analytics", label: "Neptune Analytics" },
47
+ ],
48
+ };
49
+ /**
50
+ * The descriptor of the generic `cypher` source. Experimental.
51
+ * @category Network sources
52
+ */
53
+ export const CYPHER_DESCRIPTOR = Object.freeze({
54
+ plainName: "Cypher database",
55
+ kind: "database",
56
+ version: 1,
57
+ auth: ["basic", "bearer", "aws-sigv4"],
58
+ authRequired: "optional",
59
+ params: [...CYPHER_PARAMS, TRANSPORT_PARAM],
60
+ });
61
+ /**
62
+ * The descriptor of the `neo4j` preset. Experimental.
63
+ * @category Network sources
64
+ */
65
+ export const NEO4J_DESCRIPTOR = Object.freeze({
66
+ plainName: "Neo4j",
67
+ kind: "database",
68
+ version: 1,
69
+ auth: ["basic", "bearer"],
70
+ authRequired: "optional",
71
+ params: [
72
+ ...CYPHER_PARAMS,
73
+ {
74
+ // no default: a bolt: or bolt+s: endpoint picks Bolt, any other the Query API
75
+ ...TRANSPORT_PARAM,
76
+ values: TRANSPORT_PARAM.values?.filter((v) => v.value === "query-api" || v.value === "bolt"),
77
+ },
78
+ ],
79
+ samples: [
80
+ {
81
+ id: "neo4j-movies",
82
+ plainName: "Neo4j demo: movies",
83
+ endpoint: "https://demo.neo4jlabs.com:7473",
84
+ params: { database: "movies", mode: "all" },
85
+ publicLogin: { username: "movies", password: "movies" }, // NOSONAR(S2068): the public login Neo4j publishes for its demo server
86
+ counts: { nodes: 171, edges: 253 },
87
+ },
88
+ {
89
+ id: "hetionet",
90
+ plainName: "Hetionet",
91
+ endpoint: "bolt+s://neo4j.het.io:7687",
92
+ params: { transport: "bolt", mode: "neighborhood", idProperty: "name", ids: ["Metformin"], depth: 1 },
93
+ counts: { nodes: 47031, edges: 2250197 },
94
+ whole: false,
95
+ },
96
+ ],
97
+ });
98
+ /**
99
+ * The descriptor of the `neptune` preset. Experimental.
100
+ * @category Network sources
101
+ */
102
+ export const NEPTUNE_DESCRIPTOR = Object.freeze({
103
+ plainName: "Amazon Neptune",
104
+ kind: "database",
105
+ version: 1,
106
+ auth: ["aws-sigv4"],
107
+ authRequired: "optional",
108
+ params: [
109
+ ...CYPHER_PARAMS,
110
+ {
111
+ // no default: a neptune-graph host picks Neptune Analytics, any other Neptune Database
112
+ ...TRANSPORT_PARAM,
113
+ values: TRANSPORT_PARAM.values?.filter((v) => v.value.startsWith("neptune")),
114
+ },
115
+ ],
116
+ // Neptune sends no CORS headers (Database), or is not shown to (Analytics)
117
+ runtimes: { browser: { supported: false, reason: "cors" }, worker: { supported: false, reason: "cors" } },
118
+ });
119
+ //# sourceMappingURL=descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../../../src/sources/cypher/descriptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * The one result flattener of the Cypher source (design section 5): every node and relationship a
3
+ * result holds -- in a column, a path, a list or a map -- is collected once by its element id, and
4
+ * written to the sink as nodes (labels in the `labels` column, as the neo4j CSV importer has them)
5
+ * and directed edges (type in `type`, element id in `id`). A result of scalars only is
6
+ * E_SOURCE_NOT_A_GRAPH.
7
+ */
8
+ import { type GraphSink } from "@graphty/graph-format";
9
+ import { type ImportReportBuilder } from "../../common/report.js";
10
+ import { GraphNode, GraphRel } from "./types-map.js";
11
+ /** One query's result, every value already mapped. */
12
+ export interface QueryResult {
13
+ /** The column names. */
14
+ readonly fields: readonly string[];
15
+ /** The rows, one value per column. */
16
+ readonly rows: readonly (readonly unknown[])[];
17
+ }
18
+ /** The nodes, relationships and degree hints of one or more results, each once. */
19
+ export declare class Collector {
20
+ readonly nodes: Map<string, GraphNode>;
21
+ readonly rels: Map<string, GraphRel>;
22
+ /** Degree hints by the id expression's value, as text. */
23
+ readonly degrees: Map<string, number>;
24
+ /**
25
+ * Collect a result.
26
+ * @param result - the result
27
+ * @param hints - whether its `key` / `degree` / `degrees` columns are the generated queries' hints
28
+ */
29
+ add(result: QueryResult, hints: boolean): void;
30
+ /**
31
+ * Collect every node and relationship inside a value.
32
+ * @param value - the value
33
+ */
34
+ private visit;
35
+ /**
36
+ * Whether nothing was collected.
37
+ * @returns true when no node or relationship was found
38
+ */
39
+ get empty(): boolean;
40
+ }
41
+ /**
42
+ * Fail with E_SOURCE_NOT_A_GRAPH when a result has rows but no node, relationship or path.
43
+ * @param result - the result
44
+ * @param collector - what it held
45
+ * @param report - the load's report
46
+ */
47
+ export declare function requireGraph(result: QueryResult, collector: Collector, report: ImportReportBuilder): void;
48
+ /**
49
+ * Write what was collected into the sink. A node already in the sink is updated, not counted again.
50
+ * @param c - the collector
51
+ * @param sink - the sink
52
+ * @param idProperty - the id property, or null
53
+ * @param report - the load's report
54
+ * @param signal - the load's signal
55
+ */
56
+ export declare function writeCollected(c: Collector, sink: GraphSink, idProperty: string | null, report: ImportReportBuilder, signal: AbortSignal): void;
57
+ /**
58
+ * Code-unit order of two strings, independent of locale.
59
+ * @param a - one string
60
+ * @param b - another
61
+ * @returns negative, zero or positive
62
+ */
63
+ export declare function compareText(a: string, b: string): number;
64
+ /**
65
+ * The canonical rows of what was collected: one line per node and relationship, sorted, for the
66
+ * content hash `validate` compares.
67
+ * @param c - the collector
68
+ * @param idProperty - the id property, or null
69
+ * @returns the lines
70
+ */
71
+ export declare function canonicalRows(c: Collector, idProperty: string | null): string[];
72
+ //# sourceMappingURL=flatten.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../../../src/sources/cypher/flatten.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAmB,KAAK,SAAS,EAA8B,MAAM,uBAAuB,CAAC;AAGpG,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAErD,sDAAsD;AACtD,MAAM,WAAW,WAAW;IACxB,wBAAwB;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;CAClD;AAqBD,mFAAmF;AACnF,qBAAa,SAAS;IAClB,QAAQ,CAAC,KAAK,yBAAgC;IAC9C,QAAQ,CAAC,IAAI,wBAA+B;IAC5C,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,sBAA6B;IAE7C;;;;OAIG;IACH,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAsB9C;;;OAGG;IACH,OAAO,CAAC,KAAK;IAgBb;;;OAGG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;CACJ;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAMzG;AA4BD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC1B,CAAC,EAAE,SAAS,EACZ,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,WAAW,GACpB,IAAI,CAMN;AAwFD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxD;AA6BD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,CAqB/E"}
@@ -0,0 +1,279 @@
1
+ /**
2
+ * The one result flattener of the Cypher source (design section 5): every node and relationship a
3
+ * result holds -- in a column, a path, a list or a map -- is collected once by its element id, and
4
+ * written to the sink as nodes (labels in the `labels` column, as the neo4j CSV importer has them)
5
+ * and directed edges (type in `type`, element id in `id`). A result of scalars only is
6
+ * E_SOURCE_NOT_A_GRAPH.
7
+ */
8
+ import { INVALID_INDEX } from "@graphty/graph-format";
9
+ import { throwIfAborted } from "../../common/input.js";
10
+ import { failOn } from "../fail.js";
11
+ import { SOURCE_DEGREE_ATTR } from "../ids.js";
12
+ import { GraphNode, GraphRel } from "./types-map.js";
13
+ /** The column names the neo4j CSV importer gives labels and types; spelled here so the Cypher chunk does not load it. */
14
+ const LABELS_COLUMN = "labels";
15
+ const TYPE_COLUMN = "type";
16
+ /** The labels column, as the neo4j CSV importer declares it. */
17
+ const LABELS_DECL = {
18
+ name: LABELS_COLUMN,
19
+ dtype: "list",
20
+ itemDtype: "dict",
21
+ nullable: true,
22
+ role: "labels",
23
+ };
24
+ /** The relationship type column. */
25
+ const TYPE_DECL = { name: TYPE_COLUMN, dtype: "dict", nullable: true, role: "kind" };
26
+ /** The edge id column. */
27
+ const EDGE_ID_DECL = { name: "id", dtype: "string", nullable: true, role: "id" };
28
+ /** The nodes, relationships and degree hints of one or more results, each once. */
29
+ export class Collector {
30
+ constructor() {
31
+ this.nodes = new Map();
32
+ this.rels = new Map();
33
+ /** Degree hints by the id expression's value, as text. */
34
+ this.degrees = new Map();
35
+ }
36
+ /**
37
+ * Collect a result.
38
+ * @param result - the result
39
+ * @param hints - whether its `key` / `degree` / `degrees` columns are the generated queries' hints
40
+ */
41
+ add(result, hints) {
42
+ const key = hints ? result.fields.indexOf("key") : -1;
43
+ const degree = hints ? result.fields.indexOf("degree") : -1;
44
+ const degrees = hints ? result.fields.indexOf("degrees") : -1;
45
+ for (const row of result.rows) {
46
+ row.forEach((value, i) => {
47
+ if (i === degrees && Array.isArray(value)) {
48
+ for (const pair of value) {
49
+ if (Array.isArray(pair) && typeof pair[1] === "number") {
50
+ this.degrees.set(String(pair[0]), pair[1]);
51
+ }
52
+ }
53
+ }
54
+ else if (i !== key && i !== degree) {
55
+ this.visit(value);
56
+ }
57
+ });
58
+ if (key >= 0 && degree >= 0 && typeof row[degree] === "number") {
59
+ this.degrees.set(String(row[key]), row[degree]);
60
+ }
61
+ }
62
+ }
63
+ /**
64
+ * Collect every node and relationship inside a value.
65
+ * @param value - the value
66
+ */
67
+ visit(value) {
68
+ if (value instanceof GraphNode) {
69
+ this.nodes.set(value.id, value);
70
+ }
71
+ else if (value instanceof GraphRel) {
72
+ this.rels.set(value.id, value);
73
+ }
74
+ else if (Array.isArray(value)) {
75
+ value.forEach((v) => {
76
+ this.visit(v);
77
+ });
78
+ }
79
+ else if (value !== null && typeof value === "object") {
80
+ Object.values(value).forEach((v) => {
81
+ this.visit(v);
82
+ });
83
+ }
84
+ }
85
+ /**
86
+ * Whether nothing was collected.
87
+ * @returns true when no node or relationship was found
88
+ */
89
+ get empty() {
90
+ return this.nodes.size === 0 && this.rels.size === 0;
91
+ }
92
+ }
93
+ /**
94
+ * Fail with E_SOURCE_NOT_A_GRAPH when a result has rows but no node, relationship or path.
95
+ * @param result - the result
96
+ * @param collector - what it held
97
+ * @param report - the load's report
98
+ */
99
+ export function requireGraph(result, collector, report) {
100
+ if (result.rows.length > 0 && collector.empty) {
101
+ failOn(report, "E_SOURCE_NOT_A_GRAPH", "the query returned no node, relationship or path", {
102
+ columns: result.fields,
103
+ });
104
+ }
105
+ }
106
+ /**
107
+ * The id a node gets: its `idProperty` value when it has one, else the server's element id.
108
+ * @param node - the node
109
+ * @param idProperty - the id property, or null
110
+ * @returns the id
111
+ */
112
+ function nodeIdOf(node, idProperty) {
113
+ const value = idProperty === null ? undefined : node.properties[idProperty];
114
+ return typeof value === "string" || typeof value === "number" ? value : node.id;
115
+ }
116
+ /**
117
+ * A column handle, declared on first use.
118
+ * @param sink - the sink
119
+ * @param decl - the declaration
120
+ * @param domain - node or edge
121
+ * @returns the handle
122
+ */
123
+ function column(sink, decl, domain) {
124
+ const existing = domain === "node" ? sink.nodeColumn(decl.name) : sink.edgeColumn(decl.name);
125
+ if (existing !== INVALID_INDEX) {
126
+ return existing;
127
+ }
128
+ return domain === "node" ? sink.declareNodeColumn(decl) : sink.declareEdgeColumn(decl);
129
+ }
130
+ /**
131
+ * Write what was collected into the sink. A node already in the sink is updated, not counted again.
132
+ * @param c - the collector
133
+ * @param sink - the sink
134
+ * @param idProperty - the id property, or null
135
+ * @param report - the load's report
136
+ * @param signal - the load's signal
137
+ */
138
+ export function writeCollected(c, sink, idProperty, report, signal) {
139
+ if (sink.edgeCount === 0 && !sink.directedLocked && !sink.directed) {
140
+ sink.setDirected(true);
141
+ }
142
+ const ids = writeNodes(c, sink, idProperty, report, signal);
143
+ writeRels(c, sink, ids, report, signal, c.nodes.size);
144
+ }
145
+ /**
146
+ * Write the collected nodes into the sink.
147
+ * @param c - the collector
148
+ * @param sink - the sink
149
+ * @param idProperty - the id property, or null
150
+ * @param report - the load's report
151
+ * @param signal - the load's signal
152
+ * @returns each element id's node id
153
+ */
154
+ function writeNodes(c, sink, idProperty, report, signal) {
155
+ const ids = new Map();
156
+ let n = 0;
157
+ for (const node of c.nodes.values()) {
158
+ if (n++ % 64 === 0) {
159
+ throwIfAborted(signal);
160
+ }
161
+ const id = nodeIdOf(node, idProperty);
162
+ ids.set(node.id, id);
163
+ const degree = c.degrees.get(String(idProperty === null ? node.id : id));
164
+ try {
165
+ const fresh = sink.indexOf(id) === INVALID_INDEX;
166
+ const index = sink.addNodeRecord(id, degree === undefined ? node.properties : { ...node.properties, [SOURCE_DEGREE_ATTR]: degree });
167
+ sink.setNodeValue(column(sink, LABELS_DECL, "node"), index, node.labels);
168
+ if (fresh) {
169
+ report.counts.nodes++;
170
+ }
171
+ }
172
+ catch (err) {
173
+ report.recordError(err, { element: String(id) });
174
+ report.counts.skippedNodes++;
175
+ }
176
+ }
177
+ return ids;
178
+ }
179
+ /**
180
+ * Write the collected relationships into the sink, adding any end the result did not return.
181
+ * @param c - the collector
182
+ * @param sink - the sink
183
+ * @param ids - each element id's node id
184
+ * @param report - the load's report
185
+ * @param signal - the load's signal
186
+ * @param written - how many elements were written before, for the abort check cadence
187
+ */
188
+ function writeRels(c, sink, ids, report, signal, written) {
189
+ let n = written;
190
+ for (const rel of c.rels.values()) {
191
+ if (n++ % 64 === 0) {
192
+ throwIfAborted(signal);
193
+ }
194
+ // an end the result did not return is known only by its element id
195
+ const s = ids.get(rel.start) ?? rel.start;
196
+ const t = ids.get(rel.end) ?? rel.end;
197
+ try {
198
+ for (const end of [s, t]) {
199
+ if (sink.indexOf(end) === INVALID_INDEX) {
200
+ sink.addNode(end);
201
+ report.counts.nodes++;
202
+ }
203
+ }
204
+ const e = sink.addEdgeRecord(s, t, rel.properties, null);
205
+ sink.setEdgeValue(column(sink, TYPE_DECL, "edge"), e, rel.type);
206
+ sink.setEdgeValue(column(sink, EDGE_ID_DECL, "edge"), e, rel.id);
207
+ report.counts.edges++;
208
+ }
209
+ catch (err) {
210
+ report.recordError(err, { element: `${String(s)} -> ${String(t)}` });
211
+ report.counts.skippedEdges++;
212
+ }
213
+ }
214
+ }
215
+ /**
216
+ * Code-unit order of two strings, independent of locale.
217
+ * @param a - one string
218
+ * @param b - another
219
+ * @returns negative, zero or positive
220
+ */
221
+ export function compareText(a, b) {
222
+ if (a === b) {
223
+ return 0;
224
+ }
225
+ return a < b ? -1 : 1;
226
+ }
227
+ /**
228
+ * One canonical object member.
229
+ * @param key - the key
230
+ * @param value - the value
231
+ * @returns `"key":value`
232
+ */
233
+ function member(key, value) {
234
+ return `${JSON.stringify(key)}:${canonical(value)}`;
235
+ }
236
+ /**
237
+ * JSON with every object's keys sorted, so equal data spells the same.
238
+ * @param value - the value
239
+ * @returns the canonical text
240
+ */
241
+ function canonical(value) {
242
+ if (Array.isArray(value)) {
243
+ return `[${value.map(canonical).join(",")}]`;
244
+ }
245
+ if (value !== null && typeof value === "object") {
246
+ const entries = Object.entries(value).sort(([a], [b]) => compareText(a, b));
247
+ const members = entries.map(([k, v]) => member(k, v));
248
+ return `{${members.join(",")}}`;
249
+ }
250
+ return JSON.stringify(value) ?? "null";
251
+ }
252
+ /**
253
+ * The canonical rows of what was collected: one line per node and relationship, sorted, for the
254
+ * content hash `validate` compares.
255
+ * @param c - the collector
256
+ * @param idProperty - the id property, or null
257
+ * @returns the lines
258
+ */
259
+ export function canonicalRows(c, idProperty) {
260
+ const ids = new Map();
261
+ const lines = [];
262
+ for (const node of c.nodes.values()) {
263
+ const id = nodeIdOf(node, idProperty);
264
+ ids.set(node.id, id);
265
+ lines.push(canonical(["n", id, [...node.labels].sort(compareText), node.properties]));
266
+ }
267
+ for (const rel of c.rels.values()) {
268
+ lines.push(canonical([
269
+ "r",
270
+ rel.id,
271
+ ids.get(rel.start) ?? rel.start,
272
+ ids.get(rel.end) ?? rel.end,
273
+ rel.type,
274
+ rel.properties,
275
+ ]));
276
+ }
277
+ return lines;
278
+ }
279
+ //# sourceMappingURL=flatten.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten.js","sourceRoot":"","sources":["../../../../src/sources/cypher/flatten.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `@graphty/graph-io/sources/cypher`: the Cypher source and its `neo4j` and `neptune` presets
3
+ * (design sections 10, 11, 12.2 and 12.4). One query builder, one result flattener and one type
4
+ * mapper over four transports: Neo4j's Query API, Bolt (through the optional peer neo4j-driver),
5
+ * Neptune Database over HTTPS and Neptune Analytics. The presets fix the transports and the server
6
+ * profile and hold no query code of their own. Experimental.
7
+ * @module @graphty/graph-io/sources/cypher
8
+ */
9
+ import { type GraphSource } from "../types.js";
10
+ import { type CypherParams } from "./params.js";
11
+ export { CYPHER_DESCRIPTOR, NEO4J_DESCRIPTOR, NEPTUNE_DESCRIPTOR } from "./descriptor.js";
12
+ export { type CypherParams } from "./params.js";
13
+ export { cypherIdentifier } from "./query-builder.js";
14
+ /**
15
+ * The generic Cypher source, for any openCypher server: Neo4j over its Query API or Bolt, Neptune
16
+ * over HTTPS. The transport comes from `params.transport`, else the endpoint (`bolt+s://` is Bolt,
17
+ * a `neptune-graph` host is Neptune Analytics), else the Query API. Experimental.
18
+ * @category Network sources
19
+ */
20
+ export declare const cypherSource: GraphSource<CypherParams>;
21
+ /**
22
+ * The Neo4j preset: the Query API (Neo4j 5.26 and later, Aura), or Bolt for a `bolt:` or
23
+ * `bolt+s:` endpoint (any Neo4j; needs the optional peer neo4j-driver). Experimental.
24
+ * @category Network sources
25
+ */
26
+ export declare const neo4jSource: GraphSource<CypherParams>;
27
+ /**
28
+ * The Amazon Neptune preset: Neptune Database over HTTPS, or Neptune Analytics for a
29
+ * `neptune-graph` host. Node only; sign requests with `credentials.awsSigV4`. Experimental.
30
+ * @category Network sources
31
+ */
32
+ export declare const neptuneSource: GraphSource<CypherParams>;
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sources/cypher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,EAEH,KAAK,WAAW,EAOnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAoBhD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA4ZtD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,YAAY,CAIjD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,YAAY,CAIhD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,YAAY,CAIlD,CAAC"}