xitdb 0.13.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.
- package/README.md +16 -15
- package/dist/core-buffered-file.d.ts +2 -2
- package/dist/core-buffered-file.js +182 -0
- package/dist/core-file.d.ts +1 -1
- package/dist/core-file.js +105 -0
- package/dist/core-memory.d.ts +1 -1
- package/dist/core-memory.js +152 -0
- package/dist/core.js +1 -0
- package/dist/database.d.ts +174 -49
- package/dist/database.js +3047 -0
- package/dist/exceptions.d.ts +4 -0
- package/dist/exceptions.js +62 -0
- package/dist/hasher.js +49 -0
- package/dist/index.d.ts +30 -26
- package/dist/index.js +35 -3923
- package/dist/read-array-list.d.ts +3 -3
- package/dist/read-array-list.js +35 -0
- package/dist/read-counted-hash-map.d.ts +2 -2
- package/dist/read-counted-hash-map.js +19 -0
- package/dist/read-counted-hash-set.d.ts +2 -2
- package/dist/read-counted-hash-set.js +19 -0
- package/dist/read-cursor.d.ts +11 -5
- package/dist/read-cursor.js +577 -0
- package/dist/read-hash-map.d.ts +4 -4
- package/dist/read-hash-map.js +65 -0
- package/dist/read-hash-set.d.ts +4 -4
- package/dist/read-hash-set.js +47 -0
- package/dist/read-linked-array-list.d.ts +3 -3
- package/dist/read-linked-array-list.js +35 -0
- package/dist/read-sorted-map.d.ts +21 -0
- package/dist/read-sorted-map.js +73 -0
- package/dist/read-sorted-set.d.ts +19 -0
- package/dist/read-sorted-set.js +65 -0
- package/dist/slot-pointer.d.ts +1 -1
- package/dist/slot-pointer.js +11 -0
- package/dist/slot.d.ts +2 -2
- package/dist/slot.js +41 -0
- package/dist/slotted.d.ts +1 -1
- package/dist/slotted.js +1 -0
- package/dist/tag.d.ts +3 -1
- package/dist/tag.js +25 -0
- package/dist/write-array-list.d.ts +4 -4
- package/dist/write-array-list.js +42 -0
- package/dist/write-counted-hash-map.d.ts +2 -2
- package/dist/write-counted-hash-map.js +18 -0
- package/dist/write-counted-hash-set.d.ts +2 -2
- package/dist/write-counted-hash-set.js +18 -0
- package/dist/write-cursor.d.ts +5 -5
- package/dist/write-cursor.js +124 -0
- package/dist/write-hash-map.d.ts +4 -4
- package/dist/write-hash-map.js +90 -0
- package/dist/write-hash-set.d.ts +4 -4
- package/dist/write-hash-set.js +59 -0
- package/dist/write-linked-array-list.d.ts +4 -4
- package/dist/write-linked-array-list.js +52 -0
- package/dist/write-sorted-map.d.ts +12 -0
- package/dist/write-sorted-map.js +37 -0
- package/dist/write-sorted-set.d.ts +10 -0
- package/dist/write-sorted-set.js +29 -0
- package/dist/writeable-data.js +68 -0
- package/package.json +6 -6
package/dist/database.d.ts
CHANGED
|
@@ -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
|
|
@@ -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
|
|
52
|
-
|
|
53
|
-
ptr: number;
|
|
56
|
+
export declare class BTreeHeader {
|
|
57
|
+
rootPtr: number;
|
|
54
58
|
size: number;
|
|
55
|
-
static readonly LENGTH =
|
|
56
|
-
constructor(
|
|
59
|
+
static readonly LENGTH = 16;
|
|
60
|
+
constructor(rootPtr: number, size: number);
|
|
57
61
|
toBytes(): Uint8Array;
|
|
58
|
-
static fromBytes(bytes: Uint8Array):
|
|
59
|
-
withPtr(ptr: number): LinkedArrayListHeader;
|
|
62
|
+
static fromBytes(bytes: Uint8Array): BTreeHeader;
|
|
60
63
|
}
|
|
61
64
|
export declare class KeyValuePair {
|
|
62
65
|
valueSlot: Slot;
|
|
@@ -67,28 +70,89 @@ export declare class KeyValuePair {
|
|
|
67
70
|
toBytes(): Uint8Array;
|
|
68
71
|
static fromBytes(bytes: Uint8Array, hashSize: number): KeyValuePair;
|
|
69
72
|
}
|
|
70
|
-
export declare
|
|
71
|
-
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
constructor(
|
|
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
157
|
readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
|
|
94
158
|
}
|
|
@@ -108,6 +172,22 @@ export declare class HashMapGetValue {
|
|
|
108
172
|
readonly kind = "value";
|
|
109
173
|
constructor(hash: Uint8Array);
|
|
110
174
|
}
|
|
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
|
+
}
|
|
111
191
|
export type ContextFunction = (cursor: any) => void;
|
|
112
192
|
export declare class ArrayListInit implements PathPartBase {
|
|
113
193
|
readonly kind = "ArrayListInit";
|
|
@@ -187,6 +267,30 @@ export declare class HashMapRemove implements PathPartBase {
|
|
|
187
267
|
constructor(hash: Uint8Array);
|
|
188
268
|
readSlotPointer(db: Database, isTopLevel: boolean, writeMode: WriteMode, path: PathPart[], pathI: number, slotPtr: SlotPointer): SlotPointer;
|
|
189
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;
|
|
293
|
+
}
|
|
190
294
|
export declare class WriteData implements PathPartBase {
|
|
191
295
|
data: WriteableData | null;
|
|
192
296
|
readonly kind = "WriteData";
|
|
@@ -209,11 +313,6 @@ 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;
|
|
@@ -232,14 +331,40 @@ export declare class Database {
|
|
|
232
331
|
readArrayListSlotAppend(header: ArrayListHeader, writeMode: WriteMode, isTopLevel: boolean): ArrayListAppendResult;
|
|
233
332
|
readArrayListSlot(indexPos: number, key: number, shift: number, writeMode: WriteMode, isTopLevel: boolean): SlotPointer;
|
|
234
333
|
readArrayListSlice(header: ArrayListHeader, size: number): ArrayListHeader;
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
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;
|
|
244
369
|
}
|
|
245
370
|
export {};
|