@graphty/graph-format 0.0.0 → 0.2.0
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 +21 -0
- package/README.md +216 -43
- package/dist/graph-format.d.ts +1 -0
- package/dist/graph-format.d.ts.map +1 -0
- package/dist/graph-format.js +15798 -0
- package/dist/graph-format.js.map +1 -0
- package/dist/src/builder/arena.d.ts +85 -0
- package/dist/src/builder/arena.d.ts.map +1 -0
- package/dist/src/builder/arena.js +154 -0
- package/dist/src/builder/arena.js.map +1 -0
- package/dist/src/builder/compact.d.ts +515 -0
- package/dist/src/builder/compact.d.ts.map +1 -0
- package/dist/src/builder/compact.js +1553 -0
- package/dist/src/builder/compact.js.map +1 -0
- package/dist/src/builder/counting-sort.d.ts +96 -0
- package/dist/src/builder/counting-sort.d.ts.map +1 -0
- package/dist/src/builder/counting-sort.js +430 -0
- package/dist/src/builder/counting-sort.js.map +1 -0
- package/dist/src/builder/freeze.d.ts +72 -0
- package/dist/src/builder/freeze.d.ts.map +1 -0
- package/dist/src/builder/freeze.js +548 -0
- package/dist/src/builder/freeze.js.map +1 -0
- package/dist/src/builder/graph-builder.d.ts +602 -0
- package/dist/src/builder/graph-builder.d.ts.map +1 -0
- package/dist/src/builder/graph-builder.js +1940 -0
- package/dist/src/builder/graph-builder.js.map +1 -0
- package/dist/src/builder/options.d.ts +16 -0
- package/dist/src/builder/options.d.ts.map +1 -0
- package/dist/src/builder/options.js +21 -0
- package/dist/src/builder/options.js.map +1 -0
- package/dist/src/columns/bitmap.d.ts +96 -0
- package/dist/src/columns/bitmap.d.ts.map +1 -0
- package/dist/src/columns/bitmap.js +184 -0
- package/dist/src/columns/bitmap.js.map +1 -0
- package/dist/src/columns/column.d.ts +220 -0
- package/dist/src/columns/column.d.ts.map +1 -0
- package/dist/src/columns/column.js +2109 -0
- package/dist/src/columns/column.js.map +1 -0
- package/dist/src/columns/dictionary.d.ts +60 -0
- package/dist/src/columns/dictionary.d.ts.map +1 -0
- package/dist/src/columns/dictionary.js +102 -0
- package/dist/src/columns/dictionary.js.map +1 -0
- package/dist/src/columns/growable.d.ts +198 -0
- package/dist/src/columns/growable.d.ts.map +1 -0
- package/dist/src/columns/growable.js +296 -0
- package/dist/src/columns/growable.js.map +1 -0
- package/dist/src/columns/infer.d.ts +121 -0
- package/dist/src/columns/infer.d.ts.map +1 -0
- package/dist/src/columns/infer.js +268 -0
- package/dist/src/columns/infer.js.map +1 -0
- package/dist/src/columns/remap.d.ts +143 -0
- package/dist/src/columns/remap.d.ts.map +1 -0
- package/dist/src/columns/remap.js +588 -0
- package/dist/src/columns/remap.js.map +1 -0
- package/dist/src/columns/table.d.ts +184 -0
- package/dist/src/columns/table.d.ts.map +1 -0
- package/dist/src/columns/table.js +485 -0
- package/dist/src/columns/table.js.map +1 -0
- package/dist/src/constants.d.ts +34 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +79 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/errors.d.ts +76 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +32 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/ids/edge-id-index.d.ts +77 -0
- package/dist/src/ids/edge-id-index.d.ts.map +1 -0
- package/dist/src/ids/edge-id-index.js +155 -0
- package/dist/src/ids/edge-id-index.js.map +1 -0
- package/dist/src/ids/node-id-map.d.ts +280 -0
- package/dist/src/ids/node-id-map.d.ts.map +1 -0
- package/dist/src/ids/node-id-map.js +1139 -0
- package/dist/src/ids/node-id-map.js.map +1 -0
- package/dist/src/ids/string-store.d.ts +219 -0
- package/dist/src/ids/string-store.d.ts.map +1 -0
- package/dist/src/ids/string-store.js +526 -0
- package/dist/src/ids/string-store.js.map +1 -0
- package/dist/src/index.d.ts +30 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +29 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/populate/from-csr.d.ts +61 -0
- package/dist/src/populate/from-csr.d.ts.map +1 -0
- package/dist/src/populate/from-csr.js +706 -0
- package/dist/src/populate/from-csr.js.map +1 -0
- package/dist/src/populate/from-edge-arrays.d.ts +51 -0
- package/dist/src/populate/from-edge-arrays.d.ts.map +1 -0
- package/dist/src/populate/from-edge-arrays.js +217 -0
- package/dist/src/populate/from-edge-arrays.js.map +1 -0
- package/dist/src/populate/from-records.d.ts +51 -0
- package/dist/src/populate/from-records.d.ts.map +1 -0
- package/dist/src/populate/from-records.js +447 -0
- package/dist/src/populate/from-records.js.map +1 -0
- package/dist/src/snapshot/derived.d.ts +211 -0
- package/dist/src/snapshot/derived.d.ts.map +1 -0
- package/dist/src/snapshot/derived.js +1254 -0
- package/dist/src/snapshot/derived.js.map +1 -0
- package/dist/src/snapshot/graph-meta.d.ts +23 -0
- package/dist/src/snapshot/graph-meta.d.ts.map +1 -0
- package/dist/src/snapshot/graph-meta.js +159 -0
- package/dist/src/snapshot/graph-meta.js.map +1 -0
- package/dist/src/snapshot/graph-snapshot.d.ts +509 -0
- package/dist/src/snapshot/graph-snapshot.d.ts.map +1 -0
- package/dist/src/snapshot/graph-snapshot.js +1247 -0
- package/dist/src/snapshot/graph-snapshot.js.map +1 -0
- package/dist/src/snapshot/hash.d.ts +90 -0
- package/dist/src/snapshot/hash.d.ts.map +1 -0
- package/dist/src/snapshot/hash.js +228 -0
- package/dist/src/snapshot/hash.js.map +1 -0
- package/dist/src/snapshot/queries.d.ts +74 -0
- package/dist/src/snapshot/queries.d.ts.map +1 -0
- package/dist/src/snapshot/queries.js +131 -0
- package/dist/src/snapshot/queries.js.map +1 -0
- package/dist/src/snapshot/validate.d.ts +192 -0
- package/dist/src/snapshot/validate.d.ts.map +1 -0
- package/dist/src/snapshot/validate.js +990 -0
- package/dist/src/snapshot/validate.js.map +1 -0
- package/dist/src/snapshot/views.d.ts +274 -0
- package/dist/src/snapshot/views.d.ts.map +1 -0
- package/dist/src/snapshot/views.js +856 -0
- package/dist/src/snapshot/views.js.map +1 -0
- package/dist/src/types/builder.d.ts +456 -0
- package/dist/src/types/builder.d.ts.map +1 -0
- package/dist/src/types/builder.js +11 -0
- package/dist/src/types/builder.js.map +1 -0
- package/dist/src/types/columns.d.ts +615 -0
- package/dist/src/types/columns.d.ts.map +1 -0
- package/dist/src/types/columns.js +14 -0
- package/dist/src/types/columns.js.map +1 -0
- package/dist/src/types/index.d.ts +14 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +11 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/internal.d.ts +172 -0
- package/dist/src/types/internal.d.ts.map +1 -0
- package/dist/src/types/internal.js +13 -0
- package/dist/src/types/internal.js.map +1 -0
- package/dist/src/types/snapshot.d.ts +801 -0
- package/dist/src/types/snapshot.d.ts.map +1 -0
- package/dist/src/types/snapshot.js +14 -0
- package/dist/src/types/snapshot.js.map +1 -0
- package/dist/src/types/wire.d.ts +196 -0
- package/dist/src/types/wire.d.ts.map +1 -0
- package/dist/src/types/wire.js +8 -0
- package/dist/src/types/wire.js.map +1 -0
- package/dist/src/util/mask.d.ts +55 -0
- package/dist/src/util/mask.d.ts.map +1 -0
- package/dist/src/util/mask.js +71 -0
- package/dist/src/util/mask.js.map +1 -0
- package/dist/src/util/options.d.ts +22 -0
- package/dist/src/util/options.d.ts.map +1 -0
- package/dist/src/util/options.js +49 -0
- package/dist/src/util/options.js.map +1 -0
- package/dist/src/util/shared-buffers.d.ts +42 -0
- package/dist/src/util/shared-buffers.d.ts.map +1 -0
- package/dist/src/util/shared-buffers.js +52 -0
- package/dist/src/util/shared-buffers.js.map +1 -0
- package/dist/src/util/typed-array.d.ts +205 -0
- package/dist/src/util/typed-array.d.ts.map +1 -0
- package/dist/src/util/typed-array.js +289 -0
- package/dist/src/util/typed-array.js.map +1 -0
- package/dist/src/wire/bytes.d.ts +69 -0
- package/dist/src/wire/bytes.d.ts.map +1 -0
- package/dist/src/wire/bytes.js +361 -0
- package/dist/src/wire/bytes.js.map +1 -0
- package/dist/src/wire/carried-views.d.ts +111 -0
- package/dist/src/wire/carried-views.d.ts.map +1 -0
- package/dist/src/wire/carried-views.js +286 -0
- package/dist/src/wire/carried-views.js.map +1 -0
- package/dist/src/wire/from-wire.d.ts +144 -0
- package/dist/src/wire/from-wire.d.ts.map +1 -0
- package/dist/src/wire/from-wire.js +1425 -0
- package/dist/src/wire/from-wire.js.map +1 -0
- package/dist/src/wire/to-wire.d.ts +171 -0
- package/dist/src/wire/to-wire.d.ts.map +1 -0
- package/dist/src/wire/to-wire.js +652 -0
- package/dist/src/wire/to-wire.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +72 -7
- package/src/builder/arena.ts +192 -0
- package/src/builder/compact.ts +1811 -0
- package/src/builder/counting-sort.ts +506 -0
- package/src/builder/freeze.ts +689 -0
- package/src/builder/graph-builder.ts +2264 -0
- package/src/builder/options.ts +29 -0
- package/src/columns/bitmap.ts +196 -0
- package/src/columns/column.ts +2574 -0
- package/src/columns/dictionary.ts +114 -0
- package/src/columns/growable.ts +350 -0
- package/src/columns/infer.ts +285 -0
- package/src/columns/remap.ts +663 -0
- package/src/columns/table.ts +568 -0
- package/src/constants.ts +89 -0
- package/src/errors.ts +115 -0
- package/src/ids/edge-id-index.ts +179 -0
- package/src/ids/node-id-map.ts +1340 -0
- package/src/ids/string-store.ts +589 -0
- package/src/index.ts +139 -0
- package/src/lib-resizable-array-buffer.d.ts +34 -0
- package/src/populate/from-csr.ts +802 -0
- package/src/populate/from-edge-arrays.ts +257 -0
- package/src/populate/from-records.ts +536 -0
- package/src/snapshot/derived.ts +1486 -0
- package/src/snapshot/graph-meta.ts +167 -0
- package/src/snapshot/graph-snapshot.ts +1503 -0
- package/src/snapshot/hash.ts +241 -0
- package/src/snapshot/queries.ts +136 -0
- package/src/snapshot/validate.ts +1108 -0
- package/src/snapshot/views.ts +943 -0
- package/src/types/builder.ts +480 -0
- package/src/types/columns.ts +727 -0
- package/src/types/index.ts +14 -0
- package/src/types/internal.ts +195 -0
- package/src/types/snapshot.ts +886 -0
- package/src/types/wire.ts +207 -0
- package/src/util/mask.ts +89 -0
- package/src/util/options.ts +57 -0
- package/src/util/shared-buffers.ts +56 -0
- package/src/util/typed-array.ts +371 -0
- package/src/wire/bytes.ts +440 -0
- package/src/wire/carried-views.ts +327 -0
- package/src/wire/from-wire.ts +1690 -0
- package/src/wire/to-wire.ts +755 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-csr.js","sourceRoot":"","sources":["../../../src/populate/from-csr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `fromEdgeArrays()` (design section 8.1, entry point 1): COO typed arrays with dense node indices,
|
|
3
|
+
* the 20 ms path. The input goes through the builder's index-space fast path -- `addAnonymousNodes`
|
|
4
|
+
* (no id Map unless `ids` is given) plus one `addEdges` call -- and then the freeze pipeline of design
|
|
5
|
+
* section 6.3, so every builder policy (duplicate edges, self-loops, weight precision) and every
|
|
6
|
+
* freeze option (label, prepare, arena, checksum) applies exactly as it does to a hand-built
|
|
7
|
+
* builder. Attribute columns are staged in the builder too, so a merging duplicate policy or a
|
|
8
|
+
* dropped self-loop gathers them through the same remaps as any other column (design section 5.11).
|
|
9
|
+
*
|
|
10
|
+
* The options object is the intersection of BuilderOptionsPatch and FreezeOptions; `splitOptions`
|
|
11
|
+
* routes each field to the builder or to the freeze and is shared with `fromRecords`.
|
|
12
|
+
*/
|
|
13
|
+
import { type GraphSnapshot } from "../snapshot/graph-snapshot.js";
|
|
14
|
+
import { type BuilderOptionsPatch, type EdgeArraysInput, type FreezeOptions, type GraphBuilderOptions } from "../types/index.js";
|
|
15
|
+
/** The builder half and the freeze half of a `BuilderOptionsPatch & FreezeOptions` object. */
|
|
16
|
+
interface SplitOptions {
|
|
17
|
+
/** The builder options; `directed` is the caller's input value. */
|
|
18
|
+
readonly builder: GraphBuilderOptions;
|
|
19
|
+
/** The freeze options. */
|
|
20
|
+
readonly freeze: FreezeOptions;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Route the fields of a factory options object to the builder constructor and to `freeze()`.
|
|
24
|
+
* `duplicateEdges` (a field of both) becomes the builder's default policy, which the freeze then
|
|
25
|
+
* applies; an `options.directed` must agree with the input's own `directed` (E_DIRECTED otherwise; the input is
|
|
26
|
+
* authoritative). Undefined fields are left to the builder's and the freeze's own defaults.
|
|
27
|
+
* @param directed - the input's direction
|
|
28
|
+
* @param options - the combined options
|
|
29
|
+
* @returns the two halves
|
|
30
|
+
*/
|
|
31
|
+
export declare function splitOptions(directed: boolean, options: BuilderOptionsPatch & FreezeOptions): SplitOptions;
|
|
32
|
+
/**
|
|
33
|
+
* Build a snapshot from COO typed arrays with dense node indices (design section 8.1): the builder's
|
|
34
|
+
* index-space fast path (`addAnonymousNodes` + `addEdges`, no id Map unless `ids` is given) followed
|
|
35
|
+
* by the freeze pipeline, so the result is exactly what a builder fed the same nodes, edges, columns
|
|
36
|
+
* and meta would freeze to. Without `ids` the id map is `identity` with offset 0 and no storage;
|
|
37
|
+
* with `ids` the kind is detected at freeze (design section 4.2). Float64 weights select the f64
|
|
38
|
+
* staging precision unless `options.weightDtype` says otherwise, so the values are downcast to f32 in
|
|
39
|
+
* the arc array and an f64 shadow column is kept only when some value is not f32-exact (design
|
|
40
|
+
* section 3.7).
|
|
41
|
+
* @param input - the arrays; `nodeCount` is required unless `ids` is given (E_INDEX_RANGE); `src`,
|
|
42
|
+
* `dst` and `weights` must have one entry per edge (E_COLUMN_LENGTH); every index must be below the
|
|
43
|
+
* node count (E_UNKNOWN_NODE); no weight may be NaN (E_INVALID_WEIGHT); ids must be distinct legal
|
|
44
|
+
* ids (E_DUPLICATE_ID / E_INVALID_ID); columns must have the table's row count (E_COLUMN_LENGTH)
|
|
45
|
+
* @param options - builder policies and freeze options; `duplicateEdges` and `selfLoops` apply at the
|
|
46
|
+
* freeze (E_DUPLICATE_EDGE / E_SELF_LOOP under the "error" policies)
|
|
47
|
+
* @returns the frozen snapshot
|
|
48
|
+
*/
|
|
49
|
+
export declare function fromEdgeArrays(input: EdgeArraysInput, options?: BuilderOptionsPatch & FreezeOptions): GraphSnapshot;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=from-edge-arrays.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-edge-arrays.d.ts","sourceRoot":"","sources":["../../../src/populate/from-edge-arrays.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACH,KAAK,mBAAmB,EAGxB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAG3B,MAAM,mBAAmB,CAAC;AAI3B,8FAA8F;AAC9F,UAAU,YAAY;IAClB,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,GAAG,aAAa,GAAG,YAAY,CA4B1G;AA2HD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC1B,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,mBAAmB,GAAG,aAAkB,GAClD,aAAa,CAsCf"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `fromEdgeArrays()` (design section 8.1, entry point 1): COO typed arrays with dense node indices,
|
|
3
|
+
* the 20 ms path. The input goes through the builder's index-space fast path -- `addAnonymousNodes`
|
|
4
|
+
* (no id Map unless `ids` is given) plus one `addEdges` call -- and then the freeze pipeline of design
|
|
5
|
+
* section 6.3, so every builder policy (duplicate edges, self-loops, weight precision) and every
|
|
6
|
+
* freeze option (label, prepare, arena, checksum) applies exactly as it does to a hand-built
|
|
7
|
+
* builder. Attribute columns are staged in the builder too, so a merging duplicate policy or a
|
|
8
|
+
* dropped self-loop gathers them through the same remaps as any other column (design section 5.11).
|
|
9
|
+
*
|
|
10
|
+
* The options object is the intersection of BuilderOptionsPatch and FreezeOptions; `splitOptions`
|
|
11
|
+
* routes each field to the builder or to the freeze and is shared with `fromRecords`.
|
|
12
|
+
*/
|
|
13
|
+
import { GraphBuilder } from "../builder/graph-builder.js";
|
|
14
|
+
import { columnFromValues, metaToDecl } from "../columns/column.js";
|
|
15
|
+
import { GraphFormatError } from "../errors.js";
|
|
16
|
+
/**
|
|
17
|
+
* Route the fields of a factory options object to the builder constructor and to `freeze()`.
|
|
18
|
+
* `duplicateEdges` (a field of both) becomes the builder's default policy, which the freeze then
|
|
19
|
+
* applies; an `options.directed` must agree with the input's own `directed` (E_DIRECTED otherwise; the input is
|
|
20
|
+
* authoritative). Undefined fields are left to the builder's and the freeze's own defaults.
|
|
21
|
+
* @param directed - the input's direction
|
|
22
|
+
* @param options - the combined options
|
|
23
|
+
* @returns the two halves
|
|
24
|
+
*/
|
|
25
|
+
export function splitOptions(directed, options) {
|
|
26
|
+
if (options.directed !== undefined && options.directed !== directed) {
|
|
27
|
+
throw new GraphFormatError("E_DIRECTED", `options.directed (${String(options.directed)}) disagrees with the input's directed (${String(directed)})`, { reason: "direction mismatch", directed, found: options.directed });
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
builder: {
|
|
31
|
+
directed,
|
|
32
|
+
weighted: options.weighted,
|
|
33
|
+
weightDtype: options.weightDtype,
|
|
34
|
+
duplicateEdges: options.duplicateEdges,
|
|
35
|
+
selfLoops: options.selfLoops,
|
|
36
|
+
addMissingNodes: options.addMissingNodes,
|
|
37
|
+
expectedNodes: options.expectedNodes,
|
|
38
|
+
expectedEdges: options.expectedEdges,
|
|
39
|
+
},
|
|
40
|
+
freeze: {
|
|
41
|
+
label: options.label,
|
|
42
|
+
prepare: options.prepare,
|
|
43
|
+
arena: options.arena,
|
|
44
|
+
release: options.release,
|
|
45
|
+
profile: options.profile,
|
|
46
|
+
checksum: options.checksum,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// ============================================================ columns
|
|
51
|
+
/**
|
|
52
|
+
* Whether a column value is a typed array (as opposed to a ColumnInput).
|
|
53
|
+
* @param value - the column value
|
|
54
|
+
* @returns true for a typed array
|
|
55
|
+
*/
|
|
56
|
+
function isTypedArrayData(value) {
|
|
57
|
+
return ArrayBuffer.isView(value);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Stage one caller-supplied column in the builder (design section 8.1). A typed array (bare or
|
|
61
|
+
* inside a ColumnInput) is bulk-set with its declaration; a JS array of values is resolved with the
|
|
62
|
+
* same inference `AttributeTable.set()` applies (design section 5.1 widening, list detection) and
|
|
63
|
+
* written row by row into a declared column, so a string / list / json column reaches the snapshot
|
|
64
|
+
* through the same freeze step as every other column.
|
|
65
|
+
* @param builder - the builder
|
|
66
|
+
* @param domain - "node" or "edge"
|
|
67
|
+
* @param rows - the table's row count (nodeCount or edge count); a JS array must have this many entries
|
|
68
|
+
* @param name - the column name (the record key; a `decl.name` is ignored)
|
|
69
|
+
* @param value - the typed array or ColumnInput
|
|
70
|
+
*/
|
|
71
|
+
function stageColumn(builder, domain, rows, name, value) {
|
|
72
|
+
const data = isTypedArrayData(value) ? value : value.data;
|
|
73
|
+
const decl = isTypedArrayData(value) ? {} : value.decl;
|
|
74
|
+
if (ArrayBuffer.isView(data)) {
|
|
75
|
+
if (domain === "node") {
|
|
76
|
+
builder.setNodeColumn(name, data, decl);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
builder.setEdgeColumn(name, data, decl);
|
|
80
|
+
}
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const column = columnFromValues(domain, rows, name, data, decl);
|
|
84
|
+
const declaration = { ...metaToDecl(column.meta), name, dtype: column.dtype };
|
|
85
|
+
const handle = domain === "node" ? builder.declareNodeColumn(declaration) : builder.declareEdgeColumn(declaration);
|
|
86
|
+
for (let row = 0; row < rows; row++) {
|
|
87
|
+
if (!column.isSet(row)) {
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
const cell = column.value(row);
|
|
91
|
+
if (domain === "node") {
|
|
92
|
+
builder.setNodeValue(handle, row, cell);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
builder.setEdgeValue(handle, row, cell);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// ============================================================ the entry point
|
|
100
|
+
/**
|
|
101
|
+
* The E_COLUMN_LENGTH error for two input arrays whose lengths disagree.
|
|
102
|
+
* @param field - the array that is wrong
|
|
103
|
+
* @param expected - the length it should have
|
|
104
|
+
* @param found - the length it has
|
|
105
|
+
* @returns the error
|
|
106
|
+
*/
|
|
107
|
+
function lengthError(field, expected, found) {
|
|
108
|
+
return new GraphFormatError("E_COLUMN_LENGTH", `${field} has ${found} entries, expected ${expected}`, {
|
|
109
|
+
field,
|
|
110
|
+
expected,
|
|
111
|
+
found,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Resolve the node count of an EdgeArraysInput: `ids.length` when ids are given (and `nodeCount`,
|
|
116
|
+
* when also given, must agree), else `nodeCount`, which is then required.
|
|
117
|
+
* @param input - the input
|
|
118
|
+
* @returns the node count
|
|
119
|
+
*/
|
|
120
|
+
function resolveNodeCount(input) {
|
|
121
|
+
const { nodeCount, ids } = input;
|
|
122
|
+
if (nodeCount !== undefined && (!Number.isInteger(nodeCount) || nodeCount < 0)) {
|
|
123
|
+
throw new GraphFormatError("E_INDEX_RANGE", `nodeCount ${nodeCount} is not a non-negative integer`, {
|
|
124
|
+
field: "nodeCount",
|
|
125
|
+
found: nodeCount,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
if (ids !== undefined) {
|
|
129
|
+
if (nodeCount !== undefined && nodeCount !== ids.length) {
|
|
130
|
+
throw lengthError("ids", nodeCount, ids.length);
|
|
131
|
+
}
|
|
132
|
+
return ids.length;
|
|
133
|
+
}
|
|
134
|
+
if (nodeCount === undefined) {
|
|
135
|
+
throw new GraphFormatError("E_INDEX_RANGE", "nodeCount is required when no ids are given", {
|
|
136
|
+
field: "nodeCount",
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
return nodeCount;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Add the caller's ids to the builder in index order; every id must be distinct so that index i holds
|
|
143
|
+
* ids[i] (E_DUPLICATE_ID otherwise, naming the id and both positions).
|
|
144
|
+
* @param builder - the builder
|
|
145
|
+
* @param ids - the ids in index order
|
|
146
|
+
*/
|
|
147
|
+
function addIds(builder, ids) {
|
|
148
|
+
const indices = builder.addNodes(ids);
|
|
149
|
+
for (let i = 0; i < indices.length; i++) {
|
|
150
|
+
if (indices[i] !== i) {
|
|
151
|
+
const id = ids[i];
|
|
152
|
+
throw new GraphFormatError("E_DUPLICATE_ID", `ids[${i}] repeats the id of index ${indices[i]}`, {
|
|
153
|
+
id,
|
|
154
|
+
index: indices[i],
|
|
155
|
+
position: i,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Build a snapshot from COO typed arrays with dense node indices (design section 8.1): the builder's
|
|
162
|
+
* index-space fast path (`addAnonymousNodes` + `addEdges`, no id Map unless `ids` is given) followed
|
|
163
|
+
* by the freeze pipeline, so the result is exactly what a builder fed the same nodes, edges, columns
|
|
164
|
+
* and meta would freeze to. Without `ids` the id map is `identity` with offset 0 and no storage;
|
|
165
|
+
* with `ids` the kind is detected at freeze (design section 4.2). Float64 weights select the f64
|
|
166
|
+
* staging precision unless `options.weightDtype` says otherwise, so the values are downcast to f32 in
|
|
167
|
+
* the arc array and an f64 shadow column is kept only when some value is not f32-exact (design
|
|
168
|
+
* section 3.7).
|
|
169
|
+
* @param input - the arrays; `nodeCount` is required unless `ids` is given (E_INDEX_RANGE); `src`,
|
|
170
|
+
* `dst` and `weights` must have one entry per edge (E_COLUMN_LENGTH); every index must be below the
|
|
171
|
+
* node count (E_UNKNOWN_NODE); no weight may be NaN (E_INVALID_WEIGHT); ids must be distinct legal
|
|
172
|
+
* ids (E_DUPLICATE_ID / E_INVALID_ID); columns must have the table's row count (E_COLUMN_LENGTH)
|
|
173
|
+
* @param options - builder policies and freeze options; `duplicateEdges` and `selfLoops` apply at the
|
|
174
|
+
* freeze (E_DUPLICATE_EDGE / E_SELF_LOOP under the "error" policies)
|
|
175
|
+
* @returns the frozen snapshot
|
|
176
|
+
*/
|
|
177
|
+
export function fromEdgeArrays(input, options = {}) {
|
|
178
|
+
const { src, dst, weights } = input;
|
|
179
|
+
if (dst.length !== src.length) {
|
|
180
|
+
throw lengthError("dst", src.length, dst.length);
|
|
181
|
+
}
|
|
182
|
+
if (weights !== undefined && weights.length !== src.length) {
|
|
183
|
+
throw lengthError("weights", src.length, weights.length);
|
|
184
|
+
}
|
|
185
|
+
const nodeCount = resolveNodeCount(input);
|
|
186
|
+
const edgeCount = src.length;
|
|
187
|
+
const split = splitOptions(input.directed, options);
|
|
188
|
+
const builderOptions = {
|
|
189
|
+
...split.builder,
|
|
190
|
+
weightDtype: options.weightDtype ?? (weights instanceof Float64Array ? "f64" : undefined),
|
|
191
|
+
expectedNodes: options.expectedNodes ?? nodeCount,
|
|
192
|
+
expectedEdges: options.expectedEdges ?? edgeCount,
|
|
193
|
+
};
|
|
194
|
+
const builder = new GraphBuilder(builderOptions);
|
|
195
|
+
if (input.ids === undefined) {
|
|
196
|
+
builder.addAnonymousNodes(nodeCount);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
addIds(builder, input.ids);
|
|
200
|
+
}
|
|
201
|
+
builder.addEdges(src, dst, weights);
|
|
202
|
+
if (input.nodeColumns !== undefined) {
|
|
203
|
+
for (const name of Object.keys(input.nodeColumns)) {
|
|
204
|
+
stageColumn(builder, "node", nodeCount, name, input.nodeColumns[name]);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
if (input.edgeColumns !== undefined) {
|
|
208
|
+
for (const name of Object.keys(input.edgeColumns)) {
|
|
209
|
+
stageColumn(builder, "edge", edgeCount, name, input.edgeColumns[name]);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (input.meta !== undefined) {
|
|
213
|
+
builder.setMeta(input.meta);
|
|
214
|
+
}
|
|
215
|
+
return builder.freeze(split.freeze);
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=from-edge-arrays.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-edge-arrays.js","sourceRoot":"","sources":["../../../src/populate/from-edge-arrays.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `fromRecords()` (design section 8.1, entry point 3): plain node-link records, the shape every JSON
|
|
3
|
+
* dialect parses into and what graphty-element's data sources emit. Every record is pushed into a
|
|
4
|
+
* GraphBuilder scalar by scalar -- the id, the endpoints and the weight through `addNode` / `addEdge`,
|
|
5
|
+
* every other key through `setNodeValue` / `setEdgeValue` -- so attribute columns are inferred and
|
|
6
|
+
* widened per column by the builder exactly as `addNodeRecord` / `addEdgeRecord` would (design
|
|
7
|
+
* section 5.1), and the FreezeReport carries the widenings. The reserved keys (the node id, the edge
|
|
8
|
+
* source / target and the weight) never become attribute columns: the id map and the arc array
|
|
9
|
+
* already hold them.
|
|
10
|
+
*
|
|
11
|
+
* Id coercion (design section 4.1) is applied here, before an id reaches the builder: "keep" (the
|
|
12
|
+
* default; JSON values are already typed), "canonical" (canonical integer text becomes a number,
|
|
13
|
+
* everything else stays a string), "string" and "number".
|
|
14
|
+
*/
|
|
15
|
+
import { type GraphSnapshot } from "../snapshot/graph-snapshot.js";
|
|
16
|
+
import { type BuilderOptionsPatch, type FreezeOptions, type FreezeReport, type IdCoercion, type NodeId, type RecordsInput } from "../types/index.js";
|
|
17
|
+
/**
|
|
18
|
+
* Apply an id coercion rule to one id cell (design section 4.1). The result still goes through the
|
|
19
|
+
* builder's own id validation (E_INVALID_ID for anything that is not a finite number or a well-formed
|
|
20
|
+
* string), so this function only converts; it rejects the shapes a rule cannot convert.
|
|
21
|
+
* @param value - the cell value
|
|
22
|
+
* @param rule - the coercion rule
|
|
23
|
+
* @param field - which cell, for the error message
|
|
24
|
+
* @returns the id to hand to the builder
|
|
25
|
+
*/
|
|
26
|
+
export declare function coerceId(value: unknown, rule: IdCoercion, field: string): NodeId;
|
|
27
|
+
/**
|
|
28
|
+
* Build a snapshot from node-link records (design section 8.1): node records (optional; every node
|
|
29
|
+
* an edge names is created under addMissingNodes, the default) and edge records, pushed into a
|
|
30
|
+
* GraphBuilder one scalar at a time and frozen. The node id comes from `nodeId` ("id" by default;
|
|
31
|
+
* null makes the node index the record position and the endpoints indices, the d3 v3 shape), the
|
|
32
|
+
* endpoints from `edgeSource` / `edgeTarget` ("source" / "target" by default, falling back to "src"
|
|
33
|
+
* / "from" and "dst" / "to"), the weight from `edgeWeight` ("weight" by default; null = unweighted).
|
|
34
|
+
* Every other key becomes an attribute column per `columns`: "infer" (default) lets the builder
|
|
35
|
+
* infer and widen per column (design section 5.1), "json" stores each key as a json column, "none"
|
|
36
|
+
* loads only the structure, and a ColumnDecl list stores only the declared keys. Ids are coerced per
|
|
37
|
+
* `ids` ("keep" by default). The staging weight precision defaults to f64 so a JSON weight such as
|
|
38
|
+
* 0.1 is never corrupted (the shadow column costs nothing when every value is f32-exact); pass
|
|
39
|
+
* `weightDtype: "f32"` to opt out.
|
|
40
|
+
* @param input - the records and keys; a record without its id or an endpoint, or with an id the
|
|
41
|
+
* coercion rule cannot convert, is E_INVALID_ID; a non-numeric weight is E_INVALID_WEIGHT; an
|
|
42
|
+
* unknown endpoint under addMissingNodes false is E_UNKNOWN_NODE
|
|
43
|
+
* @param options - builder policies and freeze options
|
|
44
|
+
* @returns the snapshot and the freeze report (its `widened` entries name the inferred columns that
|
|
45
|
+
* widened while the records were read)
|
|
46
|
+
*/
|
|
47
|
+
export declare function fromRecords(input: RecordsInput, options?: BuilderOptionsPatch & FreezeOptions): {
|
|
48
|
+
snapshot: GraphSnapshot;
|
|
49
|
+
report: FreezeReport;
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=from-records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-records.d.ts","sourceRoot":"","sources":["../../../src/populate/from-records.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACH,KAAK,mBAAmB,EAGxB,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,YAAY,EACpB,MAAM,mBAAmB,CAAC;AAgD3B;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkDhF;AA4WD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CACvB,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,mBAAmB,GAAG,aAAkB,GAClD;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAanD"}
|