@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.
Files changed (224) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +216 -43
  3. package/dist/graph-format.d.ts +1 -0
  4. package/dist/graph-format.d.ts.map +1 -0
  5. package/dist/graph-format.js +15798 -0
  6. package/dist/graph-format.js.map +1 -0
  7. package/dist/src/builder/arena.d.ts +85 -0
  8. package/dist/src/builder/arena.d.ts.map +1 -0
  9. package/dist/src/builder/arena.js +154 -0
  10. package/dist/src/builder/arena.js.map +1 -0
  11. package/dist/src/builder/compact.d.ts +515 -0
  12. package/dist/src/builder/compact.d.ts.map +1 -0
  13. package/dist/src/builder/compact.js +1553 -0
  14. package/dist/src/builder/compact.js.map +1 -0
  15. package/dist/src/builder/counting-sort.d.ts +96 -0
  16. package/dist/src/builder/counting-sort.d.ts.map +1 -0
  17. package/dist/src/builder/counting-sort.js +430 -0
  18. package/dist/src/builder/counting-sort.js.map +1 -0
  19. package/dist/src/builder/freeze.d.ts +72 -0
  20. package/dist/src/builder/freeze.d.ts.map +1 -0
  21. package/dist/src/builder/freeze.js +548 -0
  22. package/dist/src/builder/freeze.js.map +1 -0
  23. package/dist/src/builder/graph-builder.d.ts +602 -0
  24. package/dist/src/builder/graph-builder.d.ts.map +1 -0
  25. package/dist/src/builder/graph-builder.js +1940 -0
  26. package/dist/src/builder/graph-builder.js.map +1 -0
  27. package/dist/src/builder/options.d.ts +16 -0
  28. package/dist/src/builder/options.d.ts.map +1 -0
  29. package/dist/src/builder/options.js +21 -0
  30. package/dist/src/builder/options.js.map +1 -0
  31. package/dist/src/columns/bitmap.d.ts +96 -0
  32. package/dist/src/columns/bitmap.d.ts.map +1 -0
  33. package/dist/src/columns/bitmap.js +184 -0
  34. package/dist/src/columns/bitmap.js.map +1 -0
  35. package/dist/src/columns/column.d.ts +220 -0
  36. package/dist/src/columns/column.d.ts.map +1 -0
  37. package/dist/src/columns/column.js +2109 -0
  38. package/dist/src/columns/column.js.map +1 -0
  39. package/dist/src/columns/dictionary.d.ts +60 -0
  40. package/dist/src/columns/dictionary.d.ts.map +1 -0
  41. package/dist/src/columns/dictionary.js +102 -0
  42. package/dist/src/columns/dictionary.js.map +1 -0
  43. package/dist/src/columns/growable.d.ts +198 -0
  44. package/dist/src/columns/growable.d.ts.map +1 -0
  45. package/dist/src/columns/growable.js +296 -0
  46. package/dist/src/columns/growable.js.map +1 -0
  47. package/dist/src/columns/infer.d.ts +121 -0
  48. package/dist/src/columns/infer.d.ts.map +1 -0
  49. package/dist/src/columns/infer.js +268 -0
  50. package/dist/src/columns/infer.js.map +1 -0
  51. package/dist/src/columns/remap.d.ts +143 -0
  52. package/dist/src/columns/remap.d.ts.map +1 -0
  53. package/dist/src/columns/remap.js +588 -0
  54. package/dist/src/columns/remap.js.map +1 -0
  55. package/dist/src/columns/table.d.ts +184 -0
  56. package/dist/src/columns/table.d.ts.map +1 -0
  57. package/dist/src/columns/table.js +485 -0
  58. package/dist/src/columns/table.js.map +1 -0
  59. package/dist/src/constants.d.ts +34 -0
  60. package/dist/src/constants.d.ts.map +1 -0
  61. package/dist/src/constants.js +79 -0
  62. package/dist/src/constants.js.map +1 -0
  63. package/dist/src/errors.d.ts +76 -0
  64. package/dist/src/errors.d.ts.map +1 -0
  65. package/dist/src/errors.js +32 -0
  66. package/dist/src/errors.js.map +1 -0
  67. package/dist/src/ids/edge-id-index.d.ts +77 -0
  68. package/dist/src/ids/edge-id-index.d.ts.map +1 -0
  69. package/dist/src/ids/edge-id-index.js +155 -0
  70. package/dist/src/ids/edge-id-index.js.map +1 -0
  71. package/dist/src/ids/node-id-map.d.ts +280 -0
  72. package/dist/src/ids/node-id-map.d.ts.map +1 -0
  73. package/dist/src/ids/node-id-map.js +1139 -0
  74. package/dist/src/ids/node-id-map.js.map +1 -0
  75. package/dist/src/ids/string-store.d.ts +219 -0
  76. package/dist/src/ids/string-store.d.ts.map +1 -0
  77. package/dist/src/ids/string-store.js +526 -0
  78. package/dist/src/ids/string-store.js.map +1 -0
  79. package/dist/src/index.d.ts +30 -0
  80. package/dist/src/index.d.ts.map +1 -0
  81. package/dist/src/index.js +29 -0
  82. package/dist/src/index.js.map +1 -0
  83. package/dist/src/populate/from-csr.d.ts +61 -0
  84. package/dist/src/populate/from-csr.d.ts.map +1 -0
  85. package/dist/src/populate/from-csr.js +706 -0
  86. package/dist/src/populate/from-csr.js.map +1 -0
  87. package/dist/src/populate/from-edge-arrays.d.ts +51 -0
  88. package/dist/src/populate/from-edge-arrays.d.ts.map +1 -0
  89. package/dist/src/populate/from-edge-arrays.js +217 -0
  90. package/dist/src/populate/from-edge-arrays.js.map +1 -0
  91. package/dist/src/populate/from-records.d.ts +51 -0
  92. package/dist/src/populate/from-records.d.ts.map +1 -0
  93. package/dist/src/populate/from-records.js +447 -0
  94. package/dist/src/populate/from-records.js.map +1 -0
  95. package/dist/src/snapshot/derived.d.ts +211 -0
  96. package/dist/src/snapshot/derived.d.ts.map +1 -0
  97. package/dist/src/snapshot/derived.js +1254 -0
  98. package/dist/src/snapshot/derived.js.map +1 -0
  99. package/dist/src/snapshot/graph-meta.d.ts +23 -0
  100. package/dist/src/snapshot/graph-meta.d.ts.map +1 -0
  101. package/dist/src/snapshot/graph-meta.js +159 -0
  102. package/dist/src/snapshot/graph-meta.js.map +1 -0
  103. package/dist/src/snapshot/graph-snapshot.d.ts +509 -0
  104. package/dist/src/snapshot/graph-snapshot.d.ts.map +1 -0
  105. package/dist/src/snapshot/graph-snapshot.js +1247 -0
  106. package/dist/src/snapshot/graph-snapshot.js.map +1 -0
  107. package/dist/src/snapshot/hash.d.ts +90 -0
  108. package/dist/src/snapshot/hash.d.ts.map +1 -0
  109. package/dist/src/snapshot/hash.js +228 -0
  110. package/dist/src/snapshot/hash.js.map +1 -0
  111. package/dist/src/snapshot/queries.d.ts +74 -0
  112. package/dist/src/snapshot/queries.d.ts.map +1 -0
  113. package/dist/src/snapshot/queries.js +131 -0
  114. package/dist/src/snapshot/queries.js.map +1 -0
  115. package/dist/src/snapshot/validate.d.ts +192 -0
  116. package/dist/src/snapshot/validate.d.ts.map +1 -0
  117. package/dist/src/snapshot/validate.js +990 -0
  118. package/dist/src/snapshot/validate.js.map +1 -0
  119. package/dist/src/snapshot/views.d.ts +274 -0
  120. package/dist/src/snapshot/views.d.ts.map +1 -0
  121. package/dist/src/snapshot/views.js +856 -0
  122. package/dist/src/snapshot/views.js.map +1 -0
  123. package/dist/src/types/builder.d.ts +456 -0
  124. package/dist/src/types/builder.d.ts.map +1 -0
  125. package/dist/src/types/builder.js +11 -0
  126. package/dist/src/types/builder.js.map +1 -0
  127. package/dist/src/types/columns.d.ts +615 -0
  128. package/dist/src/types/columns.d.ts.map +1 -0
  129. package/dist/src/types/columns.js +14 -0
  130. package/dist/src/types/columns.js.map +1 -0
  131. package/dist/src/types/index.d.ts +14 -0
  132. package/dist/src/types/index.d.ts.map +1 -0
  133. package/dist/src/types/index.js +11 -0
  134. package/dist/src/types/index.js.map +1 -0
  135. package/dist/src/types/internal.d.ts +172 -0
  136. package/dist/src/types/internal.d.ts.map +1 -0
  137. package/dist/src/types/internal.js +13 -0
  138. package/dist/src/types/internal.js.map +1 -0
  139. package/dist/src/types/snapshot.d.ts +801 -0
  140. package/dist/src/types/snapshot.d.ts.map +1 -0
  141. package/dist/src/types/snapshot.js +14 -0
  142. package/dist/src/types/snapshot.js.map +1 -0
  143. package/dist/src/types/wire.d.ts +196 -0
  144. package/dist/src/types/wire.d.ts.map +1 -0
  145. package/dist/src/types/wire.js +8 -0
  146. package/dist/src/types/wire.js.map +1 -0
  147. package/dist/src/util/mask.d.ts +55 -0
  148. package/dist/src/util/mask.d.ts.map +1 -0
  149. package/dist/src/util/mask.js +71 -0
  150. package/dist/src/util/mask.js.map +1 -0
  151. package/dist/src/util/options.d.ts +22 -0
  152. package/dist/src/util/options.d.ts.map +1 -0
  153. package/dist/src/util/options.js +49 -0
  154. package/dist/src/util/options.js.map +1 -0
  155. package/dist/src/util/shared-buffers.d.ts +42 -0
  156. package/dist/src/util/shared-buffers.d.ts.map +1 -0
  157. package/dist/src/util/shared-buffers.js +52 -0
  158. package/dist/src/util/shared-buffers.js.map +1 -0
  159. package/dist/src/util/typed-array.d.ts +205 -0
  160. package/dist/src/util/typed-array.d.ts.map +1 -0
  161. package/dist/src/util/typed-array.js +289 -0
  162. package/dist/src/util/typed-array.js.map +1 -0
  163. package/dist/src/wire/bytes.d.ts +69 -0
  164. package/dist/src/wire/bytes.d.ts.map +1 -0
  165. package/dist/src/wire/bytes.js +361 -0
  166. package/dist/src/wire/bytes.js.map +1 -0
  167. package/dist/src/wire/carried-views.d.ts +111 -0
  168. package/dist/src/wire/carried-views.d.ts.map +1 -0
  169. package/dist/src/wire/carried-views.js +286 -0
  170. package/dist/src/wire/carried-views.js.map +1 -0
  171. package/dist/src/wire/from-wire.d.ts +144 -0
  172. package/dist/src/wire/from-wire.d.ts.map +1 -0
  173. package/dist/src/wire/from-wire.js +1425 -0
  174. package/dist/src/wire/from-wire.js.map +1 -0
  175. package/dist/src/wire/to-wire.d.ts +171 -0
  176. package/dist/src/wire/to-wire.d.ts.map +1 -0
  177. package/dist/src/wire/to-wire.js +652 -0
  178. package/dist/src/wire/to-wire.js.map +1 -0
  179. package/dist/tsconfig.build.tsbuildinfo +1 -0
  180. package/package.json +72 -7
  181. package/src/builder/arena.ts +192 -0
  182. package/src/builder/compact.ts +1811 -0
  183. package/src/builder/counting-sort.ts +506 -0
  184. package/src/builder/freeze.ts +689 -0
  185. package/src/builder/graph-builder.ts +2264 -0
  186. package/src/builder/options.ts +29 -0
  187. package/src/columns/bitmap.ts +196 -0
  188. package/src/columns/column.ts +2574 -0
  189. package/src/columns/dictionary.ts +114 -0
  190. package/src/columns/growable.ts +350 -0
  191. package/src/columns/infer.ts +285 -0
  192. package/src/columns/remap.ts +663 -0
  193. package/src/columns/table.ts +568 -0
  194. package/src/constants.ts +89 -0
  195. package/src/errors.ts +115 -0
  196. package/src/ids/edge-id-index.ts +179 -0
  197. package/src/ids/node-id-map.ts +1340 -0
  198. package/src/ids/string-store.ts +589 -0
  199. package/src/index.ts +139 -0
  200. package/src/lib-resizable-array-buffer.d.ts +34 -0
  201. package/src/populate/from-csr.ts +802 -0
  202. package/src/populate/from-edge-arrays.ts +257 -0
  203. package/src/populate/from-records.ts +536 -0
  204. package/src/snapshot/derived.ts +1486 -0
  205. package/src/snapshot/graph-meta.ts +167 -0
  206. package/src/snapshot/graph-snapshot.ts +1503 -0
  207. package/src/snapshot/hash.ts +241 -0
  208. package/src/snapshot/queries.ts +136 -0
  209. package/src/snapshot/validate.ts +1108 -0
  210. package/src/snapshot/views.ts +943 -0
  211. package/src/types/builder.ts +480 -0
  212. package/src/types/columns.ts +727 -0
  213. package/src/types/index.ts +14 -0
  214. package/src/types/internal.ts +195 -0
  215. package/src/types/snapshot.ts +886 -0
  216. package/src/types/wire.ts +207 -0
  217. package/src/util/mask.ts +89 -0
  218. package/src/util/options.ts +57 -0
  219. package/src/util/shared-buffers.ts +56 -0
  220. package/src/util/typed-array.ts +371 -0
  221. package/src/wire/bytes.ts +440 -0
  222. package/src/wire/carried-views.ts +327 -0
  223. package/src/wire/from-wire.ts +1690 -0
  224. 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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"}