@graphty/graph-io 0.3.47 → 0.3.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@graphty/graph-io/sources/ndex`: the NDEx source (design section 12.1). Experimental.
|
|
3
|
+
*
|
|
4
|
+
* - load: the network's summary first (counts, download size, modification time), checked against
|
|
5
|
+
* the caps before a byte of the network is read; then the CX2 (or CX) download, streamed into
|
|
6
|
+
* the CX2 (or CX) importer.
|
|
7
|
+
* - probe: the summary. list: NDEx's v2 network search. validate: the summary's modificationTime.
|
|
8
|
+
* - expand: NDEx's neighborhood query (`expand.ts`).
|
|
9
|
+
*
|
|
10
|
+
* Errors are classified by status; a body is read only from a 401, 403 or 404 (NDEx's own
|
|
11
|
+
* `errorCode`, passed through as `serverCode`), so a 500 with a Java stack trace never reaches a
|
|
12
|
+
* report.
|
|
13
|
+
* @module @graphty/graph-io/sources/ndex
|
|
14
|
+
*/
|
|
15
|
+
import { defineSource } from "../define.js";
|
|
16
|
+
import { failOn } from "../fail.js";
|
|
17
|
+
import { NDEX_SOURCE_ID } from "../ids.js";
|
|
18
|
+
import { checkedUuid, checkEndpoint, ndexFetch } from "./client.js";
|
|
19
|
+
import { NDEX_DESCRIPTOR } from "./descriptor.js";
|
|
20
|
+
import { expandNdex } from "./expand.js";
|
|
21
|
+
export { NDEX_DESCRIPTOR } from "./descriptor.js";
|
|
22
|
+
export { parseShareUrl } from "./share-url.js";
|
|
23
|
+
/**
|
|
24
|
+
* Read a network's summary.
|
|
25
|
+
* @param uuid - the checked UUID
|
|
26
|
+
* @param ctx - the context
|
|
27
|
+
* @returns the summary and the bytes it took
|
|
28
|
+
*/
|
|
29
|
+
async function readSummary(uuid, ctx) {
|
|
30
|
+
const response = await ndexFetch(ctx, `v3/networks/${uuid}/summary`, uuid, {
|
|
31
|
+
headers: { Accept: "application/json" },
|
|
32
|
+
});
|
|
33
|
+
const text = await response.text();
|
|
34
|
+
try {
|
|
35
|
+
return { summary: JSON.parse(text), bytes: new TextEncoder().encode(text).byteLength };
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return failOn(ctx.report, "E_SOURCE_RESPONSE", "the NDEx summary is not JSON", {
|
|
39
|
+
expected: "json",
|
|
40
|
+
contentType: response.headers.get("content-type"),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* An NDEx time (epoch milliseconds) as an ISO string.
|
|
46
|
+
* @param ms - the time
|
|
47
|
+
* @returns the ISO string, or undefined
|
|
48
|
+
*/
|
|
49
|
+
function iso(ms) {
|
|
50
|
+
return typeof ms === "number" && Number.isFinite(ms) ? new Date(ms).toISOString() : undefined;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The download size the summary gives for a format.
|
|
54
|
+
* @param summary - the summary
|
|
55
|
+
* @param format - "cx2" or "cx"
|
|
56
|
+
* @returns the size in bytes, or undefined
|
|
57
|
+
*/
|
|
58
|
+
function sizeOf(summary, format) {
|
|
59
|
+
return format === "cx" ? summary.cxFileSize : summary.cx2FileSize;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Stop the load before its first byte when the summary says a cap would cut it: a network file cut
|
|
63
|
+
* short is not a graph, so this is E_SOURCE_LIMIT under either `onLimit`.
|
|
64
|
+
* @param summary - the summary
|
|
65
|
+
* @param format - the download format
|
|
66
|
+
* @param ctx - the context
|
|
67
|
+
*/
|
|
68
|
+
function checkCaps(summary, format, ctx) {
|
|
69
|
+
const caps = [
|
|
70
|
+
["maxNodes", summary.nodeCount, ctx.limits.maxNodes],
|
|
71
|
+
["maxEdges", summary.edgeCount, ctx.limits.maxEdges],
|
|
72
|
+
["maxBytes", sizeOf(summary, format), ctx.limits.maxBytes],
|
|
73
|
+
];
|
|
74
|
+
for (const [limit, value, cap] of caps) {
|
|
75
|
+
if (value !== undefined && cap !== undefined && value > cap) {
|
|
76
|
+
failOn(ctx.report, "E_SOURCE_LIMIT", `the network's ${limit} of ${String(value)} is over the cap`, {
|
|
77
|
+
limit,
|
|
78
|
+
value,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The graph facts a summary adds: when it changed, and who may use it.
|
|
85
|
+
* @param summary - the summary
|
|
86
|
+
* @returns the facts
|
|
87
|
+
*/
|
|
88
|
+
function metaOf(summary) {
|
|
89
|
+
const meta = {};
|
|
90
|
+
const modified = iso(summary.modificationTime);
|
|
91
|
+
if (modified !== undefined) {
|
|
92
|
+
meta.modified = modified;
|
|
93
|
+
}
|
|
94
|
+
if (typeof summary.visibility === "string") {
|
|
95
|
+
meta.visibility = summary.visibility;
|
|
96
|
+
}
|
|
97
|
+
for (const key of ["rights", "rightsHolder"]) {
|
|
98
|
+
const value = summary.properties?.[key]?.v;
|
|
99
|
+
if (typeof value === "string") {
|
|
100
|
+
meta[key] = value;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return meta;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* The validators of a summary.
|
|
107
|
+
* @param summary - the summary
|
|
108
|
+
* @returns `{ modified }` when NDEx gave a modification time
|
|
109
|
+
*/
|
|
110
|
+
function validatorsOf(summary) {
|
|
111
|
+
const modified = iso(summary.modificationTime);
|
|
112
|
+
return modified === undefined ? {} : { modified };
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The NDEx source. Experimental.
|
|
116
|
+
* @category Network sources
|
|
117
|
+
*/
|
|
118
|
+
export const ndexSource = defineSource({
|
|
119
|
+
id: NDEX_SOURCE_ID,
|
|
120
|
+
descriptor: NDEX_DESCRIPTOR,
|
|
121
|
+
async file(params, ctx) {
|
|
122
|
+
const uuid = checkedUuid(params.uuid, ctx);
|
|
123
|
+
const format = params.format ?? "cx2";
|
|
124
|
+
const { summary, bytes } = await readSummary(uuid, ctx);
|
|
125
|
+
checkCaps(summary, format, ctx);
|
|
126
|
+
const size = sizeOf(summary, format);
|
|
127
|
+
// progress counts every byte read, the summary's included
|
|
128
|
+
ctx.progress(bytes, size === undefined ? undefined : bytes + size, "bytes");
|
|
129
|
+
// records the validators in report.source; the file path keeps them
|
|
130
|
+
ctx.finish({ validators: validatorsOf(summary) });
|
|
131
|
+
const path = format === "cx" ? `v2/network/${uuid}` : `v3/networks/${uuid}`;
|
|
132
|
+
const body = await ndexFetch(ctx, path, uuid);
|
|
133
|
+
return { body, format, meta: metaOf(summary) };
|
|
134
|
+
},
|
|
135
|
+
async probe(params, ctx) {
|
|
136
|
+
const uuid = checkedUuid(params.uuid, ctx);
|
|
137
|
+
const { summary } = await readSummary(uuid, ctx);
|
|
138
|
+
return {
|
|
139
|
+
ok: true,
|
|
140
|
+
counts: {
|
|
141
|
+
nodes: summary.nodeCount,
|
|
142
|
+
edges: summary.edgeCount,
|
|
143
|
+
bytes: sizeOf(summary, params.format ?? "cx2"),
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
},
|
|
147
|
+
async list(query, ctx) {
|
|
148
|
+
checkEndpoint(ctx);
|
|
149
|
+
const start = Number(query.cursor?.start ?? 0);
|
|
150
|
+
const size = query.size ?? 25;
|
|
151
|
+
const body = await ctx.fetchJson(`v2/search/network?start=${String(start)}&size=${String(size)}`, {
|
|
152
|
+
method: "POST",
|
|
153
|
+
idempotent: true,
|
|
154
|
+
headers: { "Content-Type": "application/json" },
|
|
155
|
+
body: JSON.stringify({ searchString: query.search ?? "" }),
|
|
156
|
+
});
|
|
157
|
+
const networks = Array.isArray(body.networks)
|
|
158
|
+
? body.networks
|
|
159
|
+
: failOn(ctx.report, "E_SOURCE_RESPONSE", "the NDEx search answer has no networks", {
|
|
160
|
+
expected: "ndex-search",
|
|
161
|
+
contentType: "application/json",
|
|
162
|
+
});
|
|
163
|
+
const { numFound } = body;
|
|
164
|
+
const items = networks.flatMap((n) => typeof n.externalId === "string"
|
|
165
|
+
? [
|
|
166
|
+
{
|
|
167
|
+
params: { uuid: n.externalId },
|
|
168
|
+
name: n.name ?? n.externalId,
|
|
169
|
+
nodeCount: n.nodeCount,
|
|
170
|
+
edgeCount: n.edgeCount,
|
|
171
|
+
modified: iso(n.modificationTime),
|
|
172
|
+
},
|
|
173
|
+
]
|
|
174
|
+
: []);
|
|
175
|
+
const total = typeof numFound === "number" ? numFound : undefined;
|
|
176
|
+
const more = total === undefined ? networks.length === size : start + networks.length < total;
|
|
177
|
+
return { items, next: more && networks.length > 0 ? { start: start + networks.length } : null, total };
|
|
178
|
+
},
|
|
179
|
+
async validate(params, seen, ctx) {
|
|
180
|
+
const uuid = checkedUuid(params.uuid, ctx);
|
|
181
|
+
const validators = validatorsOf((await readSummary(uuid, ctx)).summary);
|
|
182
|
+
if (seen.modified === undefined || validators.modified === undefined) {
|
|
183
|
+
return { status: "unverifiable", validators };
|
|
184
|
+
}
|
|
185
|
+
return seen.modified === validators.modified
|
|
186
|
+
? { status: "current", via: "modified", validators }
|
|
187
|
+
: { status: "changed", via: "modified", changedAt: validators.modified, validators };
|
|
188
|
+
},
|
|
189
|
+
expand: expandNdex,
|
|
190
|
+
});
|
|
191
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sources/ndex/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The parameters of the NDEx source (design section 12.1). Experimental. The NDEx work may add
|
|
3
|
+
* optional fields only.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* What to load from NDEx. Experimental.
|
|
7
|
+
* @category Network sources
|
|
8
|
+
*/
|
|
9
|
+
export interface NdexParams {
|
|
10
|
+
/** The network's UUID ("86719f5b-1439-11f0-9806-005056ae3c32"). */
|
|
11
|
+
readonly uuid: string;
|
|
12
|
+
/** The download format. @defaultValue "cx2" */
|
|
13
|
+
readonly format?: "cx2" | "cx" | undefined;
|
|
14
|
+
/** The node attribute that identifies a node across NDEx's two id spaces (for expand): "name", "represents". */
|
|
15
|
+
readonly idAttribute?: string | undefined;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../../../src/sources/ndex/params.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,gHAAgH;IAChH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../../../src/sources/ndex/params.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NDEx share links: a network's page or API URL, possibly carrying a link-share access key.
|
|
3
|
+
*/
|
|
4
|
+
import { type Credential } from "../types.js";
|
|
5
|
+
/**
|
|
6
|
+
* What a share link says: the network, the NDEx server, and the access key as a credential.
|
|
7
|
+
* Experimental.
|
|
8
|
+
* @category Network sources
|
|
9
|
+
*/
|
|
10
|
+
export interface NdexShareLink {
|
|
11
|
+
/** The params to load the network with. */
|
|
12
|
+
readonly params: {
|
|
13
|
+
/** The network's NDEx id. */
|
|
14
|
+
readonly uuid: string;
|
|
15
|
+
};
|
|
16
|
+
/** The NDEx server the link points at ("https://www.ndexbio.org/"). */
|
|
17
|
+
readonly endpoint: string;
|
|
18
|
+
/** The link's access key, sent only to that server; absent when the link has none. */
|
|
19
|
+
readonly credential?: Credential | undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Read an NDEx share link (`https://www.ndexbio.org/viewer/networks/<uuid>?accesskey=<key>`, the
|
|
23
|
+
* older `#/network/<uuid>` form, or an API URL). The access key leaves the URL and becomes a
|
|
24
|
+
* credential bound to the link's server, so it is never logged or stored with the params.
|
|
25
|
+
* Rejects with `E_SOURCE_PARAM` (`name: "url"`): `reason: "format"` when the text is not a URL
|
|
26
|
+
* naming a network, `"credentials-in-url"` when it carries a user name or password. Experimental.
|
|
27
|
+
* @param url - the link
|
|
28
|
+
* @returns the params, endpoint and credential to load it with
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* const link = parseShareUrl(sharedUrl);
|
|
32
|
+
* const { snapshot } = await loadFromSource("ndex", link.params, {
|
|
33
|
+
* endpoint: link.endpoint,
|
|
34
|
+
* credential: link.credential,
|
|
35
|
+
* });
|
|
36
|
+
* ```
|
|
37
|
+
* @category Network sources
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseShareUrl(url: string | URL): NdexShareLink;
|
|
40
|
+
//# sourceMappingURL=share-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-url.d.ts","sourceRoot":"","sources":["../../../../src/sources/ndex/share-url.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE;QACb,6BAA6B;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,aAAa,CA0B9D"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NDEx share links: a network's page or API URL, possibly carrying a link-share access key.
|
|
3
|
+
*/
|
|
4
|
+
import { credentials } from "../credentials.js";
|
|
5
|
+
import { failAlone } from "../fail.js";
|
|
6
|
+
import { NDEX_SOURCE_ID } from "../ids.js";
|
|
7
|
+
import { ACCESS_KEY_QUERY } from "./client.js";
|
|
8
|
+
/** A network UUID anywhere in a URL's path or hash. */
|
|
9
|
+
const UUID_IN_URL = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;
|
|
10
|
+
/**
|
|
11
|
+
* Read an NDEx share link (`https://www.ndexbio.org/viewer/networks/<uuid>?accesskey=<key>`, the
|
|
12
|
+
* older `#/network/<uuid>` form, or an API URL). The access key leaves the URL and becomes a
|
|
13
|
+
* credential bound to the link's server, so it is never logged or stored with the params.
|
|
14
|
+
* Rejects with `E_SOURCE_PARAM` (`name: "url"`): `reason: "format"` when the text is not a URL
|
|
15
|
+
* naming a network, `"credentials-in-url"` when it carries a user name or password. Experimental.
|
|
16
|
+
* @param url - the link
|
|
17
|
+
* @returns the params, endpoint and credential to load it with
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const link = parseShareUrl(sharedUrl);
|
|
21
|
+
* const { snapshot } = await loadFromSource("ndex", link.params, {
|
|
22
|
+
* endpoint: link.endpoint,
|
|
23
|
+
* credential: link.credential,
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
* @category Network sources
|
|
27
|
+
*/
|
|
28
|
+
export function parseShareUrl(url) {
|
|
29
|
+
let parsed;
|
|
30
|
+
try {
|
|
31
|
+
parsed = new URL(url);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return refuse("format");
|
|
35
|
+
}
|
|
36
|
+
if (parsed.username !== "" || parsed.password !== "") {
|
|
37
|
+
return refuse("credentials-in-url");
|
|
38
|
+
}
|
|
39
|
+
// the older viewer keeps the network and its key in the hash
|
|
40
|
+
const hash = new URL(parsed.hash.replace(/^#/, ""), "https://hash.invalid/");
|
|
41
|
+
const uuid = UUID_IN_URL.exec(`${parsed.pathname} ${hash.pathname}`)?.[0];
|
|
42
|
+
if (uuid === undefined || (parsed.protocol !== "https:" && parsed.protocol !== "http:")) {
|
|
43
|
+
return refuse("format");
|
|
44
|
+
}
|
|
45
|
+
// the bare host redirects to www without CORS headers, so a page cannot follow it
|
|
46
|
+
const host = parsed.host.toLowerCase() === "ndexbio.org" ? "www.ndexbio.org" : parsed.host;
|
|
47
|
+
const endpoint = `${parsed.protocol}//${host}/`;
|
|
48
|
+
const key = parsed.searchParams.get(ACCESS_KEY_QUERY) ?? hash.searchParams.get(ACCESS_KEY_QUERY);
|
|
49
|
+
const params = { uuid: uuid.toLowerCase() };
|
|
50
|
+
if (key === null || key === "") {
|
|
51
|
+
return { params, endpoint };
|
|
52
|
+
}
|
|
53
|
+
const credential = credentials.apiKey({ query: ACCESS_KEY_QUERY }, key, { origins: [new URL(endpoint).origin] });
|
|
54
|
+
return { params, endpoint, credential };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Reject a share link.
|
|
58
|
+
* @param reason - why
|
|
59
|
+
* @returns never
|
|
60
|
+
*/
|
|
61
|
+
function refuse(reason) {
|
|
62
|
+
return failAlone("E_SOURCE_PARAM", "not an NDEx share link", { name: "url", reason }, `source:${NDEX_SOURCE_ID}`);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=share-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-url.js","sourceRoot":"","sources":["../../../../src/sources/ndex/share-url.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,uDAAuD;AACvD,MAAM,WAAW,GAAG,+DAA+D,CAAC;AAmBpF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAAC,GAAiB;IAC3C,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACD,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IACD,6DAA6D;IAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QACtF,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,kFAAkF;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAC3F,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACjG,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IAC5C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,SAAS,MAAM,CAAC,MAAuC;IACnD,OAAO,SAAS,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,cAAc,EAAE,CAAC,CAAC;AACtH,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `SourceParamsMap`: the params type of every built-in source by id, so `loadFromSource("ndex", ...)`
|
|
3
|
+
* type-checks its params. A consumer adds its own source by declaration merging.
|
|
4
|
+
*/
|
|
5
|
+
import { type CypherParams } from "./cypher/params.js";
|
|
6
|
+
import { type NdexParams } from "./ndex/params.js";
|
|
7
|
+
import { type OpenAlexParams, type RestParams } from "./rest/params.js";
|
|
8
|
+
/**
|
|
9
|
+
* Parameter types by source id; extend it by declaration merging:
|
|
10
|
+
* `declare module "@graphty/graph-io" { interface SourceParamsMap { people: { team: string } } }`.
|
|
11
|
+
* Experimental.
|
|
12
|
+
* @category Network sources
|
|
13
|
+
*/
|
|
14
|
+
export interface SourceParamsMap {
|
|
15
|
+
/** NDEx. */
|
|
16
|
+
ndex: NdexParams;
|
|
17
|
+
/** Any openCypher server. */
|
|
18
|
+
cypher: CypherParams;
|
|
19
|
+
/** Neo4j. */
|
|
20
|
+
neo4j: CypherParams;
|
|
21
|
+
/** Amazon Neptune. */
|
|
22
|
+
neptune: CypherParams;
|
|
23
|
+
/** A REST API through a mapping. */
|
|
24
|
+
rest: RestParams;
|
|
25
|
+
/** OpenAlex. */
|
|
26
|
+
openalex: OpenAlexParams;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../../src/sources/params.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAExE;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC5B,YAAY;IACZ,IAAI,EAAE,UAAU,CAAC;IACjB,6BAA6B;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,sBAAsB;IACtB,OAAO,EAAE,YAAY,CAAC;IACtB,oCAAoC;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB;IAChB,QAAQ,EAAE,cAAc,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../../src/sources/params.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The source registry (design section 3): sources by id, in their own name space beside the
|
|
3
|
+
* formats. Lazy sources are registered by descriptor and load their code on first use, so listing
|
|
4
|
+
* sources loads none. A FormatRegistry holds one, so one object holds formats and sources.
|
|
5
|
+
*/
|
|
6
|
+
import { type GraphBuilder, type GraphSink } from "@graphty/graph-format";
|
|
7
|
+
import { type FormatRegistry, type ImportGraphResult } from "../registry.js";
|
|
8
|
+
import { type ImportReport } from "../types.js";
|
|
9
|
+
import { type ExpandRequest, type GraphSource, type LazySource, type LoadFromSourceOptions, type SourceFreshness, type SourceInfo, type SourceListing, type SourceListQuery, type SourceProbe, type SourceValidators } from "./types.js";
|
|
10
|
+
/** What a SourceRegistry borrows from its FormatRegistry: building and freezing a graph. */
|
|
11
|
+
interface SourceBuilding {
|
|
12
|
+
/**
|
|
13
|
+
* A builder seeded from the load options.
|
|
14
|
+
* @param options - the options
|
|
15
|
+
* @param format - the report format name
|
|
16
|
+
* @returns the builder
|
|
17
|
+
*/
|
|
18
|
+
readonly newBuilder: (options: LoadFromSourceOptions, format: string) => GraphBuilder;
|
|
19
|
+
/**
|
|
20
|
+
* Freeze a filled builder into a load result.
|
|
21
|
+
* @param format - the result's format
|
|
22
|
+
* @param builder - the builder
|
|
23
|
+
* @param report - the report
|
|
24
|
+
* @param options - the options
|
|
25
|
+
* @returns the result
|
|
26
|
+
*/
|
|
27
|
+
readonly freeze: (format: string, builder: GraphBuilder, report: ImportReport, options: LoadFromSourceOptions) => ImportGraphResult;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The sources of one FormatRegistry. Experimental.
|
|
31
|
+
* @category Network sources
|
|
32
|
+
*/
|
|
33
|
+
export declare class SourceRegistry {
|
|
34
|
+
private readonly formats;
|
|
35
|
+
private readonly building;
|
|
36
|
+
private readonly entries;
|
|
37
|
+
/**
|
|
38
|
+
* Create one for a format registry, whose importers read `file` sources.
|
|
39
|
+
* @param formats - the format registry
|
|
40
|
+
* @param building - how it builds and freezes graphs
|
|
41
|
+
*/
|
|
42
|
+
constructor(formats: FormatRegistry, building: SourceBuilding);
|
|
43
|
+
/**
|
|
44
|
+
* Register a source or a lazy source. A malformed one, or an id already taken, throws an
|
|
45
|
+
* ImportError with E_SOURCE_INVALID.
|
|
46
|
+
* @param source - the source
|
|
47
|
+
*/
|
|
48
|
+
register(source: GraphSource<never> | LazySource): void;
|
|
49
|
+
/**
|
|
50
|
+
* Whether a source id is registered.
|
|
51
|
+
* @param id - the id
|
|
52
|
+
* @returns true when registered
|
|
53
|
+
*/
|
|
54
|
+
has(id: string): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Every registered source, without loading any code.
|
|
57
|
+
* @returns one entry per source, in registration order
|
|
58
|
+
*/
|
|
59
|
+
list(): readonly SourceInfo[];
|
|
60
|
+
/**
|
|
61
|
+
* A source by id, loading a lazy one; a source object passes through after its checks.
|
|
62
|
+
* @param source - the id or the source
|
|
63
|
+
* @returns the loaded source
|
|
64
|
+
*/
|
|
65
|
+
resolve(source: string | GraphSource<never>): Promise<GraphSource<never>>;
|
|
66
|
+
/**
|
|
67
|
+
* Load a graph from a source.
|
|
68
|
+
* @param source - the id or the source
|
|
69
|
+
* @param params - its params
|
|
70
|
+
* @param options - endpoint, credential, cursor, caps and the import options
|
|
71
|
+
* @returns the graph and the report
|
|
72
|
+
*/
|
|
73
|
+
load(source: string | GraphSource<never>, params: Readonly<Record<string, unknown>>, options?: LoadFromSourceOptions): Promise<ImportGraphResult>;
|
|
74
|
+
/**
|
|
75
|
+
* Load from a source into a sink you own.
|
|
76
|
+
* @param source - the id or the source
|
|
77
|
+
* @param params - its params
|
|
78
|
+
* @param sink - where to write
|
|
79
|
+
* @param options - the options
|
|
80
|
+
* @returns the report
|
|
81
|
+
*/
|
|
82
|
+
import(source: string | GraphSource<never>, params: Readonly<Record<string, unknown>>, sink: GraphSink, options?: LoadFromSourceOptions): Promise<ImportReport>;
|
|
83
|
+
/**
|
|
84
|
+
* Fetch the neighborhood of some nodes: a snapshot of only what was fetched.
|
|
85
|
+
* @param source - the id or the source
|
|
86
|
+
* @param request - the seeds and how far to go
|
|
87
|
+
* @param options - the options
|
|
88
|
+
* @returns the fetched part and the report
|
|
89
|
+
*/
|
|
90
|
+
expand(source: string | GraphSource<never>, request: ExpandRequest<Readonly<Record<string, unknown>>>, options?: LoadFromSourceOptions): Promise<ImportGraphResult>;
|
|
91
|
+
/**
|
|
92
|
+
* Check params and credential without loading.
|
|
93
|
+
* @param source - the id or the source
|
|
94
|
+
* @param params - its params
|
|
95
|
+
* @param options - the options
|
|
96
|
+
* @returns what the service said
|
|
97
|
+
*/
|
|
98
|
+
probe(source: string | GraphSource<never>, params: Readonly<Record<string, unknown>>, options?: LoadFromSourceOptions): Promise<SourceProbe>;
|
|
99
|
+
/**
|
|
100
|
+
* Search what a source holds.
|
|
101
|
+
* @param source - the id or the source
|
|
102
|
+
* @param query - the search
|
|
103
|
+
* @param options - the options
|
|
104
|
+
* @returns one page of results
|
|
105
|
+
*/
|
|
106
|
+
search(source: string | GraphSource<never>, query: SourceListQuery<Readonly<Record<string, unknown>>>, options?: LoadFromSourceOptions): Promise<SourceListing>;
|
|
107
|
+
/**
|
|
108
|
+
* Tell whether data loaded earlier changed.
|
|
109
|
+
* @param source - the id or the source
|
|
110
|
+
* @param params - the params it was loaded with
|
|
111
|
+
* @param seen - the validators recorded then
|
|
112
|
+
* @param options - the options
|
|
113
|
+
* @returns whether it changed
|
|
114
|
+
*/
|
|
115
|
+
validate(source: string | GraphSource<never>, params: Readonly<Record<string, unknown>>, seen: SourceValidators, options?: LoadFromSourceOptions): Promise<SourceFreshness>;
|
|
116
|
+
}
|
|
117
|
+
export {};
|
|
118
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/sources/registry.ts"],"names":[],"mappings":"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"}
|