@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
|
@@ -25,24 +25,26 @@ const XML_REPLACEMENTS = {
|
|
|
25
25
|
* surrogate) has no XML spelling at all and is E_COLUMN_TYPE; the exporters' check() counts them.
|
|
26
26
|
* @param text - the text
|
|
27
27
|
* @returns the escaped text
|
|
28
|
+
* @category Plugin helpers
|
|
28
29
|
*/
|
|
29
30
|
export function escapeXmlText(text) {
|
|
30
31
|
if (hasIllegalXmlChar(text)) {
|
|
31
32
|
throw illegalXml(text);
|
|
32
33
|
}
|
|
33
|
-
return text.
|
|
34
|
+
return text.replaceAll(XML_TEXT_SPECIAL, (c) => XML_REPLACEMENTS[c]);
|
|
34
35
|
}
|
|
35
36
|
/**
|
|
36
37
|
* Escape text for a double-quoted XML attribute value: `&`, `<`, `>`, `"` and the whitespace
|
|
37
|
-
* characters attribute
|
|
38
|
+
* characters attribute normalization would fold; a character XML 1.0 forbids is E_COLUMN_TYPE.
|
|
38
39
|
* @param text - the text
|
|
39
40
|
* @returns the escaped text
|
|
41
|
+
* @category Plugin helpers
|
|
40
42
|
*/
|
|
41
43
|
export function escapeXmlAttribute(text) {
|
|
42
44
|
if (hasIllegalXmlChar(text)) {
|
|
43
45
|
throw illegalXml(text);
|
|
44
46
|
}
|
|
45
|
-
return text.
|
|
47
|
+
return text.replaceAll(XML_ATTR_SPECIAL, (c) => XML_REPLACEMENTS[c]);
|
|
46
48
|
}
|
|
47
49
|
/**
|
|
48
50
|
* The error of a text no XML 1.0 document can carry.
|
|
@@ -63,9 +65,10 @@ const GML_SPECIAL = /["&]|[^ -~]/gu;
|
|
|
63
65
|
* A lone surrogate cannot be written and is E_COLUMN_TYPE.
|
|
64
66
|
* @param text - the text
|
|
65
67
|
* @returns the quoted GML string
|
|
68
|
+
* @category Plugin helpers
|
|
66
69
|
*/
|
|
67
70
|
export function quoteGmlString(text) {
|
|
68
|
-
const escaped = text.
|
|
71
|
+
const escaped = text.replaceAll(GML_SPECIAL, (c) => {
|
|
69
72
|
const code = c.codePointAt(0);
|
|
70
73
|
if (code === undefined) {
|
|
71
74
|
return c;
|
|
@@ -103,18 +106,23 @@ const GML_NAMED = (() => {
|
|
|
103
106
|
/**
|
|
104
107
|
* Decode the character entities of a GML string body (the inverse of quoteGmlString on the text
|
|
105
108
|
* between the quotes): numeric references, the XML entities and the ISO-8859-1 HTML entities. An
|
|
106
|
-
* unknown named entity is left as written and handed to
|
|
109
|
+
* unknown named entity, or a numeric reference beyond U+10FFFF, is left as written and handed to
|
|
110
|
+
* `onUnknown`.
|
|
107
111
|
* @param body - the text between the quotes
|
|
108
|
-
* @param onUnknown - called with each
|
|
112
|
+
* @param onUnknown - called with each entity left as written (`&name;`, `�`), when given
|
|
109
113
|
* @returns the decoded text
|
|
114
|
+
* @category Plugin helpers
|
|
110
115
|
*/
|
|
111
116
|
export function decodeGmlString(body, onUnknown) {
|
|
112
|
-
return body.
|
|
113
|
-
if (entity.startsWith("#x")) {
|
|
114
|
-
return String.fromCodePoint(Number.parseInt(entity.slice(2), 16));
|
|
115
|
-
}
|
|
117
|
+
return body.replaceAll(GML_ENTITY, (whole, entity) => {
|
|
116
118
|
if (entity.startsWith("#")) {
|
|
117
|
-
|
|
119
|
+
const code = entity.startsWith("#x") ? Number.parseInt(entity.slice(2), 16) : Number(entity.slice(1));
|
|
120
|
+
if (code <= 0x10ffff) {
|
|
121
|
+
return String.fromCodePoint(code);
|
|
122
|
+
}
|
|
123
|
+
// beyond Unicode: no character to decode to, kept as written like an unknown name
|
|
124
|
+
onUnknown?.(whole);
|
|
125
|
+
return whole;
|
|
118
126
|
}
|
|
119
127
|
const known = GML_NAMED.get(entity);
|
|
120
128
|
if (known === undefined) {
|
|
@@ -131,6 +139,7 @@ const DOT_KEYWORDS = new Set(["node", "edge", "graph", "digraph", "subgraph", "s
|
|
|
131
139
|
* a digit, or a numeral, and not a keyword (case-insensitive).
|
|
132
140
|
* @param text - the text
|
|
133
141
|
* @returns true when the text can be written bare
|
|
142
|
+
* @category Plugin helpers
|
|
134
143
|
*/
|
|
135
144
|
export function isBareDotId(text) {
|
|
136
145
|
if (DOT_KEYWORDS.has(text.toLowerCase())) {
|
|
@@ -167,6 +176,7 @@ function isDotIdentifier(text) {
|
|
|
167
176
|
* the closing quote. Every other text is writable; quoteDotId() writes it.
|
|
168
177
|
* @param text - the id, name or value text
|
|
169
178
|
* @returns true when quoteDotId(text) reads back as `text`
|
|
179
|
+
* @category Plugin helpers
|
|
170
180
|
*/
|
|
171
181
|
export function isWritableDotText(text) {
|
|
172
182
|
return !text.endsWith("\\") && !text.includes('\\"') && !/\\[\r\n]/.test(text);
|
|
@@ -178,41 +188,46 @@ export function isWritableDotText(text) {
|
|
|
178
188
|
* backslash has no DOT spelling (isWritableDotText); the caller refuses it before writing.
|
|
179
189
|
* @param text - the id or label text
|
|
180
190
|
* @returns the DOT ID
|
|
191
|
+
* @category Plugin helpers
|
|
181
192
|
*/
|
|
182
193
|
export function quoteDotId(text) {
|
|
183
194
|
if (isBareDotId(text)) {
|
|
184
195
|
return text;
|
|
185
196
|
}
|
|
186
|
-
|
|
197
|
+
const escaped = text.replaceAll('"', String.raw `\"`);
|
|
198
|
+
return `"${escaped}"`;
|
|
187
199
|
}
|
|
188
200
|
/**
|
|
189
|
-
* Write a set CSV cell per RFC 4180: quoted with
|
|
190
|
-
* delimiter,
|
|
191
|
-
* string is written as
|
|
192
|
-
* (and an empty-string node id
|
|
193
|
-
*
|
|
201
|
+
* Write a set CSV cell per RFC 4180: quoted, with the quote character doubled, when the text
|
|
202
|
+
* contains the delimiter, the quote character, a CR or LF, or leading / trailing whitespace; bare
|
|
203
|
+
* otherwise. The empty string is written as an empty quoted cell (`""`), so the importers can tell a
|
|
204
|
+
* set empty string (and an empty-string node id) from an unset cell, which every exporter writes as
|
|
205
|
+
* nothing between the delimiters.
|
|
194
206
|
* @param text - the cell text of a set cell
|
|
195
207
|
* @param delimiter - the field delimiter (default ",")
|
|
208
|
+
* @param quote - the quote character (default `"`)
|
|
196
209
|
* @returns the cell as written
|
|
210
|
+
* @category Plugin helpers
|
|
197
211
|
*/
|
|
198
|
-
export function quoteCsvCell(text, delimiter = ",") {
|
|
212
|
+
export function quoteCsvCell(text, delimiter = ",", quote = '"') {
|
|
199
213
|
if (text.length === 0) {
|
|
200
|
-
return
|
|
214
|
+
return quote + quote;
|
|
201
215
|
}
|
|
202
216
|
if (!text.includes(delimiter) &&
|
|
203
|
-
!text.includes(
|
|
217
|
+
!text.includes(quote) &&
|
|
204
218
|
!text.includes("\n") &&
|
|
205
219
|
!text.includes("\r") &&
|
|
206
220
|
text === text.trim()) {
|
|
207
221
|
return text;
|
|
208
222
|
}
|
|
209
|
-
return
|
|
223
|
+
return `${quote}${text.split(quote).join(quote + quote)}${quote}`;
|
|
210
224
|
}
|
|
211
225
|
/**
|
|
212
226
|
* Whether a text can be a Pajek label: Pajek has no escape mechanism inside its double-quoted
|
|
213
227
|
* labels, so a text containing a double quote, a CR or an LF cannot be written.
|
|
214
228
|
* @param text - the label text
|
|
215
229
|
* @returns true when quotePajekLabel() can write it
|
|
230
|
+
* @category Plugin helpers
|
|
216
231
|
*/
|
|
217
232
|
export function isPajekLabel(text) {
|
|
218
233
|
return !text.includes('"') && !text.includes("\n") && !text.includes("\r");
|
|
@@ -224,6 +239,7 @@ export function isPajekLabel(text) {
|
|
|
224
239
|
* the exporter's check() counts those.
|
|
225
240
|
* @param text - the label text
|
|
226
241
|
* @returns the label as written
|
|
242
|
+
* @category Plugin helpers
|
|
227
243
|
*/
|
|
228
244
|
export function quotePajekLabel(text) {
|
|
229
245
|
if (!isPajekLabel(text)) {
|
|
@@ -232,7 +248,8 @@ export function quotePajekLabel(text) {
|
|
|
232
248
|
value: text,
|
|
233
249
|
});
|
|
234
250
|
}
|
|
235
|
-
|
|
251
|
+
// a bare `%` token starts a comment for the importer, so such a text is quoted too
|
|
252
|
+
if (text.length > 0 && !/[\s"]/.test(text) && !text.startsWith("[") && !text.startsWith("%")) {
|
|
236
253
|
return text;
|
|
237
254
|
}
|
|
238
255
|
return `"${text}"`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../../src/common/escape.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,gBAAgB,GAAG,UAAU,CAAC;AACpC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AACzC,MAAM,gBAAgB,GAAqC;IACvD,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;CAChB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../../src/common/escape.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,36 +5,63 @@
|
|
|
5
5
|
* the ids the format cannot hold and hands the exporter the originals to write into its
|
|
6
6
|
* `graphty:originalId` attribute).
|
|
7
7
|
*
|
|
8
|
-
* Every exporter's check() calls checkCapabilities() first and appends its format-specific notes
|
|
9
|
-
*
|
|
8
|
+
* Every exporter's check() calls checkCapabilities() first and appends its format-specific notes;
|
|
9
|
+
* export() calls
|
|
10
10
|
* sanitizeIds() before writing anything.
|
|
11
11
|
*/
|
|
12
|
-
import { type Dtype, type GraphSnapshot, type NodeId } from "@graphty/graph-format";
|
|
12
|
+
import { type Dtype, GraphFormatError, type GraphSnapshot, type IdCoercion, type NodeId } from "@graphty/graph-format";
|
|
13
13
|
import { type ExportCapabilities, type LossNote } from "../types.js";
|
|
14
14
|
import { type ResolvedExportOptions } from "./options.js";
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* The shared LossNote codes of checkCapabilities().
|
|
17
|
+
* @category Issue and loss codes
|
|
18
|
+
*/
|
|
16
19
|
export declare const LOSS: Readonly<{
|
|
17
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* A node or edge attribute is not written: the format has no attributes, or none of this kind
|
|
22
|
+
* (`CheckExtras.attributes` false).
|
|
23
|
+
*/
|
|
24
|
+
COLUMN_DROPPED: "W_COLUMN_DROPPED";
|
|
25
|
+
/**
|
|
26
|
+
* The graph has both directed and undirected edges, the format holds one direction per file, and
|
|
27
|
+
* `onMixedDirection` is "directed" or "undirected": every edge is written with that direction.
|
|
28
|
+
*/
|
|
18
29
|
MIXED_DIRECTION: "W_MIXED_DIRECTION";
|
|
19
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* The graph has both directed and undirected edges and `onMixedDirection` is "error". An import stops; a save to a
|
|
32
|
+
* format that holds one direction per file fails with E_DIRECTED. Pass "directed" or "undirected" to read or write
|
|
33
|
+
* it anyway.
|
|
34
|
+
*/
|
|
20
35
|
MIXED_DIRECTION_ERROR: "E_MIXED_DIRECTION";
|
|
21
36
|
/** Parallel edges in a format without them. */
|
|
22
37
|
MULTI_EDGES: "W_MULTI_EDGES";
|
|
23
38
|
/** Self-loops in a format without them. */
|
|
24
39
|
SELF_LOOPS: "W_SELF_LOOPS";
|
|
25
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* The format needs an id on every edge and the graph has none, so the file gets ids e0, e1, e2 and so on, which
|
|
42
|
+
* read back as edge ids.
|
|
43
|
+
*/
|
|
26
44
|
EDGE_IDS_GENERATED: "W_EDGE_IDS_GENERATED";
|
|
27
|
-
/** The
|
|
45
|
+
/** The graph has edge ids and the format has no place for them, so they are not written. */
|
|
28
46
|
EDGE_IDS_DROPPED: "W_EDGE_IDS_DROPPED";
|
|
29
47
|
/** Ids outside the format's charset are rewritten (sanitizeIds "mangle"). */
|
|
30
48
|
ID_MANGLED: "W_ID_MANGLED";
|
|
31
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* Node ids the format cannot write, under `sanitizeIds: "error"`; the save fails with E_INVALID_ID. Pass
|
|
51
|
+
* `sanitizeIds: "mangle"` to rewrite them.
|
|
52
|
+
*/
|
|
32
53
|
ID_CHARSET: "E_ID_CHARSET";
|
|
33
54
|
/** The format numbers nodes 1..N; ids that are not their 1-based index are kept as labels only. */
|
|
34
55
|
ID_RENUMBERED: "W_ID_RENUMBERED";
|
|
35
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* An attribute's type is one the format cannot store as it is (for example, a 32-bit float in a format that has only 64-bit
|
|
58
|
+
* numbers), so it reads back with the nearest type the format has.
|
|
59
|
+
*/
|
|
36
60
|
DTYPE: "W_DTYPE_UNSUPPORTED";
|
|
37
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* An attribute with several numbers per element (other than a position) is written as separate values or a list,
|
|
63
|
+
* and does not read back as one attribute.
|
|
64
|
+
*/
|
|
38
65
|
COMPONENTS: "W_COMPONENTS_FLATTENED";
|
|
39
66
|
/** A list column in a format without lists. */
|
|
40
67
|
LIST: "W_LIST_UNSUPPORTED";
|
|
@@ -48,9 +75,9 @@ export declare const LOSS: Readonly<{
|
|
|
48
75
|
HIERARCHY: "W_HIERARCHY_DROPPED";
|
|
49
76
|
/** A start / end / timestamp column in a format without temporal support. */
|
|
50
77
|
TEMPORAL: "W_TEMPORAL_DROPPED";
|
|
51
|
-
/** A `<column>.text` companion
|
|
78
|
+
/** A `<column>.text` companion the format cannot carry. */
|
|
52
79
|
TEMPORAL_TEXT: "W_TEMPORAL_TEXT_DROPPED";
|
|
53
|
-
/**
|
|
80
|
+
/** An attribute with a role the format has no place for is written as a plain attribute; the role is lost. */
|
|
54
81
|
ROLE: "W_ROLE_DROPPED";
|
|
55
82
|
/** A parents (multi-parent) column in a format with single containment only. */
|
|
56
83
|
PARENTS: "W_PARENTS_DROPPED";
|
|
@@ -60,31 +87,55 @@ export declare const LOSS: Readonly<{
|
|
|
60
87
|
MUTUAL_AS_UNDIRECTED: "W_MUTUAL_AS_UNDIRECTED";
|
|
61
88
|
/** Node ids whose written text reads back as the other type under the importer's id rule. */
|
|
62
89
|
ID_TEXT_TYPE: "W_ID_TEXT_TYPE";
|
|
63
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* Two node ids would be written as the same text (the number 5 and the text "5"); the save fails with
|
|
92
|
+
* E_INVALID_ID.
|
|
93
|
+
*/
|
|
64
94
|
ID_TEXT_COLLISION: "E_ID_TEXT_COLLISION";
|
|
65
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* An attribute without the weight role is named like the attribute graph-io reads weights from (for example, `weight`), so
|
|
97
|
+
* it reads back as the edge weight.
|
|
98
|
+
*/
|
|
66
99
|
WEIGHT_KEY_CLASH: "W_WEIGHT_KEY_CLASH";
|
|
67
|
-
/**
|
|
100
|
+
/**
|
|
101
|
+
* An attribute without a role is written where the format keeps a role (for example, a `name` column as the label), and
|
|
102
|
+
* reads back with that role.
|
|
103
|
+
*/
|
|
68
104
|
ROLE_ASSUMED: "W_ROLE_ASSUMED";
|
|
69
|
-
/**
|
|
105
|
+
/**
|
|
106
|
+
* An attribute with a role (for example, the label) is written where the format keeps that role, and reads back under the
|
|
107
|
+
* name the format's importer gives it.
|
|
108
|
+
*/
|
|
70
109
|
COLUMN_NAME_CHANGED: "W_COLUMN_NAME_CHANGED";
|
|
71
110
|
/** A declared column whose every row is unset vanishes through a format without declarations. */
|
|
72
111
|
EMPTY_COLUMN: "W_EMPTY_COLUMN_DROPPED";
|
|
73
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* A text attribute reads back as a dictionary attribute, or the reverse, because the importer chooses by how often
|
|
114
|
+
* its values repeat. The values are the same.
|
|
115
|
+
*/
|
|
74
116
|
STORAGE_CLASS: "W_STORAGE_CLASS_CHANGED";
|
|
75
|
-
/**
|
|
117
|
+
/**
|
|
118
|
+
* A number attribute whose values are all whole numbers reads back as integers, because the format does not record
|
|
119
|
+
* the type.
|
|
120
|
+
*/
|
|
76
121
|
INTEGRAL_F64: "W_INTEGRAL_F64_AS_I32";
|
|
77
|
-
/**
|
|
122
|
+
/**
|
|
123
|
+
* A text value that reads back as a number or a boolean, because the format does not record that it was text (the
|
|
124
|
+
* text "42" reads back as the number 42).
|
|
125
|
+
*/
|
|
78
126
|
TEXT_INFERRED: "W_TEXT_INFERRED";
|
|
79
|
-
/** A
|
|
127
|
+
/** A text value holds a character XML 1.0 forbids (most control characters); the save fails with E_COLUMN_TYPE. */
|
|
80
128
|
XML_ILLEGAL_CHAR: "E_XML_ILLEGAL_CHAR";
|
|
81
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* A text attribute stored as a dictionary, without a declared list of allowed values, reads back with its distinct
|
|
131
|
+
* values as that list.
|
|
132
|
+
*/
|
|
82
133
|
OPTIONS_GAINED: "W_OPTIONS_GAINED";
|
|
83
134
|
/** A spells column in a format without spells. */
|
|
84
135
|
SPELLS: "W_SPELLS_DROPPED";
|
|
85
136
|
/** Dynamic attribute values (extension tables) in a format without them. */
|
|
86
137
|
DYNAMIC_VALUES: "W_DYNAMIC_VALUES_DROPPED";
|
|
87
|
-
/** An open-interval column in a format without open intervals
|
|
138
|
+
/** An open-interval column in a format without open intervals. */
|
|
88
139
|
OPEN_INTERVAL: "W_OPEN_INTERVAL";
|
|
89
140
|
/** Graph-level attributes in a format without them. */
|
|
90
141
|
GRAPH_ATTRIBUTES: "W_GRAPH_ATTRIBUTES_DROPPED";
|
|
@@ -94,26 +145,50 @@ export declare const LOSS: Readonly<{
|
|
|
94
145
|
VIZ: "W_VIZ_DROPPED";
|
|
95
146
|
/** An extension table the format cannot carry. */
|
|
96
147
|
EXTENSION_TABLE: "W_EXTENSION_TABLE_DROPPED";
|
|
148
|
+
/** A NaN or infinite number the format cannot spell; not written (or written as null), it reads back unset. */
|
|
149
|
+
NONFINITE_AS_NULL: "W_NONFINITE_AS_NULL";
|
|
150
|
+
/**
|
|
151
|
+
* The graph has edge weights and the file does not keep them (the format has no weights, or an option turned them
|
|
152
|
+
* off): every edge reads back with the default weight 1.
|
|
153
|
+
*/
|
|
154
|
+
WEIGHTS_DROPPED: "W_WEIGHTS_DROPPED";
|
|
97
155
|
}>;
|
|
98
|
-
/**
|
|
156
|
+
/**
|
|
157
|
+
* The error a save throws for the first `E_` note of a check() result, or null when there is none.
|
|
158
|
+
* An exporter calls it before it writes anything, so every format refuses a save the same way: an
|
|
159
|
+
* id note (E_ID_CHARSET, E_ID_TEXT_COLLISION) throws E_INVALID_ID, E_MIXED_DIRECTION throws
|
|
160
|
+
* E_DIRECTED, E_XML_ILLEGAL_CHAR throws E_COLUMN_TYPE, and any other note E_UNSUPPORTED. Map your
|
|
161
|
+
* own note codes onto these with `codes`. The error's `details.code` is the note's code.
|
|
162
|
+
* @param notes - what check() returned
|
|
163
|
+
* @param codes - the error code for each of your own note codes, such as
|
|
164
|
+
* `{ E_PAIRS_BAD_ID: "E_INVALID_ID" }`
|
|
165
|
+
* @returns the error to throw, or null
|
|
166
|
+
* @category Writing a format
|
|
167
|
+
*/
|
|
168
|
+
export declare function refusedSave(notes: readonly LossNote[], codes?: Readonly<Record<string, "E_INVALID_ID" | "E_DIRECTED" | "E_COLUMN_TYPE" | "E_UNSUPPORTED">>): GraphFormatError | null;
|
|
169
|
+
/**
|
|
170
|
+
* The capabilities of a format that keeps nothing beyond plain topology; the base every exporter overrides.
|
|
171
|
+
* @category Plugin helpers
|
|
172
|
+
*/
|
|
99
173
|
export declare const NO_CAPABILITIES: ExportCapabilities;
|
|
100
174
|
/**
|
|
101
175
|
* Build a capabilities table from the fields a format supports; every field left out is the
|
|
102
176
|
* conservative NO_CAPABILITIES value, so an exporter states what it keeps and nothing is assumed.
|
|
103
177
|
* @param supported - the fields the format supports
|
|
104
178
|
* @returns a frozen table
|
|
179
|
+
* @category Writing a format
|
|
105
180
|
*/
|
|
106
181
|
export declare function capabilities(supported: Partial<ExportCapabilities>): ExportCapabilities;
|
|
107
182
|
/**
|
|
108
|
-
* Format facts checkCapabilities() needs that the
|
|
109
|
-
* Consumed by the per-format importers and exporters under src/formats.
|
|
183
|
+
* Format facts checkCapabilities() needs that the capabilities table does not carry.
|
|
110
184
|
* @public
|
|
185
|
+
* @category Writing a format
|
|
111
186
|
*/
|
|
112
187
|
export interface CheckExtras {
|
|
113
188
|
/** Whether the format can write open intervals (GEXF 1.2 startopen / endopen); default false. */
|
|
114
189
|
readonly openIntervals?: boolean | undefined;
|
|
115
190
|
/**
|
|
116
|
-
* Whether the format carries the `<column>.text`
|
|
191
|
+
* Whether the format carries the `<column>.text` companion columns (the lexical
|
|
117
192
|
* form of a temporal value); default false, and every companion is then reported as
|
|
118
193
|
* W_TEMPORAL_TEXT_DROPPED.
|
|
119
194
|
*/
|
|
@@ -137,9 +212,37 @@ export interface CheckExtras {
|
|
|
137
212
|
* importer gives it). Defaults to none.
|
|
138
213
|
*/
|
|
139
214
|
readonly roleNames?: Readonly<Record<string, string>> | undefined;
|
|
215
|
+
/**
|
|
216
|
+
* False for a format that writes no node or edge attributes except the ones whose role is in
|
|
217
|
+
* `roles`: every other attribute column is reported once as W_COLUMN_DROPPED, instead of the
|
|
218
|
+
* type and role notes a written column gets. Default true. `nodeAttributes` and
|
|
219
|
+
* `edgeAttributes` override it for one kind.
|
|
220
|
+
*/
|
|
221
|
+
readonly attributes?: boolean | undefined;
|
|
222
|
+
/** Like `attributes`, for node attributes only: false for a format that writes no node attributes. */
|
|
223
|
+
readonly nodeAttributes?: boolean | undefined;
|
|
224
|
+
/** Like `attributes`, for edge attributes only: false for a format that writes no edge attributes. */
|
|
225
|
+
readonly edgeAttributes?: boolean | undefined;
|
|
226
|
+
/**
|
|
227
|
+
* Columns the format writes although it writes no other attributes: a column a format option
|
|
228
|
+
* names, such as an edge label column. Keyed by `node` or `edge`. They get no W_COLUMN_DROPPED
|
|
229
|
+
* note; the type notes of a written column still apply.
|
|
230
|
+
*/
|
|
231
|
+
readonly writtenColumns?: Readonly<Partial<Record<"node" | "edge", readonly string[]>>> | undefined;
|
|
232
|
+
/**
|
|
233
|
+
* False for a format (or an option) that writes no edge weights: a weighted graph gets one
|
|
234
|
+
* W_WEIGHTS_DROPPED note. Default true.
|
|
235
|
+
*/
|
|
236
|
+
readonly weights?: boolean | undefined;
|
|
237
|
+
/**
|
|
238
|
+
* How the format's importer turns id text back into ids ("canonical" for most text formats), so
|
|
239
|
+
* an id that comes back with another type (the text "7" as the number 7) is reported as
|
|
240
|
+
* W_ID_TEXT_TYPE. Omit it when the format records each id's type.
|
|
241
|
+
*/
|
|
242
|
+
readonly idsReadBack?: IdCoercion | undefined;
|
|
140
243
|
}
|
|
141
244
|
/**
|
|
142
|
-
* The generic pre-flight
|
|
245
|
+
* The generic pre-flight check: compare a snapshot with a format's capabilities
|
|
143
246
|
* and return one LossNote per gap, with the shared codes of LOSS. Format-specific notes are the
|
|
144
247
|
* exporter's to append.
|
|
145
248
|
* @param snapshot - the snapshot about to be exported
|
|
@@ -147,6 +250,7 @@ export interface CheckExtras {
|
|
|
147
250
|
* @param options - the resolved common export options
|
|
148
251
|
* @param extras - format facts the capabilities table does not carry
|
|
149
252
|
* @returns the notes, empty when the export is exact
|
|
253
|
+
* @category Writing a format
|
|
150
254
|
*/
|
|
151
255
|
export declare function checkCapabilities(snapshot: GraphSnapshot, caps: ExportCapabilities, options: ResolvedExportOptions, extras?: CheckExtras): LossNote[];
|
|
152
256
|
/**
|
|
@@ -154,6 +258,7 @@ export declare function checkCapabilities(snapshot: GraphSnapshot, caps: ExportC
|
|
|
154
258
|
* expanded pair count once; an expanded self-loop has no mirror and counts once).
|
|
155
259
|
* @param snapshot - the snapshot
|
|
156
260
|
* @returns the count; 0 for an undirected snapshot or one without the directed role
|
|
261
|
+
* @category Plugin helpers
|
|
157
262
|
*/
|
|
158
263
|
export declare function countMixedEdges(snapshot: GraphSnapshot): number;
|
|
159
264
|
/**
|
|
@@ -161,18 +266,19 @@ export declare function countMixedEdges(snapshot: GraphSnapshot): number;
|
|
|
161
266
|
* over the forward CSR; an undirected parallel edge is counted in both rows.
|
|
162
267
|
* @param snapshot - the snapshot
|
|
163
268
|
* @returns the count
|
|
269
|
+
* @category Plugin helpers
|
|
164
270
|
*/
|
|
165
271
|
export declare function countParallelArcs(snapshot: GraphSnapshot): number;
|
|
166
272
|
/**
|
|
167
273
|
* The id charsets of ExportCapabilities.
|
|
168
|
-
* Consumed by the per-format importers and exporters under src/formats.
|
|
169
274
|
* @public
|
|
275
|
+
* @category Plugin helpers
|
|
170
276
|
*/
|
|
171
277
|
export type IdCharset = ExportCapabilities["idCharset"];
|
|
172
278
|
/**
|
|
173
|
-
* The ids to write for every node after sanitising
|
|
174
|
-
* Consumed by the per-format importers and exporters under src/formats.
|
|
279
|
+
* The ids to write for every node after sanitising.
|
|
175
280
|
* @public
|
|
281
|
+
* @category Writing a format
|
|
176
282
|
*/
|
|
177
283
|
export interface SanitizedIds {
|
|
178
284
|
/** The charset applied. */
|
|
@@ -202,12 +308,14 @@ export interface SanitizedIds {
|
|
|
202
308
|
* Whether a code point is an XML NameChar.
|
|
203
309
|
* @param cp - the code point
|
|
204
310
|
* @returns true when it may appear in an NMTOKEN
|
|
311
|
+
* @category Plugin helpers
|
|
205
312
|
*/
|
|
206
313
|
export declare function isNameChar(cp: number): boolean;
|
|
207
314
|
/**
|
|
208
315
|
* Whether a text is an XML NMTOKEN (one or more NameChars; GraphML node and edge ids).
|
|
209
316
|
* @param text - the text
|
|
210
317
|
* @returns true for a non-empty text of NameChars
|
|
318
|
+
* @category Plugin helpers
|
|
211
319
|
*/
|
|
212
320
|
export declare function isNmtoken(text: string): boolean;
|
|
213
321
|
/**
|
|
@@ -215,6 +323,7 @@ export declare function isNmtoken(text: string): boolean;
|
|
|
215
323
|
* @param id - the id
|
|
216
324
|
* @param charset - the charset
|
|
217
325
|
* @returns true when the id needs no rewriting ("dense-1-based" is never true: see sanitizeIds)
|
|
326
|
+
* @category Plugin helpers
|
|
218
327
|
*/
|
|
219
328
|
export declare function isRepresentableId(id: NodeId, charset: IdCharset): boolean;
|
|
220
329
|
/**
|
|
@@ -223,10 +332,11 @@ export declare function isRepresentableId(id: NodeId, charset: IdCharset): boole
|
|
|
223
332
|
* @param snapshot - the snapshot
|
|
224
333
|
* @param charset - the charset
|
|
225
334
|
* @returns the count
|
|
335
|
+
* @category Plugin helpers
|
|
226
336
|
*/
|
|
227
337
|
export declare function countUnrepresentableIds(snapshot: GraphSnapshot, charset: IdCharset): number;
|
|
228
338
|
/**
|
|
229
|
-
* Sanitise the node ids for a charset
|
|
339
|
+
* Sanitise the node ids for a charset. Under "error" any id the charset
|
|
230
340
|
* cannot hold is E_INVALID_ID (details.reason "charset") and nothing is written; under "mangle"
|
|
231
341
|
* such ids are rewritten deterministically and uniquely: NMTOKEN by replacing every other
|
|
232
342
|
* character with `_` (an empty result becomes `_`) and suffixing `_2`, `_3`... on collision;
|
|
@@ -238,12 +348,14 @@ export declare function countUnrepresentableIds(snapshot: GraphSnapshot, charset
|
|
|
238
348
|
* @param charset - the charset
|
|
239
349
|
* @param mode - the resolved sanitizeIds option
|
|
240
350
|
* @returns the ids to write
|
|
351
|
+
* @category Writing a format
|
|
241
352
|
*/
|
|
242
353
|
export declare function sanitizeIds(snapshot: GraphSnapshot, charset: IdCharset, mode: "error" | "mangle"): SanitizedIds;
|
|
243
354
|
/**
|
|
244
355
|
* Rewrite a text as an NMTOKEN: every character that is not a NameChar becomes `_`.
|
|
245
356
|
* @param text - the text
|
|
246
357
|
* @returns a non-empty NMTOKEN
|
|
358
|
+
* @category Plugin helpers
|
|
247
359
|
*/
|
|
248
360
|
export declare function mangleNmtoken(text: string): string;
|
|
249
361
|
//# sourceMappingURL=export.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/common/export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAEH,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/common/export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAEH,KAAK,KAAK,EACV,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EAEf,KAAK,MAAM,EACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAyBrE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAO1D;;;GAGG;AACH,eAAO,MAAM,IAAI;IACb;;;OAGG;;IAEH;;;OAGG;;IAEH;;;;OAIG;;IAEH,+CAA+C;;IAE/C,2CAA2C;;IAE3C;;;OAGG;;IAEH,4FAA4F;;IAE5F,6EAA6E;;IAE7E;;;OAGG;;IAEH,mGAAmG;;IAEnG;;;OAGG;;IAEH;;;OAGG;;IAEH,+CAA+C;;IAE/C,uDAAuD;;IAEvD,uDAAuD;;IAEvD,yDAAyD;;IAEzD,iEAAiE;;IAEjE,6EAA6E;;IAE7E,2DAA2D;;IAE3D,8GAA8G;;IAE9G,gFAAgF;;IAEhF,2EAA2E;;IAE3E,yGAAyG;;IAEzG,6FAA6F;;IAE7F;;;OAGG;;IAEH;;;OAGG;;IAEH;;;OAGG;;IAEH;;;OAGG;;IAEH,iGAAiG;;IAEjG;;;OAGG;;IAEH;;;OAGG;;IAEH;;;OAGG;;IAEH,mHAAmH;;IAEnH;;;OAGG;;IAEH,kDAAkD;;IAElD,4EAA4E;;IAE5E,kEAAkE;;IAElE,uDAAuD;;IAEvD,uDAAuD;;IAEvD,+CAA+C;;IAE/C,kDAAkD;;IAElD,+GAA+G;;IAE/G;;;OAGG;;EAEL,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACvB,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,KAAK,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,GAAG,eAAe,GAAG,eAAe,CAAC,CAAM,GACxG,gBAAgB,GAAG,IAAI,CAOzB;AAaD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,kBAiB5B,CAAC;AAEH;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAEvF;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IACxB,iGAAiG;IACjG,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACjD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAClE;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,sGAAsG;IACtG,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,sGAAsG;IACtG,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACpG;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACjD;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,GAAE,WAAgB,GACzB,QAAQ,EAAE,CAgJZ;AAiPD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAoB/D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAWjE;AAID;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACrC;AAwBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAU9C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAW/C;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAezE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,GAAG,MAAM,CAwB3F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,CAmF/G;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOlD"}
|