@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 @@
1
+ {"version":3,"file":"node-id-map.js","sourceRoot":"","sources":["../../../src/ids/node-id-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * The Arrow Utf8 string store (design sections 4.2 and 5.1): `Uint32Array(rows + 1)` offsets plus one
3
+ * `Uint8Array` of concatenated UTF-8 bytes, kept next to a decoded JS-string representation. The two
4
+ * are caches of one logical value and are materialised lazily in either direction:
5
+ *
6
+ * - a store built from strings (`Utf8Store.fromStrings`, what the builder has) shares the source
7
+ * array by reference and encodes on the first read of `offsets` / `utf8` (toWire / toBytes /
8
+ * transferables), caching the result;
9
+ * - a store built from a wire buffer (`Utf8Store.fromEncoded`) decodes per row on `at()`, cached in
10
+ * a sparse array, and in bulk on `slice()` / `decodeAll()`, which are not cached.
11
+ *
12
+ * Nothing is encoded or decoded at construction. Row `i` occupies the byte range
13
+ * `[offsets[i], offsets[i + 1])`; `offsets[0]` need not be zero so that a zero-copy slice of a
14
+ * string column can share its parent's arrays. The encoder is a plain JS UTF-8 encoder that
15
+ * produces exactly the bytes `TextEncoder` would (a lone surrogate becomes U+FFFD); the decoder is
16
+ * `TextDecoder` behind an ASCII fast path.
17
+ */
18
+ import { type U8, type U32 } from "../types/index.js";
19
+ /**
20
+ * Number of UTF-8 bytes `encodeUtf8Into` writes for a string (a lone surrogate counts as the three
21
+ * bytes of U+FFFD, matching TextEncoder).
22
+ * @param s - the string
23
+ * @returns the encoded byte length
24
+ */
25
+ export declare function utf8ByteLength(s: string): number;
26
+ /**
27
+ * Encode a string as UTF-8 into `out` starting at `position`; the caller has sized `out` with
28
+ * `utf8ByteLength`. Produces the bytes TextEncoder would, including U+FFFD for a lone surrogate.
29
+ * @param s - the string
30
+ * @param out - the destination bytes
31
+ * @param position - the first byte to write
32
+ * @returns one past the last byte written
33
+ */
34
+ export declare function encodeUtf8Into(s: string, out: Uint8Array, position: number): number;
35
+ /**
36
+ * A copy of a string that no longer references the buffer it was sliced from. Importers cut ids
37
+ * and cell texts out of decoded input chunks, and V8 represents such a substring of 13 or more
38
+ * characters as a view on the chunk, so a retained id or value would keep the whole chunk alive
39
+ * for the life of the builder and the snapshot (measured: a 40 MiB CSV kept 47 MiB of decoded
40
+ * text resident through 100k retained ids). Concatenating one character and slicing it off makes
41
+ * V8 flatten the string into fresh storage; shorter strings are already copies and are returned
42
+ * as they are.
43
+ * @param s - the string
44
+ * @returns an equal string that owns its characters
45
+ */
46
+ export declare function detachString(s: string): string;
47
+ /**
48
+ * Whether a string contains a lone UTF-16 surrogate, which TextEncoder would replace with U+FFFD on
49
+ * the wire (design section 4.1: such an id is E_INVALID_ID).
50
+ * @param s - the string
51
+ * @returns true when a high surrogate lacks its low partner or a low surrogate stands alone
52
+ */
53
+ export declare function hasLoneSurrogate(s: string): boolean;
54
+ /**
55
+ * Decode one row of UTF-8 bytes with an ASCII fast path.
56
+ * @param utf8 - the byte store
57
+ * @param start - first byte of the row
58
+ * @param end - one past the last byte of the row
59
+ * @returns the decoded string (malformed sequences become U+FFFD)
60
+ */
61
+ export declare function decodeUtf8Row(utf8: Uint8Array, start: number, end: number): string;
62
+ /**
63
+ * Decode a range of rows in one pass: when the whole byte range is ASCII, one TextDecoder call plus
64
+ * one substring per row (byte offsets equal char offsets); otherwise one decode per row.
65
+ * @param utf8 - the byte store
66
+ * @param offsets - the row offsets
67
+ * @param from - first row
68
+ * @param to - one past the last row
69
+ * @returns the decoded rows in order
70
+ */
71
+ export declare function decodeUtf8Rows(utf8: Uint8Array, offsets: Uint32Array, from: number, to: number): string[];
72
+ /**
73
+ * Encode the first `length` entries of an array as an Arrow Utf8 store in one sizing pass and one
74
+ * writing pass. Entries that are not strings (the number rows of a mixed id map) encode as empty
75
+ * rows; offsets start at 0.
76
+ * @param source - the rows; only entries below `length` are read
77
+ * @param length - the number of rows to encode
78
+ * @returns fresh, exactly sized offsets (length + 1) and utf8 arrays
79
+ */
80
+ export declare function encodeUtf8Rows(source: ArrayLike<unknown>, length: number): EncodedUtf8;
81
+ /**
82
+ * Structure-level check of a Utf8 store's layout (design section 9.5): `rows + 1` offsets,
83
+ * non-decreasing, ending inside the byte store.
84
+ * @param offsets - the offsets array
85
+ * @param utf8 - the byte store
86
+ * @param rows - the expected row count
87
+ * @param ref - the manifest path named in the error, e.g. "ids.offsets"
88
+ */
89
+ export declare function checkUtf8Layout(offsets: Uint32Array, utf8: Uint8Array, rows: number, ref: string): void;
90
+ /** The encoded representation of a store: offsets plus bytes, always materialised together. */
91
+ export interface EncodedUtf8 {
92
+ /** rows + 1 non-decreasing offsets. */
93
+ readonly offsets: U32;
94
+ /** The concatenated UTF-8 bytes. */
95
+ readonly utf8: U8;
96
+ }
97
+ /**
98
+ * An Arrow Utf8 string store with lazily materialised encoded and decoded representations (design
99
+ * sections 4.2 and 5.1). Immutable once built; every lazily computed representation is cached.
100
+ */
101
+ export declare class Utf8Store {
102
+ /** Number of rows. */
103
+ readonly length: number;
104
+ /**
105
+ * The decoded rows, shared by reference for a store built from strings (only entries below
106
+ * `length` are read) or produced by `materialiseDecoded()` for an encoded store.
107
+ */
108
+ private source;
109
+ /** Sparse per-row decode cache of an encoded-only store; allocated on the first decode. */
110
+ private cache;
111
+ /** The offsets and bytes, once encoded or when adopted. */
112
+ private encodedArrays;
113
+ /**
114
+ * Construct a store; use the static factories. At least one representation is always given.
115
+ * @param length - the row count
116
+ * @param source - the decoded rows or null
117
+ * @param encoded - the offsets and bytes or null
118
+ */
119
+ private constructor();
120
+ /**
121
+ * A store over decoded strings, shared by reference: the builder-side representation. Encoding
122
+ * happens on the first read of `offsets` / `utf8`.
123
+ * @param source - the rows; only entries below `length` are ever read, so a builder array that
124
+ * keeps growing can be shared (design section 4.2)
125
+ * @param length - the row count; default source.length
126
+ * @returns the store
127
+ */
128
+ static fromStrings(source: ArrayLike<string>, length?: number): Utf8Store;
129
+ /**
130
+ * A store over an encoded Utf8 layout, adopted by reference: the wire-side representation.
131
+ * Decoding happens per row on `at()` and in bulk on `slice()` / `decodeAll()`. The layout is not
132
+ * checked here; `checkUtf8Layout` does that for untrusted input.
133
+ * @param offsets - rows + 1 non-decreasing offsets
134
+ * @param utf8 - the concatenated bytes
135
+ * @returns the store
136
+ */
137
+ static fromEncoded(offsets: U32, utf8: U8): Utf8Store;
138
+ /**
139
+ * Whether the encoded representation exists (adopted or already materialised).
140
+ * @returns true when `offsets` / `utf8` can be read without encoding
141
+ */
142
+ get encoded(): boolean;
143
+ /**
144
+ * Whether the store is backed by a decoded source array, so `at()` never decodes.
145
+ * @returns true for a store built from strings
146
+ */
147
+ get decoded(): boolean;
148
+ /**
149
+ * Whether the encoded arrays were transferred away while rows still depend on them (design
150
+ * section 9.1): a transferred buffer leaves zero-length views.
151
+ * @returns true when detached
152
+ */
153
+ get detached(): boolean;
154
+ /**
155
+ * The `length + 1` offsets, encoding the source on first access.
156
+ * @returns the offsets array (cached)
157
+ */
158
+ get offsets(): U32;
159
+ /**
160
+ * The concatenated UTF-8 bytes, encoding the source on first access.
161
+ * @returns the byte array (cached)
162
+ */
163
+ get utf8(): U8;
164
+ /**
165
+ * The string of one row, decoded on first access and cached per row.
166
+ * @param row - the row index
167
+ * @returns the string; E_INDEX_RANGE when row is out of range
168
+ */
169
+ at(row: number): string;
170
+ /**
171
+ * The strings of a row range decoded in one pass (one TextDecoder call for an all-ASCII range);
172
+ * nothing is cached. Bounds follow Array.prototype.slice (negative values count from the end,
173
+ * out-of-range values are clamped).
174
+ * @param start - first row (default 0)
175
+ * @param end - one past the last row (default length)
176
+ * @returns a fresh array of the rows in order
177
+ */
178
+ slice(start?: number, end?: number): string[];
179
+ /**
180
+ * Every row decoded in one pass; not cached.
181
+ * @returns a fresh array of all rows
182
+ */
183
+ decodeAll(): string[];
184
+ /**
185
+ * Decode every row of an encoded store once, in bulk, and keep the result as the decoded
186
+ * representation so that later `at()` calls are O(1) without a per-row decode. For a store that
187
+ * already has its decoded rows this is a no-op. Used before a pass that will touch every row
188
+ * anyway (building the reverse map of a wire-decoded id map).
189
+ */
190
+ materialiseDecoded(): void;
191
+ /**
192
+ * Bytes of typed storage: the offsets and utf8 arrays when they exist, 0 for a store that has not
193
+ * been encoded yet. JS strings are never counted.
194
+ * @returns the byte count
195
+ */
196
+ byteLength(): number;
197
+ /**
198
+ * The first row whose bytes are not well-formed UTF-8, for full validation of untrusted input
199
+ * (design section 9.5: string ids are decoded with a fatal decoder). A source-backed store is
200
+ * always well-formed.
201
+ * @returns the row index, or -1 when every row is well-formed
202
+ */
203
+ firstMalformedRow(): number;
204
+ /**
205
+ * The encoded representation, encoding the source once on first use. A store always has a source
206
+ * when it has no encoded arrays (the private constructor is only reached through the factories).
207
+ * @returns the offsets and bytes
208
+ */
209
+ private ensureEncoded;
210
+ }
211
+ /**
212
+ * Resolve Array.prototype.slice-style bounds against a length.
213
+ * @param start - the requested start (negative counts from the end)
214
+ * @param end - the requested end (negative counts from the end)
215
+ * @param length - the length of the sequence
216
+ * @returns the clamped [from, to] with from <= to
217
+ */
218
+ export declare function resolveRange(start: number, end: number, length: number): [from: number, to: number];
219
+ //# sourceMappingURL=string-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-store.d.ts","sourceRoot":"","sources":["../../../src/ids/string-store.ts"],"names":[],"mappings":"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"}