@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.
- package/dist/chunks/{approximations-wWjCRzKj.js → approximations-C2riR4NT.js} +2 -2
- package/dist/chunks/{approximations-wWjCRzKj.js.map → approximations-C2riR4NT.js.map} +1 -1
- package/dist/chunks/{block-DiGq58c3.js → block-Cu22ewuS.js} +92 -21
- package/dist/chunks/block-Cu22ewuS.js.map +1 -0
- package/dist/chunks/{choose--jM0yYCo.js → choose-Cdx6Enl2.js} +3 -3
- package/dist/chunks/{choose--jM0yYCo.js.map → choose-Cdx6Enl2.js.map} +1 -1
- package/dist/chunks/codes-CV_Bhcyi.js +153 -0
- package/dist/chunks/codes-CV_Bhcyi.js.map +1 -0
- package/dist/chunks/{constants-BKwqelYD.js → constants-D0LqcsLJ.js} +2 -2
- package/dist/chunks/{constants-BKwqelYD.js.map → constants-D0LqcsLJ.js.map} +1 -1
- package/dist/chunks/context-cgmmOxZ2.js +663 -0
- package/dist/chunks/context-cgmmOxZ2.js.map +1 -0
- package/dist/chunks/credentials-BiQsnMTb.js +347 -0
- package/dist/chunks/credentials-BiQsnMTb.js.map +1 -0
- package/dist/chunks/cx-export-BEeF6ymo.js +259 -0
- package/dist/chunks/cx-export-BEeF6ymo.js.map +1 -0
- package/dist/chunks/descriptor-BJ-W0Jd-.js +137 -0
- package/dist/chunks/descriptor-BJ-W0Jd-.js.map +1 -0
- package/dist/chunks/descriptor-C-YDhtsn.js +48 -0
- package/dist/chunks/descriptor-C-YDhtsn.js.map +1 -0
- package/dist/chunks/{emit-CwU8cUmG.js → emit-CD8xnY8s.js} +70 -10
- package/dist/chunks/emit-CD8xnY8s.js.map +1 -0
- package/dist/chunks/{escape-CgzxiYPg.js → escape-DH2Egt-l.js} +12 -12
- package/dist/chunks/{escape-CgzxiYPg.js.map → escape-DH2Egt-l.js.map} +1 -1
- package/dist/chunks/{export-BvqAXCKh.js → export-CZ7VRm4I.js} +53 -1443
- package/dist/chunks/export-CZ7VRm4I.js.map +1 -0
- package/dist/chunks/{exporter-DndFlGSa.js → exporter-BIdaoIgh.js} +7 -6
- package/dist/chunks/{exporter-DndFlGSa.js.map → exporter-BIdaoIgh.js.map} +1 -1
- package/dist/chunks/{exporter-CJgfhF-l.js → exporter-ChjL5fmP.js} +8 -7
- package/dist/chunks/{exporter-CJgfhF-l.js.map → exporter-ChjL5fmP.js.map} +1 -1
- package/dist/chunks/{exporter--Mk9gXCJ.js → exporter-Dcw7Ldtq.js} +6 -4
- package/dist/chunks/{exporter--Mk9gXCJ.js.map → exporter-Dcw7Ldtq.js.map} +1 -1
- package/dist/chunks/exporter-DtVU80Fa.js +1008 -0
- package/dist/chunks/exporter-DtVU80Fa.js.map +1 -0
- package/dist/chunks/{exporter-CrDWIyiq.js → exporter-bxxjOrDZ.js} +11 -9
- package/dist/chunks/{exporter-CrDWIyiq.js.map → exporter-bxxjOrDZ.js.map} +1 -1
- package/dist/chunks/format-BMS-1Nxb.js +64 -0
- package/dist/chunks/format-BMS-1Nxb.js.map +1 -0
- package/dist/chunks/{generic-Dq1ntt9q.js → generic-CP6YD34u.js} +4 -4
- package/dist/chunks/{generic-Dq1ntt9q.js.map → generic-CP6YD34u.js.map} +1 -1
- package/dist/chunks/{importer-DiZRmOQG.js → importer-B87_fmVx.js} +13 -17
- package/dist/chunks/importer-B87_fmVx.js.map +1 -0
- package/dist/chunks/{importer-BSvfrX_h.js → importer-Bji2MeWr.js} +18 -1014
- package/dist/chunks/importer-Bji2MeWr.js.map +1 -0
- package/dist/chunks/{importer-COTK9Tsl.js → importer-CB_zV5_L.js} +14 -11
- package/dist/chunks/importer-CB_zV5_L.js.map +1 -0
- package/dist/chunks/{importer-e6LGpqHB.js → importer-CVT-JyDE.js} +12 -9
- package/dist/chunks/importer-CVT-JyDE.js.map +1 -0
- package/dist/chunks/{importer-yh_aBCU6.js → importer-Cyy6UseH.js} +7 -6
- package/dist/chunks/{importer-yh_aBCU6.js.map → importer-Cyy6UseH.js.map} +1 -1
- package/dist/chunks/{importer-iFYPEKaJ.js → importer-DPZDN40-.js} +14 -10
- package/dist/chunks/{importer-iFYPEKaJ.js.map → importer-DPZDN40-.js.map} +1 -1
- package/dist/chunks/{importer-CMmeMWlC.js → importer-e3huMZbm.js} +8 -260
- package/dist/chunks/importer-e3huMZbm.js.map +1 -0
- package/dist/chunks/input-Ccg9I22A.js +1397 -0
- package/dist/chunks/input-Ccg9I22A.js.map +1 -0
- package/dist/chunks/{json-elements-DJZRZ6jd.js → json-elements-By172SVq.js} +4 -4
- package/dist/chunks/{json-elements-DJZRZ6jd.js.map → json-elements-By172SVq.js.map} +1 -1
- package/dist/chunks/{lexicon-CT69Kd87.js → lexicon-u2SI5xcx.js} +19 -5
- package/dist/chunks/lexicon-u2SI5xcx.js.map +1 -0
- package/dist/chunks/{ontology-export-G4MqRdux.js → ontology-export-BwgMyuF0.js} +4 -3
- package/dist/chunks/{ontology-export-G4MqRdux.js.map → ontology-export-BwgMyuF0.js.map} +1 -1
- package/dist/chunks/{records-CiaWZrFH.js → records-Cgvxz-Vx.js} +2 -2
- package/dist/chunks/{records-CiaWZrFH.js.map → records-Cgvxz-Vx.js.map} +1 -1
- package/dist/chunks/{format-BpQBx8MZ.js → report-CgdsL9Hb.js} +72 -129
- package/dist/chunks/report-CgdsL9Hb.js.map +1 -0
- package/dist/chunks/sigv4-LkAzsLAu.js +247 -0
- package/dist/chunks/sigv4-LkAzsLAu.js.map +1 -0
- package/dist/chunks/{styles-BQnsga7p.js → styles-CaABMoO1.js} +76 -43
- package/dist/chunks/styles-CaABMoO1.js.map +1 -0
- package/dist/chunks/{styles-D3fRphrO.js → styles-P_gmFAOi.js} +101 -21
- package/dist/chunks/styles-P_gmFAOi.js.map +1 -0
- package/dist/chunks/{styles-yed-BF5x3_Y5.js → styles-yed-Cs1nmrjn.js} +60 -20
- package/dist/chunks/styles-yed-Cs1nmrjn.js.map +1 -0
- package/dist/chunks/{text-CzJNFOS9.js → text-BuKQVMz2.js} +2 -2
- package/dist/chunks/{text-CzJNFOS9.js.map → text-BuKQVMz2.js.map} +1 -1
- package/dist/chunks/{writer-DMKvthQE.js → writer-DvHTl36J.js} +5 -4
- package/dist/chunks/writer-DvHTl36J.js.map +1 -0
- package/dist/csv.js +7 -5
- package/dist/csv.js.map +1 -1
- package/dist/cx.js +5 -4
- package/dist/cx.js.map +1 -1
- package/dist/cx2.js +2 -2
- package/dist/cys.js +1 -1
- package/dist/dot.js +2 -2
- package/dist/gexf.js +7 -5
- package/dist/gexf.js.map +1 -1
- package/dist/gml.js +16 -13
- package/dist/gml.js.map +1 -1
- package/dist/graph-io.js +1181 -224
- package/dist/graph-io.js.map +1 -1
- package/dist/graphml.js +3 -3
- package/dist/json.js +1 -1
- package/dist/neo4j.js +6 -4
- package/dist/neo4j.js.map +1 -1
- package/dist/obo.js +1 -1
- package/dist/pajek.js +1 -1
- package/dist/sources-cypher.d.ts +1 -0
- package/dist/sources-cypher.js +1236 -0
- package/dist/sources-cypher.js.map +1 -0
- package/dist/sources-ndex.d.ts +1 -0
- package/dist/sources-ndex.js +278 -0
- package/dist/sources-ndex.js.map +1 -0
- package/dist/sources-rest.d.ts +1 -0
- package/dist/sources-rest.js +1367 -0
- package/dist/sources-rest.js.map +1 -0
- package/dist/src/common/report.d.ts +6 -3
- package/dist/src/common/report.d.ts.map +1 -1
- package/dist/src/common/report.js +15 -9
- package/dist/src/common/report.js.map +1 -1
- package/dist/src/formats/cx/styles.d.ts.map +1 -1
- package/dist/src/formats/cx/styles.js +1 -0
- package/dist/src/formats/cx/styles.js.map +1 -1
- package/dist/src/formats/dot/styles.d.ts.map +1 -1
- package/dist/src/formats/dot/styles.js +3 -1
- package/dist/src/formats/dot/styles.js.map +1 -1
- package/dist/src/formats/gexf/styles.d.ts +29 -12
- package/dist/src/formats/gexf/styles.d.ts.map +1 -1
- package/dist/src/formats/gexf/styles.js +160 -31
- package/dist/src/formats/gexf/styles.js.map +1 -1
- package/dist/src/formats/gml/styles.d.ts.map +1 -1
- package/dist/src/formats/gml/styles.js +5 -4
- package/dist/src/formats/gml/styles.js.map +1 -1
- package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -1
- package/dist/src/formats/graphml/styles-plain.js +3 -3
- package/dist/src/formats/graphml/styles-plain.js.map +1 -1
- package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -1
- package/dist/src/formats/graphml/styles-yed.js +89 -19
- package/dist/src/formats/graphml/styles-yed.js.map +1 -1
- package/dist/src/formats/pajek/styles.d.ts.map +1 -1
- package/dist/src/formats/pajek/styles.js +1 -0
- package/dist/src/formats/pajek/styles.js.map +1 -1
- package/dist/src/formats/xgmml/styles.d.ts.map +1 -1
- package/dist/src/formats/xgmml/styles.js +1 -0
- package/dist/src/formats/xgmml/styles.js.map +1 -1
- package/dist/src/index.d.ts +8 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/registry.d.ts +173 -1
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +196 -1
- package/dist/src/registry.js.map +1 -1
- package/dist/src/sources/builtins.d.ts +11 -0
- package/dist/src/sources/builtins.d.ts.map +1 -0
- package/dist/src/sources/builtins.js +47 -0
- package/dist/src/sources/builtins.js.map +1 -0
- package/dist/src/sources/codes.d.ts +230 -0
- package/dist/src/sources/codes.d.ts.map +1 -0
- package/dist/src/sources/codes.js +58 -0
- package/dist/src/sources/codes.js.map +1 -0
- package/dist/src/sources/context.d.ts +112 -0
- package/dist/src/sources/context.d.ts.map +1 -0
- package/dist/src/sources/context.js +739 -0
- package/dist/src/sources/context.js.map +1 -0
- package/dist/src/sources/credentials.d.ts +179 -0
- package/dist/src/sources/credentials.d.ts.map +1 -0
- package/dist/src/sources/credentials.js +301 -0
- package/dist/src/sources/credentials.js.map +1 -0
- package/dist/src/sources/cypher/descriptor.d.ts +21 -0
- package/dist/src/sources/cypher/descriptor.d.ts.map +1 -0
- package/dist/src/sources/cypher/descriptor.js +119 -0
- package/dist/src/sources/cypher/descriptor.js.map +1 -0
- package/dist/src/sources/cypher/flatten.d.ts +72 -0
- package/dist/src/sources/cypher/flatten.d.ts.map +1 -0
- package/dist/src/sources/cypher/flatten.js +279 -0
- package/dist/src/sources/cypher/flatten.js.map +1 -0
- package/dist/src/sources/cypher/index.d.ts +33 -0
- package/dist/src/sources/cypher/index.d.ts.map +1 -0
- package/dist/src/sources/cypher/index.js +405 -0
- package/dist/src/sources/cypher/index.js.map +1 -0
- package/dist/src/sources/cypher/params.d.ts +40 -0
- package/dist/src/sources/cypher/params.d.ts.map +1 -0
- package/dist/src/sources/cypher/params.js +6 -0
- package/dist/src/sources/cypher/params.js.map +1 -0
- package/dist/src/sources/cypher/profiles.d.ts +44 -0
- package/dist/src/sources/cypher/profiles.d.ts.map +1 -0
- package/dist/src/sources/cypher/profiles.js +61 -0
- package/dist/src/sources/cypher/profiles.js.map +1 -0
- package/dist/src/sources/cypher/query-builder.d.ts +106 -0
- package/dist/src/sources/cypher/query-builder.d.ts.map +1 -0
- package/dist/src/sources/cypher/query-builder.js +236 -0
- package/dist/src/sources/cypher/query-builder.js.map +1 -0
- package/dist/src/sources/cypher/transports/bolt.d.ts +21 -0
- package/dist/src/sources/cypher/transports/bolt.d.ts.map +1 -0
- package/dist/src/sources/cypher/transports/bolt.js +185 -0
- package/dist/src/sources/cypher/transports/bolt.js.map +1 -0
- package/dist/src/sources/cypher/transports/neptune-analytics.d.ts +15 -0
- package/dist/src/sources/cypher/transports/neptune-analytics.d.ts.map +1 -0
- package/dist/src/sources/cypher/transports/neptune-analytics.js +38 -0
- package/dist/src/sources/cypher/transports/neptune-analytics.js.map +1 -0
- package/dist/src/sources/cypher/transports/neptune-https.d.ts +31 -0
- package/dist/src/sources/cypher/transports/neptune-https.d.ts.map +1 -0
- package/dist/src/sources/cypher/transports/neptune-https.js +104 -0
- package/dist/src/sources/cypher/transports/neptune-https.js.map +1 -0
- package/dist/src/sources/cypher/transports/query-api.d.ts +14 -0
- package/dist/src/sources/cypher/transports/query-api.d.ts.map +1 -0
- package/dist/src/sources/cypher/transports/query-api.js +80 -0
- package/dist/src/sources/cypher/transports/query-api.js.map +1 -0
- package/dist/src/sources/cypher/transports/transport.d.ts +78 -0
- package/dist/src/sources/cypher/transports/transport.d.ts.map +1 -0
- package/dist/src/sources/cypher/transports/transport.js +77 -0
- package/dist/src/sources/cypher/transports/transport.js.map +1 -0
- package/dist/src/sources/cypher/types-map.d.ts +91 -0
- package/dist/src/sources/cypher/types-map.d.ts.map +1 -0
- package/dist/src/sources/cypher/types-map.js +306 -0
- package/dist/src/sources/cypher/types-map.js.map +1 -0
- package/dist/src/sources/define.d.ts +47 -0
- package/dist/src/sources/define.d.ts.map +1 -0
- package/dist/src/sources/define.js +173 -0
- package/dist/src/sources/define.js.map +1 -0
- package/dist/src/sources/fail.d.ts +33 -0
- package/dist/src/sources/fail.d.ts.map +1 -0
- package/dist/src/sources/fail.js +49 -0
- package/dist/src/sources/fail.js.map +1 -0
- package/dist/src/sources/ids.d.ts +64 -0
- package/dist/src/sources/ids.d.ts.map +1 -0
- package/dist/src/sources/ids.js +64 -0
- package/dist/src/sources/ids.js.map +1 -0
- package/dist/src/sources/ndex/client.d.ts +31 -0
- package/dist/src/sources/ndex/client.d.ts.map +1 -0
- package/dist/src/sources/ndex/client.js +90 -0
- package/dist/src/sources/ndex/client.js.map +1 -0
- package/dist/src/sources/ndex/descriptor.d.ts +10 -0
- package/dist/src/sources/ndex/descriptor.d.ts.map +1 -0
- package/dist/src/sources/ndex/descriptor.js +55 -0
- package/dist/src/sources/ndex/descriptor.js.map +1 -0
- package/dist/src/sources/ndex/expand.d.ts +20 -0
- package/dist/src/sources/ndex/expand.d.ts.map +1 -0
- package/dist/src/sources/ndex/expand.js +87 -0
- package/dist/src/sources/ndex/expand.js.map +1 -0
- package/dist/src/sources/ndex/index.d.ts +25 -0
- package/dist/src/sources/ndex/index.d.ts.map +1 -0
- package/dist/src/sources/ndex/index.js +191 -0
- package/dist/src/sources/ndex/index.js.map +1 -0
- package/dist/src/sources/ndex/params.d.ts +17 -0
- package/dist/src/sources/ndex/params.d.ts.map +1 -0
- package/dist/src/sources/ndex/params.js +6 -0
- package/dist/src/sources/ndex/params.js.map +1 -0
- package/dist/src/sources/ndex/share-url.d.ts +40 -0
- package/dist/src/sources/ndex/share-url.d.ts.map +1 -0
- package/dist/src/sources/ndex/share-url.js +64 -0
- package/dist/src/sources/ndex/share-url.js.map +1 -0
- package/dist/src/sources/params.d.ts +28 -0
- package/dist/src/sources/params.d.ts.map +1 -0
- package/dist/src/sources/params.js +6 -0
- package/dist/src/sources/params.js.map +1 -0
- package/dist/src/sources/registry.d.ts +118 -0
- package/dist/src/sources/registry.d.ts.map +1 -0
- package/dist/src/sources/registry.js +193 -0
- package/dist/src/sources/registry.js.map +1 -0
- package/dist/src/sources/rest/descriptor.d.ts +16 -0
- package/dist/src/sources/rest/descriptor.d.ts.map +1 -0
- package/dist/src/sources/rest/descriptor.js +71 -0
- package/dist/src/sources/rest/descriptor.js.map +1 -0
- package/dist/src/sources/rest/index.d.ts +14 -0
- package/dist/src/sources/rest/index.d.ts.map +1 -0
- package/dist/src/sources/rest/index.js +13 -0
- package/dist/src/sources/rest/index.js.map +1 -0
- package/dist/src/sources/rest/mapping.d.ts +30 -0
- package/dist/src/sources/rest/mapping.d.ts.map +1 -0
- package/dist/src/sources/rest/mapping.js +362 -0
- package/dist/src/sources/rest/mapping.js.map +1 -0
- package/dist/src/sources/rest/openalex.d.ts +27 -0
- package/dist/src/sources/rest/openalex.d.ts.map +1 -0
- package/dist/src/sources/rest/openalex.js +269 -0
- package/dist/src/sources/rest/openalex.js.map +1 -0
- package/dist/src/sources/rest/paging.d.ts +53 -0
- package/dist/src/sources/rest/paging.d.ts.map +1 -0
- package/dist/src/sources/rest/paging.js +138 -0
- package/dist/src/sources/rest/paging.js.map +1 -0
- package/dist/src/sources/rest/params.d.ts +216 -0
- package/dist/src/sources/rest/params.d.ts.map +1 -0
- package/dist/src/sources/rest/params.js +7 -0
- package/dist/src/sources/rest/params.js.map +1 -0
- package/dist/src/sources/rest/records.d.ts +41 -0
- package/dist/src/sources/rest/records.d.ts.map +1 -0
- package/dist/src/sources/rest/records.js +240 -0
- package/dist/src/sources/rest/records.js.map +1 -0
- package/dist/src/sources/rest/samples/deps-dev.d.ts +10 -0
- package/dist/src/sources/rest/samples/deps-dev.d.ts.map +1 -0
- package/dist/src/sources/rest/samples/deps-dev.js +47 -0
- package/dist/src/sources/rest/samples/deps-dev.js.map +1 -0
- package/dist/src/sources/rest/samples/string.d.ts +9 -0
- package/dist/src/sources/rest/samples/string.d.ts.map +1 -0
- package/dist/src/sources/rest/samples/string.js +42 -0
- package/dist/src/sources/rest/samples/string.js.map +1 -0
- package/dist/src/sources/rest/selectors.d.ts +41 -0
- package/dist/src/sources/rest/selectors.d.ts.map +1 -0
- package/dist/src/sources/rest/selectors.js +81 -0
- package/dist/src/sources/rest/selectors.js.map +1 -0
- package/dist/src/sources/rest/source.d.ts +67 -0
- package/dist/src/sources/rest/source.d.ts.map +1 -0
- package/dist/src/sources/rest/source.js +635 -0
- package/dist/src/sources/rest/source.js.map +1 -0
- package/dist/src/sources/rest/templates.d.ts +38 -0
- package/dist/src/sources/rest/templates.d.ts.map +1 -0
- package/dist/src/sources/rest/templates.js +125 -0
- package/dist/src/sources/rest/templates.js.map +1 -0
- package/dist/src/sources/run.d.ts +93 -0
- package/dist/src/sources/run.d.ts.map +1 -0
- package/dist/src/sources/run.js +673 -0
- package/dist/src/sources/run.js.map +1 -0
- package/dist/src/sources/sha256.d.ts +12 -0
- package/dist/src/sources/sha256.d.ts.map +1 -0
- package/dist/src/sources/sha256.js +95 -0
- package/dist/src/sources/sha256.js.map +1 -0
- package/dist/src/sources/sigv4.d.ts +24 -0
- package/dist/src/sources/sigv4.d.ts.map +1 -0
- package/dist/src/sources/sigv4.js +182 -0
- package/dist/src/sources/sigv4.js.map +1 -0
- package/dist/src/sources/testing.d.ts +96 -0
- package/dist/src/sources/testing.d.ts.map +1 -0
- package/dist/src/sources/testing.js +138 -0
- package/dist/src/sources/testing.js.map +1 -0
- package/dist/src/sources/types.d.ts +665 -0
- package/dist/src/sources/types.d.ts.map +1 -0
- package/dist/src/sources/types.js +10 -0
- package/dist/src/sources/types.js.map +1 -0
- package/dist/src/styles/canon/enums.d.ts.map +1 -1
- package/dist/src/styles/canon/enums.js +1 -0
- package/dist/src/styles/canon/enums.js.map +1 -1
- package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
- package/dist/src/styles/cyjs/cascade.js +68 -2
- package/dist/src/styles/cyjs/cascade.js.map +1 -1
- package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -1
- package/dist/src/styles/cyjs/defaults-table.js +2 -0
- package/dist/src/styles/cyjs/defaults-table.js.map +1 -1
- package/dist/src/styles/cyjs/emit.d.ts.map +1 -1
- package/dist/src/styles/cyjs/emit.js +18 -7
- package/dist/src/styles/cyjs/emit.js.map +1 -1
- package/dist/src/styles/cyjs/mappers.d.ts +4 -1
- package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
- package/dist/src/styles/cyjs/mappers.js +2 -0
- package/dist/src/styles/cyjs/mappers.js.map +1 -1
- package/dist/src/styles/cytoscape/emit.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/emit.js +59 -7
- package/dist/src/styles/cytoscape/emit.js.map +1 -1
- package/dist/src/styles/cytoscape/lexicon.d.ts +6 -0
- package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/lexicon.js +26 -2
- package/dist/src/styles/cytoscape/lexicon.js.map +1 -1
- package/dist/src/styles/cytoscape/resolve.d.ts +4 -1
- package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/resolve.js +10 -6
- package/dist/src/styles/cytoscape/resolve.js.map +1 -1
- package/dist/src/styles/cytoscape/translate.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/translate.js +10 -10
- package/dist/src/styles/cytoscape/translate.js.map +1 -1
- package/dist/src/styles/defaults.d.ts +30 -0
- package/dist/src/styles/defaults.d.ts.map +1 -1
- package/dist/src/styles/defaults.js +45 -4
- package/dist/src/styles/defaults.js.map +1 -1
- package/dist/src/styles/io/block.d.ts.map +1 -1
- package/dist/src/styles/io/block.js +9 -0
- package/dist/src/styles/io/block.js.map +1 -1
- package/dist/src/styles/io/writer.d.ts.map +1 -1
- package/dist/src/styles/io/writer.js +7 -3
- package/dist/src/styles/io/writer.js.map +1 -1
- package/dist/src/styles/plan/resolve.d.ts +2 -1
- package/dist/src/styles/plan/resolve.d.ts.map +1 -1
- package/dist/src/styles/plan/resolve.js +13 -2
- package/dist/src/styles/plan/resolve.js.map +1 -1
- package/dist/src/styles/types.d.ts +19 -2
- package/dist/src/styles/types.d.ts.map +1 -1
- package/dist/src/styles/vocabulary.d.ts.map +1 -1
- package/dist/src/styles/vocabulary.js +15 -1
- package/dist/src/styles/vocabulary.js.map +1 -1
- package/dist/src/types.d.ts +19 -5
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/styles.js +11 -11
- package/dist/xgmml.js +3 -3
- package/docs/samples/people.json +6 -0
- package/package.json +29 -4
- package/src/common/report.ts +27 -7
- package/src/formats/cx/styles.ts +1 -0
- package/src/formats/dot/styles.ts +3 -1
- package/src/formats/gexf/styles.ts +185 -37
- package/src/formats/gml/styles.ts +5 -4
- package/src/formats/graphml/styles-plain.ts +3 -9
- package/src/formats/graphml/styles-yed.ts +93 -20
- package/src/formats/pajek/styles.ts +1 -0
- package/src/formats/xgmml/styles.ts +1 -0
- package/src/index.ts +90 -0
- package/src/registry.ts +326 -1
- package/src/sources/builtins.ts +56 -0
- package/src/sources/codes.ts +235 -0
- package/src/sources/context.ts +893 -0
- package/src/sources/credentials.ts +409 -0
- package/src/sources/cypher/descriptor.ts +125 -0
- package/src/sources/cypher/flatten.ts +323 -0
- package/src/sources/cypher/index.ts +498 -0
- package/src/sources/cypher/params.ts +41 -0
- package/src/sources/cypher/profiles.ts +78 -0
- package/src/sources/cypher/query-builder.ts +294 -0
- package/src/sources/cypher/transports/bolt.ts +228 -0
- package/src/sources/cypher/transports/neptune-analytics.ts +41 -0
- package/src/sources/cypher/transports/neptune-https.ts +122 -0
- package/src/sources/cypher/transports/query-api.ts +100 -0
- package/src/sources/cypher/transports/transport.ts +139 -0
- package/src/sources/cypher/types-map.ts +418 -0
- package/src/sources/define.ts +195 -0
- package/src/sources/fail.ts +70 -0
- package/src/sources/ids.ts +74 -0
- package/src/sources/ndex/client.ts +102 -0
- package/src/sources/ndex/descriptor.ts +64 -0
- package/src/sources/ndex/expand.ts +100 -0
- package/src/sources/ndex/index.ts +235 -0
- package/src/sources/ndex/params.ts +17 -0
- package/src/sources/ndex/share-url.ts +84 -0
- package/src/sources/params.ts +29 -0
- package/src/sources/registry.ts +325 -0
- package/src/sources/rest/descriptor.ts +74 -0
- package/src/sources/rest/index.ts +22 -0
- package/src/sources/rest/mapping.ts +401 -0
- package/src/sources/rest/openalex.ts +288 -0
- package/src/sources/rest/paging.ts +180 -0
- package/src/sources/rest/params.ts +243 -0
- package/src/sources/rest/records.ts +289 -0
- package/src/sources/rest/samples/deps-dev.ts +49 -0
- package/src/sources/rest/samples/string.ts +44 -0
- package/src/sources/rest/selectors.ts +91 -0
- package/src/sources/rest/source.ts +760 -0
- package/src/sources/rest/templates.ts +151 -0
- package/src/sources/run.ts +793 -0
- package/src/sources/sha256.ts +99 -0
- package/src/sources/sigv4.ts +207 -0
- package/src/sources/testing.ts +210 -0
- package/src/sources/types.ts +741 -0
- package/src/styles/canon/enums.ts +1 -0
- package/src/styles/cyjs/cascade.ts +81 -2
- package/src/styles/cyjs/defaults-table.ts +2 -0
- package/src/styles/cyjs/emit.ts +18 -7
- package/src/styles/cyjs/mappers.ts +6 -1
- package/src/styles/cytoscape/emit.ts +61 -7
- package/src/styles/cytoscape/lexicon.ts +28 -2
- package/src/styles/cytoscape/resolve.ts +22 -6
- package/src/styles/cytoscape/translate.ts +11 -11
- package/src/styles/defaults.ts +93 -4
- package/src/styles/io/block.ts +10 -0
- package/src/styles/io/writer.ts +8 -3
- package/src/styles/plan/resolve.ts +14 -2
- package/src/styles/types.ts +28 -2
- package/src/styles/vocabulary.ts +15 -1
- package/src/types.ts +19 -5
- package/dist/chunks/block-DiGq58c3.js.map +0 -1
- package/dist/chunks/emit-CwU8cUmG.js.map +0 -1
- package/dist/chunks/export-BvqAXCKh.js.map +0 -1
- package/dist/chunks/format-BpQBx8MZ.js.map +0 -1
- package/dist/chunks/importer-BSvfrX_h.js.map +0 -1
- package/dist/chunks/importer-CMmeMWlC.js.map +0 -1
- package/dist/chunks/importer-COTK9Tsl.js.map +0 -1
- package/dist/chunks/importer-DiZRmOQG.js.map +0 -1
- package/dist/chunks/importer-e6LGpqHB.js.map +0 -1
- package/dist/chunks/lexicon-CT69Kd87.js.map +0 -1
- package/dist/chunks/styles-BQnsga7p.js.map +0 -1
- package/dist/chunks/styles-D3fRphrO.js.map +0 -1
- package/dist/chunks/styles-yed-BF5x3_Y5.js.map +0 -1
- 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":"AAAA;;;GAGG;AAIH,iDAAiD;AACjD,MAAM,aAAa,GAAqC;IACpD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACxE;QACI,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,MAAM;QACjB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACJ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YAClC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE;YACrC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;SACnD;KACJ;IACD,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACvD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACnF,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvF,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9G,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChF,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3D;QACI,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,gBAAgB;QAC3B,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACJ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;YACjC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;SACrC;KACJ;IACD,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjF,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;CACpH,CAAC;AAEF,qDAAqD;AACrD,MAAM,eAAe,GAA0B;IAC3C,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE;QACJ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE;QAChD,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;QAChC,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAAE;QACrD,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;KAC7D;CACJ,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAqB,MAAM,CAAC,MAAM,CAAC;IAC7D,SAAS,EAAE,iBAAiB;IAC5B,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC;IACtC,YAAY,EAAE,UAAU;IACxB,MAAM,EAAE,CAAC,GAAG,aAAa,EAAE,eAAe,CAAC;CAC9C,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAqB,MAAM,CAAC,MAAM,CAAC;IAC5D,SAAS,EAAE,OAAO;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;IACzB,YAAY,EAAE,UAAU;IACxB,MAAM,EAAE;QACJ,GAAG,aAAa;QAChB;YACI,8EAA8E;YAC9E,GAAG,eAAe;YAClB,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;SAC/F;KACJ;IACD,OAAO,EAAE;QACL;YACI,EAAE,EAAE,cAAc;YAClB,SAAS,EAAE,oBAAoB;YAC/B,QAAQ,EAAE,iCAAiC;YAC3C,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;YAC3C,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,uEAAuE;YAChI,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;SACrC;QACD;YACI,EAAE,EAAE,UAAU;YACd,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,4BAA4B;YACtC,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;YACxC,KAAK,EAAE,KAAK;SACf;KACJ;CACJ,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAqB,MAAM,CAAC,MAAM,CAAC;IAC9D,SAAS,EAAE,gBAAgB;IAC3B,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC,WAAW,CAAC;IACnB,YAAY,EAAE,UAAU;IACxB,MAAM,EAAE;QACJ,GAAG,aAAa;QAChB;YACI,uFAAuF;YACvF,GAAG,eAAe;YAClB,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAC/E;KACJ;IACD,2EAA2E;IAC3E,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;CAC5G,CAAC,CAAC"}
|
|
@@ -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"}
|