@aztec/kv-store 0.66.0 → 0.67.1-devnet

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 (103) hide show
  1. package/dest/indexeddb/array.d.ts +21 -0
  2. package/dest/indexeddb/array.d.ts.map +1 -0
  3. package/dest/indexeddb/array.js +96 -0
  4. package/dest/indexeddb/index.d.ts +7 -0
  5. package/dest/indexeddb/index.d.ts.map +1 -0
  6. package/dest/indexeddb/index.js +22 -0
  7. package/dest/indexeddb/map.d.ts +26 -0
  8. package/dest/indexeddb/map.d.ts.map +1 -0
  9. package/dest/indexeddb/map.js +104 -0
  10. package/dest/indexeddb/set.d.ts +17 -0
  11. package/dest/indexeddb/set.d.ts.map +1 -0
  12. package/dest/indexeddb/set.js +25 -0
  13. package/dest/indexeddb/singleton.d.ts +16 -0
  14. package/dest/indexeddb/singleton.d.ts.map +1 -0
  15. package/dest/indexeddb/singleton.js +42 -0
  16. package/dest/indexeddb/store.d.ts +100 -0
  17. package/dest/indexeddb/store.d.ts.map +1 -0
  18. package/dest/indexeddb/store.js +157 -0
  19. package/dest/interfaces/array.d.ts +43 -11
  20. package/dest/interfaces/array.d.ts.map +1 -1
  21. package/dest/interfaces/array_test_suite.d.ts +3 -0
  22. package/dest/interfaces/array_test_suite.d.ts.map +1 -0
  23. package/dest/interfaces/array_test_suite.js +100 -0
  24. package/dest/interfaces/counter.d.ts +21 -1
  25. package/dest/interfaces/counter.d.ts.map +1 -1
  26. package/dest/interfaces/map.d.ts +80 -12
  27. package/dest/interfaces/map.d.ts.map +1 -1
  28. package/dest/interfaces/map_test_suite.d.ts +3 -0
  29. package/dest/interfaces/map_test_suite.d.ts.map +1 -0
  30. package/dest/interfaces/map_test_suite.js +117 -0
  31. package/dest/interfaces/set.d.ts +23 -7
  32. package/dest/interfaces/set.d.ts.map +1 -1
  33. package/dest/interfaces/set_test_suite.d.ts +3 -0
  34. package/dest/interfaces/set_test_suite.d.ts.map +1 -0
  35. package/dest/interfaces/set_test_suite.js +59 -0
  36. package/dest/interfaces/singleton.d.ts +14 -5
  37. package/dest/interfaces/singleton.d.ts.map +1 -1
  38. package/dest/interfaces/singleton_test_suite.d.ts +3 -0
  39. package/dest/interfaces/singleton_test_suite.d.ts.map +1 -0
  40. package/dest/interfaces/singleton_test_suite.js +33 -0
  41. package/dest/interfaces/store.d.ts +83 -8
  42. package/dest/interfaces/store.d.ts.map +1 -1
  43. package/dest/interfaces/store_test_suite.d.ts +3 -0
  44. package/dest/interfaces/store_test_suite.d.ts.map +1 -0
  45. package/dest/interfaces/store_test_suite.js +40 -0
  46. package/dest/interfaces/utils.d.ts +16 -0
  47. package/dest/interfaces/utils.d.ts.map +1 -0
  48. package/dest/interfaces/utils.js +19 -0
  49. package/dest/lmdb/array.d.ts +7 -2
  50. package/dest/lmdb/array.d.ts.map +1 -1
  51. package/dest/lmdb/array.js +20 -1
  52. package/dest/lmdb/counter.d.ts +5 -2
  53. package/dest/lmdb/counter.d.ts.map +1 -1
  54. package/dest/lmdb/counter.js +10 -1
  55. package/dest/lmdb/index.d.ts +10 -0
  56. package/dest/lmdb/index.d.ts.map +1 -1
  57. package/dest/lmdb/index.js +28 -1
  58. package/dest/lmdb/map.d.ts +25 -3
  59. package/dest/lmdb/map.d.ts.map +1 -1
  60. package/dest/lmdb/map.js +112 -26
  61. package/dest/lmdb/set.d.ts +4 -2
  62. package/dest/lmdb/set.d.ts.map +1 -1
  63. package/dest/lmdb/set.js +9 -1
  64. package/dest/lmdb/singleton.d.ts +3 -2
  65. package/dest/lmdb/singleton.d.ts.map +1 -1
  66. package/dest/lmdb/singleton.js +4 -1
  67. package/dest/lmdb/store.d.ts +35 -15
  68. package/dest/lmdb/store.d.ts.map +1 -1
  69. package/dest/lmdb/store.js +47 -27
  70. package/dest/stores/l2_tips_store.d.ts +2 -2
  71. package/dest/stores/l2_tips_store.d.ts.map +1 -1
  72. package/dest/stores/l2_tips_store.js +13 -13
  73. package/dest/utils.d.ts +8 -7
  74. package/dest/utils.d.ts.map +1 -1
  75. package/dest/utils.js +6 -29
  76. package/package.json +54 -37
  77. package/src/indexeddb/array.ts +118 -0
  78. package/src/indexeddb/index.ts +29 -0
  79. package/src/indexeddb/map.ts +142 -0
  80. package/src/indexeddb/set.ts +37 -0
  81. package/src/indexeddb/singleton.ts +49 -0
  82. package/src/indexeddb/store.ts +193 -0
  83. package/src/interfaces/array.ts +48 -12
  84. package/src/interfaces/array_test_suite.ts +130 -0
  85. package/src/interfaces/counter.ts +23 -1
  86. package/src/interfaces/map.ts +90 -14
  87. package/src/interfaces/map_test_suite.ts +158 -0
  88. package/src/interfaces/set.ts +25 -8
  89. package/src/interfaces/set_test_suite.ts +81 -0
  90. package/src/interfaces/singleton.ts +14 -6
  91. package/src/interfaces/singleton_test_suite.ts +46 -0
  92. package/src/interfaces/store.ts +99 -8
  93. package/src/interfaces/store_test_suite.ts +56 -0
  94. package/src/interfaces/utils.ts +21 -0
  95. package/src/lmdb/array.ts +26 -2
  96. package/src/lmdb/counter.ts +14 -2
  97. package/src/lmdb/index.ts +36 -0
  98. package/src/lmdb/map.ts +130 -23
  99. package/src/lmdb/set.ts +12 -2
  100. package/src/lmdb/singleton.ts +6 -2
  101. package/src/lmdb/store.ts +73 -43
  102. package/src/stores/l2_tips_store.ts +17 -17
  103. package/src/utils.ts +8 -37
@@ -0,0 +1,157 @@
1
+ var _AztecIndexedDBStore_log, _AztecIndexedDBStore_rootDB, _AztecIndexedDBStore_name, _AztecIndexedDBStore_containers;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { deleteDB, openDB } from 'idb';
4
+ import { IndexedDBAztecArray } from './array.js';
5
+ import { IndexedDBAztecMap } from './map.js';
6
+ import { IndexedDBAztecSet } from './set.js';
7
+ import { IndexedDBAztecSingleton } from './singleton.js';
8
+ /**
9
+ * A key-value store backed by IndexedDB.
10
+ */
11
+ export class AztecIndexedDBStore {
12
+ constructor(rootDB, isEphemeral, log, name) {
13
+ this.isEphemeral = isEphemeral;
14
+ _AztecIndexedDBStore_log.set(this, void 0);
15
+ _AztecIndexedDBStore_rootDB.set(this, void 0);
16
+ _AztecIndexedDBStore_name.set(this, void 0);
17
+ _AztecIndexedDBStore_containers.set(this, new Set());
18
+ __classPrivateFieldSet(this, _AztecIndexedDBStore_rootDB, rootDB, "f");
19
+ __classPrivateFieldSet(this, _AztecIndexedDBStore_log, log, "f");
20
+ __classPrivateFieldSet(this, _AztecIndexedDBStore_name, name, "f");
21
+ }
22
+ /**
23
+ * Creates a new AztecKVStore backed by IndexedDB. The path to the database is optional. If not provided,
24
+ * the database will be stored in a temporary location and be deleted when the process exists.
25
+ *
26
+ *
27
+ * @param path - A path on the disk to store the database. Optional
28
+ * @param ephemeral - true if the store should only exist in memory and not automatically be flushed to disk. Optional
29
+ * @param log - A logger to use. Optional
30
+ * @returns The store
31
+ */
32
+ static async open(log, name, ephemeral = false) {
33
+ name = name && !ephemeral ? name : self.crypto.getRandomValues(new Uint8Array(16)).join('');
34
+ log.debug(`Opening IndexedDB ${ephemeral ? 'temp ' : ''}database with name ${name}`);
35
+ const rootDB = await openDB(name, 1, {
36
+ upgrade(db) {
37
+ const objectStore = db.createObjectStore('data', { keyPath: 'slot' });
38
+ objectStore.createIndex('key', ['container', 'key'], { unique: false });
39
+ objectStore.createIndex('keyCount', ['container', 'key', 'keyCount'], { unique: false });
40
+ },
41
+ });
42
+ const kvStore = new AztecIndexedDBStore(rootDB, ephemeral, log, name);
43
+ return kvStore;
44
+ }
45
+ /**
46
+ * Forks the current DB into a new DB by backing it up to a temporary location and opening a new indexedb.
47
+ * @returns A new AztecIndexedDBStore.
48
+ */
49
+ async fork() {
50
+ const forkedStore = await AztecIndexedDBStore.open(__classPrivateFieldGet(this, _AztecIndexedDBStore_log, "f"), undefined, true);
51
+ __classPrivateFieldGet(this, _AztecIndexedDBStore_log, "f").verbose(`Forking store to ${__classPrivateFieldGet(forkedStore, _AztecIndexedDBStore_name, "f")}`);
52
+ // Copy old data to new store
53
+ const oldData = __classPrivateFieldGet(this, _AztecIndexedDBStore_rootDB, "f").transaction('data').store;
54
+ const dataToWrite = [];
55
+ for await (const cursor of oldData.iterate()) {
56
+ dataToWrite.push(cursor.value);
57
+ }
58
+ const tx = __classPrivateFieldGet(forkedStore, _AztecIndexedDBStore_rootDB, "f").transaction('data', 'readwrite').store;
59
+ for (const data of dataToWrite) {
60
+ await tx.add(data);
61
+ }
62
+ __classPrivateFieldGet(this, _AztecIndexedDBStore_log, "f").debug(`Forked store at ${__classPrivateFieldGet(forkedStore, _AztecIndexedDBStore_name, "f")} opened successfully`);
63
+ return forkedStore;
64
+ }
65
+ /**
66
+ * Creates a new AztecMap in the store.
67
+ * @param name - Name of the map
68
+ * @returns A new AztecMap
69
+ */
70
+ openMap(name) {
71
+ const map = new IndexedDBAztecMap(__classPrivateFieldGet(this, _AztecIndexedDBStore_rootDB, "f"), name);
72
+ __classPrivateFieldGet(this, _AztecIndexedDBStore_containers, "f").add(map);
73
+ return map;
74
+ }
75
+ /**
76
+ * Creates a new AztecSet in the store.
77
+ * @param name - Name of the set
78
+ * @returns A new AztecSet
79
+ */
80
+ openSet(name) {
81
+ const set = new IndexedDBAztecSet(__classPrivateFieldGet(this, _AztecIndexedDBStore_rootDB, "f"), name);
82
+ __classPrivateFieldGet(this, _AztecIndexedDBStore_containers, "f").add(set);
83
+ return set;
84
+ }
85
+ /**
86
+ * Creates a new AztecMultiMap in the store. A multi-map stores multiple values for a single key automatically.
87
+ * @param name - Name of the map
88
+ * @returns A new AztecMultiMap
89
+ */
90
+ openMultiMap(name) {
91
+ const multimap = new IndexedDBAztecMap(__classPrivateFieldGet(this, _AztecIndexedDBStore_rootDB, "f"), name);
92
+ __classPrivateFieldGet(this, _AztecIndexedDBStore_containers, "f").add(multimap);
93
+ return multimap;
94
+ }
95
+ openCounter(_name) {
96
+ throw new Error('Method not implemented.');
97
+ }
98
+ /**
99
+ * Creates a new AztecArray in the store.
100
+ * @param name - Name of the array
101
+ * @returns A new AztecArray
102
+ */
103
+ openArray(name) {
104
+ const array = new IndexedDBAztecArray(__classPrivateFieldGet(this, _AztecIndexedDBStore_rootDB, "f"), name);
105
+ __classPrivateFieldGet(this, _AztecIndexedDBStore_containers, "f").add(array);
106
+ return array;
107
+ }
108
+ /**
109
+ * Creates a new AztecSingleton in the store.
110
+ * @param name - Name of the singleton
111
+ * @returns A new AztecSingleton
112
+ */
113
+ openSingleton(name) {
114
+ const singleton = new IndexedDBAztecSingleton(__classPrivateFieldGet(this, _AztecIndexedDBStore_rootDB, "f"), name);
115
+ __classPrivateFieldGet(this, _AztecIndexedDBStore_containers, "f").add(singleton);
116
+ return singleton;
117
+ }
118
+ /**
119
+ * Runs a callback in a transaction.
120
+ * @param callback - Function to execute in a transaction
121
+ * @returns A promise that resolves to the return value of the callback
122
+ */
123
+ async transactionAsync(callback) {
124
+ const tx = __classPrivateFieldGet(this, _AztecIndexedDBStore_rootDB, "f").transaction('data', 'readwrite');
125
+ for (const container of __classPrivateFieldGet(this, _AztecIndexedDBStore_containers, "f")) {
126
+ container.db = tx.store;
127
+ }
128
+ // Avoid awaiting this promise so it doesn't get scheduled in the next microtask
129
+ // By then, the tx would be closed
130
+ const runningPromise = callback();
131
+ // Wait for the transaction to finish
132
+ await tx.done;
133
+ for (const container of __classPrivateFieldGet(this, _AztecIndexedDBStore_containers, "f")) {
134
+ container.db = undefined;
135
+ }
136
+ // Return the result of the callback.
137
+ // Tx is guaranteed to already be closed, so the await doesn't hurt anything here
138
+ return await runningPromise;
139
+ }
140
+ /**
141
+ * Clears all entries in the store & sub DBs.
142
+ */
143
+ async clear() {
144
+ await __classPrivateFieldGet(this, _AztecIndexedDBStore_rootDB, "f").transaction('data', 'readwrite').store.clear();
145
+ }
146
+ /** Deletes this store and removes the database */
147
+ delete() {
148
+ __classPrivateFieldGet(this, _AztecIndexedDBStore_containers, "f").clear();
149
+ __classPrivateFieldGet(this, _AztecIndexedDBStore_rootDB, "f").close();
150
+ return deleteDB(__classPrivateFieldGet(this, _AztecIndexedDBStore_name, "f"));
151
+ }
152
+ estimateSize() {
153
+ return { mappingSize: 0, actualSize: 0, numItems: 0 };
154
+ }
155
+ }
156
+ _AztecIndexedDBStore_log = new WeakMap(), _AztecIndexedDBStore_rootDB = new WeakMap(), _AztecIndexedDBStore_name = new WeakMap(), _AztecIndexedDBStore_containers = new WeakMap();
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsT0FBTyxFQUFvQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBU3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBWXpEOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQVM5QixZQUFZLE1BQW9DLEVBQWtCLFdBQW9CLEVBQUUsR0FBVyxFQUFFLElBQVk7UUFBL0MsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFSdEYsMkNBQWE7UUFDYiw4Q0FBc0M7UUFDdEMsNENBQWM7UUFFZCwwQ0FBYyxJQUFJLEdBQUcsRUFFbEIsRUFBQztRQUdGLHVCQUFBLElBQUksK0JBQVcsTUFBTSxNQUFBLENBQUM7UUFDdEIsdUJBQUEsSUFBSSw0QkFBUSxHQUFHLE1BQUEsQ0FBQztRQUNoQix1QkFBQSxJQUFJLDZCQUFTLElBQUksTUFBQSxDQUFDO0lBQ3BCLENBQUM7SUFDRDs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFXLEVBQUUsSUFBYSxFQUFFLFlBQXFCLEtBQUs7UUFDdEUsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RixHQUFHLENB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
@@ -1,11 +1,7 @@
1
1
  /**
2
2
  * An array backed by a persistent store. Can not have any holes in it.
3
3
  */
4
- export interface AztecArray<T> {
5
- /**
6
- * The size of the array
7
- */
8
- length: number;
4
+ interface BaseAztecArray<T> {
9
5
  /**
10
6
  * Pushes values to the end of the array
11
7
  * @param vals - The values to push to the end of the array
@@ -17,6 +13,22 @@ export interface AztecArray<T> {
17
13
  * @returns The value that was popped, or undefined if the array was empty
18
14
  */
19
15
  pop(): Promise<T | undefined>;
16
+ /**
17
+ * Updates the value at the given index. Index can be in the range [-length, length - 1).
18
+ * @param index - The index to set the value at
19
+ * @param val - The value to set
20
+ * @returns Whether the value was set
21
+ */
22
+ setAt(index: number, val: T): Promise<boolean>;
23
+ }
24
+ /**
25
+ * An array backed by a persistent store. Can not have any holes in it.
26
+ */
27
+ export interface AztecAsyncArray<T> extends BaseAztecArray<T> {
28
+ /**
29
+ * The size of the array
30
+ */
31
+ lengthAsync(): Promise<number>;
20
32
  /**
21
33
  * Gets the value at the given index. Index can be in the range [-length, length - 1).
22
34
  * If the index is negative, it will be treated as an offset from the end of the array.
@@ -24,14 +36,33 @@ export interface AztecArray<T> {
24
36
  * @param index - The index to get the value from
25
37
  * @returns The value at the given index or undefined if the index is out of bounds
26
38
  */
27
- at(index: number): T | undefined;
39
+ atAsync(index: number): Promise<T | undefined>;
28
40
  /**
29
- * Updates the value at the given index. Index can be in the range [-length, length - 1).
30
- * @param index - The index to set the value at
31
- * @param val - The value to set
32
- * @returns Whether the value was set
41
+ * Iterates over the array with indexes.
33
42
  */
34
- setAt(index: number, val: T): Promise<boolean>;
43
+ entriesAsync(): AsyncIterableIterator<[number, T]>;
44
+ /**
45
+ * Iterates over the array.
46
+ */
47
+ valuesAsync(): AsyncIterableIterator<T>;
48
+ /**
49
+ * Iterates over the array.
50
+ */
51
+ [Symbol.asyncIterator](): AsyncIterableIterator<T>;
52
+ }
53
+ export interface AztecArray<T> extends BaseAztecArray<T> {
54
+ /**
55
+ * The size of the array
56
+ */
57
+ length: number;
58
+ /**
59
+ * Gets the value at the given index. Index can be in the range [-length, length - 1).
60
+ * If the index is negative, it will be treated as an offset from the end of the array.
61
+ *
62
+ * @param index - The index to get the value from
63
+ * @returns The value at the given index or undefined if the index is out of bounds
64
+ */
65
+ at(index: number): T | undefined;
35
66
  /**
36
67
  * Iterates over the array with indexes.
37
68
  */
@@ -45,4 +76,5 @@ export interface AztecArray<T> {
45
76
  */
46
77
  [Symbol.iterator](): IterableIterator<T>;
47
78
  }
79
+ export {};
48
80
  //# sourceMappingURL=array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/interfaces/array.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC;;;OAGG;IACH,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE9B;;;;;;OAMG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAEjC;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C;;OAEG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzC;;OAEG;IACH,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE9B;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC1C"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/interfaces/array.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,UAAU,cAAc,CAAC,CAAC;IACxB;;;;OAIG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC;;;OAGG;IACH,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE9B;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAC3D;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/B;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE/C;;OAEG;IACH,YAAY,IAAI,qBAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnD;;OAEG;IACH,WAAW,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAExC;;OAEG;IACH,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACtD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAEjC;;OAEG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzC;;OAEG;IACH,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE9B;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC1C"}
@@ -0,0 +1,3 @@
1
+ import { type AztecAsyncKVStore, type AztecKVStore } from './store.js';
2
+ export declare function describeAztecArray(testName: string, getStore: () => AztecKVStore | Promise<AztecAsyncKVStore>, forceAsync?: boolean): void;
3
+ //# sourceMappingURL=array_test_suite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/array_test_suite.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAGvE,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QAsH5B"}
@@ -0,0 +1,100 @@
1
+ import { toArray } from '@aztec/foundation/iterable';
2
+ import { expect } from 'chai';
3
+ import { isSyncStore } from './utils.js';
4
+ export function describeAztecArray(testName, getStore, forceAsync = false) {
5
+ describe(testName, () => {
6
+ let store;
7
+ let arr;
8
+ beforeEach(async () => {
9
+ store = await getStore();
10
+ arr = store.openArray('test');
11
+ });
12
+ afterEach(async () => {
13
+ await store.delete();
14
+ });
15
+ async function length(sut = arr) {
16
+ return isSyncStore(store) && !forceAsync
17
+ ? sut.length
18
+ : await sut.lengthAsync();
19
+ }
20
+ async function at(index) {
21
+ return isSyncStore(store) && !forceAsync
22
+ ? arr.at(index)
23
+ : await arr.atAsync(index);
24
+ }
25
+ async function entries() {
26
+ return isSyncStore(store) && !forceAsync
27
+ ? await toArray(arr.entries())
28
+ : await toArray(arr.entriesAsync());
29
+ }
30
+ async function values(sut = arr) {
31
+ return isSyncStore(store) && !forceAsync
32
+ ? await toArray(sut.values())
33
+ : await toArray(sut.valuesAsync());
34
+ }
35
+ it('should be able to push and pop values', async () => {
36
+ await arr.push(1);
37
+ await arr.push(2);
38
+ await arr.push(3);
39
+ expect(await length()).to.equal(3);
40
+ expect(await arr.pop()).to.equal(3);
41
+ expect(await arr.pop()).to.equal(2);
42
+ expect(await arr.pop()).to.equal(1);
43
+ expect(await arr.pop()).to.equal(undefined);
44
+ });
45
+ it('should be able to get values by index', async () => {
46
+ await arr.push(1);
47
+ await arr.push(2);
48
+ await arr.push(3);
49
+ expect(await at(0)).to.equal(1);
50
+ expect(await at(1)).to.equal(2);
51
+ expect(await at(2)).to.equal(3);
52
+ expect(await at(3)).to.equal(undefined);
53
+ expect(await at(-1)).to.equal(3);
54
+ expect(await at(-2)).to.equal(2);
55
+ expect(await at(-3)).to.equal(1);
56
+ expect(await at(-4)).to.equal(undefined);
57
+ });
58
+ it('should be able to set values by index', async () => {
59
+ await arr.push(1);
60
+ await arr.push(2);
61
+ await arr.push(3);
62
+ expect(await arr.setAt(0, 4)).to.equal(true);
63
+ expect(await arr.setAt(1, 5)).to.equal(true);
64
+ expect(await arr.setAt(2, 6)).to.equal(true);
65
+ expect(await arr.setAt(3, 7)).to.equal(false);
66
+ expect(await at(0)).to.equal(4);
67
+ expect(await at(1)).to.equal(5);
68
+ expect(await at(2)).to.equal(6);
69
+ expect(await at(3)).to.equal(undefined);
70
+ expect(await arr.setAt(-1, 8)).to.equal(true);
71
+ expect(await arr.setAt(-2, 9)).to.equal(true);
72
+ expect(await arr.setAt(-3, 10)).to.equal(true);
73
+ expect(await arr.setAt(-4, 11)).to.equal(false);
74
+ expect(await at(-1)).to.equal(8);
75
+ expect(await at(-2)).to.equal(9);
76
+ expect(await at(-3)).to.equal(10);
77
+ expect(await at(-4)).to.equal(undefined);
78
+ });
79
+ it('should be able to iterate over values', async () => {
80
+ await arr.push(1);
81
+ await arr.push(2);
82
+ await arr.push(3);
83
+ expect(await values()).to.deep.equal([1, 2, 3]);
84
+ expect(await entries()).to.deep.equal([
85
+ [0, 1],
86
+ [1, 2],
87
+ [2, 3],
88
+ ]);
89
+ });
90
+ it('should be able to restore state', async () => {
91
+ await arr.push(1);
92
+ await arr.push(2);
93
+ await arr.push(3);
94
+ const arr2 = store.openArray('test');
95
+ expect(await length(arr2)).to.equal(3);
96
+ expect(await values(arr2)).to.deep.equal(await values());
97
+ });
98
+ });
99
+ }
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlfdGVzdF9zdWl0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL2FycmF5X3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV6QyxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFFBQWdCLEVBQ2hCLFFBQXlELEVBQ3pELGFBQXNCLEtBQUs7SUFFM0IsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDdEIsSUFBSSxLQUF1QyxDQUFDO1FBQzVDLElBQUksR0FBaUQsQ0FBQztRQUV0RCxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDcEIsS0FBSyxHQUFHLE1BQU0sUUFBUSxFQUFFLENBQUM7WUFDekIsR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQVMsTUFBTSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLFVBQVUsTUFBTSxDQUFDLE1BQW9ELEdBQUc7WUFDM0UsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVO2dCQUN0QyxDQUFDLENBQUUsR0FBMEIsQ0FBQyxNQUFNO2dCQUNwQyxDQUFDLENBQUMsTUFBTyxHQUErQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNELENBQUM7UUFFRCxLQUFLLFVBQVUsRUFBRSxDQUFDLEtBQWE7WUFDN0IsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVO2dCQUN0QyxDQUFDLENBQUUsR0FB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LEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyRCxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVsQixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU3QyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFOUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV4QyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUvQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVoRCxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDckQsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbEIsTUFBTSxDQUFDLE1BQU0sTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxNQUFNLENBQUMsTUFBTSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNOLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNQLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQy9DLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWxCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQVMsTUFBTSxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxNQUFNLENBQUMsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMifQ==
@@ -5,7 +5,7 @@ import { type Key, type Range } from './common.js';
5
5
  *
6
6
  * Keys are stored in sorted order
7
7
  */
8
- export interface AztecCounter<K extends Key = Key> {
8
+ interface AztecBaseCounter<K extends Key = Key> {
9
9
  /**
10
10
  * Resets the count of the given key to the given value.
11
11
  * @param key - The key to reset
@@ -20,6 +20,8 @@ export interface AztecCounter<K extends Key = Key> {
20
20
  * @param delta - The amount to modify the key by
21
21
  */
22
22
  update(key: K, delta: number): Promise<void>;
23
+ }
24
+ export interface AztecCounter<K extends Key = Key> extends AztecBaseCounter<K> {
23
25
  /**
24
26
  * Gets the current count.
25
27
  * @param key - The key to get the count of
@@ -36,4 +38,22 @@ export interface AztecCounter<K extends Key = Key> {
36
38
  */
37
39
  entries(range: Range<K>): IterableIterator<[K, number]>;
38
40
  }
41
+ export interface AztecAsyncCounter<K extends Key = Key> extends AztecBaseCounter<K> {
42
+ /**
43
+ * Gets the current count.
44
+ * @param key - The key to get the count of
45
+ */
46
+ getAsync(key: K): Promise<number>;
47
+ /**
48
+ * Returns keys in the map in sorted order. Only returns keys that have been seen at least once.
49
+ * @param range - The range of keys to iterate over
50
+ */
51
+ keysAsync(range: Range<K>): AsyncIterableIterator<K>;
52
+ /**
53
+ * Returns keys and their counts in the map sorted by the key. Only returns keys that have been seen at least once.
54
+ * @param range - The range of keys to iterate over
55
+ */
56
+ entriesAsync(range: Range<K>): AsyncIterableIterator<[K, number]>;
57
+ }
58
+ export {};
39
59
  //# sourceMappingURL=counter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../src/interfaces/counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IAC/C;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE3C;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACzD"}
1
+ {"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../src/interfaces/counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;GAKG;AACH,UAAU,gBAAgB,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IAC5C;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAC5E;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE3C;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IACjF;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAErD;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACnE"}
@@ -2,18 +2,7 @@ import { type Key, type Range } from './common.js';
2
2
  /**
3
3
  * A map backed by a persistent store.
4
4
  */
5
- export interface AztecMap<K extends Key, V> {
6
- /**
7
- * Gets the value at the given key.
8
- * @param key - The key to get the value from
9
- */
10
- get(key: K): V | undefined;
11
- /**
12
- * Checks if a key exists in the map.
13
- * @param key - The key to check
14
- * @returns True if the key exists, false otherwise
15
- */
16
- has(key: K): boolean;
5
+ interface AztecBaseMap<K extends Key, V> {
17
6
  /**
18
7
  * Sets the value at the given key.
19
8
  * @param key - The key to set the value at
@@ -37,6 +26,19 @@ export interface AztecMap<K extends Key, V> {
37
26
  * @param key - The key to delete the value at
38
27
  */
39
28
  delete(key: K): Promise<void>;
29
+ }
30
+ export interface AztecMap<K extends Key, V> extends AztecBaseMap<K, V> {
31
+ /**
32
+ * Gets the value at the given key.
33
+ * @param key - The key to get the value from
34
+ */
35
+ get(key: K): V | undefined;
36
+ /**
37
+ * Checks if a key exists in the map.
38
+ * @param key - The key to check
39
+ * @returns True if the key exists, false otherwise
40
+ */
41
+ has(key: K): boolean;
40
42
  /**
41
43
  * Iterates over the map's key-value entries in the key's natural order
42
44
  * @param range - The range of keys to iterate over
@@ -52,6 +54,17 @@ export interface AztecMap<K extends Key, V> {
52
54
  * @param range - The range of keys to iterate over
53
55
  */
54
56
  keys(range?: Range<K>): IterableIterator<K>;
57
+ /**
58
+ * Clears the map.
59
+ */
60
+ clear(): Promise<void>;
61
+ }
62
+ export interface AztecMapWithSize<K extends Key, V> extends AztecMap<K, V> {
63
+ /**
64
+ * Gets the size of the map.
65
+ * @returns The size of the map
66
+ */
67
+ size(): number;
55
68
  }
56
69
  /**
57
70
  * A map backed by a persistent store that can have multiple values for a single key.
@@ -69,4 +82,59 @@ export interface AztecMultiMap<K extends Key, V> extends AztecMap<K, V> {
69
82
  */
70
83
  deleteValue(key: K, val: V): Promise<void>;
71
84
  }
85
+ export interface AztecMultiMapWithSize<K extends Key, V> extends AztecMultiMap<K, V> {
86
+ /**
87
+ * Gets the size of the map.
88
+ * @returns The size of the map
89
+ */
90
+ size(): number;
91
+ }
92
+ /**
93
+ * A map backed by a persistent store.
94
+ */
95
+ export interface AztecAsyncMap<K extends Key, V> extends AztecBaseMap<K, V> {
96
+ /**
97
+ * Gets the value at the given key.
98
+ * @param key - The key to get the value from
99
+ */
100
+ getAsync(key: K): Promise<V | undefined>;
101
+ /**
102
+ * Checks if a key exists in the map.
103
+ * @param key - The key to check
104
+ * @returns True if the key exists, false otherwise
105
+ */
106
+ hasAsync(key: K): Promise<boolean>;
107
+ /**
108
+ * Iterates over the map's key-value entries in the key's natural order
109
+ * @param range - The range of keys to iterate over
110
+ */
111
+ entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]>;
112
+ /**
113
+ * Iterates over the map's values in the key's natural order
114
+ * @param range - The range of keys to iterate over
115
+ */
116
+ valuesAsync(range?: Range<K>): AsyncIterableIterator<V>;
117
+ /**
118
+ * Iterates over the map's keys in the key's natural order
119
+ * @param range - The range of keys to iterate over
120
+ */
121
+ keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
122
+ }
123
+ /**
124
+ * A map backed by a persistent store that can have multiple values for a single key.
125
+ */
126
+ export interface AztecAsyncMultiMap<K extends Key, V> extends AztecAsyncMap<K, V> {
127
+ /**
128
+ * Gets all the values at the given key.
129
+ * @param key - The key to get the values from
130
+ */
131
+ getValuesAsync(key: K): AsyncIterableIterator<V>;
132
+ /**
133
+ * Deletes a specific value at the given key.
134
+ * @param key - The key to delete the value at
135
+ * @param val - The value to delete
136
+ */
137
+ deleteValue(key: K, val: V): Promise<void>;
138
+ }
139
+ export {};
72
140
  //# sourceMappingURL=map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/interfaces/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;IACxC;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE3B;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;IAErB;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE9C;;;OAGG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEvC;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/interfaces/map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type AztecAsyncKVStore, type AztecKVStore } from './store.js';
2
+ export declare function describeAztecMap(testName: string, getStore: () => AztecKVStore | Promise<AztecAsyncKVStore>, forceAsync?: boolean): void;
3
+ //# sourceMappingURL=map_test_suite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/map_test_suite.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAGvE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QAiJ5B"}