@graphty/graph-io 0.3.47 → 0.3.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{approximations-wWjCRzKj.js → approximations-Bzn3L-je.js} +2 -2
- package/dist/chunks/{approximations-wWjCRzKj.js.map → approximations-Bzn3L-je.js.map} +1 -1
- package/dist/chunks/bends-BGXjv_U4.js +129 -0
- package/dist/chunks/bends-BGXjv_U4.js.map +1 -0
- package/dist/chunks/{block-DiGq58c3.js → block-iptrlMBb.js} +947 -134
- package/dist/chunks/block-iptrlMBb.js.map +1 -0
- package/dist/chunks/choose-CczZJaX_.js +717 -0
- package/dist/chunks/choose-CczZJaX_.js.map +1 -0
- package/dist/chunks/codes-BE2xir2k.js +157 -0
- package/dist/chunks/codes-BE2xir2k.js.map +1 -0
- package/dist/chunks/{constants-BKwqelYD.js → constants-CKkYLPtt.js} +2 -2
- package/dist/chunks/{constants-BKwqelYD.js.map → constants-CKkYLPtt.js.map} +1 -1
- package/dist/chunks/context-C3p0RQxR.js +664 -0
- package/dist/chunks/context-C3p0RQxR.js.map +1 -0
- package/dist/chunks/{convert-BcQ8_jMo.js → convert-Ct2zelbQ.js} +7 -2
- package/dist/chunks/convert-Ct2zelbQ.js.map +1 -0
- package/dist/chunks/credentials-DXHx7nwR.js +349 -0
- package/dist/chunks/credentials-DXHx7nwR.js.map +1 -0
- package/dist/chunks/cx-export-Bt6NoqTQ.js +259 -0
- package/dist/chunks/cx-export-Bt6NoqTQ.js.map +1 -0
- package/dist/chunks/descriptor-B28U25x4.js +60 -0
- package/dist/chunks/descriptor-B28U25x4.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/descriptor-DLA5kINx.js +142 -0
- package/dist/chunks/descriptor-DLA5kINx.js.map +1 -0
- package/dist/chunks/{emit-CwU8cUmG.js → emit-BwHQkZle.js} +1690 -103
- package/dist/chunks/emit-BwHQkZle.js.map +1 -0
- package/dist/chunks/{escape-CgzxiYPg.js → escape-CuCIzNMB.js} +12 -12
- package/dist/chunks/{escape-CgzxiYPg.js.map → escape-CuCIzNMB.js.map} +1 -1
- package/dist/chunks/{export-BvqAXCKh.js → export-Cha4dRFz.js} +48 -1780
- package/dist/chunks/export-Cha4dRFz.js.map +1 -0
- package/dist/chunks/{exporter--Mk9gXCJ.js → exporter-BP6otMO6.js} +6 -4
- package/dist/chunks/{exporter--Mk9gXCJ.js.map → exporter-BP6otMO6.js.map} +1 -1
- package/dist/chunks/{exporter-CrDWIyiq.js → exporter-D2CETOMK.js} +1222 -154
- package/dist/chunks/exporter-D2CETOMK.js.map +1 -0
- package/dist/chunks/{exporter-DndFlGSa.js → exporter-D9yMtocA.js} +7 -6
- package/dist/chunks/{exporter-DndFlGSa.js.map → exporter-D9yMtocA.js.map} +1 -1
- package/dist/chunks/exporter-_jrBTnos.js +1009 -0
- package/dist/chunks/exporter-_jrBTnos.js.map +1 -0
- package/dist/chunks/{exporter-CJgfhF-l.js → exporter-nDfxIK5D.js} +9 -7
- package/dist/chunks/{exporter-CJgfhF-l.js.map → exporter-nDfxIK5D.js.map} +1 -1
- package/dist/chunks/format-BXiAb-1h.js +408 -0
- package/dist/chunks/format-BXiAb-1h.js.map +1 -0
- package/dist/chunks/{generic-Dq1ntt9q.js → generic-ymWCETAJ.js} +387 -31
- package/dist/chunks/generic-ymWCETAJ.js.map +1 -0
- package/dist/chunks/{importer-CMmeMWlC.js → importer-B92x1xY5.js} +15 -263
- package/dist/chunks/importer-B92x1xY5.js.map +1 -0
- package/dist/chunks/{importer-DiZRmOQG.js → importer-CT9mJ1nn.js} +328 -90
- package/dist/chunks/importer-CT9mJ1nn.js.map +1 -0
- package/dist/chunks/{importer-COTK9Tsl.js → importer-DaLTjbds.js} +116 -1099
- package/dist/chunks/importer-DaLTjbds.js.map +1 -0
- package/dist/chunks/{importer-iFYPEKaJ.js → importer-GREKMdIf.js} +28 -16
- package/dist/chunks/importer-GREKMdIf.js.map +1 -0
- package/dist/chunks/{importer-BSvfrX_h.js → importer-PqaaKKnY.js} +23 -1016
- package/dist/chunks/importer-PqaaKKnY.js.map +1 -0
- package/dist/chunks/{importer-yh_aBCU6.js → importer-Vn5QvmmJ.js} +66 -12
- package/dist/chunks/importer-Vn5QvmmJ.js.map +1 -0
- package/dist/chunks/{importer-e6LGpqHB.js → importer-vRq4h3j5.js} +1470 -354
- package/dist/chunks/importer-vRq4h3j5.js.map +1 -0
- package/dist/chunks/input-CAxt_aV-.js +1397 -0
- package/dist/chunks/input-CAxt_aV-.js.map +1 -0
- package/dist/chunks/{json-elements-DJZRZ6jd.js → json-elements-Cq76WjnZ.js} +4 -4
- package/dist/chunks/{json-elements-DJZRZ6jd.js.map → json-elements-Cq76WjnZ.js.map} +1 -1
- package/dist/chunks/{lexicon-CT69Kd87.js → lexicon-Clf4QIyl.js} +299 -77
- package/dist/chunks/lexicon-Clf4QIyl.js.map +1 -0
- package/dist/chunks/{ontology-export-G4MqRdux.js → ontology-export-OMo91mb0.js} +4 -3
- package/dist/chunks/{ontology-export-G4MqRdux.js.map → ontology-export-OMo91mb0.js.map} +1 -1
- package/dist/chunks/{records-CiaWZrFH.js → records-NJiYvekn.js} +2 -2
- package/dist/chunks/{records-CiaWZrFH.js.map → records-NJiYvekn.js.map} +1 -1
- package/dist/chunks/{format-BpQBx8MZ.js → report-CwMfYa9J.js} +70 -127
- package/dist/chunks/report-CwMfYa9J.js.map +1 -0
- package/dist/chunks/round-trip-Zm3_ivgq.js +79 -0
- package/dist/chunks/round-trip-Zm3_ivgq.js.map +1 -0
- package/dist/chunks/sigv4-EokFic1V.js +247 -0
- package/dist/chunks/sigv4-EokFic1V.js.map +1 -0
- package/dist/chunks/{styles-BQnsga7p.js → styles-CCs214_3.js} +1300 -168
- package/dist/chunks/styles-CCs214_3.js.map +1 -0
- package/dist/chunks/styles-Cm62yyQX.js +2812 -0
- package/dist/chunks/styles-Cm62yyQX.js.map +1 -0
- package/dist/chunks/styles-DPQQIig4.js +1928 -0
- package/dist/chunks/styles-DPQQIig4.js.map +1 -0
- package/dist/chunks/styles-yed-UMFdNqze.js +1213 -0
- package/dist/chunks/styles-yed-UMFdNqze.js.map +1 -0
- package/dist/chunks/{text-CzJNFOS9.js → text-ystE2bYi.js} +2 -2
- package/dist/chunks/{text-CzJNFOS9.js.map → text-ystE2bYi.js.map} +1 -1
- 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 +5 -4
- package/dist/dot.js.map +1 -1
- package/dist/gexf.js +42 -10
- package/dist/gexf.js.map +1 -1
- package/dist/gml.js +850 -193
- package/dist/gml.js.map +1 -1
- package/dist/graph-io.js +1189 -220
- package/dist/graph-io.js.map +1 -1
- package/dist/graphml.js +3 -3
- package/dist/json.js +3 -2
- 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/positions.js +45 -3
- package/dist/positions.js.map +1 -1
- package/dist/sources-cypher.d.ts +1 -0
- package/dist/sources-cypher.js +1351 -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 +1377 -0
- package/dist/sources-rest.js.map +1 -0
- package/dist/sources-sparql.d.ts +1 -0
- package/dist/sources-sparql.js +405 -0
- package/dist/sources-sparql.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/importer.d.ts.map +1 -1
- package/dist/src/formats/cx/importer.js +5 -1
- package/dist/src/formats/cx/importer.js.map +1 -1
- package/dist/src/formats/cx/styles.d.ts +24 -1
- package/dist/src/formats/cx/styles.d.ts.map +1 -1
- package/dist/src/formats/cx/styles.js +118 -11
- package/dist/src/formats/cx/styles.js.map +1 -1
- package/dist/src/formats/cx2/importer.d.ts.map +1 -1
- package/dist/src/formats/cx2/importer.js +1 -0
- package/dist/src/formats/cx2/importer.js.map +1 -1
- package/dist/src/formats/cx2/styles.d.ts.map +1 -1
- package/dist/src/formats/cx2/styles.js +3 -1
- package/dist/src/formats/cx2/styles.js.map +1 -1
- package/dist/src/formats/cys/importer.d.ts.map +1 -1
- package/dist/src/formats/cys/importer.js +1 -0
- package/dist/src/formats/cys/importer.js.map +1 -1
- package/dist/src/formats/cys/styles.d.ts +2 -0
- package/dist/src/formats/cys/styles.d.ts.map +1 -1
- package/dist/src/formats/cys/styles.js +15 -7
- package/dist/src/formats/cys/styles.js.map +1 -1
- package/dist/src/formats/dot/drawing.d.ts +98 -0
- package/dist/src/formats/dot/drawing.d.ts.map +1 -0
- package/dist/src/formats/dot/drawing.js +734 -0
- package/dist/src/formats/dot/drawing.js.map +1 -0
- package/dist/src/formats/dot/importer.d.ts.map +1 -1
- package/dist/src/formats/dot/importer.js +108 -31
- package/dist/src/formats/dot/importer.js.map +1 -1
- package/dist/src/formats/dot/label-places.d.ts +34 -0
- package/dist/src/formats/dot/label-places.d.ts.map +1 -0
- package/dist/src/formats/dot/label-places.js +179 -0
- package/dist/src/formats/dot/label-places.js.map +1 -0
- package/dist/src/formats/dot/record.d.ts +50 -0
- package/dist/src/formats/dot/record.d.ts.map +1 -0
- package/dist/src/formats/dot/record.js +275 -0
- package/dist/src/formats/dot/record.js.map +1 -0
- package/dist/src/formats/dot/styles.d.ts +62 -2
- package/dist/src/formats/dot/styles.d.ts.map +1 -1
- package/dist/src/formats/dot/styles.js +1457 -120
- package/dist/src/formats/dot/styles.js.map +1 -1
- package/dist/src/formats/gexf/dialog-metrics.d.ts +15 -0
- package/dist/src/formats/gexf/dialog-metrics.d.ts.map +1 -0
- package/dist/src/formats/gexf/dialog-metrics.js +59 -0
- package/dist/src/formats/gexf/dialog-metrics.js.map +1 -0
- package/dist/src/formats/gexf/importer.d.ts +7 -0
- package/dist/src/formats/gexf/importer.d.ts.map +1 -1
- package/dist/src/formats/gexf/importer.js +41 -5
- package/dist/src/formats/gexf/importer.js.map +1 -1
- package/dist/src/formats/gexf/preview.d.ts +77 -0
- package/dist/src/formats/gexf/preview.d.ts.map +1 -0
- package/dist/src/formats/gexf/preview.js +191 -0
- package/dist/src/formats/gexf/preview.js.map +1 -0
- package/dist/src/formats/gexf/schema.d.ts.map +1 -1
- package/dist/src/formats/gexf/schema.js +2 -1
- package/dist/src/formats/gexf/schema.js.map +1 -1
- package/dist/src/formats/gexf/styles.d.ts +60 -16
- package/dist/src/formats/gexf/styles.d.ts.map +1 -1
- package/dist/src/formats/gexf/styles.js +883 -131
- package/dist/src/formats/gexf/styles.js.map +1 -1
- package/dist/src/formats/gml/importer.d.ts +5 -2
- package/dist/src/formats/gml/importer.d.ts.map +1 -1
- package/dist/src/formats/gml/importer.js +258 -71
- package/dist/src/formats/gml/importer.js.map +1 -1
- package/dist/src/formats/gml/index.d.ts +1 -1
- package/dist/src/formats/gml/index.d.ts.map +1 -1
- package/dist/src/formats/gml/index.js +1 -1
- package/dist/src/formats/gml/index.js.map +1 -1
- package/dist/src/formats/gml/positions.d.ts +7 -0
- package/dist/src/formats/gml/positions.d.ts.map +1 -1
- package/dist/src/formats/gml/positions.js +29 -7
- package/dist/src/formats/gml/positions.js.map +1 -1
- package/dist/src/formats/gml/styles.d.ts.map +1 -1
- package/dist/src/formats/gml/styles.js +756 -103
- 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 +8 -12
- package/dist/src/formats/graphml/styles-plain.js.map +1 -1
- package/dist/src/formats/graphml/styles-yed.d.ts +21 -15
- package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -1
- package/dist/src/formats/graphml/styles-yed.js +749 -148
- package/dist/src/formats/graphml/styles-yed.js.map +1 -1
- package/dist/src/formats/graphml/styles-yfiles3.d.ts +1 -1
- package/dist/src/formats/graphml/styles-yfiles3.d.ts.map +1 -1
- package/dist/src/formats/graphml/styles-yfiles3.js +429 -64
- package/dist/src/formats/graphml/styles-yfiles3.js.map +1 -1
- package/dist/src/formats/graphml/yfiles.d.ts +3 -3
- package/dist/src/formats/graphml/yfiles.d.ts.map +1 -1
- package/dist/src/formats/graphml/yfiles.js +16 -6
- package/dist/src/formats/graphml/yfiles.js.map +1 -1
- package/dist/src/formats/json/dialect.d.ts +3 -2
- package/dist/src/formats/json/dialect.d.ts.map +1 -1
- package/dist/src/formats/json/dialect.js +39 -5
- package/dist/src/formats/json/dialect.js.map +1 -1
- package/dist/src/formats/json/importer.d.ts +13 -2
- package/dist/src/formats/json/importer.d.ts.map +1 -1
- package/dist/src/formats/json/importer.js +42 -6
- package/dist/src/formats/json/importer.js.map +1 -1
- package/dist/src/formats/json/index.d.ts +1 -1
- package/dist/src/formats/json/index.d.ts.map +1 -1
- package/dist/src/formats/json/index.js +1 -1
- package/dist/src/formats/json/index.js.map +1 -1
- package/dist/src/formats/json/positions.d.ts +5 -2
- package/dist/src/formats/json/positions.d.ts.map +1 -1
- package/dist/src/formats/json/positions.js +20 -4
- package/dist/src/formats/json/positions.js.map +1 -1
- package/dist/src/formats/json/styles.d.ts +12 -1
- package/dist/src/formats/json/styles.d.ts.map +1 -1
- package/dist/src/formats/json/styles.js +1755 -136
- package/dist/src/formats/json/styles.js.map +1 -1
- package/dist/src/formats/pajek/draw.d.ts +96 -0
- package/dist/src/formats/pajek/draw.d.ts.map +1 -0
- package/dist/src/formats/pajek/draw.js +372 -0
- package/dist/src/formats/pajek/draw.js.map +1 -0
- package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
- package/dist/src/formats/pajek/exporter.js +70 -51
- package/dist/src/formats/pajek/exporter.js.map +1 -1
- package/dist/src/formats/pajek/importer.d.ts +9 -0
- package/dist/src/formats/pajek/importer.d.ts.map +1 -1
- package/dist/src/formats/pajek/importer.js +233 -102
- package/dist/src/formats/pajek/importer.js.map +1 -1
- package/dist/src/formats/pajek/index.d.ts +1 -0
- package/dist/src/formats/pajek/index.d.ts.map +1 -1
- package/dist/src/formats/pajek/index.js.map +1 -1
- package/dist/src/formats/pajek/styles.d.ts +15 -7
- package/dist/src/formats/pajek/styles.d.ts.map +1 -1
- package/dist/src/formats/pajek/styles.js +1279 -114
- package/dist/src/formats/pajek/styles.js.map +1 -1
- package/dist/src/formats/pajek/syntax.d.ts +10 -1
- package/dist/src/formats/pajek/syntax.d.ts.map +1 -1
- package/dist/src/formats/pajek/syntax.js +26 -2
- package/dist/src/formats/pajek/syntax.js.map +1 -1
- package/dist/src/formats/xgmml/emit.d.ts +1 -0
- package/dist/src/formats/xgmml/emit.d.ts.map +1 -1
- package/dist/src/formats/xgmml/emit.js +65 -5
- package/dist/src/formats/xgmml/emit.js.map +1 -1
- package/dist/src/formats/xgmml/styles.d.ts +23 -3
- package/dist/src/formats/xgmml/styles.d.ts.map +1 -1
- package/dist/src/formats/xgmml/styles.js +278 -60
- package/dist/src/formats/xgmml/styles.js.map +1 -1
- package/dist/src/index.d.ts +10 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/positions/convert.d.ts.map +1 -1
- package/dist/src/positions/convert.js +11 -1
- package/dist/src/positions/convert.js.map +1 -1
- package/dist/src/positions/extract.d.ts.map +1 -1
- package/dist/src/positions/extract.js +53 -1
- package/dist/src/positions/extract.js.map +1 -1
- package/dist/src/positions/index.d.ts +1 -1
- package/dist/src/positions/index.d.ts.map +1 -1
- package/dist/src/positions/types.d.ts +59 -0
- package/dist/src/positions/types.d.ts.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 +53 -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 +740 -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 +124 -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 +511 -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 +123 -0
- package/dist/src/sources/cypher/query-builder.d.ts.map +1 -0
- package/dist/src/sources/cypher/query-builder.js +267 -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 +69 -0
- package/dist/src/sources/ids.d.ts.map +1 -0
- package/dist/src/sources/ids.js +69 -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 +31 -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 +76 -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 +650 -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 +26 -0
- package/dist/src/sources/sigv4.d.ts.map +1 -0
- package/dist/src/sources/sigv4.js +184 -0
- package/dist/src/sources/sigv4.js.map +1 -0
- package/dist/src/sources/sparql/descriptor.d.ts +10 -0
- package/dist/src/sources/sparql/descriptor.d.ts.map +1 -0
- package/dist/src/sources/sparql/descriptor.js +64 -0
- package/dist/src/sources/sparql/descriptor.js.map +1 -0
- package/dist/src/sources/sparql/index.d.ts +28 -0
- package/dist/src/sources/sparql/index.d.ts.map +1 -0
- package/dist/src/sources/sparql/index.js +314 -0
- package/dist/src/sources/sparql/index.js.map +1 -0
- package/dist/src/sources/sparql/ntriples.d.ts +69 -0
- package/dist/src/sources/sparql/ntriples.d.ts.map +1 -0
- package/dist/src/sources/sparql/ntriples.js +180 -0
- package/dist/src/sources/sparql/ntriples.js.map +1 -0
- package/dist/src/sources/sparql/params.d.ts +27 -0
- package/dist/src/sources/sparql/params.d.ts.map +1 -0
- package/dist/src/sources/sparql/params.js +5 -0
- package/dist/src/sources/sparql/params.js.map +1 -0
- package/dist/src/sources/sparql/query.d.ts +72 -0
- package/dist/src/sources/sparql/query.d.ts.map +1 -0
- package/dist/src/sources/sparql/query.js +113 -0
- package/dist/src/sources/sparql/query.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 +696 -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/annotations.d.ts +61 -5
- package/dist/src/styles/annotations.d.ts.map +1 -1
- package/dist/src/styles/annotations.js +130 -22
- package/dist/src/styles/annotations.js.map +1 -1
- package/dist/src/styles/canon/bends.d.ts +46 -0
- package/dist/src/styles/canon/bends.d.ts.map +1 -1
- package/dist/src/styles/canon/bends.js +123 -0
- package/dist/src/styles/canon/bends.js.map +1 -1
- package/dist/src/styles/canon/color-tables.d.ts +6 -1
- package/dist/src/styles/canon/color-tables.d.ts.map +1 -1
- package/dist/src/styles/canon/color-tables.js +10 -4
- package/dist/src/styles/canon/color-tables.js.map +1 -1
- package/dist/src/styles/canon/color.d.ts +3 -1
- package/dist/src/styles/canon/color.d.ts.map +1 -1
- package/dist/src/styles/canon/color.js +103 -3
- package/dist/src/styles/canon/color.js.map +1 -1
- package/dist/src/styles/canon/enums.d.ts +2 -2
- package/dist/src/styles/canon/enums.d.ts.map +1 -1
- package/dist/src/styles/canon/enums.js +82 -7
- package/dist/src/styles/canon/enums.js.map +1 -1
- package/dist/src/styles/canon/graphviz.d.ts +12 -3
- package/dist/src/styles/canon/graphviz.d.ts.map +1 -1
- package/dist/src/styles/canon/graphviz.js +57 -9
- package/dist/src/styles/canon/graphviz.js.map +1 -1
- package/dist/src/styles/canon/number.d.ts +8 -0
- package/dist/src/styles/canon/number.d.ts.map +1 -1
- package/dist/src/styles/canon/number.js +18 -0
- package/dist/src/styles/canon/number.js.map +1 -1
- package/dist/src/styles/canon/text.d.ts +29 -2
- package/dist/src/styles/canon/text.d.ts.map +1 -1
- package/dist/src/styles/canon/text.js +156 -16
- package/dist/src/styles/canon/text.js.map +1 -1
- package/dist/src/styles/codes.d.ts +2 -0
- package/dist/src/styles/codes.d.ts.map +1 -1
- package/dist/src/styles/codes.js +2 -0
- package/dist/src/styles/codes.js.map +1 -1
- package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
- package/dist/src/styles/cyjs/cascade.js +1037 -35
- 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 +5 -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 +216 -12
- package/dist/src/styles/cyjs/emit.js.map +1 -1
- package/dist/src/styles/cyjs/face.d.ts +20 -0
- package/dist/src/styles/cyjs/face.d.ts.map +1 -0
- package/dist/src/styles/cyjs/face.js +332 -0
- package/dist/src/styles/cyjs/face.js.map +1 -0
- package/dist/src/styles/cyjs/mappers.d.ts +48 -2
- package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
- package/dist/src/styles/cyjs/mappers.js +463 -26
- package/dist/src/styles/cyjs/mappers.js.map +1 -1
- package/dist/src/styles/cyjs/routes.d.ts +53 -0
- package/dist/src/styles/cyjs/routes.d.ts.map +1 -0
- package/dist/src/styles/cyjs/routes.js +360 -0
- package/dist/src/styles/cyjs/routes.js.map +1 -0
- package/dist/src/styles/cytoscape/charts.d.ts +23 -0
- package/dist/src/styles/cytoscape/charts.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/charts.js +560 -0
- package/dist/src/styles/cytoscape/charts.js.map +1 -0
- package/dist/src/styles/cytoscape/emit.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/emit.js +204 -44
- package/dist/src/styles/cytoscape/emit.js.map +1 -1
- package/dist/src/styles/cytoscape/lexicon.d.ts +97 -3
- package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/lexicon.js +413 -79
- package/dist/src/styles/cytoscape/lexicon.js.map +1 -1
- package/dist/src/styles/cytoscape/mappings.d.ts +30 -0
- package/dist/src/styles/cytoscape/mappings.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/mappings.js +92 -0
- package/dist/src/styles/cytoscape/mappings.js.map +1 -1
- package/dist/src/styles/cytoscape/resolve.d.ts +46 -3
- package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/resolve.js +632 -22
- 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 +50 -0
- package/dist/src/styles/defaults.d.ts.map +1 -1
- package/dist/src/styles/defaults.js +315 -37
- package/dist/src/styles/defaults.js.map +1 -1
- package/dist/src/styles/index.d.ts +4 -3
- package/dist/src/styles/index.d.ts.map +1 -1
- package/dist/src/styles/index.js +3 -2
- package/dist/src/styles/index.js.map +1 -1
- package/dist/src/styles/internal.d.ts +1 -0
- package/dist/src/styles/internal.d.ts.map +1 -1
- package/dist/src/styles/internal.js +1 -0
- package/dist/src/styles/internal.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/generic.d.ts.map +1 -1
- package/dist/src/styles/io/generic.js +56 -16
- package/dist/src/styles/io/generic.js.map +1 -1
- package/dist/src/styles/io/round-trip.d.ts +56 -0
- package/dist/src/styles/io/round-trip.d.ts.map +1 -0
- package/dist/src/styles/io/round-trip.js +138 -0
- package/dist/src/styles/io/round-trip.js.map +1 -0
- package/dist/src/styles/io/writer.d.ts.map +1 -1
- package/dist/src/styles/io/writer.js +13 -4
- package/dist/src/styles/io/writer.js.map +1 -1
- package/dist/src/styles/notes.d.ts.map +1 -1
- package/dist/src/styles/notes.js +1 -0
- package/dist/src/styles/notes.js.map +1 -1
- package/dist/src/styles/plan/features.d.ts +1 -1
- package/dist/src/styles/plan/features.d.ts.map +1 -1
- package/dist/src/styles/plan/features.js +22 -2
- package/dist/src/styles/plan/features.js.map +1 -1
- package/dist/src/styles/plan/index.d.ts +1 -1
- package/dist/src/styles/plan/index.d.ts.map +1 -1
- package/dist/src/styles/plan/index.js +1 -1
- package/dist/src/styles/plan/index.js.map +1 -1
- package/dist/src/styles/plan/plan.d.ts.map +1 -1
- package/dist/src/styles/plan/plan.js +61 -4
- package/dist/src/styles/plan/plan.js.map +1 -1
- package/dist/src/styles/plan/resolve.d.ts +13 -1
- package/dist/src/styles/plan/resolve.d.ts.map +1 -1
- package/dist/src/styles/plan/resolve.js +53 -6
- package/dist/src/styles/plan/resolve.js.map +1 -1
- package/dist/src/styles/slots.d.ts +14 -0
- package/dist/src/styles/slots.d.ts.map +1 -0
- package/dist/src/styles/slots.js +20 -0
- package/dist/src/styles/slots.js.map +1 -0
- package/dist/src/styles/types.d.ts +638 -5
- package/dist/src/styles/types.d.ts.map +1 -1
- package/dist/src/styles/vocabulary.d.ts +3 -2
- package/dist/src/styles/vocabulary.d.ts.map +1 -1
- package/dist/src/styles/vocabulary.js +218 -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 +29 -238
- package/dist/styles.js.map +1 -1
- package/dist/xgmml.js +3 -3
- package/docs/samples/people.json +6 -0
- package/package.json +53 -8
- package/src/common/report.ts +27 -7
- package/src/formats/cx/importer.ts +6 -1
- package/src/formats/cx/styles.ts +144 -9
- package/src/formats/cx2/importer.ts +1 -0
- package/src/formats/cx2/styles.ts +3 -1
- package/src/formats/cys/importer.ts +1 -0
- package/src/formats/cys/styles.ts +27 -5
- package/src/formats/dot/drawing.ts +799 -0
- package/src/formats/dot/importer.ts +120 -35
- package/src/formats/dot/label-places.ts +228 -0
- package/src/formats/dot/record.ts +336 -0
- package/src/formats/dot/styles.ts +1657 -154
- package/src/formats/gexf/dialog-metrics.ts +61 -0
- package/src/formats/gexf/importer.ts +50 -5
- package/src/formats/gexf/preview.ts +217 -0
- package/src/formats/gexf/schema.ts +2 -1
- package/src/formats/gexf/styles.ts +1144 -142
- package/src/formats/gml/importer.ts +291 -76
- package/src/formats/gml/index.ts +1 -1
- package/src/formats/gml/positions.ts +29 -7
- package/src/formats/gml/styles.ts +854 -111
- package/src/formats/graphml/styles-plain.ts +8 -23
- package/src/formats/graphml/styles-yed.ts +821 -159
- package/src/formats/graphml/styles-yfiles3.ts +485 -63
- package/src/formats/graphml/yfiles.ts +19 -6
- package/src/formats/json/dialect.ts +41 -5
- package/src/formats/json/importer.ts +59 -7
- package/src/formats/json/index.ts +1 -0
- package/src/formats/json/positions.ts +22 -5
- package/src/formats/json/styles.ts +2041 -185
- package/src/formats/pajek/draw.ts +458 -0
- package/src/formats/pajek/exporter.ts +81 -49
- package/src/formats/pajek/importer.ts +278 -103
- package/src/formats/pajek/index.ts +1 -0
- package/src/formats/pajek/styles.ts +1382 -133
- package/src/formats/pajek/syntax.ts +27 -2
- package/src/formats/xgmml/emit.ts +73 -5
- package/src/formats/xgmml/styles.ts +331 -71
- package/src/index.ts +94 -0
- package/src/positions/convert.ts +12 -1
- package/src/positions/extract.ts +55 -1
- package/src/positions/index.ts +1 -0
- package/src/positions/types.ts +60 -0
- package/src/registry.ts +326 -1
- package/src/sources/builtins.ts +63 -0
- package/src/sources/codes.ts +235 -0
- package/src/sources/context.ts +894 -0
- package/src/sources/credentials.ts +409 -0
- package/src/sources/cypher/descriptor.ts +131 -0
- package/src/sources/cypher/flatten.ts +323 -0
- package/src/sources/cypher/index.ts +628 -0
- package/src/sources/cypher/params.ts +41 -0
- package/src/sources/cypher/profiles.ts +78 -0
- package/src/sources/cypher/query-builder.ts +327 -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 +80 -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 +32 -0
- package/src/sources/registry.ts +325 -0
- package/src/sources/rest/descriptor.ts +79 -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 +776 -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 +209 -0
- package/src/sources/sparql/descriptor.ts +67 -0
- package/src/sources/sparql/index.ts +356 -0
- package/src/sources/sparql/ntriples.ts +219 -0
- package/src/sources/sparql/params.ts +28 -0
- package/src/sources/sparql/query.ts +162 -0
- package/src/sources/testing.ts +210 -0
- package/src/sources/types.ts +776 -0
- package/src/styles/annotations.ts +201 -27
- package/src/styles/canon/bends.ts +137 -0
- package/src/styles/canon/color-tables.ts +10 -4
- package/src/styles/canon/color.ts +105 -3
- package/src/styles/canon/enums.ts +99 -8
- package/src/styles/canon/graphviz.ts +71 -10
- package/src/styles/canon/number.ts +19 -0
- package/src/styles/canon/text.ts +187 -16
- package/src/styles/codes.ts +2 -0
- package/src/styles/cyjs/cascade.ts +1193 -38
- package/src/styles/cyjs/defaults-table.ts +5 -0
- package/src/styles/cyjs/emit.ts +247 -16
- package/src/styles/cyjs/face.ts +372 -0
- package/src/styles/cyjs/mappers.ts +498 -28
- package/src/styles/cyjs/routes.ts +432 -0
- package/src/styles/cytoscape/charts.ts +684 -0
- package/src/styles/cytoscape/emit.ts +220 -44
- package/src/styles/cytoscape/lexicon.ts +459 -80
- package/src/styles/cytoscape/mappings.ts +108 -0
- package/src/styles/cytoscape/resolve.ts +763 -23
- package/src/styles/cytoscape/translate.ts +11 -11
- package/src/styles/defaults.ts +436 -38
- package/src/styles/index.ts +5 -0
- package/src/styles/internal.ts +1 -0
- package/src/styles/io/block.ts +10 -0
- package/src/styles/io/generic.ts +79 -23
- package/src/styles/io/round-trip.ts +202 -0
- package/src/styles/io/writer.ts +14 -4
- package/src/styles/notes.ts +1 -0
- package/src/styles/plan/features.ts +23 -2
- package/src/styles/plan/index.ts +1 -1
- package/src/styles/plan/plan.ts +69 -5
- package/src/styles/plan/resolve.ts +61 -6
- package/src/styles/slots.ts +25 -0
- package/src/styles/types.ts +658 -4
- package/src/styles/vocabulary.ts +226 -3
- package/src/types.ts +19 -5
- package/dist/chunks/block-DiGq58c3.js.map +0 -1
- package/dist/chunks/choose--jM0yYCo.js +0 -57
- package/dist/chunks/choose--jM0yYCo.js.map +0 -1
- package/dist/chunks/convert-BcQ8_jMo.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/exporter-CrDWIyiq.js.map +0 -1
- package/dist/chunks/format-BpQBx8MZ.js.map +0 -1
- package/dist/chunks/generic-Dq1ntt9q.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/importer-iFYPEKaJ.js.map +0 -1
- package/dist/chunks/importer-yh_aBCU6.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 +0 -690
- package/dist/chunks/styles-D3fRphrO.js.map +0 -1
- package/dist/chunks/styles-yed-BF5x3_Y5.js +0 -842
- package/dist/chunks/styles-yed-BF5x3_Y5.js.map +0 -1
- package/dist/chunks/writer-DMKvthQE.js +0 -448
- package/dist/chunks/writer-DMKvthQE.js.map +0 -1
|
@@ -27,8 +27,9 @@ import { agree, plural } from "../../common/plural.js";
|
|
|
27
27
|
import { ImportReportBuilder } from "../../common/report.js";
|
|
28
28
|
import { isNumericText, TextCellWriter, WIDENING_UNSUPPORTED_CODE } from "../../common/text.js";
|
|
29
29
|
import { isWeightField, parseWeightText } from "../../common/weights.js";
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
30
|
+
import { resolvePajekDraw } from "./draw.js";
|
|
31
|
+
import { PAJEK_POINTS_PER_UNIT, pajekStyles } from "./styles.js";
|
|
32
|
+
import { decodeCharacterReferences, isCommentOrBlank, isIntervalToken, isProjectObject, isSectionLine, isShapeKeyword, isVertexNumber, LABEL_COLUMN, ORIGINAL_ID_KEY, PAJEK_STYLE_COMMENT, parseIntervals, parseSectionHeader, PARTITION_COLUMN, POSITION_COLUMN, RELATION_COLUMN, SHAPE_COLUMN, SPELLS_COLUMN, tokenize, VALUE_COLUMN, VALUE_FIELD, VECTOR_COLUMN, VOIDING_KEYS, } from "./syntax.js";
|
|
32
33
|
/**
|
|
33
34
|
* Issue codes of the Pajek importer.
|
|
34
35
|
* @category Built-in formats
|
|
@@ -213,9 +214,10 @@ function spellsDecl() {
|
|
|
213
214
|
* The position column declaration (design section 5.2: f64 x 3, role position, units "file"), with
|
|
214
215
|
* its spelling for `extractPositions()`.
|
|
215
216
|
* @param sourceDims - 2 or 3, the coordinate count of the first vertex line with coordinates
|
|
217
|
+
* @param window - the Draw window the coordinates are stretched to
|
|
216
218
|
* @returns a fresh declaration
|
|
217
219
|
*/
|
|
218
|
-
function positionDecl(sourceDims) {
|
|
220
|
+
function positionDecl(sourceDims, window) {
|
|
219
221
|
return {
|
|
220
222
|
name: POSITION_COLUMN,
|
|
221
223
|
dtype: "f64",
|
|
@@ -224,10 +226,22 @@ function positionDecl(sourceDims) {
|
|
|
224
226
|
role: "position",
|
|
225
227
|
origin: { format: "pajek", id: "coordinates" },
|
|
226
228
|
// Pajek draws y downward (USAir97.net has Deadhorse, Alaska at y 0.10 and Miami at 0.53),
|
|
227
|
-
// centers depth on 0.5, and NetworkX writes "0.0 0.0" for a node with no position
|
|
228
|
-
|
|
229
|
+
// centers depth on 0.5, and NetworkX writes "0.0 0.0" for a node with no position; one unit
|
|
230
|
+
// is the Draw window's width in points across and its height down (500 each by default,
|
|
231
|
+
// PAJEK_POINTS_PER_UNIT): Pajek stretches 0..1 to the window one axis at a time
|
|
232
|
+
extra: {
|
|
233
|
+
sourceDims,
|
|
234
|
+
units: "file",
|
|
235
|
+
pxPerUnit: window.width,
|
|
236
|
+
...(window.height === window.width ? {} : { pxPerUnitY: window.height }),
|
|
237
|
+
yAxis: "down",
|
|
238
|
+
zOrigin: 0.5,
|
|
239
|
+
zeroUnplaced: true,
|
|
240
|
+
},
|
|
229
241
|
};
|
|
230
242
|
}
|
|
243
|
+
/** The Draw window a file is drawn in without `pajekDraw`: the square Pajek's EPS export maps 0..1 to. */
|
|
244
|
+
const DEFAULT_WINDOW = { width: PAJEK_POINTS_PER_UNIT, height: PAJEK_POINTS_PER_UNIT };
|
|
231
245
|
/** A problem with one line, recorded as an issue by the per-line catch. */
|
|
232
246
|
class LineError extends Error {
|
|
233
247
|
/**
|
|
@@ -266,8 +280,15 @@ class PajekParser {
|
|
|
266
280
|
* @param report - the report
|
|
267
281
|
* @param options - the resolved common options
|
|
268
282
|
* @param firstVertex - the firstVertex format option
|
|
283
|
+
* @param window - the Draw window the coordinates are stretched to
|
|
269
284
|
*/
|
|
270
|
-
constructor(sink, report, options, firstVertex) {
|
|
285
|
+
constructor(sink, report, options, firstVertex, window = DEFAULT_WINDOW) {
|
|
286
|
+
/** The `% graphty.styles` block kept for the styles, or null. */
|
|
287
|
+
this.keptBlock = null;
|
|
288
|
+
/**
|
|
289
|
+
* The vertices whose line Pajek 6.02 draws with none of its parameters (`VOIDING_KEYS`), by index, for the styles.
|
|
290
|
+
*/
|
|
291
|
+
this.voided = [];
|
|
271
292
|
this.section = "none";
|
|
272
293
|
/** The direction of the current line section. */
|
|
273
294
|
this.kind = "directed";
|
|
@@ -331,6 +352,7 @@ class PajekParser {
|
|
|
331
352
|
this.edgeParams = new Map();
|
|
332
353
|
/** Whether a `% graphty.styles` comment was kept for the style reader. */
|
|
333
354
|
this.styleBlockKept = false;
|
|
355
|
+
this.window = window;
|
|
334
356
|
this.sink = sink;
|
|
335
357
|
this.report = report;
|
|
336
358
|
this.options = options;
|
|
@@ -350,7 +372,8 @@ class PajekParser {
|
|
|
350
372
|
const trimmed = text.trimStart();
|
|
351
373
|
if (trimmed.startsWith(PAJEK_STYLE_COMMENT)) {
|
|
352
374
|
this.styleBlockKept = true;
|
|
353
|
-
this.
|
|
375
|
+
this.keptBlock = trimmed.slice(PAJEK_STYLE_COMMENT.length);
|
|
376
|
+
this.report.keepForStyles(this.keptBlock);
|
|
354
377
|
}
|
|
355
378
|
}
|
|
356
379
|
/**
|
|
@@ -762,6 +785,57 @@ class PajekParser {
|
|
|
762
785
|
*/
|
|
763
786
|
vertexLine(text, line) {
|
|
764
787
|
const tokens = this.tokens(text, "node", line);
|
|
788
|
+
const { k, pos } = this.vertexNumber(tokens, line);
|
|
789
|
+
// parse everything before writing anything
|
|
790
|
+
let i = 1;
|
|
791
|
+
let label = null;
|
|
792
|
+
if (tokens.length > 1 && !startsWithCoordinates(text, tokens)) {
|
|
793
|
+
label = this.labelOf(tokens[1], k, line);
|
|
794
|
+
i = 2;
|
|
795
|
+
}
|
|
796
|
+
const { xyz, dims, next } = this.vertexCoordinates(tokens, i, k);
|
|
797
|
+
i = next;
|
|
798
|
+
this.checkCoordinates(text, tokens, i, dims === 2 && label !== null, k, line);
|
|
799
|
+
let shape = null;
|
|
800
|
+
if (i < tokens.length && isShapeKeyword(tokens[i])) {
|
|
801
|
+
shape = tokens[i].toLowerCase();
|
|
802
|
+
i++;
|
|
803
|
+
}
|
|
804
|
+
const extras = this.extras(tokens, i, "node", line);
|
|
805
|
+
shape = extras.shape ?? shape;
|
|
806
|
+
const restored = this.restoredId(extras);
|
|
807
|
+
this.createNodes();
|
|
808
|
+
// write
|
|
809
|
+
const repeated = this.markVertexSeen(pos, k, line);
|
|
810
|
+
const index = this.vertexIndex(pos, k, label, restored, repeated, line);
|
|
811
|
+
if (shape === null && dims > 0 && extras.keys.length > 0 && VOIDING_KEYS.has(extras.keys[0])) {
|
|
812
|
+
this.voided.push(index);
|
|
813
|
+
}
|
|
814
|
+
if (label !== null) {
|
|
815
|
+
this.labelHandle = this.nodeHandle(this.labelHandle, LABEL_DECL, line);
|
|
816
|
+
this.sink.setNodeValue(this.labelHandle, index, label);
|
|
817
|
+
}
|
|
818
|
+
if (dims > 0) {
|
|
819
|
+
this.writePosition(index, dims, xyz, k, line);
|
|
820
|
+
}
|
|
821
|
+
if (shape !== null) {
|
|
822
|
+
this.writeShape(index, shape, line);
|
|
823
|
+
}
|
|
824
|
+
for (let p = 0; p < extras.keys.length; p++) {
|
|
825
|
+
this.writeParameter("node", extras.keys[p], index, extras.values[p]);
|
|
826
|
+
}
|
|
827
|
+
if (extras.spells !== null) {
|
|
828
|
+
this.nodeSpellsHandle = this.nodeHandle(this.nodeSpellsHandle, spellsDecl(), line);
|
|
829
|
+
this.sink.setNodeValue(this.nodeSpellsHandle, index, extras.spells);
|
|
830
|
+
}
|
|
831
|
+
}
|
|
832
|
+
/**
|
|
833
|
+
* A vertex line's number, checked: it starts the line and is in the declared range.
|
|
834
|
+
* @param tokens - the line's tokens
|
|
835
|
+
* @param line - the line number
|
|
836
|
+
* @returns the vertex number and its position
|
|
837
|
+
*/
|
|
838
|
+
vertexNumber(tokens, line) {
|
|
765
839
|
if (!isVertexNumber(tokens[0])) {
|
|
766
840
|
this.report.counts.skippedNodes++;
|
|
767
841
|
throw new LineError("parse-error", PAJEK_ISSUE.VERTEX_LINE, `a vertex line starts with a vertex number, not "${tokens[0]}"`);
|
|
@@ -776,62 +850,68 @@ class PajekParser {
|
|
|
776
850
|
this.outOfRange++;
|
|
777
851
|
throw new LineError("validation-error", PAJEK_ISSUE.VERTEX_RANGE, `vertex ${k} is outside ${this.base}..${this.base + this.vertexCount - 1}`);
|
|
778
852
|
}
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
let dims = 0;
|
|
853
|
+
return { k, pos };
|
|
854
|
+
}
|
|
855
|
+
/**
|
|
856
|
+
* A vertex line's coordinates: two or three numbers, or none; a single one is an error.
|
|
857
|
+
* @param tokens - the line's tokens
|
|
858
|
+
* @param i - where the coordinates would start
|
|
859
|
+
* @param k - the vertex number
|
|
860
|
+
* @returns x, y and z (0 when absent), how many were read, and the index after them
|
|
861
|
+
*/
|
|
862
|
+
vertexCoordinates(tokens, i, k) {
|
|
790
863
|
if (i + 1 < tokens.length && isNumericText(tokens[i]) && isNumericText(tokens[i + 1])) {
|
|
791
|
-
x = Number(tokens[i]);
|
|
792
|
-
y = Number(tokens[i + 1]);
|
|
793
|
-
i
|
|
794
|
-
|
|
795
|
-
if (i < tokens.length && isNumericText(tokens[i])) {
|
|
796
|
-
z = Number(tokens[i]);
|
|
797
|
-
i++;
|
|
798
|
-
dims = 3;
|
|
864
|
+
const x = Number(tokens[i]);
|
|
865
|
+
const y = Number(tokens[i + 1]);
|
|
866
|
+
if (i + 2 < tokens.length && isNumericText(tokens[i + 2])) {
|
|
867
|
+
return { xyz: [x, y, Number(tokens[i + 2])], dims: 3, next: i + 3 };
|
|
799
868
|
}
|
|
869
|
+
return { xyz: [x, y, 0], dims: 2, next: i + 2 };
|
|
800
870
|
}
|
|
801
|
-
|
|
871
|
+
if (i < tokens.length && isNumericText(tokens[i])) {
|
|
802
872
|
this.report.counts.skippedNodes++;
|
|
803
873
|
throw new LineError("parse-error", PAJEK_ISSUE.VERTEX_LINE, `vertex ${k}: a single coordinate "${tokens[i]}"; coordinates are x y [z]`);
|
|
804
874
|
}
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
const repeated = this.seen[pos] !== 0;
|
|
817
|
-
if (repeated) {
|
|
875
|
+
return { xyz: [0, 0, 0], dims: 0, next: i };
|
|
876
|
+
}
|
|
877
|
+
/**
|
|
878
|
+
* Marks a vertex's position as having a line, warning when it already had one.
|
|
879
|
+
* @param pos - the vertex's position
|
|
880
|
+
* @param k - the vertex number
|
|
881
|
+
* @param line - the line number
|
|
882
|
+
* @returns whether the vertex already had a line
|
|
883
|
+
*/
|
|
884
|
+
markVertexSeen(pos, k, line) {
|
|
885
|
+
if (this.seen[pos] !== 0) {
|
|
818
886
|
this.report.warning("merged", PAJEK_ISSUE.DUPLICATE_NODE, `vertex ${k} has more than one line; the later values overwrite`, { line, element: String(k) });
|
|
887
|
+
return true;
|
|
819
888
|
}
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
889
|
+
this.seen[pos] = 1;
|
|
890
|
+
this.seenCount++;
|
|
891
|
+
return false;
|
|
892
|
+
}
|
|
893
|
+
/**
|
|
894
|
+
* The node index a vertex line writes to, creating the node when its id is deferred to its line.
|
|
895
|
+
* @param pos - the vertex's position
|
|
896
|
+
* @param k - the vertex number
|
|
897
|
+
* @param label - the line's label, or null
|
|
898
|
+
* @param restored - the original id the line carries, or null
|
|
899
|
+
* @param repeated - whether the vertex already had a line
|
|
900
|
+
* @param line - the line number
|
|
901
|
+
* @returns the node index
|
|
902
|
+
*/
|
|
903
|
+
vertexIndex(pos, k, label, restored, repeated, line) {
|
|
904
|
+
const { idOfPos } = this;
|
|
905
|
+
if (idOfPos !== null && !repeated && this.options.nodeIdFrom === "label") {
|
|
906
|
+
return this.deferredNode(idOfPos, pos, k, label, line, "label");
|
|
827
907
|
}
|
|
828
|
-
|
|
908
|
+
if (idOfPos !== null && idOfPos[pos] === undefined) {
|
|
829
909
|
// restore mode: the earlier positions without a line yet get their numbers first, so the
|
|
830
910
|
// index order is the vertex number order whatever the line order (the identity id map
|
|
831
911
|
// of an ordered file); then this vertex with its original id, or its number
|
|
832
912
|
for (let p = this.filledBelow; p < pos; p++) {
|
|
833
|
-
if (
|
|
834
|
-
this.numberedNode(
|
|
913
|
+
if (idOfPos[p] === undefined) {
|
|
914
|
+
this.numberedNode(idOfPos, p);
|
|
835
915
|
}
|
|
836
916
|
}
|
|
837
917
|
// after the loop on purpose: a throw part-way leaves the mark at its smaller, still
|
|
@@ -839,46 +919,40 @@ class PajekParser {
|
|
|
839
919
|
if (pos > this.filledBelow) {
|
|
840
920
|
this.filledBelow = pos;
|
|
841
921
|
}
|
|
842
|
-
|
|
843
|
-
}
|
|
844
|
-
else {
|
|
845
|
-
index = this.indexOfPos[pos];
|
|
846
|
-
if (restored !== null && !repeated) {
|
|
847
|
-
// an out-of-order line: the vertex already exists under its number
|
|
848
|
-
this.report.warning("coercion", PAJEK_ISSUE.ORIGINAL_ID_UNRESTORED, `vertex ${k} carries ${ORIGINAL_ID_KEY} ${JSON.stringify(restored)} but a later vertex's line came first and created it under its number; the original id is not restored`, { line, element: String(k) });
|
|
849
|
-
}
|
|
850
|
-
}
|
|
851
|
-
const { sink } = this;
|
|
852
|
-
if (label !== null) {
|
|
853
|
-
if (this.labelHandle === INVALID_INDEX) {
|
|
854
|
-
this.labelHandle = declareResolved(sink, "node", LABEL_DECL, this.report, { line }).handle;
|
|
855
|
-
}
|
|
856
|
-
sink.setNodeValue(this.labelHandle, index, label);
|
|
857
|
-
}
|
|
858
|
-
if (dims > 0) {
|
|
859
|
-
this.writePosition(index, dims, [x, y, z], k, line);
|
|
922
|
+
return this.deferredNode(idOfPos, pos, k, restored, line, "originalId");
|
|
860
923
|
}
|
|
861
|
-
if (
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
this.writeParameter("node", SHAPE_COLUMN, index, shape);
|
|
865
|
-
}
|
|
866
|
-
else {
|
|
867
|
-
if (this.shapeHandle === INVALID_INDEX) {
|
|
868
|
-
this.shapeHandle = declareResolved(sink, "node", SHAPE_DECL, this.report, { line }).handle;
|
|
869
|
-
}
|
|
870
|
-
sink.setNodeValue(this.shapeHandle, index, shape);
|
|
871
|
-
}
|
|
872
|
-
}
|
|
873
|
-
for (let p = 0; p < extras.keys.length; p++) {
|
|
874
|
-
this.writeParameter("node", extras.keys[p], index, extras.values[p]);
|
|
924
|
+
if (restored !== null && !repeated) {
|
|
925
|
+
// an out-of-order line: the vertex already exists under its number
|
|
926
|
+
this.report.warning("coercion", PAJEK_ISSUE.ORIGINAL_ID_UNRESTORED, `vertex ${k} carries ${ORIGINAL_ID_KEY} ${JSON.stringify(restored)} but a later vertex's line came first and created it under its number; the original id is not restored`, { line, element: String(k) });
|
|
875
927
|
}
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
928
|
+
return this.indexOfPos[pos];
|
|
929
|
+
}
|
|
930
|
+
/**
|
|
931
|
+
* A node column's handle, declared on first use.
|
|
932
|
+
* @param handle - the handle so far, or INVALID_INDEX
|
|
933
|
+
* @param decl - the column's declaration
|
|
934
|
+
* @param line - the line number
|
|
935
|
+
* @returns the handle
|
|
936
|
+
*/
|
|
937
|
+
nodeHandle(handle, decl, line) {
|
|
938
|
+
return handle === INVALID_INDEX
|
|
939
|
+
? declareResolved(this.sink, "node", decl, this.report, { line }).handle
|
|
940
|
+
: handle;
|
|
941
|
+
}
|
|
942
|
+
/**
|
|
943
|
+
* Writes a vertex's shape keyword: to the shape column, or to an earlier `shape "<text>"` parameter's column.
|
|
944
|
+
* @param index - the node index
|
|
945
|
+
* @param shape - the keyword
|
|
946
|
+
* @param line - the line number
|
|
947
|
+
*/
|
|
948
|
+
writeShape(index, shape, line) {
|
|
949
|
+
if (this.shapeHandle === INVALID_INDEX && this.nodeParams.has(SHAPE_COLUMN)) {
|
|
950
|
+
// an earlier `shape "<text>"` parameter owns the column: the keyword is written there
|
|
951
|
+
this.writeParameter("node", SHAPE_COLUMN, index, shape);
|
|
952
|
+
return;
|
|
881
953
|
}
|
|
954
|
+
this.shapeHandle = this.nodeHandle(this.shapeHandle, SHAPE_DECL, line);
|
|
955
|
+
this.sink.setNodeValue(this.shapeHandle, index, shape);
|
|
882
956
|
}
|
|
883
957
|
/**
|
|
884
958
|
* A vertex label as written, its character references decoded.
|
|
@@ -929,7 +1003,9 @@ class PajekParser {
|
|
|
929
1003
|
writePosition(index, dims, point, k, line) {
|
|
930
1004
|
if (this.positionHandle === INVALID_INDEX) {
|
|
931
1005
|
this.coordDims = dims;
|
|
932
|
-
this.positionHandle = declareResolved(this.sink, "node", positionDecl(dims), this.report, {
|
|
1006
|
+
this.positionHandle = declareResolved(this.sink, "node", positionDecl(dims, this.window), this.report, {
|
|
1007
|
+
line,
|
|
1008
|
+
}).handle;
|
|
933
1009
|
}
|
|
934
1010
|
else if (dims !== this.coordDims) {
|
|
935
1011
|
this.report.warnOnce("validation-error", PAJEK_ISSUE.COORD_DIMS, `vertex lines mix ${this.coordDims} and ${dims} coordinates; the position column records sourceDims ${this.coordDims}`, { line, element: String(k) });
|
|
@@ -1263,7 +1339,7 @@ class PajekParser {
|
|
|
1263
1339
|
for (let i = start; i < tokens.length;) {
|
|
1264
1340
|
const token = tokens[i];
|
|
1265
1341
|
if (token.startsWith("[")) {
|
|
1266
|
-
extras.spells = this.intervals(token, domain);
|
|
1342
|
+
extras.spells = this.intervals(token, domain, line);
|
|
1267
1343
|
i++;
|
|
1268
1344
|
continue;
|
|
1269
1345
|
}
|
|
@@ -1281,8 +1357,12 @@ class PajekParser {
|
|
|
1281
1357
|
}
|
|
1282
1358
|
seen.add(token);
|
|
1283
1359
|
extras.keys.push(token);
|
|
1284
|
-
|
|
1285
|
-
|
|
1360
|
+
// a color written as three fractions, `c 0.700 0.700 0.700` (Pajek's course data, 1CRN.NET), is one
|
|
1361
|
+
// value, kept as written; a key is never a number, so the reading is unambiguous. Pajek 6.02 reads no
|
|
1362
|
+
// color from it (the style reader leaves the line its carried or default color)
|
|
1363
|
+
const triple = COLOR_KEYS.has(token) ? colorTriple(tokens, i + 1) : null;
|
|
1364
|
+
extras.values.push(triple ?? tokens[i + 1]);
|
|
1365
|
+
i += triple === null ? 2 : 4;
|
|
1286
1366
|
}
|
|
1287
1367
|
return extras;
|
|
1288
1368
|
}
|
|
@@ -1302,12 +1382,15 @@ class PajekParser {
|
|
|
1302
1382
|
throw new LineError("parse-error", domain === "node" ? PAJEK_ISSUE.VERTEX_LINE : PAJEK_ISSUE.LINE, `parameter "${token}" has no value`);
|
|
1303
1383
|
}
|
|
1304
1384
|
/**
|
|
1305
|
-
* The spells of a row's interval token
|
|
1385
|
+
* The spells of a row's interval token. A token not closed by "]" skips the row; a closed one
|
|
1386
|
+
* whose times cannot be read (`[287-?]`, lin-rel4.net) is reported and dropped, and the rest of
|
|
1387
|
+
* the row (its label, coordinates and parameters) is kept.
|
|
1306
1388
|
* @param token - the token, starting with "["
|
|
1307
|
-
* @param domain - what is skipped when the token is
|
|
1308
|
-
* @
|
|
1389
|
+
* @param domain - what is skipped when the token is not closed
|
|
1390
|
+
* @param line - the line number
|
|
1391
|
+
* @returns the spells, or null for an empty `[]`, which is no spell at all, and for a dropped one
|
|
1309
1392
|
*/
|
|
1310
|
-
intervals(token, domain) {
|
|
1393
|
+
intervals(token, domain, line) {
|
|
1311
1394
|
if (!isIntervalToken(token)) {
|
|
1312
1395
|
this.skip(domain);
|
|
1313
1396
|
throw new LineError("validation-error", PAJEK_ISSUE.INTERVAL, `time interval ${token} is not closed by "]"`);
|
|
@@ -1317,8 +1400,8 @@ class PajekParser {
|
|
|
1317
1400
|
return spells.length === 0 ? null : spells;
|
|
1318
1401
|
}
|
|
1319
1402
|
catch (err) {
|
|
1320
|
-
this.
|
|
1321
|
-
|
|
1403
|
+
this.report.error("validation-error", PAJEK_ISSUE.INTERVAL, `${err instanceof Error ? err.message : String(err)}; the interval is dropped and the rest of the line kept`, { line });
|
|
1404
|
+
return null;
|
|
1322
1405
|
}
|
|
1323
1406
|
}
|
|
1324
1407
|
/**
|
|
@@ -1357,6 +1440,19 @@ class PajekParser {
|
|
|
1357
1440
|
writer.write(row, text);
|
|
1358
1441
|
}
|
|
1359
1442
|
}
|
|
1443
|
+
/** The parameters that hold a color, which a file may also write as three fractions `r g b`. */
|
|
1444
|
+
const COLOR_KEYS = new Set(["ic", "bc", "lc", "c"]);
|
|
1445
|
+
/**
|
|
1446
|
+
* A color written as three numbers from 0 to 1 at a row's tokens, as one value `r g b`.
|
|
1447
|
+
* @param tokens - the row's tokens
|
|
1448
|
+
* @param at - the first of the three
|
|
1449
|
+
* @returns the color text, or null when the three tokens are not such numbers
|
|
1450
|
+
*/
|
|
1451
|
+
function colorTriple(tokens, at) {
|
|
1452
|
+
const parts = tokens.slice(at, at + 3);
|
|
1453
|
+
const fraction = (t) => /^[01]?(?:\.\d+)?$/.test(t) && t !== "" && Number(t) <= 1;
|
|
1454
|
+
return parts.length === 3 && parts.every(fraction) ? parts.join(" ") : null;
|
|
1455
|
+
}
|
|
1360
1456
|
/**
|
|
1361
1457
|
* Whether a vertex line has coordinates but no label: the token after the vertex number is bare
|
|
1362
1458
|
* (not quoted) and starts a run of exactly two numbers, which cannot be a label and one
|
|
@@ -1421,10 +1517,29 @@ function headSection(text) {
|
|
|
1421
1517
|
*/
|
|
1422
1518
|
export const pajekImporter = Object.freeze({
|
|
1423
1519
|
format: "pajek",
|
|
1424
|
-
options: Object.freeze(["firstVertex"]),
|
|
1520
|
+
options: Object.freeze(["firstVertex", "pajekDraw"]),
|
|
1425
1521
|
extensions: Object.freeze([".net", ".paj"]),
|
|
1426
1522
|
mimeTypes: Object.freeze(["text/x-pajek", "text/plain"]),
|
|
1427
1523
|
styles: pajekStyles,
|
|
1524
|
+
/**
|
|
1525
|
+
* Where Pajek 6.02 draws a network whose vertices have no coordinates: round a circle in vertex order, the first
|
|
1526
|
+
* on the left, the rest going clockwise on screen (y down), at radius 0.4 about the middle of the Draw window
|
|
1527
|
+
* (pajek-iliad: 311 vertices 200 points from the middle of its 500-point window). A file with coordinates is read
|
|
1528
|
+
* from its position column.
|
|
1529
|
+
* @param snapshot - the imported graph
|
|
1530
|
+
* @returns the circle for a file with no coordinates, else null
|
|
1531
|
+
*/
|
|
1532
|
+
positions(snapshot) {
|
|
1533
|
+
if (snapshot.nodes.byRole("position") !== null) {
|
|
1534
|
+
return null;
|
|
1535
|
+
}
|
|
1536
|
+
return {
|
|
1537
|
+
units: "file",
|
|
1538
|
+
pxPerUnit: PAJEK_POINTS_PER_UNIT,
|
|
1539
|
+
yAxis: "down",
|
|
1540
|
+
unplacedCircle: { center: [0.5, 0.5], radius: 0.4, startDegrees: 180, direction: 1 },
|
|
1541
|
+
};
|
|
1542
|
+
},
|
|
1428
1543
|
/**
|
|
1429
1544
|
* Confidence that the input is a Pajek network: it starts with `*Vertices` (or `*Network`),
|
|
1430
1545
|
* after any `%` comment lines.
|
|
@@ -1453,10 +1568,11 @@ export const pajekImporter = Object.freeze({
|
|
|
1453
1568
|
}
|
|
1454
1569
|
const resolved = resolveImportOptions(options, DEFAULTS);
|
|
1455
1570
|
const firstVertex = firstVertexOption(options?.firstVertex);
|
|
1571
|
+
const draw = resolvePajekDraw(options?.pajekDraw);
|
|
1456
1572
|
const report = new ImportReportBuilder("pajek", resolved.errorLimit);
|
|
1457
1573
|
reportSinkOptions(sink, options, report);
|
|
1458
1574
|
reportUnusedOptions(options, report, USED_OPTIONS);
|
|
1459
|
-
const parser = new PajekParser(sink, report, resolved, firstVertex);
|
|
1575
|
+
const parser = new PajekParser(sink, report, resolved, firstVertex, draw ?? DEFAULT_WINDOW);
|
|
1460
1576
|
const reader = new LineReader(input, report, resolved);
|
|
1461
1577
|
// after the first network: only its successors' headers are counted
|
|
1462
1578
|
let rest = null;
|
|
@@ -1478,6 +1594,9 @@ export const pajekImporter = Object.freeze({
|
|
|
1478
1594
|
}
|
|
1479
1595
|
}
|
|
1480
1596
|
parser.finish();
|
|
1597
|
+
if (draw !== null || parser.voided.length > 0) {
|
|
1598
|
+
report.keepForStyles({ block: parser.keptBlock, pajekDraw: draw ?? undefined, voided: parser.voided });
|
|
1599
|
+
}
|
|
1481
1600
|
if (rest !== null) {
|
|
1482
1601
|
const objects = rest.objects > 0 ? `; ${rest.objects} *Partition / *Vector object(s) after them are not read` : "";
|
|
1483
1602
|
report.warning("unsupported", PAJEK_ISSUE.MULTIPLE_GRAPHS, `the project file holds ${rest.count} more network${plural(rest.count)} after the first; the first is read (graphIndex or graphName chooses another; importAllGraphs() reads every one)${objects}`, { line: restLine });
|
|
@@ -1497,13 +1616,25 @@ export const pajekImporter = Object.freeze({
|
|
|
1497
1616
|
async importAll(input, sinkFor, options) {
|
|
1498
1617
|
const resolved = resolveImportOptions(options, DEFAULTS);
|
|
1499
1618
|
const firstVertex = firstVertexOption(options?.firstVertex);
|
|
1619
|
+
const draw = resolvePajekDraw(options?.pajekDraw);
|
|
1500
1620
|
const reports = [new ImportReportBuilder("pajek", resolved.errorLimit)];
|
|
1501
1621
|
reportUnusedOptions(options, reports[0], USED_OPTIONS);
|
|
1502
1622
|
const open = () => {
|
|
1503
1623
|
const report = reports[reports.length - 1];
|
|
1504
1624
|
const sink = sinkFor(reports.length - 1);
|
|
1505
1625
|
reportSinkOptions(sink, options, report);
|
|
1506
|
-
return new PajekParser(sink, report, resolved, firstVertex);
|
|
1626
|
+
return new PajekParser(sink, report, resolved, firstVertex, draw ?? DEFAULT_WINDOW);
|
|
1627
|
+
};
|
|
1628
|
+
const close = (p) => {
|
|
1629
|
+
p.finish();
|
|
1630
|
+
const last = reports.at(-1);
|
|
1631
|
+
if (last !== undefined && (draw !== null || p.voided.length > 0)) {
|
|
1632
|
+
last.keepForStyles({
|
|
1633
|
+
block: p.keptBlock,
|
|
1634
|
+
pajekDraw: draw ?? undefined,
|
|
1635
|
+
voided: p.voided,
|
|
1636
|
+
});
|
|
1637
|
+
}
|
|
1507
1638
|
};
|
|
1508
1639
|
let parser = open();
|
|
1509
1640
|
// decoding issues belong to the file, so they go to the first network's report
|
|
@@ -1512,7 +1643,7 @@ export const pajekImporter = Object.freeze({
|
|
|
1512
1643
|
for await (const raw of reader) {
|
|
1513
1644
|
const text = withoutStrayBom(raw);
|
|
1514
1645
|
if (parser.line(text, reader.line)) {
|
|
1515
|
-
parser
|
|
1646
|
+
close(parser);
|
|
1516
1647
|
reports.push(new ImportReportBuilder("pajek", resolved.errorLimit));
|
|
1517
1648
|
parser = open();
|
|
1518
1649
|
parser.line(text, reader.line);
|
|
@@ -1522,7 +1653,7 @@ export const pajekImporter = Object.freeze({
|
|
|
1522
1653
|
throwIfAborted(resolved.signal);
|
|
1523
1654
|
}
|
|
1524
1655
|
}
|
|
1525
|
-
parser
|
|
1656
|
+
close(parser);
|
|
1526
1657
|
throwIfAborted(resolved.signal);
|
|
1527
1658
|
return reports.map((r) => r.finish());
|
|
1528
1659
|
},
|