@loaders.gl/graphs 5.0.0-alpha.9
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 +66 -0
- package/dist/dot-loader-types.d.ts +36 -0
- package/dist/dot-loader-types.d.ts.map +1 -0
- package/dist/dot-loader-types.js +26 -0
- package/dist/dot-loader-types.js.map +1 -0
- package/dist/dot-loader.cjs +1482 -0
- package/dist/dot-loader.cjs.map +6 -0
- package/dist/dot-loader.d.ts +20 -0
- package/dist/dot-loader.d.ts.map +1 -0
- package/dist/dot-loader.js +13 -0
- package/dist/dot-loader.js.map +1 -0
- package/dist/dot-types.d.ts +32 -0
- package/dist/dot-types.d.ts.map +1 -0
- package/dist/dot-types.js +5 -0
- package/dist/dot-types.js.map +1 -0
- package/dist/graph-types.d.ts +28 -0
- package/dist/graph-types.d.ts.map +1 -0
- package/dist/graph-types.js +5 -0
- package/dist/graph-types.js.map +1 -0
- package/dist/graphml-loader-types.d.ts +36 -0
- package/dist/graphml-loader-types.d.ts.map +1 -0
- package/dist/graphml-loader-types.js +26 -0
- package/dist/graphml-loader-types.js.map +1 -0
- package/dist/graphml-loader.cjs +650 -0
- package/dist/graphml-loader.cjs.map +6 -0
- package/dist/graphml-loader.d.ts +20 -0
- package/dist/graphml-loader.d.ts.map +1 -0
- package/dist/graphml-loader.js +13 -0
- package/dist/graphml-loader.js.map +1 -0
- package/dist/index.cjs +1136 -0
- package/dist/index.cjs.map +6 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/parse-dot.d.ts +4 -0
- package/dist/lib/parse-dot.d.ts.map +1 -0
- package/dist/lib/parse-dot.js +724 -0
- package/dist/lib/parse-dot.js.map +1 -0
- package/dist/lib/parse-graphml.d.ts +6 -0
- package/dist/lib/parse-graphml.d.ts.map +1 -0
- package/dist/lib/parse-graphml.js +296 -0
- package/dist/lib/parse-graphml.js.map +1 -0
- package/package.json +58 -0
- package/src/dot-loader-types.ts +31 -0
- package/src/dot-loader.ts +14 -0
- package/src/dot-types.ts +38 -0
- package/src/graph-types.ts +33 -0
- package/src/graphml-loader-types.ts +31 -0
- package/src/graphml-loader.ts +14 -0
- package/src/index.ts +8 -0
- package/src/lib/parse-dot.ts +924 -0
- package/src/lib/parse-graphml.ts +414 -0
|
@@ -0,0 +1,650 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __esm = (fn, res, err) => function __init() {
|
|
7
|
+
if (err) throw err[0];
|
|
8
|
+
try {
|
|
9
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
10
|
+
} catch (e) {
|
|
11
|
+
throw err = [e], e;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
var __export = (target, all) => {
|
|
15
|
+
for (var name in all)
|
|
16
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
+
};
|
|
18
|
+
var __copyProps = (to, from, except, desc) => {
|
|
19
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
+
for (let key of __getOwnPropNames(from))
|
|
21
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
+
}
|
|
24
|
+
return to;
|
|
25
|
+
};
|
|
26
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
+
|
|
28
|
+
// src/graphml-loader-types.ts
|
|
29
|
+
async function preload() {
|
|
30
|
+
const { GraphMLLoaderWithParser: GraphMLLoaderWithParser3 } = await Promise.resolve().then(() => (init_graphml_loader(), graphml_loader_exports));
|
|
31
|
+
return GraphMLLoaderWithParser3;
|
|
32
|
+
}
|
|
33
|
+
var VERSION, GraphMLLoader;
|
|
34
|
+
var init_graphml_loader_types = __esm({
|
|
35
|
+
"src/graphml-loader-types.ts"() {
|
|
36
|
+
"use strict";
|
|
37
|
+
VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
38
|
+
GraphMLLoader = {
|
|
39
|
+
name: "GraphML",
|
|
40
|
+
id: "graphml",
|
|
41
|
+
module: "graphs",
|
|
42
|
+
version: VERSION,
|
|
43
|
+
extensions: ["graphml"],
|
|
44
|
+
mimeTypes: ["application/graphml+xml"],
|
|
45
|
+
text: true,
|
|
46
|
+
worker: false,
|
|
47
|
+
dataType: null,
|
|
48
|
+
batchType: null,
|
|
49
|
+
options: {},
|
|
50
|
+
preload
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
// src/lib/parse-graphml.ts
|
|
56
|
+
function parseGraphML(graphml) {
|
|
57
|
+
const xmlText = decodeGraphML(graphml);
|
|
58
|
+
const document = graphmlParser.parse(xmlText);
|
|
59
|
+
const graphmlRoot = getGraphMLRoot(document);
|
|
60
|
+
if (!graphmlRoot) {
|
|
61
|
+
throw new Error("GraphML document does not contain a <graphml> element.");
|
|
62
|
+
}
|
|
63
|
+
const graphElement = getGraphElement(graphmlRoot);
|
|
64
|
+
if (!graphElement) {
|
|
65
|
+
throw new Error("GraphML document does not contain a <graph> element.");
|
|
66
|
+
}
|
|
67
|
+
const keyDefinitions = collectKeyDefinitions(graphmlRoot, graphElement);
|
|
68
|
+
const defaultDirected = parseEdgeDefault(graphElement[`${XML_ATTRIBUTE_PREFIX}edgedefault`]);
|
|
69
|
+
const nodes = normalizeArray(graphElement.node).map((node) => parseNode(node, keyDefinitions));
|
|
70
|
+
const edges = normalizeArray(graphElement.edge).map(
|
|
71
|
+
(edge, index) => parseEdge(edge, index, keyDefinitions, defaultDirected)
|
|
72
|
+
);
|
|
73
|
+
const filteredNodes = nodes.filter((node) => Boolean(node));
|
|
74
|
+
const filteredEdges = edges.filter((edge) => Boolean(edge));
|
|
75
|
+
return {
|
|
76
|
+
shape: "plain-graph-data",
|
|
77
|
+
nodes: filteredNodes,
|
|
78
|
+
edges: filteredEdges
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function decodeGraphML(graphml) {
|
|
82
|
+
if (typeof graphml === "string") {
|
|
83
|
+
return graphml;
|
|
84
|
+
}
|
|
85
|
+
if (graphml instanceof Uint8Array) {
|
|
86
|
+
return new TextDecoder().decode(graphml);
|
|
87
|
+
}
|
|
88
|
+
if (graphml instanceof ArrayBuffer) {
|
|
89
|
+
return new TextDecoder().decode(new Uint8Array(graphml));
|
|
90
|
+
}
|
|
91
|
+
throw new Error("Unsupported GraphML input. Expected a string, ArrayBuffer, or Uint8Array.");
|
|
92
|
+
}
|
|
93
|
+
function getGraphMLRoot(document) {
|
|
94
|
+
const root = document.graphml;
|
|
95
|
+
if (isObject(root)) {
|
|
96
|
+
return root;
|
|
97
|
+
}
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
function getGraphElement(graphmlRoot) {
|
|
101
|
+
const graph = graphmlRoot.graph;
|
|
102
|
+
if (!graph) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
if (Array.isArray(graph)) {
|
|
106
|
+
const firstGraph = graph.find((entry) => isObject(entry));
|
|
107
|
+
return isObject(firstGraph) ? firstGraph : null;
|
|
108
|
+
}
|
|
109
|
+
return isObject(graph) ? graph : null;
|
|
110
|
+
}
|
|
111
|
+
function collectKeyDefinitions(graphmlRoot, graphElement) {
|
|
112
|
+
const keys = /* @__PURE__ */ new Map();
|
|
113
|
+
for (const candidate of [
|
|
114
|
+
...normalizeArray(graphmlRoot.key),
|
|
115
|
+
...normalizeArray(graphElement.key)
|
|
116
|
+
]) {
|
|
117
|
+
if (isObject(candidate)) {
|
|
118
|
+
const id = String(candidate[`${XML_ATTRIBUTE_PREFIX}id`] ?? "").trim();
|
|
119
|
+
if (id) {
|
|
120
|
+
const domain = normalizeDomain(candidate[`${XML_ATTRIBUTE_PREFIX}for`]);
|
|
121
|
+
const name = String(candidate[`${XML_ATTRIBUTE_PREFIX}attr.name`] ?? id).trim();
|
|
122
|
+
const type = normalizeType(candidate[`${XML_ATTRIBUTE_PREFIX}attr.type`]);
|
|
123
|
+
const defaultNode = candidate.default ?? null;
|
|
124
|
+
const defaultValue = defaultNode !== null ? castDataValue(defaultNode, type) : void 0;
|
|
125
|
+
keys.set(id, { id, domain, name, type, defaultValue });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return keys;
|
|
130
|
+
}
|
|
131
|
+
function parseNode(node, keyDefinitions) {
|
|
132
|
+
if (!isObject(node)) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
const id = node[`${XML_ATTRIBUTE_PREFIX}id`];
|
|
136
|
+
if (typeof id !== "string") {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
const attributes = buildAttributeBag("node", node.data, keyDefinitions);
|
|
140
|
+
const graphNode = {
|
|
141
|
+
id,
|
|
142
|
+
attributes: Object.keys(attributes).length > 0 ? attributes : void 0
|
|
143
|
+
};
|
|
144
|
+
const label = attributes.label;
|
|
145
|
+
if (typeof label === "string") {
|
|
146
|
+
graphNode.label = label;
|
|
147
|
+
}
|
|
148
|
+
return graphNode;
|
|
149
|
+
}
|
|
150
|
+
function parseEdge(edge, index, keyDefinitions, defaultDirected) {
|
|
151
|
+
if (!isObject(edge)) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
const sourceId = edge[`${XML_ATTRIBUTE_PREFIX}source`];
|
|
155
|
+
const targetId = edge[`${XML_ATTRIBUTE_PREFIX}target`];
|
|
156
|
+
if (typeof sourceId !== "string") {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
if (typeof targetId !== "string") {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
const rawId = edge[`${XML_ATTRIBUTE_PREFIX}id`];
|
|
163
|
+
const id = typeof rawId === "string" ? rawId : `edge-${index}`;
|
|
164
|
+
const directed = parseDirected(edge[`${XML_ATTRIBUTE_PREFIX}directed`], defaultDirected);
|
|
165
|
+
const attributes = buildAttributeBag("edge", edge.data, keyDefinitions);
|
|
166
|
+
const graphEdge = {
|
|
167
|
+
id,
|
|
168
|
+
sourceId,
|
|
169
|
+
targetId,
|
|
170
|
+
directed,
|
|
171
|
+
attributes: Object.keys(attributes).length > 0 ? attributes : void 0
|
|
172
|
+
};
|
|
173
|
+
const label = attributes.label;
|
|
174
|
+
if (typeof label === "string") {
|
|
175
|
+
graphEdge.label = label;
|
|
176
|
+
}
|
|
177
|
+
return graphEdge;
|
|
178
|
+
}
|
|
179
|
+
function buildAttributeBag(domain, data, keyDefinitions) {
|
|
180
|
+
const attributes = /* @__PURE__ */ Object.create(null);
|
|
181
|
+
for (const key of keyDefinitions.values()) {
|
|
182
|
+
if (key.domain === "all" || key.domain === domain) {
|
|
183
|
+
if (key.defaultValue !== void 0) {
|
|
184
|
+
attributes[key.name] = key.defaultValue;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
for (const entry of normalizeArray(data)) {
|
|
189
|
+
assignAttributeFromDataEntry(entry, keyDefinitions, attributes);
|
|
190
|
+
}
|
|
191
|
+
return attributes;
|
|
192
|
+
}
|
|
193
|
+
function assignAttributeFromDataEntry(entry, keyDefinitions, attributes) {
|
|
194
|
+
if (!isObject(entry)) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
const keyId = entry[`${XML_ATTRIBUTE_PREFIX}key`];
|
|
198
|
+
if (typeof keyId !== "string") {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
const definition = keyDefinitions.get(keyId);
|
|
202
|
+
const attributeName = (definition == null ? void 0 : definition.name) ?? keyId;
|
|
203
|
+
const value = castDataValue(entry, (definition == null ? void 0 : definition.type) ?? "string");
|
|
204
|
+
if (value !== void 0) {
|
|
205
|
+
attributes[attributeName] = value;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
function castDataValue(value, type) {
|
|
209
|
+
if (value === null || typeof value === "undefined") {
|
|
210
|
+
return void 0;
|
|
211
|
+
}
|
|
212
|
+
const text = extractTextContent(value);
|
|
213
|
+
if (text === void 0) {
|
|
214
|
+
return void 0;
|
|
215
|
+
}
|
|
216
|
+
if (type === "boolean") {
|
|
217
|
+
return parseBoolean(text);
|
|
218
|
+
}
|
|
219
|
+
if (type === "int" || type === "long") {
|
|
220
|
+
const parsed = Number.parseInt(text, 10);
|
|
221
|
+
return Number.isNaN(parsed) ? text : parsed;
|
|
222
|
+
}
|
|
223
|
+
if (type === "float" || type === "double") {
|
|
224
|
+
const parsed = Number.parseFloat(text);
|
|
225
|
+
return Number.isNaN(parsed) ? text : parsed;
|
|
226
|
+
}
|
|
227
|
+
return text;
|
|
228
|
+
}
|
|
229
|
+
function extractTextContent(value) {
|
|
230
|
+
if (typeof value === "string") {
|
|
231
|
+
return value;
|
|
232
|
+
}
|
|
233
|
+
if (typeof value === "number" || typeof value === "boolean") {
|
|
234
|
+
return String(value);
|
|
235
|
+
}
|
|
236
|
+
if (Array.isArray(value)) {
|
|
237
|
+
return extractTextContent(value[0]);
|
|
238
|
+
}
|
|
239
|
+
if (isObject(value)) {
|
|
240
|
+
const text = value[XML_TEXT_KEY];
|
|
241
|
+
if (typeof text === "string") {
|
|
242
|
+
return text;
|
|
243
|
+
}
|
|
244
|
+
const nonAttributeEntries = Object.entries(value).filter(
|
|
245
|
+
([key]) => !key.startsWith(XML_ATTRIBUTE_PREFIX)
|
|
246
|
+
);
|
|
247
|
+
if (nonAttributeEntries.length === 0) {
|
|
248
|
+
return void 0;
|
|
249
|
+
}
|
|
250
|
+
return JSON.stringify(Object.fromEntries(nonAttributeEntries));
|
|
251
|
+
}
|
|
252
|
+
return void 0;
|
|
253
|
+
}
|
|
254
|
+
function normalizeArray(value) {
|
|
255
|
+
if (!value) {
|
|
256
|
+
return [];
|
|
257
|
+
}
|
|
258
|
+
return Array.isArray(value) ? value : [value];
|
|
259
|
+
}
|
|
260
|
+
function isObject(value) {
|
|
261
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
262
|
+
}
|
|
263
|
+
function normalizeDomain(value) {
|
|
264
|
+
if (typeof value !== "string") {
|
|
265
|
+
return "all";
|
|
266
|
+
}
|
|
267
|
+
const lower = value.toLowerCase();
|
|
268
|
+
if (lower === "node" || lower === "edge" || lower === "graph" || lower === "all") {
|
|
269
|
+
return lower;
|
|
270
|
+
}
|
|
271
|
+
return "all";
|
|
272
|
+
}
|
|
273
|
+
function normalizeType(value) {
|
|
274
|
+
if (typeof value !== "string") {
|
|
275
|
+
return "string";
|
|
276
|
+
}
|
|
277
|
+
const lower = value.toLowerCase();
|
|
278
|
+
if (lower === "boolean" || lower === "int" || lower === "long" || lower === "float" || lower === "double") {
|
|
279
|
+
return lower;
|
|
280
|
+
}
|
|
281
|
+
return "string";
|
|
282
|
+
}
|
|
283
|
+
function parseEdgeDefault(value) {
|
|
284
|
+
if (typeof value !== "string") {
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
return value.toLowerCase() !== "undirected";
|
|
288
|
+
}
|
|
289
|
+
function parseDirected(value, defaultDirected) {
|
|
290
|
+
if (typeof value === "string") {
|
|
291
|
+
const normalized = value.trim().toLowerCase();
|
|
292
|
+
if (normalized === "true" || normalized === "1" || normalized === "yes" || normalized === "directed") {
|
|
293
|
+
return true;
|
|
294
|
+
}
|
|
295
|
+
if (normalized === "false" || normalized === "0" || normalized === "no" || normalized === "undirected") {
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return defaultDirected;
|
|
300
|
+
}
|
|
301
|
+
function parseBoolean(value) {
|
|
302
|
+
const normalized = value.trim().toLowerCase();
|
|
303
|
+
if (normalized === "true" || normalized === "1" || normalized === "yes" || normalized === "y") {
|
|
304
|
+
return true;
|
|
305
|
+
}
|
|
306
|
+
if (normalized === "false" || normalized === "0" || normalized === "no" || normalized === "n") {
|
|
307
|
+
return false;
|
|
308
|
+
}
|
|
309
|
+
return Boolean(value);
|
|
310
|
+
}
|
|
311
|
+
var import_fast_xml_parser, XML_ATTRIBUTE_PREFIX, XML_TEXT_KEY, graphmlParser;
|
|
312
|
+
var init_parse_graphml = __esm({
|
|
313
|
+
"src/lib/parse-graphml.ts"() {
|
|
314
|
+
"use strict";
|
|
315
|
+
import_fast_xml_parser = require("fast-xml-parser");
|
|
316
|
+
XML_ATTRIBUTE_PREFIX = "@_";
|
|
317
|
+
XML_TEXT_KEY = "#text";
|
|
318
|
+
graphmlParser = new import_fast_xml_parser.XMLParser({
|
|
319
|
+
ignoreAttributes: false,
|
|
320
|
+
attributeNamePrefix: XML_ATTRIBUTE_PREFIX,
|
|
321
|
+
textNodeName: XML_TEXT_KEY,
|
|
322
|
+
trimValues: true,
|
|
323
|
+
parseAttributeValue: false,
|
|
324
|
+
parseTagValue: false,
|
|
325
|
+
removeNSPrefix: true
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
// src/graphml-loader.ts
|
|
331
|
+
var graphml_loader_exports = {};
|
|
332
|
+
__export(graphml_loader_exports, {
|
|
333
|
+
GraphMLLoaderWithParser: () => GraphMLLoaderWithParser
|
|
334
|
+
});
|
|
335
|
+
var GraphMLLoaderWithParser;
|
|
336
|
+
var init_graphml_loader = __esm({
|
|
337
|
+
"src/graphml-loader.ts"() {
|
|
338
|
+
"use strict";
|
|
339
|
+
init_graphml_loader_types();
|
|
340
|
+
init_parse_graphml();
|
|
341
|
+
GraphMLLoaderWithParser = {
|
|
342
|
+
...GraphMLLoader,
|
|
343
|
+
parse: async (data) => parseGraphML(data),
|
|
344
|
+
parseSync: parseGraphML,
|
|
345
|
+
parseTextSync: parseGraphML
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
// dist/graphml-loader.js
|
|
351
|
+
var graphml_loader_exports2 = {};
|
|
352
|
+
__export(graphml_loader_exports2, {
|
|
353
|
+
GraphMLLoaderWithParser: () => GraphMLLoaderWithParser2
|
|
354
|
+
});
|
|
355
|
+
module.exports = __toCommonJS(graphml_loader_exports2);
|
|
356
|
+
|
|
357
|
+
// dist/graphml-loader-types.js
|
|
358
|
+
var VERSION2 = true ? "5.0.0-alpha.9" : "latest";
|
|
359
|
+
async function preload2() {
|
|
360
|
+
const { GraphMLLoaderWithParser: GraphMLLoaderWithParser3 } = await Promise.resolve().then(() => (init_graphml_loader(), graphml_loader_exports));
|
|
361
|
+
return GraphMLLoaderWithParser3;
|
|
362
|
+
}
|
|
363
|
+
var GraphMLLoader2 = {
|
|
364
|
+
name: "GraphML",
|
|
365
|
+
id: "graphml",
|
|
366
|
+
module: "graphs",
|
|
367
|
+
version: VERSION2,
|
|
368
|
+
extensions: ["graphml"],
|
|
369
|
+
mimeTypes: ["application/graphml+xml"],
|
|
370
|
+
text: true,
|
|
371
|
+
worker: false,
|
|
372
|
+
dataType: null,
|
|
373
|
+
batchType: null,
|
|
374
|
+
options: {},
|
|
375
|
+
preload: preload2
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
// dist/lib/parse-graphml.js
|
|
379
|
+
var import_fast_xml_parser2 = require("fast-xml-parser");
|
|
380
|
+
var XML_ATTRIBUTE_PREFIX2 = "@_";
|
|
381
|
+
var XML_TEXT_KEY2 = "#text";
|
|
382
|
+
var graphmlParser2 = new import_fast_xml_parser2.XMLParser({
|
|
383
|
+
ignoreAttributes: false,
|
|
384
|
+
attributeNamePrefix: XML_ATTRIBUTE_PREFIX2,
|
|
385
|
+
textNodeName: XML_TEXT_KEY2,
|
|
386
|
+
trimValues: true,
|
|
387
|
+
parseAttributeValue: false,
|
|
388
|
+
parseTagValue: false,
|
|
389
|
+
removeNSPrefix: true
|
|
390
|
+
});
|
|
391
|
+
function parseGraphML2(graphml) {
|
|
392
|
+
const xmlText = decodeGraphML2(graphml);
|
|
393
|
+
const document = graphmlParser2.parse(xmlText);
|
|
394
|
+
const graphmlRoot = getGraphMLRoot2(document);
|
|
395
|
+
if (!graphmlRoot) {
|
|
396
|
+
throw new Error("GraphML document does not contain a <graphml> element.");
|
|
397
|
+
}
|
|
398
|
+
const graphElement = getGraphElement2(graphmlRoot);
|
|
399
|
+
if (!graphElement) {
|
|
400
|
+
throw new Error("GraphML document does not contain a <graph> element.");
|
|
401
|
+
}
|
|
402
|
+
const keyDefinitions = collectKeyDefinitions2(graphmlRoot, graphElement);
|
|
403
|
+
const defaultDirected = parseEdgeDefault2(graphElement[`${XML_ATTRIBUTE_PREFIX2}edgedefault`]);
|
|
404
|
+
const nodes = normalizeArray2(graphElement.node).map((node) => parseNode2(node, keyDefinitions));
|
|
405
|
+
const edges = normalizeArray2(graphElement.edge).map((edge, index) => parseEdge2(edge, index, keyDefinitions, defaultDirected));
|
|
406
|
+
const filteredNodes = nodes.filter((node) => Boolean(node));
|
|
407
|
+
const filteredEdges = edges.filter((edge) => Boolean(edge));
|
|
408
|
+
return {
|
|
409
|
+
shape: "plain-graph-data",
|
|
410
|
+
nodes: filteredNodes,
|
|
411
|
+
edges: filteredEdges
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
function decodeGraphML2(graphml) {
|
|
415
|
+
if (typeof graphml === "string") {
|
|
416
|
+
return graphml;
|
|
417
|
+
}
|
|
418
|
+
if (graphml instanceof Uint8Array) {
|
|
419
|
+
return new TextDecoder().decode(graphml);
|
|
420
|
+
}
|
|
421
|
+
if (graphml instanceof ArrayBuffer) {
|
|
422
|
+
return new TextDecoder().decode(new Uint8Array(graphml));
|
|
423
|
+
}
|
|
424
|
+
throw new Error("Unsupported GraphML input. Expected a string, ArrayBuffer, or Uint8Array.");
|
|
425
|
+
}
|
|
426
|
+
function getGraphMLRoot2(document) {
|
|
427
|
+
const root = document.graphml;
|
|
428
|
+
if (isObject2(root)) {
|
|
429
|
+
return root;
|
|
430
|
+
}
|
|
431
|
+
return null;
|
|
432
|
+
}
|
|
433
|
+
function getGraphElement2(graphmlRoot) {
|
|
434
|
+
const graph = graphmlRoot.graph;
|
|
435
|
+
if (!graph) {
|
|
436
|
+
return null;
|
|
437
|
+
}
|
|
438
|
+
if (Array.isArray(graph)) {
|
|
439
|
+
const firstGraph = graph.find((entry) => isObject2(entry));
|
|
440
|
+
return isObject2(firstGraph) ? firstGraph : null;
|
|
441
|
+
}
|
|
442
|
+
return isObject2(graph) ? graph : null;
|
|
443
|
+
}
|
|
444
|
+
function collectKeyDefinitions2(graphmlRoot, graphElement) {
|
|
445
|
+
const keys = /* @__PURE__ */ new Map();
|
|
446
|
+
for (const candidate of [
|
|
447
|
+
...normalizeArray2(graphmlRoot.key),
|
|
448
|
+
...normalizeArray2(graphElement.key)
|
|
449
|
+
]) {
|
|
450
|
+
if (isObject2(candidate)) {
|
|
451
|
+
const id = String(candidate[`${XML_ATTRIBUTE_PREFIX2}id`] ?? "").trim();
|
|
452
|
+
if (id) {
|
|
453
|
+
const domain = normalizeDomain2(candidate[`${XML_ATTRIBUTE_PREFIX2}for`]);
|
|
454
|
+
const name = String(candidate[`${XML_ATTRIBUTE_PREFIX2}attr.name`] ?? id).trim();
|
|
455
|
+
const type = normalizeType2(candidate[`${XML_ATTRIBUTE_PREFIX2}attr.type`]);
|
|
456
|
+
const defaultNode = candidate.default ?? null;
|
|
457
|
+
const defaultValue = defaultNode !== null ? castDataValue2(defaultNode, type) : void 0;
|
|
458
|
+
keys.set(id, { id, domain, name, type, defaultValue });
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
return keys;
|
|
463
|
+
}
|
|
464
|
+
function parseNode2(node, keyDefinitions) {
|
|
465
|
+
if (!isObject2(node)) {
|
|
466
|
+
return null;
|
|
467
|
+
}
|
|
468
|
+
const id = node[`${XML_ATTRIBUTE_PREFIX2}id`];
|
|
469
|
+
if (typeof id !== "string") {
|
|
470
|
+
return null;
|
|
471
|
+
}
|
|
472
|
+
const attributes = buildAttributeBag2("node", node.data, keyDefinitions);
|
|
473
|
+
const graphNode = {
|
|
474
|
+
id,
|
|
475
|
+
attributes: Object.keys(attributes).length > 0 ? attributes : void 0
|
|
476
|
+
};
|
|
477
|
+
const label = attributes.label;
|
|
478
|
+
if (typeof label === "string") {
|
|
479
|
+
graphNode.label = label;
|
|
480
|
+
}
|
|
481
|
+
return graphNode;
|
|
482
|
+
}
|
|
483
|
+
function parseEdge2(edge, index, keyDefinitions, defaultDirected) {
|
|
484
|
+
if (!isObject2(edge)) {
|
|
485
|
+
return null;
|
|
486
|
+
}
|
|
487
|
+
const sourceId = edge[`${XML_ATTRIBUTE_PREFIX2}source`];
|
|
488
|
+
const targetId = edge[`${XML_ATTRIBUTE_PREFIX2}target`];
|
|
489
|
+
if (typeof sourceId !== "string") {
|
|
490
|
+
return null;
|
|
491
|
+
}
|
|
492
|
+
if (typeof targetId !== "string") {
|
|
493
|
+
return null;
|
|
494
|
+
}
|
|
495
|
+
const rawId = edge[`${XML_ATTRIBUTE_PREFIX2}id`];
|
|
496
|
+
const id = typeof rawId === "string" ? rawId : `edge-${index}`;
|
|
497
|
+
const directed = parseDirected2(edge[`${XML_ATTRIBUTE_PREFIX2}directed`], defaultDirected);
|
|
498
|
+
const attributes = buildAttributeBag2("edge", edge.data, keyDefinitions);
|
|
499
|
+
const graphEdge = {
|
|
500
|
+
id,
|
|
501
|
+
sourceId,
|
|
502
|
+
targetId,
|
|
503
|
+
directed,
|
|
504
|
+
attributes: Object.keys(attributes).length > 0 ? attributes : void 0
|
|
505
|
+
};
|
|
506
|
+
const label = attributes.label;
|
|
507
|
+
if (typeof label === "string") {
|
|
508
|
+
graphEdge.label = label;
|
|
509
|
+
}
|
|
510
|
+
return graphEdge;
|
|
511
|
+
}
|
|
512
|
+
function buildAttributeBag2(domain, data, keyDefinitions) {
|
|
513
|
+
const attributes = /* @__PURE__ */ Object.create(null);
|
|
514
|
+
for (const key of keyDefinitions.values()) {
|
|
515
|
+
if (key.domain === "all" || key.domain === domain) {
|
|
516
|
+
if (key.defaultValue !== void 0) {
|
|
517
|
+
attributes[key.name] = key.defaultValue;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
for (const entry of normalizeArray2(data)) {
|
|
522
|
+
assignAttributeFromDataEntry2(entry, keyDefinitions, attributes);
|
|
523
|
+
}
|
|
524
|
+
return attributes;
|
|
525
|
+
}
|
|
526
|
+
function assignAttributeFromDataEntry2(entry, keyDefinitions, attributes) {
|
|
527
|
+
if (!isObject2(entry)) {
|
|
528
|
+
return;
|
|
529
|
+
}
|
|
530
|
+
const keyId = entry[`${XML_ATTRIBUTE_PREFIX2}key`];
|
|
531
|
+
if (typeof keyId !== "string") {
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
const definition = keyDefinitions.get(keyId);
|
|
535
|
+
const attributeName = (definition == null ? void 0 : definition.name) ?? keyId;
|
|
536
|
+
const value = castDataValue2(entry, (definition == null ? void 0 : definition.type) ?? "string");
|
|
537
|
+
if (value !== void 0) {
|
|
538
|
+
attributes[attributeName] = value;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
function castDataValue2(value, type) {
|
|
542
|
+
if (value === null || typeof value === "undefined") {
|
|
543
|
+
return void 0;
|
|
544
|
+
}
|
|
545
|
+
const text = extractTextContent2(value);
|
|
546
|
+
if (text === void 0) {
|
|
547
|
+
return void 0;
|
|
548
|
+
}
|
|
549
|
+
if (type === "boolean") {
|
|
550
|
+
return parseBoolean2(text);
|
|
551
|
+
}
|
|
552
|
+
if (type === "int" || type === "long") {
|
|
553
|
+
const parsed = Number.parseInt(text, 10);
|
|
554
|
+
return Number.isNaN(parsed) ? text : parsed;
|
|
555
|
+
}
|
|
556
|
+
if (type === "float" || type === "double") {
|
|
557
|
+
const parsed = Number.parseFloat(text);
|
|
558
|
+
return Number.isNaN(parsed) ? text : parsed;
|
|
559
|
+
}
|
|
560
|
+
return text;
|
|
561
|
+
}
|
|
562
|
+
function extractTextContent2(value) {
|
|
563
|
+
if (typeof value === "string") {
|
|
564
|
+
return value;
|
|
565
|
+
}
|
|
566
|
+
if (typeof value === "number" || typeof value === "boolean") {
|
|
567
|
+
return String(value);
|
|
568
|
+
}
|
|
569
|
+
if (Array.isArray(value)) {
|
|
570
|
+
return extractTextContent2(value[0]);
|
|
571
|
+
}
|
|
572
|
+
if (isObject2(value)) {
|
|
573
|
+
const text = value[XML_TEXT_KEY2];
|
|
574
|
+
if (typeof text === "string") {
|
|
575
|
+
return text;
|
|
576
|
+
}
|
|
577
|
+
const nonAttributeEntries = Object.entries(value).filter(([key]) => !key.startsWith(XML_ATTRIBUTE_PREFIX2));
|
|
578
|
+
if (nonAttributeEntries.length === 0) {
|
|
579
|
+
return void 0;
|
|
580
|
+
}
|
|
581
|
+
return JSON.stringify(Object.fromEntries(nonAttributeEntries));
|
|
582
|
+
}
|
|
583
|
+
return void 0;
|
|
584
|
+
}
|
|
585
|
+
function normalizeArray2(value) {
|
|
586
|
+
if (!value) {
|
|
587
|
+
return [];
|
|
588
|
+
}
|
|
589
|
+
return Array.isArray(value) ? value : [value];
|
|
590
|
+
}
|
|
591
|
+
function isObject2(value) {
|
|
592
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
593
|
+
}
|
|
594
|
+
function normalizeDomain2(value) {
|
|
595
|
+
if (typeof value !== "string") {
|
|
596
|
+
return "all";
|
|
597
|
+
}
|
|
598
|
+
const lower = value.toLowerCase();
|
|
599
|
+
if (lower === "node" || lower === "edge" || lower === "graph" || lower === "all") {
|
|
600
|
+
return lower;
|
|
601
|
+
}
|
|
602
|
+
return "all";
|
|
603
|
+
}
|
|
604
|
+
function normalizeType2(value) {
|
|
605
|
+
if (typeof value !== "string") {
|
|
606
|
+
return "string";
|
|
607
|
+
}
|
|
608
|
+
const lower = value.toLowerCase();
|
|
609
|
+
if (lower === "boolean" || lower === "int" || lower === "long" || lower === "float" || lower === "double") {
|
|
610
|
+
return lower;
|
|
611
|
+
}
|
|
612
|
+
return "string";
|
|
613
|
+
}
|
|
614
|
+
function parseEdgeDefault2(value) {
|
|
615
|
+
if (typeof value !== "string") {
|
|
616
|
+
return false;
|
|
617
|
+
}
|
|
618
|
+
return value.toLowerCase() !== "undirected";
|
|
619
|
+
}
|
|
620
|
+
function parseDirected2(value, defaultDirected) {
|
|
621
|
+
if (typeof value === "string") {
|
|
622
|
+
const normalized = value.trim().toLowerCase();
|
|
623
|
+
if (normalized === "true" || normalized === "1" || normalized === "yes" || normalized === "directed") {
|
|
624
|
+
return true;
|
|
625
|
+
}
|
|
626
|
+
if (normalized === "false" || normalized === "0" || normalized === "no" || normalized === "undirected") {
|
|
627
|
+
return false;
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
return defaultDirected;
|
|
631
|
+
}
|
|
632
|
+
function parseBoolean2(value) {
|
|
633
|
+
const normalized = value.trim().toLowerCase();
|
|
634
|
+
if (normalized === "true" || normalized === "1" || normalized === "yes" || normalized === "y") {
|
|
635
|
+
return true;
|
|
636
|
+
}
|
|
637
|
+
if (normalized === "false" || normalized === "0" || normalized === "no" || normalized === "n") {
|
|
638
|
+
return false;
|
|
639
|
+
}
|
|
640
|
+
return Boolean(value);
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
// dist/graphml-loader.js
|
|
644
|
+
var GraphMLLoaderWithParser2 = {
|
|
645
|
+
...GraphMLLoader2,
|
|
646
|
+
parse: async (data) => parseGraphML2(data),
|
|
647
|
+
parseSync: parseGraphML2,
|
|
648
|
+
parseTextSync: parseGraphML2
|
|
649
|
+
};
|
|
650
|
+
//# sourceMappingURL=graphml-loader.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/graphml-loader-types.ts", "../src/lib/parse-graphml.ts", "../src/graphml-loader.ts", "../src/graphml-loader.ts", "../src/graphml-loader-types.ts", "../src/lib/parse-graphml.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,eAAe,UAAU;AACvB,QAAM,EAAC,yBAAAA,yBAAuB,IAAI,MAAM;AACxC,SAAOA;AACT;AAdA,IAQM,SASO;AAjBb;AAAA;AAAA;AAQA,IAAM,UAAU,OAAO,gBAAgB,cAAc,cAAc;AAS5D,IAAM,gBAAgB;AAAA,MAC3B,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,YAAY,CAAC,SAAS;AAAA,MACtB,WAAW,CAAC,yBAAyB;AAAA,MACrC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,WAAW;AAAA,MACX,SAAS,CAAC;AAAA,MACV;AAAA,IACF;AAAA;AAAA;;;ACqBO,SAAS,aAAa,SAAkC;AAC7D,QAAM,UAAU,cAAc,OAAO;AACrC,QAAM,WAAW,cAAc,MAAM,OAAO;AAC5C,QAAM,cAAc,eAAe,QAAQ;AAC3C,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,wDAAwD;AAAA,EAC1E;AAEA,QAAM,eAAe,gBAAgB,WAAW;AAChD,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI,MAAM,sDAAsD;AAAA,EACxE;AAEA,QAAM,iBAAiB,sBAAsB,aAAa,YAAY;AACtE,QAAM,kBAAkB,iBAAiB,aAAa,GAAG,oBAAoB,aAAa,CAAC;AAE3F,QAAM,QAAQ,eAAe,aAAa,IAAI,EAAE,IAAI,UAAQ,UAAU,MAAM,cAAc,CAAC;AAC3F,QAAM,QAAQ,eAAe,aAAa,IAAI,EAAE;AAAA,IAAI,CAAC,MAAM,UACzD,UAAU,MAAM,OAAO,gBAAgB,eAAe;AAAA,EACxD;AAEA,QAAM,gBAAgB,MAAM,OAAO,CAAC,SAA4B,QAAQ,IAAI,CAAC;AAC7E,QAAM,gBAAgB,MAAM,OAAO,CAAC,SAA4B,QAAQ,IAAI,CAAC;AAE7E,SAAO;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACF;AAGA,SAAS,cAAc,SAA+B;AACpD,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO;AAAA,EACT;AAEA,MAAI,mBAAmB,YAAY;AACjC,WAAO,IAAI,YAAY,EAAE,OAAO,OAAO;AAAA,EACzC;AAEA,MAAI,mBAAmB,aAAa;AAClC,WAAO,IAAI,YAAY,EAAE,OAAO,IAAI,WAAW,OAAO,CAAC;AAAA,EACzD;AAEA,QAAM,IAAI,MAAM,2EAA2E;AAC7F;AAGA,SAAS,eAAe,UAA+C;AACrE,QAAM,OAAO,SAAS;AACtB,MAAI,SAAS,IAAI,GAAG;AAClB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAGA,SAAS,gBAAgB,aAAkD;AACzE,QAAM,QAAQ,YAAY;AAC1B,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,UAAM,aAAa,MAAM,KAAK,WAAS,SAAS,KAAK,CAAC;AACtD,WAAO,SAAS,UAAU,IAAI,aAAa;AAAA,EAC7C;AAEA,SAAO,SAAS,KAAK,IAAI,QAAQ;AACnC;AAGA,SAAS,sBACP,aACA,cACmC;AACnC,QAAM,OAAO,oBAAI,IAAkC;AAEnD,aAAW,aAAa;AAAA,IACtB,GAAG,eAAe,YAAY,GAAG;AAAA,IACjC,GAAG,eAAe,aAAa,GAAG;AAAA,EACpC,GAAG;AACD,QAAI,SAAS,SAAS,GAAG;AACvB,YAAM,KAAK,OAAO,UAAU,GAAG,oBAAoB,IAAI,KAAK,EAAE,EAAE,KAAK;AACrE,UAAI,IAAI;AACN,cAAM,SAAS,gBAAgB,UAAU,GAAG,oBAAoB,KAAK,CAAC;AACtE,cAAM,OAAO,OAAO,UAAU,GAAG,oBAAoB,WAAW,KAAK,EAAE,EAAE,KAAK;AAC9E,cAAM,OAAO,cAAc,UAAU,GAAG,oBAAoB,WAAW,CAAC;AACxE,cAAM,cAAc,UAAU,WAAW;AACzC,cAAM,eAAe,gBAAgB,OAAO,cAAc,aAAa,IAAI,IAAI;AAE/E,aAAK,IAAI,IAAI,EAAC,IAAI,QAAQ,MAAM,MAAM,aAAY,CAAC;AAAA,MACrD;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAGA,SAAS,UACP,MACA,gBACkB;AAClB,MAAI,CAAC,SAAS,IAAI,GAAG;AACnB,WAAO;AAAA,EACT;AAEA,QAAM,KAAK,KAAK,GAAG,oBAAoB,IAAI;AAC3C,MAAI,OAAO,OAAO,UAAU;AAC1B,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,kBAAkB,QAAQ,KAAK,MAAM,cAAc;AAEtE,QAAM,YAAuB;AAAA,IAC3B;AAAA,IACA,YAAY,OAAO,KAAK,UAAU,EAAE,SAAS,IAAI,aAAa;AAAA,EAChE;AAEA,QAAM,QAAQ,WAAW;AACzB,MAAI,OAAO,UAAU,UAAU;AAC7B,cAAU,QAAQ;AAAA,EACpB;AAEA,SAAO;AACT;AAGA,SAAS,UACP,MACA,OACA,gBACA,iBACkB;AAClB,MAAI,CAAC,SAAS,IAAI,GAAG;AACnB,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,KAAK,GAAG,oBAAoB,QAAQ;AACrD,QAAM,WAAW,KAAK,GAAG,oBAAoB,QAAQ;AACrD,MAAI,OAAO,aAAa,UAAU;AAChC,WAAO;AAAA,EACT;AACA,MAAI,OAAO,aAAa,UAAU;AAChC,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,KAAK,GAAG,oBAAoB,IAAI;AAC9C,QAAM,KAAK,OAAO,UAAU,WAAW,QAAQ,QAAQ,KAAK;AAC5D,QAAM,WAAW,cAAc,KAAK,GAAG,oBAAoB,UAAU,GAAG,eAAe;AACvF,QAAM,aAAa,kBAAkB,QAAQ,KAAK,MAAM,cAAc;AAEtE,QAAM,YAAuB;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY,OAAO,KAAK,UAAU,EAAE,SAAS,IAAI,aAAa;AAAA,EAChE;AAEA,QAAM,QAAQ,WAAW;AACzB,MAAI,OAAO,UAAU,UAAU;AAC7B,cAAU,QAAQ;AAAA,EACpB;AAEA,SAAO;AACT;AAGA,SAAS,kBACP,QACA,MACA,gBACyB;AACzB,QAAM,aAAsC,uBAAO,OAAO,IAAI;AAE9D,aAAW,OAAO,eAAe,OAAO,GAAG;AACzC,QAAI,IAAI,WAAW,SAAS,IAAI,WAAW,QAAQ;AACjD,UAAI,IAAI,iBAAiB,QAAW;AAClC,mBAAW,IAAI,IAAI,IAAI,IAAI;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AAEA,aAAW,SAAS,eAAe,IAAI,GAAG;AACxC,iCAA6B,OAAO,gBAAgB,UAAU;AAAA,EAChE;AAEA,SAAO;AACT;AAGA,SAAS,6BACP,OACA,gBACA,YACM;AACN,MAAI,CAAC,SAAS,KAAK,GAAG;AACpB;AAAA,EACF;AAEA,QAAM,QAAQ,MAAM,GAAG,oBAAoB,KAAK;AAChD,MAAI,OAAO,UAAU,UAAU;AAC7B;AAAA,EACF;AAEA,QAAM,aAAa,eAAe,IAAI,KAAK;AAC3C,QAAM,iBAAgB,yCAAY,SAAQ;AAC1C,QAAM,QAAQ,cAAc,QAAO,yCAAY,SAAQ,QAAQ;AAC/D,MAAI,UAAU,QAAW;AACvB,eAAW,aAAa,IAAI;AAAA,EAC9B;AACF;AAGA,SAAS,cAAc,OAAgB,MAAqC;AAC1E,MAAI,UAAU,QAAQ,OAAO,UAAU,aAAa;AAClD,WAAO;AAAA,EACT;AAEA,QAAM,OAAO,mBAAmB,KAAK;AACrC,MAAI,SAAS,QAAW;AACtB,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,WAAW;AACtB,WAAO,aAAa,IAAI;AAAA,EAC1B;AACA,MAAI,SAAS,SAAS,SAAS,QAAQ;AACrC,UAAM,SAAS,OAAO,SAAS,MAAM,EAAE;AACvC,WAAO,OAAO,MAAM,MAAM,IAAI,OAAO;AAAA,EACvC;AACA,MAAI,SAAS,WAAW,SAAS,UAAU;AACzC,UAAM,SAAS,OAAO,WAAW,IAAI;AACrC,WAAO,OAAO,MAAM,MAAM,IAAI,OAAO;AAAA,EACvC;AACA,SAAO;AACT;AAGA,SAAS,mBAAmB,OAAoC;AAC9D,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW;AAC3D,WAAO,OAAO,KAAK;AAAA,EACrB;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,mBAAmB,MAAM,CAAC,CAAC;AAAA,EACpC;AAEA,MAAI,SAAS,KAAK,GAAG;AACnB,UAAM,OAAO,MAAM,YAAY;AAC/B,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO;AAAA,IACT;AAEA,UAAM,sBAAsB,OAAO,QAAQ,KAAK,EAAE;AAAA,MAChD,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,WAAW,oBAAoB;AAAA,IACjD;AACA,QAAI,oBAAoB,WAAW,GAAG;AACpC,aAAO;AAAA,IACT;AACA,WAAO,KAAK,UAAU,OAAO,YAAY,mBAAmB,CAAC;AAAA,EAC/D;AAEA,SAAO;AACT;AAGA,SAAS,eAAkB,OAAwC;AACjE,MAAI,CAAC,OAAO;AACV,WAAO,CAAC;AAAA,EACV;AACA,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;AAGA,SAAS,SAAS,OAAwC;AACxD,SAAO,QAAQ,KAAK,KAAK,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAGA,SAAS,gBAAgB,OAA+B;AACtD,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,MAAM,YAAY;AAChC,MAAI,UAAU,UAAU,UAAU,UAAU,UAAU,WAAW,UAAU,OAAO;AAChF,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAGA,SAAS,cAAc,OAAsC;AAC3D,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,MAAM,YAAY;AAChC,MACE,UAAU,aACV,UAAU,SACV,UAAU,UACV,UAAU,WACV,UAAU,UACV;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAIA,SAAS,iBAAiB,OAAyB;AACjD,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,SAAO,MAAM,YAAY,MAAM;AACjC;AAGA,SAAS,cAAc,OAAgB,iBAAmC;AACxE,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,aAAa,MAAM,KAAK,EAAE,YAAY;AAC5C,QACE,eAAe,UACf,eAAe,OACf,eAAe,SACf,eAAe,YACf;AACA,aAAO;AAAA,IACT;AACA,QACE,eAAe,WACf,eAAe,OACf,eAAe,QACf,eAAe,cACf;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAGA,SAAS,aAAa,OAAwB;AAC5C,QAAM,aAAa,MAAM,KAAK,EAAE,YAAY;AAC5C,MAAI,eAAe,UAAU,eAAe,OAAO,eAAe,SAAS,eAAe,KAAK;AAC7F,WAAO;AAAA,EACT;AACA,MAAI,eAAe,WAAW,eAAe,OAAO,eAAe,QAAQ,eAAe,KAAK;AAC7F,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,KAAK;AACtB;AA7ZA,IAIA,wBAIM,sBACA,cA4BA;AArCN;AAAA;AAAA;AAIA,6BAAwB;AAIxB,IAAM,uBAAuB;AAC7B,IAAM,eAAe;AA4BrB,IAAM,gBAAgB,IAAI,iCAAU;AAAA,MAClC,kBAAkB;AAAA,MAClB,qBAAqB;AAAA,MACrB,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,qBAAqB;AAAA,MACrB,eAAe;AAAA,MACf,gBAAgB;AAAA,IAClB,CAAC;AAAA;AAAA;;;AC7CD;AAAA;AAAA;AAAA;AAAA,IAQa;AARb;AAAA;AAAA;AAIA;AACA;AAGO,IAAM,0BAA0B;AAAA,MACrC,GAAG;AAAA,MACH,OAAO,OAAO,SAAsB,aAAa,IAAI;AAAA,MACrD,WAAW;AAAA,MACX,eAAe;AAAA,IACjB;AAAA;AAAA;;;ACbA,IAAAC,0BAAA;SAAAA,yBAAA;iCAAAC;;AAAA,8BAAAD;;;ACQA,IAAME,WAAU,OAAoC,kBAAe;AAGnE,eAAeC,WAAO;AACpB,QAAM,EAAC,yBAAAC,yBAAuB,IAAI,MAAM;AACxC,SAAOA;AACT;AAGO,IAAMC,iBAAgB;EAC3B,MAAM;EACN,IAAI;EACJ,QAAQ;EACR,SAASH;EACT,YAAY,CAAC,SAAS;EACtB,WAAW,CAAC,yBAAyB;EACrC,MAAM;EACN,QAAQ;EACR,UAAU;EACV,WAAW;EACX,SAAS,CAAA;EACT,SAAAC;;;;ACzBF,IAAAG,0BAAwB;AAIxB,IAAMC,wBAAuB;AAC7B,IAAMC,gBAAe;AA4BrB,IAAMC,iBAAgB,IAAI,kCAAU;EAClC,kBAAkB;EAClB,qBAAqBF;EACrB,cAAcC;EACd,YAAY;EACZ,qBAAqB;EACrB,eAAe;EACf,gBAAgB;CACjB;AAMK,SAAUE,cAAa,SAAqB;AAChD,QAAM,UAAUC,eAAc,OAAO;AACrC,QAAM,WAAWF,eAAc,MAAM,OAAO;AAC5C,QAAM,cAAcG,gBAAe,QAAQ;AAC3C,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,wDAAwD;EAC1E;AAEA,QAAM,eAAeC,iBAAgB,WAAW;AAChD,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI,MAAM,sDAAsD;EACxE;AAEA,QAAM,iBAAiBC,uBAAsB,aAAa,YAAY;AACtE,QAAM,kBAAkBC,kBAAiB,aAAa,GAAGR,qBAAoB,aAAa,CAAC;AAE3F,QAAM,QAAQS,gBAAe,aAAa,IAAI,EAAE,IAAI,UAAQC,WAAU,MAAM,cAAc,CAAC;AAC3F,QAAM,QAAQD,gBAAe,aAAa,IAAI,EAAE,IAAI,CAAC,MAAM,UACzDE,WAAU,MAAM,OAAO,gBAAgB,eAAe,CAAC;AAGzD,QAAM,gBAAgB,MAAM,OAAO,CAAC,SAA4B,QAAQ,IAAI,CAAC;AAC7E,QAAM,gBAAgB,MAAM,OAAO,CAAC,SAA4B,QAAQ,IAAI,CAAC;AAE7E,SAAO;IACL,OAAO;IACP,OAAO;IACP,OAAO;;AAEX;AAGA,SAASP,eAAc,SAAqB;AAC1C,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO;EACT;AAEA,MAAI,mBAAmB,YAAY;AACjC,WAAO,IAAI,YAAW,EAAG,OAAO,OAAO;EACzC;AAEA,MAAI,mBAAmB,aAAa;AAClC,WAAO,IAAI,YAAW,EAAG,OAAO,IAAI,WAAW,OAAO,CAAC;EACzD;AAEA,QAAM,IAAI,MAAM,2EAA2E;AAC7F;AAGA,SAASC,gBAAe,UAAuB;AAC7C,QAAM,OAAO,SAAS;AACtB,MAAIO,UAAS,IAAI,GAAG;AAClB,WAAO;EACT;AAEA,SAAO;AACT;AAGA,SAASN,iBAAgB,aAA0B;AACjD,QAAM,QAAQ,YAAY;AAC1B,MAAI,CAAC,OAAO;AACV,WAAO;EACT;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,UAAM,aAAa,MAAM,KAAK,WAASM,UAAS,KAAK,CAAC;AACtD,WAAOA,UAAS,UAAU,IAAI,aAAa;EAC7C;AAEA,SAAOA,UAAS,KAAK,IAAI,QAAQ;AACnC;AAGA,SAASL,uBACP,aACA,cAA2B;AAE3B,QAAM,OAAO,oBAAI,IAAG;AAEpB,aAAW,aAAa;IACtB,GAAGE,gBAAe,YAAY,GAAG;IACjC,GAAGA,gBAAe,aAAa,GAAG;KACjC;AACD,QAAIG,UAAS,SAAS,GAAG;AACvB,YAAM,KAAK,OAAO,UAAU,GAAGZ,qBAAoB,IAAI,KAAK,EAAE,EAAE,KAAI;AACpE,UAAI,IAAI;AACN,cAAM,SAASa,iBAAgB,UAAU,GAAGb,qBAAoB,KAAK,CAAC;AACtE,cAAM,OAAO,OAAO,UAAU,GAAGA,qBAAoB,WAAW,KAAK,EAAE,EAAE,KAAI;AAC7E,cAAM,OAAOc,eAAc,UAAU,GAAGd,qBAAoB,WAAW,CAAC;AACxE,cAAM,cAAc,UAAU,WAAW;AACzC,cAAM,eAAe,gBAAgB,OAAOe,eAAc,aAAa,IAAI,IAAI;AAE/E,aAAK,IAAI,IAAI,EAAC,IAAI,QAAQ,MAAM,MAAM,aAAY,CAAC;MACrD;IACF;EACF;AAEA,SAAO;AACT;AAGA,SAASL,WACP,MACA,gBAAiD;AAEjD,MAAI,CAACE,UAAS,IAAI,GAAG;AACnB,WAAO;EACT;AAEA,QAAM,KAAK,KAAK,GAAGZ,qBAAoB,IAAI;AAC3C,MAAI,OAAO,OAAO,UAAU;AAC1B,WAAO;EACT;AAEA,QAAM,aAAagB,mBAAkB,QAAQ,KAAK,MAAM,cAAc;AAEtE,QAAM,YAAuB;IAC3B;IACA,YAAY,OAAO,KAAK,UAAU,EAAE,SAAS,IAAI,aAAa;;AAGhE,QAAM,QAAQ,WAAW;AACzB,MAAI,OAAO,UAAU,UAAU;AAC7B,cAAU,QAAQ;EACpB;AAEA,SAAO;AACT;AAGA,SAASL,WACP,MACA,OACA,gBACA,iBAAwB;AAExB,MAAI,CAACC,UAAS,IAAI,GAAG;AACnB,WAAO;EACT;AAEA,QAAM,WAAW,KAAK,GAAGZ,qBAAoB,QAAQ;AACrD,QAAM,WAAW,KAAK,GAAGA,qBAAoB,QAAQ;AACrD,MAAI,OAAO,aAAa,UAAU;AAChC,WAAO;EACT;AACA,MAAI,OAAO,aAAa,UAAU;AAChC,WAAO;EACT;AAEA,QAAM,QAAQ,KAAK,GAAGA,qBAAoB,IAAI;AAC9C,QAAM,KAAK,OAAO,UAAU,WAAW,QAAQ,QAAQ,KAAK;AAC5D,QAAM,WAAWiB,eAAc,KAAK,GAAGjB,qBAAoB,UAAU,GAAG,eAAe;AACvF,QAAM,aAAagB,mBAAkB,QAAQ,KAAK,MAAM,cAAc;AAEtE,QAAM,YAAuB;IAC3B;IACA;IACA;IACA;IACA,YAAY,OAAO,KAAK,UAAU,EAAE,SAAS,IAAI,aAAa;;AAGhE,QAAM,QAAQ,WAAW;AACzB,MAAI,OAAO,UAAU,UAAU;AAC7B,cAAU,QAAQ;EACpB;AAEA,SAAO;AACT;AAGA,SAASA,mBACP,QACA,MACA,gBAAiD;AAEjD,QAAM,aAAsC,uBAAO,OAAO,IAAI;AAE9D,aAAW,OAAO,eAAe,OAAM,GAAI;AACzC,QAAI,IAAI,WAAW,SAAS,IAAI,WAAW,QAAQ;AACjD,UAAI,IAAI,iBAAiB,QAAW;AAClC,mBAAW,IAAI,IAAI,IAAI,IAAI;MAC7B;IACF;EACF;AAEA,aAAW,SAASP,gBAAe,IAAI,GAAG;AACxC,IAAAS,8BAA6B,OAAO,gBAAgB,UAAU;EAChE;AAEA,SAAO;AACT;AAGA,SAASA,8BACP,OACA,gBACA,YAAmC;AAEnC,MAAI,CAACN,UAAS,KAAK,GAAG;AACpB;EACF;AAEA,QAAM,QAAQ,MAAM,GAAGZ,qBAAoB,KAAK;AAChD,MAAI,OAAO,UAAU,UAAU;AAC7B;EACF;AAEA,QAAM,aAAa,eAAe,IAAI,KAAK;AAC3C,QAAM,iBAAgB,yCAAY,SAAQ;AAC1C,QAAM,QAAQe,eAAc,QAAO,yCAAY,SAAQ,QAAQ;AAC/D,MAAI,UAAU,QAAW;AACvB,eAAW,aAAa,IAAI;EAC9B;AACF;AAGA,SAASA,eAAc,OAAgB,MAA0B;AAC/D,MAAI,UAAU,QAAQ,OAAO,UAAU,aAAa;AAClD,WAAO;EACT;AAEA,QAAM,OAAOI,oBAAmB,KAAK;AACrC,MAAI,SAAS,QAAW;AACtB,WAAO;EACT;AAEA,MAAI,SAAS,WAAW;AACtB,WAAOC,cAAa,IAAI;EAC1B;AACA,MAAI,SAAS,SAAS,SAAS,QAAQ;AACrC,UAAM,SAAS,OAAO,SAAS,MAAM,EAAE;AACvC,WAAO,OAAO,MAAM,MAAM,IAAI,OAAO;EACvC;AACA,MAAI,SAAS,WAAW,SAAS,UAAU;AACzC,UAAM,SAAS,OAAO,WAAW,IAAI;AACrC,WAAO,OAAO,MAAM,MAAM,IAAI,OAAO;EACvC;AACA,SAAO;AACT;AAGA,SAASD,oBAAmB,OAAc;AACxC,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;EACT;AAEA,MAAI,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW;AAC3D,WAAO,OAAO,KAAK;EACrB;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAOA,oBAAmB,MAAM,CAAC,CAAC;EACpC;AAEA,MAAIP,UAAS,KAAK,GAAG;AACnB,UAAM,OAAO,MAAMX,aAAY;AAC/B,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO;IACT;AAEA,UAAM,sBAAsB,OAAO,QAAQ,KAAK,EAAE,OAChD,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,WAAWD,qBAAoB,CAAC;AAElD,QAAI,oBAAoB,WAAW,GAAG;AACpC,aAAO;IACT;AACA,WAAO,KAAK,UAAU,OAAO,YAAY,mBAAmB,CAAC;EAC/D;AAEA,SAAO;AACT;AAGA,SAASS,gBAAkB,OAAiC;AAC1D,MAAI,CAAC,OAAO;AACV,WAAO,CAAA;EACT;AACA,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;AAGA,SAASG,UAAS,OAAc;AAC9B,SAAO,QAAQ,KAAK,KAAK,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAGA,SAASC,iBAAgB,OAAc;AACrC,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;EACT;AAEA,QAAM,QAAQ,MAAM,YAAW;AAC/B,MAAI,UAAU,UAAU,UAAU,UAAU,UAAU,WAAW,UAAU,OAAO;AAChF,WAAO;EACT;AACA,SAAO;AACT;AAGA,SAASC,eAAc,OAAc;AACnC,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;EACT;AAEA,QAAM,QAAQ,MAAM,YAAW;AAC/B,MACE,UAAU,aACV,UAAU,SACV,UAAU,UACV,UAAU,WACV,UAAU,UACV;AACA,WAAO;EACT;AACA,SAAO;AACT;AAIA,SAASN,kBAAiB,OAAc;AACtC,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;EACT;AACA,SAAO,MAAM,YAAW,MAAO;AACjC;AAGA,SAASS,eAAc,OAAgB,iBAAwB;AAC7D,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,aAAa,MAAM,KAAI,EAAG,YAAW;AAC3C,QACE,eAAe,UACf,eAAe,OACf,eAAe,SACf,eAAe,YACf;AACA,aAAO;IACT;AACA,QACE,eAAe,WACf,eAAe,OACf,eAAe,QACf,eAAe,cACf;AACA,aAAO;IACT;EACF;AACA,SAAO;AACT;AAGA,SAASG,cAAa,OAAa;AACjC,QAAM,aAAa,MAAM,KAAI,EAAG,YAAW;AAC3C,MAAI,eAAe,UAAU,eAAe,OAAO,eAAe,SAAS,eAAe,KAAK;AAC7F,WAAO;EACT;AACA,MAAI,eAAe,WAAW,eAAe,OAAO,eAAe,QAAQ,eAAe,KAAK;AAC7F,WAAO;EACT;AACA,SAAO,QAAQ,KAAK;AACtB;;;AFrZO,IAAMC,2BAA0B;EACrC,GAAGC;EACH,OAAO,OAAO,SAAsBC,cAAa,IAAI;EACrD,WAAWA;EACX,eAAeA;;",
|
|
5
|
+
"names": ["GraphMLLoaderWithParser", "graphml_loader_exports", "GraphMLLoaderWithParser", "VERSION", "preload", "GraphMLLoaderWithParser", "GraphMLLoader", "import_fast_xml_parser", "XML_ATTRIBUTE_PREFIX", "XML_TEXT_KEY", "graphmlParser", "parseGraphML", "decodeGraphML", "getGraphMLRoot", "getGraphElement", "collectKeyDefinitions", "parseEdgeDefault", "normalizeArray", "parseNode", "parseEdge", "isObject", "normalizeDomain", "normalizeType", "castDataValue", "buildAttributeBag", "parseDirected", "assignAttributeFromDataEntry", "extractTextContent", "parseBoolean", "GraphMLLoaderWithParser", "GraphMLLoader", "parseGraphML"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { parseGraphML } from "./lib/parse-graphml.js";
|
|
2
|
+
/** Parser-bearing loader for synchronous and asynchronous GraphML parsing. */
|
|
3
|
+
export declare const GraphMLLoaderWithParser: {
|
|
4
|
+
parse: (data: ArrayBuffer) => Promise<import("./graph-types").GraphData>;
|
|
5
|
+
parseSync: typeof parseGraphML;
|
|
6
|
+
parseTextSync: typeof parseGraphML;
|
|
7
|
+
name: "GraphML";
|
|
8
|
+
id: "graphml";
|
|
9
|
+
module: "graphs";
|
|
10
|
+
version: any;
|
|
11
|
+
extensions: ["graphml"];
|
|
12
|
+
mimeTypes: ["application/graphml+xml"];
|
|
13
|
+
text: true;
|
|
14
|
+
worker: false;
|
|
15
|
+
dataType: import("./graph-types").GraphData;
|
|
16
|
+
batchType: never;
|
|
17
|
+
options: {};
|
|
18
|
+
preload: () => Promise</*elided*/ any>;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=graphml-loader.d.ts.map
|