@aztec/kv-store 0.0.1-commit.e3c1de76 → 0.0.1-commit.e57c76e
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 +8 -1
- package/dest/bench/shared_map_bench.d.ts +19 -0
- package/dest/bench/shared_map_bench.d.ts.map +1 -0
- package/dest/bench/shared_map_bench.js +91 -0
- package/dest/indexeddb/array.js +18 -6
- package/dest/indexeddb/index.d.ts +2 -2
- package/dest/indexeddb/index.d.ts.map +1 -1
- package/dest/indexeddb/index.js +1 -1
- package/dest/indexeddb/map.d.ts +8 -2
- package/dest/indexeddb/map.d.ts.map +1 -1
- package/dest/indexeddb/map.js +23 -13
- package/dest/indexeddb/multi_map.d.ts +2 -1
- package/dest/indexeddb/multi_map.d.ts.map +1 -1
- package/dest/indexeddb/multi_map.js +16 -1
- package/dest/indexeddb/singleton.js +3 -1
- package/dest/indexeddb/store.d.ts +3 -3
- package/dest/indexeddb/store.d.ts.map +1 -1
- package/dest/indexeddb/store.js +6 -4
- package/dest/interfaces/array_test_suite.d.ts +1 -1
- package/dest/interfaces/array_test_suite.d.ts.map +1 -1
- package/dest/interfaces/array_test_suite.js +33 -34
- package/dest/interfaces/index.d.ts +2 -2
- package/dest/interfaces/index.d.ts.map +1 -1
- package/dest/interfaces/map_test_suite.d.ts +1 -1
- package/dest/interfaces/map_test_suite.d.ts.map +1 -1
- package/dest/interfaces/map_test_suite.js +74 -29
- package/dest/interfaces/multi_map_test_suite.d.ts +1 -1
- package/dest/interfaces/multi_map_test_suite.d.ts.map +1 -1
- package/dest/interfaces/multi_map_test_suite.js +84 -60
- package/dest/interfaces/set_test_suite.d.ts +1 -1
- package/dest/interfaces/set_test_suite.d.ts.map +1 -1
- package/dest/interfaces/set_test_suite.js +13 -14
- package/dest/interfaces/singleton_test_suite.d.ts +1 -1
- package/dest/interfaces/singleton_test_suite.d.ts.map +1 -1
- package/dest/interfaces/singleton_test_suite.js +6 -7
- package/dest/lmdb/index.d.ts +2 -2
- package/dest/lmdb/index.d.ts.map +1 -1
- package/dest/lmdb/index.js +2 -2
- package/dest/lmdb/store.d.ts +3 -3
- package/dest/lmdb/store.d.ts.map +1 -1
- package/dest/lmdb/store.js +12 -8
- package/dest/lmdb-v2/factory.d.ts +29 -4
- package/dest/lmdb-v2/factory.d.ts.map +1 -1
- package/dest/lmdb-v2/factory.js +61 -10
- package/dest/lmdb-v2/read_transaction.js +21 -19
- package/dest/lmdb-v2/store.d.ts +2 -2
- package/dest/lmdb-v2/store.d.ts.map +1 -1
- package/dest/lmdb-v2/store.js +4 -4
- package/dest/sqlite-opfs/array.d.ts +21 -0
- package/dest/sqlite-opfs/array.d.ts.map +1 -0
- package/dest/sqlite-opfs/array.js +128 -0
- package/dest/sqlite-opfs/errors.d.ts +27 -0
- package/dest/sqlite-opfs/errors.d.ts.map +1 -0
- package/dest/sqlite-opfs/errors.js +34 -0
- package/dest/sqlite-opfs/index.d.ts +16 -0
- package/dest/sqlite-opfs/index.d.ts.map +1 -0
- package/dest/sqlite-opfs/index.js +22 -0
- package/dest/sqlite-opfs/internal/ordered-binary-browser.d.ts +32 -0
- package/dest/sqlite-opfs/internal/ordered-binary-browser.d.ts.map +1 -0
- package/dest/sqlite-opfs/internal/ordered-binary-browser.js +448 -0
- package/dest/sqlite-opfs/map.d.ts +35 -0
- package/dest/sqlite-opfs/map.d.ts.map +1 -0
- package/dest/sqlite-opfs/map.js +163 -0
- package/dest/sqlite-opfs/messages.d.ts +66 -0
- package/dest/sqlite-opfs/messages.d.ts.map +1 -0
- package/dest/sqlite-opfs/messages.js +5 -0
- package/dest/sqlite-opfs/multi_map.d.ts +16 -0
- package/dest/sqlite-opfs/multi_map.d.ts.map +1 -0
- package/dest/sqlite-opfs/multi_map.js +67 -0
- package/dest/sqlite-opfs/set.d.ts +13 -0
- package/dest/sqlite-opfs/set.d.ts.map +1 -0
- package/dest/sqlite-opfs/set.js +19 -0
- package/dest/sqlite-opfs/singleton.d.ts +13 -0
- package/dest/sqlite-opfs/singleton.d.ts.map +1 -0
- package/dest/sqlite-opfs/singleton.js +48 -0
- package/dest/sqlite-opfs/store.d.ts +79 -0
- package/dest/sqlite-opfs/store.d.ts.map +1 -0
- package/dest/sqlite-opfs/store.js +281 -0
- package/dest/sqlite-opfs/worker.d.ts +2 -0
- package/dest/sqlite-opfs/worker.d.ts.map +1 -0
- package/dest/sqlite-opfs/worker.js +249 -0
- package/dest/stores/l2_tips_store.d.ts +3 -3
- package/dest/stores/l2_tips_store.d.ts.map +1 -1
- package/dest/stores/l2_tips_store.js +2 -2
- package/dest/utils.d.ts +1 -1
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +7 -1
- package/package.json +29 -25
- package/src/bench/shared_map_bench.ts +111 -0
- package/src/indexeddb/array.ts +4 -4
- package/src/indexeddb/index.ts +2 -2
- package/src/indexeddb/map.ts +24 -11
- package/src/indexeddb/multi_map.ts +15 -1
- package/src/indexeddb/singleton.ts +1 -1
- package/src/indexeddb/store.ts +13 -6
- package/src/interfaces/array_test_suite.ts +33 -35
- package/src/interfaces/index.ts +1 -1
- package/src/interfaces/map_test_suite.ts +56 -30
- package/src/interfaces/multi_map_test_suite.ts +88 -58
- package/src/interfaces/set_test_suite.ts +13 -15
- package/src/interfaces/singleton_test_suite.ts +6 -8
- package/src/lmdb/index.ts +3 -3
- package/src/lmdb/store.ts +12 -8
- package/src/lmdb-v2/factory.ts +80 -10
- package/src/lmdb-v2/read_transaction.ts +23 -23
- package/src/lmdb-v2/store.ts +4 -2
- package/src/sqlite-opfs/array.ts +124 -0
- package/src/sqlite-opfs/errors.ts +44 -0
- package/src/sqlite-opfs/index.ts +39 -0
- package/src/sqlite-opfs/internal/ordered-binary-browser.js +465 -0
- package/src/sqlite-opfs/map.ts +163 -0
- package/src/sqlite-opfs/messages.ts +39 -0
- package/src/sqlite-opfs/multi_map.ts +74 -0
- package/src/sqlite-opfs/set.ts +29 -0
- package/src/sqlite-opfs/singleton.ts +48 -0
- package/src/sqlite-opfs/store.ts +296 -0
- package/src/sqlite-opfs/worker.ts +231 -0
- package/src/stores/l2_tips_store.ts +3 -2
- package/src/utils.ts +10 -0
- package/dest/config.d.ts +0 -17
- package/dest/config.d.ts.map +0 -1
- package/dest/config.js +0 -26
- package/src/config.ts +0 -36
package/README.md
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# KV Store
|
|
2
2
|
|
|
3
|
-
The Aztec KV store is an implementation of a durable key-value database with a pluggable backend.
|
|
3
|
+
The Aztec KV store is an implementation of a durable key-value database with a pluggable backend. Four backends are available, each exposed as its own package entrypoint:
|
|
4
|
+
|
|
5
|
+
- `@aztec/kv-store/lmdb-v2`: server / Node. The current default for node components.
|
|
6
|
+
- `@aztec/kv-store/lmdb`: the legacy LMDB backend, backed by [`lmdb-js`](https://github.com/kriszyp/lmdb-js).
|
|
7
|
+
- `@aztec/kv-store/indexeddb`: browser, backed by IndexedDB.
|
|
8
|
+
- `@aztec/kv-store/sqlite-opfs`: browser, backed by SQLite over the Origin Private File System.
|
|
9
|
+
|
|
10
|
+
The backend is selected at import time. You import `createStore` (and friends) from the entrypoint you want.
|
|
4
11
|
|
|
5
12
|
This package exports a number of primitive data structures that can be used to build domain-specific databases in each node component (e.g. a PXE database or an Archiver database). The data structures supported:
|
|
6
13
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Logger } from '@aztec/foundation/log';
|
|
2
|
+
import type { AztecAsyncKVStore } from '../interfaces/store.js';
|
|
3
|
+
/** One benchmark measurement. */
|
|
4
|
+
export type BenchResult = {
|
|
5
|
+
/** Benchmark name (includes the backend prefix for disambiguation). */
|
|
6
|
+
name: string;
|
|
7
|
+
value: number;
|
|
8
|
+
unit: 'ms' | 'us';
|
|
9
|
+
};
|
|
10
|
+
export type BenchReporter = (results: BenchResult[]) => void | Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Runs the standard Map benchmark suite against any `AztecAsyncKVStore` backend,
|
|
13
|
+
* populates `results`, and calls `reporter` in `afterAll`.
|
|
14
|
+
*
|
|
15
|
+
* Kept free of Node-only deps (`fs`, `path`) so the same runner works under
|
|
16
|
+
* vitest-browser for IndexedDB and SQLite-OPFS.
|
|
17
|
+
*/
|
|
18
|
+
export declare function describeAztecMapBench(backendPrefix: string, getStore: () => Promise<AztecAsyncKVStore>, logger: Logger, reporter: BenchReporter): void;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkX21hcF9iZW5jaC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JlbmNoL3NoYXJlZF9tYXBfYmVuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLcEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRSxpQ0FBaUM7QUFDakMsTUFBTSxNQUFNLFdBQVcsR0FBRztJQUN4Qix1RUFBdUU7SUFDdkUsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQztDQUNuQixDQUFDO0FBRUYsTUFBTSxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRTdFOzs7Ozs7R0FNRztBQUNILHdCQUFnQixxQkFBcUIsQ0FDbkMsYUFBYSxFQUFFLE1BQU0sRUFDckIsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQzFDLE1BQU0sRUFBRSxNQUFNLEVBQ2QsUUFBUSxFQUFFLGFBQWEsUUFrRnhCIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared_map_bench.d.ts","sourceRoot":"","sources":["../../src/bench/shared_map_bench.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,iCAAiC;AACjC,MAAM,MAAM,WAAW,GAAG;IACxB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7E;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAC1C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,QAkFxB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Timer } from '@aztec/foundation/timer';
|
|
2
|
+
/**
|
|
3
|
+
* Runs the standard Map benchmark suite against any `AztecAsyncKVStore` backend,
|
|
4
|
+
* populates `results`, and calls `reporter` in `afterAll`.
|
|
5
|
+
*
|
|
6
|
+
* Kept free of Node-only deps (`fs`, `path`) so the same runner works under
|
|
7
|
+
* vitest-browser for IndexedDB and SQLite-OPFS.
|
|
8
|
+
*/ export function describeAztecMapBench(backendPrefix, getStore, logger, reporter) {
|
|
9
|
+
describe(`${backendPrefix} Map benchmarks`, ()=>{
|
|
10
|
+
let store;
|
|
11
|
+
let map;
|
|
12
|
+
const results = [];
|
|
13
|
+
const generateKeyValuePairs = (count, offset = 0)=>{
|
|
14
|
+
const keys = Array.from({
|
|
15
|
+
length: count
|
|
16
|
+
}, (_, i)=>`key-${i + offset}`);
|
|
17
|
+
const values = Array.from({
|
|
18
|
+
length: count
|
|
19
|
+
}, (_, i)=>`value-${i + offset}`);
|
|
20
|
+
return keys.map((key, i)=>({
|
|
21
|
+
key,
|
|
22
|
+
value: values[i]
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
const record = (name, value, unit)=>{
|
|
26
|
+
results.push({
|
|
27
|
+
name: `${backendPrefix}/Map/${name}`,
|
|
28
|
+
value,
|
|
29
|
+
unit
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
beforeEach(async ()=>{
|
|
33
|
+
store = await getStore();
|
|
34
|
+
map = store.openMap('test');
|
|
35
|
+
});
|
|
36
|
+
afterEach(async ()=>{
|
|
37
|
+
await store.delete();
|
|
38
|
+
});
|
|
39
|
+
afterAll(async ()=>{
|
|
40
|
+
const pretty = results.map((r)=>`${r.name}: ${r.value.toFixed(2)} ${r.unit}`).join('\n');
|
|
41
|
+
logger.info(`\n${pretty}\n`);
|
|
42
|
+
await reporter(results);
|
|
43
|
+
});
|
|
44
|
+
it('adds individual values', async ()=>{
|
|
45
|
+
const pairs = generateKeyValuePairs(1000);
|
|
46
|
+
const timer = new Timer();
|
|
47
|
+
for (const pair of pairs){
|
|
48
|
+
await map.set(pair.key, pair.value);
|
|
49
|
+
}
|
|
50
|
+
record('Individual insertion', timer.ms() / pairs.length, 'ms');
|
|
51
|
+
});
|
|
52
|
+
it('adds batched values', async ()=>{
|
|
53
|
+
const batches = Array.from({
|
|
54
|
+
length: 100
|
|
55
|
+
}, (_, i)=>generateKeyValuePairs(1000, i * 1000));
|
|
56
|
+
const timer = new Timer();
|
|
57
|
+
for (const batch of batches){
|
|
58
|
+
await map.setMany(batch);
|
|
59
|
+
}
|
|
60
|
+
record(`Batch insertion of ${batches[0].length} items`, timer.ms() / batches.length, 'ms');
|
|
61
|
+
});
|
|
62
|
+
it('reads individual values', async ()=>{
|
|
63
|
+
const pairs = generateKeyValuePairs(10000);
|
|
64
|
+
await map.setMany(pairs);
|
|
65
|
+
const timer = new Timer();
|
|
66
|
+
for (const pair of pairs){
|
|
67
|
+
await map.getAsync(pair.key);
|
|
68
|
+
}
|
|
69
|
+
record('Individual read', timer.ms() * 1000 / pairs.length, 'us');
|
|
70
|
+
});
|
|
71
|
+
it('reads via a cursor', async ()=>{
|
|
72
|
+
const pairs = generateKeyValuePairs(10000);
|
|
73
|
+
await map.setMany(pairs);
|
|
74
|
+
const timer = new Timer();
|
|
75
|
+
for await (const _ of map.entriesAsync()){
|
|
76
|
+
// consume
|
|
77
|
+
}
|
|
78
|
+
record(`Iterator per item read of ${pairs.length} items`, timer.ms() * 1000 / pairs.length, 'us');
|
|
79
|
+
});
|
|
80
|
+
it('reads the size of the map', async ()=>{
|
|
81
|
+
const numIterations = 1000;
|
|
82
|
+
const pairs = generateKeyValuePairs(10000);
|
|
83
|
+
await map.setMany(pairs);
|
|
84
|
+
const timer = new Timer();
|
|
85
|
+
for(let i = 0; i < numIterations; i++){
|
|
86
|
+
await map.sizeAsync();
|
|
87
|
+
}
|
|
88
|
+
record(`Read size of ${pairs.length} items`, timer.ms() * 1000 / numIterations, 'us');
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
package/dest/indexeddb/array.js
CHANGED
|
@@ -22,10 +22,14 @@ _computedKey = Symbol.asyncIterator;
|
|
|
22
22
|
async lengthAsync() {
|
|
23
23
|
return await this.db.index('key').count(IDBKeyRange.bound([
|
|
24
24
|
this.#container,
|
|
25
|
-
|
|
25
|
+
[
|
|
26
|
+
this.#name
|
|
27
|
+
]
|
|
26
28
|
], [
|
|
27
29
|
this.#container,
|
|
28
|
-
|
|
30
|
+
[
|
|
31
|
+
this.#name
|
|
32
|
+
]
|
|
29
33
|
])) ?? 0;
|
|
30
34
|
}
|
|
31
35
|
async push(...vals) {
|
|
@@ -35,7 +39,9 @@ _computedKey = Symbol.asyncIterator;
|
|
|
35
39
|
value: val,
|
|
36
40
|
hash: hash(val),
|
|
37
41
|
container: this.#container,
|
|
38
|
-
key:
|
|
42
|
+
key: [
|
|
43
|
+
this.#name
|
|
44
|
+
],
|
|
39
45
|
keyCount: length + 1,
|
|
40
46
|
slot: this.#slot(length)
|
|
41
47
|
});
|
|
@@ -73,7 +79,9 @@ _computedKey = Symbol.asyncIterator;
|
|
|
73
79
|
value: val,
|
|
74
80
|
hash: hash(val),
|
|
75
81
|
container: this.#container,
|
|
76
|
-
key:
|
|
82
|
+
key: [
|
|
83
|
+
this.#name
|
|
84
|
+
],
|
|
77
85
|
keyCount: index + 1,
|
|
78
86
|
slot: this.#slot(index)
|
|
79
87
|
});
|
|
@@ -83,10 +91,14 @@ _computedKey = Symbol.asyncIterator;
|
|
|
83
91
|
const index = this.db.index('key');
|
|
84
92
|
const rangeQuery = IDBKeyRange.bound([
|
|
85
93
|
this.#container,
|
|
86
|
-
|
|
94
|
+
[
|
|
95
|
+
this.#name
|
|
96
|
+
]
|
|
87
97
|
], [
|
|
88
98
|
this.#container,
|
|
89
|
-
|
|
99
|
+
[
|
|
100
|
+
this.#name
|
|
101
|
+
]
|
|
90
102
|
]);
|
|
91
103
|
for await (const cursor of index.iterate(rangeQuery)){
|
|
92
104
|
yield [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Logger } from '@aztec/foundation/log';
|
|
2
|
-
import type { DataStoreConfig } from '
|
|
2
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
3
3
|
import { AztecIndexedDBStore } from './store.js';
|
|
4
4
|
export { AztecIndexedDBStore } from './store.js';
|
|
5
5
|
export declare function createStore(name: string, config: DataStoreConfig, schemaVersion?: number | undefined, log?: Logger): Promise<AztecIndexedDBStore>;
|
|
6
6
|
export declare function openTmpStore(ephemeral?: boolean): Promise<AztecIndexedDBStore>;
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleGVkZGIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFakQsd0JBQXNCLFdBQVcsQ0FDL0IsSUFBSSxFQUFFLE1BQU0sRUFDWixNQUFNLEVBQUUsZUFBZSxFQUN2QixhQUFhLEdBQUUsTUFBTSxHQUFHLFNBQXFCLEVBQzdDLEdBQUcsR0FBRSxNQUFpQyxnQ0FjdkM7QUFFRCx3QkFBZ0IsWUFBWSxDQUFDLFNBQVMsR0FBRSxPQUFlLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBRXJGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexeddb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexeddb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,aAAa,GAAE,MAAM,GAAG,SAAqB,EAC7C,GAAG,GAAE,MAAiC,gCAcvC;AAED,wBAAgB,YAAY,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAErF"}
|
package/dest/indexeddb/index.js
CHANGED
|
@@ -9,7 +9,7 @@ export async function createStore(name, config, schemaVersion = undefined, log =
|
|
|
9
9
|
}
|
|
10
10
|
log.info(dataDirectory ? `Creating ${name} data store at directory ${dataDirectory} with map size ${config.dataStoreMapSizeKb} KB` : `Creating ${name} ephemeral data store with map size ${config.dataStoreMapSizeKb} KB`);
|
|
11
11
|
const store = await AztecIndexedDBStore.open(createLogger('kv-store:indexeddb'), dataDirectory ?? '', false);
|
|
12
|
-
return initStoreForRollupAndSchemaVersion(store, schemaVersion, config.
|
|
12
|
+
return initStoreForRollupAndSchemaVersion(store, schemaVersion, config.rollupAddress, log);
|
|
13
13
|
}
|
|
14
14
|
export function openTmpStore(ephemeral = false) {
|
|
15
15
|
return AztecIndexedDBStore.open(createLogger('kv-store:indexeddb'), undefined, ephemeral);
|
package/dest/indexeddb/map.d.ts
CHANGED
|
@@ -26,7 +26,13 @@ export declare class IndexedDBAztecMap<K extends Key, V extends Value> implement
|
|
|
26
26
|
entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]>;
|
|
27
27
|
valuesAsync(range?: Range<K>): AsyncIterableIterator<V>;
|
|
28
28
|
keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
|
|
29
|
-
|
|
29
|
+
/**
|
|
30
|
+
* IndexedDB's structured clone downcasts Buffer (a Node.js subclass of Uint8Array) to plain Uint8Array.
|
|
31
|
+
* This breaks .toString() behavior: Buffer.toString() returns UTF-8, Uint8Array.toString() returns
|
|
32
|
+
* comma-separated decimal bytes. We restore Buffer identity on read so callers get consistent behavior.
|
|
33
|
+
*/
|
|
34
|
+
protected restoreBuffers(val: V): V;
|
|
35
|
+
protected normalizeKey(key: K): (string | number | Uint8Array)[];
|
|
30
36
|
protected slot(key: K, index?: number): string;
|
|
31
37
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBR3pELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpEOztHQUVHO0FBQ0gscUJBQWEsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxDQUFFLFlBQVcsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7O0lBQzNGLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBSzVCLFlBQVksTUFBTSxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUloRTtJQUVELElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxHQUFHLFNBQVMsRUFFcEY7SUFFRCxJQUFJLEVBQUUsSUFBSSxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUV2RTtJQUVLLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBRzdDO0lBRUssUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUd2QztJQUVLLFNBQVMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBSWpDO0lBRUssR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBU3ZDO0lBRUssT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0tBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJNUQ7SUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUzRDtJQUVLLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQU1yRDtJQUVLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFbEM7SUFFTSxZQUFZLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQW1CdkU7SUFFTSxXQUFXLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJakU7SUFFTSxTQUFTLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJL0Q7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FLbEM7SUFNRCxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBRS9EO0lBRUQsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRSxNQUFVLEdBQUcsTUFBTSxDQUVoRDtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/indexeddb/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAGzD,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IAC3F,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAK5B,YAAY,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAIhE;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EAEpF;IAED,IAAI,EAAE,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAEvE;IAEK,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAG7C;IAEK,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvC;IAEK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAIjC;IAEK,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CASvC;IAEK,OAAO,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5D;IAED,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;IAEK,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAMrD;IAEK,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElC;IAEM,YAAY,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/indexeddb/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAGzD,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IAC3F,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAK5B,YAAY,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAIhE;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EAEpF;IAED,IAAI,EAAE,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAEvE;IAEK,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAG7C;IAEK,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvC;IAEK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAIjC;IAEK,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CASvC;IAEK,OAAO,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5D;IAED,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;IAEK,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAMrD;IAEK,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElC;IAEM,YAAY,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAmBvE;IAEM,WAAW,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAIjE;IAEM,SAAS,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAI/D;IAED;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAKlC;IAMD,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,EAAE,CAE/D;IAED,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAEhD;CACF"}
|
package/dest/indexeddb/map.js
CHANGED
|
@@ -19,7 +19,7 @@ import { hash } from 'ohash';
|
|
|
19
19
|
}
|
|
20
20
|
async getAsync(key) {
|
|
21
21
|
const data = await this.db.get(this.slot(key));
|
|
22
|
-
return data
|
|
22
|
+
return data ? this.restoreBuffers(data.value) : undefined;
|
|
23
23
|
}
|
|
24
24
|
async hasAsync(key) {
|
|
25
25
|
const result = await this.getAsync(key) !== undefined;
|
|
@@ -28,12 +28,10 @@ import { hash } from 'ohash';
|
|
|
28
28
|
async sizeAsync() {
|
|
29
29
|
const index = this.db.index('key');
|
|
30
30
|
const rangeQuery = IDBKeyRange.bound([
|
|
31
|
-
this.container
|
|
32
|
-
''
|
|
31
|
+
this.container
|
|
33
32
|
], [
|
|
34
|
-
this.container
|
|
35
|
-
|
|
36
|
-
]);
|
|
33
|
+
this.container + '\uffff'
|
|
34
|
+
], true, true);
|
|
37
35
|
return await index.count(rangeQuery);
|
|
38
36
|
}
|
|
39
37
|
async set(key, val) {
|
|
@@ -66,12 +64,16 @@ import { hash } from 'ohash';
|
|
|
66
64
|
}
|
|
67
65
|
async *entriesAsync(range = {}) {
|
|
68
66
|
const index = this.db.index('key');
|
|
67
|
+
const startKey = range.start ? this.normalizeKey(range.start) : [];
|
|
68
|
+
const endKey = range.end ? this.normalizeKey(range.end) : [
|
|
69
|
+
'\uffff'
|
|
70
|
+
];
|
|
69
71
|
const rangeQuery = IDBKeyRange.bound([
|
|
70
72
|
this.container,
|
|
71
|
-
|
|
73
|
+
startKey
|
|
72
74
|
], [
|
|
73
75
|
this.container,
|
|
74
|
-
|
|
76
|
+
endKey
|
|
75
77
|
], !!range.reverse, !range.reverse);
|
|
76
78
|
let count = 0;
|
|
77
79
|
for await (const cursor of index.iterate(rangeQuery, range.reverse ? 'prev' : 'next')){
|
|
@@ -80,7 +82,7 @@ import { hash } from 'ohash';
|
|
|
80
82
|
}
|
|
81
83
|
yield [
|
|
82
84
|
this.#denormalizeKey(cursor.value.key),
|
|
83
|
-
cursor.value.value
|
|
85
|
+
this.restoreBuffers(cursor.value.value)
|
|
84
86
|
];
|
|
85
87
|
count++;
|
|
86
88
|
}
|
|
@@ -95,15 +97,23 @@ import { hash } from 'ohash';
|
|
|
95
97
|
yield key;
|
|
96
98
|
}
|
|
97
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* IndexedDB's structured clone downcasts Buffer (a Node.js subclass of Uint8Array) to plain Uint8Array.
|
|
102
|
+
* This breaks .toString() behavior: Buffer.toString() returns UTF-8, Uint8Array.toString() returns
|
|
103
|
+
* comma-separated decimal bytes. We restore Buffer identity on read so callers get consistent behavior.
|
|
104
|
+
*/ restoreBuffers(val) {
|
|
105
|
+
if (val instanceof Uint8Array && !Buffer.isBuffer(val)) {
|
|
106
|
+
return Buffer.from(val);
|
|
107
|
+
}
|
|
108
|
+
return val;
|
|
109
|
+
}
|
|
98
110
|
#denormalizeKey(key) {
|
|
99
|
-
|
|
100
|
-
return denormalizedKey.length > 1 ? denormalizedKey : denormalizedKey[0];
|
|
111
|
+
return key.length > 1 ? key : key[0];
|
|
101
112
|
}
|
|
102
113
|
normalizeKey(key) {
|
|
103
|
-
|
|
114
|
+
return Array.isArray(key) ? key : [
|
|
104
115
|
key
|
|
105
116
|
];
|
|
106
|
-
return arrayKey.map((element)=>typeof element === 'number' ? `n_${element}` : element).join(',');
|
|
107
117
|
}
|
|
108
118
|
slot(key, index = 0) {
|
|
109
119
|
return `map:${this.name}:slot:${this.normalizeKey(key)}:${index}`;
|
|
@@ -9,5 +9,6 @@ export declare class IndexedDBAztecMultiMap<K extends Key, V extends Value> exte
|
|
|
9
9
|
getValuesAsync(key: K): AsyncIterableIterator<V>;
|
|
10
10
|
getValueCountAsync(key: K): Promise<number>;
|
|
11
11
|
deleteValue(key: K, val: V): Promise<void>;
|
|
12
|
+
delete(key: K): Promise<void>;
|
|
12
13
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfbWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL211bHRpX21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFN0M7O0dBRUc7QUFDSCxxQkFBYSxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLENBQ2hFLFNBQVEsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDOUIsWUFBVyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXBCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWtDaEQ7SUFFTSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FZdEQ7SUFFRCxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FVMUM7SUFFSyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjL0M7SUFFYyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBWTNDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/indexeddb/multi_map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,qBAAa,sBAAsB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAChE,SAAQ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAC9B,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChD;IAEM,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAYtD;IAED,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAU1C;IAEK,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAc/C;CACF"}
|
|
1
|
+
{"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/indexeddb/multi_map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,qBAAa,sBAAsB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAChE,SAAQ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAC9B,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChD;IAEM,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAYtD;IAED,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAU1C;IAEK,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAc/C;IAEc,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3C;CACF"}
|
|
@@ -56,7 +56,7 @@ import { IndexedDBAztecMap } from './map.js';
|
|
|
56
56
|
Number.MAX_SAFE_INTEGER
|
|
57
57
|
], false, false);
|
|
58
58
|
for await (const cursor of index.iterate(rangeQuery)){
|
|
59
|
-
yield cursor.value.value;
|
|
59
|
+
yield this.restoreBuffers(cursor.value.value);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
getValueCountAsync(key) {
|
|
@@ -89,4 +89,19 @@ import { IndexedDBAztecMap } from './map.js';
|
|
|
89
89
|
await this.db.delete(fullKey);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
+
async delete(key) {
|
|
93
|
+
const index = this.db.index('keyCount');
|
|
94
|
+
const rangeQuery = IDBKeyRange.bound([
|
|
95
|
+
this.container,
|
|
96
|
+
this.normalizeKey(key),
|
|
97
|
+
0
|
|
98
|
+
], [
|
|
99
|
+
this.container,
|
|
100
|
+
this.normalizeKey(key),
|
|
101
|
+
Number.MAX_SAFE_INTEGER
|
|
102
|
+
], false, false);
|
|
103
|
+
for await (const cursor of index.iterate(rangeQuery)){
|
|
104
|
+
await cursor.delete();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
92
107
|
}
|
|
@@ -11,7 +11,7 @@ import type { AztecAsyncKVStore } from '../interfaces/store.js';
|
|
|
11
11
|
export type StoredData<V extends Value> = {
|
|
12
12
|
value: V;
|
|
13
13
|
container: string;
|
|
14
|
-
key: string;
|
|
14
|
+
key: (string | number | Uint8Array)[];
|
|
15
15
|
keyCount: number;
|
|
16
16
|
slot: string;
|
|
17
17
|
hash: string;
|
|
@@ -22,7 +22,7 @@ export interface AztecIDBSchema extends DBSchema {
|
|
|
22
22
|
key: string;
|
|
23
23
|
indexes: {
|
|
24
24
|
container: string;
|
|
25
|
-
key:
|
|
25
|
+
key: any;
|
|
26
26
|
keyCount: number;
|
|
27
27
|
hash: string;
|
|
28
28
|
};
|
|
@@ -93,4 +93,4 @@ export declare class AztecIndexedDBStore implements AztecAsyncKVStore {
|
|
|
93
93
|
close(): Promise<void>;
|
|
94
94
|
backupTo(_dstPath: string, _compact?: boolean): Promise<void>;
|
|
95
95
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleGVkZGIvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHcEQsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLEtBQUssWUFBWSxFQUFvQixNQUFNLEtBQUssQ0FBQztBQUV6RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFPaEUsTUFBTSxNQUFNLFVBQVUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJO0lBQ3hDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDVCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxNQUFNLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQztJQUN0QyxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixJQUFJLEVBQUUsTUFBTSxDQUFDO0NBQ2QsQ0FBQztBQUVGLE1BQU0sV0FBVyxjQUFlLFNBQVEsUUFBUTtJQUM5QyxJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLEdBQUcsRUFBRSxNQUFNLENBQUM7UUFDWixPQUFPLEVBQUU7WUFDUCxTQUFTLEVBQUUsTUFBTSxDQUFDO1lBQ2xCLEdBQUcsRUFBRSxHQUFHLENBQUM7WUFDVCxRQUFRLEVBQUUsTUFBTSxDQUFDO1lBQ2pCLElBQUksRUFBRSxNQUFNLENBQUM7U0FDZCxDQUFDO0tBQ0gsQ0FBQztDQUNIO0FBRUQ7O0dBRUc7QUFFSCxxQkFBYSxtQkFBb0IsWUFBVyxpQkFBaUI7O2FBZXpDLFdBQVcsRUFBRSxPQUFPO0lBRnRDLFlBQ0UsTUFBTSxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFDcEIsV0FBVyxFQUFFLE9BQU8sRUFDcEMsSUFBSSxFQUFFLE1BQU0sRUFNYjtJQUNEOzs7Ozs7Ozs7T0FTRztJQUNILE9BQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsR0FBRSxPQUFlLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBbUJ0RztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FJekU7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBSXJEO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBSW5GO0lBRUQsV0FBVyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FFOUQ7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBSTNEO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBSW5FO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQXFCMUQ7SUFFRDs7T0FFRztJQUNHLEtBQUssa0JBRVY7SUFFRCxrREFBa0Q7SUFDNUMsTUFBTSxrQkFLWDtJQUVELFlBQVksSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBRWpDO0lBRUssS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHM0I7SUFFRCxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU1RDtDQUNGIn0=
|
|
@@ -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;AAGpD,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;
|
|
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
|
@@ -145,10 +145,11 @@ import { IndexedDBAztecSingleton } from './singleton.js';
|
|
|
145
145
|
*/ async clear() {
|
|
146
146
|
await this.#rootDB.transaction('data', 'readwrite').store.clear();
|
|
147
147
|
}
|
|
148
|
-
/** Deletes this store and removes the database */ delete() {
|
|
148
|
+
/** Deletes this store and removes the database */ async delete() {
|
|
149
149
|
this.#containers.clear();
|
|
150
|
+
await this.#txQueue.end();
|
|
150
151
|
this.#rootDB.close();
|
|
151
|
-
|
|
152
|
+
await deleteDB(this.#name);
|
|
152
153
|
}
|
|
153
154
|
estimateSize() {
|
|
154
155
|
return Promise.resolve({
|
|
@@ -158,8 +159,9 @@ import { IndexedDBAztecSingleton } from './singleton.js';
|
|
|
158
159
|
numItems: 0
|
|
159
160
|
});
|
|
160
161
|
}
|
|
161
|
-
close() {
|
|
162
|
-
|
|
162
|
+
async close() {
|
|
163
|
+
await this.#txQueue.end();
|
|
164
|
+
this.#rootDB.close();
|
|
163
165
|
}
|
|
164
166
|
backupTo(_dstPath, _compact) {
|
|
165
167
|
throw new Error('Method not implemented.');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { AztecAsyncKVStore, AztecKVStore } from './store.js';
|
|
2
2
|
export declare function describeAztecArray(testName: string, getStore: () => AztecKVStore | Promise<AztecAsyncKVStore>, forceAsync?: boolean): void;
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlfdGVzdF9zdWl0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYXJyYXlfdGVzdF9zdWl0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHbEUsd0JBQWdCLGtCQUFrQixDQUNoQyxRQUFRLEVBQUUsTUFBTSxFQUNoQixRQUFRLEVBQUUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQ3pELFVBQVUsR0FBRSxPQUFlLFFBc0g1QiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/array_test_suite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"array_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/array_test_suite.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QAsH5B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { toArray } from '@aztec/foundation/iterable';
|
|
2
|
-
import { expect } from 'chai';
|
|
3
2
|
import { isSyncStore } from './utils.js';
|
|
4
3
|
export function describeAztecArray(testName, getStore, forceAsync = false) {
|
|
5
4
|
describe(testName, ()=>{
|
|
@@ -28,56 +27,56 @@ export function describeAztecArray(testName, getStore, forceAsync = false) {
|
|
|
28
27
|
await arr.push(1);
|
|
29
28
|
await arr.push(2);
|
|
30
29
|
await arr.push(3);
|
|
31
|
-
expect(await length()).
|
|
32
|
-
expect(await arr.pop()).
|
|
33
|
-
expect(await arr.pop()).
|
|
34
|
-
expect(await arr.pop()).
|
|
35
|
-
expect(await arr.pop()).
|
|
30
|
+
expect(await length()).toBe(3);
|
|
31
|
+
expect(await arr.pop()).toBe(3);
|
|
32
|
+
expect(await arr.pop()).toBe(2);
|
|
33
|
+
expect(await arr.pop()).toBe(1);
|
|
34
|
+
expect(await arr.pop()).toBe(undefined);
|
|
36
35
|
});
|
|
37
36
|
it('should be able to get values by index', async ()=>{
|
|
38
37
|
await arr.push(1);
|
|
39
38
|
await arr.push(2);
|
|
40
39
|
await arr.push(3);
|
|
41
|
-
expect(await at(0)).
|
|
42
|
-
expect(await at(1)).
|
|
43
|
-
expect(await at(2)).
|
|
44
|
-
expect(await at(3)).
|
|
45
|
-
expect(await at(-1)).
|
|
46
|
-
expect(await at(-2)).
|
|
47
|
-
expect(await at(-3)).
|
|
48
|
-
expect(await at(-4)).
|
|
40
|
+
expect(await at(0)).toBe(1);
|
|
41
|
+
expect(await at(1)).toBe(2);
|
|
42
|
+
expect(await at(2)).toBe(3);
|
|
43
|
+
expect(await at(3)).toBe(undefined);
|
|
44
|
+
expect(await at(-1)).toBe(3);
|
|
45
|
+
expect(await at(-2)).toBe(2);
|
|
46
|
+
expect(await at(-3)).toBe(1);
|
|
47
|
+
expect(await at(-4)).toBe(undefined);
|
|
49
48
|
});
|
|
50
49
|
it('should be able to set values by index', async ()=>{
|
|
51
50
|
await arr.push(1);
|
|
52
51
|
await arr.push(2);
|
|
53
52
|
await arr.push(3);
|
|
54
|
-
expect(await arr.setAt(0, 4)).
|
|
55
|
-
expect(await arr.setAt(1, 5)).
|
|
56
|
-
expect(await arr.setAt(2, 6)).
|
|
57
|
-
expect(await arr.setAt(3, 7)).
|
|
58
|
-
expect(await at(0)).
|
|
59
|
-
expect(await at(1)).
|
|
60
|
-
expect(await at(2)).
|
|
61
|
-
expect(await at(3)).
|
|
62
|
-
expect(await arr.setAt(-1, 8)).
|
|
63
|
-
expect(await arr.setAt(-2, 9)).
|
|
64
|
-
expect(await arr.setAt(-3, 10)).
|
|
65
|
-
expect(await arr.setAt(-4, 11)).
|
|
66
|
-
expect(await at(-1)).
|
|
67
|
-
expect(await at(-2)).
|
|
68
|
-
expect(await at(-3)).
|
|
69
|
-
expect(await at(-4)).
|
|
53
|
+
expect(await arr.setAt(0, 4)).toBe(true);
|
|
54
|
+
expect(await arr.setAt(1, 5)).toBe(true);
|
|
55
|
+
expect(await arr.setAt(2, 6)).toBe(true);
|
|
56
|
+
expect(await arr.setAt(3, 7)).toBe(false);
|
|
57
|
+
expect(await at(0)).toBe(4);
|
|
58
|
+
expect(await at(1)).toBe(5);
|
|
59
|
+
expect(await at(2)).toBe(6);
|
|
60
|
+
expect(await at(3)).toBe(undefined);
|
|
61
|
+
expect(await arr.setAt(-1, 8)).toBe(true);
|
|
62
|
+
expect(await arr.setAt(-2, 9)).toBe(true);
|
|
63
|
+
expect(await arr.setAt(-3, 10)).toBe(true);
|
|
64
|
+
expect(await arr.setAt(-4, 11)).toBe(false);
|
|
65
|
+
expect(await at(-1)).toBe(8);
|
|
66
|
+
expect(await at(-2)).toBe(9);
|
|
67
|
+
expect(await at(-3)).toBe(10);
|
|
68
|
+
expect(await at(-4)).toBe(undefined);
|
|
70
69
|
});
|
|
71
70
|
it('should be able to iterate over values', async ()=>{
|
|
72
71
|
await arr.push(1);
|
|
73
72
|
await arr.push(2);
|
|
74
73
|
await arr.push(3);
|
|
75
|
-
expect(await values()).
|
|
74
|
+
expect(await values()).toEqual([
|
|
76
75
|
1,
|
|
77
76
|
2,
|
|
78
77
|
3
|
|
79
78
|
]);
|
|
80
|
-
expect(await entries()).
|
|
79
|
+
expect(await entries()).toEqual([
|
|
81
80
|
[
|
|
82
81
|
0,
|
|
83
82
|
1
|
|
@@ -97,8 +96,8 @@ export function describeAztecArray(testName, getStore, forceAsync = false) {
|
|
|
97
96
|
await arr.push(2);
|
|
98
97
|
await arr.push(3);
|
|
99
98
|
const arr2 = store.openArray('test');
|
|
100
|
-
expect(await length(arr2)).
|
|
101
|
-
expect(await values(arr2)).
|
|
99
|
+
expect(await length(arr2)).toBe(3);
|
|
100
|
+
expect(await values(arr2)).toEqual(await values());
|
|
102
101
|
});
|
|
103
102
|
});
|
|
104
103
|
}
|
|
@@ -6,5 +6,5 @@ export * from './store.js';
|
|
|
6
6
|
export * from './set.js';
|
|
7
7
|
export * from './multi_map.js';
|
|
8
8
|
export { mapRange } from './common.js';
|
|
9
|
-
export type { CustomRange, Range, StoreSize } from './common.js';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
export type { CustomRange, Key, Range, StoreSize } from './common.js';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLFlBQVksRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUMifQ==
|
|
@@ -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,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,WAAW,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,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { AztecAsyncKVStore, AztecKVStore } from './store.js';
|
|
2
2
|
export declare function describeAztecMap(testName: string, getStore: () => AztecKVStore | Promise<AztecAsyncKVStore>, forceAsync?: boolean): void;
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL21hcF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUdsRSx3QkFBZ0IsZ0JBQWdCLENBQzlCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFFBQVEsRUFBRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFDekQsVUFBVSxHQUFFLE9BQWUsUUEyTDVCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/map_test_suite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/map_test_suite.ts"],"names":[],"mappings":"AAIA,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,QA2L5B"}
|