@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,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `validate()` (design sections 3.2, 9.5 and 11.4): the invariants I1-I13 as one function each, the
|
|
3
|
+
* two levels "structure" (O(n + m + columns): lengths, ranges, counts, alignment, column length
|
|
4
|
+
* rules) and "full" (O(m log d): sortedness, orientation, pairing, NaN, flag recomputation, id
|
|
5
|
+
* bijection, unique columns), and the flag predicates of design section 3.8 shared with the derived
|
|
6
|
+
* graph core builder so that every flag has exactly one definition.
|
|
7
|
+
*
|
|
8
|
+
* Every check throws `E_INVALID_SNAPSHOT` on the first violation with `details.invariant` naming the
|
|
9
|
+
* number ("I4") and the location (`row`, `arc`, `edge`, `column`, `table`, `flag`, `reason`). The
|
|
10
|
+
* functions take the public `GraphSnapshot` contract, so test/invariants.test.ts runs the same
|
|
11
|
+
* helpers over hand-written fixtures. Checksum comparison needs the snapshot's private records and
|
|
12
|
+
* lives in graph-snapshot.ts.
|
|
13
|
+
*/
|
|
14
|
+
import { GraphFormatError } from "../errors.js";
|
|
15
|
+
import { type Column, type F32, type GraphSnapshot, type SnapshotFlags, type U32 } from "../types/index.js";
|
|
16
|
+
/**
|
|
17
|
+
* Build the E_INVALID_SNAPSHOT error of one violated invariant.
|
|
18
|
+
* @param invariant - the invariant number, e.g. "I4"
|
|
19
|
+
* @param message - a plain-ASCII description naming the location
|
|
20
|
+
* @param details - the location (row, arc, edge, column, ...); `invariant` is added
|
|
21
|
+
* @returns the error
|
|
22
|
+
*/
|
|
23
|
+
export declare function invariantViolation(invariant: string, message: string, details?: Readonly<Record<string, unknown>>): GraphFormatError;
|
|
24
|
+
/** The arrays the flag predicates read; a subset of the core so the builder can call it before the snapshot exists. */
|
|
25
|
+
interface FlagSource {
|
|
26
|
+
/** Whether the graph is directed. */
|
|
27
|
+
readonly directed: boolean;
|
|
28
|
+
/** The node count. */
|
|
29
|
+
readonly nodeCount: number;
|
|
30
|
+
/** The row offsets. */
|
|
31
|
+
readonly rowPtr: U32;
|
|
32
|
+
/** The sorted targets. */
|
|
33
|
+
readonly colIdx: U32;
|
|
34
|
+
/** The per-arc weights, or null. */
|
|
35
|
+
readonly weights: F32 | null;
|
|
36
|
+
/** The arc -> edge permutation, or null when it is known to be the identity. */
|
|
37
|
+
readonly arcToEdge: U32 | null;
|
|
38
|
+
/** The number of self-loop logical edges. */
|
|
39
|
+
readonly selfLoopCount: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The number of arcs a with colIdx[a] === row(a).
|
|
43
|
+
* @param rowPtr - the row offsets
|
|
44
|
+
* @param colIdx - the sorted targets
|
|
45
|
+
* @param nodeCount - the node count
|
|
46
|
+
* @returns the loop arc count
|
|
47
|
+
*/
|
|
48
|
+
export declare function countLoopArcs(rowPtr: U32, colIdx: U32, nodeCount: number): number;
|
|
49
|
+
/**
|
|
50
|
+
* Whether a permutation array is the identity.
|
|
51
|
+
* @param perm - the array
|
|
52
|
+
* @returns true when perm[i] === i for every i
|
|
53
|
+
*/
|
|
54
|
+
export declare function isIdentity(perm: U32): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Compute every flag of design section 3.8 from the arrays (invariant I9: never guessed).
|
|
57
|
+
* @param core - the arrays and counts the predicates read
|
|
58
|
+
* @returns the truthful flags
|
|
59
|
+
*/
|
|
60
|
+
export declare function computeFlags(core: FlagSource): SnapshotFlags;
|
|
61
|
+
/**
|
|
62
|
+
* I1: rowPtr has nodeCount + 1 entries, starts at 0, is non-decreasing and ends at arcCount ===
|
|
63
|
+
* colIdx.length.
|
|
64
|
+
* @param s - the snapshot
|
|
65
|
+
*/
|
|
66
|
+
export declare function checkI1(s: GraphSnapshot): void;
|
|
67
|
+
/**
|
|
68
|
+
* I2: every colIdx entry is below nodeCount (so INVALID_INDEX never appears).
|
|
69
|
+
* @param s - the snapshot
|
|
70
|
+
*/
|
|
71
|
+
export declare function checkI2(s: GraphSnapshot): void;
|
|
72
|
+
/**
|
|
73
|
+
* I3: the counts are non-negative integers at most MAX_COUNT, edgeCount <= arcCount and selfLoopCount
|
|
74
|
+
* <= edgeCount.
|
|
75
|
+
* @param s - the snapshot
|
|
76
|
+
*/
|
|
77
|
+
export declare function checkI3(s: GraphSnapshot): void;
|
|
78
|
+
/**
|
|
79
|
+
* I4: within every row colIdx is non-decreasing and arcs with equal colIdx are ordered by ascending
|
|
80
|
+
* arcToEdge. Full level.
|
|
81
|
+
* @param s - the snapshot
|
|
82
|
+
*/
|
|
83
|
+
export declare function checkI4(s: GraphSnapshot): void;
|
|
84
|
+
/**
|
|
85
|
+
* I5 (structure part): arcToEdge has arcCount entries below edgeCount and edgeToArc has edgeCount
|
|
86
|
+
* entries below arcCount; an identity flag requires arcCount === edgeCount and a directed snapshot.
|
|
87
|
+
* @param s - the snapshot
|
|
88
|
+
*/
|
|
89
|
+
export declare function checkI5Ranges(s: GraphSnapshot): void;
|
|
90
|
+
/**
|
|
91
|
+
* I5 (orientation part): arcToEdge[edgeToArc[e]] === e for every edge. Full level.
|
|
92
|
+
* @param s - the snapshot
|
|
93
|
+
*/
|
|
94
|
+
export declare function checkI5Orientation(s: GraphSnapshot): void;
|
|
95
|
+
/**
|
|
96
|
+
* I6: a directed snapshot has arcCount === edgeCount (structure) and arcToEdge is a permutation of
|
|
97
|
+
* 0..edgeCount-1 (full: every edge exactly once).
|
|
98
|
+
* @param s - the snapshot
|
|
99
|
+
* @param full - whether to run the permutation check
|
|
100
|
+
*/
|
|
101
|
+
export declare function checkI6(s: GraphSnapshot, full: boolean): void;
|
|
102
|
+
/**
|
|
103
|
+
* I7 (structure part): an undirected snapshot has arcCount === 2 * edgeCount - selfLoopCount.
|
|
104
|
+
* @param s - the snapshot
|
|
105
|
+
*/
|
|
106
|
+
export declare function checkI7Counts(s: GraphSnapshot): void;
|
|
107
|
+
/**
|
|
108
|
+
* I7 (pairing part): every arc u -> v with u !== v has exactly one mate v -> u with the same logical
|
|
109
|
+
* edge and weight, a self-loop edge has exactly one arc, and every edge appears once (loop) or twice
|
|
110
|
+
* (mates). The lockstep walk of design section 6.4. Full level.
|
|
111
|
+
* @param s - the snapshot
|
|
112
|
+
*/
|
|
113
|
+
export declare function checkI7Pairing(s: GraphSnapshot): void;
|
|
114
|
+
/**
|
|
115
|
+
* I8 (length part): weights is null or has arcCount entries.
|
|
116
|
+
* @param s - the snapshot
|
|
117
|
+
*/
|
|
118
|
+
export declare function checkI8Length(s: GraphSnapshot): void;
|
|
119
|
+
/**
|
|
120
|
+
* I8 (value part): no weight is NaN. Full level.
|
|
121
|
+
* @param s - the snapshot
|
|
122
|
+
*/
|
|
123
|
+
export declare function checkI8NaN(s: GraphSnapshot): void;
|
|
124
|
+
/**
|
|
125
|
+
* I9: every flag equals its predicate over the arrays, and selfLoopCount equals the number of loop
|
|
126
|
+
* arcs. Full level.
|
|
127
|
+
* @param s - the snapshot
|
|
128
|
+
*/
|
|
129
|
+
export declare function checkI9(s: GraphSnapshot): void;
|
|
130
|
+
/**
|
|
131
|
+
* I10: every core array is 4-byte aligned over a plain ArrayBuffer and, when an arena exists, every
|
|
132
|
+
* array with a non-null segment is the 256-aligned view the segment describes and hotByteLength is the
|
|
133
|
+
* end of the weights (or colIdx, or rowPtr) segment.
|
|
134
|
+
* @param s - the snapshot
|
|
135
|
+
*/
|
|
136
|
+
export declare function checkI10(s: GraphSnapshot): void;
|
|
137
|
+
/**
|
|
138
|
+
* I11 (size part): the id map has nodeCount ids.
|
|
139
|
+
* @param s - the snapshot
|
|
140
|
+
*/
|
|
141
|
+
export declare function checkI11Size(s: GraphSnapshot): void;
|
|
142
|
+
/**
|
|
143
|
+
* I11 (bijection part): ids.indexOf(ids.idOf(i)) === i for every i and no id is NaN. Full level.
|
|
144
|
+
* @param s - the snapshot
|
|
145
|
+
*/
|
|
146
|
+
export declare function checkI11Bijection(s: GraphSnapshot): void;
|
|
147
|
+
/**
|
|
148
|
+
* The length rules of design section 5.7 for one column, plus dictionary code ranges, refersTo
|
|
149
|
+
* ranges, the recorded nullCount (recomputed from the bitmap, design section 9.5) and the plain
|
|
150
|
+
* ArrayBuffer rule of I10 for every typed array the column exposes (I12).
|
|
151
|
+
* @param table - the table name for the message
|
|
152
|
+
* @param column - the column
|
|
153
|
+
* @param rows - the table's row count
|
|
154
|
+
* @param s - the snapshot (for the referenced row counts)
|
|
155
|
+
*/
|
|
156
|
+
export declare function checkColumnRules(table: string, column: Column, rows: number, s: GraphSnapshot): void;
|
|
157
|
+
/**
|
|
158
|
+
* I12: the node, edge and graph tables have nodeCount, edgeCount and 1 rows, every column (extension
|
|
159
|
+
* tables included) obeys its length rules, dictionary codes are in range and refersTo values are in
|
|
160
|
+
* range or INVALID_INDEX with the row unset.
|
|
161
|
+
* @param s - the snapshot
|
|
162
|
+
*/
|
|
163
|
+
export declare function checkI12(s: GraphSnapshot): void;
|
|
164
|
+
/**
|
|
165
|
+
* I13: edge attribute columns are indexed by logical edge: the edge table has edgeCount rows.
|
|
166
|
+
* @param s - the snapshot
|
|
167
|
+
*/
|
|
168
|
+
export declare function checkI13(s: GraphSnapshot): void;
|
|
169
|
+
/**
|
|
170
|
+
* The "structure" level of design section 9.5: I1-I3, I5 lengths and ranges, I6 / I7 counts, I8
|
|
171
|
+
* length, I10, I11 size, I12 lengths and ranges, I13. O(n + m + columns).
|
|
172
|
+
* @param s - the snapshot
|
|
173
|
+
*/
|
|
174
|
+
export declare function validateStructure(s: GraphSnapshot): void;
|
|
175
|
+
/**
|
|
176
|
+
* The "full" level of design section 9.5: structure plus I4, I5 orientation, I6 permutation, I8 NaN
|
|
177
|
+
* (before the pairing walk, so a NaN weight is reported as I8 rather than as an unequal mate), I7
|
|
178
|
+
* pairing, I9 flags, I11 bijection and unique columns. O(m log d).
|
|
179
|
+
* @param s - the snapshot
|
|
180
|
+
*/
|
|
181
|
+
export declare function validateFull(s: GraphSnapshot): void;
|
|
182
|
+
/**
|
|
183
|
+
* The `unique` rule of a column as a validation failure (design sections 9.5 and 11.4): the
|
|
184
|
+
* freeze-time codes E_DUPLICATE_ID / E_DUPLICATE_EDGE_ID of `verifyUniqueColumn` become
|
|
185
|
+
* E_INVALID_SNAPSHOT with `details.invariant` "I12", `details.reason` "unique" and the original
|
|
186
|
+
* code in `details.cause`, so a reader of untrusted input sees one error family.
|
|
187
|
+
* @param table - the table name for the message
|
|
188
|
+
* @param column - the column
|
|
189
|
+
*/
|
|
190
|
+
export declare function checkUniqueColumn(table: string, column: Column): void;
|
|
191
|
+
export {};
|
|
192
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/snapshot/validate.ts"],"names":[],"mappings":"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"}
|