xitdb 0.12.0 → 0.14.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 (63) hide show
  1. package/README.md +120 -118
  2. package/dist/core-buffered-file.d.ts +23 -25
  3. package/dist/core-buffered-file.js +182 -0
  4. package/dist/core-file.d.ts +8 -10
  5. package/dist/core-file.js +105 -0
  6. package/dist/core-memory.d.ts +15 -15
  7. package/dist/core-memory.js +152 -0
  8. package/dist/core.d.ts +14 -14
  9. package/dist/core.js +1 -0
  10. package/dist/database.d.ts +204 -80
  11. package/dist/database.js +3047 -0
  12. package/dist/exceptions.d.ts +4 -0
  13. package/dist/exceptions.js +62 -0
  14. package/dist/hasher.d.ts +2 -1
  15. package/dist/hasher.js +49 -0
  16. package/dist/index.d.ts +30 -26
  17. package/dist/index.js +35 -3986
  18. package/dist/read-array-list.d.ts +8 -8
  19. package/dist/read-array-list.js +35 -0
  20. package/dist/read-counted-hash-map.d.ts +3 -3
  21. package/dist/read-counted-hash-map.js +19 -0
  22. package/dist/read-counted-hash-set.d.ts +3 -3
  23. package/dist/read-counted-hash-set.js +19 -0
  24. package/dist/read-cursor.d.ts +29 -23
  25. package/dist/read-cursor.js +577 -0
  26. package/dist/read-hash-map.d.ts +22 -22
  27. package/dist/read-hash-map.js +65 -0
  28. package/dist/read-hash-set.d.ts +13 -13
  29. package/dist/read-hash-set.js +47 -0
  30. package/dist/read-linked-array-list.d.ts +8 -8
  31. package/dist/read-linked-array-list.js +35 -0
  32. package/dist/read-sorted-map.d.ts +21 -0
  33. package/dist/read-sorted-map.js +73 -0
  34. package/dist/read-sorted-set.d.ts +19 -0
  35. package/dist/read-sorted-set.js +65 -0
  36. package/dist/slot-pointer.d.ts +1 -1
  37. package/dist/slot-pointer.js +11 -0
  38. package/dist/slot.d.ts +2 -2
  39. package/dist/slot.js +41 -0
  40. package/dist/slotted.d.ts +1 -1
  41. package/dist/slotted.js +1 -0
  42. package/dist/tag.d.ts +3 -1
  43. package/dist/tag.js +25 -0
  44. package/dist/write-array-list.d.ts +13 -14
  45. package/dist/write-array-list.js +42 -0
  46. package/dist/write-counted-hash-map.d.ts +4 -5
  47. package/dist/write-counted-hash-map.js +18 -0
  48. package/dist/write-counted-hash-set.d.ts +4 -5
  49. package/dist/write-counted-hash-set.js +18 -0
  50. package/dist/write-cursor.d.ts +15 -15
  51. package/dist/write-cursor.js +124 -0
  52. package/dist/write-hash-map.d.ts +22 -23
  53. package/dist/write-hash-map.js +90 -0
  54. package/dist/write-hash-set.d.ts +16 -17
  55. package/dist/write-hash-set.js +59 -0
  56. package/dist/write-linked-array-list.d.ts +16 -17
  57. package/dist/write-linked-array-list.js +52 -0
  58. package/dist/write-sorted-map.d.ts +12 -0
  59. package/dist/write-sorted-map.js +37 -0
  60. package/dist/write-sorted-set.d.ts +10 -0
  61. package/dist/write-sorted-set.js +29 -0
  62. package/dist/writeable-data.js +68 -0
  63. package/package.json +6 -6
@@ -1,19 +1,24 @@
1
- import type { Core } from './core';
2
- import { Hasher } from './hasher';
3
- import { Tag } from './tag';
4
- import { Slot } from './slot';
5
- import { SlotPointer } from './slot-pointer';
6
- import { type WriteableData } from './writeable-data';
7
- import { WriteCursor } from './write-cursor';
1
+ import type { Core } from './core.js';
2
+ import { Hasher } from './hasher.js';
3
+ import { Tag } from './tag.js';
4
+ import { Slot } from './slot.js';
5
+ import { SlotPointer } from './slot-pointer.js';
6
+ import { type WriteableData } from './writeable-data.js';
7
+ import { WriteCursor } from './write-cursor.js';
8
8
  export declare const VERSION = 0;
9
9
  export declare const MAGIC_NUMBER: Uint8Array<ArrayBuffer>;
10
10
  export declare const BIT_COUNT = 4;
11
11
  export declare const SLOT_COUNT: number;
12
12
  export declare const MASK: bigint;
13
13
  export declare const INDEX_BLOCK_SIZE: number;
14
- export declare const LINKED_ARRAY_LIST_SLOT_LENGTH: number;
15
- export declare const LINKED_ARRAY_LIST_INDEX_BLOCK_SIZE: number;
16
14
  export declare const MAX_BRANCH_LENGTH = 16;
15
+ export declare const BTREE_SLOT_COUNT: number;
16
+ export declare const BTREE_SPLIT_COUNT: number;
17
+ export declare const BTREE_NODE_HEADER_SIZE = 2;
18
+ export declare const BTREE_LEAF_BLOCK_SIZE: number;
19
+ export declare const BTREE_BRANCH_BLOCK_SIZE: number;
20
+ export declare const SORTED_LEAF_BLOCK_SIZE: number;
21
+ export declare const SORTED_BRANCH_BLOCK_SIZE: number;
17
22
  export declare enum WriteMode {
18
23
  READ_ONLY = 0,
19
24
  READ_WRITE = 1
@@ -27,8 +32,8 @@ export declare class Header {
27
32
  static readonly LENGTH = 12;
28
33
  constructor(hashId: number, hashSize: number, version: number, tag: Tag, magicNumber: Uint8Array);
29
34
  toBytes(): Uint8Array;
30
- static read(core: Core): Promise<Header>;
31
- write(core: Core): Promise<void>;
35
+ static read(core: Core): Header;
36
+ write(core: Core): void;
32
37
  validate(): void;
33
38
  withTag(tag: Tag): Header;
34
39
  }
@@ -48,15 +53,13 @@ export declare class TopLevelArrayListHeader {
48
53
  constructor(fileSize: number, parent: ArrayListHeader);
49
54
  toBytes(): Uint8Array;
50
55
  }
51
- export declare class LinkedArrayListHeader {
52
- shift: number;
53
- ptr: number;
56
+ export declare class BTreeHeader {
57
+ rootPtr: number;
54
58
  size: number;
55
- static readonly LENGTH = 17;
56
- constructor(shift: number, ptr: number, size: number);
59
+ static readonly LENGTH = 16;
60
+ constructor(rootPtr: number, size: number);
57
61
  toBytes(): Uint8Array;
58
- static fromBytes(bytes: Uint8Array): LinkedArrayListHeader;
59
- withPtr(ptr: number): LinkedArrayListHeader;
62
+ static fromBytes(bytes: Uint8Array): BTreeHeader;
60
63
  }
61
64
  export declare class KeyValuePair {
62
65
  valueSlot: Slot;
@@ -67,30 +70,91 @@ export declare class KeyValuePair {
67
70
  toBytes(): Uint8Array;
68
71
  static fromBytes(bytes: Uint8Array, hashSize: number): KeyValuePair;
69
72
  }
70
- export declare class LinkedArrayListSlot {
71
- size: number;
73
+ export declare enum BTreeNodeKind {
74
+ LEAF = 0,
75
+ BRANCH = 1
76
+ }
77
+ export declare class BTreeNode {
78
+ kind: BTreeNodeKind;
79
+ num: number;
80
+ values: Slot[];
81
+ children: Slot[];
82
+ counts: number[];
83
+ constructor(kind: BTreeNodeKind, num: number);
84
+ subtreeCount(): number;
85
+ }
86
+ export declare class BTreeNodeRef {
87
+ nodePtr: number;
88
+ count: number;
89
+ constructor(nodePtr: number, count: number);
90
+ }
91
+ export declare class BTreeInsertResult {
92
+ nodePtr: number;
93
+ count: number;
94
+ valuePosition: number;
95
+ split: BTreeNodeRef | null;
96
+ constructor(nodePtr: number, count: number, valuePosition: number, split: BTreeNodeRef | null);
97
+ }
98
+ export declare class BTreeWriteSlot {
99
+ nodePtr: number;
100
+ valuePosition: number;
72
101
  slot: Slot;
73
- static readonly LENGTH: number;
74
- constructor(size: number, slot: Slot);
75
- withSize(size: number): LinkedArrayListSlot;
76
- toBytes(): Uint8Array;
77
- static fromBytes(bytes: Uint8Array): LinkedArrayListSlot;
78
- }
79
- export declare class LinkedArrayListSlotPointer {
80
- slotPtr: SlotPointer;
81
- leafCount: number;
82
- constructor(slotPtr: SlotPointer, leafCount: number);
83
- withSlotPointer(slotPtr: SlotPointer): LinkedArrayListSlotPointer;
102
+ constructor(nodePtr: number, valuePosition: number, slot: Slot);
103
+ }
104
+ export declare class BTreeJoinResult {
105
+ nodePtr: number;
106
+ count: number;
107
+ split: BTreeNodeRef | null;
108
+ constructor(nodePtr: number, count: number, split: BTreeNodeRef | null);
109
+ }
110
+ export declare class BTreeSplitResult {
111
+ left: number;
112
+ right: number;
113
+ constructor(left: number, right: number);
114
+ }
115
+ export declare class SortedNode {
116
+ kind: BTreeNodeKind;
117
+ num: number;
118
+ entries: Slot[];
119
+ children: Slot[];
120
+ separators: Slot[];
121
+ counts: number[];
122
+ constructor(kind: BTreeNodeKind, num: number);
123
+ subtreeCount(): number;
124
+ }
125
+ export declare class SortedSplit {
126
+ nodePtr: number;
127
+ count: number;
128
+ separator: Slot;
129
+ constructor(nodePtr: number, count: number, separator: Slot);
130
+ }
131
+ export declare class SortedInsertResult {
132
+ nodePtr: number;
133
+ count: number;
134
+ valuePosition: number;
135
+ added: boolean;
136
+ split: SortedSplit | null;
137
+ constructor(nodePtr: number, count: number, valuePosition: number, added: boolean, split: SortedSplit | null);
138
+ }
139
+ export declare class SortedRemoveResult {
140
+ nodePtr: number;
141
+ found: boolean;
142
+ constructor(nodePtr: number, found: boolean);
143
+ }
144
+ export declare class SortedSlot {
145
+ slot: Slot;
146
+ position: number;
147
+ constructor(slot: Slot, position: number);
84
148
  }
85
- export declare class LinkedArrayListBlockInfo {
86
- block: LinkedArrayListSlot[];
87
- i: number;
88
- parentSlot: LinkedArrayListSlot;
89
- constructor(block: LinkedArrayListSlot[], i: number, parentSlot: LinkedArrayListSlot);
149
+ export declare class SortedEntry {
150
+ kvSlot: Slot;
151
+ keySlot: Slot;
152
+ valuePosition: number;
153
+ constructor(kvSlot: Slot, keySlot: Slot, valuePosition: number);
90
154
  }
91
- export type PathPart = ArrayListInit | ArrayListGet | ArrayListAppend | ArrayListSlice | LinkedArrayListInit | LinkedArrayListGet | LinkedArrayListAppend | LinkedArrayListSlice | LinkedArrayListConcat | LinkedArrayListInsert | LinkedArrayListRemove | HashMapInit | HashMapGet | HashMapRemove | WriteData | Context;
155
+ export type PathPart = ArrayListInit | ArrayListGet | ArrayListAppend | ArrayListSlice | LinkedArrayListInit | LinkedArrayListGet | LinkedArrayListAppend | LinkedArrayListSlice | LinkedArrayListConcat | LinkedArrayListInsert | LinkedArrayListRemove | HashMapInit | HashMapGet | HashMapRemove | SortedMapInit | SortedMapGet | SortedMapGetIndex | SortedMapRemove | WriteData | Context;
92
156
  export interface PathPartBase {
93
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
157
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
94
158
  }
95
159
  export type HashMapGetTarget = HashMapGetKVPair | HashMapGetKey | HashMapGetValue;
96
160
  export declare class HashMapGetKVPair {
@@ -108,96 +172,136 @@ export declare class HashMapGetValue {
108
172
  readonly kind = "value";
109
173
  constructor(hash: Uint8Array);
110
174
  }
111
- export type ContextFunction = (cursor: any) => Promise<void>;
175
+ export type SortedMapGetTarget = SortedMapGetKVPair | SortedMapGetKey | SortedMapGetValue;
176
+ export declare class SortedMapGetKVPair {
177
+ key: Uint8Array;
178
+ readonly kind = "kv_pair";
179
+ constructor(key: Uint8Array);
180
+ }
181
+ export declare class SortedMapGetKey {
182
+ key: Uint8Array;
183
+ readonly kind = "key";
184
+ constructor(key: Uint8Array);
185
+ }
186
+ export declare class SortedMapGetValue {
187
+ key: Uint8Array;
188
+ readonly kind = "value";
189
+ constructor(key: Uint8Array);
190
+ }
191
+ export type ContextFunction = (cursor: any) => void;
112
192
  export declare class ArrayListInit implements PathPartBase {
113
193
  readonly kind = "ArrayListInit";
114
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
194
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
115
195
  }
116
196
  export declare class ArrayListGet implements PathPartBase {
117
197
  index: number;
118
198
  readonly kind = "ArrayListGet";
119
199
  constructor(index: number);
120
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
200
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
121
201
  }
122
202
  export declare class ArrayListAppend implements PathPartBase {
123
203
  readonly kind = "ArrayListAppend";
124
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
204
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
125
205
  }
126
206
  export declare class ArrayListSlice implements PathPartBase {
127
207
  size: number;
128
208
  readonly kind = "ArrayListSlice";
129
209
  constructor(size: number);
130
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
210
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
131
211
  }
132
212
  export declare class LinkedArrayListInit implements PathPartBase {
133
213
  readonly kind = "LinkedArrayListInit";
134
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
214
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
135
215
  }
136
216
  export declare class LinkedArrayListGet implements PathPartBase {
137
217
  index: number;
138
218
  readonly kind = "LinkedArrayListGet";
139
219
  constructor(index: number);
140
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
220
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
141
221
  }
142
222
  export declare class LinkedArrayListAppend implements PathPartBase {
143
223
  readonly kind = "LinkedArrayListAppend";
144
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
224
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
145
225
  }
146
226
  export declare class LinkedArrayListSlice implements PathPartBase {
147
227
  offset: number;
148
228
  size: number;
149
229
  readonly kind = "LinkedArrayListSlice";
150
230
  constructor(offset: number, size: number);
151
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
231
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
152
232
  }
153
233
  export declare class LinkedArrayListConcat implements PathPartBase {
154
234
  list: Slot;
155
235
  readonly kind = "LinkedArrayListConcat";
156
236
  constructor(list: Slot);
157
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
237
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
158
238
  }
159
239
  export declare class LinkedArrayListInsert implements PathPartBase {
160
240
  index: number;
161
241
  readonly kind = "LinkedArrayListInsert";
162
242
  constructor(index: number);
163
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
243
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
164
244
  }
165
245
  export declare class LinkedArrayListRemove implements PathPartBase {
166
246
  index: number;
167
247
  readonly kind = "LinkedArrayListRemove";
168
248
  constructor(index: number);
169
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
249
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
170
250
  }
171
251
  export declare class HashMapInit implements PathPartBase {
172
252
  counted: boolean;
173
253
  set: boolean;
174
254
  readonly kind = "HashMapInit";
175
255
  constructor(counted?: boolean, set?: boolean);
176
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
256
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
177
257
  }
178
258
  export declare class HashMapGet implements PathPartBase {
179
259
  target: HashMapGetTarget;
180
260
  readonly kind = "HashMapGet";
181
261
  constructor(target: HashMapGetTarget);
182
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
262
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
183
263
  }
184
264
  export declare class HashMapRemove implements PathPartBase {
185
265
  hash: Uint8Array;
186
266
  readonly kind = "HashMapRemove";
187
267
  constructor(hash: Uint8Array);
188
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
268
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
269
+ }
270
+ export declare class SortedMapInit implements PathPartBase {
271
+ set: boolean;
272
+ readonly kind = "SortedMapInit";
273
+ constructor(set?: boolean);
274
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
275
+ }
276
+ export declare class SortedMapGet implements PathPartBase {
277
+ target: SortedMapGetTarget;
278
+ readonly kind = "SortedMapGet";
279
+ constructor(target: SortedMapGetTarget);
280
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
281
+ }
282
+ export declare class SortedMapGetIndex implements PathPartBase {
283
+ index: number;
284
+ readonly kind = "SortedMapGetIndex";
285
+ constructor(index: number);
286
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
287
+ }
288
+ export declare class SortedMapRemove implements PathPartBase {
289
+ key: Uint8Array;
290
+ readonly kind = "SortedMapRemove";
291
+ constructor(key: Uint8Array);
292
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
189
293
  }
190
294
  export declare class WriteData implements PathPartBase {
191
295
  data: WriteableData | null;
192
296
  readonly kind = "WriteData";
193
297
  constructor(data: WriteableData | null);
194
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
298
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
195
299
  }
196
300
  export declare class Context implements PathPartBase {
197
301
  fn: ContextFunction;
198
302
  readonly kind = "Context";
199
303
  constructor(fn: ContextFunction);
200
- readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
304
+ readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
201
305
  }
202
306
  declare class HashMapGetResult {
203
307
  slotPtr: SlotPointer;
@@ -209,38 +313,58 @@ declare class ArrayListAppendResult {
209
313
  slotPtr: SlotPointer;
210
314
  constructor(header: ArrayListHeader, slotPtr: SlotPointer);
211
315
  }
212
- declare class LinkedArrayListAppendResult {
213
- header: LinkedArrayListHeader;
214
- slotPtr: LinkedArrayListSlotPointer;
215
- constructor(header: LinkedArrayListHeader, slotPtr: LinkedArrayListSlotPointer);
216
- }
217
316
  export declare class Database {
218
317
  core: Core;
219
318
  hasher: Hasher;
220
319
  header: Header;
221
320
  txStart: number | null;
222
- private constructor();
223
- static create(core: Core, hasher: Hasher): Promise<Database>;
321
+ constructor(core: Core, hasher: Hasher);
224
322
  rootCursor(): WriteCursor;
225
- freeze(): Promise<void>;
226
- compact(targetCore: Core): Promise<Database>;
227
- truncate(): Promise<void>;
323
+ freeze(): void;
324
+ compact(targetCore: Core): Database;
325
+ truncate(): void;
228
326
  checkHashBytes(hash: Uint8Array): Uint8Array;
229
327
  checkHash(target: HashMapGetTarget): Uint8Array;
230
- readSlotPointer(writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): Promise<SlotPointer>;
231
- readMapSlot(indexPos: number, keyHash: Uint8Array, keyOffset: number, writeMode: WriteMode, isTopLevel: boolean, target: HashMapGetTarget): Promise<HashMapGetResult>;
232
- removeMapSlot(indexPos: number, keyHash: Uint8Array, keyOffset: number, isTopLevel: boolean): Promise<Slot>;
233
- readArrayListSlotAppend(header: ArrayListHeader, writeMode: WriteMode, isTopLevel: boolean): Promise<ArrayListAppendResult>;
234
- readArrayListSlot(indexPos: number, key: number, shift: number, writeMode: WriteMode, isTopLevel: boolean): Promise<SlotPointer>;
235
- readArrayListSlice(header: ArrayListHeader, size: number): Promise<ArrayListHeader>;
236
- readLinkedArrayListSlotAppend(header: LinkedArrayListHeader, writeMode: WriteMode, isTopLevel: boolean): Promise<LinkedArrayListAppendResult>;
237
- private static blockLeafCount;
238
- private static slotLeafCount;
239
- private static keyAndIndexForLinkedArrayList;
240
- readLinkedArrayListSlot(indexPos: number, key: number, shift: number, writeMode: WriteMode, isTopLevel: boolean): Promise<LinkedArrayListSlotPointer>;
241
- readLinkedArrayListBlocks(indexPos: number, key: number, shift: number, blocks: LinkedArrayListBlockInfo[]): Promise<void>;
242
- private populateArray;
243
- readLinkedArrayListSlice(header: LinkedArrayListHeader, offset: number, size: number): Promise<LinkedArrayListHeader>;
244
- readLinkedArrayListConcat(headerA: LinkedArrayListHeader, headerB: LinkedArrayListHeader): Promise<LinkedArrayListHeader>;
328
+ readSlotPointer(writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
329
+ readMapSlot(indexPos: number, keyHash: Uint8Array, keyOffset: number, writeMode: WriteMode, isTopLevel: boolean, target: HashMapGetTarget): HashMapGetResult;
330
+ removeMapSlot(indexPos: number, keyHash: Uint8Array, keyOffset: number, isTopLevel: boolean): Slot;
331
+ readArrayListSlotAppend(header: ArrayListHeader, writeMode: WriteMode, isTopLevel: boolean): ArrayListAppendResult;
332
+ readArrayListSlot(indexPos: number, key: number, shift: number, writeMode: WriteMode, isTopLevel: boolean): SlotPointer;
333
+ readArrayListSlice(header: ArrayListHeader, size: number): ArrayListHeader;
334
+ readBTreeNode(ptr: number): BTreeNode;
335
+ writeBTreeNodeAt(node: BTreeNode, ptr: number): void;
336
+ writeBTreeNode(node: BTreeNode): number;
337
+ btreeReusable(ptr: number): boolean;
338
+ btreeWriteNode(node: BTreeNode, oldPtr: number): number;
339
+ btreeNewRoot(): number;
340
+ readBTreeSlot(rootPtr: number, rank: number): SlotPointer;
341
+ btreeInsert(nodePtr: number, rank: number): BTreeInsertResult;
342
+ btreeGrowRoot(result: BTreeInsertResult): number;
343
+ btreeGetForWrite(nodePtr: number, rank: number): BTreeWriteSlot;
344
+ btreeHeight(rootPtr: number): number;
345
+ btreeMakeRoot(result: BTreeJoinResult): number;
346
+ btreeAssembleLeaf(vals: Slot[], total: number): BTreeJoinResult;
347
+ btreeAssembleBranch(children: Slot[], counts: number[], total: number): BTreeJoinResult;
348
+ btreeMergeNodes(a: BTreeNode, b: BTreeNode): BTreeJoinResult;
349
+ btreeJoinRight(aPtr: number, ha: number, bPtr: number, hb: number): BTreeJoinResult;
350
+ btreeJoinLeft(aPtr: number, ha: number, bPtr: number, hb: number): BTreeJoinResult;
351
+ btreeJoin(rootA: number, rootB: number): number;
352
+ btreeSubtree(children: Slot[], counts: number[], start: number, len: number): number;
353
+ btreeSplit(rootPtr: number, rank: number): BTreeSplitResult;
354
+ readSortedNode(ptr: number): SortedNode;
355
+ writeSortedNodeAt(node: SortedNode, ptr: number): void;
356
+ writeSortedNode(node: SortedNode): number;
357
+ sortedWriteNode(node: SortedNode, oldPtr: number): number;
358
+ readKvPair(kvSlot: Slot): KeyValuePair;
359
+ compareKey(keySlot: Slot, target: Uint8Array): number;
360
+ sortedGet(rootPtr: number, key: Uint8Array): SortedSlot | null;
361
+ sortedGetByIndex(rootPtr: number, rank: number): SortedSlot;
362
+ sortedRank(rootPtr: number, key: Uint8Array): number;
363
+ writeKey(key: Uint8Array): Slot;
364
+ sortedNewEntry(key: Uint8Array): SortedEntry;
365
+ sortedPut(nodePtr: number, key: Uint8Array): SortedInsertResult;
366
+ sortedRemove(nodePtr: number, key: Uint8Array): SortedRemoveResult;
367
+ sortedGrowRoot(result: SortedInsertResult): number;
368
+ sortedTargetSlot(kvPos: number, target: SortedMapGetTarget): SlotPointer;
245
369
  }
246
370
  export {};