@graphty/graph-io 0.3.24 → 0.3.26
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-BbJI55dx.js +56 -0
- package/dist/chunks/choose-BbJI55dx.js.map +1 -0
- package/dist/chunks/constants-BCsFsMj4.js +231 -0
- package/dist/chunks/constants-BCsFsMj4.js.map +1 -0
- package/dist/chunks/{escape-B-tkk_Cl.js → escape-D0g6NNUy.js} +382 -92
- package/dist/chunks/escape-D0g6NNUy.js.map +1 -0
- package/dist/chunks/export-BTI4yQgy.js +4333 -0
- package/dist/chunks/export-BTI4yQgy.js.map +1 -0
- package/dist/chunks/exporter-BMqk5oxW.js +3465 -0
- package/dist/chunks/exporter-BMqk5oxW.js.map +1 -0
- package/dist/chunks/{importer-eUREhBGj.js → exporter-Cra2GYcN.js} +4969 -3201
- package/dist/chunks/exporter-Cra2GYcN.js.map +1 -0
- package/dist/chunks/{exporter-BGrsWamJ.js → exporter-Dxh231ZF.js} +38 -229
- package/dist/chunks/exporter-Dxh231ZF.js.map +1 -0
- package/dist/chunks/{exporter-DIeGJXAZ.js → exporter-tne475KK.js} +22 -20
- package/dist/chunks/exporter-tne475KK.js.map +1 -0
- package/dist/chunks/importer-90YWhJoF.js +2811 -0
- package/dist/chunks/importer-90YWhJoF.js.map +1 -0
- package/dist/chunks/{importer-D_e7e7LX.js → importer-Bcl1d4xH.js} +398 -145
- package/dist/chunks/importer-Bcl1d4xH.js.map +1 -0
- package/dist/chunks/{importer-BWY2FFc5.js → importer-BfIsp1f9.js} +255 -77
- package/dist/chunks/importer-BfIsp1f9.js.map +1 -0
- package/dist/chunks/{importer-zGLo8Dg_.js → importer-C_TEA1zJ.js} +484 -157
- package/dist/chunks/importer-C_TEA1zJ.js.map +1 -0
- package/dist/chunks/{importer-DET1tg6s.js → importer-DCjOvO7U.js} +1687 -310
- package/dist/chunks/importer-DCjOvO7U.js.map +1 -0
- package/dist/chunks/{importer-vi3bSdtw.js → importer-DfVu6j59.js} +509 -76
- package/dist/chunks/importer-DfVu6j59.js.map +1 -0
- package/dist/chunks/{importer-DIrbbnAf.js → importer-Dku_VAIY.js} +585 -226
- package/dist/chunks/importer-Dku_VAIY.js.map +1 -0
- package/dist/chunks/json-elements-3tnyt5uZ.js +1225 -0
- package/dist/chunks/json-elements-3tnyt5uZ.js.map +1 -0
- package/dist/chunks/ontology-export-B9Tcf37D.js +357 -0
- package/dist/chunks/ontology-export-B9Tcf37D.js.map +1 -0
- package/dist/chunks/{records-dbRkxwaq.js → records-CQXT__mY.js} +298 -114
- package/dist/chunks/records-CQXT__mY.js.map +1 -0
- package/dist/chunks/{text-Dr0Ifpag.js → text-DmcUs5_Q.js} +29 -11
- package/dist/chunks/text-DmcUs5_Q.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 +951 -261
- 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 +342 -85
- 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 +564 -157
- 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 +19 -1
- 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 +33 -17
- 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 +868 -188
- 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 +2 -0
- 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 +400 -83
- 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 +145 -32
- 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 +680 -285
- 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 +226 -79
- 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 +98 -24
- 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 +108 -26
- 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 +238 -85
- 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 +66 -34
- 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 +183 -51
- 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 +20 -21
- 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 +7 -2
- 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 +38 -4
- package/src/common/direction.ts +78 -51
- package/src/common/escape.ts +33 -17
- 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 +1034 -198
- package/src/common/line-format.ts +249 -0
- package/src/common/lists.ts +6 -1
- 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 +477 -88
- package/src/common/zip.ts +169 -7
- package/src/formats/csv/exporter.ts +201 -46
- 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 +888 -300
- package/src/formats/cx/index.ts +4 -3
- package/src/formats/cx2/exporter.ts +61 -338
- package/src/formats/cx2/importer.ts +317 -86
- 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 +139 -31
- 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 +111 -26
- 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 +320 -101
- 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 +89 -41
- package/src/formats/pajek/importer.ts +407 -93
- package/src/formats/pajek/index.ts +2 -1
- package/src/formats/pajek/syntax.ts +213 -52
- 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 +35 -27
- package/src/formats/xgmml/importer.ts +64 -86
- package/src/formats/xgmml/index.ts +1 -0
- package/src/formats/xgmml/values.ts +11 -3
- 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
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare two snapshots node by node, edge by edge and value by value, for testing a format plugin:
|
|
3
|
+
* read a file, save it, read the saved file back, and compare. Every difference should be one that
|
|
4
|
+
* the save's checkExport() notes announced.
|
|
5
|
+
*/
|
|
6
|
+
import { type GraphSnapshot } from "@graphty/graph-format";
|
|
7
|
+
/**
|
|
8
|
+
* One difference between two snapshots.
|
|
9
|
+
* @category Plugin helpers
|
|
10
|
+
*/
|
|
11
|
+
export interface SnapshotDiff {
|
|
12
|
+
/** Where: "directed", "ids[3]", "nodes.label[4]", "edges.weight[0]", "extensions.temporal:node:price.rowCount"... */
|
|
13
|
+
readonly path: string;
|
|
14
|
+
/** The value in the expected snapshot. */
|
|
15
|
+
readonly expected: unknown;
|
|
16
|
+
/** The value in the actual snapshot. */
|
|
17
|
+
readonly actual: unknown;
|
|
18
|
+
/** A one-line description. */
|
|
19
|
+
readonly message: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* What compareSnapshots() compares.
|
|
23
|
+
* @category Plugin helpers
|
|
24
|
+
*/
|
|
25
|
+
export interface CompareOptions {
|
|
26
|
+
/** Column names to skip in every table (format-owned helpers an exporter adds, for instance). */
|
|
27
|
+
readonly ignoreColumns?: readonly string[] | undefined;
|
|
28
|
+
/** Column roles to skip in every table. */
|
|
29
|
+
readonly ignoreRoles?: readonly string[] | undefined;
|
|
30
|
+
/** Whether the actual snapshot may hold columns the expected one lacks (default true). */
|
|
31
|
+
readonly allowExtraColumns?: boolean | undefined;
|
|
32
|
+
/** Whether dtypes must match (default true); false compares values only. */
|
|
33
|
+
readonly dtypes?: boolean | undefined;
|
|
34
|
+
/** Whether roles must match (default true). */
|
|
35
|
+
readonly roles?: boolean | undefined;
|
|
36
|
+
/** Whether origin.type must match (default false). */
|
|
37
|
+
readonly originType?: boolean | undefined;
|
|
38
|
+
/** Absolute tolerance for numeric cell and weight comparisons (default 0: Object.is). */
|
|
39
|
+
readonly tolerance?: number | undefined;
|
|
40
|
+
/** Whether the explicit / defaulted status of weights must match (default true). */
|
|
41
|
+
readonly weightExplicitness?: boolean | undefined;
|
|
42
|
+
/** Whether extension tables are compared (default true). */
|
|
43
|
+
readonly extensions?: boolean | undefined;
|
|
44
|
+
/** Stop after this many differences (default 50). */
|
|
45
|
+
readonly limit?: number | undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Compare two snapshots: the direction, the node ids, the edges, the weights and every attribute
|
|
49
|
+
* value. Use it to test a format plugin: read a file, save it in your format, read the saved file
|
|
50
|
+
* back, and compare the two graphs. Each difference has a `path` ("ids[3]", "nodes.label[4]",
|
|
51
|
+
* "edges.weight[0]") and a one-line `message`; every one should match a note that `checkExport()`
|
|
52
|
+
* returned for the save.
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* const notes = checkExport(original, "pairs");
|
|
56
|
+
* const readBack = (await importGraph(await exportGraphToString(original, "pairs"), { format: "pairs" })).snapshot;
|
|
57
|
+
* console.log(describeDiffs(compareSnapshots(original, readBack)));
|
|
58
|
+
* ```
|
|
59
|
+
* @param expected - the graph you saved
|
|
60
|
+
* @param actual - the graph read back from the saved file
|
|
61
|
+
* @param options - what to compare
|
|
62
|
+
* @returns the differences, empty when the graphs are the same
|
|
63
|
+
* @category Plugin helpers
|
|
64
|
+
*/
|
|
65
|
+
export declare function compareSnapshots(expected: GraphSnapshot, actual: GraphSnapshot, options?: CompareOptions): SnapshotDiff[];
|
|
66
|
+
/**
|
|
67
|
+
* Deep equality with a numeric tolerance (for the tests).
|
|
68
|
+
* @param e - expected
|
|
69
|
+
* @param a - actual
|
|
70
|
+
* @param tolerance - absolute tolerance for numbers
|
|
71
|
+
* @returns true when equal
|
|
72
|
+
*/
|
|
73
|
+
export declare function valuesEqual(e: unknown, a: unknown, tolerance: number): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* The differences compareSnapshots() found, one per line, for printing.
|
|
76
|
+
* @param diffs - the differences
|
|
77
|
+
* @returns one line per difference, "no differences" when empty
|
|
78
|
+
* @category Plugin helpers
|
|
79
|
+
*/
|
|
80
|
+
export declare function describeDiffs(diffs: readonly SnapshotDiff[]): string;
|
|
81
|
+
//# sourceMappingURL=compare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/common/compare.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,qHAAqH;IACrH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,iGAAiG;IACjG,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvD,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,0FAA0F;IAC1F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjD,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,yFAAyF;IACzF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,oFAAoF;IACpF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClD,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,qDAAqD;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,cAAmB,GAC7B,YAAY,EAAE,CA2BhB;AAsSD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAyB9E;AAsCD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAEpE"}
|
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare two snapshots node by node, edge by edge and value by value, for testing a format plugin:
|
|
3
|
+
* read a file, save it, read the saved file back, and compare. Every difference should be one that
|
|
4
|
+
* the save's checkExport() notes announced.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Compare two snapshots: the direction, the node ids, the edges, the weights and every attribute
|
|
8
|
+
* value. Use it to test a format plugin: read a file, save it in your format, read the saved file
|
|
9
|
+
* back, and compare the two graphs. Each difference has a `path` ("ids[3]", "nodes.label[4]",
|
|
10
|
+
* "edges.weight[0]") and a one-line `message`; every one should match a note that `checkExport()`
|
|
11
|
+
* returned for the save.
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const notes = checkExport(original, "pairs");
|
|
15
|
+
* const readBack = (await importGraph(await exportGraphToString(original, "pairs"), { format: "pairs" })).snapshot;
|
|
16
|
+
* console.log(describeDiffs(compareSnapshots(original, readBack)));
|
|
17
|
+
* ```
|
|
18
|
+
* @param expected - the graph you saved
|
|
19
|
+
* @param actual - the graph read back from the saved file
|
|
20
|
+
* @param options - what to compare
|
|
21
|
+
* @returns the differences, empty when the graphs are the same
|
|
22
|
+
* @category Plugin helpers
|
|
23
|
+
*/
|
|
24
|
+
export function compareSnapshots(expected, actual, options = {}) {
|
|
25
|
+
const diffs = [];
|
|
26
|
+
const limit = options.limit ?? 50;
|
|
27
|
+
const tolerance = options.tolerance ?? 0;
|
|
28
|
+
const ctx = {
|
|
29
|
+
options,
|
|
30
|
+
diff: (path, e, a, message) => {
|
|
31
|
+
diffs.push({
|
|
32
|
+
path,
|
|
33
|
+
expected: e,
|
|
34
|
+
actual: a,
|
|
35
|
+
message: message ?? `${path}: expected ${show(e)}, got ${show(a)}`,
|
|
36
|
+
});
|
|
37
|
+
if (diffs.length >= limit) {
|
|
38
|
+
throw new LimitReached();
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
same: (e, a) => valuesEqual(e, a, tolerance),
|
|
42
|
+
};
|
|
43
|
+
try {
|
|
44
|
+
compareGraphs(expected, actual, ctx);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
if (!(err instanceof LimitReached)) {
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return diffs;
|
|
52
|
+
}
|
|
53
|
+
/** Thrown by the recorder once the limit of differences is reached, to end the walk. */
|
|
54
|
+
class LimitReached extends Error {
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Compare two snapshots step by step: the counts, the ids, the topology, the weights, the tables.
|
|
58
|
+
* @param expected - the reference
|
|
59
|
+
* @param actual - the snapshot under test
|
|
60
|
+
* @param ctx - the comparison context
|
|
61
|
+
*/
|
|
62
|
+
function compareGraphs(expected, actual, ctx) {
|
|
63
|
+
const { diff } = ctx;
|
|
64
|
+
if (expected.directed !== actual.directed) {
|
|
65
|
+
diff("directed", expected.directed, actual.directed);
|
|
66
|
+
}
|
|
67
|
+
if (expected.nodeCount !== actual.nodeCount) {
|
|
68
|
+
diff("nodeCount", expected.nodeCount, actual.nodeCount);
|
|
69
|
+
}
|
|
70
|
+
if (expected.edgeCount !== actual.edgeCount) {
|
|
71
|
+
diff("edgeCount", expected.edgeCount, actual.edgeCount);
|
|
72
|
+
}
|
|
73
|
+
compareIds(expected, actual, diff);
|
|
74
|
+
if (expected.nodeCount !== actual.nodeCount || expected.edgeCount !== actual.edgeCount) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
compareTopology(expected, actual, diff);
|
|
78
|
+
compareWeights(expected, actual, ctx);
|
|
79
|
+
compareTables("nodes", expected.nodes, actual.nodes, ctx);
|
|
80
|
+
compareTables("edges", expected.edges, actual.edges, ctx);
|
|
81
|
+
compareTables("graph", expected.graph, actual.graph, ctx);
|
|
82
|
+
if (ctx.options.extensions !== false) {
|
|
83
|
+
compareExtensions(expected, actual, ctx);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Compare the node ids in index order.
|
|
88
|
+
* @param expected - the reference
|
|
89
|
+
* @param actual - the snapshot under test
|
|
90
|
+
* @param diff - the recorder
|
|
91
|
+
*/
|
|
92
|
+
function compareIds(expected, actual, diff) {
|
|
93
|
+
const expectedIds = expected.ids.toArray();
|
|
94
|
+
const actualIds = actual.ids.toArray();
|
|
95
|
+
const n = Math.min(expectedIds.length, actualIds.length);
|
|
96
|
+
for (let i = 0; i < n; i++) {
|
|
97
|
+
if (!Object.is(expectedIds[i], actualIds[i])) {
|
|
98
|
+
diff(`ids[${i}]`, expectedIds[i], actualIds[i]);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Compare the topology: the CSR arrays (identical when node order and edge order survived), then the
|
|
104
|
+
* orientation of every logical edge.
|
|
105
|
+
* @param expected - the reference
|
|
106
|
+
* @param actual - the snapshot under test, with as many nodes and edges
|
|
107
|
+
* @param diff - the recorder
|
|
108
|
+
*/
|
|
109
|
+
function compareTopology(expected, actual, diff) {
|
|
110
|
+
if (!typedEqual(expected.rowPtr, actual.rowPtr)) {
|
|
111
|
+
diff("rowPtr", expected.rowPtr, actual.rowPtr, "rowPtr differs");
|
|
112
|
+
}
|
|
113
|
+
if (!typedEqual(expected.colIdx, actual.colIdx)) {
|
|
114
|
+
diff("colIdx", expected.colIdx, actual.colIdx, "colIdx differs");
|
|
115
|
+
}
|
|
116
|
+
const el = expected.edgeList();
|
|
117
|
+
const al = actual.edgeList();
|
|
118
|
+
for (let e = 0; e < expected.edgeCount; e++) {
|
|
119
|
+
if (el.src[e] !== al.src[e] || el.dst[e] !== al.dst[e]) {
|
|
120
|
+
diff(`edge[${e}]`, `${el.src[e]}->${el.dst[e]}`, `${al.src[e]}->${al.dst[e]}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Compare the weights of two snapshots: the exact weight column when both have one, the 32-bit
|
|
126
|
+
* weights otherwise.
|
|
127
|
+
* @param expected - the reference
|
|
128
|
+
* @param actual - the snapshot under test
|
|
129
|
+
* @param ctx - the comparison context
|
|
130
|
+
*/
|
|
131
|
+
function compareWeights(expected, actual, ctx) {
|
|
132
|
+
if (expected.flags.weighted !== actual.flags.weighted) {
|
|
133
|
+
ctx.diff("flags.weighted", expected.flags.weighted, actual.flags.weighted);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (!expected.flags.weighted) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const eShadow = expected.edges.byRole("weight");
|
|
140
|
+
const aShadow = actual.edges.byRole("weight");
|
|
141
|
+
if (eShadow !== null && aShadow !== null) {
|
|
142
|
+
compareExactWeights(expected.edgeCount, eShadow, aShadow, ctx);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (ctx.options.weightExplicitness !== false && (eShadow === null) !== (aShadow === null)) {
|
|
146
|
+
ctx.diff("weightColumn", eShadow !== null, aShadow !== null, "one snapshot has a role-weight column, the other does not");
|
|
147
|
+
}
|
|
148
|
+
const ew = expected.edgeList().weights;
|
|
149
|
+
const aw = actual.edgeList().weights;
|
|
150
|
+
for (let e = 0; e < expected.edgeCount; e++) {
|
|
151
|
+
const ev = ew === null ? 1 : ew[e];
|
|
152
|
+
const av = aw === null ? 1 : aw[e];
|
|
153
|
+
if (!ctx.same(ev, av)) {
|
|
154
|
+
ctx.diff(`weight[${e}]`, ev, av);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Compare the exact weight columns of two snapshots: which edges have an explicit weight, and its value.
|
|
160
|
+
* @param edgeCount - the number of edges
|
|
161
|
+
* @param expected - the reference's weight column
|
|
162
|
+
* @param actual - the weight column under test
|
|
163
|
+
* @param ctx - the comparison context
|
|
164
|
+
*/
|
|
165
|
+
function compareExactWeights(edgeCount, expected, actual, ctx) {
|
|
166
|
+
for (let e = 0; e < edgeCount; e++) {
|
|
167
|
+
const eSet = expected.isSet(e);
|
|
168
|
+
const aSet = actual.isSet(e);
|
|
169
|
+
if (ctx.options.weightExplicitness !== false && eSet !== aSet) {
|
|
170
|
+
ctx.diff(`weightExplicit[${e}]`, eSet, aSet);
|
|
171
|
+
}
|
|
172
|
+
else if (eSet && aSet && !ctx.same(expected.value(e), actual.value(e))) {
|
|
173
|
+
ctx.diff(`weight[${e}]`, expected.value(e), actual.value(e));
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Compare the extension tables: which exist, their row counts and their columns.
|
|
179
|
+
* @param expected - the reference
|
|
180
|
+
* @param actual - the snapshot under test
|
|
181
|
+
* @param ctx - the comparison context
|
|
182
|
+
*/
|
|
183
|
+
function compareExtensions(expected, actual, ctx) {
|
|
184
|
+
for (const [name, table] of expected.extensions) {
|
|
185
|
+
const other = actual.extensions.get(name);
|
|
186
|
+
if (other === undefined) {
|
|
187
|
+
ctx.diff(`extensions.${name}`, "present", "absent");
|
|
188
|
+
}
|
|
189
|
+
else if (table.rowCount === other.rowCount) {
|
|
190
|
+
compareTables(`extensions.${name}`, table, other, ctx);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
ctx.diff(`extensions.${name}.rowCount`, table.rowCount, other.rowCount);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
if (ctx.options.allowExtraColumns === false) {
|
|
197
|
+
for (const name of actual.extensions.keys()) {
|
|
198
|
+
if (!expected.extensions.has(name)) {
|
|
199
|
+
ctx.diff(`extensions.${name}`, "absent", "present");
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Compare the columns of one table.
|
|
206
|
+
* @param label - the table name for paths
|
|
207
|
+
* @param expected - the reference table
|
|
208
|
+
* @param actual - the table under test
|
|
209
|
+
* @param ctx - the comparison context
|
|
210
|
+
*/
|
|
211
|
+
function compareTables(label, expected, actual, ctx) {
|
|
212
|
+
const ignoreNames = new Set(ctx.options.ignoreColumns ?? []);
|
|
213
|
+
const ignoreRoles = new Set(ctx.options.ignoreRoles ?? []);
|
|
214
|
+
// the role-weight shadow column is compared by the weights step, not as a declared column
|
|
215
|
+
const skip = (column) => {
|
|
216
|
+
const { name, role } = column.meta;
|
|
217
|
+
return (ignoreNames.has(name) ||
|
|
218
|
+
(role !== null && (ignoreRoles.has(role) || (label === "edges" && role === "weight"))));
|
|
219
|
+
};
|
|
220
|
+
for (const column of expected) {
|
|
221
|
+
if (skip(column)) {
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
224
|
+
const path = `${label}.${column.meta.name}`;
|
|
225
|
+
const other = actual.get(column.meta.name);
|
|
226
|
+
if (other === null) {
|
|
227
|
+
ctx.diff(path, "present", "absent", `${path}: column missing after round trip`);
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
compareColumn(path, column, other, ctx);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
if (ctx.options.allowExtraColumns === false) {
|
|
234
|
+
for (const column of actual) {
|
|
235
|
+
if (!skip(column) && expected.get(column.meta.name) === null) {
|
|
236
|
+
const path = `${label}.${column.meta.name}`;
|
|
237
|
+
ctx.diff(path, "absent", "present", `${path}: extra column after round trip`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Compare one column: its declaration, then every cell.
|
|
244
|
+
* @param path - the column's path for messages
|
|
245
|
+
* @param column - the reference column
|
|
246
|
+
* @param other - the column under test
|
|
247
|
+
* @param ctx - the comparison context
|
|
248
|
+
*/
|
|
249
|
+
function compareColumn(path, column, other, ctx) {
|
|
250
|
+
compareDeclaration(path, column, other, ctx);
|
|
251
|
+
if (column.length !== other.length) {
|
|
252
|
+
ctx.diff(`${path}.length`, column.length, other.length);
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
for (let r = 0; r < column.length; r++) {
|
|
256
|
+
const eSet = column.isSet(r);
|
|
257
|
+
const aSet = other.isSet(r);
|
|
258
|
+
if (eSet !== aSet) {
|
|
259
|
+
ctx.diff(`${path}[${r}]`, eSet ? column.value(r) : undefined, aSet ? other.value(r) : undefined);
|
|
260
|
+
}
|
|
261
|
+
else if (eSet) {
|
|
262
|
+
const ev = cellValue(column, r);
|
|
263
|
+
const av = cellValue(other, r);
|
|
264
|
+
if (!ctx.same(ev, av)) {
|
|
265
|
+
ctx.diff(`${path}[${r}]`, ev, av);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Compare what two columns declare: dtype, item dtype, components, role and origin type, as the
|
|
272
|
+
* options ask.
|
|
273
|
+
* @param path - the column's path for messages
|
|
274
|
+
* @param column - the reference column
|
|
275
|
+
* @param other - the column under test
|
|
276
|
+
* @param ctx - the comparison context
|
|
277
|
+
*/
|
|
278
|
+
function compareDeclaration(path, column, other, ctx) {
|
|
279
|
+
const { options, diff } = ctx;
|
|
280
|
+
const e = column.meta;
|
|
281
|
+
const a = other.meta;
|
|
282
|
+
if (options.dtypes !== false) {
|
|
283
|
+
for (const key of ["dtype", "itemDtype", "components"]) {
|
|
284
|
+
if (e[key] !== a[key]) {
|
|
285
|
+
diff(`${path}.${key}`, e[key], a[key]);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
if (options.roles !== false && e.role !== a.role) {
|
|
290
|
+
diff(`${path}.role`, e.role, a.role);
|
|
291
|
+
}
|
|
292
|
+
const eType = e.origin?.type ?? null;
|
|
293
|
+
const aType = a.origin?.type ?? null;
|
|
294
|
+
if (options.originType === true && eType !== aType) {
|
|
295
|
+
diff(`${path}.origin.type`, eType, aType);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* The comparable value of a set cell: list rows through sliceOf, json rows through values, the
|
|
300
|
+
* typed accessor otherwise (a components > 1 subarray becomes a plain array).
|
|
301
|
+
* @param column - the column
|
|
302
|
+
* @param row - the row
|
|
303
|
+
* @returns the value
|
|
304
|
+
*/
|
|
305
|
+
function cellValue(column, row) {
|
|
306
|
+
switch (column.dtype) {
|
|
307
|
+
case "list":
|
|
308
|
+
return [...column.sliceOf(row)];
|
|
309
|
+
case "json":
|
|
310
|
+
return column.values[row];
|
|
311
|
+
default: {
|
|
312
|
+
const value = column.value(row);
|
|
313
|
+
return ArrayBuffer.isView(value) ? Array.from(value) : value;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Deep equality with a numeric tolerance (for the tests).
|
|
319
|
+
* @param e - expected
|
|
320
|
+
* @param a - actual
|
|
321
|
+
* @param tolerance - absolute tolerance for numbers
|
|
322
|
+
* @returns true when equal
|
|
323
|
+
*/
|
|
324
|
+
export function valuesEqual(e, a, tolerance) {
|
|
325
|
+
if (typeof e === "number" && typeof a === "number") {
|
|
326
|
+
if (Object.is(e, a)) {
|
|
327
|
+
return true;
|
|
328
|
+
}
|
|
329
|
+
return Number.isFinite(e) && Number.isFinite(a) && Math.abs(e - a) <= tolerance;
|
|
330
|
+
}
|
|
331
|
+
if (Array.isArray(e) || ArrayBuffer.isView(e)) {
|
|
332
|
+
const ea = Array.from(e);
|
|
333
|
+
if (!(Array.isArray(a) || ArrayBuffer.isView(a))) {
|
|
334
|
+
return false;
|
|
335
|
+
}
|
|
336
|
+
const aa = Array.from(a);
|
|
337
|
+
return ea.length === aa.length && ea.every((v, i) => valuesEqual(v, aa[i], tolerance));
|
|
338
|
+
}
|
|
339
|
+
if (typeof e === "object" && e !== null && typeof a === "object" && a !== null) {
|
|
340
|
+
const eo = e;
|
|
341
|
+
const ao = a;
|
|
342
|
+
const keys = Object.keys(eo);
|
|
343
|
+
if (keys.length !== Object.keys(ao).length) {
|
|
344
|
+
return false;
|
|
345
|
+
}
|
|
346
|
+
return keys.every((k) => Object.hasOwn(ao, k) && valuesEqual(eo[k], ao[k], tolerance));
|
|
347
|
+
}
|
|
348
|
+
return Object.is(e, a);
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Element-wise equality of two typed arrays.
|
|
352
|
+
* @param a - one array
|
|
353
|
+
* @param b - the other
|
|
354
|
+
* @returns true when same length and contents
|
|
355
|
+
*/
|
|
356
|
+
function typedEqual(a, b) {
|
|
357
|
+
if (a.length !== b.length) {
|
|
358
|
+
return false;
|
|
359
|
+
}
|
|
360
|
+
for (let i = 0; i < a.length; i++) {
|
|
361
|
+
if (a[i] !== b[i]) {
|
|
362
|
+
return false;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return true;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* A short text of a value for messages.
|
|
369
|
+
* @param v - the value
|
|
370
|
+
* @returns JSON when possible, else String()
|
|
371
|
+
*/
|
|
372
|
+
function show(v) {
|
|
373
|
+
if (ArrayBuffer.isView(v)) {
|
|
374
|
+
const items = Array.from(v);
|
|
375
|
+
return `[${items.slice(0, 8).join(", ")}${items.length > 8 ? ", ..." : ""}]`;
|
|
376
|
+
}
|
|
377
|
+
try {
|
|
378
|
+
const text = JSON.stringify(v);
|
|
379
|
+
return text ?? String(v);
|
|
380
|
+
}
|
|
381
|
+
catch {
|
|
382
|
+
return String(v);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* The differences compareSnapshots() found, one per line, for printing.
|
|
387
|
+
* @param diffs - the differences
|
|
388
|
+
* @returns one line per difference, "no differences" when empty
|
|
389
|
+
* @category Plugin helpers
|
|
390
|
+
*/
|
|
391
|
+
export function describeDiffs(diffs) {
|
|
392
|
+
return diffs.length === 0 ? "no differences" : diffs.map((d) => ` - ${d.message}`).join("\n");
|
|
393
|
+
}
|
|
394
|
+
//# sourceMappingURL=compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/common/compare.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The exporter machinery CX version 1 and CX2 share (design/graph-io/cytoscape-and-obo/design.md
|
|
3
|
+
* sections 1.2 and 1.3): integer node ids (safe integers, or the digits of an integer beyond 2^53
|
|
4
|
+
* written raw), sanitizeIds "mangle" renumbering, edge ids from the id role column, the declared
|
|
5
|
+
* type of a column, the direction notes (every CX edge is directed) and the JSON writer that keeps
|
|
6
|
+
* -0 and raw big integers.
|
|
7
|
+
*/
|
|
8
|
+
import { type Column, GraphFormatError, type GraphSnapshot, type NodeId } from "@graphty/graph-format";
|
|
9
|
+
import { type LossNote } from "../types.js";
|
|
10
|
+
import { type PairFolding } from "./direction.js";
|
|
11
|
+
import { type ResolvedExportOptions } from "./options.js";
|
|
12
|
+
/**
|
|
13
|
+
* Records a loss note.
|
|
14
|
+
* @category Plugin helpers
|
|
15
|
+
*/
|
|
16
|
+
export type CxNoteFn = (code: string, message: string, column?: string | null, count?: number | null) => void;
|
|
17
|
+
/**
|
|
18
|
+
* The node ids as written: the original, a renumbered one, or a raw big integer.
|
|
19
|
+
* @category Plugin helpers
|
|
20
|
+
*/
|
|
21
|
+
export interface WrittenIds {
|
|
22
|
+
/** How many ids were renumbered (sanitizeIds "mangle"). */
|
|
23
|
+
readonly changed: number;
|
|
24
|
+
/**
|
|
25
|
+
* The written id of a node.
|
|
26
|
+
* @param i - the node index
|
|
27
|
+
* @returns a number, or a raw string for a big integer
|
|
28
|
+
*/
|
|
29
|
+
idAt(i: number): NodeId;
|
|
30
|
+
/**
|
|
31
|
+
* Whether a node was renumbered.
|
|
32
|
+
* @param i - the node index
|
|
33
|
+
* @returns true when its original goes into graphty:originalId
|
|
34
|
+
*/
|
|
35
|
+
isChanged(i: number): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* The original id of a node.
|
|
38
|
+
* @param i - the node index
|
|
39
|
+
* @returns the snapshot's id
|
|
40
|
+
*/
|
|
41
|
+
originalAt(i: number): NodeId;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The `idCounter` of the node ids as written (the largest id plus one, NDEx's next free id).
|
|
45
|
+
* @param ids - the written ids
|
|
46
|
+
* @param count - the node count
|
|
47
|
+
* @returns the counter: a number, or a raw big integer for stringify()
|
|
48
|
+
* @category Plugin helpers
|
|
49
|
+
*/
|
|
50
|
+
export declare function nextNodeId(ids: WrittenIds, count: number): NodeId;
|
|
51
|
+
/**
|
|
52
|
+
* The id notes and the written ids of a CX export: E_ID_CHARSET (export() throws) or
|
|
53
|
+
* W_ID_MANGLED for the ids that are not integers.
|
|
54
|
+
* @param snapshot - the snapshot
|
|
55
|
+
* @param common - the resolved common options
|
|
56
|
+
* @param format - the format's display name
|
|
57
|
+
* @param attribute - the attribute the originals are kept in
|
|
58
|
+
* @param note - records a note
|
|
59
|
+
* @returns the ids, or the error export() throws
|
|
60
|
+
* @category Plugin helpers
|
|
61
|
+
*/
|
|
62
|
+
export declare function planNodeIds(snapshot: GraphSnapshot, common: ResolvedExportOptions, format: string, attribute: string, note: CxNoteFn): WrittenIds | GraphFormatError;
|
|
63
|
+
/**
|
|
64
|
+
* The declared CX type of a column: string / double / long / integer / boolean or a list of one;
|
|
65
|
+
* a json column (and a list of json items) is a string holding JSON text.
|
|
66
|
+
* @param column - the column
|
|
67
|
+
* @returns the type text
|
|
68
|
+
* @category Plugin helpers
|
|
69
|
+
*/
|
|
70
|
+
export declare function declaredType(column: Column): string;
|
|
71
|
+
/**
|
|
72
|
+
* Count the positions with a non-finite x or y.
|
|
73
|
+
* @param position - the position column
|
|
74
|
+
* @returns the count
|
|
75
|
+
* @category Plugin helpers
|
|
76
|
+
*/
|
|
77
|
+
export declare function nonFinitePositions(position: Column): number;
|
|
78
|
+
/**
|
|
79
|
+
* The edge ids to write: the id role column's values when they are distinct safe integers, next
|
|
80
|
+
* unused integers for edges without one (W_EDGE_IDS_GENERATED).
|
|
81
|
+
* @param snapshot - the snapshot
|
|
82
|
+
* @param note - records a note
|
|
83
|
+
* @returns one id per edge
|
|
84
|
+
* @category Plugin helpers
|
|
85
|
+
*/
|
|
86
|
+
export declare function planEdgeIds(snapshot: GraphSnapshot, note: CxNoteFn): number[];
|
|
87
|
+
/**
|
|
88
|
+
* The direction notes: every CX edge is directed, so an undirected snapshot (or the undirected
|
|
89
|
+
* pairs of a mixed one, folded under onMixedDirection) is written directed, and a mutual pair as
|
|
90
|
+
* two edges without its mark.
|
|
91
|
+
* @param snapshot - the snapshot
|
|
92
|
+
* @param folding - the pair folding
|
|
93
|
+
* @param common - the resolved common options
|
|
94
|
+
* @param undirectedCode - the format's "undirected written as directed" code
|
|
95
|
+
* @param note - records a note
|
|
96
|
+
* @category Plugin helpers
|
|
97
|
+
*/
|
|
98
|
+
export declare function directionNotes(snapshot: GraphSnapshot, folding: PairFolding, common: ResolvedExportOptions, undirectedCode: string, note: CxNoteFn): void;
|
|
99
|
+
/**
|
|
100
|
+
* The note recorder of a plan and its notes.
|
|
101
|
+
* @returns the notes and the recorder
|
|
102
|
+
* @category Plugin helpers
|
|
103
|
+
*/
|
|
104
|
+
export declare function noteList(): {
|
|
105
|
+
notes: LossNote[];
|
|
106
|
+
note: CxNoteFn;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* The JSON text of a value, keeping -0 and writing the raw big-integer ids of idAt() as numbers.
|
|
110
|
+
* @param value - the value
|
|
111
|
+
* @returns the text
|
|
112
|
+
* @category Plugin helpers
|
|
113
|
+
*/
|
|
114
|
+
export declare function stringify(value: unknown): string;
|
|
115
|
+
/**
|
|
116
|
+
* The text of one aspect block, element by element.
|
|
117
|
+
* @param aspect - the aspect name
|
|
118
|
+
* @param elements - the JSON texts of its elements
|
|
119
|
+
* @yields the block's text
|
|
120
|
+
* @returns nothing
|
|
121
|
+
*/
|
|
122
|
+
export declare function aspectBlock(aspect: string, elements: Iterable<string>): Generator<string, void, undefined>;
|
|
123
|
+
//# sourceMappingURL=cx-export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cx-export.d.ts","sourceRoot":"","sources":["../../../src/common/cx-export.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,MAAM,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEvG,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG1D;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;AAc9G;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B;;;;OAIG;IACH,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AA8DD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAWjE;AAiBD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACvB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,GACf,UAAU,GAAG,gBAAgB,CAoB/B;AAwCD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW3D;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAoC7E;AAyBD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,qBAAqB,EAC7B,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,QAAQ,GACf,IAAI,CAgCN;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,IAAI;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAMhE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGhD;AAED;;;;;;GAMG;AACH,wBAAiB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAQ3G"}
|