@aztec/kv-store 0.0.1-commit.b655e406 → 0.0.1-commit.b9865e97

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 (193) hide show
  1. package/README.md +8 -1
  2. package/dest/bench/shared_map_bench.d.ts +19 -0
  3. package/dest/bench/shared_map_bench.d.ts.map +1 -0
  4. package/dest/bench/shared_map_bench.js +91 -0
  5. package/dest/indexeddb/array.d.ts +1 -1
  6. package/dest/indexeddb/array.d.ts.map +1 -1
  7. package/dest/indexeddb/array.js +21 -7
  8. package/dest/indexeddb/index.d.ts +3 -3
  9. package/dest/indexeddb/index.d.ts.map +1 -1
  10. package/dest/indexeddb/index.js +3 -6
  11. package/dest/indexeddb/map.d.ts +8 -2
  12. package/dest/indexeddb/map.d.ts.map +1 -1
  13. package/dest/indexeddb/map.js +23 -13
  14. package/dest/indexeddb/multi_map.d.ts +3 -1
  15. package/dest/indexeddb/multi_map.d.ts.map +1 -1
  16. package/dest/indexeddb/multi_map.js +30 -1
  17. package/dest/indexeddb/set.d.ts +1 -1
  18. package/dest/indexeddb/set.d.ts.map +1 -1
  19. package/dest/indexeddb/singleton.d.ts +1 -1
  20. package/dest/indexeddb/singleton.d.ts.map +1 -1
  21. package/dest/indexeddb/singleton.js +3 -1
  22. package/dest/indexeddb/store.d.ts +3 -3
  23. package/dest/indexeddb/store.d.ts.map +1 -1
  24. package/dest/indexeddb/store.js +6 -4
  25. package/dest/interfaces/array.d.ts +1 -1
  26. package/dest/interfaces/array_test_suite.d.ts +1 -1
  27. package/dest/interfaces/array_test_suite.d.ts.map +1 -1
  28. package/dest/interfaces/array_test_suite.js +33 -34
  29. package/dest/interfaces/common.d.ts +1 -1
  30. package/dest/interfaces/counter.d.ts +1 -1
  31. package/dest/interfaces/index.d.ts +2 -2
  32. package/dest/interfaces/index.d.ts.map +1 -1
  33. package/dest/interfaces/map.d.ts +1 -1
  34. package/dest/interfaces/map_test_suite.d.ts +1 -1
  35. package/dest/interfaces/map_test_suite.d.ts.map +1 -1
  36. package/dest/interfaces/map_test_suite.js +74 -29
  37. package/dest/interfaces/multi_map.d.ts +7 -1
  38. package/dest/interfaces/multi_map.d.ts.map +1 -1
  39. package/dest/interfaces/multi_map_test_suite.d.ts +1 -1
  40. package/dest/interfaces/multi_map_test_suite.d.ts.map +1 -1
  41. package/dest/interfaces/multi_map_test_suite.js +154 -36
  42. package/dest/interfaces/set.d.ts +1 -1
  43. package/dest/interfaces/set_test_suite.d.ts +1 -1
  44. package/dest/interfaces/set_test_suite.d.ts.map +1 -1
  45. package/dest/interfaces/set_test_suite.js +13 -14
  46. package/dest/interfaces/singleton.d.ts +1 -1
  47. package/dest/interfaces/singleton_test_suite.d.ts +1 -1
  48. package/dest/interfaces/singleton_test_suite.d.ts.map +1 -1
  49. package/dest/interfaces/singleton_test_suite.js +6 -7
  50. package/dest/interfaces/store.d.ts +1 -1
  51. package/dest/interfaces/utils.d.ts +2 -1
  52. package/dest/interfaces/utils.d.ts.map +1 -1
  53. package/dest/interfaces/utils.js +2 -1
  54. package/dest/lmdb/array.d.ts +1 -1
  55. package/dest/lmdb/array.d.ts.map +1 -1
  56. package/dest/lmdb/array.js +4 -2
  57. package/dest/lmdb/counter.d.ts +1 -1
  58. package/dest/lmdb/counter.d.ts.map +1 -1
  59. package/dest/lmdb/index.d.ts +3 -3
  60. package/dest/lmdb/index.d.ts.map +1 -1
  61. package/dest/lmdb/index.js +4 -4
  62. package/dest/lmdb/map.d.ts +1 -1
  63. package/dest/lmdb/map.d.ts.map +1 -1
  64. package/dest/lmdb/multi_map.d.ts +2 -1
  65. package/dest/lmdb/multi_map.d.ts.map +1 -1
  66. package/dest/lmdb/multi_map.js +15 -0
  67. package/dest/lmdb/set.d.ts +1 -1
  68. package/dest/lmdb/set.d.ts.map +1 -1
  69. package/dest/lmdb/singleton.d.ts +1 -1
  70. package/dest/lmdb/singleton.d.ts.map +1 -1
  71. package/dest/lmdb/store.d.ts +4 -5
  72. package/dest/lmdb/store.d.ts.map +1 -1
  73. package/dest/lmdb/store.js +13 -9
  74. package/dest/lmdb-v2/array.d.ts +2 -2
  75. package/dest/lmdb-v2/array.d.ts.map +1 -1
  76. package/dest/lmdb-v2/array.js +4 -3
  77. package/dest/lmdb-v2/factory.d.ts +32 -10
  78. package/dest/lmdb-v2/factory.d.ts.map +1 -1
  79. package/dest/lmdb-v2/factory.js +71 -16
  80. package/dest/lmdb-v2/index.d.ts +1 -1
  81. package/dest/lmdb-v2/map.d.ts +2 -2
  82. package/dest/lmdb-v2/map.d.ts.map +1 -1
  83. package/dest/lmdb-v2/map.js +1 -2
  84. package/dest/lmdb-v2/message.d.ts +1 -1
  85. package/dest/lmdb-v2/multi_map.d.ts +3 -2
  86. package/dest/lmdb-v2/multi_map.d.ts.map +1 -1
  87. package/dest/lmdb-v2/multi_map.js +11 -1
  88. package/dest/lmdb-v2/read_transaction.d.ts +1 -1
  89. package/dest/lmdb-v2/read_transaction.d.ts.map +1 -1
  90. package/dest/lmdb-v2/read_transaction.js +21 -19
  91. package/dest/lmdb-v2/set.d.ts +1 -1
  92. package/dest/lmdb-v2/set.d.ts.map +1 -1
  93. package/dest/lmdb-v2/singleton.d.ts +2 -2
  94. package/dest/lmdb-v2/singleton.d.ts.map +1 -1
  95. package/dest/lmdb-v2/singleton.js +1 -2
  96. package/dest/lmdb-v2/store.d.ts +4 -5
  97. package/dest/lmdb-v2/store.d.ts.map +1 -1
  98. package/dest/lmdb-v2/store.js +6 -28
  99. package/dest/lmdb-v2/tx-helpers.d.ts +6 -0
  100. package/dest/lmdb-v2/tx-helpers.d.ts.map +1 -0
  101. package/dest/lmdb-v2/tx-helpers.js +21 -0
  102. package/dest/lmdb-v2/utils.d.ts +1 -10
  103. package/dest/lmdb-v2/utils.d.ts.map +1 -1
  104. package/dest/lmdb-v2/utils.js +0 -94
  105. package/dest/lmdb-v2/write_transaction.d.ts +1 -1
  106. package/dest/lmdb-v2/write_transaction.d.ts.map +1 -1
  107. package/dest/lmdb-v2/write_transaction.js +9 -5
  108. package/dest/sqlite-opfs/array.d.ts +21 -0
  109. package/dest/sqlite-opfs/array.d.ts.map +1 -0
  110. package/dest/sqlite-opfs/array.js +128 -0
  111. package/dest/sqlite-opfs/errors.d.ts +27 -0
  112. package/dest/sqlite-opfs/errors.d.ts.map +1 -0
  113. package/dest/sqlite-opfs/errors.js +34 -0
  114. package/dest/sqlite-opfs/index.d.ts +16 -0
  115. package/dest/sqlite-opfs/index.d.ts.map +1 -0
  116. package/dest/sqlite-opfs/index.js +22 -0
  117. package/dest/sqlite-opfs/internal/ordered-binary-browser.d.ts +32 -0
  118. package/dest/sqlite-opfs/internal/ordered-binary-browser.d.ts.map +1 -0
  119. package/dest/sqlite-opfs/internal/ordered-binary-browser.js +448 -0
  120. package/dest/sqlite-opfs/map.d.ts +35 -0
  121. package/dest/sqlite-opfs/map.d.ts.map +1 -0
  122. package/dest/sqlite-opfs/map.js +163 -0
  123. package/dest/sqlite-opfs/messages.d.ts +66 -0
  124. package/dest/sqlite-opfs/messages.d.ts.map +1 -0
  125. package/dest/sqlite-opfs/messages.js +5 -0
  126. package/dest/sqlite-opfs/multi_map.d.ts +16 -0
  127. package/dest/sqlite-opfs/multi_map.d.ts.map +1 -0
  128. package/dest/sqlite-opfs/multi_map.js +67 -0
  129. package/dest/sqlite-opfs/set.d.ts +13 -0
  130. package/dest/sqlite-opfs/set.d.ts.map +1 -0
  131. package/dest/sqlite-opfs/set.js +19 -0
  132. package/dest/sqlite-opfs/singleton.d.ts +13 -0
  133. package/dest/sqlite-opfs/singleton.d.ts.map +1 -0
  134. package/dest/sqlite-opfs/singleton.js +48 -0
  135. package/dest/sqlite-opfs/store.d.ts +79 -0
  136. package/dest/sqlite-opfs/store.d.ts.map +1 -0
  137. package/dest/sqlite-opfs/store.js +281 -0
  138. package/dest/sqlite-opfs/worker.d.ts +2 -0
  139. package/dest/sqlite-opfs/worker.d.ts.map +1 -0
  140. package/dest/sqlite-opfs/worker.js +249 -0
  141. package/dest/stores/index.d.ts +1 -1
  142. package/dest/stores/l2_tips_store.d.ts +25 -10
  143. package/dest/stores/l2_tips_store.d.ts.map +1 -1
  144. package/dest/stores/l2_tips_store.js +62 -53
  145. package/dest/utils.d.ts +9 -6
  146. package/dest/utils.d.ts.map +1 -1
  147. package/dest/utils.js +51 -16
  148. package/package.json +33 -26
  149. package/src/bench/shared_map_bench.ts +111 -0
  150. package/src/indexeddb/array.ts +4 -4
  151. package/src/indexeddb/index.ts +9 -7
  152. package/src/indexeddb/map.ts +24 -11
  153. package/src/indexeddb/multi_map.ts +27 -1
  154. package/src/indexeddb/singleton.ts +1 -1
  155. package/src/indexeddb/store.ts +13 -6
  156. package/src/interfaces/array_test_suite.ts +33 -35
  157. package/src/interfaces/index.ts +1 -1
  158. package/src/interfaces/map_test_suite.ts +56 -30
  159. package/src/interfaces/multi_map.ts +7 -0
  160. package/src/interfaces/multi_map_test_suite.ts +167 -37
  161. package/src/interfaces/set_test_suite.ts +13 -15
  162. package/src/interfaces/singleton_test_suite.ts +6 -8
  163. package/src/interfaces/utils.ts +1 -0
  164. package/src/lmdb/index.ts +10 -5
  165. package/src/lmdb/multi_map.ts +16 -0
  166. package/src/lmdb/store.ts +13 -9
  167. package/src/lmdb-v2/array.ts +2 -2
  168. package/src/lmdb-v2/factory.ts +93 -19
  169. package/src/lmdb-v2/map.ts +2 -2
  170. package/src/lmdb-v2/multi_map.ts +10 -1
  171. package/src/lmdb-v2/read_transaction.ts +23 -23
  172. package/src/lmdb-v2/singleton.ts +2 -2
  173. package/src/lmdb-v2/store.ts +9 -33
  174. package/src/lmdb-v2/tx-helpers.ts +29 -0
  175. package/src/lmdb-v2/utils.ts +0 -118
  176. package/src/lmdb-v2/write_transaction.ts +9 -8
  177. package/src/sqlite-opfs/array.ts +124 -0
  178. package/src/sqlite-opfs/errors.ts +44 -0
  179. package/src/sqlite-opfs/index.ts +39 -0
  180. package/src/sqlite-opfs/internal/ordered-binary-browser.js +465 -0
  181. package/src/sqlite-opfs/map.ts +163 -0
  182. package/src/sqlite-opfs/messages.ts +39 -0
  183. package/src/sqlite-opfs/multi_map.ts +74 -0
  184. package/src/sqlite-opfs/set.ts +29 -0
  185. package/src/sqlite-opfs/singleton.ts +48 -0
  186. package/src/sqlite-opfs/store.ts +296 -0
  187. package/src/sqlite-opfs/worker.ts +231 -0
  188. package/src/stores/l2_tips_store.ts +66 -56
  189. package/src/utils.ts +79 -21
  190. package/dest/config.d.ts +0 -17
  191. package/dest/config.d.ts.map +0 -1
  192. package/dest/config.js +0 -26
  193. 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. The only supported backend right now is LMDB by using the [`lmdb-js` package](https://github.com/kriszyp/lmdb-js).
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
+ }
@@ -19,4 +19,4 @@ export declare class IndexedDBAztecArray<T extends Value> implements AztecAsyncA
19
19
  valuesAsync(): AsyncIterableIterator<T>;
20
20
  [Symbol.asyncIterator](): AsyncIterableIterator<T>;
21
21
  }
22
- //# sourceMappingURL=array.d.ts.map
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleGVkZGIvYXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUd6RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxxQkFBYSxtQkFBbUIsQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFFLFlBQVcsZUFBZSxDQUFDLENBQUMsQ0FBQzs7SUFNN0UsWUFBWSxNQUFNLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBSTdEO0lBRUQsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEdBQUcsU0FBUyxFQUVwRjtJQUVELElBQUksRUFBRSxJQUFJLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBRXZFO0lBRUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FNbkM7SUFFSyxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQWN4QztJQUVLLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQVdsQztJQUVLLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBU25EO0lBRUssS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBb0JuRDtJQUVNLFlBQVksSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQU14RDtJQUVNLFdBQVcsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJN0M7SUFFRCxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FFakQ7Q0FLRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/indexeddb/array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;;gBAMjE,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM;IAM9D,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,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAQ9B,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBnC,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAa7B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAW9C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB7C,YAAY,IAAI,qBAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAQlD,WAAW,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAM9C,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;CAOnD"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/indexeddb/array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;;IAM7E,YAAY,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAI7D;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,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAMnC;IAEK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAcxC;IAEK,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAWlC;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,CAoBnD;IAEM,YAAY,IAAI,qBAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAMxD;IAEM,WAAW,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAI7C;IAED,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAEjD;CAKF"}
@@ -1,4 +1,6 @@
1
+ var _computedKey;
1
2
  import { hash } from 'ohash';
3
+ _computedKey = Symbol.asyncIterator;
2
4
  /**
3
5
  * A persistent array backed by IndexedDB.
4
6
  */ export class IndexedDBAztecArray {
@@ -20,10 +22,14 @@ import { hash } from 'ohash';
20
22
  async lengthAsync() {
21
23
  return await this.db.index('key').count(IDBKeyRange.bound([
22
24
  this.#container,
23
- this.#name
25
+ [
26
+ this.#name
27
+ ]
24
28
  ], [
25
29
  this.#container,
26
- this.#name
30
+ [
31
+ this.#name
32
+ ]
27
33
  ])) ?? 0;
28
34
  }
29
35
  async push(...vals) {
@@ -33,7 +39,9 @@ import { hash } from 'ohash';
33
39
  value: val,
34
40
  hash: hash(val),
35
41
  container: this.#container,
36
- key: this.#name,
42
+ key: [
43
+ this.#name
44
+ ],
37
45
  keyCount: length + 1,
38
46
  slot: this.#slot(length)
39
47
  });
@@ -71,7 +79,9 @@ import { hash } from 'ohash';
71
79
  value: val,
72
80
  hash: hash(val),
73
81
  container: this.#container,
74
- key: this.#name,
82
+ key: [
83
+ this.#name
84
+ ],
75
85
  keyCount: index + 1,
76
86
  slot: this.#slot(index)
77
87
  });
@@ -81,10 +91,14 @@ import { hash } from 'ohash';
81
91
  const index = this.db.index('key');
82
92
  const rangeQuery = IDBKeyRange.bound([
83
93
  this.#container,
84
- this.#name
94
+ [
95
+ this.#name
96
+ ]
85
97
  ], [
86
98
  this.#container,
87
- this.#name
99
+ [
100
+ this.#name
101
+ ]
88
102
  ]);
89
103
  for await (const cursor of index.iterate(rangeQuery)){
90
104
  yield [
@@ -98,7 +112,7 @@ import { hash } from 'ohash';
98
112
  yield value;
99
113
  }
100
114
  }
101
- [Symbol.asyncIterator]() {
115
+ [_computedKey]() {
102
116
  return this.valuesAsync();
103
117
  }
104
118
  #slot(index) {
@@ -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
- export declare function createStore(name: string, config: DataStoreConfig, log?: Logger): Promise<AztecIndexedDBStore>;
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=index.d.ts.map
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,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,GAAE,MAAiC,gCAgB9G;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,18 +1,15 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
- import { initStoreForRollup } from '../utils.js';
2
+ import { initStoreForRollupAndSchemaVersion } from '../utils.js';
3
3
  import { AztecIndexedDBStore } from './store.js';
4
4
  export { AztecIndexedDBStore } from './store.js';
5
- export async function createStore(name, config, log = createLogger('kv-store')) {
5
+ export async function createStore(name, config, schemaVersion = undefined, log = createLogger('kv-store')) {
6
6
  let { dataDirectory } = config;
7
7
  if (typeof dataDirectory !== 'undefined') {
8
8
  dataDirectory = `${dataDirectory}/${name}`;
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
- if (config.l1Contracts?.rollupAddress) {
13
- return initStoreForRollup(store, config.l1Contracts.rollupAddress, log);
14
- }
15
- return store;
12
+ return initStoreForRollupAndSchemaVersion(store, schemaVersion, config.rollupAddress, log);
16
13
  }
17
14
  export function openTmpStore(ephemeral = false) {
18
15
  return AztecIndexedDBStore.open(createLogger('kv-store:indexeddb'), undefined, ephemeral);
@@ -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
- protected normalizeKey(key: K): string;
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=map.d.ts.map
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;gBAKhB,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM;IAMjE,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;IAKxC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAM5B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlC,OAAO,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7D,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAQhD,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5B,YAAY,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAkBjE,WAAW,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAM3D,SAAS,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAWhE,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;IAKtC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM;CAGlD"}
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"}
@@ -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?.value;
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
- '\uffff'
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
- range.start ? this.normalizeKey(range.start) : ''
73
+ startKey
72
74
  ], [
73
75
  this.container,
74
- range.end ? this.normalizeKey(range.end) : '\uffff'
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
- const denormalizedKey = key.split(',').map((part)=>part.startsWith('n_') ? Number(part.slice(2)) : part);
100
- return denormalizedKey.length > 1 ? denormalizedKey : denormalizedKey[0];
111
+ return key.length > 1 ? key : key[0];
101
112
  }
102
113
  normalizeKey(key) {
103
- const arrayKey = Array.isArray(key) ? key : [
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}`;
@@ -7,6 +7,8 @@ import { IndexedDBAztecMap } from './map.js';
7
7
  export declare class IndexedDBAztecMultiMap<K extends Key, V extends Value> extends IndexedDBAztecMap<K, V> implements AztecAsyncMultiMap<K, V> {
8
8
  set(key: K, val: V): Promise<void>;
9
9
  getValuesAsync(key: K): AsyncIterableIterator<V>;
10
+ getValueCountAsync(key: K): Promise<number>;
10
11
  deleteValue(key: K, val: V): Promise<void>;
12
+ delete(key: K): Promise<void>;
11
13
  }
12
- //# sourceMappingURL=multi_map.d.ts.map
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;IAoC1C,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAcjD,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAejD"}
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,9 +56,23 @@ 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
+ getValueCountAsync(key) {
63
+ // Count entries over the keyCount index range for this key
64
+ const index = this.db.index('keyCount');
65
+ const rangeQuery = IDBKeyRange.bound([
66
+ this.container,
67
+ this.normalizeKey(key),
68
+ 0
69
+ ], [
70
+ this.container,
71
+ this.normalizeKey(key),
72
+ Number.MAX_SAFE_INTEGER
73
+ ], false, false);
74
+ return index.count(rangeQuery);
75
+ }
62
76
  async deleteValue(key, val) {
63
77
  // Since we know the value, we can hash it and directly query the "hash" index
64
78
  // to avoid having to iterate over all the values
@@ -75,4 +89,19 @@ import { IndexedDBAztecMap } from './map.js';
75
89
  await this.db.delete(fullKey);
76
90
  }
77
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
+ }
78
107
  }
@@ -14,4 +14,4 @@ export declare class IndexedDBAztecSet<K extends Key> implements AztecAsyncSet<K
14
14
  delete(key: K): Promise<void>;
15
15
  entriesAsync(range?: Range<K>): AsyncIterableIterator<K>;
16
16
  }
17
- //# sourceMappingURL=set.d.ts.map
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL3NldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxxQkFBYSxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFFLFlBQVcsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUN2RSxPQUFPLENBQUMsR0FBRyxDQUFnQztJQUUzQyxZQUFZLE1BQU0sRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFFaEU7SUFFRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsZUFBZSxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsR0FBRyxTQUFTLEVBRXBGO0lBRUQsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUVqQztJQUVELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFekI7SUFFRCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVCO0lBRU0sWUFBWSxDQUFDLEtBQUssR0FBRSxLQUFLLENBQUMsQ0FBQyxDQUFNLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBRWxFO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/indexeddb/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,GAAG,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAgC;gBAE/B,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM;IAIjE,IAAI,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EAEpF;IAED,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItB,YAAY,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;CAGpE"}
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/indexeddb/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,GAAG,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAgC;IAE3C,YAAY,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAEhE;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EAEpF;IAED,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAEjC;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzB;IAED,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5B;IAEM,YAAY,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAElE;CACF"}
@@ -14,4 +14,4 @@ export declare class IndexedDBAztecSingleton<T extends Value> implements AztecAs
14
14
  set(val: T): Promise<boolean>;
15
15
  delete(): Promise<boolean>;
16
16
  }
17
- //# sourceMappingURL=singleton.d.ts.map
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBR3pELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpEOztHQUVHO0FBQ0gscUJBQWEsdUJBQXVCLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBRSxZQUFXLG1CQUFtQixDQUFDLENBQUMsQ0FBQzs7SUFNckYsWUFBWSxNQUFNLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBSTdEO0lBRUQsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEdBQUcsU0FBUyxFQUVwRjtJQUVELElBQUksRUFBRSxJQUFJLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBRXZFO0lBRUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBR3ZDO0lBRUssR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVVsQztJQUVLLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBRy9CO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/indexeddb/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAGzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,uBAAuB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;;gBAMzE,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM;IAM9D,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,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAY7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAIjC"}
1
+ {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/indexeddb/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAGzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,uBAAuB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;;IAMrF,YAAY,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAI7D;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,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAGvC;IAEK,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAUlC;IAEK,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAG/B;CACF"}
@@ -25,7 +25,9 @@ import { hash } from 'ohash';
25
25
  const result = await this.db.put({
26
26
  container: this.#container,
27
27
  slot: this.#slot,
28
- key: this.#slot,
28
+ key: [
29
+ this.#slot
30
+ ],
29
31
  keyCount: 1,
30
32
  value: val,
31
33
  hash: hash(val)
@@ -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: string;
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=store.d.ts.map
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleGVkZGIvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHcEQsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLEtBQUssWUFBWSxFQUFvQixNQUFNLEtBQUssQ0FBQztBQUV6RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFPaEUsTUFBTSxNQUFNLFVBQVUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJO0lBQ3hDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDVCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxNQUFNLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQztJQUN0QyxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixJQUFJLEVBQUUsTUFBTSxDQUFDO0NBQ2QsQ0FBQztBQUVGLE1BQU0sV0FBVyxjQUFlLFNBQVEsUUFBUTtJQUM5QyxJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLEdBQUcsRUFBRSxNQUFNLENBQUM7UUFDWixPQUFPLEVBQUU7WUFDUCxTQUFTLEVBQUUsTUFBTSxDQUFDO1lBQ2xCLEdBQUcsRUFBRSxHQUFHLENBQUM7WUFDVCxRQUFRLEVBQUUsTUFBTSxDQUFDO1lBQ2pCLElBQUksRUFBRSxNQUFNLENBQUM7U0FDZCxDQUFDO0tBQ0gsQ0FBQztDQUNIO0FBRUQ7O0dBRUc7QUFFSCxxQkFBYSxtQkFBb0IsWUFBVyxpQkFBaUI7O2FBZXpDLFdBQVcsRUFBRSxPQUFPO0lBRnRDLFlBQ0UsTUFBTSxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFDcEIsV0FBVyxFQUFFLE9BQU8sRUFDcEMsSUFBSSxFQUFFLE1BQU0sRUFNYjtJQUNEOzs7Ozs7Ozs7T0FTRztJQUNILE9BQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsR0FBRSxPQUFlLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBbUJ0RztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FJekU7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBSXJEO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBSW5GO0lBRUQsV0FBVyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FFOUQ7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBSTNEO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBSW5FO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQXFCMUQ7SUFFRDs7T0FFRztJQUNHLEtBQUssa0JBRVY7SUFFRCxrREFBa0Q7SUFDNUMsTUFBTSxrQkFLWDtJQUVELFlBQVksSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBRWpDO0lBRUssS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHM0I7SUFFRCxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU1RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/indexeddb/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/indexeddb/store.ts"],"names":[],"mappings":"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"}
@@ -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
- return deleteDB(this.#name);
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
- return Promise.resolve();
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.');
@@ -78,4 +78,4 @@ export interface AztecArray<T extends Value> extends BaseAztecArray<T> {
78
78
  [Symbol.iterator](): IterableIterator<T>;
79
79
  }
80
80
  export {};
81
- //# sourceMappingURL=array.d.ts.map
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL2FycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV6Qzs7R0FFRztBQUNILFVBQVUsY0FBYyxDQUFDLENBQUMsU0FBUyxLQUFLO0lBQ3RDOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBDOzs7T0FHRztJQUNILEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRTlCOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Q0FDaEQ7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxlQUFlLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBRSxTQUFRLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDekU7O09BRUc7SUFDSCxXQUFXLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9COzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFFL0M7O09BRUc7SUFDSCxZQUFZLElBQUkscUJBQXFCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVuRDs7T0FFRztJQUNILFdBQVcsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4Qzs7T0FFRztJQUNILENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3BEO0FBRUQsTUFBTSxXQUFXLFVBQVUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFFLFNBQVEsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNwRTs7T0FFRztJQUNILE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFZjs7Ozs7O09BTUc7SUFDSCxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBRWpDOztPQUVHO0lBQ0gsT0FBTyxJQUFJLGdCQUFnQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekM7O09BRUc7SUFDSCxNQUFNLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFOUI7O09BRUc7SUFDSCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUMxQyJ9
@@ -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=array_test_suite.d.ts.map
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":"AAKA,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
+ {"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"}