@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-wire.js","sourceRoot":"","sources":["../../../src/wire/from-wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The wire encoder (design sections 4.5, 5.9, 9.1 and 12.2): `toWire()` turns a snapshot into a
|
|
3
|
+
* JSON-serialisable manifest plus a list of ArrayBuffers, `transferables()` lists the exclusively
|
|
4
|
+
* owned buffers a worker hand-off may transfer, and the segment collector shared with the GSNP
|
|
5
|
+
* container writer of bytes.ts lays every typed array out as a WireBufferRef.
|
|
6
|
+
*
|
|
7
|
+
* Two layouts exist. In REFERENCE mode (toWire) every distinct backing ArrayBuffer becomes one entry
|
|
8
|
+
* of `buffers` and a reference carries the array's own byteOffset, so the core stays views over the
|
|
9
|
+
* arena (one buffer) and nothing is copied unless `transfer: true` meets a shared buffer. In
|
|
10
|
+
* CONTAINER mode (toBytes / toByteChunks) every array is placed at a 256-byte-aligned offset of one
|
|
11
|
+
* buffer region in manifest order, core arrays first so the region's prefix is the arena.
|
|
12
|
+
*
|
|
13
|
+
* toWire allocates nothing for typed data except the first materialisation of a lazily kept
|
|
14
|
+
* representation: the Utf8 store of string ids and string columns and the f64 / tag arrays of a
|
|
15
|
+
* numeric or mixed id map are cached by their owners, the encoded dictionaries and the JSON text of
|
|
16
|
+
* json columns are cached here. Non-finite numbers and -0 inside metadata are carried as the tagged
|
|
17
|
+
* strings of design section 5.9 so the manifest survives JSON.stringify unchanged.
|
|
18
|
+
*/
|
|
19
|
+
import { type GraphSnapshot } from "../snapshot/graph-snapshot.js";
|
|
20
|
+
import { type ToWireOptions, type TypedArrayData, type ViewName, type WireBufferRef, type WireDtype, type WireManifest, type WireSnapshot } from "../types/index.js";
|
|
21
|
+
/**
|
|
22
|
+
* The `producer` string written into every manifest (design section 9.1): the package name and its
|
|
23
|
+
* npm version. Golden fixtures mask it when compared. Bumped together with package.json.
|
|
24
|
+
*/
|
|
25
|
+
export declare const WIRE_PRODUCER = "@graphty/graph-format@0.1.0";
|
|
26
|
+
/**
|
|
27
|
+
* Refuse to emit wire data on a big-endian host (design section 9.2): every supported platform is
|
|
28
|
+
* little-endian and there is no byte-swapping reader, so a big-endian host must never produce a file
|
|
29
|
+
* other hosts reject. The parameter exists so the refusal path is testable on a little-endian host.
|
|
30
|
+
* @param littleEndian - whether the host is little-endian; defaults to the detected value
|
|
31
|
+
*/
|
|
32
|
+
export declare function assertLittleEndianHost(littleEndian?: boolean): void;
|
|
33
|
+
/**
|
|
34
|
+
* Encode a JSON value for the manifest (design section 5.9): `Infinity`, `-Infinity`, `NaN` and `-0`
|
|
35
|
+
* become `{ "$num": "..." }`, arrays and plain objects are copied recursively, everything else is
|
|
36
|
+
* returned as is. A user object whose ONLY key is `$num` or `$esc` would collide with the tags, so
|
|
37
|
+
* it is wrapped as `{ "$esc": { ...the object... } }` and unwrapped by the reader.
|
|
38
|
+
* The input has already passed assertJsonValue (design section 5.9), so no other shape can occur.
|
|
39
|
+
* @param value - the JSON value
|
|
40
|
+
* @returns the tagged copy
|
|
41
|
+
*/
|
|
42
|
+
export declare function encodeJsonValue(value: unknown): unknown;
|
|
43
|
+
/**
|
|
44
|
+
* Add an own enumerable property to a plain object without going through a setter, so a key such as
|
|
45
|
+
* "__proto__" stays a data property (the manifest reader rejects it anyway).
|
|
46
|
+
* @param target - the object
|
|
47
|
+
* @param key - the property name
|
|
48
|
+
* @param value - the value
|
|
49
|
+
*/
|
|
50
|
+
export declare function defineJsonKey(target: Record<string, unknown>, key: string, value: unknown): void;
|
|
51
|
+
/** How references are laid out. */
|
|
52
|
+
type WireMode = "reference" | "container";
|
|
53
|
+
/** One typed array placed in the container region: the source view and where it goes. */
|
|
54
|
+
export interface ContainerSegment {
|
|
55
|
+
/** The source array. */
|
|
56
|
+
readonly view: TypedArrayData;
|
|
57
|
+
/** Its reference (buffer 0, region-relative byteOffset). */
|
|
58
|
+
readonly ref: WireBufferRef;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Collects typed arrays into WireBufferRefs (design sections 9.1 and 9.2). In reference mode
|
|
62
|
+
* `buffers` is the list of distinct backing buffers (a shared buffer copied under `transfer`, its
|
|
63
|
+
* index recorded in `copied`); in container mode `segments` is the placement of every distinct array
|
|
64
|
+
* at a 256-aligned offset and `regionLength` the padded length of the region.
|
|
65
|
+
*/
|
|
66
|
+
export declare class WireLayout {
|
|
67
|
+
/** The layout mode. */
|
|
68
|
+
readonly mode: WireMode;
|
|
69
|
+
/** Reference mode: whether shared buffers are copied so the rest can be transferred. */
|
|
70
|
+
readonly transfer: boolean;
|
|
71
|
+
/** Reference mode: the distinct buffers, or their copies. */
|
|
72
|
+
readonly buffers: ArrayBuffer[];
|
|
73
|
+
/** Reference mode: the indices of `buffers` holding copies of shared buffers. */
|
|
74
|
+
readonly copied: number[];
|
|
75
|
+
/** Container mode: every placed array in region order. */
|
|
76
|
+
readonly segments: ContainerSegment[];
|
|
77
|
+
private readonly bufferIndex;
|
|
78
|
+
private readonly placed;
|
|
79
|
+
private cursor;
|
|
80
|
+
/**
|
|
81
|
+
* Create a collector.
|
|
82
|
+
* @param mode - reference (toWire) or container (toBytes)
|
|
83
|
+
* @param transfer - reference mode only: copy shared buffers so the others can be transferred
|
|
84
|
+
*/
|
|
85
|
+
constructor(mode: WireMode, transfer?: boolean);
|
|
86
|
+
/**
|
|
87
|
+
* Container mode: the padded byte length of the region (every segment padded to 256 bytes).
|
|
88
|
+
* @returns the region length
|
|
89
|
+
*/
|
|
90
|
+
get regionLength(): number;
|
|
91
|
+
/**
|
|
92
|
+
* Reference mode: the index a buffer was assigned, or null when no array over it was placed.
|
|
93
|
+
* @param buffer - the buffer
|
|
94
|
+
* @returns the index into `buffers`, or null
|
|
95
|
+
*/
|
|
96
|
+
indexOf(buffer: ArrayBuffer): number | null;
|
|
97
|
+
/**
|
|
98
|
+
* Place a typed array and return its reference. The same byte range is placed once. When the
|
|
99
|
+
* holder of the array (its column, table or id map) is shared, the buffer is recorded as shared
|
|
100
|
+
* so `finalise()` copies it under `transfer` (design section 9.1).
|
|
101
|
+
* @param view - the array
|
|
102
|
+
* @param dtype - its wire dtype ("utf8" for byte stores, "u8" for u8 columns and tags)
|
|
103
|
+
* @param sharedHolder - whether the object holding the array is held by more than one snapshot or table
|
|
104
|
+
* @returns the reference
|
|
105
|
+
*/
|
|
106
|
+
ref(view: TypedArrayData, dtype: WireDtype, sharedHolder?: boolean): WireBufferRef;
|
|
107
|
+
/**
|
|
108
|
+
* Reference mode with `transfer`: replace every buffer recorded as shared by a copy and list its
|
|
109
|
+
* index in `copied` (design section 9.1). Called once after every array was placed, so the
|
|
110
|
+
* decision does not depend on the order in which shared holders were met.
|
|
111
|
+
*/
|
|
112
|
+
finalise(): void;
|
|
113
|
+
/**
|
|
114
|
+
* The index of a backing buffer, assigning the next one on first sight.
|
|
115
|
+
* @param buffer - the buffer
|
|
116
|
+
* @returns the index
|
|
117
|
+
*/
|
|
118
|
+
private bufferIndexOf;
|
|
119
|
+
}
|
|
120
|
+
/** The result of collecting a snapshot: the manifest and the layout that placed its arrays. */
|
|
121
|
+
interface CollectedWire {
|
|
122
|
+
/** The manifest. */
|
|
123
|
+
readonly manifest: WireManifest;
|
|
124
|
+
/** The collector holding the buffers (reference mode) or the segments (container mode). */
|
|
125
|
+
readonly layout: WireLayout;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Build the manifest of a snapshot over a collector (design section 9.1): core arrays first (an
|
|
129
|
+
* identity permutation, an absent weights array and a zero-length array are null), then the id map,
|
|
130
|
+
* the tables, the extension tables, the metadata and the requested views.
|
|
131
|
+
* @param snapshot - the snapshot
|
|
132
|
+
* @param layout - the collector
|
|
133
|
+
* @param includeViews - the views to carry
|
|
134
|
+
* @param includeColumns - whether attribute and extension tables are carried (default true)
|
|
135
|
+
* @returns the manifest and the collector
|
|
136
|
+
*/
|
|
137
|
+
export declare function collectWire(snapshot: GraphSnapshot, layout: WireLayout, includeViews: readonly ViewName[] | undefined, includeColumns?: boolean): CollectedWire;
|
|
138
|
+
/**
|
|
139
|
+
* The plain-object wire form of a snapshot (design section 9.1): a JSON-serialisable manifest plus
|
|
140
|
+
* the distinct backing ArrayBuffers of the core, the id map, the columns and the extension tables.
|
|
141
|
+
* Without `transfer` every buffer is a plain reference and postMessage clones; with `transfer: true`
|
|
142
|
+
* every buffer held by more than one snapshot, table or column (design section 9.1, tracked by
|
|
143
|
+
* src/util/shared-buffers.ts) is copied (its index listed in `manifest.copied`) so the remaining
|
|
144
|
+
* buffers can be transferred with `transferables()`.
|
|
145
|
+
* @param snapshot - the snapshot
|
|
146
|
+
* @param options - transfer mode, the cached views to carry and whether columns are carried
|
|
147
|
+
* @returns the wire snapshot; E_UNSUPPORTED on a big-endian host
|
|
148
|
+
*/
|
|
149
|
+
export declare function toWire(snapshot: GraphSnapshot, options?: ToWireOptions): WireSnapshot;
|
|
150
|
+
/**
|
|
151
|
+
* The postMessage transfer list of design section 9.1: the same set `toWire({ transfer: true })`
|
|
152
|
+
* put into `wire.buffers` -- exclusively owned originals plus the fresh copies made for shared
|
|
153
|
+
* buffers -- so `postMessage(wire, snapshot.transferables())` transfers exactly the buffers the
|
|
154
|
+
* wire carries, whatever `includeColumns` / `includeViews` selected (a buffer the wire does not
|
|
155
|
+
* reference is never listed, so no column is lost on either side). Before any transfer-mode toWire()
|
|
156
|
+
* call the list is computed for the default wire shape: the distinct exclusively owned buffers of
|
|
157
|
+
* the core, the id map, the typed columns, the string stores and the extension tables; a buffer
|
|
158
|
+
* held by more than one snapshot, table or column is excluded and an identity permutation is never
|
|
159
|
+
* included.
|
|
160
|
+
* @param snapshot - the snapshot
|
|
161
|
+
* @returns the buffers, in manifest order
|
|
162
|
+
*/
|
|
163
|
+
export declare function transferables(snapshot: GraphSnapshot): ArrayBuffer[];
|
|
164
|
+
/**
|
|
165
|
+
* The UTF-8 bytes of a manifest as the container stores them (design section 9.2).
|
|
166
|
+
* @param manifest - the manifest
|
|
167
|
+
* @returns the encoded JSON text
|
|
168
|
+
*/
|
|
169
|
+
export declare function encodeManifest(manifest: WireManifest): Uint8Array;
|
|
170
|
+
export {};
|
|
171
|
+
//# sourceMappingURL=to-wire.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-wire.d.ts","sourceRoot":"","sources":["../../../src/wire/to-wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EAOH,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EAEb,KAAK,aAAa,EAElB,KAAK,SAAS,EAEd,KAAK,YAAY,EACjB,KAAK,YAAY,EAEpB,MAAM,mBAAmB,CAAC;AAM3B;;;GAGG;AACH,eAAO,MAAM,aAAa,gCAAgC,CAAC;AAW3D;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,GAAE,OAA0B,GAAG,IAAI,CAMrF;AAUD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA+BvD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAEhG;AAID,mCAAmC;AACnC,KAAK,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1C,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;CAC/B;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACnB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAM;IACrC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAM;IAE3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,MAAM,CAAK;IAEnB;;;;OAIG;gBACS,IAAI,EAAE,QAAQ,EAAE,QAAQ,UAAQ;IAK5C;;;OAGG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAI3C;;;;;;;;OAQG;IACH,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,UAAQ,GAAG,aAAa;IA0BhF;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAahB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAUxB;AAoSD,+FAA+F;AAC/F,UAAU,aAAa;IACnB,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACvB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,EAC7C,cAAc,UAAO,GACtB,aAAa,CAsEf;AA2CD;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE,aAAkB,GAAG,YAAY,CASzF;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,WAAW,EAAE,CAQpE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,UAAU,CAEjE"}
|