@graphty/graph-io 0.3.25 → 0.3.27
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/README.md +49 -414
- package/dist/chunks/children-CL3Cy0ez.js.map +1 -1
- package/dist/chunks/choose-DrXtu_96.js +56 -0
- package/dist/chunks/choose-DrXtu_96.js.map +1 -0
- package/dist/chunks/constants-ikG85dT8.js +231 -0
- package/dist/chunks/constants-ikG85dT8.js.map +1 -0
- package/dist/chunks/{escape-B-tkk_Cl.js → escape-D1HPTUrP.js} +390 -99
- package/dist/chunks/escape-D1HPTUrP.js.map +1 -0
- package/dist/chunks/export-CHd4tQE2.js +4333 -0
- package/dist/chunks/export-CHd4tQE2.js.map +1 -0
- package/dist/chunks/{importer-eUREhBGj.js → exporter-D23CKNqF.js} +4969 -3201
- package/dist/chunks/exporter-D23CKNqF.js.map +1 -0
- package/dist/chunks/{exporter-DIeGJXAZ.js → exporter-DfWTgrti.js} +23 -21
- package/dist/chunks/exporter-DfWTgrti.js.map +1 -0
- package/dist/chunks/exporter-DhtW6FxK.js +3465 -0
- package/dist/chunks/exporter-DhtW6FxK.js.map +1 -0
- package/dist/chunks/{exporter-BGrsWamJ.js → exporter-IHv4nkCm.js} +38 -229
- package/dist/chunks/exporter-IHv4nkCm.js.map +1 -0
- package/dist/chunks/{importer-BWY2FFc5.js → importer-B1wmPQjr.js} +255 -77
- package/dist/chunks/importer-B1wmPQjr.js.map +1 -0
- package/dist/chunks/{importer-D_e7e7LX.js → importer-B2W_58pz.js} +399 -146
- package/dist/chunks/importer-B2W_58pz.js.map +1 -0
- package/dist/chunks/importer-BSALvkui.js +2811 -0
- package/dist/chunks/importer-BSALvkui.js.map +1 -0
- package/dist/chunks/{importer-vi3bSdtw.js → importer-BVRE--Un.js} +510 -77
- package/dist/chunks/importer-BVRE--Un.js.map +1 -0
- package/dist/chunks/{importer-DET1tg6s.js → importer-CIAzt-wo.js} +1689 -312
- package/dist/chunks/importer-CIAzt-wo.js.map +1 -0
- package/dist/chunks/{importer-DIrbbnAf.js → importer-DpEW5zeG.js} +585 -226
- package/dist/chunks/importer-DpEW5zeG.js.map +1 -0
- package/dist/chunks/{importer-zGLo8Dg_.js → importer-z_FL4VMb.js} +488 -161
- package/dist/chunks/importer-z_FL4VMb.js.map +1 -0
- package/dist/chunks/json-elements-BAmNBZok.js +1225 -0
- package/dist/chunks/json-elements-BAmNBZok.js.map +1 -0
- package/dist/chunks/ontology-export-Bab4eUA8.js +357 -0
- package/dist/chunks/ontology-export-Bab4eUA8.js.map +1 -0
- package/dist/chunks/{records-dbRkxwaq.js → records-CdlvL4RO.js} +298 -114
- package/dist/chunks/records-CdlvL4RO.js.map +1 -0
- package/dist/chunks/{text-Dr0Ifpag.js → text-DzXjAiTl.js} +29 -11
- package/dist/chunks/text-DzXjAiTl.js.map +1 -0
- package/dist/chunks/{writer-C7flM-Ih.js → writer-DxjgHwSe.js} +19 -1
- package/dist/chunks/writer-DxjgHwSe.js.map +1 -0
- package/dist/csv.js +952 -262
- package/dist/csv.js.map +1 -1
- package/dist/cx.js +6 -3
- package/dist/cx2.js +2 -2
- package/dist/cys.js +6 -3
- package/dist/dot.js +1 -1
- package/dist/gexf.js +554 -122
- package/dist/gexf.js.map +1 -1
- package/dist/gml.js +344 -87
- package/dist/gml.js.map +1 -1
- package/dist/graph-io.js +1105 -213
- package/dist/graph-io.js.map +1 -1
- package/dist/graphml.js +3 -2
- package/dist/graphml.js.map +1 -1
- package/dist/json.js +3 -2
- package/dist/neo4j.js +565 -158
- package/dist/neo4j.js.map +1 -1
- package/dist/obo.js +6 -3
- package/dist/pajek.js +1 -1
- package/dist/src/children.d.ts +18 -6
- package/dist/src/children.d.ts.map +1 -1
- package/dist/src/children.js +6 -3
- package/dist/src/children.js.map +1 -1
- package/dist/src/common/attributes.d.ts +29 -11
- package/dist/src/common/attributes.d.ts.map +1 -1
- package/dist/src/common/attributes.js +25 -7
- package/dist/src/common/attributes.js.map +1 -1
- package/dist/src/common/cell-budget.d.ts +9 -2
- package/dist/src/common/cell-budget.d.ts.map +1 -1
- package/dist/src/common/cell-budget.js +11 -3
- package/dist/src/common/cell-budget.js.map +1 -1
- package/dist/src/common/choose.d.ts +19 -0
- package/dist/src/common/choose.d.ts.map +1 -0
- package/dist/src/common/choose.js +72 -0
- package/dist/src/common/choose.js.map +1 -0
- package/dist/src/common/codes.d.ts +456 -66
- package/dist/src/common/codes.d.ts.map +1 -1
- package/dist/src/common/codes.js +458 -66
- package/dist/src/common/codes.js.map +1 -1
- package/dist/src/common/compare.d.ts +81 -0
- package/dist/src/common/compare.d.ts.map +1 -0
- package/dist/src/common/compare.js +394 -0
- package/dist/src/common/compare.js.map +1 -0
- package/dist/src/common/cx-export.d.ts +123 -0
- package/dist/src/common/cx-export.d.ts.map +1 -0
- package/dist/src/common/cx-export.js +334 -0
- package/dist/src/common/cx-export.js.map +1 -0
- package/dist/src/common/declared-types.d.ts +22 -2
- package/dist/src/common/declared-types.d.ts.map +1 -1
- package/dist/src/common/declared-types.js +21 -3
- package/dist/src/common/declared-types.js.map +1 -1
- package/dist/src/common/direction.d.ts +74 -50
- package/dist/src/common/direction.d.ts.map +1 -1
- package/dist/src/common/direction.js +47 -27
- package/dist/src/common/direction.js.map +1 -1
- package/dist/src/common/escape.d.ts +21 -9
- package/dist/src/common/escape.d.ts.map +1 -1
- package/dist/src/common/escape.js +39 -22
- package/dist/src/common/escape.js.map +1 -1
- package/dist/src/common/export.d.ts +144 -32
- package/dist/src/common/export.d.ts.map +1 -1
- package/dist/src/common/export.js +216 -42
- package/dist/src/common/export.js.map +1 -1
- package/dist/src/common/format.d.ts +23 -1
- package/dist/src/common/format.d.ts.map +1 -1
- package/dist/src/common/format.js +26 -1
- package/dist/src/common/format.js.map +1 -1
- package/dist/src/common/ids.d.ts +9 -2
- package/dist/src/common/ids.d.ts.map +1 -1
- package/dist/src/common/ids.js +6 -2
- package/dist/src/common/ids.js.map +1 -1
- package/dist/src/common/input.d.ts +122 -28
- package/dist/src/common/input.d.ts.map +1 -1
- package/dist/src/common/input.js +890 -124
- package/dist/src/common/input.js.map +1 -1
- package/dist/src/common/json-elements.d.ts +144 -20
- package/dist/src/common/json-elements.d.ts.map +1 -1
- package/dist/src/common/json-elements.js +869 -189
- package/dist/src/common/json-elements.js.map +1 -1
- package/dist/src/common/line-format.d.ts +90 -0
- package/dist/src/common/line-format.d.ts.map +1 -0
- package/dist/src/common/line-format.js +185 -0
- package/dist/src/common/line-format.js.map +1 -0
- package/dist/src/common/lists.d.ts +6 -1
- package/dist/src/common/lists.d.ts.map +1 -1
- package/dist/src/common/lists.js +3 -1
- package/dist/src/common/lists.js.map +1 -1
- package/dist/src/common/ontology-export.d.ts +167 -0
- package/dist/src/common/ontology-export.d.ts.map +1 -0
- package/dist/src/common/ontology-export.js +359 -0
- package/dist/src/common/ontology-export.js.map +1 -0
- package/dist/src/common/ontology.d.ts +25 -3
- package/dist/src/common/ontology.d.ts.map +1 -1
- package/dist/src/common/ontology.js +30 -9
- package/dist/src/common/ontology.js.map +1 -1
- package/dist/src/common/options.d.ts +62 -12
- package/dist/src/common/options.d.ts.map +1 -1
- package/dist/src/common/options.js +89 -11
- package/dist/src/common/options.js.map +1 -1
- package/dist/src/common/plural.d.ts +31 -0
- package/dist/src/common/plural.d.ts.map +1 -0
- package/dist/src/common/plural.js +46 -0
- package/dist/src/common/plural.js.map +1 -0
- package/dist/src/common/report.d.ts +72 -14
- package/dist/src/common/report.d.ts.map +1 -1
- package/dist/src/common/report.js +146 -22
- package/dist/src/common/report.js.map +1 -1
- package/dist/src/common/temporal.d.ts +22 -5
- package/dist/src/common/temporal.d.ts.map +1 -1
- package/dist/src/common/temporal.js +13 -2
- package/dist/src/common/temporal.js.map +1 -1
- package/dist/src/common/text.d.ts +39 -23
- package/dist/src/common/text.d.ts.map +1 -1
- package/dist/src/common/text.js +51 -21
- package/dist/src/common/text.js.map +1 -1
- package/dist/src/common/weights.d.ts +37 -4
- package/dist/src/common/weights.d.ts.map +1 -1
- package/dist/src/common/weights.js +61 -2
- package/dist/src/common/weights.js.map +1 -1
- package/dist/src/common/writer.d.ts +19 -3
- package/dist/src/common/writer.d.ts.map +1 -1
- package/dist/src/common/writer.js +30 -2
- package/dist/src/common/writer.js.map +1 -1
- package/dist/src/common/xml.d.ts +125 -9
- package/dist/src/common/xml.d.ts.map +1 -1
- package/dist/src/common/xml.js +402 -85
- package/dist/src/common/xml.js.map +1 -1
- package/dist/src/common/zip.d.ts +44 -4
- package/dist/src/common/zip.d.ts.map +1 -1
- package/dist/src/common/zip.js +134 -5
- package/dist/src/common/zip.js.map +1 -1
- package/dist/src/formats/csv/exporter.d.ts +80 -24
- package/dist/src/formats/csv/exporter.d.ts.map +1 -1
- package/dist/src/formats/csv/exporter.js +146 -33
- package/dist/src/formats/csv/exporter.js.map +1 -1
- package/dist/src/formats/csv/header.d.ts +38 -9
- package/dist/src/formats/csv/header.d.ts.map +1 -1
- package/dist/src/formats/csv/header.js +46 -10
- package/dist/src/formats/csv/header.js.map +1 -1
- package/dist/src/formats/csv/importer.d.ts +187 -37
- package/dist/src/formats/csv/importer.d.ts.map +1 -1
- package/dist/src/formats/csv/importer.js +835 -204
- package/dist/src/formats/csv/importer.js.map +1 -1
- package/dist/src/formats/csv/index.d.ts +100 -19
- package/dist/src/formats/csv/index.d.ts.map +1 -1
- package/dist/src/formats/csv/index.js +94 -21
- package/dist/src/formats/csv/index.js.map +1 -1
- package/dist/src/formats/csv/records.d.ts +95 -10
- package/dist/src/formats/csv/records.d.ts.map +1 -1
- package/dist/src/formats/csv/records.js +333 -122
- package/dist/src/formats/csv/records.js.map +1 -1
- package/dist/src/formats/csv/values.d.ts +1 -0
- package/dist/src/formats/csv/values.d.ts.map +1 -1
- package/dist/src/formats/csv/values.js +1 -0
- package/dist/src/formats/csv/values.js.map +1 -1
- package/dist/src/formats/cx/exporter.d.ts +102 -0
- package/dist/src/formats/cx/exporter.d.ts.map +1 -0
- package/dist/src/formats/cx/exporter.js +1217 -0
- package/dist/src/formats/cx/exporter.js.map +1 -0
- package/dist/src/formats/cx/importer.d.ts +79 -32
- package/dist/src/formats/cx/importer.d.ts.map +1 -1
- package/dist/src/formats/cx/importer.js +682 -287
- package/dist/src/formats/cx/importer.js.map +1 -1
- package/dist/src/formats/cx/index.d.ts +4 -3
- package/dist/src/formats/cx/index.d.ts.map +1 -1
- package/dist/src/formats/cx/index.js +4 -3
- package/dist/src/formats/cx/index.js.map +1 -1
- package/dist/src/formats/cx2/exporter.d.ts +29 -11
- package/dist/src/formats/cx2/exporter.d.ts.map +1 -1
- package/dist/src/formats/cx2/exporter.js +39 -268
- package/dist/src/formats/cx2/exporter.js.map +1 -1
- package/dist/src/formats/cx2/importer.d.ts +78 -28
- package/dist/src/formats/cx2/importer.d.ts.map +1 -1
- package/dist/src/formats/cx2/importer.js +227 -80
- package/dist/src/formats/cx2/importer.js.map +1 -1
- package/dist/src/formats/cx2/index.d.ts +2 -1
- package/dist/src/formats/cx2/index.d.ts.map +1 -1
- package/dist/src/formats/cx2/index.js +2 -1
- package/dist/src/formats/cx2/index.js.map +1 -1
- package/dist/src/formats/cys/constants.d.ts +66 -17
- package/dist/src/formats/cys/constants.d.ts.map +1 -1
- package/dist/src/formats/cys/constants.js +59 -18
- package/dist/src/formats/cys/constants.js.map +1 -1
- package/dist/src/formats/cys/exporter.d.ts +118 -0
- package/dist/src/formats/cys/exporter.d.ts.map +1 -0
- package/dist/src/formats/cys/exporter.js +1072 -0
- package/dist/src/formats/cys/exporter.js.map +1 -0
- package/dist/src/formats/cys/importer.d.ts +22 -8
- package/dist/src/formats/cys/importer.d.ts.map +1 -1
- package/dist/src/formats/cys/importer.js +510 -149
- package/dist/src/formats/cys/importer.js.map +1 -1
- package/dist/src/formats/cys/index.d.ts +4 -2
- package/dist/src/formats/cys/index.d.ts.map +1 -1
- package/dist/src/formats/cys/index.js +4 -2
- package/dist/src/formats/cys/index.js.map +1 -1
- package/dist/src/formats/cys/session.d.ts +46 -7
- package/dist/src/formats/cys/session.d.ts.map +1 -1
- package/dist/src/formats/cys/session.js +101 -27
- package/dist/src/formats/cys/session.js.map +1 -1
- package/dist/src/formats/cys/tables.d.ts +9 -2
- package/dist/src/formats/cys/tables.d.ts.map +1 -1
- package/dist/src/formats/cys/tables.js +29 -7
- package/dist/src/formats/cys/tables.js.map +1 -1
- package/dist/src/formats/dot/exporter.d.ts +42 -14
- package/dist/src/formats/dot/exporter.d.ts.map +1 -1
- package/dist/src/formats/dot/exporter.js +56 -29
- package/dist/src/formats/dot/exporter.js.map +1 -1
- package/dist/src/formats/dot/importer.d.ts +91 -29
- package/dist/src/formats/dot/importer.d.ts.map +1 -1
- package/dist/src/formats/dot/importer.js +190 -39
- package/dist/src/formats/dot/importer.js.map +1 -1
- package/dist/src/formats/dot/index.d.ts +2 -1
- package/dist/src/formats/dot/index.d.ts.map +1 -1
- package/dist/src/formats/dot/index.js +2 -1
- package/dist/src/formats/dot/index.js.map +1 -1
- package/dist/src/formats/dot/names.d.ts +44 -11
- package/dist/src/formats/dot/names.d.ts.map +1 -1
- package/dist/src/formats/dot/names.js +44 -11
- package/dist/src/formats/dot/names.js.map +1 -1
- package/dist/src/formats/dot/tokenizer.d.ts +9 -2
- package/dist/src/formats/dot/tokenizer.d.ts.map +1 -1
- package/dist/src/formats/dot/tokenizer.js +20 -5
- package/dist/src/formats/dot/tokenizer.js.map +1 -1
- package/dist/src/formats/gexf/exporter.d.ts +46 -15
- package/dist/src/formats/gexf/exporter.d.ts.map +1 -1
- package/dist/src/formats/gexf/exporter.js +45 -15
- package/dist/src/formats/gexf/exporter.js.map +1 -1
- package/dist/src/formats/gexf/importer.d.ts +87 -23
- package/dist/src/formats/gexf/importer.d.ts.map +1 -1
- package/dist/src/formats/gexf/importer.js +471 -90
- package/dist/src/formats/gexf/importer.js.map +1 -1
- package/dist/src/formats/gexf/index.d.ts +84 -21
- package/dist/src/formats/gexf/index.d.ts.map +1 -1
- package/dist/src/formats/gexf/index.js +80 -23
- package/dist/src/formats/gexf/index.js.map +1 -1
- package/dist/src/formats/gexf/schema.d.ts +67 -15
- package/dist/src/formats/gexf/schema.d.ts.map +1 -1
- package/dist/src/formats/gexf/schema.js +59 -13
- package/dist/src/formats/gexf/schema.js.map +1 -1
- package/dist/src/formats/gml/exporter.d.ts +69 -21
- package/dist/src/formats/gml/exporter.d.ts.map +1 -1
- package/dist/src/formats/gml/exporter.js +74 -29
- package/dist/src/formats/gml/exporter.js.map +1 -1
- package/dist/src/formats/gml/importer.d.ts +116 -25
- package/dist/src/formats/gml/importer.d.ts.map +1 -1
- package/dist/src/formats/gml/importer.js +290 -61
- package/dist/src/formats/gml/importer.js.map +1 -1
- package/dist/src/formats/gml/index.d.ts +87 -24
- package/dist/src/formats/gml/index.d.ts.map +1 -1
- package/dist/src/formats/gml/index.js +79 -26
- package/dist/src/formats/gml/index.js.map +1 -1
- package/dist/src/formats/gml/syntax.d.ts +67 -18
- package/dist/src/formats/gml/syntax.d.ts.map +1 -1
- package/dist/src/formats/gml/syntax.js +110 -28
- package/dist/src/formats/gml/syntax.js.map +1 -1
- package/dist/src/formats/graphml/constants.d.ts +174 -44
- package/dist/src/formats/graphml/constants.d.ts.map +1 -1
- package/dist/src/formats/graphml/constants.js +165 -44
- package/dist/src/formats/graphml/constants.js.map +1 -1
- package/dist/src/formats/graphml/exporter.d.ts +17 -9
- package/dist/src/formats/graphml/exporter.d.ts.map +1 -1
- package/dist/src/formats/graphml/exporter.js +33 -12
- package/dist/src/formats/graphml/exporter.js.map +1 -1
- package/dist/src/formats/graphml/importer.d.ts +19 -7
- package/dist/src/formats/graphml/importer.d.ts.map +1 -1
- package/dist/src/formats/graphml/importer.js +466 -39
- package/dist/src/formats/graphml/importer.js.map +1 -1
- package/dist/src/formats/graphml/index.d.ts +2 -1
- package/dist/src/formats/graphml/index.d.ts.map +1 -1
- package/dist/src/formats/graphml/index.js +2 -1
- package/dist/src/formats/graphml/index.js.map +1 -1
- package/dist/src/formats/graphml/tree.d.ts +6 -2
- package/dist/src/formats/graphml/tree.d.ts.map +1 -1
- package/dist/src/formats/graphml/tree.js +6 -2
- package/dist/src/formats/graphml/tree.js.map +1 -1
- package/dist/src/formats/graphml/yfiles.d.ts +8 -3
- package/dist/src/formats/graphml/yfiles.d.ts.map +1 -1
- package/dist/src/formats/graphml/yfiles.js +36 -15
- package/dist/src/formats/graphml/yfiles.js.map +1 -1
- package/dist/src/formats/json/dialect.d.ts +88 -24
- package/dist/src/formats/json/dialect.d.ts.map +1 -1
- package/dist/src/formats/json/dialect.js +109 -19
- package/dist/src/formats/json/dialect.js.map +1 -1
- package/dist/src/formats/json/exporter.d.ts +134 -22
- package/dist/src/formats/json/exporter.d.ts.map +1 -1
- package/dist/src/formats/json/exporter.js +135 -54
- package/dist/src/formats/json/exporter.js.map +1 -1
- package/dist/src/formats/json/importer.d.ts +173 -52
- package/dist/src/formats/json/importer.d.ts.map +1 -1
- package/dist/src/formats/json/importer.js +899 -220
- package/dist/src/formats/json/importer.js.map +1 -1
- package/dist/src/formats/json/index.d.ts +3 -2
- package/dist/src/formats/json/index.d.ts.map +1 -1
- package/dist/src/formats/json/index.js +3 -2
- package/dist/src/formats/json/index.js.map +1 -1
- package/dist/src/formats/json/obographs-export.d.ts +68 -0
- package/dist/src/formats/json/obographs-export.d.ts.map +1 -0
- package/dist/src/formats/json/obographs-export.js +941 -0
- package/dist/src/formats/json/obographs-export.js.map +1 -0
- package/dist/src/formats/json/obographs.d.ts +26 -0
- package/dist/src/formats/json/obographs.d.ts.map +1 -1
- package/dist/src/formats/json/obographs.js +297 -80
- package/dist/src/formats/json/obographs.js.map +1 -1
- package/dist/src/formats/neo4j/exporter.d.ts +109 -21
- package/dist/src/formats/neo4j/exporter.d.ts.map +1 -1
- package/dist/src/formats/neo4j/exporter.js +239 -86
- package/dist/src/formats/neo4j/exporter.js.map +1 -1
- package/dist/src/formats/neo4j/header.d.ts +17 -4
- package/dist/src/formats/neo4j/header.d.ts.map +1 -1
- package/dist/src/formats/neo4j/header.js +36 -4
- package/dist/src/formats/neo4j/header.js.map +1 -1
- package/dist/src/formats/neo4j/importer.d.ts +107 -27
- package/dist/src/formats/neo4j/importer.d.ts.map +1 -1
- package/dist/src/formats/neo4j/importer.js +415 -63
- package/dist/src/formats/neo4j/importer.js.map +1 -1
- package/dist/src/formats/neo4j/index.d.ts +73 -23
- package/dist/src/formats/neo4j/index.d.ts.map +1 -1
- package/dist/src/formats/neo4j/index.js +65 -25
- package/dist/src/formats/neo4j/index.js.map +1 -1
- package/dist/src/formats/obo/exporter.d.ts +150 -0
- package/dist/src/formats/obo/exporter.d.ts.map +1 -0
- package/dist/src/formats/obo/exporter.js +1736 -0
- package/dist/src/formats/obo/exporter.js.map +1 -0
- package/dist/src/formats/obo/importer.d.ts +95 -19
- package/dist/src/formats/obo/importer.d.ts.map +1 -1
- package/dist/src/formats/obo/importer.js +475 -104
- package/dist/src/formats/obo/importer.js.map +1 -1
- package/dist/src/formats/obo/index.d.ts +6 -3
- package/dist/src/formats/obo/index.d.ts.map +1 -1
- package/dist/src/formats/obo/index.js +6 -3
- package/dist/src/formats/obo/index.js.map +1 -1
- package/dist/src/formats/obo/syntax.d.ts +108 -4
- package/dist/src/formats/obo/syntax.d.ts.map +1 -1
- package/dist/src/formats/obo/syntax.js +211 -34
- package/dist/src/formats/obo/syntax.js.map +1 -1
- package/dist/src/formats/pajek/exporter.d.ts +54 -16
- package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
- package/dist/src/formats/pajek/exporter.js +67 -35
- package/dist/src/formats/pajek/exporter.js.map +1 -1
- package/dist/src/formats/pajek/importer.d.ts +84 -22
- package/dist/src/formats/pajek/importer.d.ts.map +1 -1
- package/dist/src/formats/pajek/importer.js +303 -83
- package/dist/src/formats/pajek/importer.js.map +1 -1
- package/dist/src/formats/pajek/index.d.ts +2 -1
- package/dist/src/formats/pajek/index.d.ts.map +1 -1
- package/dist/src/formats/pajek/index.js +2 -1
- package/dist/src/formats/pajek/index.js.map +1 -1
- package/dist/src/formats/pajek/syntax.d.ts +77 -14
- package/dist/src/formats/pajek/syntax.d.ts.map +1 -1
- package/dist/src/formats/pajek/syntax.js +186 -54
- package/dist/src/formats/pajek/syntax.js.map +1 -1
- package/dist/src/formats/xgmml/columns.d.ts +1 -0
- package/dist/src/formats/xgmml/columns.d.ts.map +1 -1
- package/dist/src/formats/xgmml/columns.js +4 -0
- package/dist/src/formats/xgmml/columns.js.map +1 -1
- package/dist/src/formats/xgmml/constants.d.ts +186 -56
- package/dist/src/formats/xgmml/constants.d.ts.map +1 -1
- package/dist/src/formats/xgmml/constants.js +181 -57
- package/dist/src/formats/xgmml/constants.js.map +1 -1
- package/dist/src/formats/xgmml/document.d.ts +65 -11
- package/dist/src/formats/xgmml/document.d.ts.map +1 -1
- package/dist/src/formats/xgmml/document.js +157 -28
- package/dist/src/formats/xgmml/document.js.map +1 -1
- package/dist/src/formats/xgmml/emit.d.ts +61 -3
- package/dist/src/formats/xgmml/emit.d.ts.map +1 -1
- package/dist/src/formats/xgmml/emit.js +129 -26
- package/dist/src/formats/xgmml/emit.js.map +1 -1
- package/dist/src/formats/xgmml/exporter.d.ts +13 -6
- package/dist/src/formats/xgmml/exporter.d.ts.map +1 -1
- package/dist/src/formats/xgmml/exporter.js +21 -22
- package/dist/src/formats/xgmml/exporter.js.map +1 -1
- package/dist/src/formats/xgmml/importer.d.ts +33 -12
- package/dist/src/formats/xgmml/importer.d.ts.map +1 -1
- package/dist/src/formats/xgmml/importer.js +35 -72
- package/dist/src/formats/xgmml/importer.js.map +1 -1
- package/dist/src/formats/xgmml/index.d.ts +1 -0
- package/dist/src/formats/xgmml/index.d.ts.map +1 -1
- package/dist/src/formats/xgmml/index.js +1 -0
- package/dist/src/formats/xgmml/index.js.map +1 -1
- package/dist/src/formats/xgmml/values.d.ts +8 -1
- package/dist/src/formats/xgmml/values.d.ts.map +1 -1
- package/dist/src/formats/xgmml/values.js +8 -3
- package/dist/src/formats/xgmml/values.js.map +1 -1
- package/dist/src/index.d.ts +23 -18
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +28 -16
- package/dist/src/index.js.map +1 -1
- package/dist/src/registry.d.ts +478 -92
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +807 -88
- package/dist/src/registry.js.map +1 -1
- package/dist/src/sniff.d.ts +61 -19
- package/dist/src/sniff.d.ts.map +1 -1
- package/dist/src/sniff.js +121 -29
- package/dist/src/sniff.js.map +1 -1
- package/dist/src/types.d.ts +362 -112
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +28 -7
- package/dist/src/types.js.map +1 -1
- package/dist/xgmml.js +2 -2
- package/docs/samples/README.md +25 -0
- package/docs/samples/got-edges.csv +353 -0
- package/docs/samples/got-network.graphml +1384 -0
- package/docs/samples/got-nodes.csv +108 -0
- package/docs/samples/got.cx +930 -0
- package/docs/samples/got.cx2 +465 -0
- package/docs/samples/got.gexf +471 -0
- package/docs/samples/got.gml +2650 -0
- package/docs/samples/got.json +2546 -0
- package/docs/samples/got.net +461 -0
- package/docs/samples/movies-nodes.csv +9 -0
- package/docs/samples/movies-rels.csv +8 -0
- package/docs/samples/networks.cys +0 -0
- package/docs/samples/proteins.xgmml +9 -0
- package/docs/samples/teams.gv +24 -0
- package/docs/samples/vehicles.obo +25 -0
- package/package.json +9 -4
- package/src/children.ts +18 -6
- package/src/common/attributes.ts +29 -11
- package/src/common/cell-budget.ts +11 -3
- package/src/common/choose.ts +89 -0
- package/src/common/codes.ts +490 -66
- package/src/common/compare.ts +472 -0
- package/src/common/cx-export.ts +432 -0
- package/src/common/declared-types.ts +40 -6
- package/src/common/direction.ts +78 -51
- package/src/common/escape.ts +39 -22
- package/src/common/export.ts +284 -47
- package/src/common/format.ts +30 -1
- package/src/common/ids.ts +14 -3
- package/src/common/input.ts +1057 -134
- package/src/common/json-elements.ts +1035 -199
- package/src/common/line-format.ts +249 -0
- package/src/common/lists.ts +7 -2
- package/src/common/ontology-export.ts +461 -0
- package/src/common/ontology.ts +31 -9
- package/src/common/options.ts +110 -15
- package/src/common/plural.ts +49 -0
- package/src/common/report.ts +168 -25
- package/src/common/temporal.ts +22 -5
- package/src/common/text.ts +62 -23
- package/src/common/weights.ts +74 -4
- package/src/common/writer.ts +37 -3
- package/src/common/xml.ts +479 -90
- package/src/common/zip.ts +169 -7
- package/src/formats/csv/exporter.ts +202 -47
- package/src/formats/csv/header.ts +50 -11
- package/src/formats/csv/importer.ts +1133 -245
- package/src/formats/csv/index.ts +106 -19
- package/src/formats/csv/records.ts +396 -122
- package/src/formats/csv/values.ts +1 -0
- package/src/formats/cx/exporter.ts +1483 -0
- package/src/formats/cx/importer.ts +890 -302
- package/src/formats/cx/index.ts +4 -3
- package/src/formats/cx2/exporter.ts +62 -339
- package/src/formats/cx2/importer.ts +318 -87
- package/src/formats/cx2/index.ts +2 -1
- package/src/formats/cys/constants.ts +62 -17
- package/src/formats/cys/exporter.ts +1368 -0
- package/src/formats/cys/importer.ts +659 -157
- package/src/formats/cys/index.ts +4 -2
- package/src/formats/cys/session.ts +142 -34
- package/src/formats/cys/tables.ts +47 -9
- package/src/formats/dot/exporter.ts +83 -37
- package/src/formats/dot/importer.ts +248 -54
- package/src/formats/dot/index.ts +2 -1
- package/src/formats/dot/names.ts +44 -11
- package/src/formats/dot/tokenizer.ts +25 -6
- package/src/formats/gexf/exporter.ts +57 -18
- package/src/formats/gexf/importer.ts +636 -105
- package/src/formats/gexf/index.ts +90 -21
- package/src/formats/gexf/schema.ts +67 -15
- package/src/formats/gml/exporter.ts +90 -36
- package/src/formats/gml/importer.ts +388 -67
- package/src/formats/gml/index.ts +85 -24
- package/src/formats/gml/syntax.ts +113 -28
- package/src/formats/graphml/constants.ts +178 -44
- package/src/formats/graphml/exporter.ts +52 -18
- package/src/formats/graphml/importer.ts +640 -60
- package/src/formats/graphml/index.ts +2 -1
- package/src/formats/graphml/tree.ts +6 -2
- package/src/formats/graphml/yfiles.ts +37 -15
- package/src/formats/json/dialect.ts +128 -29
- package/src/formats/json/exporter.ts +205 -68
- package/src/formats/json/importer.ts +1163 -253
- package/src/formats/json/index.ts +3 -1
- package/src/formats/json/obographs-export.ts +1197 -0
- package/src/formats/json/obographs.ts +353 -92
- package/src/formats/neo4j/exporter.ts +321 -102
- package/src/formats/neo4j/header.ts +44 -6
- package/src/formats/neo4j/importer.ts +512 -73
- package/src/formats/neo4j/index.ts +75 -23
- package/src/formats/obo/exporter.ts +2210 -0
- package/src/formats/obo/importer.ts +622 -109
- package/src/formats/obo/index.ts +6 -3
- package/src/formats/obo/syntax.ts +232 -37
- package/src/formats/pajek/exporter.ts +90 -42
- package/src/formats/pajek/importer.ts +407 -93
- package/src/formats/pajek/index.ts +2 -1
- package/src/formats/pajek/syntax.ts +216 -55
- package/src/formats/xgmml/columns.ts +10 -0
- package/src/formats/xgmml/constants.ts +183 -56
- package/src/formats/xgmml/document.ts +212 -34
- package/src/formats/xgmml/emit.ts +175 -34
- package/src/formats/xgmml/exporter.ts +36 -28
- package/src/formats/xgmml/importer.ts +64 -86
- package/src/formats/xgmml/index.ts +1 -0
- package/src/formats/xgmml/values.ts +12 -4
- package/src/index.ts +81 -11
- package/src/registry.ts +1121 -135
- package/src/sniff.ts +163 -32
- package/src/types.ts +385 -114
- package/dist/chunks/escape-B-tkk_Cl.js.map +0 -1
- package/dist/chunks/export-Bh60Dv-n.js +0 -582
- package/dist/chunks/export-Bh60Dv-n.js.map +0 -1
- package/dist/chunks/exporter-BGrsWamJ.js.map +0 -1
- package/dist/chunks/exporter-DIeGJXAZ.js.map +0 -1
- package/dist/chunks/importer-BWY2FFc5.js.map +0 -1
- package/dist/chunks/importer-DD-xv9_Y.js +0 -1471
- package/dist/chunks/importer-DD-xv9_Y.js.map +0 -1
- package/dist/chunks/importer-DET1tg6s.js.map +0 -1
- package/dist/chunks/importer-DEcKhsmQ.js +0 -1614
- package/dist/chunks/importer-DEcKhsmQ.js.map +0 -1
- package/dist/chunks/importer-DIrbbnAf.js.map +0 -1
- package/dist/chunks/importer-D_e7e7LX.js.map +0 -1
- package/dist/chunks/importer-eUREhBGj.js.map +0 -1
- package/dist/chunks/importer-vi3bSdtw.js.map +0 -1
- package/dist/chunks/importer-zGLo8Dg_.js.map +0 -1
- package/dist/chunks/json-elements-DDS8N2Dd.js +0 -779
- package/dist/chunks/json-elements-DDS8N2Dd.js.map +0 -1
- package/dist/chunks/ontology-BnrJ4I98.js +0 -113
- package/dist/chunks/ontology-BnrJ4I98.js.map +0 -1
- package/dist/chunks/records-dbRkxwaq.js.map +0 -1
- package/dist/chunks/report-B1z4WT9e.js +0 -2372
- package/dist/chunks/report-B1z4WT9e.js.map +0 -1
- package/dist/chunks/text-Dr0Ifpag.js.map +0 -1
- package/dist/chunks/weights-Dzba96G3.js +0 -176
- package/dist/chunks/weights-Dzba96G3.js.map +0 -1
- package/dist/chunks/writer-C7flM-Ih.js.map +0 -1
|
@@ -1,28 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The GEXF subpath entry (`@graphty/graph-io/gexf
|
|
2
|
+
* The GEXF subpath entry (`@graphty/graph-io/gexf`): the importer and exporter
|
|
3
3
|
* objects with their format-specific option types, the exporter's loss-note codes and the
|
|
4
4
|
* importer's issue codes grouped in one table.
|
|
5
|
+
* @module @graphty/graph-io/gexf
|
|
5
6
|
*/
|
|
6
7
|
|
|
7
8
|
import {
|
|
8
9
|
BAD_DEFAULT_CODE,
|
|
9
10
|
BAD_OPTIONS_CODE,
|
|
11
|
+
BAD_VALUE_CODE,
|
|
10
12
|
COLUMN_RENAMED_CODE,
|
|
13
|
+
COLUMN_TYPE_CODE,
|
|
11
14
|
COUNT_HINT_CODE,
|
|
15
|
+
COUNT_MISMATCH_CODE,
|
|
12
16
|
DIRECTION_FORCED_CODE,
|
|
13
17
|
DIRECTION_REFUSED_CODE,
|
|
14
18
|
DUPLICATE_ATTRIBUTE_CODE,
|
|
15
19
|
DUPLICATE_EDGE_ID_CODE,
|
|
16
20
|
DUPLICATE_NODE_CODE,
|
|
21
|
+
ELEMENT_ISSUE,
|
|
22
|
+
EMPTY_INPUT_CODE,
|
|
23
|
+
ENCODING_CONFLICT_CODE,
|
|
17
24
|
ENCODING_FALLBACK_CODE,
|
|
18
25
|
ID_MERGED_CODE,
|
|
26
|
+
INPUT_ISSUE,
|
|
19
27
|
INVALID_ENCODING_CODE,
|
|
20
28
|
INVALID_UTF8_CODE,
|
|
21
29
|
MISSING_ENDPOINT_CODE,
|
|
22
30
|
MISSING_ID_CODE,
|
|
23
31
|
MIXED_DIRECTION_CODE,
|
|
32
|
+
MULTIPLE_GRAPHS_CODE,
|
|
24
33
|
NO_GRAPH_CODE,
|
|
25
34
|
OPTION_IGNORED_CODE,
|
|
35
|
+
PARENT_CYCLE_CODE,
|
|
26
36
|
PRECISION_CODE,
|
|
27
37
|
ROLE_TAKEN_CODE,
|
|
28
38
|
SINK_OPTION_CODE,
|
|
@@ -31,6 +41,7 @@ import {
|
|
|
31
41
|
UNKNOWN_ELEMENT_CODE,
|
|
32
42
|
UNKNOWN_ENCODING_CODE,
|
|
33
43
|
UNKNOWN_PARENT_CODE,
|
|
44
|
+
UNKNOWN_XML_ATTRIBUTE_CODE,
|
|
34
45
|
XML_SYNTAX_CODE,
|
|
35
46
|
} from "../../common/codes.js";
|
|
36
47
|
import {
|
|
@@ -45,7 +56,9 @@ import {
|
|
|
45
56
|
OPEN_BOUND_CONFLICT_CODE,
|
|
46
57
|
SPELL_OPEN_CODE,
|
|
47
58
|
TIMED_STATIC_CODE,
|
|
59
|
+
TIMESTAMP_CONFLICT_CODE,
|
|
48
60
|
UNKNOWN_ATTRIBUTE_CODE,
|
|
61
|
+
VALUE_OUTSIDE_OPTIONS_CODE,
|
|
49
62
|
VIZ_DYNAMIC_CODE,
|
|
50
63
|
VIZ_SKIPPED_CODE,
|
|
51
64
|
VIZ_VALUE_CODE,
|
|
@@ -57,43 +70,77 @@ export { gexfImporter, type GexfImportOptions } from "./importer.js";
|
|
|
57
70
|
export { type GexfVersion } from "./schema.js";
|
|
58
71
|
|
|
59
72
|
/**
|
|
60
|
-
* The issue codes the GEXF importer records
|
|
61
|
-
* the other importers
|
|
73
|
+
* The issue codes the GEXF importer records, by name: the codes shared with
|
|
74
|
+
* the other importers and the GEXF-specific ones. A key is the code without
|
|
62
75
|
* its severity and format prefixes.
|
|
76
|
+
* @category Built-in formats
|
|
63
77
|
*/
|
|
64
78
|
export const GEXF_ISSUE = Object.freeze({
|
|
65
|
-
|
|
79
|
+
...INPUT_ISSUE,
|
|
80
|
+
...ELEMENT_ISSUE,
|
|
81
|
+
/**
|
|
82
|
+
* A value that does not parse as the type its attribute declares ("x" in an integer attribute). The value is
|
|
83
|
+
* left unset; the node or edge is kept.
|
|
84
|
+
*/
|
|
85
|
+
COLUMN_TYPE: COLUMN_TYPE_CODE,
|
|
86
|
+
/** The XML is not well-formed. The import stops. */
|
|
66
87
|
XML_SYNTAX: XML_SYNTAX_CODE,
|
|
67
|
-
/** The input
|
|
88
|
+
/** The input is not valid UTF-8. The import stops. */
|
|
68
89
|
INVALID_UTF8: INVALID_UTF8_CODE,
|
|
69
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* Some bytes are not valid in the encoding that was chosen (by a byte order mark, the file's declaration or the
|
|
92
|
+
* `encoding` option). The import stops.
|
|
93
|
+
*/
|
|
70
94
|
INVALID_ENCODING: INVALID_ENCODING_CODE,
|
|
71
95
|
/** Bytes that are not UTF-8 and declare no encoding were read as windows-1252. */
|
|
72
96
|
ENCODING_FALLBACK: ENCODING_FALLBACK_CODE,
|
|
73
97
|
/** A declared encoding the platform cannot decode was ignored. */
|
|
74
98
|
UNKNOWN_ENCODING: UNKNOWN_ENCODING_CODE,
|
|
75
|
-
/**
|
|
99
|
+
/** A declared encoding the byte order mark contradicts (the mark wins). */
|
|
100
|
+
ENCODING_CONFLICT: ENCODING_CONFLICT_CODE,
|
|
101
|
+
/** The input holds no XML at all: it is empty, whitespace or a byte order mark only. The import stops. */
|
|
102
|
+
EMPTY_INPUT: EMPTY_INPUT_CODE,
|
|
103
|
+
/** The root element is not `<gexf>`. The import stops. */
|
|
76
104
|
NOT_GEXF: NOT_GEXF_CODE,
|
|
77
|
-
/** The document has no `<graph
|
|
105
|
+
/** The document has no `<graph>`. The import stops. */
|
|
78
106
|
NO_GRAPH: NO_GRAPH_CODE,
|
|
107
|
+
/**
|
|
108
|
+
* The file holds more than one `<graph>` element; their nodes and edges are merged into one graph.
|
|
109
|
+
* `importAllGraphs()` reads every one.
|
|
110
|
+
*/
|
|
111
|
+
MULTIPLE_GRAPHS: MULTIPLE_GRAPHS_CODE,
|
|
79
112
|
/** `<edges>` without `<nodes>`. */
|
|
80
113
|
MISSING_NODES: MISSING_NODES_CODE,
|
|
81
114
|
/** A node without an id. */
|
|
82
115
|
MISSING_ID: MISSING_ID_CODE,
|
|
83
116
|
/** An edge without a source or target. */
|
|
84
117
|
MISSING_ENDPOINT: MISSING_ENDPOINT_CODE,
|
|
118
|
+
/** An edge endpoint that names no declared node (addMissingNodes false, the GEXF default). */
|
|
119
|
+
UNKNOWN_NODE: "E_UNKNOWN_NODE",
|
|
85
120
|
/** An edge `type` outside directed / undirected / mutual. */
|
|
86
121
|
EDGE_TYPE: EDGE_TYPE_CODE,
|
|
87
|
-
/** A `pid` / `<parent for>` naming an unknown node. */
|
|
122
|
+
/** A `pid` / `<parent for>` naming an unknown node, a `<parent>` without for, or the children of a skipped node. */
|
|
88
123
|
UNKNOWN_PARENT: UNKNOWN_PARENT_CODE,
|
|
124
|
+
/** A `pid` / nested containment that would close a parent cycle; that link is dropped. */
|
|
125
|
+
PARENT_CYCLE: PARENT_CYCLE_CODE,
|
|
126
|
+
/** An inverted interval (start after end) of an element, a spell or a value; it is not kept. */
|
|
127
|
+
BAD_VALUE: BAD_VALUE_CODE,
|
|
89
128
|
/** An `<attributes class>` outside node / edge. */
|
|
90
129
|
ATTRIBUTES_CLASS: ATTRIBUTES_CLASS_CODE,
|
|
91
130
|
/** An `<attribute>` without an id. */
|
|
92
131
|
ATTRIBUTE_ID: ATTRIBUTE_ID_CODE,
|
|
93
132
|
/** A `<graph>` header attribute with an unknown value. */
|
|
94
133
|
HEADER_VALUE: HEADER_VALUE_CODE,
|
|
95
|
-
/**
|
|
134
|
+
/**
|
|
135
|
+
* A node or edge count the file announces is too large to reserve room for; it is ignored and the elements are
|
|
136
|
+
* read as they come.
|
|
137
|
+
*/
|
|
96
138
|
COUNT_HINT: COUNT_HINT_CODE,
|
|
139
|
+
/**
|
|
140
|
+
* A `count` attribute disagrees with the number of nodes or edges actually in its section. The elements are read
|
|
141
|
+
* as they are.
|
|
142
|
+
*/
|
|
143
|
+
COUNT_MISMATCH: COUNT_MISMATCH_CODE,
|
|
97
144
|
/** A node id declared twice. */
|
|
98
145
|
DUPLICATE_NODE: DUPLICATE_NODE_CODE,
|
|
99
146
|
/** An edge id declared twice (the second edge is skipped). */
|
|
@@ -108,9 +155,15 @@ export const GEXF_ISSUE = Object.freeze({
|
|
|
108
155
|
BAD_DEFAULT: BAD_DEFAULT_CODE,
|
|
109
156
|
/** Options that do not parse as the declared type. */
|
|
110
157
|
BAD_OPTIONS: BAD_OPTIONS_CODE,
|
|
111
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* An attribute was renamed `<name>#<suffix>` because another attribute already has its name, for example
|
|
160
|
+
* two attributes declared with the same name.
|
|
161
|
+
*/
|
|
112
162
|
COLUMN_RENAMED: COLUMN_RENAMED_CODE,
|
|
113
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* You read into a graph builder that already has an id, label or position attribute, so this file's one is kept as
|
|
165
|
+
* a plain attribute.
|
|
166
|
+
*/
|
|
114
167
|
ROLE_TAKEN: ROLE_TAKEN_CODE,
|
|
115
168
|
/** An `<attvalue for>` naming an undeclared attribute. */
|
|
116
169
|
UNKNOWN_ATTRIBUTE: UNKNOWN_ATTRIBUTE_CODE,
|
|
@@ -118,13 +171,13 @@ export const GEXF_ISSUE = Object.freeze({
|
|
|
118
171
|
ATTVALUE_SHAPE: ATTVALUE_SHAPE_CODE,
|
|
119
172
|
/** A timed value on an attribute of a static group. */
|
|
120
173
|
TIMED_VALUE_ON_STATIC: TIMED_STATIC_CODE,
|
|
121
|
-
/**
|
|
174
|
+
/** An integer beyond 2^53 was stored as the nearest 64-bit float; pass `long: "string"` to keep every digit. */
|
|
122
175
|
PRECISION: PRECISION_CODE,
|
|
123
|
-
/** Two id texts
|
|
176
|
+
/** Two different id texts became the same number because `ids` is "number", so their nodes were merged. */
|
|
124
177
|
ID_MERGED: ID_MERGED_CODE,
|
|
125
178
|
/** The XML weight attribute ignored under weightFrom null. */
|
|
126
179
|
WEIGHT_IGNORED: WEIGHT_IGNORED_CODE,
|
|
127
|
-
/**
|
|
180
|
+
/** Viz elements skipped under viz: false. */
|
|
128
181
|
VIZ_SKIPPED: VIZ_SKIPPED_CODE,
|
|
129
182
|
/** A 1.2 dynamic viz element whose bounds were dropped. */
|
|
130
183
|
VIZ_DYNAMIC_DROPPED: VIZ_DYNAMIC_CODE,
|
|
@@ -134,18 +187,34 @@ export const GEXF_ISSUE = Object.freeze({
|
|
|
134
187
|
VIZ_VALUE: VIZ_VALUE_CODE,
|
|
135
188
|
/** Both `start` and `startopen` (or `end` and `endopen`) on one element. */
|
|
136
189
|
OPEN_BOUND_CONFLICT: OPEN_BOUND_CONFLICT_CODE,
|
|
137
|
-
/**
|
|
190
|
+
/** Both `timestamp` and `start` / `end` on one element or value. */
|
|
191
|
+
TIMESTAMP_CONFLICT: TIMESTAMP_CONFLICT_CODE,
|
|
192
|
+
/** A value outside the declared `<options>` (kept). */
|
|
193
|
+
VALUE_OUTSIDE_OPTIONS: VALUE_OUTSIDE_OPTIONS_CODE,
|
|
194
|
+
/** An element GEXF does not define at that place was skipped. */
|
|
138
195
|
UNKNOWN_ELEMENT: UNKNOWN_ELEMENT_CODE,
|
|
196
|
+
/** An XML attribute GEXF does not define on that element was ignored. */
|
|
197
|
+
UNKNOWN_XML_ATTRIBUTE: UNKNOWN_XML_ATTRIBUTE_CODE,
|
|
139
198
|
/** Text where GEXF allows only elements was ignored. */
|
|
140
199
|
STRAY_TEXT: STRAY_TEXT_CODE,
|
|
141
|
-
/**
|
|
200
|
+
/** You set an option this format does not use; it had no effect. The message names the option. */
|
|
142
201
|
OPTION_IGNORED: OPTION_IGNORED_CODE,
|
|
143
|
-
/**
|
|
202
|
+
/**
|
|
203
|
+
* You read into your own graph builder, which was created with a different `addMissingNodes`, `duplicateEdges`,
|
|
204
|
+
* `selfLoops` or `weightDtype` than the option you passed; the builder's setting applies.
|
|
205
|
+
*/
|
|
144
206
|
SINK_OPTION: SINK_OPTION_CODE,
|
|
145
|
-
/**
|
|
207
|
+
/**
|
|
208
|
+
* You read into a graph builder whose direction is already set, or which already holds edges, so the file is read
|
|
209
|
+
* with the builder's direction instead of its own.
|
|
210
|
+
*/
|
|
146
211
|
DIRECTION_REFUSED: DIRECTION_REFUSED_CODE,
|
|
147
|
-
/** Edges
|
|
212
|
+
/** Edges of the other direction were read with the direction `onMixedDirection` chose. */
|
|
148
213
|
DIRECTION_FORCED: DIRECTION_FORCED_CODE,
|
|
149
|
-
/**
|
|
214
|
+
/**
|
|
215
|
+
* The graph has both directed and undirected edges and `onMixedDirection` is "error". An import stops; a save to a
|
|
216
|
+
* format that holds one direction per file fails with E_DIRECTED. Pass "directed" or "undirected" to read or write
|
|
217
|
+
* it anyway.
|
|
218
|
+
*/
|
|
150
219
|
MIXED_DIRECTION: MIXED_DIRECTION_CODE,
|
|
151
220
|
});
|
|
@@ -11,31 +11,55 @@ import { type ColumnDecl, type Dtype } from "@graphty/graph-format";
|
|
|
11
11
|
|
|
12
12
|
import { TIME_TEXT_ROLE, TIME_TEXT_SUFFIX } from "../../common/temporal.js";
|
|
13
13
|
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* The GEXF versions the exporter writes.
|
|
16
|
+
* @category Built-in formats
|
|
17
|
+
*/
|
|
15
18
|
export type GexfVersion = "1.2" | "1.3";
|
|
16
19
|
|
|
17
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* The format name.
|
|
22
|
+
* @category Plugin helpers
|
|
23
|
+
*/
|
|
18
24
|
export const GEXF_FORMAT = "gexf";
|
|
19
25
|
|
|
20
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* The namespace URIs of each version.
|
|
28
|
+
* @category Plugin helpers
|
|
29
|
+
*/
|
|
21
30
|
export const GEXF_NAMESPACES: Readonly<Record<GexfVersion, { readonly gexf: string; readonly viz: string }>> = {
|
|
22
31
|
"1.2": { gexf: "http://www.gexf.net/1.2draft", viz: "http://www.gexf.net/1.2draft/viz" },
|
|
23
32
|
"1.3": { gexf: "http://gexf.net/1.3", viz: "http://gexf.net/1.3/viz" },
|
|
24
33
|
};
|
|
25
34
|
|
|
26
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* The default edge type values of `<graph defaultedgetype>` and `<edge type>`.
|
|
37
|
+
* @category Plugin helpers
|
|
38
|
+
*/
|
|
27
39
|
export type GexfEdgeType = "directed" | "undirected" | "mutual";
|
|
28
40
|
|
|
29
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* The GEXF `timeformat` values.
|
|
43
|
+
* @category Plugin helpers
|
|
44
|
+
*/
|
|
30
45
|
export const TIME_FORMATS: ReadonlySet<string> = new Set(["integer", "double", "date", "dateTime"]);
|
|
31
46
|
|
|
32
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* The GEXF graph `mode` values.
|
|
49
|
+
* @category Plugin helpers
|
|
50
|
+
*/
|
|
33
51
|
export const GRAPH_MODES: ReadonlySet<string> = new Set(["static", "dynamic", "slice"]);
|
|
34
52
|
|
|
35
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* The GEXF 1.3 `timerepresentation` values.
|
|
55
|
+
* @category Plugin helpers
|
|
56
|
+
*/
|
|
36
57
|
export const TIME_REPRESENTATIONS: ReadonlySet<string> = new Set(["interval", "timestamp"]);
|
|
37
58
|
|
|
38
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* The `origin.namespace` of viz-derived columns.
|
|
61
|
+
* @category Plugin helpers
|
|
62
|
+
*/
|
|
39
63
|
export const VIZ_NAMESPACE = "viz";
|
|
40
64
|
|
|
41
65
|
/** The origin every XML-derived column declares. */
|
|
@@ -47,6 +71,7 @@ const VIZ_ORIGIN = { format: GEXF_FORMAT, namespace: VIZ_NAMESPACE };
|
|
|
47
71
|
/**
|
|
48
72
|
* The fixed node column names the importer owns (design section 5.6): a declared attribute with
|
|
49
73
|
* one of these titles is renamed `<title>#<id>` so the XML-derived column keeps its name and role.
|
|
74
|
+
* @category Plugin helpers
|
|
50
75
|
*/
|
|
51
76
|
export const NODE_COLUMNS = Object.freeze({
|
|
52
77
|
label: "label",
|
|
@@ -83,7 +108,10 @@ const EDGE_COLUMNS = Object.freeze({
|
|
|
83
108
|
shape: "shape",
|
|
84
109
|
});
|
|
85
110
|
|
|
86
|
-
/**
|
|
111
|
+
/**
|
|
112
|
+
* Every reserved node column name, including the temporal companions.
|
|
113
|
+
* @category Plugin helpers
|
|
114
|
+
*/
|
|
87
115
|
export const RESERVED_NODE_NAMES: ReadonlySet<string> = new Set([
|
|
88
116
|
...Object.values(NODE_COLUMNS),
|
|
89
117
|
NODE_COLUMNS.start + TIME_TEXT_SUFFIX,
|
|
@@ -91,7 +119,10 @@ export const RESERVED_NODE_NAMES: ReadonlySet<string> = new Set([
|
|
|
91
119
|
NODE_COLUMNS.timestamp + TIME_TEXT_SUFFIX,
|
|
92
120
|
]);
|
|
93
121
|
|
|
94
|
-
/**
|
|
122
|
+
/**
|
|
123
|
+
* Every reserved edge column name, including the temporal companions.
|
|
124
|
+
* @category Plugin helpers
|
|
125
|
+
*/
|
|
95
126
|
export const RESERVED_EDGE_NAMES: ReadonlySet<string> = new Set([
|
|
96
127
|
...Object.values(EDGE_COLUMNS),
|
|
97
128
|
EDGE_COLUMNS.start + TIME_TEXT_SUFFIX,
|
|
@@ -99,7 +130,10 @@ export const RESERVED_EDGE_NAMES: ReadonlySet<string> = new Set([
|
|
|
99
130
|
EDGE_COLUMNS.timestamp + TIME_TEXT_SUFFIX,
|
|
100
131
|
]);
|
|
101
132
|
|
|
102
|
-
/**
|
|
133
|
+
/**
|
|
134
|
+
* The declarations of the XML-derived node columns, keyed as NODE_COLUMNS.
|
|
135
|
+
* @category Plugin helpers
|
|
136
|
+
*/
|
|
103
137
|
export const NODE_DECLS: Readonly<Record<keyof typeof NODE_COLUMNS, ColumnDecl>> = {
|
|
104
138
|
label: { name: NODE_COLUMNS.label, dtype: "string", role: "label", nullable: true, origin: XML_ORIGIN },
|
|
105
139
|
parent: {
|
|
@@ -171,7 +205,10 @@ export const NODE_DECLS: Readonly<Record<keyof typeof NODE_COLUMNS, ColumnDecl>>
|
|
|
171
205
|
shapeUri: { name: NODE_COLUMNS.shapeUri, dtype: "string", nullable: true, origin: VIZ_ORIGIN },
|
|
172
206
|
};
|
|
173
207
|
|
|
174
|
-
/**
|
|
208
|
+
/**
|
|
209
|
+
* The declarations of the XML-derived edge columns, keyed as EDGE_COLUMNS.
|
|
210
|
+
* @category Plugin helpers
|
|
211
|
+
*/
|
|
175
212
|
export const EDGE_DECLS: Readonly<Record<keyof typeof EDGE_COLUMNS, ColumnDecl>> = {
|
|
176
213
|
id: { name: EDGE_COLUMNS.id, dtype: "string", role: "id", unique: true, nullable: true, origin: XML_ORIGIN },
|
|
177
214
|
label: { name: EDGE_COLUMNS.label, dtype: "string", role: "label", nullable: true, origin: XML_ORIGIN },
|
|
@@ -217,16 +254,25 @@ export const EDGE_DECLS: Readonly<Record<keyof typeof EDGE_COLUMNS, ColumnDecl>>
|
|
|
217
254
|
shape: { name: EDGE_COLUMNS.shape, dtype: "dict", role: "shape", nullable: true, origin: VIZ_ORIGIN },
|
|
218
255
|
};
|
|
219
256
|
|
|
220
|
-
/**
|
|
257
|
+
/**
|
|
258
|
+
* The bit of the `open` column marking an open start (design section 5.1).
|
|
259
|
+
* @category Plugin helpers
|
|
260
|
+
*/
|
|
221
261
|
export const OPEN_START = 1;
|
|
222
262
|
|
|
223
|
-
/**
|
|
263
|
+
/**
|
|
264
|
+
* The bit of the `open` column marking an open end.
|
|
265
|
+
* @category Plugin helpers
|
|
266
|
+
*/
|
|
224
267
|
export const OPEN_END = 2;
|
|
225
268
|
|
|
226
269
|
/** The prefix of a temporal extension table's name (design section 5.10). */
|
|
227
270
|
const TEMPORAL_TABLE_PREFIX = "temporal:";
|
|
228
271
|
|
|
229
|
-
/**
|
|
272
|
+
/**
|
|
273
|
+
* The column names of a temporal extension table (design section 5.10).
|
|
274
|
+
* @category Plugin helpers
|
|
275
|
+
*/
|
|
230
276
|
export const TEMPORAL_COLUMNS = Object.freeze({
|
|
231
277
|
element: "element",
|
|
232
278
|
start: "start",
|
|
@@ -243,6 +289,7 @@ export const TEMPORAL_COLUMNS = Object.freeze({
|
|
|
243
289
|
* @param domain - node or edge
|
|
244
290
|
* @param column - the static column's name
|
|
245
291
|
* @returns `temporal:<domain>:<column>`
|
|
292
|
+
* @category Plugin helpers
|
|
246
293
|
*/
|
|
247
294
|
export function temporalTableName(domain: "node" | "edge", column: string): string {
|
|
248
295
|
return `${TEMPORAL_TABLE_PREFIX}${domain}:${column}`;
|
|
@@ -252,6 +299,7 @@ export function temporalTableName(domain: "node" | "edge", column: string): stri
|
|
|
252
299
|
* Split a temporal table name into its domain and column.
|
|
253
300
|
* @param name - the table name
|
|
254
301
|
* @returns the parts, or null when the name is not a temporal table's
|
|
302
|
+
* @category Plugin helpers
|
|
255
303
|
*/
|
|
256
304
|
export function parseTemporalTableName(name: string): { domain: "node" | "edge"; column: string } | null {
|
|
257
305
|
if (!name.startsWith(TEMPORAL_TABLE_PREFIX)) {
|
|
@@ -277,6 +325,7 @@ export function parseTemporalTableName(name: string): { domain: "node" | "edge";
|
|
|
277
325
|
* @param value - the value column's declaration fields (dtype, itemDtype, options...)
|
|
278
326
|
* @param temporalValue - whether the value is itself a temporal type needing a text companion
|
|
279
327
|
* @returns the declarations in table order
|
|
328
|
+
* @category Plugin helpers
|
|
280
329
|
*/
|
|
281
330
|
export function temporalTableDecls(
|
|
282
331
|
domain: "node" | "edge",
|
|
@@ -330,6 +379,7 @@ const TYPES_1_3: ReadonlySet<string> = new Set([
|
|
|
330
379
|
* @param type - the type text
|
|
331
380
|
* @param version - the target version
|
|
332
381
|
* @returns true when the version declares it
|
|
382
|
+
* @category Plugin helpers
|
|
333
383
|
*/
|
|
334
384
|
export function isScalarType(type: string, version: GexfVersion): boolean {
|
|
335
385
|
return (version === "1.2" ? TYPES_1_2 : TYPES_1_3).has(type);
|
|
@@ -340,6 +390,7 @@ export function isScalarType(type: string, version: GexfVersion): boolean {
|
|
|
340
390
|
* @param type - the type text
|
|
341
391
|
* @param version - the target version
|
|
342
392
|
* @returns true when the version declares it
|
|
393
|
+
* @category Plugin helpers
|
|
343
394
|
*/
|
|
344
395
|
export function isListType(type: string, version: GexfVersion): boolean {
|
|
345
396
|
if (version === "1.2") {
|
|
@@ -352,6 +403,7 @@ export function isListType(type: string, version: GexfVersion): boolean {
|
|
|
352
403
|
* The canonical GEXF scalar type of a column dtype (design section 5.1 reversed).
|
|
353
404
|
* @param dtype - a scalar dtype
|
|
354
405
|
* @returns the type text; u32 becomes `long` (its range exceeds `integer`), u8 `integer`, json `string`
|
|
406
|
+
* @category Plugin helpers
|
|
355
407
|
*/
|
|
356
408
|
export function canonicalScalarType(dtype: Dtype): string {
|
|
357
409
|
switch (dtype) {
|