@aztec/kv-store 0.0.1-commit.993d52e → 0.0.1-commit.9badcec54
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/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/index.d.ts +2 -2
- package/dest/indexeddb/index.d.ts.map +1 -1
- package/dest/lmdb/index.d.ts +2 -2
- package/dest/lmdb/index.d.ts.map +1 -1
- 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 +2 -2
- package/dest/lmdb-v2/factory.d.ts.map +1 -1
- 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/index.d.ts +7 -0
- package/dest/sqlite-opfs/index.d.ts.map +1 -0
- package/dest/sqlite-opfs/index.js +13 -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 +58 -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 +70 -0
- package/dest/sqlite-opfs/store.d.ts.map +1 -0
- package/dest/sqlite-opfs/store.js +242 -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 +189 -0
- package/package.json +10 -8
- package/src/bench/shared_map_bench.ts +111 -0
- package/src/indexeddb/index.ts +1 -1
- package/src/lmdb/index.ts +1 -1
- package/src/lmdb/store.ts +12 -8
- package/src/lmdb-v2/factory.ts +1 -1
- package/src/sqlite-opfs/array.ts +124 -0
- package/src/sqlite-opfs/index.ts +27 -0
- package/src/sqlite-opfs/map.ts +163 -0
- package/src/sqlite-opfs/messages.ts +28 -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 +248 -0
- package/src/sqlite-opfs/worker.ts +157 -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
|
@@ -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
|
+
}
|
|
@@ -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/lmdb/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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 { AztecLmdbStore } from './store.js';
|
|
4
4
|
export { AztecLmdbStore } from './store.js';
|
|
5
5
|
export declare function createStore(name: string, config: DataStoreConfig, schemaVersion?: number | undefined, log?: Logger): AztecLmdbStore | Promise<AztecLmdbStore>;
|
|
@@ -9,4 +9,4 @@ export declare function createStore(name: string, config: DataStoreConfig, schem
|
|
|
9
9
|
* @returns A new store
|
|
10
10
|
*/
|
|
11
11
|
export declare function openTmpStore(ephemeral?: boolean): AztecLmdbStore;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUs5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFNUMsd0JBQWdCLFdBQVcsQ0FDekIsSUFBSSxFQUFFLE1BQU0sRUFDWixNQUFNLEVBQUUsZUFBZSxFQUN2QixhQUFhLEdBQUUsTUFBTSxHQUFHLFNBQXFCLEVBQzdDLEdBQUcsR0FBRSxNQUFpQyw0Q0FrQnZDO0FBQ0Q7Ozs7R0FJRztBQUNILHdCQUFnQixZQUFZLENBQUMsU0FBUyxHQUFFLE9BQWUsR0FBRyxjQUFjLENBR3ZFIn0=
|
package/dest/lmdb/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lmdb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lmdb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,aAAa,GAAE,MAAM,GAAG,SAAqB,EAC7C,GAAG,GAAE,MAAiC,4CAkBvC;AACD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,GAAE,OAAe,GAAG,cAAc,CAGvE"}
|
package/dest/lmdb/store.d.ts
CHANGED
|
@@ -74,11 +74,11 @@ export declare class AztecLmdbStore implements AztecKVStore, AztecAsyncKVStore {
|
|
|
74
74
|
*/
|
|
75
75
|
transactionAsync<T>(callback: () => Promise<T>): Promise<T>;
|
|
76
76
|
/**
|
|
77
|
-
* Clears all entries in the store & sub DBs.
|
|
77
|
+
* Clears all entries in the store & sub DBs atomically within a single transaction.
|
|
78
78
|
*/
|
|
79
79
|
clear(): Promise<void>;
|
|
80
80
|
/**
|
|
81
|
-
* Drops the database & sub DBs.
|
|
81
|
+
* Drops the database & sub DBs atomically within a single transaction.
|
|
82
82
|
*/
|
|
83
83
|
drop(): Promise<void>;
|
|
84
84
|
/**
|
|
@@ -91,4 +91,4 @@ export declare class AztecLmdbStore implements AztecKVStore, AztecAsyncKVStore {
|
|
|
91
91
|
private estimateSubDBSize;
|
|
92
92
|
backupTo(_dstPath: string, _compact?: boolean): Promise<void>;
|
|
93
93
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBaUIsS0FBSyxZQUFZLEVBQVEsTUFBTSxNQUFNLENBQUM7QUFJOUQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEYsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVE5RTs7R0FFRztBQUNILHFCQUFhLGNBQWUsWUFBVyxZQUFZLEVBQUUsaUJBQWlCOzthQVVsRCxXQUFXLEVBQUUsT0FBTztJQUNwQyxPQUFPLENBQUMsSUFBSTtJQVZkLFdBQVcsT0FBaUI7SUFPNUIsWUFDRSxNQUFNLEVBQUUsWUFBWSxFQUNKLFdBQVcsRUFBRSxPQUFPLEVBQzVCLElBQUksRUFBRSxNQUFNLEVBZXJCO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQ2IsU0FBUyxTQUFrQixFQUMzQixTQUFTLEdBQUUsT0FBZSxFQUMxQixHQUFHLHlDQUFnQyxHQUNsQyxjQUFjLENBT2hCO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBRTFGO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FFbkU7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUV6RztJQUVELFdBQVcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUUvRTtJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBRTNFO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBRXpFO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FFNUM7SUFFRDs7OztPQUlHO0lBQ0csZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBRWhFO0lBRUQ7O09BRUc7SUFDRyxLQUFLLGtCQU1WO0lBRUQ7O09BRUc7SUFDRyxJQUFJLGtCQU1UO0lBRUQ7O09BRUc7SUFDRyxLQUFLLGtCQUlWO0lBRUQsa0VBQWtFO0lBQzVELE1BQU0sa0JBT1g7SUFFRCxZQUFZLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQW9CakM7SUFFRCxPQUFPLENBQUMsaUJBQWlCO0lBNEJ6QixRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU1RDtDQUNGIn0=
|
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;;aAUlD,WAAW,EAAE,OAAO;IACpC,OAAO,CAAC,IAAI;IAVd,WAAW,OAAiB;IAO5B,YACE,MAAM,EAAE,YAAY,EACJ,WAAW,EAAE,OAAO,EAC5B,IAAI,EAAE,MAAM,EAerB;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,SAAkB,EAC3B,SAAS,GAAE,OAAe,EAC1B,GAAG,yCAAgC,GAClC,cAAc,CAOhB;IAED;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAE1F;IAED;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAEnE;IAED;;;;OAIG;IACH,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAEzG;IAED,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAE/E;IAED;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAE3E;IAED;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAEzE;IAED;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE5C;IAED;;;;OAIG;IACG,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhE;IAED;;OAEG;IACG,KAAK,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"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"}
|
package/dest/lmdb/store.js
CHANGED
|
@@ -116,18 +116,22 @@ import { LmdbAztecSingleton } from './singleton.js';
|
|
|
116
116
|
return await this.#rootDb.transaction(callback);
|
|
117
117
|
}
|
|
118
118
|
/**
|
|
119
|
-
* Clears all entries in the store & sub DBs.
|
|
119
|
+
* Clears all entries in the store & sub DBs atomically within a single transaction.
|
|
120
120
|
*/ async clear() {
|
|
121
|
-
await this.#
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
await this.#rootDb.transaction(async ()=>{
|
|
122
|
+
await this.#data.clearAsync();
|
|
123
|
+
await this.#multiMapData.clearAsync();
|
|
124
|
+
await this.#rootDb.clearAsync();
|
|
125
|
+
});
|
|
124
126
|
}
|
|
125
127
|
/**
|
|
126
|
-
* Drops the database & sub DBs.
|
|
128
|
+
* Drops the database & sub DBs atomically within a single transaction.
|
|
127
129
|
*/ async drop() {
|
|
128
|
-
await this.#
|
|
129
|
-
|
|
130
|
-
|
|
130
|
+
await this.#rootDb.transaction(async ()=>{
|
|
131
|
+
await this.#data.drop();
|
|
132
|
+
await this.#multiMapData.drop();
|
|
133
|
+
await this.#rootDb.drop();
|
|
134
|
+
});
|
|
131
135
|
}
|
|
132
136
|
/**
|
|
133
137
|
* Close the database. Note, once this is closed we can no longer interact with the DB.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
2
|
import { type LoggerBindings } from '@aztec/foundation/log';
|
|
3
|
-
import type { DataStoreConfig } from '
|
|
3
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
4
4
|
import { AztecLMDBStoreV2 } from './store.js';
|
|
5
5
|
export declare function createStore(name: string, schemaVersion: number, config: DataStoreConfig, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
6
6
|
export declare function openTmpStore(name: string, ephemeral?: boolean, dbMapSizeKb?: number, maxReaders?: number, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
7
7
|
export declare function openStoreAt(dataDir: string, dbMapSizeKb?: number, maxReaders?: number, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
8
8
|
export declare function openVersionedStoreAt(dataDirectory: string, schemaVersion: number, rollupAddress: EthAddress, dbMapSizeKb?: number, maxReaders?: number, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRTFFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTTlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUk5Qyx3QkFBc0IsV0FBVyxDQUMvQixJQUFJLEVBQUUsTUFBTSxFQUNaLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLE1BQU0sRUFBRSxlQUFlLEVBQ3ZCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsR0FDeEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBOEIzQjtBQUVELHdCQUFzQixZQUFZLENBQ2hDLElBQUksRUFBRSxNQUFNLEVBQ1osU0FBUyxHQUFFLE9BQWMsRUFDekIsV0FBVyxTQUFxQixFQUNoQyxVQUFVLFNBQWMsRUFDeEIsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUN4QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FzQjNCO0FBRUQsd0JBQXNCLFdBQVcsQ0FDL0IsT0FBTyxFQUFFLE1BQU0sRUFDZixXQUFXLFNBQXFCLEVBQ2hDLFVBQVUsU0FBYyxFQUN4QixRQUFRLENBQUMsRUFBRSxjQUFjLEdBQ3hCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUkzQjtBQUVELHdCQUFzQixvQkFBb0IsQ0FDeEMsYUFBYSxFQUFFLE1BQU0sRUFDckIsYUFBYSxFQUFFLE1BQU0sRUFDckIsYUFBYSxFQUFFLFVBQVUsRUFDekIsV0FBVyxTQUFxQixFQUNoQyxVQUFVLFNBQWMsRUFDeEIsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUN4QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FVM0IifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI9C,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA8B3B;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAc,EACzB,WAAW,SAAqB,EAChC,UAAU,SAAc,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAsB3B;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,SAAqB,EAChC,UAAU,SAAc,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAI3B;AAED,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,UAAU,EACzB,WAAW,SAAqB,EAChC,UAAU,SAAc,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAU3B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AztecAsyncArray } from '../interfaces/array.js';
|
|
2
|
+
import type { Value } from '../interfaces/common.js';
|
|
3
|
+
import type { AztecSQLiteOPFSStore } from './store.js';
|
|
4
|
+
/**
|
|
5
|
+
* Persistent array backed by SQLite. Entries share a common `key` (the array name)
|
|
6
|
+
* and are ordered by `key_count`, which doubles as the 1-indexed slot number.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SQLiteOPFSAztecArray<T extends Value> implements AztecAsyncArray<T> {
|
|
9
|
+
#private;
|
|
10
|
+
private readonly store;
|
|
11
|
+
constructor(store: AztecSQLiteOPFSStore, name: string);
|
|
12
|
+
lengthAsync(): Promise<number>;
|
|
13
|
+
push(...vals: T[]): Promise<number>;
|
|
14
|
+
pop(): Promise<T | undefined>;
|
|
15
|
+
atAsync(index: number): Promise<T | undefined>;
|
|
16
|
+
setAt(index: number, val: T): Promise<boolean>;
|
|
17
|
+
entriesAsync(): AsyncIterableIterator<[number, T]>;
|
|
18
|
+
valuesAsync(): AsyncIterableIterator<T>;
|
|
19
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<T>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcWxpdGUtb3Bmcy9hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV2RDs7O0dBR0c7QUFDSCxxQkFBYSxvQkFBb0IsQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFFLFlBQVcsZUFBZSxDQUFDLENBQUMsQ0FBQzs7SUFNNUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBRHhCLFlBQ21CLEtBQUssRUFBRSxvQkFBb0IsRUFDNUMsSUFBSSxFQUFFLE1BQU0sRUFJYjtJQUVLLFdBQVcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBTW5DO0lBRUssSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FnQnhDO0lBRUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBWWxDO0lBRUssT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FTbkQ7SUFFSyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FjbkQ7SUFFTSxZQUFZLElBQUkscUJBQXFCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FZeEQ7SUFFTSxXQUFXLElBQUkscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBSTdDO0lBRUQsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUkscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBRWpEO0NBU0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/sqlite-opfs/array.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;GAGG;AACH,qBAAa,oBAAoB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;;IAM5E,OAAO,CAAC,QAAQ,CAAC,KAAK;IADxB,YACmB,KAAK,EAAE,oBAAoB,EAC5C,IAAI,EAAE,MAAM,EAIb;IAEK,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAMnC;IAEK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBxC;IAEK,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAYlC;IAEK,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CASnD;IAEK,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAcnD;IAEM,YAAY,IAAI,qBAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAYxD;IAEM,WAAW,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAI7C;IAED,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAEjD;CASF"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
var _computedKey;
|
|
2
|
+
import { Encoder } from 'msgpackr';
|
|
3
|
+
import { hash } from 'ohash';
|
|
4
|
+
import { toBufferKey } from 'ordered-binary';
|
|
5
|
+
_computedKey = Symbol.asyncIterator;
|
|
6
|
+
/**
|
|
7
|
+
* Persistent array backed by SQLite. Entries share a common `key` (the array name)
|
|
8
|
+
* and are ordered by `key_count`, which doubles as the 1-indexed slot number.
|
|
9
|
+
*/ export class SQLiteOPFSAztecArray {
|
|
10
|
+
store;
|
|
11
|
+
#name;
|
|
12
|
+
#container;
|
|
13
|
+
#encoder;
|
|
14
|
+
constructor(store, name){
|
|
15
|
+
this.store = store;
|
|
16
|
+
this.#encoder = new Encoder();
|
|
17
|
+
this.#name = name;
|
|
18
|
+
this.#container = `array:${name}`;
|
|
19
|
+
}
|
|
20
|
+
async lengthAsync() {
|
|
21
|
+
const rows = await this.store.allAsync('SELECT COUNT(*) FROM data WHERE container = ? AND key = ?', [
|
|
22
|
+
this.#container,
|
|
23
|
+
this.#encodedKey()
|
|
24
|
+
]);
|
|
25
|
+
return Number(rows[0]?.[0] ?? 0);
|
|
26
|
+
}
|
|
27
|
+
async push(...vals) {
|
|
28
|
+
if (vals.length === 0) {
|
|
29
|
+
return this.lengthAsync();
|
|
30
|
+
}
|
|
31
|
+
return await this.store.transactionAsync(async ()=>{
|
|
32
|
+
let length = await this.lengthAsync();
|
|
33
|
+
for (const val of vals){
|
|
34
|
+
await this.store.runAsync(`INSERT INTO data (slot, container, key, key_count, hash, value)
|
|
35
|
+
VALUES (?, ?, ?, ?, ?, ?)`, [
|
|
36
|
+
this.#slot(length),
|
|
37
|
+
this.#container,
|
|
38
|
+
this.#encodedKey(),
|
|
39
|
+
length + 1,
|
|
40
|
+
hash(val),
|
|
41
|
+
this.#encoder.pack(val)
|
|
42
|
+
]);
|
|
43
|
+
length += 1;
|
|
44
|
+
}
|
|
45
|
+
return length;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async pop() {
|
|
49
|
+
return await this.store.transactionAsync(async ()=>{
|
|
50
|
+
const length = await this.lengthAsync();
|
|
51
|
+
if (length === 0) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
const slot = this.#slot(length - 1);
|
|
55
|
+
const rows = await this.store.allAsync('SELECT value FROM data WHERE slot = ? LIMIT 1', [
|
|
56
|
+
slot
|
|
57
|
+
]);
|
|
58
|
+
await this.store.runAsync('DELETE FROM data WHERE slot = ?', [
|
|
59
|
+
slot
|
|
60
|
+
]);
|
|
61
|
+
const raw = rows[0]?.[0];
|
|
62
|
+
return raw instanceof Uint8Array ? this.#encoder.unpack(raw) : undefined;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async atAsync(index) {
|
|
66
|
+
const length = await this.lengthAsync();
|
|
67
|
+
const resolved = index < 0 ? length + index : index;
|
|
68
|
+
if (resolved < 0 || resolved >= length) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
const rows = await this.store.allAsync('SELECT value FROM data WHERE slot = ? LIMIT 1', [
|
|
72
|
+
this.#slot(resolved)
|
|
73
|
+
]);
|
|
74
|
+
const raw = rows[0]?.[0];
|
|
75
|
+
return raw instanceof Uint8Array ? this.#encoder.unpack(raw) : undefined;
|
|
76
|
+
}
|
|
77
|
+
async setAt(index, val) {
|
|
78
|
+
return await this.store.transactionAsync(async ()=>{
|
|
79
|
+
const length = await this.lengthAsync();
|
|
80
|
+
const resolved = index < 0 ? length + index : index;
|
|
81
|
+
if (resolved < 0 || resolved >= length) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
await this.store.runAsync(`INSERT OR REPLACE INTO data (slot, container, key, key_count, hash, value)
|
|
85
|
+
VALUES (?, ?, ?, ?, ?, ?)`, [
|
|
86
|
+
this.#slot(resolved),
|
|
87
|
+
this.#container,
|
|
88
|
+
this.#encodedKey(),
|
|
89
|
+
resolved + 1,
|
|
90
|
+
hash(val),
|
|
91
|
+
this.#encoder.pack(val)
|
|
92
|
+
]);
|
|
93
|
+
return true;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async *entriesAsync() {
|
|
97
|
+
const rows = await this.store.allAsync('SELECT key_count, value FROM data WHERE container = ? AND key = ? ORDER BY key_count ASC', [
|
|
98
|
+
this.#container,
|
|
99
|
+
this.#encodedKey()
|
|
100
|
+
]);
|
|
101
|
+
for (const row of rows){
|
|
102
|
+
const keyCount = Number(row[0]);
|
|
103
|
+
const raw = row[1];
|
|
104
|
+
if (raw instanceof Uint8Array) {
|
|
105
|
+
yield [
|
|
106
|
+
keyCount - 1,
|
|
107
|
+
this.#encoder.unpack(raw)
|
|
108
|
+
];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async *valuesAsync() {
|
|
113
|
+
for await (const [, val] of this.entriesAsync()){
|
|
114
|
+
yield val;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
[_computedKey]() {
|
|
118
|
+
return this.valuesAsync();
|
|
119
|
+
}
|
|
120
|
+
#encodedKey() {
|
|
121
|
+
return toBufferKey([
|
|
122
|
+
this.#name
|
|
123
|
+
]);
|
|
124
|
+
}
|
|
125
|
+
#slot(index) {
|
|
126
|
+
return `array:${this.#name}:slot:${index}`;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
2
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
3
|
+
import { AztecSQLiteOPFSStore } from './store.js';
|
|
4
|
+
export { AztecSQLiteOPFSStore } from './store.js';
|
|
5
|
+
export declare function createStore(name: string, config: DataStoreConfig, schemaVersion?: number | undefined, log?: Logger): Promise<AztecSQLiteOPFSStore>;
|
|
6
|
+
export declare function openTmpStore(ephemeral?: boolean): Promise<AztecSQLiteOPFSStore>;
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcWxpdGUtb3Bmcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWxELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVsRCx3QkFBc0IsV0FBVyxDQUMvQixJQUFJLEVBQUUsTUFBTSxFQUNaLE1BQU0sRUFBRSxlQUFlLEVBQ3ZCLGFBQWEsR0FBRSxNQUFNLEdBQUcsU0FBcUIsRUFDN0MsR0FBRyxHQUFFLE1BQWlDLGlDQVV2QztBQUVELHdCQUFnQixZQUFZLENBQUMsU0FBUyxHQUFFLE9BQWUsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FFdEYifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sqlite-opfs/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,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,aAAa,GAAE,MAAM,GAAG,SAAqB,EAC7C,GAAG,GAAE,MAAiC,iCAUvC;AAED,wBAAgB,YAAY,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEtF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { initStoreForRollupAndSchemaVersion } from '../utils.js';
|
|
3
|
+
import { AztecSQLiteOPFSStore } from './store.js';
|
|
4
|
+
export { AztecSQLiteOPFSStore } from './store.js';
|
|
5
|
+
export async function createStore(name, config, schemaVersion = undefined, log = createLogger('kv-store')) {
|
|
6
|
+
const { dataDirectory } = config;
|
|
7
|
+
log.info(dataDirectory ? `Creating ${name} SQLite-OPFS data store with map size ${config.dataStoreMapSizeKb} KB` : `Creating ${name} ephemeral SQLite-OPFS data store with map size ${config.dataStoreMapSizeKb} KB`);
|
|
8
|
+
const store = await AztecSQLiteOPFSStore.open(createLogger('kv-store:sqlite-opfs'), name, false);
|
|
9
|
+
return initStoreForRollupAndSchemaVersion(store, schemaVersion, config.l1Contracts?.rollupAddress, log);
|
|
10
|
+
}
|
|
11
|
+
export function openTmpStore(ephemeral = false) {
|
|
12
|
+
return AztecSQLiteOPFSStore.open(createLogger('kv-store:sqlite-opfs'), undefined, ephemeral);
|
|
13
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
|
+
import { Encoder } from 'msgpackr';
|
|
3
|
+
import type { Key, Range, Value } from '../interfaces/common.js';
|
|
4
|
+
import type { AztecAsyncMap } from '../interfaces/map.js';
|
|
5
|
+
import type { SqlValue } from './messages.js';
|
|
6
|
+
import type { AztecSQLiteOPFSStore } from './store.js';
|
|
7
|
+
/** A map backed by SQLite in OPFS. Mirrors `IndexedDBAztecMap`. */
|
|
8
|
+
export declare class SQLiteOPFSAztecMap<K extends Key, V extends Value> implements AztecAsyncMap<K, V> {
|
|
9
|
+
protected readonly store: AztecSQLiteOPFSStore;
|
|
10
|
+
protected readonly name: string;
|
|
11
|
+
protected readonly container: string;
|
|
12
|
+
protected readonly encoder: Encoder;
|
|
13
|
+
constructor(store: AztecSQLiteOPFSStore, mapName: string);
|
|
14
|
+
getAsync(key: K): Promise<V | undefined>;
|
|
15
|
+
hasAsync(key: K): Promise<boolean>;
|
|
16
|
+
sizeAsync(): Promise<number>;
|
|
17
|
+
set(key: K, val: V): Promise<void>;
|
|
18
|
+
setMany(entries: {
|
|
19
|
+
key: K;
|
|
20
|
+
value: V;
|
|
21
|
+
}[]): Promise<void>;
|
|
22
|
+
swap(_key: K, _fn: (val: V | undefined) => V): Promise<void>;
|
|
23
|
+
setIfNotExists(key: K, val: V): Promise<boolean>;
|
|
24
|
+
delete(key: K): Promise<void>;
|
|
25
|
+
entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]>;
|
|
26
|
+
valuesAsync(range?: Range<K>): AsyncIterableIterator<V>;
|
|
27
|
+
keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
|
|
28
|
+
protected rangeQuery(range: Range<K>): Promise<Array<[string, Uint8Array, Uint8Array | null]>>;
|
|
29
|
+
protected decodeValue(val: SqlValue): V;
|
|
30
|
+
protected decodeKey(raw: Uint8Array): K;
|
|
31
|
+
protected encodedKey(key: K): Buffer;
|
|
32
|
+
protected normalizeKey(key: K): (string | number | Uint8Array)[];
|
|
33
|
+
protected slot(key: K, index?: number): string;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3FsaXRlLW9wZnMvbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUluQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV2RCxtRUFBbUU7QUFDbkUscUJBQWEsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxDQUFFLFlBQVcsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFNMUYsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CO0lBTGhELFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNoQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDckMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLFVBQWlCO0lBRTNDLFlBQ3FCLEtBQUssRUFBRSxvQkFBb0IsRUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFJaEI7SUFFSyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQU83QztJQUVLLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FHdkM7SUFFSyxTQUFTLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUdqQztJQUVLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU12QztJQUVLLE9BQU8sQ0FBQyxPQUFPLEVBQUU7UUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtLQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBUzVEO0lBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxTQUFTLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFM0Q7SUFFSyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FRckQ7SUFFSyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRWxDO0lBRU0sWUFBWSxDQUFDLEtBQUssR0FBRSxLQUFLLENBQUMsQ0FBQyxDQUFNLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FTdkU7SUFFTSxXQUFXLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJakU7SUFFTSxTQUFTLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJL0Q7SUFFRCxVQUFnQixVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQXVCbkc7SUFFRCxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxRQUFRLEdBQUcsQ0FBQyxDQWF0QztJQUVELFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFVBQVUsR0FBRyxDQUFDLENBTXRDO0lBRUQsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FFbkM7SUFFRCxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBRS9EO0lBRUQsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRSxNQUFVLEdBQUcsTUFBTSxDQUVoRDtDQUNGIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/sqlite-opfs/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAInC,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,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,mEAAmE;AACnE,qBAAa,kBAAkB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAM1F,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB;IALhD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,UAAiB;IAE3C,YACqB,KAAK,EAAE,oBAAoB,EAC9C,OAAO,EAAE,MAAM,EAIhB;IAEK,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAO7C;IAEK,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvC;IAEK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAGjC;IAEK,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvC;IAEK,OAAO,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5D;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,CAQrD;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,CASvE;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,UAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAuBnG;IAED,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,CAatC;IAED,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAMtC;IAED,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAEnC;IAED,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"}
|