@aztec/kv-store 0.0.1-commit.e3c1de76 → 0.0.1-commit.e57c76e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) 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.js +18 -6
  6. package/dest/indexeddb/index.d.ts +2 -2
  7. package/dest/indexeddb/index.d.ts.map +1 -1
  8. package/dest/indexeddb/index.js +1 -1
  9. package/dest/indexeddb/map.d.ts +8 -2
  10. package/dest/indexeddb/map.d.ts.map +1 -1
  11. package/dest/indexeddb/map.js +23 -13
  12. package/dest/indexeddb/multi_map.d.ts +2 -1
  13. package/dest/indexeddb/multi_map.d.ts.map +1 -1
  14. package/dest/indexeddb/multi_map.js +16 -1
  15. package/dest/indexeddb/singleton.js +3 -1
  16. package/dest/indexeddb/store.d.ts +3 -3
  17. package/dest/indexeddb/store.d.ts.map +1 -1
  18. package/dest/indexeddb/store.js +6 -4
  19. package/dest/interfaces/array_test_suite.d.ts +1 -1
  20. package/dest/interfaces/array_test_suite.d.ts.map +1 -1
  21. package/dest/interfaces/array_test_suite.js +33 -34
  22. package/dest/interfaces/index.d.ts +2 -2
  23. package/dest/interfaces/index.d.ts.map +1 -1
  24. package/dest/interfaces/map_test_suite.d.ts +1 -1
  25. package/dest/interfaces/map_test_suite.d.ts.map +1 -1
  26. package/dest/interfaces/map_test_suite.js +74 -29
  27. package/dest/interfaces/multi_map_test_suite.d.ts +1 -1
  28. package/dest/interfaces/multi_map_test_suite.d.ts.map +1 -1
  29. package/dest/interfaces/multi_map_test_suite.js +84 -60
  30. package/dest/interfaces/set_test_suite.d.ts +1 -1
  31. package/dest/interfaces/set_test_suite.d.ts.map +1 -1
  32. package/dest/interfaces/set_test_suite.js +13 -14
  33. package/dest/interfaces/singleton_test_suite.d.ts +1 -1
  34. package/dest/interfaces/singleton_test_suite.d.ts.map +1 -1
  35. package/dest/interfaces/singleton_test_suite.js +6 -7
  36. package/dest/lmdb/index.d.ts +2 -2
  37. package/dest/lmdb/index.d.ts.map +1 -1
  38. package/dest/lmdb/index.js +2 -2
  39. package/dest/lmdb/store.d.ts +3 -3
  40. package/dest/lmdb/store.d.ts.map +1 -1
  41. package/dest/lmdb/store.js +12 -8
  42. package/dest/lmdb-v2/factory.d.ts +29 -4
  43. package/dest/lmdb-v2/factory.d.ts.map +1 -1
  44. package/dest/lmdb-v2/factory.js +61 -10
  45. package/dest/lmdb-v2/read_transaction.js +21 -19
  46. package/dest/lmdb-v2/store.d.ts +2 -2
  47. package/dest/lmdb-v2/store.d.ts.map +1 -1
  48. package/dest/lmdb-v2/store.js +4 -4
  49. package/dest/sqlite-opfs/array.d.ts +21 -0
  50. package/dest/sqlite-opfs/array.d.ts.map +1 -0
  51. package/dest/sqlite-opfs/array.js +128 -0
  52. package/dest/sqlite-opfs/errors.d.ts +27 -0
  53. package/dest/sqlite-opfs/errors.d.ts.map +1 -0
  54. package/dest/sqlite-opfs/errors.js +34 -0
  55. package/dest/sqlite-opfs/index.d.ts +16 -0
  56. package/dest/sqlite-opfs/index.d.ts.map +1 -0
  57. package/dest/sqlite-opfs/index.js +22 -0
  58. package/dest/sqlite-opfs/internal/ordered-binary-browser.d.ts +32 -0
  59. package/dest/sqlite-opfs/internal/ordered-binary-browser.d.ts.map +1 -0
  60. package/dest/sqlite-opfs/internal/ordered-binary-browser.js +448 -0
  61. package/dest/sqlite-opfs/map.d.ts +35 -0
  62. package/dest/sqlite-opfs/map.d.ts.map +1 -0
  63. package/dest/sqlite-opfs/map.js +163 -0
  64. package/dest/sqlite-opfs/messages.d.ts +66 -0
  65. package/dest/sqlite-opfs/messages.d.ts.map +1 -0
  66. package/dest/sqlite-opfs/messages.js +5 -0
  67. package/dest/sqlite-opfs/multi_map.d.ts +16 -0
  68. package/dest/sqlite-opfs/multi_map.d.ts.map +1 -0
  69. package/dest/sqlite-opfs/multi_map.js +67 -0
  70. package/dest/sqlite-opfs/set.d.ts +13 -0
  71. package/dest/sqlite-opfs/set.d.ts.map +1 -0
  72. package/dest/sqlite-opfs/set.js +19 -0
  73. package/dest/sqlite-opfs/singleton.d.ts +13 -0
  74. package/dest/sqlite-opfs/singleton.d.ts.map +1 -0
  75. package/dest/sqlite-opfs/singleton.js +48 -0
  76. package/dest/sqlite-opfs/store.d.ts +79 -0
  77. package/dest/sqlite-opfs/store.d.ts.map +1 -0
  78. package/dest/sqlite-opfs/store.js +281 -0
  79. package/dest/sqlite-opfs/worker.d.ts +2 -0
  80. package/dest/sqlite-opfs/worker.d.ts.map +1 -0
  81. package/dest/sqlite-opfs/worker.js +249 -0
  82. package/dest/stores/l2_tips_store.d.ts +3 -3
  83. package/dest/stores/l2_tips_store.d.ts.map +1 -1
  84. package/dest/stores/l2_tips_store.js +2 -2
  85. package/dest/utils.d.ts +1 -1
  86. package/dest/utils.d.ts.map +1 -1
  87. package/dest/utils.js +7 -1
  88. package/package.json +29 -25
  89. package/src/bench/shared_map_bench.ts +111 -0
  90. package/src/indexeddb/array.ts +4 -4
  91. package/src/indexeddb/index.ts +2 -2
  92. package/src/indexeddb/map.ts +24 -11
  93. package/src/indexeddb/multi_map.ts +15 -1
  94. package/src/indexeddb/singleton.ts +1 -1
  95. package/src/indexeddb/store.ts +13 -6
  96. package/src/interfaces/array_test_suite.ts +33 -35
  97. package/src/interfaces/index.ts +1 -1
  98. package/src/interfaces/map_test_suite.ts +56 -30
  99. package/src/interfaces/multi_map_test_suite.ts +88 -58
  100. package/src/interfaces/set_test_suite.ts +13 -15
  101. package/src/interfaces/singleton_test_suite.ts +6 -8
  102. package/src/lmdb/index.ts +3 -3
  103. package/src/lmdb/store.ts +12 -8
  104. package/src/lmdb-v2/factory.ts +80 -10
  105. package/src/lmdb-v2/read_transaction.ts +23 -23
  106. package/src/lmdb-v2/store.ts +4 -2
  107. package/src/sqlite-opfs/array.ts +124 -0
  108. package/src/sqlite-opfs/errors.ts +44 -0
  109. package/src/sqlite-opfs/index.ts +39 -0
  110. package/src/sqlite-opfs/internal/ordered-binary-browser.js +465 -0
  111. package/src/sqlite-opfs/map.ts +163 -0
  112. package/src/sqlite-opfs/messages.ts +39 -0
  113. package/src/sqlite-opfs/multi_map.ts +74 -0
  114. package/src/sqlite-opfs/set.ts +29 -0
  115. package/src/sqlite-opfs/singleton.ts +48 -0
  116. package/src/sqlite-opfs/store.ts +296 -0
  117. package/src/sqlite-opfs/worker.ts +231 -0
  118. package/src/stores/l2_tips_store.ts +3 -2
  119. package/src/utils.ts +10 -0
  120. package/dest/config.d.ts +0 -17
  121. package/dest/config.d.ts.map +0 -1
  122. package/dest/config.js +0 -26
  123. 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
+ }
@@ -22,10 +22,14 @@ _computedKey = Symbol.asyncIterator;
22
22
  async lengthAsync() {
23
23
  return await this.db.index('key').count(IDBKeyRange.bound([
24
24
  this.#container,
25
- this.#name
25
+ [
26
+ this.#name
27
+ ]
26
28
  ], [
27
29
  this.#container,
28
- this.#name
30
+ [
31
+ this.#name
32
+ ]
29
33
  ])) ?? 0;
30
34
  }
31
35
  async push(...vals) {
@@ -35,7 +39,9 @@ _computedKey = Symbol.asyncIterator;
35
39
  value: val,
36
40
  hash: hash(val),
37
41
  container: this.#container,
38
- key: this.#name,
42
+ key: [
43
+ this.#name
44
+ ],
39
45
  keyCount: length + 1,
40
46
  slot: this.#slot(length)
41
47
  });
@@ -73,7 +79,9 @@ _computedKey = Symbol.asyncIterator;
73
79
  value: val,
74
80
  hash: hash(val),
75
81
  container: this.#container,
76
- key: this.#name,
82
+ key: [
83
+ this.#name
84
+ ],
77
85
  keyCount: index + 1,
78
86
  slot: this.#slot(index)
79
87
  });
@@ -83,10 +91,14 @@ _computedKey = Symbol.asyncIterator;
83
91
  const index = this.db.index('key');
84
92
  const rangeQuery = IDBKeyRange.bound([
85
93
  this.#container,
86
- this.#name
94
+ [
95
+ this.#name
96
+ ]
87
97
  ], [
88
98
  this.#container,
89
- this.#name
99
+ [
100
+ this.#name
101
+ ]
90
102
  ]);
91
103
  for await (const cursor of index.iterate(rangeQuery)){
92
104
  yield [
@@ -1,7 +1,7 @@
1
1
  import { type Logger } from '@aztec/foundation/log';
2
- import type { DataStoreConfig } from '../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"}
@@ -9,7 +9,7 @@ export async function createStore(name, config, schemaVersion = undefined, log =
9
9
  }
10
10
  log.info(dataDirectory ? `Creating ${name} data store at directory ${dataDirectory} with map size ${config.dataStoreMapSizeKb} KB` : `Creating ${name} ephemeral data store with map size ${config.dataStoreMapSizeKb} KB`);
11
11
  const store = await AztecIndexedDBStore.open(createLogger('kv-store:indexeddb'), dataDirectory ?? '', false);
12
- return initStoreForRollupAndSchemaVersion(store, schemaVersion, config.l1Contracts?.rollupAddress, log);
12
+ return initStoreForRollupAndSchemaVersion(store, schemaVersion, config.rollupAddress, log);
13
13
  }
14
14
  export function openTmpStore(ephemeral = false) {
15
15
  return AztecIndexedDBStore.open(createLogger('kv-store:indexeddb'), undefined, ephemeral);
@@ -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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBR3pELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpEOztHQUVHO0FBQ0gscUJBQWEsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxDQUFFLFlBQVcsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7O0lBQzNGLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBSzVCLFlBQVksTUFBTSxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUloRTtJQUVELElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxHQUFHLFNBQVMsRUFFcEY7SUFFRCxJQUFJLEVBQUUsSUFBSSxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUV2RTtJQUVLLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBRzdDO0lBRUssUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUd2QztJQUVLLFNBQVMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBSWpDO0lBRUssR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBU3ZDO0lBRUssT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0tBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJNUQ7SUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUzRDtJQUVLLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQU1yRDtJQUVLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFbEM7SUFFTSxZQUFZLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQWdCdkU7SUFFTSxXQUFXLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJakU7SUFFTSxTQUFTLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJL0Q7SUFPRCxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUdyQztJQUVELFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUUsTUFBVSxHQUFHLE1BQU0sQ0FFaEQ7Q0FDRiJ9
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBR3pELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpEOztHQUVHO0FBQ0gscUJBQWEsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxDQUFFLFlBQVcsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7O0lBQzNGLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBSzVCLFlBQVksTUFBTSxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUloRTtJQUVELElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxHQUFHLFNBQVMsRUFFcEY7SUFFRCxJQUFJLEVBQUUsSUFBSSxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUV2RTtJQUVLLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBRzdDO0lBRUssUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUd2QztJQUVLLFNBQVMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBSWpDO0lBRUssR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBU3ZDO0lBRUssT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0tBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJNUQ7SUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUzRDtJQUVLLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQU1yRDtJQUVLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFbEM7SUFFTSxZQUFZLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQW1CdkU7SUFFTSxXQUFXLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJakU7SUFFTSxTQUFTLENBQUMsS0FBSyxHQUFFLEtBQUssQ0FBQyxDQUFDLENBQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJL0Q7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FLbEM7SUFNRCxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBRS9EO0lBRUQsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRSxNQUFVLEdBQUcsTUFBTSxDQUVoRDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/indexeddb/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAGzD,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IAC3F,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAK5B,YAAY,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAIhE;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EAEpF;IAED,IAAI,EAAE,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAEvE;IAEK,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAG7C;IAEK,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvC;IAEK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAIjC;IAEK,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CASvC;IAEK,OAAO,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5D;IAED,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;IAEK,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAMrD;IAEK,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElC;IAEM,YAAY,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAgBvE;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;IAOD,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAGrC;IAED,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAEhD;CACF"}
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}`;
@@ -9,5 +9,6 @@ export declare class IndexedDBAztecMultiMap<K extends Key, V extends Value> exte
9
9
  getValuesAsync(key: K): AsyncIterableIterator<V>;
10
10
  getValueCountAsync(key: K): Promise<number>;
11
11
  deleteValue(key: K, val: V): Promise<void>;
12
+ delete(key: K): Promise<void>;
12
13
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfbWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL211bHRpX21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFN0M7O0dBRUc7QUFDSCxxQkFBYSxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLENBQ2hFLFNBQVEsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDOUIsWUFBVyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXBCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWtDaEQ7SUFFTSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FZdEQ7SUFFRCxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FVMUM7SUFFSyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjL0M7Q0FDRiJ9
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfbWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL211bHRpX21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFN0M7O0dBRUc7QUFDSCxxQkFBYSxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLENBQ2hFLFNBQVEsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDOUIsWUFBVyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXBCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWtDaEQ7SUFFTSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FZdEQ7SUFFRCxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FVMUM7SUFFSyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjL0M7SUFFYyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBWTNDO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/indexeddb/multi_map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,qBAAa,sBAAsB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAChE,SAAQ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAC9B,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChD;IAEM,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAYtD;IAED,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAU1C;IAEK,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAc/C;CACF"}
1
+ {"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/indexeddb/multi_map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,qBAAa,sBAAsB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAChE,SAAQ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAC9B,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChD;IAEM,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAYtD;IAED,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAU1C;IAEK,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAc/C;IAEc,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3C;CACF"}
@@ -56,7 +56,7 @@ import { IndexedDBAztecMap } from './map.js';
56
56
  Number.MAX_SAFE_INTEGER
57
57
  ], false, false);
58
58
  for await (const cursor of index.iterate(rangeQuery)){
59
- yield cursor.value.value;
59
+ yield this.restoreBuffers(cursor.value.value);
60
60
  }
61
61
  }
62
62
  getValueCountAsync(key) {
@@ -89,4 +89,19 @@ import { IndexedDBAztecMap } from './map.js';
89
89
  await this.db.delete(fullKey);
90
90
  }
91
91
  }
92
+ async delete(key) {
93
+ const index = this.db.index('keyCount');
94
+ const rangeQuery = IDBKeyRange.bound([
95
+ this.container,
96
+ this.normalizeKey(key),
97
+ 0
98
+ ], [
99
+ this.container,
100
+ this.normalizeKey(key),
101
+ Number.MAX_SAFE_INTEGER
102
+ ], false, false);
103
+ for await (const cursor of index.iterate(rangeQuery)){
104
+ await cursor.delete();
105
+ }
106
+ }
92
107
  }
@@ -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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleGVkZGIvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHcEQsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLEtBQUssWUFBWSxFQUFvQixNQUFNLEtBQUssQ0FBQztBQUV6RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFPaEUsTUFBTSxNQUFNLFVBQVUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJO0lBQ3hDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDVCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLEdBQUcsRUFBRSxNQUFNLENBQUM7SUFDWixRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixJQUFJLEVBQUUsTUFBTSxDQUFDO0NBQ2QsQ0FBQztBQUVGLE1BQU0sV0FBVyxjQUFlLFNBQVEsUUFBUTtJQUM5QyxJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLEdBQUcsRUFBRSxNQUFNLENBQUM7UUFDWixPQUFPLEVBQUU7WUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDO1lBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQztZQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7WUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFBO1NBQUUsQ0FBQztLQUM3RSxDQUFDO0NBQ0g7QUFFRDs7R0FFRztBQUVILHFCQUFhLG1CQUFvQixZQUFXLGlCQUFpQjs7YUFlekMsV0FBVyxFQUFFLE9BQU87SUFGdEMsWUFDRSxNQUFNLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUNwQixXQUFXLEVBQUUsT0FBTyxFQUNwQyxJQUFJLEVBQUUsTUFBTSxFQU1iO0lBQ0Q7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBYSxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxHQUFFLE9BQWUsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FtQnRHO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUl6RTtJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FJckQ7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FJbkY7SUFFRCxXQUFXLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUU5RDtJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FJM0Q7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FJbkU7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBcUIxRDtJQUVEOztPQUVHO0lBQ0csS0FBSyxrQkFFVjtJQUVELGtEQUFrRDtJQUNsRCxNQUFNLGtCQUlMO0lBRUQsWUFBWSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FFakM7SUFFRCxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVyQjtJQUVELFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVEO0NBQ0YifQ==
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.');
@@ -1,3 +1,3 @@
1
1
  import type { AztecAsyncKVStore, AztecKVStore } from './store.js';
2
2
  export declare function describeAztecArray(testName: string, getStore: () => AztecKVStore | Promise<AztecAsyncKVStore>, forceAsync?: boolean): void;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlfdGVzdF9zdWl0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYXJyYXlfdGVzdF9zdWl0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHbEUsd0JBQWdCLGtCQUFrQixDQUNoQyxRQUFRLEVBQUUsTUFBTSxFQUNoQixRQUFRLEVBQUUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQ3pELFVBQVUsR0FBRSxPQUFlLFFBc0g1QiJ9
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"}
@@ -1,5 +1,4 @@
1
1
  import { toArray } from '@aztec/foundation/iterable';
2
- import { expect } from 'chai';
3
2
  import { isSyncStore } from './utils.js';
4
3
  export function describeAztecArray(testName, getStore, forceAsync = false) {
5
4
  describe(testName, ()=>{
@@ -28,56 +27,56 @@ export function describeAztecArray(testName, getStore, forceAsync = false) {
28
27
  await arr.push(1);
29
28
  await arr.push(2);
30
29
  await arr.push(3);
31
- expect(await length()).to.equal(3);
32
- expect(await arr.pop()).to.equal(3);
33
- expect(await arr.pop()).to.equal(2);
34
- expect(await arr.pop()).to.equal(1);
35
- expect(await arr.pop()).to.equal(undefined);
30
+ expect(await length()).toBe(3);
31
+ expect(await arr.pop()).toBe(3);
32
+ expect(await arr.pop()).toBe(2);
33
+ expect(await arr.pop()).toBe(1);
34
+ expect(await arr.pop()).toBe(undefined);
36
35
  });
37
36
  it('should be able to get values by index', async ()=>{
38
37
  await arr.push(1);
39
38
  await arr.push(2);
40
39
  await arr.push(3);
41
- expect(await at(0)).to.equal(1);
42
- expect(await at(1)).to.equal(2);
43
- expect(await at(2)).to.equal(3);
44
- expect(await at(3)).to.equal(undefined);
45
- expect(await at(-1)).to.equal(3);
46
- expect(await at(-2)).to.equal(2);
47
- expect(await at(-3)).to.equal(1);
48
- expect(await at(-4)).to.equal(undefined);
40
+ expect(await at(0)).toBe(1);
41
+ expect(await at(1)).toBe(2);
42
+ expect(await at(2)).toBe(3);
43
+ expect(await at(3)).toBe(undefined);
44
+ expect(await at(-1)).toBe(3);
45
+ expect(await at(-2)).toBe(2);
46
+ expect(await at(-3)).toBe(1);
47
+ expect(await at(-4)).toBe(undefined);
49
48
  });
50
49
  it('should be able to set values by index', async ()=>{
51
50
  await arr.push(1);
52
51
  await arr.push(2);
53
52
  await arr.push(3);
54
- expect(await arr.setAt(0, 4)).to.equal(true);
55
- expect(await arr.setAt(1, 5)).to.equal(true);
56
- expect(await arr.setAt(2, 6)).to.equal(true);
57
- expect(await arr.setAt(3, 7)).to.equal(false);
58
- expect(await at(0)).to.equal(4);
59
- expect(await at(1)).to.equal(5);
60
- expect(await at(2)).to.equal(6);
61
- expect(await at(3)).to.equal(undefined);
62
- expect(await arr.setAt(-1, 8)).to.equal(true);
63
- expect(await arr.setAt(-2, 9)).to.equal(true);
64
- expect(await arr.setAt(-3, 10)).to.equal(true);
65
- expect(await arr.setAt(-4, 11)).to.equal(false);
66
- expect(await at(-1)).to.equal(8);
67
- expect(await at(-2)).to.equal(9);
68
- expect(await at(-3)).to.equal(10);
69
- expect(await at(-4)).to.equal(undefined);
53
+ expect(await arr.setAt(0, 4)).toBe(true);
54
+ expect(await arr.setAt(1, 5)).toBe(true);
55
+ expect(await arr.setAt(2, 6)).toBe(true);
56
+ expect(await arr.setAt(3, 7)).toBe(false);
57
+ expect(await at(0)).toBe(4);
58
+ expect(await at(1)).toBe(5);
59
+ expect(await at(2)).toBe(6);
60
+ expect(await at(3)).toBe(undefined);
61
+ expect(await arr.setAt(-1, 8)).toBe(true);
62
+ expect(await arr.setAt(-2, 9)).toBe(true);
63
+ expect(await arr.setAt(-3, 10)).toBe(true);
64
+ expect(await arr.setAt(-4, 11)).toBe(false);
65
+ expect(await at(-1)).toBe(8);
66
+ expect(await at(-2)).toBe(9);
67
+ expect(await at(-3)).toBe(10);
68
+ expect(await at(-4)).toBe(undefined);
70
69
  });
71
70
  it('should be able to iterate over values', async ()=>{
72
71
  await arr.push(1);
73
72
  await arr.push(2);
74
73
  await arr.push(3);
75
- expect(await values()).to.deep.equal([
74
+ expect(await values()).toEqual([
76
75
  1,
77
76
  2,
78
77
  3
79
78
  ]);
80
- expect(await entries()).to.deep.equal([
79
+ expect(await entries()).toEqual([
81
80
  [
82
81
  0,
83
82
  1
@@ -97,8 +96,8 @@ export function describeAztecArray(testName, getStore, forceAsync = false) {
97
96
  await arr.push(2);
98
97
  await arr.push(3);
99
98
  const arr2 = store.openArray('test');
100
- expect(await length(arr2)).to.equal(3);
101
- expect(await values(arr2)).to.deep.equal(await values());
99
+ expect(await length(arr2)).toBe(3);
100
+ expect(await values(arr2)).toEqual(await values());
102
101
  });
103
102
  });
104
103
  }
@@ -6,5 +6,5 @@ export * from './store.js';
6
6
  export * from './set.js';
7
7
  export * from './multi_map.js';
8
8
  export { mapRange } from './common.js';
9
- export type { CustomRange, Range, StoreSize } from './common.js';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQyJ9
9
+ export type { CustomRange, Key, Range, StoreSize } from './common.js';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLFlBQVksRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { AztecAsyncKVStore, AztecKVStore } from './store.js';
2
2
  export declare function describeAztecMap(testName: string, getStore: () => AztecKVStore | Promise<AztecAsyncKVStore>, forceAsync?: boolean): void;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL21hcF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUdsRSx3QkFBZ0IsZ0JBQWdCLENBQzlCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFFBQVEsRUFBRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFDekQsVUFBVSxHQUFFLE9BQWUsUUErSjVCIn0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL21hcF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUdsRSx3QkFBZ0IsZ0JBQWdCLENBQzlCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFFBQVEsRUFBRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFDekQsVUFBVSxHQUFFLE9BQWUsUUEyTDVCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/map_test_suite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QA+J5B"}
1
+ {"version":3,"file":"map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/map_test_suite.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QA2L5B"}