@loaders.gl/graphs 5.0.0-alpha.9 → 5.0.0-beta.2
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 +24 -0
- package/README.md +123 -4
- package/THIRD-PARTY-NOTICES.md +17 -0
- package/dist/dot-loader-types.cjs +59 -0
- package/dist/dot-loader-types.cjs.map +7 -0
- package/dist/dot-loader-types.d.ts +25 -8
- package/dist/dot-loader-types.d.ts.map +1 -1
- package/dist/dot-loader-types.js +2 -2
- package/dist/dot-loader-types.js.map +1 -1
- package/dist/dot-loader.cjs +638 -47
- package/dist/dot-loader.cjs.map +3 -3
- package/dist/dot-loader.d.ts +10 -6
- package/dist/dot-loader.d.ts.map +1 -1
- package/dist/dot-loader.js +3 -3
- package/dist/dot-loader.js.map +1 -1
- package/dist/dot-types.d.ts +6 -1
- package/dist/dot-types.d.ts.map +1 -1
- package/dist/gexf-loader-types.cjs +59 -0
- package/dist/gexf-loader-types.cjs.map +7 -0
- package/dist/gexf-loader-types.d.ts +53 -0
- package/dist/gexf-loader-types.d.ts.map +1 -0
- package/dist/gexf-loader-types.js +26 -0
- package/dist/gexf-loader-types.js.map +1 -0
- package/dist/gexf-loader.cjs +2940 -0
- package/dist/gexf-loader.cjs.map +6 -0
- package/dist/gexf-loader.d.ts +24 -0
- package/dist/gexf-loader.d.ts.map +1 -0
- package/dist/gexf-loader.js +13 -0
- package/dist/gexf-loader.js.map +1 -0
- package/dist/gexf-types.d.ts +16 -0
- package/dist/gexf-types.d.ts.map +1 -0
- package/dist/gexf-types.js +5 -0
- package/dist/gexf-types.js.map +1 -0
- package/dist/graph-types.d.ts +28 -0
- package/dist/graph-types.d.ts.map +1 -1
- package/dist/graphml-loader-types.cjs +59 -0
- package/dist/graphml-loader-types.cjs.map +7 -0
- package/dist/graphml-loader-types.d.ts +24 -8
- package/dist/graphml-loader-types.d.ts.map +1 -1
- package/dist/graphml-loader-types.js +2 -2
- package/dist/graphml-loader-types.js.map +1 -1
- package/dist/graphml-loader.cjs +2303 -69
- package/dist/graphml-loader.cjs.map +3 -3
- package/dist/graphml-loader.d.ts +10 -6
- package/dist/graphml-loader.d.ts.map +1 -1
- package/dist/graphml-loader.js +3 -3
- package/dist/graphml-loader.js.map +1 -1
- package/dist/index.cjs +56 -1085
- package/dist/index.cjs.map +4 -3
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/build-graph-tables.d.ts +4 -0
- package/dist/lib/build-graph-tables.d.ts.map +1 -0
- package/dist/lib/build-graph-tables.js +143 -0
- package/dist/lib/build-graph-tables.js.map +1 -0
- package/dist/lib/parse-dot.d.ts +3 -1
- package/dist/lib/parse-dot.d.ts.map +1 -1
- package/dist/lib/parse-dot.js +38 -21
- package/dist/lib/parse-dot.js.map +1 -1
- package/dist/lib/parse-gexf.d.ts +5 -0
- package/dist/lib/parse-gexf.d.ts.map +1 -0
- package/dist/lib/parse-gexf.js +382 -0
- package/dist/lib/parse-gexf.js.map +1 -0
- package/dist/lib/parse-graphml.d.ts +2 -1
- package/dist/lib/parse-graphml.d.ts.map +1 -1
- package/dist/lib/parse-graphml.js +54 -31
- package/dist/lib/parse-graphml.js.map +1 -1
- package/package.json +18 -8
- package/src/dot-loader-types.ts +15 -5
- package/src/dot-loader.ts +7 -4
- package/src/dot-types.ts +7 -1
- package/src/gexf-loader-types.ts +41 -0
- package/src/gexf-loader.ts +17 -0
- package/src/gexf-types.ts +21 -0
- package/src/graph-types.ts +35 -0
- package/src/graphml-loader-types.ts +14 -5
- package/src/graphml-loader.ts +7 -4
- package/src/index.ts +9 -0
- package/src/lib/build-graph-tables.ts +208 -0
- package/src/lib/parse-dot.ts +44 -21
- package/src/lib/parse-gexf.ts +390 -0
- package/src/lib/parse-graphml.ts +92 -40
package/LICENSE
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
loaders.gl is licensed under the MIT license
|
|
2
|
+
|
|
3
|
+
Copyright (c) vis.gl contributors
|
|
4
|
+
Copyright (c) 2015 Uber Technologies, Inc.
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in
|
|
14
|
+
all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
22
|
+
THE SOFTWARE.
|
|
23
|
+
|
|
24
|
+
For adapted portions, see THIRD-PARTY-NOTICES.md and the applicable upstream terms.
|
package/README.md
CHANGED
|
@@ -1,6 +1,67 @@
|
|
|
1
1
|
# @loaders.gl/graphs
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Graph loaders for Graphviz DOT, GraphML, and GEXF.
|
|
4
|
+
|
|
5
|
+
Supported formats: DOT, GraphML, GEXF.
|
|
6
|
+
|
|
7
|
+
## Graph output shapes
|
|
8
|
+
|
|
9
|
+
Graph loaders default to `graphml.shape: 'arrow-table'`, `dot.shape: 'arrow-table'`,
|
|
10
|
+
or `gexf.shape: 'arrow-table'`.
|
|
11
|
+
The result uses the standard table collection shape:
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
{
|
|
15
|
+
shape: 'tables',
|
|
16
|
+
tables: [
|
|
17
|
+
{name: 'nodes', table: {shape: 'arrow-table', schema, data: nodes}},
|
|
18
|
+
{name: 'edges', table: {shape: 'arrow-table', schema, data: edges}}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Each `data` is an Apache Arrow `Table`; each `schema` is a loaders.gl schema.
|
|
24
|
+
The node table has `id`, nullable `label`, and nullable `attributes` columns.
|
|
25
|
+
The edge table additionally has `sourceId`, `targetId`, and `directed`.
|
|
26
|
+
Structural identifiers are strings, including numeric DOT edge IDs. Row order follows
|
|
27
|
+
document order after DOT strict-edge coalescing. Edges may reference undeclared nodes;
|
|
28
|
+
the loaders preserve their endpoints without inventing GraphML nodes.
|
|
29
|
+
|
|
30
|
+
Application attributes live in a typed `attributes` struct, so keys such as `id` cannot
|
|
31
|
+
replace structural columns. GraphML declarations determine Boolean, Int32, Int64,
|
|
32
|
+
Float32, Float64, and Utf8 fields, including unused declarations on empty graphs.
|
|
33
|
+
GraphML `long` values are parsed as exact integers and read as `bigint`.
|
|
34
|
+
Invalid or out-of-range integer values make the affected attribute column Utf8,
|
|
35
|
+
preserving values as strings. DOT scalar types are inferred across the whole column;
|
|
36
|
+
numbers use Float64, booleans use Bool, and mixed scalar types use Utf8. Nested DOT
|
|
37
|
+
subgraph membership uses List and Struct columns. Missing values become Arrow nulls.
|
|
38
|
+
Empty undeclared attributes have a Struct with no child fields.
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
const graph = await load('network.graphml', GraphMLLoader);
|
|
42
|
+
if (graph.shape === 'tables' && graph.tables[0].table.shape === 'arrow-table') {
|
|
43
|
+
const nodes = graph.tables[0].table.data;
|
|
44
|
+
console.log(nodes.getChild('id')?.get(0));
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Select `'object-row-table'` for the same named table collection with object arrays in
|
|
49
|
+
`table.data`. This mode also preserves GraphML long values as `bigint`; it retains original
|
|
50
|
+
application attribute values rather than applying Arrow column normalization.
|
|
51
|
+
|
|
52
|
+
For compatibility with existing graph-layer consumers, request plain graph records:
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
const graph = await load('network.graphml', GraphMLLoader, {
|
|
56
|
+
graphml: {shape: 'plain-graph-data'}
|
|
57
|
+
});
|
|
58
|
+
// DOT: {dot: {shape: 'plain-graph-data'}}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Plain output retains `shape: 'plain-graph-data'`, `nodes`, and `edges`, with original
|
|
62
|
+
DOT edge ID types. GraphML long values in this compatibility mode remain JavaScript
|
|
63
|
+
numbers and can lose precision outside the safe integer range.
|
|
64
|
+
DOT graph metadata is available as `graph.metadata` in every output shape.
|
|
4
65
|
|
|
5
66
|
## GraphML loader
|
|
6
67
|
|
|
@@ -17,7 +78,7 @@ For synchronous parsing, import `GraphMLLoaderWithParser` from
|
|
|
17
78
|
`@loaders.gl/graphs/graphml-loader` and pass it to `parseSync` from `@loaders.gl/core`.
|
|
18
79
|
The package root exports metadata only; asynchronous core APIs preload the implementation.
|
|
19
80
|
|
|
20
|
-
The result is `GraphData` with `shape: 'plain-graph-data'`, `nodes`, and `edges`.
|
|
81
|
+
The explicit plain compatibility result is `GraphData` with `shape: 'plain-graph-data'`, `nodes`, and `edges`.
|
|
21
82
|
Nodes have `id`, optional `label`, and optional `attributes`. Edges additionally have
|
|
22
83
|
`sourceId`, `targetId`, and `directed`. This shape is compatible with
|
|
23
84
|
`createGraphFromData` in `@deck.gl-community/graph-layers`.
|
|
@@ -25,7 +86,7 @@ Nodes have `id`, optional `label`, and optional `attributes`. Edges additionally
|
|
|
25
86
|
Supported constructs include node and edge identifiers, generated IDs for unnamed edges,
|
|
26
87
|
`edgedefault` and per-edge direction overrides, node/edge/all keys, typed data and defaults,
|
|
27
88
|
unknown data keys, and namespace-prefixed elements. Numeric and boolean keys become JavaScript
|
|
28
|
-
values;
|
|
89
|
+
values; string values preserve their whitespace. Nested XML data becomes a JSON string.
|
|
29
90
|
|
|
30
91
|
Only the first graph is returned. Nested graphs, hyperedges, ports, and graph-level data are
|
|
31
92
|
ignored. Nodes without IDs and edges without endpoints are skipped. This is a permissive
|
|
@@ -45,8 +106,10 @@ const graph = await load('network.dot', DOTLoader);
|
|
|
45
106
|
Use `DOTLoaderWithParser` from `@loaders.gl/graphs/dot-loader` with `parseSync`
|
|
46
107
|
for synchronous text or UTF-8 `ArrayBuffer` parsing. `DOTLoader` recognizes `.dot` and `.gv` files.
|
|
47
108
|
|
|
48
|
-
The loader returns the same
|
|
109
|
+
The loader returns the same named node/edge table collection as GraphML, plus typed
|
|
49
110
|
DOT metadata: graph ID, direction, strictness, graph attributes, and subgraph descriptors.
|
|
111
|
+
Unknown backslash sequences are preserved for downstream attribute interpretation.
|
|
112
|
+
Backslashes followed by physical line endings join quoted identifiers and labels across lines.
|
|
50
113
|
Identifiers remain strings, including numeric-looking IDs. Unquoted numeric attributes
|
|
51
114
|
become numbers; quoted attributes remain strings. Node and edge `label` attributes are
|
|
52
115
|
also exposed as record labels.
|
|
@@ -64,3 +127,59 @@ This is a parser for the supported DOT subset, not a Graphviz renderer. Node por
|
|
|
64
127
|
subgraph endpoints in edge statements, and concatenated quoted strings are unsupported.
|
|
65
128
|
Port syntax is rejected; identifiers containing colons must be quoted. Truncated input,
|
|
66
129
|
trailing content, and edge operators inconsistent with the graph declaration are rejected.
|
|
130
|
+
|
|
131
|
+
## GEXF loader
|
|
132
|
+
|
|
133
|
+
`GEXFLoader` reads static GEXF 1.2 (including `1.2draft`) and 1.3 documents.
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
import {load} from '@loaders.gl/core';
|
|
137
|
+
import {GEXFLoader} from '@loaders.gl/graphs';
|
|
138
|
+
|
|
139
|
+
const graph = await load('network.gexf', GEXFLoader);
|
|
140
|
+
// Optional: {gexf: {shape: 'object-row-table'}} or {gexf: {shape: 'plain-graph-data'}}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
For synchronous parsing, use `GEXFLoaderWithParser` from
|
|
144
|
+
`@loaders.gl/graphs/gexf-loader` with `parseSync`. The package root exports metadata
|
|
145
|
+
only; asynchronous core APIs preload the parser. Text and UTF-8 binary inputs are supported.
|
|
146
|
+
The loader recognizes `.gexf` and `application/gexf+xml`.
|
|
147
|
+
|
|
148
|
+
The default result contains named Arrow node and edge tables in the standard `tables`
|
|
149
|
+
collection. Application attributes use declaration titles inside the `attributes` struct;
|
|
150
|
+
node and edge declarations are scoped separately. Boolean, integer, long, float, double,
|
|
151
|
+
and string declarations retain their Arrow types, even for empty graphs. Byte and short
|
|
152
|
+
attributes use Int32. `anyURI`, date, char, bigdecimal, and biginteger values retain their text
|
|
153
|
+
as Utf8. Long integers remain exact `bigint` values in every output shape, including
|
|
154
|
+
plain records. Invalid or out-of-range scalar values promote the affected Arrow field
|
|
155
|
+
to Utf8, preserving the original text.
|
|
156
|
+
|
|
157
|
+
List attributes become typed Arrow Lists, including unused declarations. Both bracketed
|
|
158
|
+
comma-separated lists and legacy pipe/comma/semicolon-separated values are accepted.
|
|
159
|
+
Single and double quotes preserve embedded delimiters and whitespace; malformed
|
|
160
|
+
list quoting is rejected. An empty value becomes an empty list. Defaults apply before explicit values; absent
|
|
161
|
+
attributes without defaults become Arrow nulls. String values and labels preserve whitespace.
|
|
162
|
+
|
|
163
|
+
Native edge weight and kind properties are retained under `attributes.gexf.weight` and
|
|
164
|
+
`attributes.gexf.kind`. Namespaced color, position, size, shape, and thickness elements
|
|
165
|
+
are retained as nested structs under `attributes.gexf.viz`, with numeric coordinates,
|
|
166
|
+
color components, sizes, and thicknesses. Shape names, image URIs, and hex colors remain
|
|
167
|
+
strings. The application attribute title `gexf` is reserved to prevent collisions.
|
|
168
|
+
|
|
169
|
+
`graph.metadata` contains the document version, default direction, and an `attributes`
|
|
170
|
+
object with creator, description, keywords, and lastmodifieddate when supplied.
|
|
171
|
+
Directed and undirected edges, per-edge direction overrides, self-loops, and parallel
|
|
172
|
+
edges are preserved in document order. IDs remain strings; missing edge IDs receive
|
|
173
|
+
stable `edge-<index>` identifiers that avoid collisions with supplied IDs.
|
|
174
|
+
|
|
175
|
+
This is a static graph parser, not a complete GEXF schema validator. Dynamic graphs,
|
|
176
|
+
slice graphs, temporal values/spells, hierarchical/parent structures, mutual edges,
|
|
177
|
+
unsupported attribute types, and document type declarations are rejected explicitly.
|
|
178
|
+
Duplicate IDs or attribute declarations, undeclared application attributes, missing
|
|
179
|
+
required record attributes, and endpoints referencing undeclared nodes are rejected.
|
|
180
|
+
Foreign namespace extensions are ignored. See the [GEXF specification](https://gexf.net/schema.html).
|
|
181
|
+
|
|
182
|
+
## Sources and credits
|
|
183
|
+
|
|
184
|
+
See [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md) for implementation lineage
|
|
185
|
+
and applicable notices, and the project-wide [References and credits](https://loaders.gl/docs/references-and-credits).
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# @loaders.gl/graphs: sources and credits
|
|
2
|
+
|
|
3
|
+
Graph loaders are developed by vis.gl contributors against DOT, GEXF and GraphML format definitions. The native @loaders.gl/documents parser supplies XML parsing; Apache Arrow supplies columnar tables.
|
|
4
|
+
|
|
5
|
+
## Scope and maintenance
|
|
6
|
+
|
|
7
|
+
Original loaders.gl contributions are covered by [LICENSE](./LICENSE). The upstream
|
|
8
|
+
notices above apply to their respective portions and do not change those terms.
|
|
9
|
+
Source adaptations, separately installed libraries, format definitions and test
|
|
10
|
+
data are different contributions. This index is not a transitive dependency
|
|
11
|
+
bill of materials. Runtime dependencies can bring additional notices.
|
|
12
|
+
|
|
13
|
+
Version information is recorded where the repository preserves it. Unpinned
|
|
14
|
+
historical ports are identified by retained source and Git history; no upstream
|
|
15
|
+
version is inferred from a current dependency. Keep copyright headers, full
|
|
16
|
+
terms, source/version information and material modification notes when updating.
|
|
17
|
+
Retain this file and the applicable licenses when redistributing bundles or workers.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// dist/dot-loader-types.js
|
|
31
|
+
var dot_loader_types_exports = {};
|
|
32
|
+
__export(dot_loader_types_exports, {
|
|
33
|
+
DOTLoader: () => DOTLoader
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(dot_loader_types_exports);
|
|
36
|
+
var VERSION = true ? "5.0.0-beta.2" : "latest";
|
|
37
|
+
async function preload() {
|
|
38
|
+
const { DOTLoaderWithParser } = await import("@loaders.gl/graphs/dot-loader");
|
|
39
|
+
return DOTLoaderWithParser;
|
|
40
|
+
}
|
|
41
|
+
var DOTLoader = {
|
|
42
|
+
name: "DOT",
|
|
43
|
+
id: "dot",
|
|
44
|
+
module: "graphs",
|
|
45
|
+
version: VERSION,
|
|
46
|
+
extensions: ["dot", "gv"],
|
|
47
|
+
mimeTypes: ["text/vnd.graphviz", "text/x-graphviz", "application/vnd.graphviz"],
|
|
48
|
+
text: true,
|
|
49
|
+
worker: false,
|
|
50
|
+
dataType: null,
|
|
51
|
+
batchType: null,
|
|
52
|
+
options: { dot: { shape: "arrow-table" } },
|
|
53
|
+
preload
|
|
54
|
+
};
|
|
55
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
56
|
+
0 && (module.exports = {
|
|
57
|
+
DOTLoader
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=dot-loader-types.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/dot-loader-types.ts"],
|
|
4
|
+
"sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader} from '@loaders.gl/core/loader-utils';\nimport type {DOTOutput} from './dot-types';\nimport type {GraphShape} from './graph-types';\n\n/** Options for selecting the DOT graph output representation. */\nexport type DOTLoaderOptions = {\n /** Format-specific graph options. */\n dot?: {\n /** Representation of each named table; defaults to Arrow. */\n shape?: GraphShape;\n };\n};\n\n// @ts-ignore __VERSION__ is injected by the build.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/** Preloads the DOT parser implementation. */\nasync function preload() {\n const {DOTLoaderWithParser} = await import('@loaders.gl/graphs/dot-loader');\n return DOTLoaderWithParser;\n}\n\n/** Metadata-only loader for Graphviz DOT documents. */\nexport const DOTLoader = {\n name: 'DOT',\n id: 'dot',\n module: 'graphs',\n version: VERSION,\n extensions: ['dot', 'gv'],\n mimeTypes: ['text/vnd.graphviz', 'text/x-graphviz', 'application/vnd.graphviz'],\n text: true,\n worker: false,\n dataType: null as unknown as DOTOutput,\n batchType: null as never,\n options: {dot: {shape: 'arrow-table'}},\n preload\n} as const satisfies Loader<DOTOutput, never, DOTLoaderOptions>;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAkBA,IAAM,UAAU,OAAoC,iBAAe;AAGnE,eAAe,UAAO;AACpB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,+BAA+B;AAC1E,SAAO;AACT;AAGO,IAAM,YAAY;EACvB,MAAM;EACN,IAAI;EACJ,QAAQ;EACR,SAAS;EACT,YAAY,CAAC,OAAO,IAAI;EACxB,WAAW,CAAC,qBAAqB,mBAAmB,0BAA0B;EAC9E,MAAM;EACN,QAAQ;EACR,UAAU;EACV,WAAW;EACX,SAAS,EAAC,KAAK,EAAC,OAAO,cAAa,EAAC;EACrC;;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DOTOutput } from "./dot-types.js";
|
|
2
|
+
import type { GraphShape } from "./graph-types.js";
|
|
3
|
+
/** Options for selecting the DOT graph output representation. */
|
|
4
|
+
export type DOTLoaderOptions = {
|
|
5
|
+
/** Format-specific graph options. */
|
|
6
|
+
dot?: {
|
|
7
|
+
/** Representation of each named table; defaults to Arrow. */
|
|
8
|
+
shape?: GraphShape;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
2
11
|
/** Preloads the DOT parser implementation. */
|
|
3
12
|
declare function preload(): Promise<{
|
|
4
|
-
parse: (data: ArrayBuffer) => Promise<
|
|
5
|
-
parseSync: (data: ArrayBuffer) =>
|
|
6
|
-
parseTextSync:
|
|
13
|
+
parse: (data: ArrayBuffer, options?: DOTLoaderOptions) => Promise<DOTOutput>;
|
|
14
|
+
parseSync: (data: ArrayBuffer, options?: DOTLoaderOptions) => DOTOutput;
|
|
15
|
+
parseTextSync: (data: string, options?: DOTLoaderOptions) => DOTOutput;
|
|
7
16
|
name: "DOT";
|
|
8
17
|
id: "dot";
|
|
9
18
|
module: "graphs";
|
|
@@ -12,9 +21,13 @@ declare function preload(): Promise<{
|
|
|
12
21
|
mimeTypes: ["text/vnd.graphviz", "text/x-graphviz", "application/vnd.graphviz"];
|
|
13
22
|
text: true;
|
|
14
23
|
worker: false;
|
|
15
|
-
dataType:
|
|
24
|
+
dataType: DOTOutput;
|
|
16
25
|
batchType: never;
|
|
17
|
-
options: {
|
|
26
|
+
options: {
|
|
27
|
+
readonly dot: {
|
|
28
|
+
readonly shape: "arrow-table";
|
|
29
|
+
};
|
|
30
|
+
};
|
|
18
31
|
preload: typeof preload;
|
|
19
32
|
}>;
|
|
20
33
|
/** Metadata-only loader for Graphviz DOT documents. */
|
|
@@ -27,9 +40,13 @@ export declare const DOTLoader: {
|
|
|
27
40
|
readonly mimeTypes: ["text/vnd.graphviz", "text/x-graphviz", "application/vnd.graphviz"];
|
|
28
41
|
readonly text: true;
|
|
29
42
|
readonly worker: false;
|
|
30
|
-
readonly dataType:
|
|
43
|
+
readonly dataType: DOTOutput;
|
|
31
44
|
readonly batchType: never;
|
|
32
|
-
readonly options: {
|
|
45
|
+
readonly options: {
|
|
46
|
+
readonly dot: {
|
|
47
|
+
readonly shape: "arrow-table";
|
|
48
|
+
};
|
|
49
|
+
};
|
|
33
50
|
readonly preload: typeof preload;
|
|
34
51
|
};
|
|
35
52
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dot-loader-types.d.ts","sourceRoot":"","sources":["../src/dot-loader-types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"dot-loader-types.d.ts","sourceRoot":"","sources":["../src/dot-loader-types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,uBAAoB;AAC3C,OAAO,KAAK,EAAC,UAAU,EAAC,yBAAsB;AAE9C,iEAAiE;AACjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qCAAqC;IACrC,GAAG,CAAC,EAAE;QACJ,6DAA6D;QAC7D,KAAK,CAAC,EAAE,UAAU,CAAC;KACpB,CAAC;CACH,CAAC;AAKF,8CAA8C;AAC9C,iBAAe,OAAO;;;;;;;;;;;;cAeS,SAAS;eACnB,KAAK;;;;;;;GAbzB;AAED,uDAAuD;AACvD,eAAO,MAAM,SAAS;;;;;;;;;uBASS,SAAS;wBACnB,KAAK;;;;;;;CAGqC,CAAC"}
|
package/dist/dot-loader-types.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
// @ts-ignore __VERSION__ is injected by the build.
|
|
5
|
-
const VERSION = typeof "5.0.0-
|
|
5
|
+
const VERSION = typeof "5.0.0-beta.2" !== 'undefined' ? "5.0.0-beta.2" : 'latest';
|
|
6
6
|
/** Preloads the DOT parser implementation. */
|
|
7
7
|
async function preload() {
|
|
8
8
|
const { DOTLoaderWithParser } = await import('@loaders.gl/graphs/dot-loader');
|
|
@@ -20,7 +20,7 @@ export const DOTLoader = {
|
|
|
20
20
|
worker: false,
|
|
21
21
|
dataType: null,
|
|
22
22
|
batchType: null,
|
|
23
|
-
options: {},
|
|
23
|
+
options: { dot: { shape: 'arrow-table' } },
|
|
24
24
|
preload
|
|
25
25
|
};
|
|
26
26
|
//# sourceMappingURL=dot-loader-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dot-loader-types.js","sourceRoot":"","sources":["../src/dot-loader-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"dot-loader-types.js","sourceRoot":"","sources":["../src/dot-loader-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAepC,mDAAmD;AACnD,MAAM,OAAO,GAAG,qBAAkB,KAAK,WAAW,CAAC,CAAC,gBAAa,CAAC,CAAC,QAAQ,CAAC;AAE5E,8CAA8C;AAC9C,KAAK,UAAU,OAAO;IACpB,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;IAC5E,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;IACzB,SAAS,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,0BAA0B,CAAC;IAC/E,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,IAA4B;IACtC,SAAS,EAAE,IAAa;IACxB,OAAO,EAAE,EAAC,GAAG,EAAE,EAAC,KAAK,EAAE,aAAa,EAAC,EAAC;IACtC,OAAO;CACsD,CAAC"}
|