@graphty/graph-io 0.3.16 → 0.3.18
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/LICENSE +1 -1
- package/README.md +29 -3
- package/dist/chunks/{escape-D1f9-cwf.js → escape-D-gZWO26.js} +3 -2
- package/dist/chunks/{escape-D1f9-cwf.js.map → escape-D-gZWO26.js.map} +1 -1
- package/dist/chunks/{importer-D7ZcGCeb.js → importer-Br_QeAeE.js} +4 -3
- package/dist/chunks/{importer-D7ZcGCeb.js.map → importer-Br_QeAeE.js.map} +1 -1
- package/dist/chunks/{importer-CXEiicAN.js → importer-DHagxvDD.js} +4 -3
- package/dist/chunks/{importer-CXEiicAN.js.map → importer-DHagxvDD.js.map} +1 -1
- package/dist/chunks/{importer-C7mnGdr_.js → importer-Du5crN9l.js} +510 -26
- package/dist/chunks/importer-Du5crN9l.js.map +1 -0
- package/dist/chunks/importer-aNJfe0qu.js +1614 -0
- package/dist/chunks/importer-aNJfe0qu.js.map +1 -0
- package/dist/chunks/{importer-B8lsjFWx.js → importer-d0uQxFp6.js} +4 -3
- package/dist/chunks/{importer-B8lsjFWx.js.map → importer-d0uQxFp6.js.map} +1 -1
- package/dist/chunks/ontology-BnrJ4I98.js +113 -0
- package/dist/chunks/ontology-BnrJ4I98.js.map +1 -0
- package/dist/chunks/{records-IHsCfv7s.js → records-Bk9jgodz.js} +2 -2
- package/dist/chunks/{records-IHsCfv7s.js.map → records-Bk9jgodz.js.map} +1 -1
- package/dist/chunks/{writer-BtWpUaiH.js → report-BOk0p5y8.js} +181 -912
- package/dist/chunks/report-BOk0p5y8.js.map +1 -0
- package/dist/chunks/writer-GAdltGmC.js +827 -0
- package/dist/chunks/writer-GAdltGmC.js.map +1 -0
- package/dist/csv.js +4 -3
- package/dist/csv.js.map +1 -1
- package/dist/dot.js +1 -1
- package/dist/gexf.js +3 -2
- package/dist/gexf.js.map +1 -1
- package/dist/gml.js +3 -2
- package/dist/gml.js.map +1 -1
- package/dist/graph-io.js +191 -134
- package/dist/graph-io.js.map +1 -1
- package/dist/graphml.js +1 -1
- package/dist/json.js +1 -1
- package/dist/neo4j.js +4 -3
- package/dist/neo4j.js.map +1 -1
- package/dist/obo.d.ts +1 -0
- package/dist/obo.js +6 -0
- package/dist/obo.js.map +1 -0
- package/dist/pajek.js +1 -1
- package/dist/src/common/codes.d.ts +43 -0
- package/dist/src/common/codes.d.ts.map +1 -1
- package/dist/src/common/codes.js +43 -0
- package/dist/src/common/codes.js.map +1 -1
- package/dist/src/common/input.d.ts +9 -0
- package/dist/src/common/input.d.ts.map +1 -1
- package/dist/src/common/input.js +16 -0
- package/dist/src/common/input.js.map +1 -1
- package/dist/src/common/ontology.d.ts +59 -0
- package/dist/src/common/ontology.d.ts.map +1 -0
- package/dist/src/common/ontology.js +147 -0
- package/dist/src/common/ontology.js.map +1 -0
- package/dist/src/common/options.d.ts +12 -1
- package/dist/src/common/options.d.ts.map +1 -1
- package/dist/src/common/options.js +51 -1
- package/dist/src/common/options.js.map +1 -1
- package/dist/src/formats/json/dialect.d.ts +8 -6
- package/dist/src/formats/json/dialect.d.ts.map +1 -1
- package/dist/src/formats/json/dialect.js +26 -3
- package/dist/src/formats/json/dialect.js.map +1 -1
- package/dist/src/formats/json/importer.d.ts +324 -7
- package/dist/src/formats/json/importer.d.ts.map +1 -1
- package/dist/src/formats/json/importer.js +154 -23
- package/dist/src/formats/json/importer.js.map +1 -1
- package/dist/src/formats/json/obographs.d.ts +21 -0
- package/dist/src/formats/json/obographs.d.ts.map +1 -0
- package/dist/src/formats/json/obographs.js +476 -0
- package/dist/src/formats/json/obographs.js.map +1 -0
- package/dist/src/formats/obo/importer.d.ts +90 -0
- package/dist/src/formats/obo/importer.d.ts.map +1 -0
- package/dist/src/formats/obo/importer.js +1248 -0
- package/dist/src/formats/obo/importer.js.map +1 -0
- package/dist/src/formats/obo/index.d.ts +7 -0
- package/dist/src/formats/obo/index.d.ts.map +1 -0
- package/dist/src/formats/obo/index.js +7 -0
- package/dist/src/formats/obo/index.js.map +1 -0
- package/dist/src/formats/obo/syntax.d.ts +121 -0
- package/dist/src/formats/obo/syntax.d.ts.map +1 -0
- package/dist/src/formats/obo/syntax.js +424 -0
- package/dist/src/formats/obo/syntax.js.map +1 -0
- package/dist/src/index.d.ts +5 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/registry.d.ts +21 -3
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +32 -1
- package/dist/src/registry.js.map +1 -1
- package/dist/src/sniff.d.ts +1 -1
- package/dist/src/sniff.d.ts.map +1 -1
- package/dist/src/sniff.js +23 -3
- package/dist/src/sniff.js.map +1 -1
- package/dist/src/types.d.ts +31 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/package.json +6 -1
- package/src/common/codes.ts +58 -0
- package/src/common/input.ts +16 -0
- package/src/common/ontology.ts +169 -0
- package/src/common/options.ts +78 -2
- package/src/formats/json/dialect.ts +37 -7
- package/src/formats/json/importer.ts +206 -28
- package/src/formats/json/obographs.ts +563 -0
- package/src/formats/obo/importer.ts +1695 -0
- package/src/formats/obo/index.ts +7 -0
- package/src/formats/obo/syntax.ts +466 -0
- package/src/index.ts +6 -0
- package/src/registry.ts +38 -3
- package/src/sniff.ts +35 -5
- package/src/types.ts +40 -1
- package/dist/chunks/importer-C7mnGdr_.js.map +0 -1
- package/dist/chunks/writer-BtWpUaiH.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/common/options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAwB,gBAAgB,EAAmC,MAAM,uBAAuB,CAAC;AAGhH,OAAO,
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/common/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,11 +19,12 @@ export type JsonDialect = "node-link" | "d3" | "jgf" | "cytoscape" | "graphology
|
|
|
19
19
|
/** Every dialect name, for option checking and messages. */
|
|
20
20
|
export declare const JSON_DIALECTS: readonly JsonDialect[];
|
|
21
21
|
/**
|
|
22
|
-
* The dialects the importer reads: every JsonDialect plus
|
|
23
|
-
* adjacency_data (`nodes` plus one neighbour list per node under `adjacency`)
|
|
24
|
-
* nested `id` / `children` record)
|
|
22
|
+
* The dialects the importer reads: every JsonDialect plus three it only reads, NetworkX
|
|
23
|
+
* adjacency_data (`nodes` plus one neighbour list per node under `adjacency`), tree_data (a
|
|
24
|
+
* nested `id` / `children` record) and OBO Graphs (`graphs[]` of `sub` / `pred` / `obj` edges, the
|
|
25
|
+
* JSON form of the Gene Ontology and the OBO Foundry ontologies). The exporter writes none of them.
|
|
25
26
|
*/
|
|
26
|
-
export type JsonImportDialect = JsonDialect | "adjacency" | "tree";
|
|
27
|
+
export type JsonImportDialect = JsonDialect | "adjacency" | "tree" | "obographs";
|
|
27
28
|
/** Every dialect the importer reads, for option checking and messages. */
|
|
28
29
|
export declare const JSON_IMPORT_DIALECTS: readonly JsonImportDialect[];
|
|
29
30
|
/** The key under `meta.extra` that holds the shape record (design section 8.5). */
|
|
@@ -83,8 +84,9 @@ export declare function isJsonDialect(value: unknown): value is JsonDialect;
|
|
|
83
84
|
export declare function isJsonImportDialect(value: unknown): value is JsonImportDialect;
|
|
84
85
|
/**
|
|
85
86
|
* The dialect of a parsed JSON document, by the shape rules of design section 8.2 (Cytoscape:
|
|
86
|
-
* `elements` or a top-level array of `{ data }` elements;
|
|
87
|
-
*
|
|
87
|
+
* `elements` or a top-level array of `{ data }` elements; OBO Graphs: `graphs[]` whose first graph
|
|
88
|
+
* has an edge with `sub` (or `subj`) and `obj` or a `pred`, or a node with `lbl`, `meta` or an OWL
|
|
89
|
+
* `type`; JGF: `graph.nodes` / `graph.edges` or any other `graphs[]`; graphology: `options.type` / `options.multi`, `key` nodes without `id`, edges with
|
|
88
90
|
* `undirected` or an `attributes` record; vis: edges with `from` / `to`; d3: `links` without
|
|
89
91
|
* `directed` / `multigraph` / `graph`; NetworkX adjacency_data: `nodes` and `adjacency` without
|
|
90
92
|
* `links` / `edges`; NetworkX tree_data: `children` without `nodes` / `links` / `edges`; else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../../../src/formats/json/dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,qDAAqD;AACrD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,IAAI,GAAG,KAAK,GAAG,WAAW,GAAG,YAAY,GAAG,KAAK,CAAC;AAE1F,4DAA4D;AAC5D,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAO9C,CAAC;AAEH
|
|
1
|
+
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../../../src/formats/json/dialect.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ export const JSON_IMPORT_DIALECTS = Object.freeze([
|
|
|
27
27
|
...JSON_DIALECTS,
|
|
28
28
|
"adjacency",
|
|
29
29
|
"tree",
|
|
30
|
+
"obographs",
|
|
30
31
|
]);
|
|
31
32
|
/** The key under `meta.extra` that holds the shape record (design section 8.5). */
|
|
32
33
|
export const META_KEY = "json";
|
|
@@ -66,8 +67,9 @@ export function isJsonImportDialect(value) {
|
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
68
69
|
* The dialect of a parsed JSON document, by the shape rules of design section 8.2 (Cytoscape:
|
|
69
|
-
* `elements` or a top-level array of `{ data }` elements;
|
|
70
|
-
*
|
|
70
|
+
* `elements` or a top-level array of `{ data }` elements; OBO Graphs: `graphs[]` whose first graph
|
|
71
|
+
* has an edge with `sub` (or `subj`) and `obj` or a `pred`, or a node with `lbl`, `meta` or an OWL
|
|
72
|
+
* `type`; JGF: `graph.nodes` / `graph.edges` or any other `graphs[]`; graphology: `options.type` / `options.multi`, `key` nodes without `id`, edges with
|
|
71
73
|
* `undirected` or an `attributes` record; vis: edges with `from` / `to`; d3: `links` without
|
|
72
74
|
* `directed` / `multigraph` / `graph`; NetworkX adjacency_data: `nodes` and `adjacency` without
|
|
73
75
|
* `links` / `edges`; NetworkX tree_data: `children` without `nodes` / `links` / `edges`; else
|
|
@@ -91,7 +93,7 @@ export function sniffJsonDialect(root) {
|
|
|
91
93
|
return "jgf";
|
|
92
94
|
}
|
|
93
95
|
if (Array.isArray(root.graphs)) {
|
|
94
|
-
return "jgf";
|
|
96
|
+
return isOboGraph(firstJsonObject(root.graphs)) ? "obographs" : "jgf";
|
|
95
97
|
}
|
|
96
98
|
if (!hasKey(root, "edges") && !hasKey(root, "links")) {
|
|
97
99
|
if (hasKey(root, "nodes") && hasKey(root, "adjacency")) {
|
|
@@ -120,6 +122,25 @@ export function sniffJsonDialect(root) {
|
|
|
120
122
|
const bare = !hasKey(root, "directed") && !hasKey(root, "multigraph") && !hasKey(root, "graph");
|
|
121
123
|
return bare && hasKey(root, "links") ? "d3" : "node-link";
|
|
122
124
|
}
|
|
125
|
+
/** The node types of OBO Graphs (the OWL entity kinds). */
|
|
126
|
+
const OBOGRAPHS_NODE_TYPES = new Set(["CLASS", "INDIVIDUAL", "PROPERTY"]);
|
|
127
|
+
/**
|
|
128
|
+
* Whether a graph of a `graphs[]` document is an OBO Graphs graph rather than JGF: anywhere in its
|
|
129
|
+
* nodes or edges, an edge with `sub` (or the outdated `subj`) and `obj`, or a `pred`, or a node
|
|
130
|
+
* with `lbl`, `meta` or a `type` of CLASS / INDIVIDUAL / PROPERTY (design 1.6: looking only at the
|
|
131
|
+
* first node and edge misses graphs with no edges and graphs whose first node has no `lbl`).
|
|
132
|
+
* @param graph - the first graph, or null
|
|
133
|
+
* @returns true for OBO Graphs
|
|
134
|
+
*/
|
|
135
|
+
function isOboGraph(graph) {
|
|
136
|
+
if (graph === null) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
const isEdge = (e) => isJsonObject(e) && ((hasKey(e, "obj") && (hasKey(e, "sub") || hasKey(e, "subj"))) || hasKey(e, "pred"));
|
|
140
|
+
const isNode = (n) => isJsonObject(n) && (hasKey(n, "lbl") || hasKey(n, "meta") || OBOGRAPHS_NODE_TYPES.has(n.type));
|
|
141
|
+
return ((Array.isArray(graph.edges) && graph.edges.some(isEdge)) ||
|
|
142
|
+
(Array.isArray(graph.nodes) && graph.nodes.some(isNode)));
|
|
143
|
+
}
|
|
123
144
|
/**
|
|
124
145
|
* The first object of an array, or null.
|
|
125
146
|
* @param value - maybe an array
|
|
@@ -170,6 +191,8 @@ export const DIALECT_DEFAULT_DIRECTED = Object.freeze({
|
|
|
170
191
|
// networkx adjacency_data declares `directed`; tree_graph always builds a DiGraph
|
|
171
192
|
adjacency: false,
|
|
172
193
|
tree: true,
|
|
194
|
+
// OBO Graphs edges point from the subject (child) to the object (parent)
|
|
195
|
+
obographs: true,
|
|
173
196
|
});
|
|
174
197
|
/**
|
|
175
198
|
* The dtypes a JSON dialect keeps as declared: JSON declares no types, so a value reads back as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../../../src/formats/json/dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAMtD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,aAAa,GAA2B,MAAM,CAAC,MAAM,CAAC;IAC/D,WAAW;IACX,IAAI;IACJ,KAAK;IACL,WAAW;IACX,YAAY;IACZ,KAAK;CACR,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../../../src/formats/json/dialect.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,10 +30,19 @@
|
|
|
30
30
|
* endpoint, a declared field of the wrong type, an unknown Cytoscape parent, an id the coercion rule
|
|
31
31
|
* rejects.
|
|
32
32
|
*/
|
|
33
|
-
import { type
|
|
34
|
-
import { type
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
import { type ColumnDecl, type ColumnHandle, type GraphMetaPatch, type GraphSink, type NodeId } from "@graphty/graph-format";
|
|
34
|
+
import { DirectionResolver, type EdgeKind } from "../../common/direction.js";
|
|
35
|
+
import { IdCoercer } from "../../common/ids.js";
|
|
36
|
+
import { type ResolvedImportOptions } from "../../common/options.js";
|
|
37
|
+
import { ImportReportBuilder } from "../../common/report.js";
|
|
38
|
+
import { type GraphChoiceOptions, type GraphImporter } from "../../types.js";
|
|
39
|
+
import { type JsonImportDialect, type JsonShapeMeta } from "./dialect.js";
|
|
40
|
+
/**
|
|
41
|
+
* The format-specific options of the JSON importer. `graphIndex` / `graphName` choose one graph of
|
|
42
|
+
* a JGF or OBO Graphs `graphs` array (the first by default); a graph's name is its `id`, else its
|
|
43
|
+
* label.
|
|
44
|
+
*/
|
|
45
|
+
export interface JsonImportOptions extends GraphChoiceOptions {
|
|
37
46
|
/** The dialect to read; "auto" (default) sniffs the parsed document. */
|
|
38
47
|
dialect?: JsonImportDialect | "auto" | undefined;
|
|
39
48
|
/**
|
|
@@ -52,8 +61,18 @@ export interface JsonImportOptions {
|
|
|
52
61
|
* every endpoint is an integer below the node count and no node id is a number.
|
|
53
62
|
*/
|
|
54
63
|
indexLinks?: boolean | "auto" | undefined;
|
|
55
|
-
/**
|
|
56
|
-
|
|
64
|
+
/**
|
|
65
|
+
* obographs: "curie" (default) reads `http://purl.obolibrary.org/obo/GO_0008150` as `GO:0008150`
|
|
66
|
+
* and `.../obo/go#regulates` as `regulates`, the identifiers the `.obo` file of the same ontology
|
|
67
|
+
* writes; "iri" keeps every IRI as written.
|
|
68
|
+
*/
|
|
69
|
+
oboIds?: "curie" | "iri" | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* obographs: "metadata" (default) keeps PROPERTY nodes and their subPropertyOf / inverseOf edges
|
|
72
|
+
* in `meta.extra.obographs`, as the OBO importer keeps `[Typedef]` frames; "nodes" makes them
|
|
73
|
+
* nodes and edges.
|
|
74
|
+
*/
|
|
75
|
+
typedefs?: "metadata" | "nodes" | undefined;
|
|
57
76
|
/**
|
|
58
77
|
* node-link / d3 / vis / graphology: where the node array is, as a dotted path of object keys
|
|
59
78
|
* from the document root (`"data.nodes"`); the object holding it is read as the graph record
|
|
@@ -109,8 +128,18 @@ export declare const JSON_ISSUE: Readonly<{
|
|
|
109
128
|
ID_MERGED: "W_ID_MERGED";
|
|
110
129
|
/** Edge ids of mixed JSON types were stored as text. */
|
|
111
130
|
EDGE_ID_STRINGIFIED: "W_EDGE_ID_STRINGIFIED";
|
|
112
|
-
/** A JGF `graphs` array holds more than one graph; only
|
|
131
|
+
/** A JGF or OBO Graphs `graphs` array holds more than one graph; only the chosen one is read. */
|
|
113
132
|
MULTIPLE_GRAPHS: "W_MULTIPLE_GRAPHS";
|
|
133
|
+
/** `graphIndex` is beyond the `graphs` array, or `graphName` names none of its graphs (fatal). */
|
|
134
|
+
GRAPH_NOT_FOUND: "E_GRAPH_NOT_FOUND";
|
|
135
|
+
/** `graphName` names more than one graph of the `graphs` array (fatal). */
|
|
136
|
+
AMBIGUOUS_GRAPH_NAME: "E_AMBIGUOUS_GRAPH_NAME";
|
|
137
|
+
/** obographs: an edge uses the outdated `subj` key of the OBO Graphs README; it is read as `sub`. */
|
|
138
|
+
OBOGRAPHS_SUBJ: "W_JSON_OBOGRAPHS_SUBJ";
|
|
139
|
+
/** obographs: an edge endpoint missing from `nodes` (a placeholder node is made, or the edge dropped under addMissingNodes false). */
|
|
140
|
+
DANGLING_REFERENCE: "W_DANGLING_REFERENCE";
|
|
141
|
+
/** The document is longer than one JavaScript string can hold (fatal; category unsupported). */
|
|
142
|
+
TOO_LARGE: "E_TOO_LARGE";
|
|
114
143
|
/** JGF hyperedges under the "error" policy. */
|
|
115
144
|
HYPEREDGE: "E_HYPEREDGE";
|
|
116
145
|
/** JGF hyperedges skipped under the default "skip" policy. */
|
|
@@ -138,8 +167,296 @@ export declare const JSON_ISSUE: Readonly<{
|
|
|
138
167
|
/** A declared encoding the platform cannot decode was ignored. */
|
|
139
168
|
UNKNOWN_ENCODING: "W_UNKNOWN_ENCODING";
|
|
140
169
|
}>;
|
|
170
|
+
export type JsonRecord = Record<string, unknown>;
|
|
171
|
+
/** An edge id column declared from a scan of the file's edge ids. */
|
|
172
|
+
interface EdgeIdColumn {
|
|
173
|
+
readonly handle: ColumnHandle;
|
|
174
|
+
/** Whether numeric ids are stored as text (the file mixes numbers and strings). */
|
|
175
|
+
readonly stringify: boolean;
|
|
176
|
+
/** The id texts seen so far when the dialect requires unique ids, else null. */
|
|
177
|
+
readonly seen: Set<string> | null;
|
|
178
|
+
}
|
|
179
|
+
/** The resolved format-specific options. */
|
|
180
|
+
interface ResolvedJsonOptions {
|
|
181
|
+
readonly dialect: JsonImportDialect | "auto";
|
|
182
|
+
readonly nodeIdKey: string | null;
|
|
183
|
+
readonly edgesKey: string | null;
|
|
184
|
+
readonly sourceKey: string | null;
|
|
185
|
+
readonly targetKey: string | null;
|
|
186
|
+
readonly indexLinks: boolean | "auto";
|
|
187
|
+
readonly graphIndex: number;
|
|
188
|
+
/** The caller's graphIndex / graphName, as given, for chooseGraph(). */
|
|
189
|
+
readonly choice: GraphChoiceOptions;
|
|
190
|
+
/** obographs: CURIE or IRI ids. */
|
|
191
|
+
readonly oboIds: "curie" | "iri";
|
|
192
|
+
/** obographs: PROPERTY nodes as metadata or as nodes. */
|
|
193
|
+
readonly typedefs: "metadata" | "nodes";
|
|
194
|
+
/** The dotted path segments of the node array, or null for the root's own nodes key. */
|
|
195
|
+
readonly nodesPath: readonly string[] | null;
|
|
196
|
+
/** The dotted path segments of the edge array, or null for the edges / links key beside the nodes. */
|
|
197
|
+
readonly edgesPath: readonly string[] | null;
|
|
198
|
+
/** Set by importAll(): every graph of a `graphs` array is read, so none is reported as skipped. */
|
|
199
|
+
readonly all?: boolean;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Writes inferred attribute cells for one table, caching the handle of every column after its
|
|
203
|
+
* first write so the hot loop never looks a column up by name twice. Names that collide with a
|
|
204
|
+
* structural column declared up front are suffixed deterministically (design section 5.6).
|
|
205
|
+
*/
|
|
206
|
+
declare class AttributeWriter {
|
|
207
|
+
private readonly sink;
|
|
208
|
+
private readonly domain;
|
|
209
|
+
private readonly handles;
|
|
210
|
+
private readonly reservedNames;
|
|
211
|
+
/**
|
|
212
|
+
* Create a writer.
|
|
213
|
+
* @param sink - the sink
|
|
214
|
+
* @param domain - node or edge
|
|
215
|
+
*/
|
|
216
|
+
constructor(sink: GraphSink, domain: "node" | "edge");
|
|
217
|
+
/**
|
|
218
|
+
* Declare a structural column up front; attribute keys with its name are suffixed from now on.
|
|
219
|
+
* @param decl - the declaration
|
|
220
|
+
* @returns the handle
|
|
221
|
+
*/
|
|
222
|
+
declare(decl: ColumnDecl): ColumnHandle;
|
|
223
|
+
/**
|
|
224
|
+
* Declare a structural column only when the file uses it.
|
|
225
|
+
* @param decl - the declaration
|
|
226
|
+
* @param present - whether any element carries the field
|
|
227
|
+
* @returns the handle, or INVALID_INDEX when not declared
|
|
228
|
+
*/
|
|
229
|
+
declareIf(decl: ColumnDecl, present: boolean): ColumnHandle;
|
|
230
|
+
/**
|
|
231
|
+
* Whether a name is taken in the sink's table (for the deterministic rename rule).
|
|
232
|
+
* @param name - the column name
|
|
233
|
+
* @returns true when a column of that name exists
|
|
234
|
+
*/
|
|
235
|
+
taken(name: string): boolean;
|
|
236
|
+
/**
|
|
237
|
+
* Write one attribute cell by its source key; null and undefined leave the row unset.
|
|
238
|
+
* @param row - the node or edge index
|
|
239
|
+
* @param key - the source key
|
|
240
|
+
* @param value - the JSON value
|
|
241
|
+
* @param suffix - the suffix applied when the key collides with a structural column
|
|
242
|
+
*/
|
|
243
|
+
write(row: number, key: string, value: unknown, suffix: string): void;
|
|
244
|
+
/**
|
|
245
|
+
* Write through a handle or a name.
|
|
246
|
+
* @param column - the handle or name
|
|
247
|
+
* @param row - the row
|
|
248
|
+
* @param value - the value
|
|
249
|
+
*/
|
|
250
|
+
set(column: ColumnHandle | string, row: number, value: unknown): void;
|
|
251
|
+
/**
|
|
252
|
+
* Look a column up by name.
|
|
253
|
+
* @param name - the column name
|
|
254
|
+
* @returns the handle, or INVALID_INDEX
|
|
255
|
+
*/
|
|
256
|
+
private lookup;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Everything one import call shares between the dialect readers.
|
|
260
|
+
*/
|
|
261
|
+
export declare class ImportContext {
|
|
262
|
+
readonly sink: GraphSink;
|
|
263
|
+
readonly report: ImportReportBuilder;
|
|
264
|
+
readonly options: ResolvedImportOptions;
|
|
265
|
+
readonly json: ResolvedJsonOptions;
|
|
266
|
+
readonly ids: IdCoercer;
|
|
267
|
+
readonly direction: DirectionResolver;
|
|
268
|
+
readonly nodes: AttributeWriter;
|
|
269
|
+
readonly edges: AttributeWriter;
|
|
270
|
+
/** Whether the caller passed `defaultDirected` explicitly (then it beats the dialect's convention). */
|
|
271
|
+
readonly explicitDefaultDirected: boolean;
|
|
272
|
+
/** Nodes and edges pushed since the signal was last checked. */
|
|
273
|
+
private elementsSinceCheck;
|
|
274
|
+
/**
|
|
275
|
+
* Create the context.
|
|
276
|
+
* @param sink - the sink
|
|
277
|
+
* @param report - the report
|
|
278
|
+
* @param options - the resolved common options
|
|
279
|
+
* @param json - the resolved format options
|
|
280
|
+
* @param explicitDefaultDirected - whether the caller passed defaultDirected
|
|
281
|
+
*/
|
|
282
|
+
constructor(sink: GraphSink, report: ImportReportBuilder, options: ResolvedImportOptions, json: ResolvedJsonOptions, explicitDefaultDirected: boolean);
|
|
283
|
+
/**
|
|
284
|
+
* Report a `nodeIdFrom` other than "id" for a dialect whose ids are unambiguous.
|
|
285
|
+
* @param dialect - the dialect
|
|
286
|
+
* @param idField - where the dialect's ids come from, for the message
|
|
287
|
+
*/
|
|
288
|
+
reportNodeIdFrom(dialect: JsonImportDialect, idField: string): void;
|
|
289
|
+
/**
|
|
290
|
+
* The direction assumed when the file declares none: the caller's `defaultDirected` when given,
|
|
291
|
+
* else the dialect's convention.
|
|
292
|
+
* @param dialect - the dialect
|
|
293
|
+
* @returns the direction
|
|
294
|
+
*/
|
|
295
|
+
defaultDirected(dialect: JsonImportDialect): boolean;
|
|
296
|
+
/** The direction the file declares (or the default), set by setHeader(). */
|
|
297
|
+
private fileDirected;
|
|
298
|
+
/**
|
|
299
|
+
* Rule 1 of design section 8.4: set the sink's direction from the file's header (or the
|
|
300
|
+
* dialect's default) before the first edge, remembering the file's direction for uniformKind().
|
|
301
|
+
* @param directed - the file's direction
|
|
302
|
+
*/
|
|
303
|
+
setHeader(directed: boolean): void;
|
|
304
|
+
/**
|
|
305
|
+
* The edge kind every edge of a dialect without per-edge direction has: the file's direction
|
|
306
|
+
* (the resolver expands it when the sink's direction differs).
|
|
307
|
+
* @returns the kind
|
|
308
|
+
*/
|
|
309
|
+
uniformKind(): EdgeKind;
|
|
310
|
+
/**
|
|
311
|
+
* Coerce a node id value per the `ids` option, reporting what cannot be an id. A JSON boolean or
|
|
312
|
+
* null is `unsupported` unless `ids` is "string" (design section 8.5); anything the rule rejects
|
|
313
|
+
* is recorded through the per-element catch.
|
|
314
|
+
* @param raw - the JSON value; undefined when the record has no id key
|
|
315
|
+
* @param element - the element name for the issue
|
|
316
|
+
* @returns the id, or null when the value was reported and the element must be skipped
|
|
317
|
+
*/
|
|
318
|
+
coerceId(raw: unknown, element: string): NodeId | null;
|
|
319
|
+
/**
|
|
320
|
+
* Coerce an id that must be valid for the caller to proceed (hyperedge members): the rejections
|
|
321
|
+
* of coerceId() are thrown instead of recorded.
|
|
322
|
+
* @param raw - the JSON value
|
|
323
|
+
* @param element - the element name
|
|
324
|
+
* @returns the id
|
|
325
|
+
*/
|
|
326
|
+
requireId(raw: unknown, element: string): NodeId;
|
|
327
|
+
/**
|
|
328
|
+
* Add a node, counting it or recording the failure.
|
|
329
|
+
* @param id - the node id
|
|
330
|
+
* @param element - the element name
|
|
331
|
+
* @returns the node index, or -1 when the sink refused the node
|
|
332
|
+
*/
|
|
333
|
+
pushNode(id: NodeId, element: string): number;
|
|
334
|
+
/**
|
|
335
|
+
* Push one edge through the direction resolver, counting every logical edge the sink gained
|
|
336
|
+
* (both halves of an expanded edge, and the mirrors of an in-place expansion).
|
|
337
|
+
* @param source - the source id
|
|
338
|
+
* @param target - the target id
|
|
339
|
+
* @param kind - the edge's direction in the file
|
|
340
|
+
* @param weight - the weight, or undefined
|
|
341
|
+
* @param element - the element name for issues
|
|
342
|
+
* @returns the primary edge index
|
|
343
|
+
*/
|
|
344
|
+
pushEdge(source: NodeId, target: NodeId, kind: EdgeKind, weight: number | undefined, element: string): number;
|
|
345
|
+
/**
|
|
346
|
+
* Check the cancellation signal every ABORT_CHECK_INTERVAL pushed elements, so an abort raised
|
|
347
|
+
* while the whole in-memory document is being walked rejects promptly.
|
|
348
|
+
*/
|
|
349
|
+
checkAbort(): void;
|
|
350
|
+
/**
|
|
351
|
+
* Record a per-element failure and count the skipped element.
|
|
352
|
+
* @param err - the thrown value
|
|
353
|
+
* @param domain - which counter to bump
|
|
354
|
+
* @param element - the element name
|
|
355
|
+
*/
|
|
356
|
+
skip(err: unknown, domain: "node" | "edge", element: string): void;
|
|
357
|
+
/**
|
|
358
|
+
* Report an element that is not an object and count it as skipped.
|
|
359
|
+
* @param domain - node or edge
|
|
360
|
+
* @param element - the element name
|
|
361
|
+
* @param what - what was expected
|
|
362
|
+
*/
|
|
363
|
+
badElement(domain: "node" | "edge", element: string, what?: string): void;
|
|
364
|
+
/**
|
|
365
|
+
* Count a skipped element whose issue was already recorded.
|
|
366
|
+
* @param domain - node or edge
|
|
367
|
+
*/
|
|
368
|
+
countSkipped(domain: "node" | "edge"): void;
|
|
369
|
+
/**
|
|
370
|
+
* Report an edge record without an endpoint and count it as skipped.
|
|
371
|
+
* @param element - the element name
|
|
372
|
+
* @param field - the missing field
|
|
373
|
+
*/
|
|
374
|
+
missingEndpoint(element: string, field: string): void;
|
|
375
|
+
/**
|
|
376
|
+
* Record the shape metadata, the source format and further metadata fields in one setMeta()
|
|
377
|
+
* call (the sink replaces `extra` as a whole).
|
|
378
|
+
* @param shape - the shape record
|
|
379
|
+
* @param patch - further metadata fields
|
|
380
|
+
*/
|
|
381
|
+
setMeta(shape: JsonShapeMeta, patch?: GraphMetaPatch): void;
|
|
382
|
+
/**
|
|
383
|
+
* Record which source field the weight came from, so the exporter writes it back under the same
|
|
384
|
+
* key (design section 3.7, `meta.weightOrigin`).
|
|
385
|
+
* @returns the metadata patch, empty for an unweighted import
|
|
386
|
+
*/
|
|
387
|
+
weightOriginPatch(): GraphMetaPatch;
|
|
388
|
+
/**
|
|
389
|
+
* Write the graph-level attributes of a dict (NetworkX `graph`, JGF `metadata`, graphology
|
|
390
|
+
* `attributes`, Cytoscape `data`), one column per key.
|
|
391
|
+
* @param dict - the dict, or anything else (then reported)
|
|
392
|
+
* @param what - the dict's name for the issue
|
|
393
|
+
*/
|
|
394
|
+
writeGraphDict(dict: unknown, what: string): void;
|
|
395
|
+
/**
|
|
396
|
+
* Read the weight field of an edge record.
|
|
397
|
+
* @param record - the record holding the attributes
|
|
398
|
+
* @returns the weight, or undefined when absent or null; E_INVALID_WEIGHT otherwise
|
|
399
|
+
*/
|
|
400
|
+
weightOf(record: JsonRecord): number | undefined;
|
|
401
|
+
/**
|
|
402
|
+
* Write the attributes of a nested dict plus the element-level keys the dialect does not
|
|
403
|
+
* define (kept with the `#element` suffix).
|
|
404
|
+
* @param writer - the table writer
|
|
405
|
+
* @param row - the row
|
|
406
|
+
* @param record - the element record
|
|
407
|
+
* @param dict - the nested attribute dict
|
|
408
|
+
* @param structural - the element keys that are not attributes
|
|
409
|
+
* @param weightFrom - the weight key to skip in the dict, or null
|
|
410
|
+
*/
|
|
411
|
+
writeNested(writer: AttributeWriter, row: number, record: JsonRecord, dict: JsonRecord, structural: ReadonlySet<string>, weightFrom: string | null): void;
|
|
412
|
+
/**
|
|
413
|
+
* Write a spec-typed string field (JGF label / relation), reporting a value of another type.
|
|
414
|
+
* @param writer - the table writer
|
|
415
|
+
* @param column - the declared column, or INVALID_INDEX when the file has no such field
|
|
416
|
+
* @param row - the row
|
|
417
|
+
* @param value - the value
|
|
418
|
+
* @param field - the field name
|
|
419
|
+
* @param element - the element name
|
|
420
|
+
*/
|
|
421
|
+
writeStringField(writer: AttributeWriter, column: ColumnHandle, row: number, value: unknown, field: string, element: string): void;
|
|
422
|
+
/**
|
|
423
|
+
* Declare an edge id column with role "id" from a scan of the file's edge ids: f64 when every
|
|
424
|
+
* id is a number, string otherwise (numbers are then stored as their text and reported once).
|
|
425
|
+
* @param edges - the edge records
|
|
426
|
+
* @param read - how to read an edge's raw id
|
|
427
|
+
* @param name - the column name
|
|
428
|
+
* @param unique - whether uniqueness is enforced at freeze
|
|
429
|
+
* @returns the column, or null when no edge has an id
|
|
430
|
+
*/
|
|
431
|
+
declareEdgeIds(edges: readonly unknown[], read: (edge: JsonRecord) => unknown, name: string, unique: boolean): EdgeIdColumn | null;
|
|
432
|
+
/**
|
|
433
|
+
* The value an edge id column stores for a raw id, checked BEFORE the edge is pushed so a bad
|
|
434
|
+
* id skips the edge without touching the sink (design section 11.1).
|
|
435
|
+
* @param column - the column, or null when the file has no edge ids
|
|
436
|
+
* @param raw - the raw id value
|
|
437
|
+
* @returns the value to store, or null when there is nothing to store
|
|
438
|
+
*/
|
|
439
|
+
edgeIdValue(column: EdgeIdColumn | null, raw: unknown): string | number | null;
|
|
440
|
+
/**
|
|
441
|
+
* Write an edge id value from edgeIdValue().
|
|
442
|
+
* @param column - the column, or null
|
|
443
|
+
* @param edge - the edge index
|
|
444
|
+
* @param value - the value, or null for none
|
|
445
|
+
*/
|
|
446
|
+
setEdgeId(column: EdgeIdColumn | null, edge: number, value: string | number | null): void;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* The graph of a `graphs` array (JGF, OBO Graphs) that graphIndex / graphName choose, with
|
|
450
|
+
* W_MULTIPLE_GRAPHS when the others are skipped; importAll() reads graphs[graphIndex].
|
|
451
|
+
* @param ctx - the context
|
|
452
|
+
* @param root - the document
|
|
453
|
+
* @param what - the dialect's name, for the messages
|
|
454
|
+
* @returns the graph object; the import fails when there is none
|
|
455
|
+
*/
|
|
456
|
+
export declare function chosenGraph(ctx: ImportContext, root: JsonRecord, what: string): JsonRecord;
|
|
141
457
|
/**
|
|
142
458
|
* The JSON importer plugin (design section 8.4).
|
|
143
459
|
*/
|
|
144
460
|
export declare const jsonImporter: GraphImporter<JsonImportOptions>;
|
|
461
|
+
export {};
|
|
145
462
|
//# sourceMappingURL=importer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../../src/formats/json/importer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;
|
|
1
|
+
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../../src/formats/json/importer.ts"],"names":[],"mappings":"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"}
|