@aztec/kv-store 0.80.0 → 0.82.0

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 (71) hide show
  1. package/dest/config.d.ts.map +1 -1
  2. package/dest/config.js +3 -1
  3. package/dest/indexeddb/map.d.ts +5 -4
  4. package/dest/indexeddb/map.d.ts.map +1 -1
  5. package/dest/indexeddb/map.js +13 -53
  6. package/dest/indexeddb/multi_map.d.ts +12 -0
  7. package/dest/indexeddb/multi_map.d.ts.map +1 -0
  8. package/dest/indexeddb/multi_map.js +54 -0
  9. package/dest/indexeddb/store.d.ts +2 -1
  10. package/dest/indexeddb/store.d.ts.map +1 -1
  11. package/dest/indexeddb/store.js +2 -1
  12. package/dest/interfaces/index.d.ts +1 -0
  13. package/dest/interfaces/index.d.ts.map +1 -1
  14. package/dest/interfaces/index.js +1 -0
  15. package/dest/interfaces/map.d.ts +0 -46
  16. package/dest/interfaces/map.d.ts.map +1 -1
  17. package/dest/interfaces/map.js +1 -1
  18. package/dest/interfaces/map_test_suite.d.ts.map +1 -1
  19. package/dest/interfaces/map_test_suite.js +6 -20
  20. package/dest/interfaces/multi_map.d.ts +35 -0
  21. package/dest/interfaces/multi_map.d.ts.map +1 -0
  22. package/dest/interfaces/multi_map.js +3 -0
  23. package/dest/interfaces/multi_map_test_suite.d.ts +3 -0
  24. package/dest/interfaces/multi_map_test_suite.d.ts.map +1 -0
  25. package/dest/interfaces/multi_map_test_suite.js +151 -0
  26. package/dest/interfaces/store.d.ts +2 -13
  27. package/dest/interfaces/store.d.ts.map +1 -1
  28. package/dest/lmdb/map.d.ts +2 -18
  29. package/dest/lmdb/map.d.ts.map +1 -1
  30. package/dest/lmdb/map.js +0 -81
  31. package/dest/lmdb/multi_map.d.ts +12 -0
  32. package/dest/lmdb/multi_map.d.ts.map +1 -0
  33. package/dest/lmdb/multi_map.js +29 -0
  34. package/dest/lmdb/store.d.ts +2 -13
  35. package/dest/lmdb/store.d.ts.map +1 -1
  36. package/dest/lmdb/store.js +3 -16
  37. package/dest/lmdb-v2/array.d.ts.map +1 -1
  38. package/dest/lmdb-v2/array.js +1 -0
  39. package/dest/lmdb-v2/map.d.ts +1 -43
  40. package/dest/lmdb-v2/map.d.ts.map +1 -1
  41. package/dest/lmdb-v2/map.js +1 -100
  42. package/dest/lmdb-v2/multi_map.d.ts +46 -0
  43. package/dest/lmdb-v2/multi_map.d.ts.map +1 -0
  44. package/dest/lmdb-v2/multi_map.js +103 -0
  45. package/dest/lmdb-v2/singleton.d.ts.map +1 -1
  46. package/dest/lmdb-v2/singleton.js +1 -0
  47. package/dest/lmdb-v2/store.d.ts +2 -1
  48. package/dest/lmdb-v2/store.d.ts.map +1 -1
  49. package/dest/lmdb-v2/store.js +5 -1
  50. package/dest/stores/l2_tips_store.d.ts.map +1 -1
  51. package/dest/stores/l2_tips_store.js +7 -4
  52. package/package.json +5 -5
  53. package/src/config.ts +3 -1
  54. package/src/indexeddb/map.ts +15 -47
  55. package/src/indexeddb/multi_map.ts +53 -0
  56. package/src/indexeddb/store.ts +9 -3
  57. package/src/interfaces/index.ts +1 -0
  58. package/src/interfaces/map.ts +0 -52
  59. package/src/interfaces/map_test_suite.ts +18 -33
  60. package/src/interfaces/multi_map.ts +38 -0
  61. package/src/interfaces/multi_map_test_suite.ts +143 -0
  62. package/src/interfaces/store.ts +2 -22
  63. package/src/lmdb/map.ts +2 -88
  64. package/src/lmdb/multi_map.ts +35 -0
  65. package/src/lmdb/store.ts +5 -27
  66. package/src/lmdb-v2/array.ts +1 -0
  67. package/src/lmdb-v2/map.ts +2 -120
  68. package/src/lmdb-v2/multi_map.ts +126 -0
  69. package/src/lmdb-v2/singleton.ts +1 -0
  70. package/src/lmdb-v2/store.ts +7 -2
  71. package/src/stores/l2_tips_store.ts +5 -3
@@ -1,7 +1,8 @@
1
1
  import type { AztecArray, AztecAsyncArray } from './array.js';
2
2
  import type { Key, StoreSize } from './common.js';
3
3
  import type { AztecAsyncCounter, AztecCounter } from './counter.js';
4
- import type { AztecAsyncMap, AztecAsyncMultiMap, AztecMap, AztecMapWithSize, AztecMultiMap, AztecMultiMapWithSize } from './map.js';
4
+ import type { AztecAsyncMap, AztecMap } from './map.js';
5
+ import type { AztecAsyncMultiMap, AztecMultiMap } from './multi_map.js';
5
6
  import type { AztecAsyncSet, AztecSet } from './set.js';
6
7
  import type { AztecAsyncSingleton, AztecSingleton } from './singleton.js';
7
8
  /** A key-value store */
@@ -25,18 +26,6 @@ export interface AztecKVStore {
25
26
  * @returns The multi-map
26
27
  */
27
28
  openMultiMap<K extends Key, V>(name: string): AztecMultiMap<K, V>;
28
- /**
29
- * Creates a new multi-map with size.
30
- * @param name - The name of the multi-map
31
- * @returns The multi-map
32
- */
33
- openMultiMapWithSize<K extends Key, V>(name: string): AztecMultiMapWithSize<K, V>;
34
- /**
35
- * Creates a new map with size.
36
- * @param name - The name of the map
37
- * @returns The map
38
- */
39
- openMapWithSize<K extends Key, V>(name: string): AztecMapWithSize<K, V>;
40
29
  /**
41
30
  * Creates a new array.
42
31
  * @param name - The name of the array
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/interfaces/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/interfaces/store.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,13 @@
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import type { Database } from 'lmdb';
4
4
  import type { Key, Range } from '../interfaces/common.js';
5
- import type { AztecAsyncMultiMap, AztecMapWithSize, AztecMultiMap } from '../interfaces/map.js';
5
+ import type { AztecAsyncMap, AztecMap } from '../interfaces/map.js';
6
6
  /** The slot where a key-value entry would be stored */
7
7
  type MapValueSlot<K extends Key | Buffer> = ['map', string, 'slot', K];
8
8
  /**
9
9
  * A map backed by LMDB.
10
10
  */
11
- export declare class LmdbAztecMap<K extends Key, V> implements AztecMultiMap<K, V>, AztecAsyncMultiMap<K, V> {
11
+ export declare class LmdbAztecMap<K extends Key, V> implements AztecMap<K, V>, AztecAsyncMap<K, V> {
12
12
  protected db: Database<[K, V], MapValueSlot<K>>;
13
13
  protected name: string;
14
14
  protected startSentinel: MapValueSlot<Buffer>;
@@ -17,15 +17,12 @@ export declare class LmdbAztecMap<K extends Key, V> implements AztecMultiMap<K,
17
17
  close(): Promise<void>;
18
18
  get(key: K): V | undefined;
19
19
  getAsync(key: K): Promise<V | undefined>;
20
- getValues(key: K): IterableIterator<V>;
21
- getValuesAsync(key: K): AsyncIterableIterator<V>;
22
20
  has(key: K): boolean;
23
21
  hasAsync(key: K): Promise<boolean>;
24
22
  set(key: K, val: V): Promise<void>;
25
23
  swap(key: K, fn: (val: V | undefined) => V): Promise<void>;
26
24
  setIfNotExists(key: K, val: V): Promise<boolean>;
27
25
  delete(key: K): Promise<void>;
28
- deleteValue(key: K, val: V): Promise<void>;
29
26
  entries(range?: Range<K>): IterableIterator<[K, V]>;
30
27
  entriesAsync(range?: Range<K> | undefined): AsyncIterableIterator<[K, V]>;
31
28
  values(range?: Range<K>): IterableIterator<V>;
@@ -35,18 +32,5 @@ export declare class LmdbAztecMap<K extends Key, V> implements AztecMultiMap<K,
35
32
  protected slot(key: K): MapValueSlot<K>;
36
33
  clear(): Promise<void>;
37
34
  }
38
- export declare class LmdbAztecMapWithSize<K extends Key, V> extends LmdbAztecMap<K, V> implements AztecMapWithSize<K, V>, AztecAsyncMultiMap<K, V> {
39
- #private;
40
- constructor(rootDb: Database, mapName: string);
41
- set(key: K, val: V): Promise<void>;
42
- delete(key: K): Promise<void>;
43
- deleteValue(key: K, val: V): Promise<void>;
44
- /**
45
- * Gets the size of the map by counting entries.
46
- * @returns The number of entries in the map
47
- */
48
- size(): number;
49
- clearCache(): void;
50
- }
51
35
  export {};
52
36
  //# sourceMappingURL=map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb/map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb/map.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,MAAM,CAAC;AAEnD,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEpE,uDAAuD;AACvD,KAAK,YAAY,CAAC,CAAC,SAAS,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAEvE;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAE,YAAW,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;gBAEhC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;IAW7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAI1B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAO1C,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,OAAO,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA2CjD,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAM/E,MAAM,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAM3C,WAAW,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAMjE,IAAI,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAMzC,SAAS,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAMhE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAIjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
package/dest/lmdb/map.js CHANGED
@@ -35,24 +35,6 @@
35
35
  getAsync(key) {
36
36
  return Promise.resolve(this.get(key));
37
37
  }
38
- *getValues(key) {
39
- const transaction = this.db.useReadTransaction();
40
- try {
41
- const values = this.db.getValues(this.slot(key), {
42
- transaction
43
- });
44
- for (const value of values){
45
- yield value?.[1];
46
- }
47
- } finally{
48
- transaction.done();
49
- }
50
- }
51
- async *getValuesAsync(key) {
52
- for (const value of this.getValues(key)){
53
- yield value;
54
- }
55
- }
56
38
  has(key) {
57
39
  return this.db.doesExist(this.slot(key));
58
40
  }
@@ -87,12 +69,6 @@
87
69
  async delete(key) {
88
70
  await this.db.remove(this.slot(key));
89
71
  }
90
- async deleteValue(key, val) {
91
- await this.db.remove(this.slot(key), [
92
- key,
93
- val
94
- ]);
95
- }
96
72
  *entries(range = {}) {
97
73
  const transaction = this.db.useReadTransaction();
98
74
  try {
@@ -163,60 +139,3 @@
163
139
  }
164
140
  }
165
141
  }
166
- export class LmdbAztecMapWithSize extends LmdbAztecMap {
167
- #sizeCache;
168
- constructor(rootDb, mapName){
169
- super(rootDb, mapName);
170
- }
171
- async set(key, val) {
172
- await this.db.childTransaction(()=>{
173
- const exists = this.db.doesExist(this.slot(key));
174
- this.db.putSync(this.slot(key), [
175
- key,
176
- val
177
- ], {
178
- appendDup: true
179
- });
180
- if (!exists) {
181
- this.#sizeCache = undefined; // Invalidate cache
182
- }
183
- });
184
- }
185
- async delete(key) {
186
- await this.db.childTransaction(async ()=>{
187
- const exists = this.db.doesExist(this.slot(key));
188
- if (exists) {
189
- await this.db.remove(this.slot(key));
190
- this.#sizeCache = undefined; // Invalidate cache
191
- }
192
- });
193
- }
194
- async deleteValue(key, val) {
195
- await this.db.childTransaction(async ()=>{
196
- const exists = this.db.doesExist(this.slot(key));
197
- if (exists) {
198
- await this.db.remove(this.slot(key), [
199
- key,
200
- val
201
- ]);
202
- this.#sizeCache = undefined; // Invalidate cache
203
- }
204
- });
205
- }
206
- /**
207
- * Gets the size of the map by counting entries.
208
- * @returns The number of entries in the map
209
- */ size() {
210
- if (this.#sizeCache === undefined) {
211
- this.#sizeCache = this.db.getCount({
212
- start: this.startSentinel,
213
- end: this.endSentinel
214
- });
215
- }
216
- return this.#sizeCache;
217
- }
218
- // Reset cache on clear/drop operations
219
- clearCache() {
220
- this.#sizeCache = undefined;
221
- }
222
- }
@@ -0,0 +1,12 @@
1
+ import type { Key } from '../interfaces/common.js';
2
+ import type { AztecAsyncMultiMap, AztecMultiMap } from '../interfaces/multi_map.js';
3
+ import { LmdbAztecMap } from './map.js';
4
+ /**
5
+ * A map backed by LMDB.
6
+ */
7
+ export declare class LmdbAztecMultiMap<K extends Key, V> extends LmdbAztecMap<K, V> implements AztecMultiMap<K, V>, AztecAsyncMultiMap<K, V> {
8
+ getValues(key: K): IterableIterator<V>;
9
+ getValuesAsync(key: K): AsyncIterableIterator<V>;
10
+ deleteValue(key: K, val: V): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=multi_map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/lmdb/multi_map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAC7C,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,CACzB,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAchC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAMjD,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjD"}
@@ -0,0 +1,29 @@
1
+ import { LmdbAztecMap } from './map.js';
2
+ /**
3
+ * A map backed by LMDB.
4
+ */ export class LmdbAztecMultiMap extends LmdbAztecMap {
5
+ *getValues(key) {
6
+ const transaction = this.db.useReadTransaction();
7
+ try {
8
+ const values = this.db.getValues(this.slot(key), {
9
+ transaction
10
+ });
11
+ for (const value of values){
12
+ yield value?.[1];
13
+ }
14
+ } finally{
15
+ transaction.done();
16
+ }
17
+ }
18
+ async *getValuesAsync(key) {
19
+ for (const value of this.getValues(key)){
20
+ yield value;
21
+ }
22
+ }
23
+ async deleteValue(key, val) {
24
+ await this.db.remove(this.slot(key), [
25
+ key,
26
+ val
27
+ ]);
28
+ }
29
+ }
@@ -2,7 +2,8 @@ import { type RootDatabase } from 'lmdb';
2
2
  import type { AztecArray, AztecAsyncArray } from '../interfaces/array.js';
3
3
  import type { Key, StoreSize } from '../interfaces/common.js';
4
4
  import type { AztecAsyncCounter, AztecCounter } from '../interfaces/counter.js';
5
- import type { AztecAsyncMap, AztecAsyncMultiMap, AztecMap, AztecMapWithSize, AztecMultiMap, AztecMultiMapWithSize } from '../interfaces/map.js';
5
+ import type { AztecAsyncMap, AztecMap } from '../interfaces/map.js';
6
+ import type { AztecAsyncMultiMap, AztecMultiMap } from '../interfaces/multi_map.js';
6
7
  import type { AztecAsyncSet, AztecSet } from '../interfaces/set.js';
7
8
  import type { AztecAsyncSingleton, AztecSingleton } from '../interfaces/singleton.js';
8
9
  import type { AztecAsyncKVStore, AztecKVStore } from '../interfaces/store.js';
@@ -54,18 +55,6 @@ export declare class AztecLmdbStore implements AztecKVStore, AztecAsyncKVStore {
54
55
  */
55
56
  openMultiMap<K extends Key, V>(name: string): AztecMultiMap<K, V> & AztecAsyncMultiMap<K, V>;
56
57
  openCounter<K extends Key>(name: string): AztecCounter<K> & AztecAsyncCounter<K>;
57
- /**
58
- * Creates a new AztecMultiMapWithSize in the store. A multi-map with size stores multiple values for a single key automatically.
59
- * @param name - Name of the map
60
- * @returns A new AztecMultiMapWithSize
61
- */
62
- openMultiMapWithSize<K extends Key, V>(name: string): AztecMultiMapWithSize<K, V>;
63
- /**
64
- * Creates a new AztecMapWithSize in the store.
65
- * @param name - Name of the map
66
- * @returns A new AztecMapWithSize
67
- */
68
- openMapWithSize<K extends Key, V>(name: string): AztecMapWithSize<K, V>;
69
58
  /**
70
59
  * Creates a new AztecArray in the store.
71
60
  * @param name - Name of the array
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,YAAY,EAAQ,MAAM,MAAM,CAAC;AAI9D,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQ9E;;GAEG;AACH,qBAAa,cAAe,YAAW,YAAY,EAAE,iBAAiB;;aAQlB,WAAW,EAAE,OAAO;IAAE,OAAO,CAAC,IAAI;IAPpF,WAAW,OAAiB;gBAOhB,MAAM,EAAE,YAAY,EAAkB,WAAW,EAAE,OAAO,EAAU,IAAI,EAAE,MAAM;IAgB5F;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,SAAkB,EAAE,4BAA4B;IACzD,SAAS,GAAE,OAAe,EAC1B,GAAG,yCAAgC,GAClC,cAAc;IASjB;;;OAGG;IACG,IAAI;IAWV;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAI7E;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAIpE;;;;OAIG;IACH,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAI5F,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAIhF;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAI9D;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAI1E;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI7C;;;;OAIG;IACG,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjE;;OAEG;IACG,KAAK;IAMX;;OAEG;IACG,IAAI;IAMV;;OAEG;IACG,KAAK;IAMX,kEAAkE;IAC5D,MAAM;IASZ,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAiBlC,OAAO,CAAC,iBAAiB;CA2B1B"}
@@ -6,7 +6,8 @@ import { tmpdir } from 'os';
6
6
  import { join } from 'path';
7
7
  import { LmdbAztecArray } from './array.js';
8
8
  import { LmdbAztecCounter } from './counter.js';
9
- import { LmdbAztecMap, LmdbAztecMapWithSize } from './map.js';
9
+ import { LmdbAztecMap } from './map.js';
10
+ import { LmdbAztecMultiMap } from './multi_map.js';
10
11
  import { LmdbAztecSet } from './set.js';
11
12
  import { LmdbAztecSingleton } from './singleton.js';
12
13
  /**
@@ -96,26 +97,12 @@ import { LmdbAztecSingleton } from './singleton.js';
96
97
  * @param name - Name of the map
97
98
  * @returns A new AztecMultiMap
98
99
  */ openMultiMap(name) {
99
- return new LmdbAztecMap(this.#multiMapData, name);
100
+ return new LmdbAztecMultiMap(this.#multiMapData, name);
100
101
  }
101
102
  openCounter(name) {
102
103
  return new LmdbAztecCounter(this.#data, name);
103
104
  }
104
105
  /**
105
- * Creates a new AztecMultiMapWithSize in the store. A multi-map with size stores multiple values for a single key automatically.
106
- * @param name - Name of the map
107
- * @returns A new AztecMultiMapWithSize
108
- */ openMultiMapWithSize(name) {
109
- return new LmdbAztecMapWithSize(this.#multiMapData, name);
110
- }
111
- /**
112
- * Creates a new AztecMapWithSize in the store.
113
- * @param name - Name of the map
114
- * @returns A new AztecMapWithSize
115
- */ openMapWithSize(name) {
116
- return new LmdbAztecMapWithSize(this.#data, name);
117
- }
118
- /**
119
106
  * Creates a new AztecArray in the store.
120
107
  * @param name - Name of the array
121
108
  * @returns A new AztecArray
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/array.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAG3E,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAKzC,OAAO,CAAC,KAAK;IAJzB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAS;gBAEH,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;IAKzD,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAgB7B,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAWnC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAc9C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAexC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,YAAY,IAAI,qBAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IA2BlD,WAAW,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAM9C,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;CAGnD"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/array.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAG3E,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAKzC,OAAO,CAAC,KAAK;IAJzB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAS;gBAEH,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;IAKzD,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAgB7B,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAWnC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAc9C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAexC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,YAAY,IAAI,qBAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IA2BlD,WAAW,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAM9C,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;CAGnD"}
@@ -1,4 +1,5 @@
1
1
  import { Encoder } from 'msgpackr/pack';
2
+ // eslint-disable-next-line import/no-cycle
2
3
  import { execInReadTx, execInWriteTx } from './store.js';
3
4
  import { deserializeKey, serializeKey } from './utils.js';
4
5
  export class LMDBArray {
@@ -1,5 +1,5 @@
1
1
  import type { Key, Range } from '../interfaces/common.js';
2
- import type { AztecAsyncMap, AztecAsyncMultiMap } from '../interfaces/map.js';
2
+ import type { AztecAsyncMap } from '../interfaces/map.js';
3
3
  import { type AztecLMDBStoreV2 } from './store.js';
4
4
  export declare class LMDBMap<K extends Key, V> implements AztecAsyncMap<K, V> {
5
5
  private store;
@@ -41,46 +41,4 @@ export declare class LMDBMap<K extends Key, V> implements AztecAsyncMap<K, V> {
41
41
  */
42
42
  keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
43
43
  }
44
- export declare class LMDBMultiMap<K extends Key, V> implements AztecAsyncMultiMap<K, V> {
45
- private store;
46
- private prefix;
47
- private encoder;
48
- constructor(store: AztecLMDBStoreV2, name: string);
49
- /**
50
- * Sets the value at the given key.
51
- * @param key - The key to set the value at
52
- * @param val - The value to set
53
- */
54
- set(key: K, val: V): Promise<void>;
55
- /**
56
- * Sets the value at the given key if it does not already exist.
57
- * @param key - The key to set the value at
58
- * @param val - The value to set
59
- */
60
- setIfNotExists(key: K, val: V): Promise<boolean>;
61
- /**
62
- * Deletes the value at the given key.
63
- * @param key - The key to delete the value at
64
- */
65
- delete(key: K): Promise<void>;
66
- getAsync(key: K): Promise<V | undefined>;
67
- hasAsync(key: K): Promise<boolean>;
68
- /**
69
- * Iterates over the map's key-value entries in the key's natural order
70
- * @param range - The range of keys to iterate over
71
- */
72
- entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]>;
73
- /**
74
- * Iterates over the map's values in the key's natural order
75
- * @param range - The range of keys to iterate over
76
- */
77
- valuesAsync(range?: Range<K>): AsyncIterableIterator<V>;
78
- /**
79
- * Iterates over the map's keys in the key's natural order
80
- * @param range - The range of keys to iterate over
81
- */
82
- keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
83
- deleteValue(key: K, val: V | undefined): Promise<void>;
84
- getValuesAsync(key: K): AsyncIterableIterator<V>;
85
- }
86
44
  //# sourceMappingURL=map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAIvD,OAAO,CAAC,KAAK;IAHzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAiB;gBAEZ,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;IAGzD;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAYhD;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAOxC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC;;;OAGG;IACI,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA8BpE;;;OAGG;IACI,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAM9D;;;OAGG;IACI,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;CAK7D"}
@@ -1,4 +1,5 @@
1
1
  import { Encoder } from 'msgpackr';
2
+ // eslint-disable-next-line import/no-cycle
2
3
  import { execInReadTx, execInWriteTx } from './store.js';
3
4
  import { deserializeKey, maxKey, minKey, serializeKey } from './utils.js';
4
5
  export class LMDBMap {
@@ -91,103 +92,3 @@ export class LMDBMap {
91
92
  }
92
93
  }
93
94
  }
94
- export class LMDBMultiMap {
95
- store;
96
- prefix;
97
- encoder;
98
- constructor(store, name){
99
- this.store = store;
100
- this.encoder = new Encoder();
101
- this.prefix = `multimap:${name}`;
102
- }
103
- /**
104
- * Sets the value at the given key.
105
- * @param key - The key to set the value at
106
- * @param val - The value to set
107
- */ set(key, val) {
108
- return execInWriteTx(this.store, (tx)=>tx.setIndex(serializeKey(this.prefix, key), this.encoder.pack(val)));
109
- }
110
- /**
111
- * Sets the value at the given key if it does not already exist.
112
- * @param key - The key to set the value at
113
- * @param val - The value to set
114
- */ setIfNotExists(key, val) {
115
- return execInWriteTx(this.store, async (tx)=>{
116
- const exists = !!await this.getAsync(key);
117
- if (!exists) {
118
- await tx.setIndex(serializeKey(this.prefix, key), this.encoder.pack(val));
119
- return true;
120
- }
121
- return false;
122
- });
123
- }
124
- /**
125
- * Deletes the value at the given key.
126
- * @param key - The key to delete the value at
127
- */ delete(key) {
128
- return execInWriteTx(this.store, (tx)=>tx.removeIndex(serializeKey(this.prefix, key)));
129
- }
130
- getAsync(key) {
131
- return execInReadTx(this.store, async (tx)=>{
132
- const val = await tx.getIndex(serializeKey(this.prefix, key));
133
- return val.length > 0 ? this.encoder.unpack(val[0]) : undefined;
134
- });
135
- }
136
- hasAsync(key) {
137
- return execInReadTx(this.store, async (tx)=>(await tx.getIndex(serializeKey(this.prefix, key))).length > 0);
138
- }
139
- /**
140
- * Iterates over the map's key-value entries in the key's natural order
141
- * @param range - The range of keys to iterate over
142
- */ async *entriesAsync(range) {
143
- const reverse = range?.reverse ?? false;
144
- const startKey = range?.start ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
145
- const endKey = range?.end ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
146
- let tx = this.store.getCurrentWriteTx();
147
- const shouldClose = !tx;
148
- tx ??= this.store.getReadTx();
149
- try {
150
- for await (const [key, vals] of tx.iterateIndex(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)){
151
- const deserializedKey = deserializeKey(this.prefix, key);
152
- if (!deserializedKey) {
153
- break;
154
- }
155
- for (const val of vals){
156
- yield [
157
- deserializedKey,
158
- this.encoder.unpack(val)
159
- ];
160
- }
161
- }
162
- } finally{
163
- if (shouldClose) {
164
- tx.close();
165
- }
166
- }
167
- }
168
- /**
169
- * Iterates over the map's values in the key's natural order
170
- * @param range - The range of keys to iterate over
171
- */ async *valuesAsync(range) {
172
- for await (const [_, value] of this.entriesAsync(range)){
173
- yield value;
174
- }
175
- }
176
- /**
177
- * Iterates over the map's keys in the key's natural order
178
- * @param range - The range of keys to iterate over
179
- */ async *keysAsync(range) {
180
- for await (const [key, _] of this.entriesAsync(range)){
181
- yield key;
182
- }
183
- }
184
- deleteValue(key, val) {
185
- return execInWriteTx(this.store, (tx)=>tx.removeIndex(serializeKey(this.prefix, key), this.encoder.pack(val)));
186
- }
187
- async *getValuesAsync(key) {
188
- const values = await execInReadTx(this.store, (tx)=>tx.getIndex(serializeKey(this.prefix, key)));
189
- for (const value of values){
190
- yield this.encoder.unpack(value);
191
- }
192
- }
193
- }
@@ -0,0 +1,46 @@
1
+ import type { Key, Range } from '../interfaces/common.js';
2
+ import type { AztecAsyncMultiMap } from '../interfaces/multi_map.js';
3
+ import { type AztecLMDBStoreV2 } from './store.js';
4
+ export declare class LMDBMultiMap<K extends Key, V> implements AztecAsyncMultiMap<K, V> {
5
+ private store;
6
+ private prefix;
7
+ private encoder;
8
+ constructor(store: AztecLMDBStoreV2, name: string);
9
+ /**
10
+ * Sets the value at the given key.
11
+ * @param key - The key to set the value at
12
+ * @param val - The value to set
13
+ */
14
+ set(key: K, val: V): Promise<void>;
15
+ /**
16
+ * Sets the value at the given key if it does not already exist.
17
+ * @param key - The key to set the value at
18
+ * @param val - The value to set
19
+ */
20
+ setIfNotExists(key: K, val: V): Promise<boolean>;
21
+ /**
22
+ * Deletes the value at the given key.
23
+ * @param key - The key to delete the value at
24
+ */
25
+ delete(key: K): Promise<void>;
26
+ getAsync(key: K): Promise<V | undefined>;
27
+ hasAsync(key: K): Promise<boolean>;
28
+ /**
29
+ * Iterates over the map's key-value entries in the key's natural order
30
+ * @param range - The range of keys to iterate over
31
+ */
32
+ entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]>;
33
+ /**
34
+ * Iterates over the map's values in the key's natural order
35
+ * @param range - The range of keys to iterate over
36
+ */
37
+ valuesAsync(range?: Range<K>): AsyncIterableIterator<V>;
38
+ /**
39
+ * Iterates over the map's keys in the key's natural order
40
+ * @param range - The range of keys to iterate over
41
+ */
42
+ keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
43
+ deleteValue(key: K, val: V | undefined): Promise<void>;
44
+ getValuesAsync(key: K): AsyncIterableIterator<V>;
45
+ }
46
+ //# sourceMappingURL=multi_map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/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;AAErE,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAE,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGjE,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAiB;gBACZ,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;IAIzD;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAWhD;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAOxC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC;;;OAGG;IACI,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAgCpE;;;OAGG;IACI,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAM9D;;;OAGG;IACI,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAM5D,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;CAMxD"}