@aztec/kv-store 0.86.0-starknet.1 → 0.87.0-nightly.20250521
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/dest/indexeddb/store.d.ts +1 -1
- package/dest/indexeddb/store.d.ts.map +1 -1
- package/dest/indexeddb/store.js +2 -4
- package/dest/interfaces/common.d.ts +8 -8
- package/dest/interfaces/common.d.ts.map +1 -1
- package/dest/interfaces/common.js +8 -3
- package/dest/interfaces/index.d.ts +2 -1
- package/dest/interfaces/index.d.ts.map +1 -1
- package/dest/interfaces/index.js +1 -0
- package/dest/interfaces/map_test_suite.d.ts.map +1 -1
- package/dest/interfaces/map_test_suite.js +107 -52
- package/dest/lmdb/map.d.ts +1 -3
- package/dest/lmdb/map.d.ts.map +1 -1
- package/dest/lmdb/store.d.ts.map +1 -1
- package/dest/lmdb-v2/array.d.ts.map +1 -1
- package/dest/lmdb-v2/map.d.ts.map +1 -1
- package/dest/lmdb-v2/map.js +3 -3
- package/dest/lmdb-v2/multi_map.d.ts.map +1 -1
- package/dest/lmdb-v2/singleton.d.ts.map +1 -1
- package/dest/lmdb-v2/utils.d.ts +2 -4
- package/dest/lmdb-v2/utils.d.ts.map +1 -1
- package/dest/lmdb-v2/write_transaction.d.ts +2 -4
- package/dest/lmdb-v2/write_transaction.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/indexeddb/store.ts +6 -4
- package/src/interfaces/common.ts +17 -8
- package/src/interfaces/index.ts +2 -1
- package/src/interfaces/map_test_suite.ts +25 -14
- package/src/lmdb/map.ts +5 -5
- package/src/lmdb/store.ts +5 -1
- package/src/lmdb-v2/array.ts +4 -1
- package/src/lmdb-v2/map.ts +9 -4
- package/src/lmdb-v2/multi_map.ts +4 -1
- package/src/lmdb-v2/singleton.ts +4 -1
- package/src/lmdb-v2/write_transaction.ts +2 -2
|
@@ -34,7 +34,7 @@ export interface AztecIDBSchema extends DBSchema {
|
|
|
34
34
|
export declare class AztecIndexedDBStore implements AztecAsyncKVStore {
|
|
35
35
|
#private;
|
|
36
36
|
readonly isEphemeral: boolean;
|
|
37
|
-
constructor(rootDB: IDBPDatabase<AztecIDBSchema>, isEphemeral: boolean,
|
|
37
|
+
constructor(rootDB: IDBPDatabase<AztecIDBSchema>, isEphemeral: boolean, name: string);
|
|
38
38
|
/**
|
|
39
39
|
* Creates a new AztecKVStore backed by IndexedDB. The path to the database is optional. If not provided,
|
|
40
40
|
* the database will be stored in a temporary location and be deleted when the process exists.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/indexeddb/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAoB,MAAM,KAAK,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAOhE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,KAAK,IAAI;IACxC,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,IAAI,EAAE;QACJ,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7E,CAAC;CACH;AAED;;GAEG;AAEH,qBAAa,mBAAoB,YAAW,iBAAiB;;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/indexeddb/store.ts"],"names":[],"mappings":"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"}
|
package/dest/indexeddb/store.js
CHANGED
|
@@ -8,15 +8,13 @@ import { IndexedDBAztecSingleton } from './singleton.js';
|
|
|
8
8
|
* A key-value store backed by IndexedDB.
|
|
9
9
|
*/ export class AztecIndexedDBStore {
|
|
10
10
|
isEphemeral;
|
|
11
|
-
#log;
|
|
12
11
|
#rootDB;
|
|
13
12
|
#name;
|
|
14
13
|
#containers;
|
|
15
|
-
constructor(rootDB, isEphemeral,
|
|
14
|
+
constructor(rootDB, isEphemeral, name){
|
|
16
15
|
this.isEphemeral = isEphemeral;
|
|
17
16
|
this.#containers = new Set();
|
|
18
17
|
this.#rootDB = rootDB;
|
|
19
|
-
this.#log = log;
|
|
20
18
|
this.#name = name;
|
|
21
19
|
}
|
|
22
20
|
/**
|
|
@@ -62,7 +60,7 @@ import { IndexedDBAztecSingleton } from './singleton.js';
|
|
|
62
60
|
});
|
|
63
61
|
}
|
|
64
62
|
});
|
|
65
|
-
const kvStore = new AztecIndexedDBStore(rootDB, ephemeral,
|
|
63
|
+
const kvStore = new AztecIndexedDBStore(rootDB, ephemeral, name);
|
|
66
64
|
return kvStore;
|
|
67
65
|
}
|
|
68
66
|
/**
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
export type Key = string | number | Array<string | number>;
|
|
1
|
+
/** The key type for use with the kv-store */
|
|
2
|
+
export type Key = string | number | Uint8Array | Array<string | number>;
|
|
5
3
|
export type Value = NonNullable<any>;
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
*/
|
|
9
|
-
export type Range<K extends Key = Key> = {
|
|
4
|
+
/** A range of keys of arbitrary type. */
|
|
5
|
+
export type CustomRange<K> = {
|
|
10
6
|
/** The key of the first item to include */
|
|
11
7
|
start?: K;
|
|
12
8
|
/** The key of the last item to include */
|
|
@@ -16,6 +12,10 @@ export type Range<K extends Key = Key> = {
|
|
|
16
12
|
/** The maximum number of items to iterate over */
|
|
17
13
|
limit?: number;
|
|
18
14
|
};
|
|
15
|
+
/** Maps a custom range into a range of valid key types to iterate over. */
|
|
16
|
+
export declare function mapRange<CK, K extends Key = Key>(range: CustomRange<CK>, mapFn: (key: CK) => K): Range<K>;
|
|
17
|
+
/** A range of keys to iterate over. */
|
|
18
|
+
export type Range<K extends Key = Key> = CustomRange<K>;
|
|
19
19
|
export type StoreSize = {
|
|
20
20
|
mappingSize: number;
|
|
21
21
|
physicalFileSize: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/interfaces/common.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/interfaces/common.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAExE,MAAM,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAErC,yCAAyC;AACzC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,0CAA0C;IAC1C,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,EAAE,EAAE,CAAC,SAAS,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAOzG;AAED,uCAAuC;AACvC,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/** The key type for use with the kv-store */ /** Maps a custom range into a range of valid key types to iterate over. */ export function mapRange(range, mapFn) {
|
|
2
|
+
return {
|
|
3
|
+
start: range.start ? mapFn(range.start) : undefined,
|
|
4
|
+
end: range.end ? mapFn(range.end) : undefined,
|
|
5
|
+
reverse: range.reverse,
|
|
6
|
+
limit: range.limit
|
|
7
|
+
};
|
|
8
|
+
}
|
|
@@ -5,5 +5,6 @@ export * from './singleton.js';
|
|
|
5
5
|
export * from './store.js';
|
|
6
6
|
export * from './set.js';
|
|
7
7
|
export * from './multi_map.js';
|
|
8
|
-
export
|
|
8
|
+
export { mapRange } from './common.js';
|
|
9
|
+
export type { CustomRange, Range, StoreSize } from './common.js';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
package/dest/interfaces/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/map_test_suite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,
|
|
1
|
+
{"version":3,"file":"map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/map_test_suite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QA8H5B"}
|
|
@@ -81,57 +81,112 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
|
|
|
81
81
|
'foo'
|
|
82
82
|
]);
|
|
83
83
|
});
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
'
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
]
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
'a'
|
|
134
|
-
|
|
135
|
-
|
|
84
|
+
for (const [name, data] of [
|
|
85
|
+
[
|
|
86
|
+
'chars',
|
|
87
|
+
[
|
|
88
|
+
'a',
|
|
89
|
+
'b',
|
|
90
|
+
'c',
|
|
91
|
+
'd'
|
|
92
|
+
]
|
|
93
|
+
],
|
|
94
|
+
[
|
|
95
|
+
'numbers',
|
|
96
|
+
[
|
|
97
|
+
1,
|
|
98
|
+
2,
|
|
99
|
+
3,
|
|
100
|
+
4
|
|
101
|
+
]
|
|
102
|
+
],
|
|
103
|
+
[
|
|
104
|
+
'negative numbers',
|
|
105
|
+
[
|
|
106
|
+
-4,
|
|
107
|
+
-3,
|
|
108
|
+
-2,
|
|
109
|
+
-1
|
|
110
|
+
]
|
|
111
|
+
],
|
|
112
|
+
[
|
|
113
|
+
'strings',
|
|
114
|
+
[
|
|
115
|
+
'aaa',
|
|
116
|
+
'bbb',
|
|
117
|
+
'ccc',
|
|
118
|
+
'ddd'
|
|
119
|
+
]
|
|
120
|
+
],
|
|
121
|
+
[
|
|
122
|
+
'zero-based numbers',
|
|
123
|
+
[
|
|
124
|
+
0,
|
|
125
|
+
1,
|
|
126
|
+
2,
|
|
127
|
+
3
|
|
128
|
+
]
|
|
129
|
+
]
|
|
130
|
+
]){
|
|
131
|
+
it(`supports range queries over ${name} keys`, async ()=>{
|
|
132
|
+
const [a, b, c, d] = data;
|
|
133
|
+
await map.set(a, 'a');
|
|
134
|
+
await map.set(b, 'b');
|
|
135
|
+
await map.set(c, 'c');
|
|
136
|
+
await map.set(d, 'd');
|
|
137
|
+
expect(await keys()).to.deep.equal([
|
|
138
|
+
a,
|
|
139
|
+
b,
|
|
140
|
+
c,
|
|
141
|
+
d
|
|
142
|
+
]);
|
|
143
|
+
expect(await keys({
|
|
144
|
+
start: b,
|
|
145
|
+
end: c
|
|
146
|
+
})).to.deep.equal([
|
|
147
|
+
b
|
|
148
|
+
]);
|
|
149
|
+
expect(await keys({
|
|
150
|
+
start: b
|
|
151
|
+
})).to.deep.equal([
|
|
152
|
+
b,
|
|
153
|
+
c,
|
|
154
|
+
d
|
|
155
|
+
]);
|
|
156
|
+
expect(await keys({
|
|
157
|
+
end: c
|
|
158
|
+
})).to.deep.equal([
|
|
159
|
+
a,
|
|
160
|
+
b
|
|
161
|
+
]);
|
|
162
|
+
expect(await keys({
|
|
163
|
+
start: b,
|
|
164
|
+
end: c,
|
|
165
|
+
reverse: true
|
|
166
|
+
})).to.deep.equal([
|
|
167
|
+
c
|
|
168
|
+
]);
|
|
169
|
+
expect(await keys({
|
|
170
|
+
start: b,
|
|
171
|
+
limit: 1
|
|
172
|
+
})).to.deep.equal([
|
|
173
|
+
b
|
|
174
|
+
]);
|
|
175
|
+
expect(await keys({
|
|
176
|
+
start: b,
|
|
177
|
+
reverse: true
|
|
178
|
+
})).to.deep.equal([
|
|
179
|
+
d,
|
|
180
|
+
c
|
|
181
|
+
]);
|
|
182
|
+
expect(await keys({
|
|
183
|
+
end: b,
|
|
184
|
+
reverse: true
|
|
185
|
+
})).to.deep.equal([
|
|
186
|
+
b,
|
|
187
|
+
a
|
|
188
|
+
]);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
136
191
|
});
|
|
137
192
|
}
|
package/dest/lmdb/map.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
1
|
import type { Database } from 'lmdb';
|
|
4
2
|
import type { Key, Range, Value } from '../interfaces/common.js';
|
|
5
3
|
import type { AztecAsyncMap, AztecMap } from '../interfaces/map.js';
|
|
@@ -24,7 +22,7 @@ export declare class LmdbAztecMap<K extends Key, V extends Value> implements Azt
|
|
|
24
22
|
setIfNotExists(key: K, val: V): Promise<boolean>;
|
|
25
23
|
delete(key: K): Promise<void>;
|
|
26
24
|
entries(range?: Range<K>): IterableIterator<[K, V]>;
|
|
27
|
-
entriesAsync(range?: Range<K>
|
|
25
|
+
entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]>;
|
|
28
26
|
values(range?: Range<K>): IterableIterator<V>;
|
|
29
27
|
valuesAsync(range?: Range<K>): AsyncIterableIterator<V>;
|
|
30
28
|
keys(range?: Range<K>): IterableIterator<K>;
|
package/dest/lmdb/map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb/map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,MAAM,CAAC;AAEnD,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEpE,uDAAuD;AACvD,KAAK,YAAY,CAAC,CAAC,SAAS,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAEvE;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IACtG,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;gBAEhC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;IAW7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAI1B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAO1C,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,OAAO,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA2CjD,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAMnE,MAAM,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAM3C,WAAW,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAMjE,IAAI,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAMzC,SAAS,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAMhE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAIjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
|
package/dest/lmdb/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,YAAY,EAAQ,MAAM,MAAM,CAAC;AAI9D,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQ9E;;GAEG;AACH,qBAAa,cAAe,YAAW,YAAY,EAAE,iBAAiB;;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/array.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAIrD,OAAO,EAAE,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAG3E,qBAAa,SAAS,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/array.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAIrD,OAAO,EAAE,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAG3E,qBAAa,SAAS,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAMjE,OAAO,CAAC,KAAK;IALf,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAS;gBAGb,KAAK,EAAE,gBAAgB,EAC/B,IAAI,EAAE,MAAM;IAMd,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAgB7B,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAWnC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAc9C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAexC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,YAAY,IAAI,qBAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IA2BlD,WAAW,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAM9C,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;CAGnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAK/E,OAAO,CAAC,KAAK;IAJf,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAiB;gBAGtB,KAAK,EAAE,gBAAgB,EAC/B,IAAI,EAAE,MAAM;IAId;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAYhD;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAOxC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC;;;OAGG;IACI,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAgCpE;;;OAGG;IACI,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAM9D;;;OAGG;IACI,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;CAK7D"}
|
package/dest/lmdb-v2/map.js
CHANGED
|
@@ -53,15 +53,15 @@ export class LMDBMap {
|
|
|
53
53
|
* @param range - The range of keys to iterate over
|
|
54
54
|
*/ async *entriesAsync(range) {
|
|
55
55
|
const reverse = range?.reverse ?? false;
|
|
56
|
-
const startKey = range?.start ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
|
|
57
|
-
const endKey = range?.end ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
|
|
56
|
+
const startKey = range?.start !== undefined ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
|
|
57
|
+
const endKey = range?.end !== undefined ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
|
|
58
58
|
let tx = this.store.getCurrentWriteTx();
|
|
59
59
|
const shouldClose = !tx;
|
|
60
60
|
tx ??= this.store.getReadTx();
|
|
61
61
|
try {
|
|
62
62
|
for await (const [key, val] of tx.iterate(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)){
|
|
63
63
|
const deserializedKey = deserializeKey(this.prefix, key);
|
|
64
|
-
if (
|
|
64
|
+
if (deserializedKey === false) {
|
|
65
65
|
break;
|
|
66
66
|
}
|
|
67
67
|
yield [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/multi_map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/multi_map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAIzF,OAAO,CAAC,KAAK;IAHf,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAiB;gBAEtB,KAAK,EAAE,gBAAgB,EAC/B,IAAI,EAAE,MAAM;IAKd;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAWhD;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAOxC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC;;;OAGG;IACI,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAgCpE;;;OAGG;IACI,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAM9D;;;OAGG;IACI,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAM5D,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;CAMxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/singleton.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/singleton.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;IAI7D,OAAO,CAAC,KAAK;IAHf,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAiB;gBAEtB,KAAK,EAAE,gBAAgB,EAC/B,IAAI,EAAE,MAAM;IAKd,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAOlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAM3B"}
|
package/dest/lmdb-v2/utils.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
1
|
import type { Key } from '../interfaces/common.js';
|
|
4
2
|
type Cmp<T> = (a: T, b: T) => -1 | 0 | 1;
|
|
5
3
|
export declare function dedupeSortedArray<T>(arr: T[], cmp: Cmp<T>): void;
|
|
@@ -11,8 +9,8 @@ export declare function removeFromSortedArray<T, N>(arr: T[], val: N, cmp: (a: T
|
|
|
11
9
|
export declare function merge<T>(arr: T[], toInsert: T[], cmp: (a: T, b: T) => -1 | 0 | 1): void;
|
|
12
10
|
export declare function keyCmp(a: [Uint8Array, Uint8Array[] | null], b: [Uint8Array, Uint8Array[] | null]): -1 | 0 | 1;
|
|
13
11
|
export declare function singleKeyCmp(a: [Uint8Array, Uint8Array[] | null], b: Uint8Array): -1 | 0 | 1;
|
|
14
|
-
export declare function minKey(prefix: string): Buffer
|
|
15
|
-
export declare function maxKey(prefix: string): Buffer
|
|
12
|
+
export declare function minKey(prefix: string): Buffer<ArrayBufferLike>;
|
|
13
|
+
export declare function maxKey(prefix: string): Buffer<ArrayBufferLike>;
|
|
16
14
|
export declare function serializeKey(prefix: string, key: Key): Buffer;
|
|
17
15
|
export declare function deserializeKey<K extends Key>(prefix: string, key: Uint8Array): K | false;
|
|
18
16
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAEnD,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEzC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAkBhE;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,CAgB7F;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAiBxG;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,CAAC,GAAG,SAAS,CAG1G;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAsB5F;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAK5F;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAqBvF;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAE7G;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAE5F;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,2BAEpC;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,2BAEpC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAE7D;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC,GAAG,KAAK,CAOxF"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
1
|
import { type Batch } from './message.js';
|
|
4
2
|
import { ReadTransaction } from './read_transaction.js';
|
|
5
3
|
export declare class WriteTransaction extends ReadTransaction {
|
|
@@ -12,8 +10,8 @@ export declare class WriteTransaction extends ReadTransaction {
|
|
|
12
10
|
setIndex(key: Buffer, ...values: Buffer[]): Promise<void>;
|
|
13
11
|
removeIndex(key: Buffer, ...values: Buffer[]): Promise<void>;
|
|
14
12
|
getIndex(key: Buffer): Promise<Uint8Array[]>;
|
|
15
|
-
iterate(startKey: Uint8Array, endKey?: Uint8Array
|
|
16
|
-
iterateIndex(startKey: Uint8Array, endKey?: Uint8Array
|
|
13
|
+
iterate(startKey: Uint8Array, endKey?: Uint8Array, reverse?: boolean, limit?: number): AsyncIterable<[Uint8Array, Uint8Array]>;
|
|
14
|
+
iterateIndex(startKey: Uint8Array, endKey?: Uint8Array, reverse?: boolean, limit?: number): AsyncIterable<[Uint8Array, Uint8Array[]]>;
|
|
17
15
|
commit(): Promise<void>;
|
|
18
16
|
}
|
|
19
17
|
//# sourceMappingURL=write_transaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write_transaction.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/write_transaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"write_transaction.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/write_transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAA6B,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAaxD,qBAAa,gBAAiB,SAAQ,eAAe;;IAEnD,SAAgB,SAAS,EAAE,KAAK,CAG9B;IACF,SAAgB,UAAU,EAAE,KAAK,CAG/B;IAEF,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtD,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAchB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAevE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BzD,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCtC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAuB3C,OAAO,CAC5B,QAAQ,EAAE,UAAU,EACpB,MAAM,CAAC,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,OAAO,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAanB,YAAY,CACjC,QAAQ,EAAE,UAAU,EACpB,MAAM,CAAC,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,OAAO,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAqH/B,MAAM;CAUpB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/kv-store",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.87.0-nightly.20250521",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/interfaces/index.js",
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"./package.local.json"
|
|
24
24
|
],
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@aztec/ethereum": "0.
|
|
27
|
-
"@aztec/foundation": "0.
|
|
28
|
-
"@aztec/native": "0.
|
|
29
|
-
"@aztec/stdlib": "0.
|
|
26
|
+
"@aztec/ethereum": "0.87.0-nightly.20250521",
|
|
27
|
+
"@aztec/foundation": "0.87.0-nightly.20250521",
|
|
28
|
+
"@aztec/native": "0.87.0-nightly.20250521",
|
|
29
|
+
"@aztec/stdlib": "0.87.0-nightly.20250521",
|
|
30
30
|
"idb": "^8.0.0",
|
|
31
31
|
"lmdb": "^3.2.0",
|
|
32
32
|
"msgpackr": "^1.11.2",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@types/jest": "^29.5.0",
|
|
41
41
|
"@types/mocha": "^10.0.10",
|
|
42
42
|
"@types/mocha-each": "^2.0.4",
|
|
43
|
-
"@types/node": "^
|
|
43
|
+
"@types/node": "^22.15.17",
|
|
44
44
|
"@types/sinon": "^17.0.3",
|
|
45
45
|
"@web/dev-server-esbuild": "^1.0.3",
|
|
46
46
|
"@web/test-runner": "^0.19.0",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"mocha-each": "^2.0.1",
|
|
53
53
|
"sinon": "^19.0.2",
|
|
54
54
|
"ts-node": "^10.9.1",
|
|
55
|
-
"typescript": "^5.
|
|
55
|
+
"typescript": "^5.3.3"
|
|
56
56
|
},
|
|
57
57
|
"files": [
|
|
58
58
|
"dest",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"!*.test.*"
|
|
61
61
|
],
|
|
62
62
|
"engines": {
|
|
63
|
-
"node": ">=
|
|
63
|
+
"node": ">=20.10"
|
|
64
64
|
},
|
|
65
65
|
"jest": {
|
|
66
66
|
"extensionsToTreatAsEsm": [
|
package/src/indexeddb/store.ts
CHANGED
|
@@ -38,7 +38,6 @@ export interface AztecIDBSchema extends DBSchema {
|
|
|
38
38
|
*/
|
|
39
39
|
|
|
40
40
|
export class AztecIndexedDBStore implements AztecAsyncKVStore {
|
|
41
|
-
#log: Logger;
|
|
42
41
|
#rootDB: IDBPDatabase<AztecIDBSchema>;
|
|
43
42
|
#name: string;
|
|
44
43
|
|
|
@@ -50,9 +49,12 @@ export class AztecIndexedDBStore implements AztecAsyncKVStore {
|
|
|
50
49
|
| IndexedDBAztecSingleton<any>
|
|
51
50
|
>();
|
|
52
51
|
|
|
53
|
-
constructor(
|
|
52
|
+
constructor(
|
|
53
|
+
rootDB: IDBPDatabase<AztecIDBSchema>,
|
|
54
|
+
public readonly isEphemeral: boolean,
|
|
55
|
+
name: string,
|
|
56
|
+
) {
|
|
54
57
|
this.#rootDB = rootDB;
|
|
55
|
-
this.#log = log;
|
|
56
58
|
this.#name = name;
|
|
57
59
|
}
|
|
58
60
|
/**
|
|
@@ -82,7 +84,7 @@ export class AztecIndexedDBStore implements AztecAsyncKVStore {
|
|
|
82
84
|
},
|
|
83
85
|
});
|
|
84
86
|
|
|
85
|
-
const kvStore = new AztecIndexedDBStore(rootDB, ephemeral,
|
|
87
|
+
const kvStore = new AztecIndexedDBStore(rootDB, ephemeral, name);
|
|
86
88
|
return kvStore;
|
|
87
89
|
}
|
|
88
90
|
|
package/src/interfaces/common.ts
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
export type Key = string | number | Array<string | number>;
|
|
1
|
+
/** The key type for use with the kv-store */
|
|
2
|
+
export type Key = string | number | Uint8Array | Array<string | number>;
|
|
5
3
|
|
|
6
4
|
export type Value = NonNullable<any>;
|
|
7
5
|
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
export type Range<K extends Key = Key> = {
|
|
6
|
+
/** A range of keys of arbitrary type. */
|
|
7
|
+
export type CustomRange<K> = {
|
|
12
8
|
/** The key of the first item to include */
|
|
13
9
|
start?: K;
|
|
14
10
|
/** The key of the last item to include */
|
|
@@ -19,4 +15,17 @@ export type Range<K extends Key = Key> = {
|
|
|
19
15
|
limit?: number;
|
|
20
16
|
};
|
|
21
17
|
|
|
18
|
+
/** Maps a custom range into a range of valid key types to iterate over. */
|
|
19
|
+
export function mapRange<CK, K extends Key = Key>(range: CustomRange<CK>, mapFn: (key: CK) => K): Range<K> {
|
|
20
|
+
return {
|
|
21
|
+
start: range.start ? mapFn(range.start) : undefined,
|
|
22
|
+
end: range.end ? mapFn(range.end) : undefined,
|
|
23
|
+
reverse: range.reverse,
|
|
24
|
+
limit: range.limit,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** A range of keys to iterate over. */
|
|
29
|
+
export type Range<K extends Key = Key> = CustomRange<K>;
|
|
30
|
+
|
|
22
31
|
export type StoreSize = { mappingSize: number; physicalFileSize: number; actualSize: number; numItems: number };
|
package/src/interfaces/index.ts
CHANGED
|
@@ -5,4 +5,5 @@ export * from './singleton.js';
|
|
|
5
5
|
export * from './store.js';
|
|
6
6
|
export * from './set.js';
|
|
7
7
|
export * from './multi_map.js';
|
|
8
|
-
export
|
|
8
|
+
export { mapRange } from './common.js';
|
|
9
|
+
export type { CustomRange, Range, StoreSize } from './common.js';
|
|
@@ -110,19 +110,30 @@ export function describeAztecMap(
|
|
|
110
110
|
expect(await keys()).to.deep.equal(['baz', 'foo']);
|
|
111
111
|
});
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
113
|
+
for (const [name, data] of [
|
|
114
|
+
['chars', ['a', 'b', 'c', 'd']],
|
|
115
|
+
['numbers', [1, 2, 3, 4]],
|
|
116
|
+
['negative numbers', [-4, -3, -2, -1]],
|
|
117
|
+
['strings', ['aaa', 'bbb', 'ccc', 'ddd']],
|
|
118
|
+
['zero-based numbers', [0, 1, 2, 3]],
|
|
119
|
+
]) {
|
|
120
|
+
it(`supports range queries over ${name} keys`, async () => {
|
|
121
|
+
const [a, b, c, d] = data;
|
|
122
|
+
|
|
123
|
+
await map.set(a, 'a');
|
|
124
|
+
await map.set(b, 'b');
|
|
125
|
+
await map.set(c, 'c');
|
|
126
|
+
await map.set(d, 'd');
|
|
127
|
+
|
|
128
|
+
expect(await keys()).to.deep.equal([a, b, c, d]);
|
|
129
|
+
expect(await keys({ start: b, end: c })).to.deep.equal([b]);
|
|
130
|
+
expect(await keys({ start: b })).to.deep.equal([b, c, d]);
|
|
131
|
+
expect(await keys({ end: c })).to.deep.equal([a, b]);
|
|
132
|
+
expect(await keys({ start: b, end: c, reverse: true })).to.deep.equal([c]);
|
|
133
|
+
expect(await keys({ start: b, limit: 1 })).to.deep.equal([b]);
|
|
134
|
+
expect(await keys({ start: b, reverse: true })).to.deep.equal([d, c]);
|
|
135
|
+
expect(await keys({ end: b, reverse: true })).to.deep.equal([b, a]);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
127
138
|
});
|
|
128
139
|
}
|
package/src/lmdb/map.ts
CHANGED
|
@@ -82,16 +82,16 @@ export class LmdbAztecMap<K extends Key, V extends Value> implements AztecMap<K,
|
|
|
82
82
|
? this.slot(range.end)
|
|
83
83
|
: this.endSentinel
|
|
84
84
|
: range.start
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
? this.slot(range.start)
|
|
86
|
+
: this.startSentinel;
|
|
87
87
|
|
|
88
88
|
const end = reverse
|
|
89
89
|
? range.start
|
|
90
90
|
? this.slot(range.start)
|
|
91
91
|
: this.startSentinel
|
|
92
92
|
: range.end
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
? this.slot(range.end)
|
|
94
|
+
: this.endSentinel;
|
|
95
95
|
|
|
96
96
|
const lmdbRange: RangeOptions = {
|
|
97
97
|
start,
|
|
@@ -113,7 +113,7 @@ export class LmdbAztecMap<K extends Key, V extends Value> implements AztecMap<K,
|
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
async *entriesAsync(range?: Range<K>
|
|
116
|
+
async *entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]> {
|
|
117
117
|
for (const entry of this.entries(range)) {
|
|
118
118
|
yield entry;
|
|
119
119
|
}
|
package/src/lmdb/store.ts
CHANGED
|
@@ -32,7 +32,11 @@ export class AztecLmdbStore implements AztecKVStore, AztecAsyncKVStore {
|
|
|
32
32
|
#multiMapData: Database<unknown, Key>;
|
|
33
33
|
#log = createLogger('kv-store:lmdb');
|
|
34
34
|
|
|
35
|
-
constructor(
|
|
35
|
+
constructor(
|
|
36
|
+
rootDb: RootDatabase,
|
|
37
|
+
public readonly isEphemeral: boolean,
|
|
38
|
+
private path: string,
|
|
39
|
+
) {
|
|
36
40
|
this.#rootDb = rootDb;
|
|
37
41
|
|
|
38
42
|
// big bucket to store all the data
|
package/src/lmdb-v2/array.ts
CHANGED
|
@@ -13,7 +13,10 @@ export class LMDBArray<T extends Value> implements AztecAsyncArray<T> {
|
|
|
13
13
|
private encoder = new Encoder();
|
|
14
14
|
private prefix: string;
|
|
15
15
|
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(
|
|
17
|
+
private store: AztecLMDBStoreV2,
|
|
18
|
+
name: string,
|
|
19
|
+
) {
|
|
17
20
|
this.length = store.openSingleton(name + ':length');
|
|
18
21
|
this.prefix = `array:${name}`;
|
|
19
22
|
}
|
package/src/lmdb-v2/map.ts
CHANGED
|
@@ -11,7 +11,10 @@ export class LMDBMap<K extends Key, V extends Value> implements AztecAsyncMap<K,
|
|
|
11
11
|
private prefix: string;
|
|
12
12
|
private encoder = new Encoder();
|
|
13
13
|
|
|
14
|
-
constructor(
|
|
14
|
+
constructor(
|
|
15
|
+
private store: AztecLMDBStoreV2,
|
|
16
|
+
name: string,
|
|
17
|
+
) {
|
|
15
18
|
this.prefix = `map:${name}`;
|
|
16
19
|
}
|
|
17
20
|
/**
|
|
@@ -65,9 +68,11 @@ export class LMDBMap<K extends Key, V extends Value> implements AztecAsyncMap<K,
|
|
|
65
68
|
*/
|
|
66
69
|
async *entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]> {
|
|
67
70
|
const reverse = range?.reverse ?? false;
|
|
68
|
-
const startKey = range?.start ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
|
|
69
71
|
|
|
70
|
-
const
|
|
72
|
+
const startKey = range?.start !== undefined ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
|
|
73
|
+
|
|
74
|
+
const endKey =
|
|
75
|
+
range?.end !== undefined ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
|
|
71
76
|
|
|
72
77
|
let tx: ReadTransaction | undefined = this.store.getCurrentWriteTx();
|
|
73
78
|
const shouldClose = !tx;
|
|
@@ -81,7 +86,7 @@ export class LMDBMap<K extends Key, V extends Value> implements AztecAsyncMap<K,
|
|
|
81
86
|
range?.limit,
|
|
82
87
|
)) {
|
|
83
88
|
const deserializedKey = deserializeKey<K>(this.prefix, key);
|
|
84
|
-
if (
|
|
89
|
+
if (deserializedKey === false) {
|
|
85
90
|
break;
|
|
86
91
|
}
|
|
87
92
|
yield [deserializedKey, this.encoder.unpack(val)];
|
package/src/lmdb-v2/multi_map.ts
CHANGED
|
@@ -9,7 +9,10 @@ import { deserializeKey, maxKey, minKey, serializeKey } from './utils.js';
|
|
|
9
9
|
export class LMDBMultiMap<K extends Key, V extends Value> implements AztecAsyncMultiMap<K, V> {
|
|
10
10
|
private prefix: string;
|
|
11
11
|
private encoder = new Encoder();
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(
|
|
13
|
+
private store: AztecLMDBStoreV2,
|
|
14
|
+
name: string,
|
|
15
|
+
) {
|
|
13
16
|
this.prefix = `multimap:${name}`;
|
|
14
17
|
}
|
|
15
18
|
|
package/src/lmdb-v2/singleton.ts
CHANGED
|
@@ -8,7 +8,10 @@ import { serializeKey } from './utils.js';
|
|
|
8
8
|
export class LMDBSingleValue<T> implements AztecAsyncSingleton<T> {
|
|
9
9
|
private key: Uint8Array;
|
|
10
10
|
private encoder = new Encoder();
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(
|
|
12
|
+
private store: AztecLMDBStoreV2,
|
|
13
|
+
name: string,
|
|
14
|
+
) {
|
|
12
15
|
this.key = serializeKey(`singleton:${name}`, 'value');
|
|
13
16
|
}
|
|
14
17
|
|
|
@@ -163,7 +163,7 @@ export class WriteTransaction extends ReadTransaction {
|
|
|
163
163
|
|
|
164
164
|
public override async *iterate(
|
|
165
165
|
startKey: Uint8Array,
|
|
166
|
-
endKey?: Uint8Array
|
|
166
|
+
endKey?: Uint8Array,
|
|
167
167
|
reverse?: boolean,
|
|
168
168
|
limit?: number,
|
|
169
169
|
): AsyncIterable<[Uint8Array, Uint8Array]> {
|
|
@@ -181,7 +181,7 @@ export class WriteTransaction extends ReadTransaction {
|
|
|
181
181
|
|
|
182
182
|
public override async *iterateIndex(
|
|
183
183
|
startKey: Uint8Array,
|
|
184
|
-
endKey?: Uint8Array
|
|
184
|
+
endKey?: Uint8Array,
|
|
185
185
|
reverse?: boolean,
|
|
186
186
|
limit?: number,
|
|
187
187
|
): AsyncIterable<[Uint8Array, Uint8Array[]]> {
|