@graphty/graph-io 0.3.43 → 0.3.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/approximations-3Q4TsdTh.js +40 -0
- package/dist/chunks/approximations-3Q4TsdTh.js.map +1 -0
- package/dist/chunks/block-JQiwViEt.js +2777 -0
- package/dist/chunks/block-JQiwViEt.js.map +1 -0
- package/dist/chunks/{choose-DvpbdRuz.js → choose-BemygfH8.js} +3 -2
- package/dist/chunks/{choose-DvpbdRuz.js.map → choose-BemygfH8.js.map} +1 -1
- package/dist/chunks/{constants-fT3E8JYY.js → constants-BFUR_CtU.js} +6 -2
- package/dist/chunks/constants-BFUR_CtU.js.map +1 -0
- package/dist/chunks/convert-BcQ8_jMo.js +59 -0
- package/dist/chunks/convert-BcQ8_jMo.js.map +1 -0
- package/dist/chunks/emit-DCwFLts5.js +3456 -0
- package/dist/chunks/emit-DCwFLts5.js.map +1 -0
- package/dist/chunks/{escape-B62ZGM_a.js → escape-B1rMftd9.js} +43 -20
- package/dist/chunks/escape-B1rMftd9.js.map +1 -0
- package/dist/chunks/{export-rKLeGQMo.js → export-D7IGzTG4.js} +196 -792
- package/dist/chunks/export-D7IGzTG4.js.map +1 -0
- package/dist/chunks/{exporter-BWwEuOPT.js → exporter-BtnqYuuj.js} +22 -12
- package/dist/chunks/exporter-BtnqYuuj.js.map +1 -0
- package/dist/chunks/{exporter-yLxKBvLE.js → exporter-ChPyhBOv.js} +4 -3
- package/dist/chunks/{exporter-yLxKBvLE.js.map → exporter-ChPyhBOv.js.map} +1 -1
- package/dist/chunks/{exporter-8hLNemFk.js → exporter-KEPxYUXD.js} +133 -74
- package/dist/chunks/exporter-KEPxYUXD.js.map +1 -0
- package/dist/chunks/{exporter-RVtXVetw.js → exporter-quPUCBiC.js} +1805 -287
- package/dist/chunks/exporter-quPUCBiC.js.map +1 -0
- package/dist/chunks/format-GDmO6m6Q.js +676 -0
- package/dist/chunks/format-GDmO6m6Q.js.map +1 -0
- package/dist/chunks/generic-BL06jrJf.js +1347 -0
- package/dist/chunks/generic-BL06jrJf.js.map +1 -0
- package/dist/chunks/{importer-WrGRZb0N.js → importer-B7r2owVf.js} +449 -102
- package/dist/chunks/importer-B7r2owVf.js.map +1 -0
- package/dist/chunks/{importer-Ht7LNg8L.js → importer-BFmOP96W.js} +116 -296
- package/dist/chunks/importer-BFmOP96W.js.map +1 -0
- package/dist/chunks/{importer-BbNb7eNg.js → importer-C2nzGhdV.js} +1390 -129
- package/dist/chunks/importer-C2nzGhdV.js.map +1 -0
- package/dist/chunks/{importer-Dz7tI8Sa.js → importer-CbX2_rNF.js} +617 -115
- package/dist/chunks/importer-CbX2_rNF.js.map +1 -0
- package/dist/chunks/{importer-D794XUTe.js → importer-CdzeN6X4.js} +31 -8
- package/dist/chunks/importer-CdzeN6X4.js.map +1 -0
- package/dist/chunks/{importer-xZ-3suY1.js → importer-ChKNC_GN.js} +791 -135
- package/dist/chunks/importer-ChKNC_GN.js.map +1 -0
- package/dist/chunks/{importer-C98dpSH4.js → importer-dwoYpSqb.js} +141 -82
- package/dist/chunks/importer-dwoYpSqb.js.map +1 -0
- package/dist/chunks/index-B9fdNpTA.js +4310 -0
- package/dist/chunks/index-B9fdNpTA.js.map +1 -0
- package/dist/chunks/{json-elements-DKSqpNW1.js → json-elements-C4FwgnH5.js} +123 -32
- package/dist/chunks/json-elements-C4FwgnH5.js.map +1 -0
- package/dist/chunks/lexicon-B-knUi-l.js +508 -0
- package/dist/chunks/lexicon-B-knUi-l.js.map +1 -0
- package/dist/chunks/{ontology-export-CtRXjg_i.js → ontology-export-BSpbY5FL.js} +3 -2
- package/dist/chunks/{ontology-export-CtRXjg_i.js.map → ontology-export-BSpbY5FL.js.map} +1 -1
- package/dist/chunks/{records-Cu4bxYOm.js → records-Nwz_rbNt.js} +2 -2
- package/dist/chunks/{records-Cu4bxYOm.js.map → records-Nwz_rbNt.js.map} +1 -1
- package/dist/chunks/styles-Brt9JMfs.js +690 -0
- package/dist/chunks/styles-Brt9JMfs.js.map +1 -0
- package/dist/chunks/styles-_N-C8S-U.js +2102 -0
- package/dist/chunks/styles-_N-C8S-U.js.map +1 -0
- package/dist/chunks/styles-yed-DAfcIkf7.js +842 -0
- package/dist/chunks/styles-yed-DAfcIkf7.js.map +1 -0
- package/dist/chunks/{text-DHOJXnED.js → text-CgzMqHQb.js} +2 -2
- package/dist/chunks/{text-DHOJXnED.js.map → text-CgzMqHQb.js.map} +1 -1
- package/dist/chunks/units-XMZFIFe1.js +19 -0
- package/dist/chunks/units-XMZFIFe1.js.map +1 -0
- package/dist/csv.js +5 -4
- package/dist/csv.js.map +1 -1
- package/dist/cx.js +1 -1
- package/dist/cx2.js +2 -2
- package/dist/cys.js +1 -1
- package/dist/dot.js +5 -2
- package/dist/dot.js.map +1 -1
- package/dist/gexf.js +292 -412
- package/dist/gexf.js.map +1 -1
- package/dist/gml.js +8 -3031
- package/dist/gml.js.map +1 -1
- package/dist/graph-io.js +354 -240
- package/dist/graph-io.js.map +1 -1
- package/dist/graphml.js +4 -2
- package/dist/graphml.js.map +1 -1
- package/dist/json.js +1 -1
- package/dist/neo4j.js +4 -3
- package/dist/neo4j.js.map +1 -1
- package/dist/obo.js +1 -1
- package/dist/pajek.js +4 -2
- package/dist/positions.d.ts +1 -0
- package/dist/positions.js +427 -0
- package/dist/positions.js.map +1 -0
- package/dist/src/common/codes.d.ts +6 -0
- package/dist/src/common/codes.d.ts.map +1 -1
- package/dist/src/common/codes.js +6 -0
- package/dist/src/common/codes.js.map +1 -1
- package/dist/src/common/escape.d.ts.map +1 -1
- package/dist/src/common/escape.js +4 -2
- package/dist/src/common/escape.js.map +1 -1
- package/dist/src/common/export.d.ts +10 -0
- package/dist/src/common/export.d.ts.map +1 -1
- package/dist/src/common/export.js +123 -100
- package/dist/src/common/export.js.map +1 -1
- package/dist/src/common/input.d.ts.map +1 -1
- package/dist/src/common/input.js +8 -1
- package/dist/src/common/input.js.map +1 -1
- package/dist/src/common/json-elements.d.ts +12 -9
- package/dist/src/common/json-elements.d.ts.map +1 -1
- package/dist/src/common/json-elements.js +160 -37
- package/dist/src/common/json-elements.js.map +1 -1
- package/dist/src/common/notes.d.ts +42 -0
- package/dist/src/common/notes.d.ts.map +1 -0
- package/dist/src/common/notes.js +72 -0
- package/dist/src/common/notes.js.map +1 -0
- package/dist/src/common/report.d.ts +18 -0
- package/dist/src/common/report.d.ts.map +1 -1
- package/dist/src/common/report.js +36 -1
- package/dist/src/common/report.js.map +1 -1
- package/dist/src/common/units.d.ts +24 -0
- package/dist/src/common/units.d.ts.map +1 -0
- package/dist/src/common/units.js +26 -0
- package/dist/src/common/units.js.map +1 -0
- package/dist/src/common/xml.d.ts +18 -0
- package/dist/src/common/xml.d.ts.map +1 -1
- package/dist/src/common/xml.js +42 -5
- package/dist/src/common/xml.js.map +1 -1
- package/dist/src/formats/cx/exporter.d.ts +6 -0
- package/dist/src/formats/cx/exporter.d.ts.map +1 -1
- package/dist/src/formats/cx/exporter.js +71 -8
- package/dist/src/formats/cx/exporter.js.map +1 -1
- package/dist/src/formats/cx/importer.d.ts +5 -2
- package/dist/src/formats/cx/importer.d.ts.map +1 -1
- package/dist/src/formats/cx/importer.js +102 -72
- package/dist/src/formats/cx/importer.js.map +1 -1
- package/dist/src/formats/cx/styles.d.ts +102 -0
- package/dist/src/formats/cx/styles.d.ts.map +1 -0
- package/dist/src/formats/cx/styles.js +225 -0
- package/dist/src/formats/cx/styles.js.map +1 -0
- package/dist/src/formats/cx2/exporter.d.ts +5 -0
- package/dist/src/formats/cx2/exporter.d.ts.map +1 -1
- package/dist/src/formats/cx2/exporter.js +181 -71
- package/dist/src/formats/cx2/exporter.js.map +1 -1
- package/dist/src/formats/cx2/importer.d.ts +4 -1
- package/dist/src/formats/cx2/importer.d.ts.map +1 -1
- package/dist/src/formats/cx2/importer.js +19 -1
- package/dist/src/formats/cx2/importer.js.map +1 -1
- package/dist/src/formats/cx2/styles.d.ts +18 -0
- package/dist/src/formats/cx2/styles.d.ts.map +1 -0
- package/dist/src/formats/cx2/styles.js +24 -0
- package/dist/src/formats/cx2/styles.js.map +1 -0
- package/dist/src/formats/cys/constants.d.ts +2 -0
- package/dist/src/formats/cys/constants.d.ts.map +1 -1
- package/dist/src/formats/cys/constants.js +2 -0
- package/dist/src/formats/cys/constants.js.map +1 -1
- package/dist/src/formats/cys/exporter.d.ts +6 -2
- package/dist/src/formats/cys/exporter.d.ts.map +1 -1
- package/dist/src/formats/cys/exporter.js +215 -53
- package/dist/src/formats/cys/exporter.js.map +1 -1
- package/dist/src/formats/cys/importer.d.ts +2 -1
- package/dist/src/formats/cys/importer.d.ts.map +1 -1
- package/dist/src/formats/cys/importer.js +119 -6
- package/dist/src/formats/cys/importer.js.map +1 -1
- package/dist/src/formats/cys/session.d.ts +2 -0
- package/dist/src/formats/cys/session.d.ts.map +1 -1
- package/dist/src/formats/cys/session.js +5 -0
- package/dist/src/formats/cys/session.js.map +1 -1
- package/dist/src/formats/cys/styles.d.ts +38 -0
- package/dist/src/formats/cys/styles.d.ts.map +1 -0
- package/dist/src/formats/cys/styles.js +213 -0
- package/dist/src/formats/cys/styles.js.map +1 -0
- package/dist/src/formats/cys/tables.d.ts +8 -3
- package/dist/src/formats/cys/tables.d.ts.map +1 -1
- package/dist/src/formats/cys/tables.js +88 -34
- package/dist/src/formats/cys/tables.js.map +1 -1
- package/dist/src/formats/dot/exporter.d.ts +2 -0
- package/dist/src/formats/dot/exporter.d.ts.map +1 -1
- package/dist/src/formats/dot/exporter.js +195 -81
- package/dist/src/formats/dot/exporter.js.map +1 -1
- package/dist/src/formats/dot/importer.d.ts.map +1 -1
- package/dist/src/formats/dot/importer.js +100 -20
- package/dist/src/formats/dot/importer.js.map +1 -1
- package/dist/src/formats/dot/index.d.ts +1 -0
- package/dist/src/formats/dot/index.d.ts.map +1 -1
- package/dist/src/formats/dot/index.js +1 -0
- package/dist/src/formats/dot/index.js.map +1 -1
- package/dist/src/formats/dot/positions.d.ts +14 -0
- package/dist/src/formats/dot/positions.d.ts.map +1 -0
- package/dist/src/formats/dot/positions.js +70 -0
- package/dist/src/formats/dot/positions.js.map +1 -0
- package/dist/src/formats/dot/styles.d.ts +82 -0
- package/dist/src/formats/dot/styles.d.ts.map +1 -0
- package/dist/src/formats/dot/styles.js +1484 -0
- package/dist/src/formats/dot/styles.js.map +1 -0
- package/dist/src/formats/gexf/exporter.d.ts.map +1 -1
- package/dist/src/formats/gexf/exporter.js +20 -5
- package/dist/src/formats/gexf/exporter.js.map +1 -1
- package/dist/src/formats/gexf/importer.d.ts +8 -1
- package/dist/src/formats/gexf/importer.d.ts.map +1 -1
- package/dist/src/formats/gexf/importer.js +251 -131
- package/dist/src/formats/gexf/importer.js.map +1 -1
- package/dist/src/formats/gexf/index.d.ts +8 -0
- package/dist/src/formats/gexf/index.d.ts.map +1 -1
- package/dist/src/formats/gexf/index.js +10 -2
- package/dist/src/formats/gexf/index.js.map +1 -1
- package/dist/src/formats/gexf/schema.d.ts +5 -0
- package/dist/src/formats/gexf/schema.d.ts.map +1 -1
- package/dist/src/formats/gexf/schema.js +5 -0
- package/dist/src/formats/gexf/schema.js.map +1 -1
- package/dist/src/formats/gexf/styles.d.ts +74 -0
- package/dist/src/formats/gexf/styles.d.ts.map +1 -0
- package/dist/src/formats/gexf/styles.js +604 -0
- package/dist/src/formats/gexf/styles.js.map +1 -0
- package/dist/src/formats/gml/exporter.d.ts +1 -5
- package/dist/src/formats/gml/exporter.d.ts.map +1 -1
- package/dist/src/formats/gml/exporter.js +19 -8
- package/dist/src/formats/gml/exporter.js.map +1 -1
- package/dist/src/formats/gml/importer.d.ts.map +1 -1
- package/dist/src/formats/gml/importer.js +4 -0
- package/dist/src/formats/gml/importer.js.map +1 -1
- package/dist/src/formats/gml/index.d.ts +2 -1
- package/dist/src/formats/gml/index.d.ts.map +1 -1
- package/dist/src/formats/gml/index.js +2 -1
- package/dist/src/formats/gml/index.js.map +1 -1
- package/dist/src/formats/gml/positions.d.ts +14 -0
- package/dist/src/formats/gml/positions.d.ts.map +1 -0
- package/dist/src/formats/gml/positions.js +46 -0
- package/dist/src/formats/gml/positions.js.map +1 -0
- package/dist/src/formats/gml/styles.d.ts +59 -0
- package/dist/src/formats/gml/styles.d.ts.map +1 -0
- package/dist/src/formats/gml/styles.js +1056 -0
- package/dist/src/formats/gml/styles.js.map +1 -0
- package/dist/src/formats/gml/syntax.d.ts +11 -0
- package/dist/src/formats/gml/syntax.d.ts.map +1 -1
- package/dist/src/formats/gml/syntax.js +151 -62
- package/dist/src/formats/gml/syntax.js.map +1 -1
- package/dist/src/formats/graphml/constants.d.ts +4 -0
- package/dist/src/formats/graphml/constants.d.ts.map +1 -1
- package/dist/src/formats/graphml/constants.js +5 -1
- package/dist/src/formats/graphml/constants.js.map +1 -1
- package/dist/src/formats/graphml/exporter.d.ts.map +1 -1
- package/dist/src/formats/graphml/exporter.js +133 -65
- package/dist/src/formats/graphml/exporter.js.map +1 -1
- package/dist/src/formats/graphml/importer.d.ts +4 -1
- package/dist/src/formats/graphml/importer.d.ts.map +1 -1
- package/dist/src/formats/graphml/importer.js +100 -44
- package/dist/src/formats/graphml/importer.js.map +1 -1
- package/dist/src/formats/graphml/index.d.ts +1 -0
- package/dist/src/formats/graphml/index.d.ts.map +1 -1
- package/dist/src/formats/graphml/index.js +1 -0
- package/dist/src/formats/graphml/index.js.map +1 -1
- package/dist/src/formats/graphml/styles-plain.d.ts +19 -0
- package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -0
- package/dist/src/formats/graphml/styles-plain.js +187 -0
- package/dist/src/formats/graphml/styles-plain.js.map +1 -0
- package/dist/src/formats/graphml/styles-yed.d.ts +179 -0
- package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -0
- package/dist/src/formats/graphml/styles-yed.js +1086 -0
- package/dist/src/formats/graphml/styles-yed.js.map +1 -0
- package/dist/src/formats/graphml/styles-yfiles3.d.ts +19 -0
- package/dist/src/formats/graphml/styles-yfiles3.d.ts.map +1 -0
- package/dist/src/formats/graphml/styles-yfiles3.js +508 -0
- package/dist/src/formats/graphml/styles-yfiles3.js.map +1 -0
- package/dist/src/formats/graphml/tree.d.ts.map +1 -1
- package/dist/src/formats/graphml/tree.js +34 -19
- package/dist/src/formats/graphml/tree.js.map +1 -1
- package/dist/src/formats/graphml/yfiles.d.ts +16 -2
- package/dist/src/formats/graphml/yfiles.d.ts.map +1 -1
- package/dist/src/formats/graphml/yfiles.js +83 -12
- package/dist/src/formats/graphml/yfiles.js.map +1 -1
- package/dist/src/formats/json/exporter.d.ts +5 -0
- package/dist/src/formats/json/exporter.d.ts.map +1 -1
- package/dist/src/formats/json/exporter.js +68 -25
- package/dist/src/formats/json/exporter.js.map +1 -1
- package/dist/src/formats/json/importer.d.ts +22 -3
- package/dist/src/formats/json/importer.d.ts.map +1 -1
- package/dist/src/formats/json/importer.js +439 -264
- package/dist/src/formats/json/importer.js.map +1 -1
- package/dist/src/formats/json/positions.d.ts +16 -0
- package/dist/src/formats/json/positions.d.ts.map +1 -0
- package/dist/src/formats/json/positions.js +44 -0
- package/dist/src/formats/json/positions.js.map +1 -0
- package/dist/src/formats/json/styles.d.ts +102 -0
- package/dist/src/formats/json/styles.d.ts.map +1 -0
- package/dist/src/formats/json/styles.js +1753 -0
- package/dist/src/formats/json/styles.js.map +1 -0
- package/dist/src/formats/neo4j/exporter.d.ts.map +1 -1
- package/dist/src/formats/neo4j/exporter.js +2 -1
- package/dist/src/formats/neo4j/exporter.js.map +1 -1
- package/dist/src/formats/pajek/exporter.d.ts +2 -0
- package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
- package/dist/src/formats/pajek/exporter.js +142 -76
- package/dist/src/formats/pajek/exporter.js.map +1 -1
- package/dist/src/formats/pajek/importer.d.ts +4 -0
- package/dist/src/formats/pajek/importer.d.ts.map +1 -1
- package/dist/src/formats/pajek/importer.js +60 -6
- package/dist/src/formats/pajek/importer.js.map +1 -1
- package/dist/src/formats/pajek/index.d.ts +2 -0
- package/dist/src/formats/pajek/index.d.ts.map +1 -1
- package/dist/src/formats/pajek/index.js +2 -0
- package/dist/src/formats/pajek/index.js.map +1 -1
- package/dist/src/formats/pajek/styles.d.ts +50 -0
- package/dist/src/formats/pajek/styles.d.ts.map +1 -0
- package/dist/src/formats/pajek/styles.js +569 -0
- package/dist/src/formats/pajek/styles.js.map +1 -0
- package/dist/src/formats/pajek/syntax.d.ts +6 -0
- package/dist/src/formats/pajek/syntax.d.ts.map +1 -1
- package/dist/src/formats/pajek/syntax.js +6 -0
- package/dist/src/formats/pajek/syntax.js.map +1 -1
- package/dist/src/formats/xgmml/columns.d.ts.map +1 -1
- package/dist/src/formats/xgmml/columns.js +34 -9
- package/dist/src/formats/xgmml/columns.js.map +1 -1
- package/dist/src/formats/xgmml/constants.d.ts +2 -0
- package/dist/src/formats/xgmml/constants.d.ts.map +1 -1
- package/dist/src/formats/xgmml/constants.js +3 -1
- package/dist/src/formats/xgmml/constants.js.map +1 -1
- package/dist/src/formats/xgmml/document.d.ts +12 -8
- package/dist/src/formats/xgmml/document.d.ts.map +1 -1
- package/dist/src/formats/xgmml/document.js +56 -13
- package/dist/src/formats/xgmml/document.js.map +1 -1
- package/dist/src/formats/xgmml/emit.d.ts.map +1 -1
- package/dist/src/formats/xgmml/emit.js +12 -6
- package/dist/src/formats/xgmml/emit.js.map +1 -1
- package/dist/src/formats/xgmml/exporter.d.ts +3 -1
- package/dist/src/formats/xgmml/exporter.d.ts.map +1 -1
- package/dist/src/formats/xgmml/exporter.js +22 -9
- package/dist/src/formats/xgmml/exporter.js.map +1 -1
- package/dist/src/formats/xgmml/importer.d.ts +2 -1
- package/dist/src/formats/xgmml/importer.d.ts.map +1 -1
- package/dist/src/formats/xgmml/importer.js +31 -24
- package/dist/src/formats/xgmml/importer.js.map +1 -1
- package/dist/src/formats/xgmml/styles.d.ts +104 -0
- package/dist/src/formats/xgmml/styles.d.ts.map +1 -0
- package/dist/src/formats/xgmml/styles.js +310 -0
- package/dist/src/formats/xgmml/styles.js.map +1 -0
- package/dist/src/index.d.ts +9 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -7
- package/dist/src/index.js.map +1 -1
- package/dist/src/positions/codes.d.ts +31 -0
- package/dist/src/positions/codes.d.ts.map +1 -0
- package/dist/src/positions/codes.js +26 -0
- package/dist/src/positions/codes.js.map +1 -0
- package/dist/src/positions/convert.d.ts +58 -0
- package/dist/src/positions/convert.d.ts.map +1 -0
- package/dist/src/positions/convert.js +107 -0
- package/dist/src/positions/convert.js.map +1 -0
- package/dist/src/positions/extract.d.ts +27 -0
- package/dist/src/positions/extract.d.ts.map +1 -0
- package/dist/src/positions/extract.js +526 -0
- package/dist/src/positions/extract.js.map +1 -0
- package/dist/src/positions/index.d.ts +10 -0
- package/dist/src/positions/index.d.ts.map +1 -0
- package/dist/src/positions/index.js +9 -0
- package/dist/src/positions/index.js.map +1 -0
- package/dist/src/positions/types.d.ts +208 -0
- package/dist/src/positions/types.d.ts.map +1 -0
- package/dist/src/positions/types.js +10 -0
- package/dist/src/positions/types.js.map +1 -0
- package/dist/src/registry.d.ts +30 -0
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +130 -9
- package/dist/src/registry.js.map +1 -1
- package/dist/src/styles/annotations.d.ts +132 -0
- package/dist/src/styles/annotations.d.ts.map +1 -0
- package/dist/src/styles/annotations.js +320 -0
- package/dist/src/styles/annotations.js.map +1 -0
- package/dist/src/styles/budget.d.ts +45 -0
- package/dist/src/styles/budget.d.ts.map +1 -0
- package/dist/src/styles/budget.js +58 -0
- package/dist/src/styles/budget.js.map +1 -0
- package/dist/src/styles/canon/bends.d.ts +32 -0
- package/dist/src/styles/canon/bends.d.ts.map +1 -0
- package/dist/src/styles/canon/bends.js +74 -0
- package/dist/src/styles/canon/bends.js.map +1 -0
- package/dist/src/styles/canon/color-tables.d.ts +22 -0
- package/dist/src/styles/canon/color-tables.d.ts.map +1 -0
- package/dist/src/styles/canon/color-tables.js +369 -0
- package/dist/src/styles/canon/color-tables.js.map +1 -0
- package/dist/src/styles/canon/color.d.ts +66 -0
- package/dist/src/styles/canon/color.d.ts.map +1 -0
- package/dist/src/styles/canon/color.js +548 -0
- package/dist/src/styles/canon/color.js.map +1 -0
- package/dist/src/styles/canon/enums.d.ts +25 -0
- package/dist/src/styles/canon/enums.d.ts.map +1 -0
- package/dist/src/styles/canon/enums.js +187 -0
- package/dist/src/styles/canon/enums.js.map +1 -0
- package/dist/src/styles/canon/graphviz.d.ts +48 -0
- package/dist/src/styles/canon/graphviz.d.ts.map +1 -0
- package/dist/src/styles/canon/graphviz.js +160 -0
- package/dist/src/styles/canon/graphviz.js.map +1 -0
- package/dist/src/styles/canon/index.d.ts +13 -0
- package/dist/src/styles/canon/index.d.ts.map +1 -0
- package/dist/src/styles/canon/index.js +13 -0
- package/dist/src/styles/canon/index.js.map +1 -0
- package/dist/src/styles/canon/number.d.ts +59 -0
- package/dist/src/styles/canon/number.d.ts.map +1 -0
- package/dist/src/styles/canon/number.js +142 -0
- package/dist/src/styles/canon/number.js.map +1 -0
- package/dist/src/styles/canon/site.d.ts +51 -0
- package/dist/src/styles/canon/site.d.ts.map +1 -0
- package/dist/src/styles/canon/site.js +63 -0
- package/dist/src/styles/canon/site.js.map +1 -0
- package/dist/src/styles/canon/text.d.ts +61 -0
- package/dist/src/styles/canon/text.d.ts.map +1 -0
- package/dist/src/styles/canon/text.js +199 -0
- package/dist/src/styles/canon/text.js.map +1 -0
- package/dist/src/styles/codes.d.ts +95 -0
- package/dist/src/styles/codes.d.ts.map +1 -0
- package/dist/src/styles/codes.js +97 -0
- package/dist/src/styles/codes.js.map +1 -0
- package/dist/src/styles/cyjs/cascade.d.ts +134 -0
- package/dist/src/styles/cyjs/cascade.d.ts.map +1 -0
- package/dist/src/styles/cyjs/cascade.js +2252 -0
- package/dist/src/styles/cyjs/cascade.js.map +1 -0
- package/dist/src/styles/cyjs/defaults-table.d.ts +25 -0
- package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -0
- package/dist/src/styles/cyjs/defaults-table.js +76 -0
- package/dist/src/styles/cyjs/defaults-table.js.map +1 -0
- package/dist/src/styles/cyjs/emit.d.ts +82 -0
- package/dist/src/styles/cyjs/emit.d.ts.map +1 -0
- package/dist/src/styles/cyjs/emit.js +790 -0
- package/dist/src/styles/cyjs/emit.js.map +1 -0
- package/dist/src/styles/cyjs/index.d.ts +13 -0
- package/dist/src/styles/cyjs/index.d.ts.map +1 -0
- package/dist/src/styles/cyjs/index.js +13 -0
- package/dist/src/styles/cyjs/index.js.map +1 -0
- package/dist/src/styles/cyjs/live.d.ts +46 -0
- package/dist/src/styles/cyjs/live.d.ts.map +1 -0
- package/dist/src/styles/cyjs/live.js +108 -0
- package/dist/src/styles/cyjs/live.js.map +1 -0
- package/dist/src/styles/cyjs/mappers.d.ts +147 -0
- package/dist/src/styles/cyjs/mappers.d.ts.map +1 -0
- package/dist/src/styles/cyjs/mappers.js +744 -0
- package/dist/src/styles/cyjs/mappers.js.map +1 -0
- package/dist/src/styles/cyjs/selector.d.ts +113 -0
- package/dist/src/styles/cyjs/selector.d.ts.map +1 -0
- package/dist/src/styles/cyjs/selector.js +611 -0
- package/dist/src/styles/cyjs/selector.js.map +1 -0
- package/dist/src/styles/cyjs/stylesheet-text.d.ts +37 -0
- package/dist/src/styles/cyjs/stylesheet-text.d.ts.map +1 -0
- package/dist/src/styles/cyjs/stylesheet-text.js +181 -0
- package/dist/src/styles/cyjs/stylesheet-text.js.map +1 -0
- package/dist/src/styles/cytoscape/emit.d.ts +125 -0
- package/dist/src/styles/cytoscape/emit.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/emit.js +1025 -0
- package/dist/src/styles/cytoscape/emit.js.map +1 -0
- package/dist/src/styles/cytoscape/index.d.ts +10 -0
- package/dist/src/styles/cytoscape/index.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/index.js +10 -0
- package/dist/src/styles/cytoscape/index.js.map +1 -0
- package/dist/src/styles/cytoscape/lexicon.d.ts +49 -0
- package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/lexicon.js +603 -0
- package/dist/src/styles/cytoscape/lexicon.js.map +1 -0
- package/dist/src/styles/cytoscape/mappings.d.ts +171 -0
- package/dist/src/styles/cytoscape/mappings.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/mappings.js +460 -0
- package/dist/src/styles/cytoscape/mappings.js.map +1 -0
- package/dist/src/styles/cytoscape/resolve.d.ts +137 -0
- package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/resolve.js +381 -0
- package/dist/src/styles/cytoscape/resolve.js.map +1 -0
- package/dist/src/styles/cytoscape/translate.d.ts +50 -0
- package/dist/src/styles/cytoscape/translate.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/translate.js +156 -0
- package/dist/src/styles/cytoscape/translate.js.map +1 -0
- package/dist/src/styles/defaults.d.ts +90 -0
- package/dist/src/styles/defaults.d.ts.map +1 -0
- package/dist/src/styles/defaults.js +414 -0
- package/dist/src/styles/defaults.js.map +1 -0
- package/dist/src/styles/index.d.ts +15 -0
- package/dist/src/styles/index.d.ts.map +1 -0
- package/dist/src/styles/index.js +14 -0
- package/dist/src/styles/index.js.map +1 -0
- package/dist/src/styles/internal.d.ts +17 -0
- package/dist/src/styles/internal.d.ts.map +1 -0
- package/dist/src/styles/internal.js +16 -0
- package/dist/src/styles/internal.js.map +1 -0
- package/dist/src/styles/io/approximations.d.ts +24 -0
- package/dist/src/styles/io/approximations.d.ts.map +1 -0
- package/dist/src/styles/io/approximations.js +51 -0
- package/dist/src/styles/io/approximations.js.map +1 -0
- package/dist/src/styles/io/block.d.ts +166 -0
- package/dist/src/styles/io/block.d.ts.map +1 -0
- package/dist/src/styles/io/block.js +930 -0
- package/dist/src/styles/io/block.js.map +1 -0
- package/dist/src/styles/io/generic.d.ts +88 -0
- package/dist/src/styles/io/generic.d.ts.map +1 -0
- package/dist/src/styles/io/generic.js +516 -0
- package/dist/src/styles/io/generic.js.map +1 -0
- package/dist/src/styles/io/index.d.ts +8 -0
- package/dist/src/styles/io/index.d.ts.map +1 -0
- package/dist/src/styles/io/index.js +7 -0
- package/dist/src/styles/io/index.js.map +1 -0
- package/dist/src/styles/io/writer.d.ts +80 -0
- package/dist/src/styles/io/writer.d.ts.map +1 -0
- package/dist/src/styles/io/writer.js +596 -0
- package/dist/src/styles/io/writer.js.map +1 -0
- package/dist/src/styles/notes.d.ts +47 -0
- package/dist/src/styles/notes.d.ts.map +1 -0
- package/dist/src/styles/notes.js +140 -0
- package/dist/src/styles/notes.js.map +1 -0
- package/dist/src/styles/plan/classes.d.ts +31 -0
- package/dist/src/styles/plan/classes.d.ts.map +1 -0
- package/dist/src/styles/plan/classes.js +139 -0
- package/dist/src/styles/plan/classes.js.map +1 -0
- package/dist/src/styles/plan/continuous.d.ts +32 -0
- package/dist/src/styles/plan/continuous.d.ts.map +1 -0
- package/dist/src/styles/plan/continuous.js +165 -0
- package/dist/src/styles/plan/continuous.js.map +1 -0
- package/dist/src/styles/plan/discrete.d.ts +39 -0
- package/dist/src/styles/plan/discrete.d.ts.map +1 -0
- package/dist/src/styles/plan/discrete.js +127 -0
- package/dist/src/styles/plan/discrete.js.map +1 -0
- package/dist/src/styles/plan/families.d.ts +31 -0
- package/dist/src/styles/plan/families.d.ts.map +1 -0
- package/dist/src/styles/plan/families.js +95 -0
- package/dist/src/styles/plan/families.js.map +1 -0
- package/dist/src/styles/plan/features.d.ts +58 -0
- package/dist/src/styles/plan/features.d.ts.map +1 -0
- package/dist/src/styles/plan/features.js +185 -0
- package/dist/src/styles/plan/features.js.map +1 -0
- package/dist/src/styles/plan/index.d.ts +7 -0
- package/dist/src/styles/plan/index.d.ts.map +1 -0
- package/dist/src/styles/plan/index.js +7 -0
- package/dist/src/styles/plan/index.js.map +1 -0
- package/dist/src/styles/plan/plan.d.ts +71 -0
- package/dist/src/styles/plan/plan.d.ts.map +1 -0
- package/dist/src/styles/plan/plan.js +893 -0
- package/dist/src/styles/plan/plan.js.map +1 -0
- package/dist/src/styles/plan/resolve.d.ts +137 -0
- package/dist/src/styles/plan/resolve.d.ts.map +1 -0
- package/dist/src/styles/plan/resolve.js +587 -0
- package/dist/src/styles/plan/resolve.js.map +1 -0
- package/dist/src/styles/types.d.ts +702 -0
- package/dist/src/styles/types.d.ts.map +1 -0
- package/dist/src/styles/types.js +10 -0
- package/dist/src/styles/types.js.map +1 -0
- package/dist/src/styles/vocabulary.d.ts +41 -0
- package/dist/src/styles/vocabulary.d.ts.map +1 -0
- package/dist/src/styles/vocabulary.js +140 -0
- package/dist/src/styles/vocabulary.js.map +1 -0
- package/dist/src/types.d.ts +64 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/styles.d.ts +1 -0
- package/dist/styles.js +322 -0
- package/dist/styles.js.map +1 -0
- package/dist/xgmml.js +5 -4
- package/dist/xgmml.js.map +1 -1
- package/package.json +13 -2
- package/src/common/codes.ts +7 -0
- package/src/common/escape.ts +5 -2
- package/src/common/export.ts +179 -140
- package/src/common/input.ts +8 -4
- package/src/common/json-elements.ts +169 -38
- package/src/common/notes.ts +94 -0
- package/src/common/report.ts +41 -1
- package/src/common/units.ts +42 -0
- package/src/common/xml.ts +45 -5
- package/src/formats/cx/exporter.ts +95 -11
- package/src/formats/cx/importer.ts +126 -90
- package/src/formats/cx/styles.ts +304 -0
- package/src/formats/cx2/exporter.ts +234 -77
- package/src/formats/cx2/importer.ts +19 -1
- package/src/formats/cx2/styles.ts +29 -0
- package/src/formats/cys/constants.ts +3 -0
- package/src/formats/cys/exporter.ts +246 -60
- package/src/formats/cys/importer.ts +125 -9
- package/src/formats/cys/session.ts +6 -0
- package/src/formats/cys/styles.ts +254 -0
- package/src/formats/cys/tables.ts +117 -48
- package/src/formats/dot/exporter.ts +262 -126
- package/src/formats/dot/importer.ts +111 -20
- package/src/formats/dot/index.ts +1 -0
- package/src/formats/dot/positions.ts +77 -0
- package/src/formats/dot/styles.ts +1741 -0
- package/src/formats/gexf/exporter.ts +27 -11
- package/src/formats/gexf/importer.ts +308 -158
- package/src/formats/gexf/index.ts +10 -0
- package/src/formats/gexf/schema.ts +5 -0
- package/src/formats/gexf/styles.ts +719 -0
- package/src/formats/gml/exporter.ts +33 -14
- package/src/formats/gml/importer.ts +4 -0
- package/src/formats/gml/index.ts +2 -1
- package/src/formats/gml/positions.ts +52 -0
- package/src/formats/gml/styles.ts +1248 -0
- package/src/formats/gml/syntax.ts +173 -62
- package/src/formats/graphml/constants.ts +5 -0
- package/src/formats/graphml/exporter.ts +163 -71
- package/src/formats/graphml/importer.ts +119 -45
- package/src/formats/graphml/index.ts +1 -0
- package/src/formats/graphml/styles-plain.ts +236 -0
- package/src/formats/graphml/styles-yed.ts +1221 -0
- package/src/formats/graphml/styles-yfiles3.ts +573 -0
- package/src/formats/graphml/tree.ts +36 -20
- package/src/formats/graphml/yfiles.ts +89 -13
- package/src/formats/json/exporter.ts +76 -26
- package/src/formats/json/importer.ts +541 -322
- package/src/formats/json/positions.ts +50 -0
- package/src/formats/json/styles.ts +2082 -0
- package/src/formats/neo4j/exporter.ts +2 -1
- package/src/formats/pajek/exporter.ts +195 -106
- package/src/formats/pajek/importer.ts +78 -9
- package/src/formats/pajek/index.ts +2 -0
- package/src/formats/pajek/styles.ts +685 -0
- package/src/formats/pajek/syntax.ts +7 -0
- package/src/formats/xgmml/columns.ts +39 -9
- package/src/formats/xgmml/constants.ts +3 -0
- package/src/formats/xgmml/document.ts +54 -12
- package/src/formats/xgmml/emit.ts +11 -6
- package/src/formats/xgmml/exporter.ts +32 -13
- package/src/formats/xgmml/importer.ts +43 -29
- package/src/formats/xgmml/styles.ts +400 -0
- package/src/index.ts +16 -0
- package/src/positions/codes.ts +32 -0
- package/src/positions/convert.ts +123 -0
- package/src/positions/extract.ts +619 -0
- package/src/positions/index.ts +23 -0
- package/src/positions/types.ts +221 -0
- package/src/registry.ts +179 -8
- package/src/styles/annotations.ts +478 -0
- package/src/styles/budget.ts +60 -0
- package/src/styles/canon/bends.ts +84 -0
- package/src/styles/canon/color-tables.ts +386 -0
- package/src/styles/canon/color.ts +624 -0
- package/src/styles/canon/enums.ts +211 -0
- package/src/styles/canon/graphviz.ts +189 -0
- package/src/styles/canon/index.ts +13 -0
- package/src/styles/canon/number.ts +152 -0
- package/src/styles/canon/site.ts +87 -0
- package/src/styles/canon/text.ts +221 -0
- package/src/styles/codes.ts +104 -0
- package/src/styles/cyjs/cascade.ts +2670 -0
- package/src/styles/cyjs/defaults-table.ts +82 -0
- package/src/styles/cyjs/emit.ts +951 -0
- package/src/styles/cyjs/index.ts +37 -0
- package/src/styles/cyjs/live.ts +147 -0
- package/src/styles/cyjs/mappers.ts +879 -0
- package/src/styles/cyjs/selector.ts +778 -0
- package/src/styles/cyjs/stylesheet-text.ts +214 -0
- package/src/styles/cytoscape/emit.ts +1264 -0
- package/src/styles/cytoscape/index.ts +40 -0
- package/src/styles/cytoscape/lexicon.ts +656 -0
- package/src/styles/cytoscape/mappings.ts +603 -0
- package/src/styles/cytoscape/resolve.ts +521 -0
- package/src/styles/cytoscape/translate.ts +237 -0
- package/src/styles/defaults.ts +504 -0
- package/src/styles/index.ts +57 -0
- package/src/styles/internal.ts +17 -0
- package/src/styles/io/approximations.ts +47 -0
- package/src/styles/io/block.ts +1138 -0
- package/src/styles/io/generic.ts +687 -0
- package/src/styles/io/index.ts +18 -0
- package/src/styles/io/writer.ts +745 -0
- package/src/styles/notes.ts +165 -0
- package/src/styles/plan/classes.ts +166 -0
- package/src/styles/plan/continuous.ts +218 -0
- package/src/styles/plan/discrete.ts +165 -0
- package/src/styles/plan/families.ts +115 -0
- package/src/styles/plan/features.ts +234 -0
- package/src/styles/plan/index.ts +7 -0
- package/src/styles/plan/plan.ts +1129 -0
- package/src/styles/plan/resolve.ts +685 -0
- package/src/styles/types.ts +814 -0
- package/src/styles/vocabulary.ts +172 -0
- package/src/types.ts +76 -1
- package/dist/chunks/constants-fT3E8JYY.js.map +0 -1
- package/dist/chunks/escape-B62ZGM_a.js.map +0 -1
- package/dist/chunks/export-rKLeGQMo.js.map +0 -1
- package/dist/chunks/exporter-8hLNemFk.js.map +0 -1
- package/dist/chunks/exporter-BWwEuOPT.js.map +0 -1
- package/dist/chunks/exporter-RVtXVetw.js.map +0 -1
- package/dist/chunks/importer-BbNb7eNg.js.map +0 -1
- package/dist/chunks/importer-C98dpSH4.js.map +0 -1
- package/dist/chunks/importer-D794XUTe.js.map +0 -1
- package/dist/chunks/importer-Dz7tI8Sa.js.map +0 -1
- package/dist/chunks/importer-Ht7LNg8L.js.map +0 -1
- package/dist/chunks/importer-WrGRZb0N.js.map +0 -1
- package/dist/chunks/importer-xZ-3suY1.js.map +0 -1
- package/dist/chunks/json-elements-DKSqpNW1.js.map +0 -1
|
@@ -0,0 +1,676 @@
|
|
|
1
|
+
import { GraphFormatError } from "@graphty/graph-format";
|
|
2
|
+
const FETCH_CODE = "E_FETCH";
|
|
3
|
+
const MISSING_ID_CODE = "E_MISSING_ID";
|
|
4
|
+
const MISSING_ENDPOINT_CODE = "E_MISSING_ENDPOINT";
|
|
5
|
+
const DUPLICATE_NODE_CODE = "W_DUPLICATE_NODE";
|
|
6
|
+
const NO_GRAPH_CODE = "E_NO_GRAPH";
|
|
7
|
+
const MULTIPLE_GRAPHS_CODE = "W_MULTIPLE_GRAPHS";
|
|
8
|
+
const EMPTY_INPUT_CODE = "E_EMPTY_INPUT";
|
|
9
|
+
const SYNTAX_CODE = "E_SYNTAX";
|
|
10
|
+
const XML_SYNTAX_CODE = "E_XML_SYNTAX";
|
|
11
|
+
const XML_NESTING_CODE = "E_XML_NESTING";
|
|
12
|
+
const UNKNOWN_ELEMENT_CODE = "W_UNKNOWN_ELEMENT";
|
|
13
|
+
const STRAY_TEXT_CODE = "W_STRAY_TEXT";
|
|
14
|
+
const UNKNOWN_PARENT_CODE = "E_UNKNOWN_PARENT";
|
|
15
|
+
const HYPEREDGE_CODE = "E_HYPEREDGE";
|
|
16
|
+
const DUPLICATE_KEY_CODE = "E_DUPLICATE_KEY";
|
|
17
|
+
const COLUMN_RENAMED_CODE = "W_COLUMN_RENAMED";
|
|
18
|
+
const COLUMN_DROPPED_CODE = "W_COLUMN_DROPPED";
|
|
19
|
+
const ROLE_TAKEN_CODE = "W_ROLE_TAKEN";
|
|
20
|
+
const PRECISION_CODE = "W_PRECISION";
|
|
21
|
+
const ID_MERGED_CODE = "W_ID_MERGED";
|
|
22
|
+
const SINK_OPTION_CODE = "W_SINK_OPTION";
|
|
23
|
+
const OPTION_IGNORED_CODE = "W_OPTION_IGNORED";
|
|
24
|
+
const INVALID_UTF8_CODE = "E_INVALID_UTF8";
|
|
25
|
+
const INVALID_ENCODING_CODE = "E_INVALID_ENCODING";
|
|
26
|
+
const ENCODING_FALLBACK_CODE = "W_ENCODING_FALLBACK";
|
|
27
|
+
const UNKNOWN_ENCODING_CODE = "W_UNKNOWN_ENCODING";
|
|
28
|
+
const ENCODING_CONFLICT_CODE = "W_ENCODING_CONFLICT";
|
|
29
|
+
const CONTROL_CHARACTER_CODE = "W_CONTROL_CHARACTER";
|
|
30
|
+
const FOREIGN_FORMAT_CODE = "E_FOREIGN_FORMAT";
|
|
31
|
+
const ISSUES_SUPPRESSED_CODE = "W_ISSUES_SUPPRESSED";
|
|
32
|
+
const UNKNOWN_XML_ATTRIBUTE_CODE = "W_UNKNOWN_XML_ATTRIBUTE";
|
|
33
|
+
const DIRECTION_REFUSED_CODE = "W_DIRECTION_REFUSED";
|
|
34
|
+
const DIRECTION_FORCED_CODE = "W_DIRECTION_FORCED";
|
|
35
|
+
const MIXED_DIRECTION_CODE = "E_MIXED_DIRECTION";
|
|
36
|
+
const COUNT_HINT_CODE = "W_COUNT_HINT";
|
|
37
|
+
const UNKNOWN_ATTR_TYPE_CODE = "W_UNKNOWN_ATTR_TYPE";
|
|
38
|
+
const BAD_DEFAULT_CODE = "W_BAD_DEFAULT";
|
|
39
|
+
const BAD_OPTIONS_CODE = "W_BAD_OPTIONS";
|
|
40
|
+
const DUPLICATE_EDGE_ID_CODE = "E_DUPLICATE_EDGE_ID";
|
|
41
|
+
const BAD_VALUE_CODE = "E_BAD_VALUE";
|
|
42
|
+
const WIDENED_CODE = "W_WIDENED";
|
|
43
|
+
const DANGLING_REFERENCE_CODE = "W_DANGLING_REFERENCE";
|
|
44
|
+
const DUPLICATE_ATTRIBUTE_CODE = "W_DUPLICATE_ATTRIBUTE";
|
|
45
|
+
const PARENT_CYCLE_CODE = "E_PARENT_CYCLE";
|
|
46
|
+
const EQUATION_AS_TEXT_CODE = "W_EQUATION_AS_TEXT";
|
|
47
|
+
const STYLES_NOT_IMPORTED_CODE = "W_STYLES_NOT_IMPORTED";
|
|
48
|
+
const BAD_ASPECT_BLOCK_CODE = "E_BAD_ASPECT_BLOCK";
|
|
49
|
+
const MULTI_ASPECT_FRAGMENT_CODE = "W_MULTI_ASPECT_FRAGMENT";
|
|
50
|
+
const SINGLE_OBJECT_ASPECT_CODE = "W_SINGLE_OBJECT_ASPECT";
|
|
51
|
+
const JSON_NONSTANDARD_NUMBER_CODE = "W_JSON_NONSTANDARD_NUMBER";
|
|
52
|
+
const ASPECT_ORDER_CODE = "W_ASPECT_ORDER";
|
|
53
|
+
const COUNT_MISMATCH_CODE = "W_COUNT_MISMATCH";
|
|
54
|
+
const STATUS_FAILED_CODE = "E_STATUS_FAILED";
|
|
55
|
+
const STATUS_WARNING_CODE = "W_STATUS_WARNING";
|
|
56
|
+
const TOO_LARGE_CODE = "E_TOO_LARGE";
|
|
57
|
+
const COLUMN_TYPE_CODE = "E_COLUMN_TYPE";
|
|
58
|
+
const GRAPH_NOT_FOUND_CODE = "E_GRAPH_NOT_FOUND";
|
|
59
|
+
const AMBIGUOUS_GRAPH_NAME_CODE = "E_AMBIGUOUS_GRAPH_NAME";
|
|
60
|
+
const DUPLICATE_EDGE_CODE = "E_DUPLICATE_EDGE";
|
|
61
|
+
const SELF_LOOP_CODE = "E_SELF_LOOP";
|
|
62
|
+
const EDGES_MERGED_CODE = "W_EDGES_MERGED";
|
|
63
|
+
const SELF_LOOPS_DROPPED_CODE = "W_SELF_LOOPS_DROPPED";
|
|
64
|
+
const UNKNOWN_OPTION_CODE = "W_UNKNOWN_OPTION";
|
|
65
|
+
const BAD_LINE_CODE = "E_BAD_LINE";
|
|
66
|
+
const WEIGHT_NOT_FOUND_CODE = "W_WEIGHT_NOT_FOUND";
|
|
67
|
+
const ROLE_DROPPED_CODE = "W_ROLE_DROPPED";
|
|
68
|
+
const PARENTS_DROPPED_CODE = "W_PARENTS_DROPPED";
|
|
69
|
+
const TEMPORAL_DROPPED_CODE = "W_TEMPORAL_DROPPED";
|
|
70
|
+
const MUTUAL_EXPANDED_CODE = "W_MUTUAL_EXPANDED";
|
|
71
|
+
const MUTUAL_AS_UNDIRECTED_CODE = "W_MUTUAL_AS_UNDIRECTED";
|
|
72
|
+
const ID_TEXT_TYPE_CODE = "W_ID_TEXT_TYPE";
|
|
73
|
+
const ID_TEXT_COLLISION_CODE = "E_ID_TEXT_COLLISION";
|
|
74
|
+
const TEMPORAL_TEXT_DROPPED_CODE = "W_TEMPORAL_TEXT_DROPPED";
|
|
75
|
+
const WEIGHTS_DROPPED_CODE = "W_WEIGHTS_DROPPED";
|
|
76
|
+
const WEIGHT_KEY_CLASH_CODE = "W_WEIGHT_KEY_CLASH";
|
|
77
|
+
const ROLE_ASSUMED_CODE = "W_ROLE_ASSUMED";
|
|
78
|
+
const COLUMN_RENAMED_LOSS_CODE = "W_COLUMN_NAME_CHANGED";
|
|
79
|
+
const EMPTY_COLUMN_DROPPED_CODE = "W_EMPTY_COLUMN_DROPPED";
|
|
80
|
+
const STORAGE_CLASS_CODE = "W_STORAGE_CLASS_CHANGED";
|
|
81
|
+
const INTEGRAL_F64_CODE = "W_INTEGRAL_F64_AS_I32";
|
|
82
|
+
const TEXT_INFERRED_CODE = "W_TEXT_INFERRED";
|
|
83
|
+
const XML_ILLEGAL_CHAR_CODE = "E_XML_ILLEGAL_CHAR";
|
|
84
|
+
const COLUMN_AS_PROPERTY_VALUE_CODE = "W_COLUMN_AS_PROPERTY_VALUE";
|
|
85
|
+
const RELATION_ASSUMED_CODE = "W_RELATION_ASSUMED";
|
|
86
|
+
const TYPEDEF_NODES_CODE = "W_TYPEDEF_NODES";
|
|
87
|
+
const GRAPH_COLUMN_AS_METADATA_CODE = "W_GRAPH_COLUMN_AS_METADATA";
|
|
88
|
+
const DIRECTION_DROPPED_CODE = "W_DIRECTION_DROPPED";
|
|
89
|
+
const NONFINITE_AS_NULL_CODE = "W_NONFINITE_AS_NULL";
|
|
90
|
+
const NODE_ORDER_CODE = "W_NODE_ORDER";
|
|
91
|
+
const OPTIONS_GAINED_CODE = "W_OPTIONS_GAINED";
|
|
92
|
+
const ELEMENT_ISSUE = Object.freeze({
|
|
93
|
+
/** A node id of a type the graph cannot hold (an empty id, a non-finite number, an object). The node is skipped. */
|
|
94
|
+
INVALID_ID: "E_INVALID_ID",
|
|
95
|
+
/** An edge names a node the file never declares, while `addMissingNodes` is false. The edge is skipped. */
|
|
96
|
+
UNKNOWN_NODE: "E_UNKNOWN_NODE",
|
|
97
|
+
/**
|
|
98
|
+
* An edge weight that is not a number (text such as "2,5" with a decimal comma, NaN, a boolean). The whole edge is
|
|
99
|
+
* skipped, not only its weight.
|
|
100
|
+
*/
|
|
101
|
+
INVALID_WEIGHT: "E_INVALID_WEIGHT",
|
|
102
|
+
/** A second edge between the same two nodes, while `duplicateEdges` is "error". The edge is skipped. */
|
|
103
|
+
DUPLICATE_EDGE: DUPLICATE_EDGE_CODE,
|
|
104
|
+
/** An edge from a node to itself, while `selfLoops` is "error". The edge is skipped. */
|
|
105
|
+
SELF_LOOP: SELF_LOOP_CODE,
|
|
106
|
+
/** An edge id declared twice. The second edge is skipped. */
|
|
107
|
+
DUPLICATE_EDGE_ID: DUPLICATE_EDGE_ID_CODE
|
|
108
|
+
});
|
|
109
|
+
const INPUT_ISSUE = Object.freeze({
|
|
110
|
+
/** The input is empty or holds only whitespace. The import stops. */
|
|
111
|
+
EMPTY_INPUT: EMPTY_INPUT_CODE,
|
|
112
|
+
/** The input, or one of its lines, is longer than a JavaScript string can hold. The import stops. */
|
|
113
|
+
TOO_LARGE: TOO_LARGE_CODE,
|
|
114
|
+
/** A byte order mark, the encoding option and the declared encoding disagree. */
|
|
115
|
+
ENCODING_CONFLICT: ENCODING_CONFLICT_CODE,
|
|
116
|
+
/** A control character or a stray U+FEFF in the text, or an ignored trailing Ctrl-Z. */
|
|
117
|
+
CONTROL_CHARACTER: CONTROL_CHARACTER_CODE,
|
|
118
|
+
/** The input is an HTML page, a PDF, compressed or zip data, or an image. The import stops. */
|
|
119
|
+
FOREIGN_FORMAT: FOREIGN_FORMAT_CODE,
|
|
120
|
+
/** Warnings of one code beyond the number a report keeps, counted in one warning. */
|
|
121
|
+
ISSUES_SUPPRESSED: ISSUES_SUPPRESSED_CODE
|
|
122
|
+
});
|
|
123
|
+
function plural(n) {
|
|
124
|
+
return n === 1 ? "" : "s";
|
|
125
|
+
}
|
|
126
|
+
function agree(n, one, many) {
|
|
127
|
+
return n === 1 ? one : many;
|
|
128
|
+
}
|
|
129
|
+
function elementCount(nodes, edges) {
|
|
130
|
+
const parts = [];
|
|
131
|
+
if (nodes > 0 || edges === 0) {
|
|
132
|
+
parts.push(`${nodes} node${plural(nodes)}`);
|
|
133
|
+
}
|
|
134
|
+
if (edges > 0) {
|
|
135
|
+
parts.push(`${edges} edge${plural(edges)}`);
|
|
136
|
+
}
|
|
137
|
+
return parts.join(" and ");
|
|
138
|
+
}
|
|
139
|
+
function withArticle(word) {
|
|
140
|
+
return `${/^[aeiou]/i.test(word) ? "an" : "a"} ${word}`;
|
|
141
|
+
}
|
|
142
|
+
class ImportError extends GraphFormatError {
|
|
143
|
+
/**
|
|
144
|
+
* Create an ImportError.
|
|
145
|
+
* @param message - a plain-ASCII human-readable message
|
|
146
|
+
* @param report - the partial report
|
|
147
|
+
* @param details - optional machine-readable context; its `code` names the issue that stopped the import
|
|
148
|
+
*/
|
|
149
|
+
constructor(message, report, details) {
|
|
150
|
+
super("E_IMPORT", message, details);
|
|
151
|
+
this.name = "ImportError";
|
|
152
|
+
Object.defineProperty(this, "report", { value: report, enumerable: false });
|
|
153
|
+
this.issue = stoppingIssue(report.issues, details?.code);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function stoppingIssue(issues, code) {
|
|
157
|
+
let lastError = null;
|
|
158
|
+
for (let i = issues.length - 1; i >= 0; i--) {
|
|
159
|
+
if (issues[i].code === code) {
|
|
160
|
+
return issues[i];
|
|
161
|
+
}
|
|
162
|
+
if (lastError === null && issues[i].severity === "error") {
|
|
163
|
+
lastError = issues[i];
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return lastError;
|
|
167
|
+
}
|
|
168
|
+
const MAX_WARNINGS_PER_CODE = 1e3;
|
|
169
|
+
const KEPT_FOR_STYLES = /* @__PURE__ */ new WeakMap();
|
|
170
|
+
const NOTHING_KEPT = /* @__PURE__ */ Symbol("nothing kept");
|
|
171
|
+
function keptForStyles(report) {
|
|
172
|
+
return KEPT_FOR_STYLES.get(report);
|
|
173
|
+
}
|
|
174
|
+
const CATEGORY_BY_CODE = {
|
|
175
|
+
E_UNKNOWN_NODE: "missing-value",
|
|
176
|
+
E_UNKNOWN_COLUMN: "missing-value",
|
|
177
|
+
E_DIRECTED: "coercion",
|
|
178
|
+
E_TOO_LARGE: "unsupported",
|
|
179
|
+
E_UNSUPPORTED: "unsupported",
|
|
180
|
+
E_GPU_INELIGIBLE: "unsupported"
|
|
181
|
+
};
|
|
182
|
+
const PARSE_ERROR_CODE = "E_PARSE";
|
|
183
|
+
function withLine(message, where) {
|
|
184
|
+
const line = where?.line;
|
|
185
|
+
return line === void 0 || line === null || message.includes(`line ${line}`) ? message : `line ${line}: ${message}`;
|
|
186
|
+
}
|
|
187
|
+
class ImportReportBuilder {
|
|
188
|
+
/**
|
|
189
|
+
* Create a builder for one import call.
|
|
190
|
+
* @param format - the importer's format name
|
|
191
|
+
* @param errorLimit - errors tolerated before the import aborts; Infinity for no limit
|
|
192
|
+
*/
|
|
193
|
+
constructor(format, errorLimit) {
|
|
194
|
+
this.counts = { nodes: 0, edges: 0, skippedNodes: 0, skippedEdges: 0, expandedMixed: 0 };
|
|
195
|
+
this.issueList = [];
|
|
196
|
+
this.lossList = [];
|
|
197
|
+
this.onceCodes = /* @__PURE__ */ new Set();
|
|
198
|
+
this.warningsByCode = /* @__PURE__ */ new Map();
|
|
199
|
+
this.errors = 0;
|
|
200
|
+
this.warnings = 0;
|
|
201
|
+
this.truncatedFlag = false;
|
|
202
|
+
this.kept = NOTHING_KEPT;
|
|
203
|
+
this.format = format;
|
|
204
|
+
this.errorLimit = errorLimit;
|
|
205
|
+
this.startedAt = now();
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Issues recorded so far, in order.
|
|
209
|
+
* @returns the live list (not copied; finish() copies)
|
|
210
|
+
*/
|
|
211
|
+
get issues() {
|
|
212
|
+
return this.issueList;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Issues with severity "error".
|
|
216
|
+
* @returns the count
|
|
217
|
+
*/
|
|
218
|
+
get errorCount() {
|
|
219
|
+
return this.errors;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Issues with severity "warning".
|
|
223
|
+
* @returns the count
|
|
224
|
+
*/
|
|
225
|
+
get warningCount() {
|
|
226
|
+
return this.warnings;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Whether the error limit was exceeded.
|
|
230
|
+
* @returns true once an error beyond the limit was recorded
|
|
231
|
+
*/
|
|
232
|
+
get truncated() {
|
|
233
|
+
return this.truncatedFlag;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Loss notes recorded so far.
|
|
237
|
+
* @returns the live list
|
|
238
|
+
*/
|
|
239
|
+
get lossy() {
|
|
240
|
+
return this.lossList;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Record an error. When the count goes beyond the error limit the report is marked truncated
|
|
244
|
+
* and an ImportError carrying it is thrown; the importer does not catch that.
|
|
245
|
+
* @param category - the issue category
|
|
246
|
+
* @param code - a stable code such as "E_UNKNOWN_NODE"
|
|
247
|
+
* @param message - a plain-ASCII message
|
|
248
|
+
* @param where - the line and element, when known
|
|
249
|
+
* @returns the recorded issue
|
|
250
|
+
*/
|
|
251
|
+
error(category, code, message, where) {
|
|
252
|
+
const issue = makeIssue(category, "error", code, message, where);
|
|
253
|
+
this.issueList.push(issue);
|
|
254
|
+
this.errors++;
|
|
255
|
+
if (this.errors > this.errorLimit) {
|
|
256
|
+
this.truncatedFlag = true;
|
|
257
|
+
throw this.abort(`error limit of ${this.errorLimit} exceeded: ${withLine(message, where)}`, {
|
|
258
|
+
code,
|
|
259
|
+
limit: this.errorLimit
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
return issue;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Record a warning; warnings never count toward the limit. Beyond MAX_WARNINGS_PER_CODE
|
|
266
|
+
* warnings of one code the warning is counted, not kept: finish() adds one W_ISSUES_SUPPRESSED
|
|
267
|
+
* warning per such code with the number dropped.
|
|
268
|
+
* @param category - the issue category
|
|
269
|
+
* @param code - a stable code such as "W_WIDENED"
|
|
270
|
+
* @param message - a plain-ASCII message
|
|
271
|
+
* @param where - the line and element, when known
|
|
272
|
+
* @returns the recorded issue
|
|
273
|
+
*/
|
|
274
|
+
warning(category, code, message, where) {
|
|
275
|
+
const issue = makeIssue(category, "warning", code, message, where);
|
|
276
|
+
const seen = (this.warningsByCode.get(code) ?? 0) + 1;
|
|
277
|
+
this.warningsByCode.set(code, seen);
|
|
278
|
+
if (seen <= MAX_WARNINGS_PER_CODE) {
|
|
279
|
+
this.issueList.push(issue);
|
|
280
|
+
this.warnings++;
|
|
281
|
+
}
|
|
282
|
+
return issue;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Record a warning the first time its key is seen and ignore later repeats, for conditions
|
|
286
|
+
* that would otherwise produce one warning per row.
|
|
287
|
+
* @param category - the issue category
|
|
288
|
+
* @param code - the stable code
|
|
289
|
+
* @param message - a plain-ASCII message
|
|
290
|
+
* @param where - the line and element, when known
|
|
291
|
+
* @param key - what repeats are deduplicated on; the code itself by default (pass `code:column`
|
|
292
|
+
* to warn once per column)
|
|
293
|
+
* @returns the recorded issue, or null when the key was already recorded
|
|
294
|
+
*/
|
|
295
|
+
warnOnce(category, code, message, where, key = code) {
|
|
296
|
+
if (this.onceCodes.has(key)) {
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
299
|
+
this.onceCodes.add(key);
|
|
300
|
+
return this.warning(category, code, message, where);
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Record something the importer could not represent.
|
|
304
|
+
* @param code - a stable code
|
|
305
|
+
* @param message - a plain-ASCII message
|
|
306
|
+
* @param column - the affected column, or null
|
|
307
|
+
* @param count - the affected count, or null
|
|
308
|
+
* @returns the recorded note
|
|
309
|
+
*/
|
|
310
|
+
loss(code, message, column = null, count = null) {
|
|
311
|
+
const note = Object.freeze({ code, message, column, count });
|
|
312
|
+
this.lossList.push(note);
|
|
313
|
+
return note;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* The per-element catch: record a thrown GraphFormatError as an error
|
|
317
|
+
* issue with its code and the category the code implies. Anything else is re-thrown unchanged:
|
|
318
|
+
* an ImportError (the import already aborted), an abort reason, and any other thrown value (a
|
|
319
|
+
* TypeError or RangeError is a programming error in the importer or the sink, never a defect of
|
|
320
|
+
* the input, so it must surface as an exception rather than as an issue blamed on the file).
|
|
321
|
+
* @param err - the thrown value
|
|
322
|
+
* @param where - the line and element, when known
|
|
323
|
+
* @returns the recorded issue
|
|
324
|
+
*/
|
|
325
|
+
recordError(err, where) {
|
|
326
|
+
if (err instanceof GraphFormatError && !(err instanceof ImportError)) {
|
|
327
|
+
const category = CATEGORY_BY_CODE[err.code] ?? "validation-error";
|
|
328
|
+
if (err.code === "E_TOO_LARGE") {
|
|
329
|
+
return this.failWith(category, err.code, err.message, where);
|
|
330
|
+
}
|
|
331
|
+
return this.error(category, err.code, err.message, where);
|
|
332
|
+
}
|
|
333
|
+
throw err;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Keep style data that is not per element (a stylesheet, a groups object, a legend, the file's default styles)
|
|
337
|
+
* for this import's `styles()`: graph-io passes it back as `context.kept` when styles are requested. Kept per
|
|
338
|
+
* report, never on the importer object, so imports running at once each get their own. A later call replaces
|
|
339
|
+
* the value.
|
|
340
|
+
* @param value - anything the importer's `styles()` needs
|
|
341
|
+
* @returns this builder
|
|
342
|
+
*/
|
|
343
|
+
keepForStyles(value) {
|
|
344
|
+
this.kept = value;
|
|
345
|
+
return this;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* A builder that starts from everything this one recorded so far: issues, counts, loss notes,
|
|
349
|
+
* the warnOnce keys, the error and warning counts and the truncation flag. For an importer that
|
|
350
|
+
* reads its input once and emits several graphs, each with its own report.
|
|
351
|
+
* @returns the copy; later records to either builder do not reach the other
|
|
352
|
+
*/
|
|
353
|
+
fork() {
|
|
354
|
+
const copy = new ImportReportBuilder(this.format, this.errorLimit);
|
|
355
|
+
Object.assign(copy.counts, this.counts);
|
|
356
|
+
copy.issueList.push(...this.issueList);
|
|
357
|
+
copy.lossList.push(...this.lossList);
|
|
358
|
+
for (const key of this.onceCodes) {
|
|
359
|
+
copy.onceCodes.add(key);
|
|
360
|
+
}
|
|
361
|
+
for (const [code, count] of this.warningsByCode) {
|
|
362
|
+
copy.warningsByCode.set(code, count);
|
|
363
|
+
}
|
|
364
|
+
copy.errors = this.errors;
|
|
365
|
+
copy.warnings = this.warnings;
|
|
366
|
+
copy.truncatedFlag = this.truncatedFlag;
|
|
367
|
+
copy.kept = this.kept;
|
|
368
|
+
return copy;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Build the ImportError that aborts the import, carrying the report so far. The caller throws
|
|
372
|
+
* it; this method only constructs it so it can be used in expression position.
|
|
373
|
+
* @param message - a plain-ASCII message
|
|
374
|
+
* @param details - optional machine-readable context
|
|
375
|
+
* @returns the error to throw
|
|
376
|
+
*/
|
|
377
|
+
abort(message, details) {
|
|
378
|
+
return new ImportError(message, this.finish(), details);
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Record a fatal parse error and abort: the issue is recorded (even beyond the error limit)
|
|
382
|
+
* and an ImportError carrying the report is thrown.
|
|
383
|
+
* @param code - a stable code such as "E_INVALID_UTF8"
|
|
384
|
+
* @param message - a plain-ASCII message
|
|
385
|
+
* @param where - the line and element, when known
|
|
386
|
+
* @param details - optional machine-readable context for the ImportError
|
|
387
|
+
*/
|
|
388
|
+
fail(code, message, where, details) {
|
|
389
|
+
this.failWith("parse-error", code, message, where, details);
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Record a fatal error of any category and abort, as fail() does for a parse error: a size
|
|
393
|
+
* limit (E_TOO_LARGE, category "unsupported") stops an import without being a defect of the
|
|
394
|
+
* syntax. A fatal error is not the error limit: `truncated` stays as it was.
|
|
395
|
+
* @param category - the issue category
|
|
396
|
+
* @param code - a stable code
|
|
397
|
+
* @param message - a plain-ASCII message
|
|
398
|
+
* @param where - the line and element, when known
|
|
399
|
+
* @param details - optional machine-readable context for the ImportError
|
|
400
|
+
*/
|
|
401
|
+
failWith(category, code, message, where, details) {
|
|
402
|
+
this.issueList.push(makeIssue(category, "error", code, message, where));
|
|
403
|
+
this.errors++;
|
|
404
|
+
throw this.abort(withLine(message, where), { code, ...details });
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Add a finished report to this one: its issues after the ones recorded so far, its counts, its
|
|
408
|
+
* loss notes and its truncated flag. Use it when an importer hands part of the work to another
|
|
409
|
+
* importer (for example, a wrapper around the CSV importer) and returns one report for both. The issues
|
|
410
|
+
* keep their codes; errors added this way do not count toward this report's error limit, since
|
|
411
|
+
* the other importer applied its own.
|
|
412
|
+
* @param report - the report the other importer returned
|
|
413
|
+
* @returns this builder
|
|
414
|
+
* @example
|
|
415
|
+
* ```ts
|
|
416
|
+
* const report = new ImportReportBuilder("netscope", opts.errorLimit);
|
|
417
|
+
* const text = await readText(input, report, opts);
|
|
418
|
+
* report.include(await csvImporter.import(text, sink, options));
|
|
419
|
+
* return report.finish();
|
|
420
|
+
* ```
|
|
421
|
+
*/
|
|
422
|
+
include(report) {
|
|
423
|
+
for (const issue of report.issues) {
|
|
424
|
+
this.issueList.push(issue);
|
|
425
|
+
if (issue.severity === "error") {
|
|
426
|
+
this.errors++;
|
|
427
|
+
} else {
|
|
428
|
+
this.warnings++;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
const { counts } = report;
|
|
432
|
+
this.counts.nodes += counts.nodes;
|
|
433
|
+
this.counts.edges += counts.edges;
|
|
434
|
+
this.counts.skippedNodes += counts.skippedNodes;
|
|
435
|
+
this.counts.skippedEdges += counts.skippedEdges;
|
|
436
|
+
this.counts.expandedMixed += counts.expandedMixed;
|
|
437
|
+
this.lossList.push(...report.lossy);
|
|
438
|
+
this.truncatedFlag ||= report.truncated;
|
|
439
|
+
if (this.kept === NOTHING_KEPT && KEPT_FOR_STYLES.has(report)) {
|
|
440
|
+
this.kept = KEPT_FOR_STYLES.get(report);
|
|
441
|
+
}
|
|
442
|
+
return this;
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* The report as it stands: a frozen snapshot with the parse duration so far. Can be called more
|
|
446
|
+
* than once; each call reflects everything recorded up to that point.
|
|
447
|
+
* @returns the report
|
|
448
|
+
*/
|
|
449
|
+
finish() {
|
|
450
|
+
const { nodes, edges, skippedNodes, skippedEdges, expandedMixed } = this.counts;
|
|
451
|
+
const suppressed = [];
|
|
452
|
+
for (const [code, seen] of this.warningsByCode) {
|
|
453
|
+
if (seen > MAX_WARNINGS_PER_CODE) {
|
|
454
|
+
const more = seen - MAX_WARNINGS_PER_CODE;
|
|
455
|
+
suppressed.push(
|
|
456
|
+
makeIssue(
|
|
457
|
+
"unsupported",
|
|
458
|
+
"warning",
|
|
459
|
+
ISSUES_SUPPRESSED_CODE,
|
|
460
|
+
`${more} more ${code} warning${plural(more)} ${agree(more, "was", "were")} not kept (the report keeps the first ${MAX_WARNINGS_PER_CODE})`,
|
|
461
|
+
{ element: code }
|
|
462
|
+
)
|
|
463
|
+
);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
const report = Object.freeze({
|
|
467
|
+
format: this.format,
|
|
468
|
+
counts: Object.freeze({ nodes, edges, skippedNodes, skippedEdges, expandedMixed }),
|
|
469
|
+
issues: Object.freeze([...this.issueList, ...suppressed]),
|
|
470
|
+
errorCount: this.errors,
|
|
471
|
+
warningCount: this.warnings + suppressed.length,
|
|
472
|
+
truncated: this.truncatedFlag,
|
|
473
|
+
lossy: Object.freeze([...this.lossList]),
|
|
474
|
+
durationMs: now() - this.startedAt
|
|
475
|
+
});
|
|
476
|
+
if (this.kept !== NOTHING_KEPT) {
|
|
477
|
+
KEPT_FOR_STYLES.set(report, this.kept);
|
|
478
|
+
}
|
|
479
|
+
return report;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
function makeIssue(category, severity, code, message, where) {
|
|
483
|
+
return Object.freeze({
|
|
484
|
+
category,
|
|
485
|
+
severity,
|
|
486
|
+
code,
|
|
487
|
+
message,
|
|
488
|
+
line: where?.line ?? null,
|
|
489
|
+
element: where?.element ?? null
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
function isAbortError(err) {
|
|
493
|
+
if (typeof err !== "object" || err === null) {
|
|
494
|
+
return false;
|
|
495
|
+
}
|
|
496
|
+
const { name } = err;
|
|
497
|
+
return name === "AbortError" || name === "TimeoutError";
|
|
498
|
+
}
|
|
499
|
+
function messageOf(err) {
|
|
500
|
+
if (err instanceof Error) {
|
|
501
|
+
return err.message;
|
|
502
|
+
}
|
|
503
|
+
if (typeof err === "string") {
|
|
504
|
+
return err;
|
|
505
|
+
}
|
|
506
|
+
return `non-error thrown (${typeof err})`;
|
|
507
|
+
}
|
|
508
|
+
function now() {
|
|
509
|
+
return typeof performance === "object" ? performance.now() : Date.now();
|
|
510
|
+
}
|
|
511
|
+
function formatF32(value) {
|
|
512
|
+
if (!Number.isFinite(value)) {
|
|
513
|
+
return String(value);
|
|
514
|
+
}
|
|
515
|
+
if (value === 0) {
|
|
516
|
+
return Object.is(value, -0) ? "-0" : "0";
|
|
517
|
+
}
|
|
518
|
+
for (let digits = 1; digits <= 9; digits++) {
|
|
519
|
+
const text = value.toPrecision(digits);
|
|
520
|
+
if (Math.fround(Number(text)) === value) {
|
|
521
|
+
return String(Number(text));
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
return String(value);
|
|
525
|
+
}
|
|
526
|
+
function formatF64(value) {
|
|
527
|
+
return Object.is(value, -0) ? "-0" : String(value);
|
|
528
|
+
}
|
|
529
|
+
function idText(id) {
|
|
530
|
+
return typeof id === "number" ? formatF64(id) : id;
|
|
531
|
+
}
|
|
532
|
+
function formatDecimal(value, dtype = "f64") {
|
|
533
|
+
if (!Number.isFinite(value)) {
|
|
534
|
+
return String(value);
|
|
535
|
+
}
|
|
536
|
+
if (Object.is(value, -0)) {
|
|
537
|
+
return "-0.0";
|
|
538
|
+
}
|
|
539
|
+
const text = formatNumber(value, dtype);
|
|
540
|
+
return text.includes(".") || text.includes("e") ? text : `${text}.0`;
|
|
541
|
+
}
|
|
542
|
+
function formatGmlReal(value, dtype = "f64") {
|
|
543
|
+
if (Number.isNaN(value)) {
|
|
544
|
+
return "NAN";
|
|
545
|
+
}
|
|
546
|
+
if (!Number.isFinite(value)) {
|
|
547
|
+
return value > 0 ? "+INF" : "-INF";
|
|
548
|
+
}
|
|
549
|
+
const text = formatDecimal(value, dtype);
|
|
550
|
+
if (text.includes(".")) {
|
|
551
|
+
return text;
|
|
552
|
+
}
|
|
553
|
+
const e = text.indexOf("e");
|
|
554
|
+
return `${text.slice(0, e)}.0${text.slice(e)}`;
|
|
555
|
+
}
|
|
556
|
+
function formatInteger(value) {
|
|
557
|
+
if (Number.isSafeInteger(value) || !Number.isFinite(value)) {
|
|
558
|
+
return String(value);
|
|
559
|
+
}
|
|
560
|
+
return BigInt(value).toString();
|
|
561
|
+
}
|
|
562
|
+
function formatNumber(value, dtype) {
|
|
563
|
+
return dtype === "f32" ? formatF32(value) : formatF64(value);
|
|
564
|
+
}
|
|
565
|
+
export {
|
|
566
|
+
formatF32 as $,
|
|
567
|
+
ROLE_DROPPED_CODE as A,
|
|
568
|
+
BAD_DEFAULT_CODE as B,
|
|
569
|
+
COLUMN_RENAMED_CODE as C,
|
|
570
|
+
DIRECTION_FORCED_CODE as D,
|
|
571
|
+
EMPTY_INPUT_CODE as E,
|
|
572
|
+
PARENTS_DROPPED_CODE as F,
|
|
573
|
+
MUTUAL_AS_UNDIRECTED_CODE as G,
|
|
574
|
+
HYPEREDGE_CODE as H,
|
|
575
|
+
ID_MERGED_CODE as I,
|
|
576
|
+
BAD_ASPECT_BLOCK_CODE as J,
|
|
577
|
+
MULTI_ASPECT_FRAGMENT_CODE as K,
|
|
578
|
+
ASPECT_ORDER_CODE as L,
|
|
579
|
+
MIXED_DIRECTION_CODE as M,
|
|
580
|
+
NO_GRAPH_CODE as N,
|
|
581
|
+
OPTION_IGNORED_CODE as O,
|
|
582
|
+
PRECISION_CODE as P,
|
|
583
|
+
STATUS_FAILED_CODE as Q,
|
|
584
|
+
ROLE_TAKEN_CODE as R,
|
|
585
|
+
SINK_OPTION_CODE as S,
|
|
586
|
+
STATUS_WARNING_CODE as T,
|
|
587
|
+
UNKNOWN_ATTR_TYPE_CODE as U,
|
|
588
|
+
agree as V,
|
|
589
|
+
JSON_NONSTANDARD_NUMBER_CODE as W,
|
|
590
|
+
XML_NESTING_CODE as X,
|
|
591
|
+
BAD_VALUE_CODE as Y,
|
|
592
|
+
ImportReportBuilder as Z,
|
|
593
|
+
idText as _,
|
|
594
|
+
DIRECTION_REFUSED_CODE as a,
|
|
595
|
+
formatF64 as a0,
|
|
596
|
+
TOO_LARGE_CODE as a1,
|
|
597
|
+
AMBIGUOUS_GRAPH_NAME_CODE as a2,
|
|
598
|
+
GRAPH_NOT_FOUND_CODE as a3,
|
|
599
|
+
SINGLE_OBJECT_ASPECT_CODE as a4,
|
|
600
|
+
STYLES_NOT_IMPORTED_CODE as a5,
|
|
601
|
+
PARENT_CYCLE_CODE as a6,
|
|
602
|
+
WIDENED_CODE as a7,
|
|
603
|
+
SYNTAX_CODE as a8,
|
|
604
|
+
COLUMN_AS_PROPERTY_VALUE_CODE as a9,
|
|
605
|
+
ID_TEXT_COLLISION_CODE as aA,
|
|
606
|
+
INTEGRAL_F64_CODE as aB,
|
|
607
|
+
ISSUES_SUPPRESSED_CODE as aC,
|
|
608
|
+
MUTUAL_EXPANDED_CODE as aD,
|
|
609
|
+
NONFINITE_AS_NULL_CODE as aE,
|
|
610
|
+
OPTIONS_GAINED_CODE as aF,
|
|
611
|
+
PARSE_ERROR_CODE as aG,
|
|
612
|
+
SELF_LOOP_CODE as aH,
|
|
613
|
+
STORAGE_CLASS_CODE as aI,
|
|
614
|
+
TEMPORAL_DROPPED_CODE as aJ,
|
|
615
|
+
TEMPORAL_TEXT_DROPPED_CODE as aK,
|
|
616
|
+
TEXT_INFERRED_CODE as aL,
|
|
617
|
+
WEIGHTS_DROPPED_CODE as aM,
|
|
618
|
+
WEIGHT_KEY_CLASH_CODE as aN,
|
|
619
|
+
formatDecimal as aO,
|
|
620
|
+
formatGmlReal as aP,
|
|
621
|
+
keptForStyles as aQ,
|
|
622
|
+
withArticle as aR,
|
|
623
|
+
elementCount as aS,
|
|
624
|
+
ROLE_ASSUMED_CODE as aa,
|
|
625
|
+
formatNumber as ab,
|
|
626
|
+
XML_ILLEGAL_CHAR_CODE as ac,
|
|
627
|
+
formatInteger as ad,
|
|
628
|
+
BAD_OPTIONS_CODE as ae,
|
|
629
|
+
NODE_ORDER_CODE as af,
|
|
630
|
+
GRAPH_COLUMN_AS_METADATA_CODE as ag,
|
|
631
|
+
TYPEDEF_NODES_CODE as ah,
|
|
632
|
+
RELATION_ASSUMED_CODE as ai,
|
|
633
|
+
isAbortError as aj,
|
|
634
|
+
BAD_LINE_CODE as ak,
|
|
635
|
+
messageOf as al,
|
|
636
|
+
UNKNOWN_OPTION_CODE as am,
|
|
637
|
+
ImportError as an,
|
|
638
|
+
FETCH_CODE as ao,
|
|
639
|
+
EDGES_MERGED_CODE as ap,
|
|
640
|
+
SELF_LOOPS_DROPPED_CODE as aq,
|
|
641
|
+
WEIGHT_NOT_FOUND_CODE as ar,
|
|
642
|
+
COLUMN_DROPPED_CODE as as,
|
|
643
|
+
COLUMN_RENAMED_LOSS_CODE as at,
|
|
644
|
+
CONTROL_CHARACTER_CODE as au,
|
|
645
|
+
DIRECTION_DROPPED_CODE as av,
|
|
646
|
+
DUPLICATE_EDGE_CODE as aw,
|
|
647
|
+
EMPTY_COLUMN_DROPPED_CODE as ax,
|
|
648
|
+
EQUATION_AS_TEXT_CODE as ay,
|
|
649
|
+
FOREIGN_FORMAT_CODE as az,
|
|
650
|
+
STRAY_TEXT_CODE as b,
|
|
651
|
+
UNKNOWN_ELEMENT_CODE as c,
|
|
652
|
+
UNKNOWN_XML_ATTRIBUTE_CODE as d,
|
|
653
|
+
DANGLING_REFERENCE_CODE as e,
|
|
654
|
+
COUNT_MISMATCH_CODE as f,
|
|
655
|
+
COUNT_HINT_CODE as g,
|
|
656
|
+
MULTIPLE_GRAPHS_CODE as h,
|
|
657
|
+
DUPLICATE_EDGE_ID_CODE as i,
|
|
658
|
+
DUPLICATE_NODE_CODE as j,
|
|
659
|
+
DUPLICATE_ATTRIBUTE_CODE as k,
|
|
660
|
+
UNKNOWN_PARENT_CODE as l,
|
|
661
|
+
MISSING_ENDPOINT_CODE as m,
|
|
662
|
+
MISSING_ID_CODE as n,
|
|
663
|
+
DUPLICATE_KEY_CODE as o,
|
|
664
|
+
plural as p,
|
|
665
|
+
ENCODING_CONFLICT_CODE as q,
|
|
666
|
+
UNKNOWN_ENCODING_CODE as r,
|
|
667
|
+
ENCODING_FALLBACK_CODE as s,
|
|
668
|
+
INVALID_ENCODING_CODE as t,
|
|
669
|
+
INVALID_UTF8_CODE as u,
|
|
670
|
+
XML_SYNTAX_CODE as v,
|
|
671
|
+
COLUMN_TYPE_CODE as w,
|
|
672
|
+
ELEMENT_ISSUE as x,
|
|
673
|
+
INPUT_ISSUE as y,
|
|
674
|
+
ID_TEXT_TYPE_CODE as z
|
|
675
|
+
};
|
|
676
|
+
//# sourceMappingURL=format-GDmO6m6Q.js.map
|