@aztec/kv-store 0.0.1-commit.8c0b8ff → 0.0.1-commit.8cb2d04d8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dest/bench/shared_map_bench.d.ts +19 -0
  2. package/dest/bench/shared_map_bench.d.ts.map +1 -0
  3. package/dest/bench/shared_map_bench.js +91 -0
  4. package/dest/indexeddb/index.d.ts +2 -2
  5. package/dest/indexeddb/index.d.ts.map +1 -1
  6. package/dest/lmdb/index.d.ts +2 -2
  7. package/dest/lmdb/index.d.ts.map +1 -1
  8. package/dest/lmdb/store.d.ts +3 -3
  9. package/dest/lmdb/store.d.ts.map +1 -1
  10. package/dest/lmdb/store.js +12 -8
  11. package/dest/lmdb-v2/factory.d.ts +2 -2
  12. package/dest/lmdb-v2/factory.d.ts.map +1 -1
  13. package/dest/sqlite-opfs/array.d.ts +21 -0
  14. package/dest/sqlite-opfs/array.d.ts.map +1 -0
  15. package/dest/sqlite-opfs/array.js +128 -0
  16. package/dest/sqlite-opfs/index.d.ts +7 -0
  17. package/dest/sqlite-opfs/index.d.ts.map +1 -0
  18. package/dest/sqlite-opfs/index.js +13 -0
  19. package/dest/sqlite-opfs/map.d.ts +35 -0
  20. package/dest/sqlite-opfs/map.d.ts.map +1 -0
  21. package/dest/sqlite-opfs/map.js +163 -0
  22. package/dest/sqlite-opfs/messages.d.ts +58 -0
  23. package/dest/sqlite-opfs/messages.d.ts.map +1 -0
  24. package/dest/sqlite-opfs/messages.js +5 -0
  25. package/dest/sqlite-opfs/multi_map.d.ts +16 -0
  26. package/dest/sqlite-opfs/multi_map.d.ts.map +1 -0
  27. package/dest/sqlite-opfs/multi_map.js +67 -0
  28. package/dest/sqlite-opfs/set.d.ts +13 -0
  29. package/dest/sqlite-opfs/set.d.ts.map +1 -0
  30. package/dest/sqlite-opfs/set.js +19 -0
  31. package/dest/sqlite-opfs/singleton.d.ts +13 -0
  32. package/dest/sqlite-opfs/singleton.d.ts.map +1 -0
  33. package/dest/sqlite-opfs/singleton.js +48 -0
  34. package/dest/sqlite-opfs/store.d.ts +70 -0
  35. package/dest/sqlite-opfs/store.d.ts.map +1 -0
  36. package/dest/sqlite-opfs/store.js +242 -0
  37. package/dest/sqlite-opfs/worker.d.ts +2 -0
  38. package/dest/sqlite-opfs/worker.d.ts.map +1 -0
  39. package/dest/sqlite-opfs/worker.js +189 -0
  40. package/package.json +10 -8
  41. package/src/bench/shared_map_bench.ts +111 -0
  42. package/src/indexeddb/index.ts +1 -1
  43. package/src/lmdb/index.ts +1 -1
  44. package/src/lmdb/store.ts +12 -8
  45. package/src/lmdb-v2/factory.ts +1 -1
  46. package/src/sqlite-opfs/array.ts +124 -0
  47. package/src/sqlite-opfs/index.ts +27 -0
  48. package/src/sqlite-opfs/map.ts +163 -0
  49. package/src/sqlite-opfs/messages.ts +28 -0
  50. package/src/sqlite-opfs/multi_map.ts +74 -0
  51. package/src/sqlite-opfs/set.ts +29 -0
  52. package/src/sqlite-opfs/singleton.ts +48 -0
  53. package/src/sqlite-opfs/store.ts +248 -0
  54. package/src/sqlite-opfs/worker.ts +157 -0
  55. package/dest/config.d.ts +0 -17
  56. package/dest/config.d.ts.map +0 -1
  57. package/dest/config.js +0 -26
  58. 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 '../config.js';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleGVkZGIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpELHdCQUFzQixXQUFXLENBQy9CLElBQUksRUFBRSxNQUFNLEVBQ1osTUFBTSxFQUFFLGVBQWUsRUFDdkIsYUFBYSxHQUFFLE1BQU0sR0FBRyxTQUFxQixFQUM3QyxHQUFHLEdBQUUsTUFBaUMsZ0NBY3ZDO0FBRUQsd0JBQWdCLFlBQVksQ0FBQyxTQUFTLEdBQUUsT0FBZSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUVyRiJ9
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;AAElE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,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"}
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"}
@@ -1,5 +1,5 @@
1
1
  import { type Logger } from '@aztec/foundation/log';
2
- import type { DataStoreConfig } from '../config.js';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUlsRSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVDLHdCQUFnQixXQUFXLENBQ3pCLElBQUksRUFBRSxNQUFNLEVBQ1osTUFBTSxFQUFFLGVBQWUsRUFDdkIsYUFBYSxHQUFFLE1BQU0sR0FBRyxTQUFxQixFQUM3QyxHQUFHLEdBQUUsTUFBaUMsNENBa0J2QztBQUNEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsWUFBWSxDQUFDLFNBQVMsR0FBRSxPQUFlLEdBQUcsY0FBYyxDQUd2RSJ9
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUs5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFNUMsd0JBQWdCLFdBQVcsQ0FDekIsSUFBSSxFQUFFLE1BQU0sRUFDWixNQUFNLEVBQUUsZUFBZSxFQUN2QixhQUFhLEdBQUUsTUFBTSxHQUFHLFNBQXFCLEVBQzdDLEdBQUcsR0FBRSxNQUFpQyw0Q0FrQnZDO0FBQ0Q7Ozs7R0FJRztBQUNILHdCQUFnQixZQUFZLENBQUMsU0FBUyxHQUFFLE9BQWUsR0FBRyxjQUFjLENBR3ZFIn0=
@@ -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;AAIlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,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"}
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"}
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBaUIsS0FBSyxZQUFZLEVBQVEsTUFBTSxNQUFNLENBQUM7QUFJOUQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEYsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVE5RTs7R0FFRztBQUNILHFCQUFhLGNBQWUsWUFBVyxZQUFZLEVBQUUsaUJBQWlCOzthQVVsRCxXQUFXLEVBQUUsT0FBTztJQUNwQyxPQUFPLENBQUMsSUFBSTtJQVZkLFdBQVcsT0FBaUI7SUFPNUIsWUFDRSxNQUFNLEVBQUUsWUFBWSxFQUNKLFdBQVcsRUFBRSxPQUFPLEVBQzVCLElBQUksRUFBRSxNQUFNLEVBZXJCO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQ2IsU0FBUyxTQUFrQixFQUMzQixTQUFTLEdBQUUsT0FBZSxFQUMxQixHQUFHLHlDQUFnQyxHQUNsQyxjQUFjLENBT2hCO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBRTFGO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FFbkU7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUV6RztJQUVELFdBQVcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUUvRTtJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBRTNFO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBRXpFO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FFNUM7SUFFRDs7OztPQUlHO0lBQ0csZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBRWhFO0lBRUQ7O09BRUc7SUFDRyxLQUFLLGtCQUlWO0lBRUQ7O09BRUc7SUFDRyxJQUFJLGtCQUlUO0lBRUQ7O09BRUc7SUFDRyxLQUFLLGtCQUlWO0lBRUQsa0VBQWtFO0lBQzVELE1BQU0sa0JBT1g7SUFFRCxZQUFZLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQW9CakM7SUFFRCxPQUFPLENBQUMsaUJBQWlCO0lBNEJ6QixRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU1RDtDQUNGIn0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBaUIsS0FBSyxZQUFZLEVBQVEsTUFBTSxNQUFNLENBQUM7QUFJOUQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEYsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVE5RTs7R0FFRztBQUNILHFCQUFhLGNBQWUsWUFBVyxZQUFZLEVBQUUsaUJBQWlCOzthQVVsRCxXQUFXLEVBQUUsT0FBTztJQUNwQyxPQUFPLENBQUMsSUFBSTtJQVZkLFdBQVcsT0FBaUI7SUFPNUIsWUFDRSxNQUFNLEVBQUUsWUFBWSxFQUNKLFdBQVcsRUFBRSxPQUFPLEVBQzVCLElBQUksRUFBRSxNQUFNLEVBZXJCO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQ2IsU0FBUyxTQUFrQixFQUMzQixTQUFTLEdBQUUsT0FBZSxFQUMxQixHQUFHLHlDQUFnQyxHQUNsQyxjQUFjLENBT2hCO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBRTFGO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FFbkU7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUV6RztJQUVELFdBQVcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUUvRTtJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBRTNFO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBRXpFO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FFNUM7SUFFRDs7OztPQUlHO0lBQ0csZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBRWhFO0lBRUQ7O09BRUc7SUFDRyxLQUFLLGtCQU1WO0lBRUQ7O09BRUc7SUFDRyxJQUFJLGtCQU1UO0lBRUQ7O09BRUc7SUFDRyxLQUFLLGtCQUlWO0lBRUQsa0VBQWtFO0lBQzVELE1BQU0sa0JBT1g7SUFFRCxZQUFZLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQW9CakM7SUFFRCxPQUFPLENBQUMsaUJBQWlCO0lBNEJ6QixRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU1RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"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"}
@@ -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.#data.clearAsync();
122
- await this.#multiMapData.clearAsync();
123
- await this.#rootDb.clearAsync();
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.#data.drop();
129
- await this.#multiMapData.drop();
130
- await this.#rootDb.drop();
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 '../config.js';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBTzFFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJOUMsd0JBQXNCLFdBQVcsQ0FDL0IsSUFBSSxFQUFFLE1BQU0sRUFDWixhQUFhLEVBQUUsTUFBTSxFQUNyQixNQUFNLEVBQUUsZUFBZSxFQUN2QixRQUFRLENBQUMsRUFBRSxjQUFjLEdBQ3hCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQThCM0I7QUFFRCx3QkFBc0IsWUFBWSxDQUNoQyxJQUFJLEVBQUUsTUFBTSxFQUNaLFNBQVMsR0FBRSxPQUFjLEVBQ3pCLFdBQVcsU0FBcUIsRUFDaEMsVUFBVSxTQUFjLEVBQ3hCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsR0FDeEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBc0IzQjtBQUVELHdCQUFzQixXQUFXLENBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQ2YsV0FBVyxTQUFxQixFQUNoQyxVQUFVLFNBQWMsRUFDeEIsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUN4QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FJM0I7QUFFRCx3QkFBc0Isb0JBQW9CLENBQ3hDLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLGFBQWEsRUFBRSxVQUFVLEVBQ3pCLFdBQVcsU0FBcUIsRUFDaEMsVUFBVSxTQUFjLEVBQ3hCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsR0FDeEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBVTNCIn0=
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;AAO1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,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"}
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"}