@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,68 +1,139 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* What the GraphML importer and exporter share: the namespace, the format facts, the reserved
|
|
3
|
-
* column names of the XML-attribute-derived columns
|
|
3
|
+
* column names of the XML-attribute-derived columns, the `meta.extra`
|
|
4
4
|
* keys the importer records for the exporter, and the issue and loss codes.
|
|
5
5
|
*/
|
|
6
|
-
import { BAD_DEFAULT_CODE, COLUMN_RENAMED_CODE, COUNT_HINT_CODE, DIRECTION_FORCED_CODE, DIRECTION_REFUSED_CODE, DUPLICATE_EDGE_ID_CODE, DUPLICATE_KEY_CODE, DUPLICATE_NODE_CODE, ENCODING_FALLBACK_CODE, HYPEREDGE_CODE, ID_MERGED_CODE, ID_TEXT_TYPE_CODE, INVALID_ENCODING_CODE, INVALID_UTF8_CODE, MISSING_ENDPOINT_CODE, MISSING_ID_CODE, MIXED_DIRECTION_CODE, MULTIPLE_GRAPHS_CODE, MUTUAL_AS_UNDIRECTED_CODE, NO_GRAPH_CODE, OPTION_IGNORED_CODE, PARENTS_DROPPED_CODE, PRECISION_CODE, ROLE_DROPPED_CODE, ROLE_TAKEN_CODE, SINK_OPTION_CODE, STRAY_TEXT_CODE, UNKNOWN_ATTR_TYPE_CODE, UNKNOWN_ELEMENT_CODE, UNKNOWN_ENCODING_CODE, XML_SYNTAX_CODE, } from "../../common/codes.js";
|
|
7
|
-
/**
|
|
6
|
+
import { BAD_DEFAULT_CODE, COLUMN_RENAMED_CODE, COLUMN_TYPE_CODE, COUNT_HINT_CODE, COUNT_MISMATCH_CODE, DANGLING_REFERENCE_CODE, DIRECTION_FORCED_CODE, DIRECTION_REFUSED_CODE, DUPLICATE_ATTRIBUTE_CODE, DUPLICATE_EDGE_ID_CODE, DUPLICATE_KEY_CODE, DUPLICATE_NODE_CODE, ELEMENT_ISSUE, EMPTY_INPUT_CODE, ENCODING_CONFLICT_CODE, ENCODING_FALLBACK_CODE, HYPEREDGE_CODE, ID_MERGED_CODE, ID_TEXT_TYPE_CODE, INPUT_ISSUE, INVALID_ENCODING_CODE, INVALID_UTF8_CODE, MISSING_ENDPOINT_CODE, MISSING_ID_CODE, MIXED_DIRECTION_CODE, MULTIPLE_GRAPHS_CODE, MUTUAL_AS_UNDIRECTED_CODE, NO_GRAPH_CODE, OPTION_IGNORED_CODE, PARENTS_DROPPED_CODE, PRECISION_CODE, ROLE_DROPPED_CODE, ROLE_TAKEN_CODE, SINK_OPTION_CODE, STRAY_TEXT_CODE, UNKNOWN_ATTR_TYPE_CODE, UNKNOWN_ELEMENT_CODE, UNKNOWN_ENCODING_CODE, UNKNOWN_PARENT_CODE, UNKNOWN_XML_ATTRIBUTE_CODE, XML_SYNTAX_CODE, } from "../../common/codes.js";
|
|
7
|
+
/**
|
|
8
|
+
* The GraphML namespace.
|
|
9
|
+
* @category Plugin helpers
|
|
10
|
+
*/
|
|
8
11
|
export const GRAPHML_NAMESPACE = "http://graphml.graphdrawing.org/xmlns";
|
|
9
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* The yFiles extension namespace, declared as `xmlns:y` when a yfiles column is written.
|
|
14
|
+
* @category Plugin helpers
|
|
15
|
+
*/
|
|
10
16
|
export const YFILES_NAMESPACE = "http://www.yworks.com/xml/graphml";
|
|
11
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* The XML Schema instance namespace and the schema location the exporter writes.
|
|
19
|
+
* @category Plugin helpers
|
|
20
|
+
*/
|
|
12
21
|
export const XSI_NAMESPACE = "http://www.w3.org/2001/XMLSchema-instance";
|
|
13
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* The GraphML schema location written by the exporter.
|
|
24
|
+
* @category Plugin helpers
|
|
25
|
+
*/
|
|
14
26
|
export const SCHEMA_LOCATION = "http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd";
|
|
15
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* The format name.
|
|
29
|
+
* @category Plugin helpers
|
|
30
|
+
*/
|
|
16
31
|
export const FORMAT = "graphml";
|
|
17
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* File extensions.
|
|
34
|
+
* @category Plugin helpers
|
|
35
|
+
*/
|
|
18
36
|
export const EXTENSIONS = Object.freeze([".graphml", ".xml"]);
|
|
19
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* MIME types.
|
|
39
|
+
* @category Plugin helpers
|
|
40
|
+
*/
|
|
20
41
|
export const MIME_TYPES = Object.freeze(["application/graphml+xml", "application/xml", "text/xml"]);
|
|
21
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* The `attr.name` of the node key that carries ids rewritten by `sanitizeIds: "mangle"`.
|
|
44
|
+
* @category Plugin helpers
|
|
45
|
+
*/
|
|
22
46
|
export const ORIGINAL_ID_ATTRIBUTE = "graphty:originalId";
|
|
23
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* The node column that keeps original ids when `restoreMangledIds` is off.
|
|
49
|
+
* @category Plugin helpers
|
|
50
|
+
*/
|
|
24
51
|
export const ORIGINAL_ID_COLUMN = "graphty.originalId";
|
|
25
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* The edge column of the `id` XML attribute (role id, unique).
|
|
54
|
+
* @category Plugin helpers
|
|
55
|
+
*/
|
|
26
56
|
export const EDGE_ID_COLUMN = "id";
|
|
27
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* The edge columns of the `sourceport` / `targetport` XML attributes (roles sourcePort / targetPort).
|
|
59
|
+
* @category Plugin helpers
|
|
60
|
+
*/
|
|
28
61
|
export const SOURCE_PORT_COLUMN = "sourceport";
|
|
29
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* The edge column of the `targetport` XML attribute.
|
|
64
|
+
* @category Plugin helpers
|
|
65
|
+
*/
|
|
30
66
|
export const TARGET_PORT_COLUMN = "targetport";
|
|
31
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* The node column of the containing node of a nested graph (u32, role parent, refersTo node).
|
|
69
|
+
* @category Plugin helpers
|
|
70
|
+
*/
|
|
32
71
|
export const PARENT_COLUMN = "parent";
|
|
33
|
-
/**
|
|
72
|
+
/**
|
|
73
|
+
* The bool node column marking the hub nodes synthesized for hyperedges under `hyperedges: "star"`.
|
|
74
|
+
* @category Plugin helpers
|
|
75
|
+
*/
|
|
34
76
|
export const HYPEREDGE_HUB_COLUMN = "graphty.hyperedge";
|
|
35
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* The column name a node key titled `label` receives the `label` role under.
|
|
79
|
+
* @category Plugin helpers
|
|
80
|
+
*/
|
|
36
81
|
export const LABEL_COLUMN = "label";
|
|
37
|
-
/**
|
|
82
|
+
/**
|
|
83
|
+
* Edge column names reserved for the XML-attribute-derived columns; a key titled like one is renamed `<name>#<id>`.
|
|
84
|
+
* @category Plugin helpers
|
|
85
|
+
*/
|
|
38
86
|
export const RESERVED_EDGE_NAMES = new Set([
|
|
39
87
|
EDGE_ID_COLUMN,
|
|
40
88
|
SOURCE_PORT_COLUMN,
|
|
41
89
|
TARGET_PORT_COLUMN,
|
|
42
90
|
]);
|
|
43
|
-
/**
|
|
91
|
+
/**
|
|
92
|
+
* Node column names reserved for the XML-derived columns.
|
|
93
|
+
* @category Plugin helpers
|
|
94
|
+
*/
|
|
44
95
|
export const RESERVED_NODE_NAMES = new Set([PARENT_COLUMN]);
|
|
45
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* The `meta.extra` key under which the importer records what the exporter needs.
|
|
98
|
+
* @category Plugin helpers
|
|
99
|
+
*/
|
|
46
100
|
export const META_KEY = "graphml";
|
|
47
101
|
/**
|
|
48
|
-
* The issue codes the GraphML importer records
|
|
49
|
-
* with the other importers
|
|
102
|
+
* The issue codes the GraphML importer records, by name: the codes shared
|
|
103
|
+
* with the other importers and the GraphML-specific ones. A key is the code
|
|
50
104
|
* without its severity and format prefixes.
|
|
105
|
+
* @category Built-in formats
|
|
51
106
|
*/
|
|
52
107
|
export const GRAPHML_ISSUE = Object.freeze({
|
|
53
|
-
|
|
108
|
+
...INPUT_ISSUE,
|
|
109
|
+
...ELEMENT_ISSUE,
|
|
110
|
+
/**
|
|
111
|
+
* A value that does not parse as the type its attribute declares ("x" in an integer attribute). The value is
|
|
112
|
+
* left unset; the node or edge is kept.
|
|
113
|
+
*/
|
|
114
|
+
COLUMN_TYPE: COLUMN_TYPE_CODE,
|
|
115
|
+
/** The input is not well-formed XML. The import stops. */
|
|
54
116
|
XML_SYNTAX: XML_SYNTAX_CODE,
|
|
55
|
-
/**
|
|
117
|
+
/** The input is not valid UTF-8. The import stops. */
|
|
56
118
|
INVALID_UTF8: INVALID_UTF8_CODE,
|
|
57
|
-
/**
|
|
119
|
+
/**
|
|
120
|
+
* Some bytes are not valid in the encoding that was chosen (by a byte order mark, the file's declaration or the
|
|
121
|
+
* `encoding` option). The import stops.
|
|
122
|
+
*/
|
|
58
123
|
INVALID_ENCODING: INVALID_ENCODING_CODE,
|
|
59
124
|
/** Bytes that are not UTF-8 and declare no encoding were read as windows-1252. */
|
|
60
125
|
ENCODING_FALLBACK: ENCODING_FALLBACK_CODE,
|
|
61
126
|
/** A declared encoding the platform cannot decode was ignored. */
|
|
62
127
|
UNKNOWN_ENCODING: UNKNOWN_ENCODING_CODE,
|
|
63
|
-
/**
|
|
128
|
+
/** A declared encoding the byte order mark contradicts (the mark wins). */
|
|
129
|
+
ENCODING_CONFLICT: ENCODING_CONFLICT_CODE,
|
|
130
|
+
/** The input holds no XML at all: it is empty, whitespace or a byte order mark only. The import stops. */
|
|
131
|
+
EMPTY_INPUT: EMPTY_INPUT_CODE,
|
|
132
|
+
/** The root element is not `<graphml>`. The import stops. */
|
|
64
133
|
NOT_GRAPHML: "E_NOT_GRAPHML",
|
|
65
|
-
/**
|
|
134
|
+
/** The `<graphml>` root is in a namespace other than GraphML's; it is read as GraphML. */
|
|
135
|
+
NAMESPACE: "W_GRAPHML_NAMESPACE",
|
|
136
|
+
/** The document has no `<graph>`. The import stops. */
|
|
66
137
|
NO_GRAPH: NO_GRAPH_CODE,
|
|
67
138
|
/** A `<key>` without an id. */
|
|
68
139
|
KEY_MISSING_ID: "E_GRAPHML_KEY_MISSING_ID",
|
|
@@ -74,8 +145,18 @@ export const GRAPHML_ISSUE = Object.freeze({
|
|
|
74
145
|
MISSING_ID: MISSING_ID_CODE,
|
|
75
146
|
/** An `<edge>` without a source or a target. */
|
|
76
147
|
MISSING_ENDPOINT: MISSING_ENDPOINT_CODE,
|
|
148
|
+
/** An edge endpoint that names no declared node under `addMissingNodes: false`; the edge is skipped. */
|
|
149
|
+
UNKNOWN_NODE: "E_UNKNOWN_NODE",
|
|
150
|
+
/** An edge endpoint that names a nested `<graph>`, not a node; a node of that id is created. */
|
|
151
|
+
GRAPH_ENDPOINT: "W_GRAPHML_GRAPH_ENDPOINT",
|
|
152
|
+
/** The nodes of a nested graph whose container node was skipped lose their parent. */
|
|
153
|
+
UNKNOWN_PARENT: UNKNOWN_PARENT_CODE,
|
|
154
|
+
/** Two `<data>` of one key on one element, two `<default>` in one key, or two weight keys; one is kept. */
|
|
155
|
+
DUPLICATE_ATTRIBUTE: DUPLICATE_ATTRIBUTE_CODE,
|
|
77
156
|
/** A `<data>` whose key was never declared. */
|
|
78
157
|
UNKNOWN_KEY: "E_GRAPHML_UNKNOWN_KEY",
|
|
158
|
+
/** A `<key>` declared after `<data>` that used it; those values were already reported and dropped. */
|
|
159
|
+
KEY_DECLARED_LATE: "W_GRAPHML_KEY_DECLARED_LATE",
|
|
79
160
|
/** A `<data>` whose key is declared for another domain. */
|
|
80
161
|
KEY_DOMAIN: "W_GRAPHML_KEY_DOMAIN",
|
|
81
162
|
/** A `<data>` without a key attribute. */
|
|
@@ -98,10 +179,20 @@ export const GRAPHML_ISSUE = Object.freeze({
|
|
|
98
179
|
INVALID_EDGEDEFAULT: "E_GRAPHML_INVALID_EDGEDEFAULT",
|
|
99
180
|
/** A `<graph>` without edgedefault; the `defaultDirected` option applies. */
|
|
100
181
|
EDGEDEFAULT_MISSING: "W_GRAPHML_EDGEDEFAULT_MISSING",
|
|
101
|
-
/**
|
|
182
|
+
/**
|
|
183
|
+
* The file holds more than one top-level `<graph>`; their nodes and edges are merged into one graph.
|
|
184
|
+
* `importAllGraphs()` reads every one.
|
|
185
|
+
*/
|
|
102
186
|
MULTIPLE_GRAPHS: MULTIPLE_GRAPHS_CODE,
|
|
103
|
-
/**
|
|
187
|
+
/**
|
|
188
|
+
* A node or edge count the file announces is too large to reserve room for; it is ignored and the elements are
|
|
189
|
+
* read as they come.
|
|
190
|
+
*/
|
|
104
191
|
COUNT_HINT: COUNT_HINT_CODE,
|
|
192
|
+
/**
|
|
193
|
+
* A `parse.nodes` or `parse.edges` count disagrees with what the graph holds. The elements are read as they are.
|
|
194
|
+
*/
|
|
195
|
+
COUNT_MISMATCH: COUNT_MISMATCH_CODE,
|
|
105
196
|
/** A hyperedge under `hyperedges: "error"`. */
|
|
106
197
|
HYPEREDGE: HYPEREDGE_CODE,
|
|
107
198
|
/** Hyperedges skipped under `hyperedges: "skip"`. */
|
|
@@ -110,10 +201,23 @@ export const GRAPHML_ISSUE = Object.freeze({
|
|
|
110
201
|
HYPEREDGE_ENDPOINT: "E_GRAPHML_HYPEREDGE_ENDPOINT",
|
|
111
202
|
/** `<port>` declarations (and their data) are not kept; sourceport / targetport edge attributes are. */
|
|
112
203
|
PORT_DECLARATION: "W_GRAPHML_PORT_DECLARATION",
|
|
113
|
-
/** A
|
|
204
|
+
/** A `sourceport` / `targetport` naming a port its node does not declare (once, with the count). */
|
|
205
|
+
DANGLING_REFERENCE: DANGLING_REFERENCE_CODE,
|
|
206
|
+
/** A `<graph>` inside an `<edge>` (legal GraphML): it and the nodes and edges it holds are dropped. */
|
|
207
|
+
EDGE_GRAPH_DROPPED: "W_GRAPHML_EDGE_GRAPH_DROPPED",
|
|
208
|
+
/** A `<node>` whose id is that of a hub `hyperedges: "star"` created; the node is merged into the hub. */
|
|
209
|
+
HUB_ID_CLASH: "W_GRAPHML_HUB_ID_CLASH",
|
|
210
|
+
/** A `graphty:originalId` value that is not text, or arrives after the node was added (after its nested graph). */
|
|
211
|
+
ORIGINAL_ID_IGNORED: "W_GRAPHML_ORIGINAL_ID_IGNORED",
|
|
212
|
+
/** A yFiles graphics value (a geometry coordinate, a width) that is not a number; it is not mapped. */
|
|
213
|
+
YFILES_VALUE: "W_GRAPHML_YFILES_VALUE",
|
|
214
|
+
/**
|
|
215
|
+
* A GraphML `parse.*` attribute (`parse.nodeids`, `parse.order`, ...) that graph-io does not act on; the file is
|
|
216
|
+
* read normally.
|
|
217
|
+
*/
|
|
114
218
|
PARSE_HINT_IGNORED: "W_GRAPHML_PARSE_HINT_IGNORED",
|
|
115
|
-
/** An XML attribute GraphML does not define
|
|
116
|
-
UNKNOWN_XML_ATTRIBUTE:
|
|
219
|
+
/** An XML attribute GraphML does not define (or the importer does not keep) on an element; it is not kept. */
|
|
220
|
+
UNKNOWN_XML_ATTRIBUTE: UNKNOWN_XML_ATTRIBUTE_CODE,
|
|
117
221
|
/** A `<locator>` element. */
|
|
118
222
|
LOCATOR_DROPPED: "W_GRAPHML_LOCATOR_DROPPED",
|
|
119
223
|
/** A `<desc>` of a node, an edge or a hyperedge. */
|
|
@@ -124,54 +228,71 @@ export const GRAPHML_ISSUE = Object.freeze({
|
|
|
124
228
|
STRAY_TEXT: STRAY_TEXT_CODE,
|
|
125
229
|
/** Two distinct id texts merged into one number under `ids: "number"`. */
|
|
126
230
|
ID_MERGED: ID_MERGED_CODE,
|
|
127
|
-
/**
|
|
231
|
+
/** You set an option this format does not use; it had no effect. The message names the option. */
|
|
128
232
|
OPTION_IGNORED: OPTION_IGNORED_CODE,
|
|
129
233
|
/** A yFiles key under `yfiles: "skip"`. */
|
|
130
234
|
YFILES_SKIPPED: "W_GRAPHML_YFILES_SKIPPED",
|
|
131
|
-
/**
|
|
235
|
+
/**
|
|
236
|
+
* An attribute was renamed `<name>#<suffix>` because another attribute already has its name, for example
|
|
237
|
+
* two attributes declared with the same name.
|
|
238
|
+
*/
|
|
132
239
|
COLUMN_RENAMED: COLUMN_RENAMED_CODE,
|
|
133
|
-
/**
|
|
240
|
+
/**
|
|
241
|
+
* You read into a graph builder that already has an id, label or position attribute, so this file's one is kept as
|
|
242
|
+
* a plain attribute.
|
|
243
|
+
*/
|
|
134
244
|
ROLE_TAKEN: ROLE_TAKEN_CODE,
|
|
135
245
|
/** A declared type the format does not define (kept as string). */
|
|
136
246
|
UNKNOWN_ATTR_TYPE: UNKNOWN_ATTR_TYPE_CODE,
|
|
137
247
|
/** A default that does not parse as the declared type. */
|
|
138
248
|
BAD_DEFAULT: BAD_DEFAULT_CODE,
|
|
139
|
-
/**
|
|
249
|
+
/** An integer beyond 2^53 was stored as the nearest 64-bit float; pass `long: "string"` to keep every digit. */
|
|
140
250
|
PRECISION: PRECISION_CODE,
|
|
141
|
-
/**
|
|
251
|
+
/**
|
|
252
|
+
* You read into your own graph builder, which was created with a different `addMissingNodes`, `duplicateEdges`,
|
|
253
|
+
* `selfLoops` or `weightDtype` than the option you passed; the builder's setting applies.
|
|
254
|
+
*/
|
|
142
255
|
SINK_OPTION: SINK_OPTION_CODE,
|
|
143
|
-
/**
|
|
256
|
+
/**
|
|
257
|
+
* You read into a graph builder whose direction is already set, or which already holds edges, so the file is read
|
|
258
|
+
* with the builder's direction instead of its own.
|
|
259
|
+
*/
|
|
144
260
|
DIRECTION_REFUSED: DIRECTION_REFUSED_CODE,
|
|
145
|
-
/** Edges
|
|
261
|
+
/** Edges of the other direction were read with the direction `onMixedDirection` chose. */
|
|
146
262
|
DIRECTION_FORCED: DIRECTION_FORCED_CODE,
|
|
147
|
-
/**
|
|
263
|
+
/**
|
|
264
|
+
* The graph has both directed and undirected edges and `onMixedDirection` is "error". An import stops; a save to a
|
|
265
|
+
* format that holds one direction per file fails with E_DIRECTED. Pass "directed" or "undirected" to read or write
|
|
266
|
+
* it anyway.
|
|
267
|
+
*/
|
|
148
268
|
MIXED_DIRECTION: MIXED_DIRECTION_CODE,
|
|
149
269
|
});
|
|
150
270
|
/**
|
|
151
271
|
* Loss note codes of the GraphML importer (report.lossy) and exporter (check()): the GraphML
|
|
152
272
|
* ones; the generic ones (dtypes, lists, json text, positions, visual and temporal roles,
|
|
153
273
|
* extension tables, id charsets, the weight key clash, name changes) are those of `LOSS`.
|
|
274
|
+
* @category Built-in formats
|
|
154
275
|
*/
|
|
155
276
|
export const GRAPHML_LOSS = Object.freeze({
|
|
156
|
-
/**
|
|
277
|
+
/** YFiles nested XML kept as a JSON tree: structure preserved, not byte-exact. */
|
|
157
278
|
YFILES_JSON: "W_GRAPHML_YFILES_JSON",
|
|
158
279
|
/** A mutual pair written as one undirected edge; the mark is lost. */
|
|
159
280
|
MUTUAL_AS_UNDIRECTED: MUTUAL_AS_UNDIRECTED_CODE,
|
|
160
281
|
/** A `parents` (multi-parent) column cannot be written as nested graphs. */
|
|
161
282
|
PARENTS_DROPPED: PARENTS_DROPPED_CODE,
|
|
162
|
-
/**
|
|
283
|
+
/** An attribute with a role the format has no place for is written as a plain attribute; the role is lost. */
|
|
163
284
|
ROLE_DROPPED: ROLE_DROPPED_CODE,
|
|
164
285
|
/** Containment order differs from index order; node indices change after a round trip. */
|
|
165
286
|
HIERARCHY_REORDERED: "W_GRAPHML_HIERARCHY_REORDERED",
|
|
166
287
|
/** Nodes whose parent chain never reaches a root are written at the top level. */
|
|
167
288
|
PARENT_CYCLE: "W_GRAPHML_PARENT_CYCLE",
|
|
168
|
-
/** Node ids that
|
|
289
|
+
/** Node ids that read back as a different type, such as the text "7" as the number 7. */
|
|
169
290
|
ID_TEXT_TYPE: ID_TEXT_TYPE_CODE,
|
|
170
291
|
/** A numeric edge id column reads back as string. */
|
|
171
292
|
EDGE_ID_TEXT: "W_GRAPHML_EDGE_ID_TEXT",
|
|
172
293
|
/** A `yfiles.*` graphics column that no longer matches its yFiles tree: only the tree is written. */
|
|
173
294
|
YFILES_GRAPHICS_STALE: "W_GRAPHML_YFILES_GRAPHICS_STALE",
|
|
174
|
-
/** A
|
|
295
|
+
/** A yEd graphics value that is not valid XML; the save fails with E_COLUMN_TYPE. */
|
|
175
296
|
YFILES_TREE: "E_GRAPHML_YFILES_TREE",
|
|
176
297
|
});
|
|
177
298
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/formats/graphml/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,GAClB,MAAM,uBAAuB,CAAC;AAE/B
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/formats/graphml/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,22 +13,30 @@
|
|
|
13
13
|
* temporal roles, extension tables) plus the GraphML-specific ones (mutual edges written as
|
|
14
14
|
* undirected, json columns without a yfiles origin written as JSON text, multi-parent columns,
|
|
15
15
|
* containment order, ids that change type under the canonical rule, edge ids that read back as
|
|
16
|
-
* strings, roles GraphML cannot express, yfiles values that are not
|
|
16
|
+
* strings, roles GraphML cannot express, yfiles values that are not serializable trees).
|
|
17
17
|
*/
|
|
18
|
-
import { type GraphExporter } from "../../types.js";
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
import { type CommonExportOptions, type GraphExporter } from "../../types.js";
|
|
19
|
+
/**
|
|
20
|
+
* The format-specific options of the GraphML exporter.
|
|
21
|
+
* @category Built-in formats
|
|
22
|
+
*/
|
|
23
|
+
export interface GraphmlExportOptions extends CommonExportOptions {
|
|
24
|
+
/**
|
|
25
|
+
* Indent nested elements; false writes one element per line without indentation.
|
|
26
|
+
* @defaultValue true
|
|
27
|
+
*/
|
|
22
28
|
pretty?: boolean | undefined;
|
|
23
29
|
/**
|
|
24
|
-
* The
|
|
25
|
-
*
|
|
26
|
-
*
|
|
30
|
+
* The `edgedefault` of the graph element. The default is the one a GraphML import read, so a
|
|
31
|
+
* file with both directions reads back with the same edges marked, else the graph's direction
|
|
32
|
+
* (for a graph with both, the direction most edges have).
|
|
33
|
+
* @defaultValue as read
|
|
27
34
|
*/
|
|
28
35
|
edgedefault?: "directed" | "undirected" | undefined;
|
|
29
36
|
}
|
|
30
37
|
/**
|
|
31
|
-
* The GraphML exporter
|
|
38
|
+
* The GraphML exporter.
|
|
39
|
+
* @category Built-in formats
|
|
32
40
|
*/
|
|
33
41
|
export declare const graphmlExporter: GraphExporter<GraphmlExportOptions>;
|
|
34
42
|
//# sourceMappingURL=exporter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../../../src/formats/graphml/exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../../../src/formats/graphml/exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAuBH,OAAO,EAAE,KAAK,mBAAmB,EAA2B,KAAK,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAsBtH;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC7D;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;CACvD;AAk3CD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,oBAAoB,CAkC9D,CAAC"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* temporal roles, extension tables) plus the GraphML-specific ones (mutual edges written as
|
|
14
14
|
* undirected, json columns without a yfiles origin written as JSON text, multi-parent columns,
|
|
15
15
|
* containment order, ids that change type under the canonical rule, edge ids that read back as
|
|
16
|
-
* strings, roles GraphML cannot express, yfiles values that are not
|
|
16
|
+
* strings, roles GraphML cannot express, yfiles values that are not serializable trees).
|
|
17
17
|
*/
|
|
18
18
|
import { GraphFormatError, INVALID_INDEX } from "@graphty/graph-format";
|
|
19
19
|
import { childrenCsr } from "../../children.js";
|
|
@@ -23,6 +23,7 @@ import { capabilities, checkCapabilities, isNmtoken, LOSS, mangleNmtoken, saniti
|
|
|
23
23
|
import { formatF32, formatF64, formatInteger } from "../../common/format.js";
|
|
24
24
|
import { isCanonicalIntegerText } from "../../common/ids.js";
|
|
25
25
|
import { resolveExportOptions } from "../../common/options.js";
|
|
26
|
+
import { agree, plural } from "../../common/plural.js";
|
|
26
27
|
import { explicitWeights } from "../../common/weights.js";
|
|
27
28
|
import { encodeChunks, joinText } from "../../common/writer.js";
|
|
28
29
|
import { xmlIllegalTextNotes } from "../../common/xml.js";
|
|
@@ -183,7 +184,7 @@ function planExport(snapshot, options, format) {
|
|
|
183
184
|
// ids
|
|
184
185
|
const idTypeChanges = countIdTypeChanges(snapshot);
|
|
185
186
|
if (idTypeChanges > 0) {
|
|
186
|
-
note(GRAPHML_LOSS.ID_TEXT_TYPE, `${idTypeChanges} node id(
|
|
187
|
+
note(GRAPHML_LOSS.ID_TEXT_TYPE, `${idTypeChanges} node id${plural(idTypeChanges)} ${agree(idTypeChanges, "changes", "change")} type when read back under ids: "canonical" (string ids that are integer text, non-integer numbers)`, null, idTypeChanges);
|
|
187
188
|
}
|
|
188
189
|
const edgeIdColumn = snapshot.edges.byRole("id");
|
|
189
190
|
if (edgeIdColumn !== null) {
|
|
@@ -195,7 +196,7 @@ function planExport(snapshot, options, format) {
|
|
|
195
196
|
// direction: an undirected pair folds to one undirected edge, a mutual pair too (the mark is lost)
|
|
196
197
|
const folding = pairFolding(snapshot, { foldMutual: true });
|
|
197
198
|
if (folding.mutualCount > 0) {
|
|
198
|
-
note(GRAPHML_LOSS.MUTUAL_AS_UNDIRECTED, `${folding.mutualCount} mutual pair(
|
|
199
|
+
note(GRAPHML_LOSS.MUTUAL_AS_UNDIRECTED, `${folding.mutualCount} mutual pair${plural(folding.mutualCount)} ${agree(folding.mutualCount, "is", "are")} written as undirected edges; the mutual mark is lost`, null, folding.mutualCount);
|
|
199
200
|
}
|
|
200
201
|
const edgedefault = planEdgedefault(snapshot, folding, format, meta);
|
|
201
202
|
// containment
|
|
@@ -204,7 +205,7 @@ function planExport(snapshot, options, format) {
|
|
|
204
205
|
note(GRAPHML_LOSS.HIERARCHY_REORDERED, "nodes are written in containment order (children nested under their parent); node indices change after a round trip", hierarchy.parent?.meta.name ?? null);
|
|
205
206
|
}
|
|
206
207
|
if (hierarchy.unreachable > 0) {
|
|
207
|
-
note(GRAPHML_LOSS.PARENT_CYCLE, `${hierarchy.unreachable} node(
|
|
208
|
+
note(GRAPHML_LOSS.PARENT_CYCLE, `${hierarchy.unreachable} node${plural(hierarchy.unreachable)} whose parent chain never reaches a root ${agree(hierarchy.unreachable, "is", "are")} written at the top level`, hierarchy.parent?.meta.name ?? null, hierarchy.unreachable);
|
|
208
209
|
}
|
|
209
210
|
return {
|
|
210
211
|
options,
|
|
@@ -340,7 +341,7 @@ function planWeight(snapshot, edgeColumns, keyIds, keys, note) {
|
|
|
340
341
|
const attrName = fromGraphml && origin.title !== null ? origin.title : DEFAULT_WEIGHT_NAME;
|
|
341
342
|
for (const plan of edgeColumns) {
|
|
342
343
|
if (plan.attrName === attrName) {
|
|
343
|
-
note(LOSS.WEIGHT_KEY_CLASH, `edge column "${plan.column.meta.name}" is written as a key titled "${attrName}", which the importer reads as
|
|
344
|
+
note(LOSS.WEIGHT_KEY_CLASH, `edge column "${plan.column.meta.name}" is written as a key titled "${attrName}", which the importer reads as the edge weight (weightFrom); it reads back as the weight, not as a column`, plan.column.meta.name, plan.column.length - plan.column.nullCount);
|
|
344
345
|
}
|
|
345
346
|
}
|
|
346
347
|
if (!weights.weighted) {
|
|
@@ -378,10 +379,10 @@ function planEdgeIds(snapshot, column, options, note) {
|
|
|
378
379
|
return;
|
|
379
380
|
}
|
|
380
381
|
if (options.sanitizeIds === "mangle") {
|
|
381
|
-
note(LOSS.ID_MANGLED, `${bad} edge id(
|
|
382
|
+
note(LOSS.ID_MANGLED, `${bad} edge id${plural(bad)} outside the nmtoken charset ${agree(bad, "is", "are")} rewritten`, column.meta.name, bad);
|
|
382
383
|
}
|
|
383
384
|
else {
|
|
384
|
-
note(LOSS.ID_CHARSET, `${bad} edge id(
|
|
385
|
+
note(LOSS.ID_CHARSET, `${bad} edge id${plural(bad)} outside the nmtoken charset; the save fails unless sanitizeIds is "mangle"`, column.meta.name, bad);
|
|
385
386
|
}
|
|
386
387
|
}
|
|
387
388
|
/**
|
|
@@ -457,7 +458,7 @@ function planTable(table, domain, notes, note) {
|
|
|
457
458
|
if (isGraphicsColumn(meta)) {
|
|
458
459
|
const stale = domain === "graph" ? 0 : staleGraphicsRows(column, columns, domain);
|
|
459
460
|
if (stale > 0) {
|
|
460
|
-
note(GRAPHML_LOSS.YFILES_GRAPHICS_STALE, `${stale} value(
|
|
461
|
+
note(GRAPHML_LOSS.YFILES_GRAPHICS_STALE, `${stale} value${plural(stale)} of ${domain} column "${name}" differ from the yFiles tree it was read from; only the tree is written, so they are lost`, name, stale);
|
|
461
462
|
}
|
|
462
463
|
continue;
|
|
463
464
|
}
|
|
@@ -481,7 +482,7 @@ function planTable(table, domain, notes, note) {
|
|
|
481
482
|
if (yfiles) {
|
|
482
483
|
const bad = countBadTrees(column);
|
|
483
484
|
if (bad > 0) {
|
|
484
|
-
note(GRAPHML_LOSS.YFILES_TREE, `${bad} value(
|
|
485
|
+
note(GRAPHML_LOSS.YFILES_TREE, `${bad} value${plural(bad)} of yfiles column "${name}" ${agree(bad, "is", "are")} not XML trees; the save fails with E_COLUMN_TYPE`, name, bad);
|
|
485
486
|
}
|
|
486
487
|
}
|
|
487
488
|
const { origin } = meta;
|
|
@@ -572,6 +573,10 @@ function attrTypeFor(column) {
|
|
|
572
573
|
case "u32":
|
|
573
574
|
return columnMax(column) <= I32_MAX ? "int" : "long";
|
|
574
575
|
case "string":
|
|
576
|
+
if (declared !== null && declared.trim().toLowerCase() === "long" && columnIntegerText(column)) {
|
|
577
|
+
// a long column read with long: "string" keeps its declared type, for other readers
|
|
578
|
+
return "long";
|
|
579
|
+
}
|
|
575
580
|
if (declared !== null && TYPE_DTYPES[declared.trim().toLowerCase()] === undefined) {
|
|
576
581
|
// an unknown declared type kept as text (W_UNKNOWN_ATTR_TYPE on import) is restored as declared
|
|
577
582
|
return declared;
|
|
@@ -587,6 +592,20 @@ function attrTypeFor(column) {
|
|
|
587
592
|
}
|
|
588
593
|
}
|
|
589
594
|
}
|
|
595
|
+
/**
|
|
596
|
+
* Whether every set value of a string column is integer text, as a long column read with
|
|
597
|
+
* `long: "string"` holds.
|
|
598
|
+
* @param column - a string column
|
|
599
|
+
* @returns true when all set values are integer text
|
|
600
|
+
*/
|
|
601
|
+
function columnIntegerText(column) {
|
|
602
|
+
for (let r = 0; r < column.length; r++) {
|
|
603
|
+
if (column.isSet(r) && !/^[+-]?\d+$/.test(String(column.value(r)))) {
|
|
604
|
+
return false;
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
return true;
|
|
608
|
+
}
|
|
590
609
|
/**
|
|
591
610
|
* Whether every set value of a numeric column is an integer.
|
|
592
611
|
* @param column - an f64 column
|
|
@@ -637,7 +656,7 @@ function weightsIntegral(snapshot, weights) {
|
|
|
637
656
|
return true;
|
|
638
657
|
}
|
|
639
658
|
/**
|
|
640
|
-
* How many values of a yfiles column are not
|
|
659
|
+
* How many values of a yfiles column are not serializable trees.
|
|
641
660
|
* @param column - a json column
|
|
642
661
|
* @returns the count
|
|
643
662
|
*/
|
|
@@ -936,7 +955,7 @@ function sanitizeEdgeIds(column, mode, edgeCount) {
|
|
|
936
955
|
}
|
|
937
956
|
}
|
|
938
957
|
if (bad.length > 0 && mode === "error") {
|
|
939
|
-
throw new GraphFormatError("E_INVALID_ID", `${bad.length} edge id(
|
|
958
|
+
throw new GraphFormatError("E_INVALID_ID", `${bad.length} edge id${plural(bad.length)} ${agree(bad.length, "is", "are")} not XML name tokens (first: ${JSON.stringify(edgeIdText(column, bad[0]))} at edge ${bad[0]}); pass sanitizeIds: "mangle" to rewrite them`, { reason: "charset", charset: "nmtoken", count: bad.length, edge: bad[0] });
|
|
940
959
|
}
|
|
941
960
|
for (const e of bad) {
|
|
942
961
|
const base = mangleNmtoken(edgeIdText(column, e));
|
|
@@ -1149,10 +1168,12 @@ function* writeNodeSubtree(root, plan, ids, indent, step, stackNode, stackCursor
|
|
|
1149
1168
|
}
|
|
1150
1169
|
}
|
|
1151
1170
|
/**
|
|
1152
|
-
* The GraphML exporter
|
|
1171
|
+
* The GraphML exporter.
|
|
1172
|
+
* @category Built-in formats
|
|
1153
1173
|
*/
|
|
1154
1174
|
export const graphmlExporter = Object.freeze({
|
|
1155
1175
|
format: FORMAT,
|
|
1176
|
+
options: Object.freeze(["edgedefault", "pretty"]),
|
|
1156
1177
|
capabilities: CAPABILITIES,
|
|
1157
1178
|
/**
|
|
1158
1179
|
* Pre-flight: every loss the export would incur.
|