@aztec/kv-store 0.76.4 → 0.77.0-testnet-ignition.17

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 (142) hide show
  1. package/dest/config.d.ts +1 -1
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +5 -7
  4. package/dest/indexeddb/array.d.ts +3 -3
  5. package/dest/indexeddb/array.d.ts.map +1 -1
  6. package/dest/indexeddb/array.js +44 -36
  7. package/dest/indexeddb/index.d.ts +1 -1
  8. package/dest/indexeddb/index.d.ts.map +1 -1
  9. package/dest/indexeddb/index.js +1 -4
  10. package/dest/indexeddb/map.d.ts +4 -4
  11. package/dest/indexeddb/map.d.ts.map +1 -1
  12. package/dest/indexeddb/map.js +72 -43
  13. package/dest/indexeddb/set.d.ts +4 -4
  14. package/dest/indexeddb/set.d.ts.map +1 -1
  15. package/dest/indexeddb/set.js +3 -4
  16. package/dest/indexeddb/singleton.d.ts +3 -3
  17. package/dest/indexeddb/singleton.d.ts.map +1 -1
  18. package/dest/indexeddb/singleton.js +17 -22
  19. package/dest/indexeddb/store.d.ts +8 -8
  20. package/dest/indexeddb/store.d.ts.map +1 -1
  21. package/dest/indexeddb/store.js +97 -93
  22. package/dest/interfaces/array.js +3 -2
  23. package/dest/interfaces/array_test_suite.d.ts +1 -1
  24. package/dest/interfaces/array_test_suite.d.ts.map +1 -1
  25. package/dest/interfaces/array_test_suite.js +29 -25
  26. package/dest/interfaces/common.d.ts +1 -1
  27. package/dest/interfaces/common.d.ts.map +1 -1
  28. package/dest/interfaces/common.js +3 -2
  29. package/dest/interfaces/counter.d.ts +1 -1
  30. package/dest/interfaces/counter.d.ts.map +1 -1
  31. package/dest/interfaces/counter.js +1 -2
  32. package/dest/interfaces/index.d.ts +1 -1
  33. package/dest/interfaces/index.d.ts.map +1 -1
  34. package/dest/interfaces/index.js +0 -1
  35. package/dest/interfaces/map.d.ts +1 -1
  36. package/dest/interfaces/map.d.ts.map +1 -1
  37. package/dest/interfaces/map.js +3 -2
  38. package/dest/interfaces/map_test_suite.d.ts +1 -1
  39. package/dest/interfaces/map_test_suite.d.ts.map +1 -1
  40. package/dest/interfaces/map_test_suite.js +87 -42
  41. package/dest/interfaces/set.d.ts +1 -1
  42. package/dest/interfaces/set.d.ts.map +1 -1
  43. package/dest/interfaces/set.js +1 -2
  44. package/dest/interfaces/set_test_suite.d.ts +1 -1
  45. package/dest/interfaces/set_test_suite.d.ts.map +1 -1
  46. package/dest/interfaces/set_test_suite.js +59 -22
  47. package/dest/interfaces/singleton.js +4 -2
  48. package/dest/interfaces/singleton_test_suite.d.ts +1 -1
  49. package/dest/interfaces/singleton_test_suite.d.ts.map +1 -1
  50. package/dest/interfaces/singleton_test_suite.js +7 -10
  51. package/dest/interfaces/store.d.ts +6 -6
  52. package/dest/interfaces/store.d.ts.map +1 -1
  53. package/dest/interfaces/store.js +1 -2
  54. package/dest/interfaces/store_test_suite.d.ts +1 -1
  55. package/dest/interfaces/store_test_suite.d.ts.map +1 -1
  56. package/dest/interfaces/store_test_suite.js +6 -9
  57. package/dest/interfaces/utils.d.ts +1 -1
  58. package/dest/interfaces/utils.d.ts.map +1 -1
  59. package/dest/interfaces/utils.js +12 -15
  60. package/dest/lmdb/array.d.ts +2 -2
  61. package/dest/lmdb/array.d.ts.map +1 -1
  62. package/dest/lmdb/array.js +46 -41
  63. package/dest/lmdb/counter.d.ts +3 -3
  64. package/dest/lmdb/counter.d.ts.map +1 -1
  65. package/dest/lmdb/counter.js +18 -24
  66. package/dest/lmdb/index.d.ts +1 -1
  67. package/dest/lmdb/index.d.ts.map +1 -1
  68. package/dest/lmdb/index.js +2 -6
  69. package/dest/lmdb/map.d.ts +3 -3
  70. package/dest/lmdb/map.d.ts.map +1 -1
  71. package/dest/lmdb/map.js +90 -68
  72. package/dest/lmdb/set.d.ts +3 -3
  73. package/dest/lmdb/set.d.ts.map +1 -1
  74. package/dest/lmdb/set.js +4 -5
  75. package/dest/lmdb/singleton.d.ts +2 -2
  76. package/dest/lmdb/singleton.d.ts.map +1 -1
  77. package/dest/lmdb/singleton.js +13 -14
  78. package/dest/lmdb/store.d.ts +7 -7
  79. package/dest/lmdb/store.d.ts.map +1 -1
  80. package/dest/lmdb/store.js +125 -134
  81. package/dest/lmdb-v2/array.d.ts +18 -0
  82. package/dest/lmdb-v2/array.d.ts.map +1 -0
  83. package/dest/lmdb-v2/array.js +101 -0
  84. package/dest/lmdb-v2/factory.d.ts +1 -1
  85. package/dest/lmdb-v2/factory.d.ts.map +1 -1
  86. package/dest/lmdb-v2/factory.js +30 -21
  87. package/dest/lmdb-v2/index.js +0 -1
  88. package/dest/lmdb-v2/map.js +82 -85
  89. package/dest/lmdb-v2/message.js +6 -7
  90. package/dest/lmdb-v2/read_transaction.js +65 -53
  91. package/dest/lmdb-v2/singleton.d.ts +1 -1
  92. package/dest/lmdb-v2/singleton.d.ts.map +1 -1
  93. package/dest/lmdb-v2/singleton.js +7 -5
  94. package/dest/lmdb-v2/store.d.ts +1 -1
  95. package/dest/lmdb-v2/store.d.ts.map +1 -1
  96. package/dest/lmdb-v2/store.js +31 -28
  97. package/dest/lmdb-v2/utils.d.ts +1 -1
  98. package/dest/lmdb-v2/utils.d.ts.map +1 -1
  99. package/dest/lmdb-v2/utils.js +30 -30
  100. package/dest/lmdb-v2/write_transaction.js +130 -110
  101. package/dest/stores/index.js +0 -1
  102. package/dest/stores/l2_tips_store.d.ts +2 -2
  103. package/dest/stores/l2_tips_store.d.ts.map +1 -1
  104. package/dest/stores/l2_tips_store.js +26 -12
  105. package/dest/utils.d.ts +3 -3
  106. package/dest/utils.d.ts.map +1 -1
  107. package/dest/utils.js +3 -7
  108. package/package.json +8 -11
  109. package/src/config.ts +1 -1
  110. package/src/indexeddb/array.ts +3 -3
  111. package/src/indexeddb/index.ts +1 -1
  112. package/src/indexeddb/map.ts +4 -4
  113. package/src/indexeddb/set.ts +4 -4
  114. package/src/indexeddb/singleton.ts +3 -3
  115. package/src/indexeddb/store.ts +8 -8
  116. package/src/interfaces/array_test_suite.ts +2 -2
  117. package/src/interfaces/common.ts +1 -1
  118. package/src/interfaces/counter.ts +1 -1
  119. package/src/interfaces/index.ts +1 -1
  120. package/src/interfaces/map.ts +1 -1
  121. package/src/interfaces/map_test_suite.ts +3 -3
  122. package/src/interfaces/set.ts +1 -1
  123. package/src/interfaces/set_test_suite.ts +3 -3
  124. package/src/interfaces/singleton_test_suite.ts +2 -2
  125. package/src/interfaces/store.ts +12 -12
  126. package/src/interfaces/store_test_suite.ts +2 -2
  127. package/src/interfaces/utils.ts +1 -1
  128. package/src/lmdb/array.ts +2 -2
  129. package/src/lmdb/counter.ts +3 -3
  130. package/src/lmdb/index.ts +1 -1
  131. package/src/lmdb/map.ts +3 -3
  132. package/src/lmdb/set.ts +3 -3
  133. package/src/lmdb/singleton.ts +2 -2
  134. package/src/lmdb/store.ts +14 -14
  135. package/src/lmdb-v2/array.ts +115 -0
  136. package/src/lmdb-v2/factory.ts +9 -5
  137. package/src/lmdb-v2/map.ts +1 -1
  138. package/src/lmdb-v2/singleton.ts +1 -1
  139. package/src/lmdb-v2/store.ts +4 -3
  140. package/src/lmdb-v2/utils.ts +1 -1
  141. package/src/stores/l2_tips_store.ts +10 -10
  142. package/src/utils.ts +4 -4
package/dest/lmdb/set.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { LmdbAztecMap } from './map.js';
2
2
  /**
3
3
  * A set backed by LMDB.
4
- */
5
- export class LmdbAztecSet {
6
- constructor(rootDb, mapName) {
4
+ */ export class LmdbAztecSet {
5
+ map;
6
+ constructor(rootDb, mapName){
7
7
  this.map = new LmdbAztecMap(rootDb, mapName);
8
8
  }
9
9
  close() {
@@ -25,9 +25,8 @@ export class LmdbAztecSet {
25
25
  return this.map.keys(range);
26
26
  }
27
27
  async *entriesAsync(range = {}) {
28
- for await (const key of this.map.keysAsync(range)) {
28
+ for await (const key of this.map.keysAsync(range)){
29
29
  yield key;
30
30
  }
31
31
  }
32
32
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGIvc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUFZLE1BQWdCLEVBQUUsT0FBZTtRQUMzQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQU07UUFDUixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBTTtRQUNiLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQWtCLEVBQUU7UUFDMUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQWtCLEVBQUU7UUFDdEMsSUFBSSxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -1,5 +1,5 @@
1
- import { type Database, type Key } from 'lmdb';
2
- import { type AztecAsyncSingleton, type AztecSingleton } from '../interfaces/singleton.js';
1
+ import type { Database, Key } from 'lmdb';
2
+ import type { AztecAsyncSingleton, AztecSingleton } from '../interfaces/singleton.js';
3
3
  /**
4
4
  * Stores a single value in LMDB.
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lmdb/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAK3F;;GAEG;AACH,qBAAa,kBAAkB,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;;gBAIzE,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM;IAKpD,GAAG,IAAI,CAAC,GAAG,SAAS;IAIpB,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAG3B"}
1
+ {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lmdb/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAKtF;;GAEG;AACH,qBAAa,kBAAkB,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;;gBAIzE,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM;IAKpD,GAAG,IAAI,CAAC,GAAG,SAAS;IAIpB,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAG3B"}
@@ -1,27 +1,26 @@
1
- var _LmdbAztecSingleton_db, _LmdbAztecSingleton_slot;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
1
  /**
4
2
  * Stores a single value in LMDB.
5
- */
6
- export class LmdbAztecSingleton {
7
- constructor(db, name) {
8
- _LmdbAztecSingleton_db.set(this, void 0);
9
- _LmdbAztecSingleton_slot.set(this, void 0);
10
- __classPrivateFieldSet(this, _LmdbAztecSingleton_db, db, "f");
11
- __classPrivateFieldSet(this, _LmdbAztecSingleton_slot, ['singleton', name, 'value'], "f");
3
+ */ export class LmdbAztecSingleton {
4
+ #db;
5
+ #slot;
6
+ constructor(db, name){
7
+ this.#db = db;
8
+ this.#slot = [
9
+ 'singleton',
10
+ name,
11
+ 'value'
12
+ ];
12
13
  }
13
14
  get() {
14
- return __classPrivateFieldGet(this, _LmdbAztecSingleton_db, "f").get(__classPrivateFieldGet(this, _LmdbAztecSingleton_slot, "f"));
15
+ return this.#db.get(this.#slot);
15
16
  }
16
17
  getAsync() {
17
18
  return Promise.resolve(this.get());
18
19
  }
19
20
  set(val) {
20
- return __classPrivateFieldGet(this, _LmdbAztecSingleton_db, "f").put(__classPrivateFieldGet(this, _LmdbAztecSingleton_slot, "f"), val);
21
+ return this.#db.put(this.#slot, val);
21
22
  }
22
23
  delete() {
23
- return __classPrivateFieldGet(this, _LmdbAztecSingleton_db, "f").remove(__classPrivateFieldGet(this, _LmdbAztecSingleton_slot, "f"));
24
+ return this.#db.remove(this.#slot);
24
25
  }
25
26
  }
26
- _LmdbAztecSingleton_db = new WeakMap(), _LmdbAztecSingleton_slot = new WeakMap();
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGIvc2luZ2xldG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQVksRUFBMEIsRUFBRSxJQUFZO1FBSHBELHlDQUE0QjtRQUM1QiwyQ0FBaUI7UUFHZix1QkFBQSxJQUFJLDBCQUFPLEVBQTRCLE1BQUEsQ0FBQztRQUN4Qyx1QkFBQSxJQUFJLDRCQUFTLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsTUFBQSxDQUFDO0lBQzVDLENBQUM7SUFFRCxHQUFHO1FBQ0QsT0FBTyx1QkFBQSxJQUFJLDhCQUFJLENBQUMsR0FBRyxDQUFDLHVCQUFBLElBQUksZ0NBQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBTTtRQUNSLE9BQU8sdUJBQUEsSUFBSSw4QkFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBQSxJQUFJLGdDQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLHVCQUFBLElBQUksOEJBQUksQ0FBQyxNQUFNLENBQUMsdUJBQUEsSUFBSSxnQ0FBTSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIn0=
@@ -1,11 +1,11 @@
1
1
  import { type RootDatabase } from 'lmdb';
2
- import { type AztecArray, type AztecAsyncArray } from '../interfaces/array.js';
3
- import { type Key, type StoreSize } from '../interfaces/common.js';
4
- import { type AztecAsyncCounter, type AztecCounter } from '../interfaces/counter.js';
5
- import { type AztecAsyncMap, type AztecAsyncMultiMap, type AztecMap, type AztecMapWithSize, type AztecMultiMap, type AztecMultiMapWithSize } from '../interfaces/map.js';
6
- import { type AztecAsyncSet, type AztecSet } from '../interfaces/set.js';
7
- import { type AztecAsyncSingleton, type AztecSingleton } from '../interfaces/singleton.js';
8
- import { type AztecAsyncKVStore, type AztecKVStore } from '../interfaces/store.js';
2
+ import type { AztecArray, AztecAsyncArray } from '../interfaces/array.js';
3
+ import type { Key, StoreSize } from '../interfaces/common.js';
4
+ import type { AztecAsyncCounter, AztecCounter } from '../interfaces/counter.js';
5
+ import type { AztecAsyncMap, AztecAsyncMultiMap, AztecMap, AztecMapWithSize, AztecMultiMap, AztecMultiMapWithSize } from '../interfaces/map.js';
6
+ import type { AztecAsyncSet, AztecSet } from '../interfaces/set.js';
7
+ import type { AztecAsyncSingleton, AztecSingleton } from '../interfaces/singleton.js';
8
+ import type { AztecAsyncKVStore, AztecKVStore } from '../interfaces/store.js';
9
9
  /**
10
10
  * A key-value store backed by LMDB.
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- var _AztecLmdbStore_rootDb, _AztecLmdbStore_data, _AztecLmdbStore_multiMapData, _AztecLmdbStore_log;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
1
  import { randomBytes } from '@aztec/foundation/crypto';
4
2
  import { createLogger } from '@aztec/foundation/log';
5
3
  import { promises as fs, mkdirSync } from 'fs';
@@ -13,186 +11,185 @@ import { LmdbAztecSet } from './set.js';
13
11
  import { LmdbAztecSingleton } from './singleton.js';
14
12
  /**
15
13
  * A key-value store backed by LMDB.
16
- */
17
- export class AztecLmdbStore {
18
- constructor(rootDb, isEphemeral, path) {
14
+ */ export class AztecLmdbStore {
15
+ isEphemeral;
16
+ path;
17
+ syncGetters;
18
+ #rootDb;
19
+ #data;
20
+ #multiMapData;
21
+ #log;
22
+ constructor(rootDb, isEphemeral, path){
19
23
  this.isEphemeral = isEphemeral;
20
24
  this.path = path;
21
25
  this.syncGetters = true;
22
- _AztecLmdbStore_rootDb.set(this, void 0);
23
- _AztecLmdbStore_data.set(this, void 0);
24
- _AztecLmdbStore_multiMapData.set(this, void 0);
25
- _AztecLmdbStore_log.set(this, createLogger('kv-store:lmdb'));
26
- __classPrivateFieldSet(this, _AztecLmdbStore_rootDb, rootDb, "f");
26
+ this.#log = createLogger('kv-store:lmdb');
27
+ this.#rootDb = rootDb;
27
28
  // big bucket to store all the data
28
- __classPrivateFieldSet(this, _AztecLmdbStore_data, rootDb.openDB('data', {
29
+ this.#data = rootDb.openDB('data', {
29
30
  encoding: 'msgpack',
30
- keyEncoding: 'ordered-binary',
31
- }), "f");
32
- __classPrivateFieldSet(this, _AztecLmdbStore_multiMapData, rootDb.openDB('data_dup_sort', {
31
+ keyEncoding: 'ordered-binary'
32
+ });
33
+ this.#multiMapData = rootDb.openDB('data_dup_sort', {
33
34
  encoding: 'ordered-binary',
34
35
  keyEncoding: 'ordered-binary',
35
- dupSort: true,
36
- }), "f");
36
+ dupSort: true
37
+ });
37
38
  }
38
39
  /**
39
- * Creates a new AztecKVStore backed by LMDB. The path to the database is optional. If not provided,
40
- * the database will be stored in a temporary location and be deleted when the process exists.
41
- *
42
- * The `rollupAddress` passed is checked against what is stored in the database. If they do not match,
43
- * the database is cleared before returning the store. This way data is not accidentally shared between
44
- * different rollup instances.
45
- *
46
- * @param path - A path on the disk to store the database. Optional
47
- * @param ephemeral - true if the store should only exist in memory and not automatically be flushed to disk. Optional
48
- * @param log - A logger to use. Optional
49
- * @returns The store
50
- */
51
- static open(path, mapSizeKb = 1 * 1024 * 1024, // defaults to 1 GB map size
52
- ephemeral = false, log = createLogger('kv-store:lmdb')) {
40
+ * Creates a new AztecKVStore backed by LMDB. The path to the database is optional. If not provided,
41
+ * the database will be stored in a temporary location and be deleted when the process exists.
42
+ *
43
+ * The `rollupAddress` passed is checked against what is stored in the database. If they do not match,
44
+ * the database is cleared before returning the store. This way data is not accidentally shared between
45
+ * different rollup instances.
46
+ *
47
+ * @param path - A path on the disk to store the database. Optional
48
+ * @param ephemeral - true if the store should only exist in memory and not automatically be flushed to disk. Optional
49
+ * @param log - A logger to use. Optional
50
+ * @returns The store
51
+ */ static open(path, mapSizeKb = 1 * 1024 * 1024, ephemeral = false, log = createLogger('kv-store:lmdb')) {
53
52
  const dbPath = path ?? join(tmpdir(), randomBytes(8).toString('hex'));
54
- mkdirSync(dbPath, { recursive: true });
53
+ mkdirSync(dbPath, {
54
+ recursive: true
55
+ });
55
56
  const mapSize = 1024 * mapSizeKb;
56
57
  log.debug(`Opening LMDB database at ${path || 'temporary location'} with map size ${mapSize}`);
57
- const rootDb = open({ path: dbPath, noSync: ephemeral, mapSize });
58
+ const rootDb = open({
59
+ path: dbPath,
60
+ noSync: ephemeral,
61
+ mapSize
62
+ });
58
63
  return new AztecLmdbStore(rootDb, ephemeral, dbPath);
59
64
  }
60
65
  /**
61
- * Forks the current DB into a new DB by backing it up to a temporary location and opening a new lmdb db.
62
- * @returns A new AztecLmdbStore.
63
- */
64
- async fork() {
66
+ * Forks the current DB into a new DB by backing it up to a temporary location and opening a new lmdb db.
67
+ * @returns A new AztecLmdbStore.
68
+ */ async fork() {
65
69
  const baseDir = this.path;
66
- __classPrivateFieldGet(this, _AztecLmdbStore_log, "f").debug(`Forking store with basedir ${baseDir}`);
70
+ this.#log.debug(`Forking store with basedir ${baseDir}`);
67
71
  const forkPath = await fs.mkdtemp(join(baseDir, 'aztec-store-fork-'));
68
- __classPrivateFieldGet(this, _AztecLmdbStore_log, "f").verbose(`Forking store to ${forkPath}`);
69
- await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").backup(forkPath, false);
70
- const forkDb = open(forkPath, { noSync: this.isEphemeral });
71
- __classPrivateFieldGet(this, _AztecLmdbStore_log, "f").debug(`Forked store at ${forkPath} opened successfully`);
72
+ this.#log.verbose(`Forking store to ${forkPath}`);
73
+ await this.#rootDb.backup(forkPath, false);
74
+ const forkDb = open(forkPath, {
75
+ noSync: this.isEphemeral
76
+ });
77
+ this.#log.debug(`Forked store at ${forkPath} opened successfully`);
72
78
  return new AztecLmdbStore(forkDb, this.isEphemeral, forkPath);
73
79
  }
74
80
  /**
75
- * Creates a new AztecMap in the store.
76
- * @param name - Name of the map
77
- * @returns A new AztecMap
78
- */
79
- openMap(name) {
80
- return new LmdbAztecMap(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
81
+ * Creates a new AztecMap in the store.
82
+ * @param name - Name of the map
83
+ * @returns A new AztecMap
84
+ */ openMap(name) {
85
+ return new LmdbAztecMap(this.#data, name);
81
86
  }
82
87
  /**
83
- * Creates a new AztecSet in the store.
84
- * @param name - Name of the set
85
- * @returns A new AztecSet
86
- */
87
- openSet(name) {
88
- return new LmdbAztecSet(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
88
+ * Creates a new AztecSet in the store.
89
+ * @param name - Name of the set
90
+ * @returns A new AztecSet
91
+ */ openSet(name) {
92
+ return new LmdbAztecSet(this.#data, name);
89
93
  }
90
94
  /**
91
- * Creates a new AztecMultiMap in the store. A multi-map stores multiple values for a single key automatically.
92
- * @param name - Name of the map
93
- * @returns A new AztecMultiMap
94
- */
95
- openMultiMap(name) {
96
- return new LmdbAztecMap(__classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f"), name);
95
+ * Creates a new AztecMultiMap in the store. A multi-map stores multiple values for a single key automatically.
96
+ * @param name - Name of the map
97
+ * @returns A new AztecMultiMap
98
+ */ openMultiMap(name) {
99
+ return new LmdbAztecMap(this.#multiMapData, name);
97
100
  }
98
101
  openCounter(name) {
99
- return new LmdbAztecCounter(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
102
+ return new LmdbAztecCounter(this.#data, name);
100
103
  }
101
104
  /**
102
- * Creates a new AztecMultiMapWithSize in the store. A multi-map with size stores multiple values for a single key automatically.
103
- * @param name - Name of the map
104
- * @returns A new AztecMultiMapWithSize
105
- */
106
- openMultiMapWithSize(name) {
107
- return new LmdbAztecMapWithSize(__classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f"), name);
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);
108
110
  }
109
111
  /**
110
- * Creates a new AztecMapWithSize in the store.
111
- * @param name - Name of the map
112
- * @returns A new AztecMapWithSize
113
- */
114
- openMapWithSize(name) {
115
- return new LmdbAztecMapWithSize(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
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);
116
117
  }
117
118
  /**
118
- * Creates a new AztecArray in the store.
119
- * @param name - Name of the array
120
- * @returns A new AztecArray
121
- */
122
- openArray(name) {
123
- return new LmdbAztecArray(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
119
+ * Creates a new AztecArray in the store.
120
+ * @param name - Name of the array
121
+ * @returns A new AztecArray
122
+ */ openArray(name) {
123
+ return new LmdbAztecArray(this.#data, name);
124
124
  }
125
125
  /**
126
- * Creates a new AztecSingleton in the store.
127
- * @param name - Name of the singleton
128
- * @returns A new AztecSingleton
129
- */
130
- openSingleton(name) {
131
- return new LmdbAztecSingleton(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
126
+ * Creates a new AztecSingleton in the store.
127
+ * @param name - Name of the singleton
128
+ * @returns A new AztecSingleton
129
+ */ openSingleton(name) {
130
+ return new LmdbAztecSingleton(this.#data, name);
132
131
  }
133
132
  /**
134
- * Runs a callback in a transaction.
135
- * @param callback - Function to execute in a transaction
136
- * @returns A promise that resolves to the return value of the callback
137
- */
138
- transaction(callback) {
139
- return __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").transaction(callback);
133
+ * Runs a callback in a transaction.
134
+ * @param callback - Function to execute in a transaction
135
+ * @returns A promise that resolves to the return value of the callback
136
+ */ transaction(callback) {
137
+ return this.#rootDb.transaction(callback);
140
138
  }
141
139
  /**
142
- * Runs a callback in a transaction.
143
- * @param callback - Function to execute in a transaction
144
- * @returns A promise that resolves to the return value of the callback
145
- */
146
- async transactionAsync(callback) {
147
- return await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").transaction(callback);
140
+ * Runs a callback in a transaction.
141
+ * @param callback - Function to execute in a transaction
142
+ * @returns A promise that resolves to the return value of the callback
143
+ */ async transactionAsync(callback) {
144
+ return await this.#rootDb.transaction(callback);
148
145
  }
149
146
  /**
150
- * Clears all entries in the store & sub DBs.
151
- */
152
- async clear() {
153
- await __classPrivateFieldGet(this, _AztecLmdbStore_data, "f").clearAsync();
154
- await __classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f").clearAsync();
155
- await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").clearAsync();
147
+ * Clears all entries in the store & sub DBs.
148
+ */ async clear() {
149
+ await this.#data.clearAsync();
150
+ await this.#multiMapData.clearAsync();
151
+ await this.#rootDb.clearAsync();
156
152
  }
157
153
  /**
158
- * Drops the database & sub DBs.
159
- */
160
- async drop() {
161
- await __classPrivateFieldGet(this, _AztecLmdbStore_data, "f").drop();
162
- await __classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f").drop();
163
- await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").drop();
154
+ * Drops the database & sub DBs.
155
+ */ async drop() {
156
+ await this.#data.drop();
157
+ await this.#multiMapData.drop();
158
+ await this.#rootDb.drop();
164
159
  }
165
160
  /**
166
- * Close the database. Note, once this is closed we can no longer interact with the DB.
167
- */
168
- async close() {
169
- await __classPrivateFieldGet(this, _AztecLmdbStore_data, "f").close();
170
- await __classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f").close();
171
- await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").close();
172
- }
173
- /** Deletes this store and removes the database files from disk */
174
- async delete() {
161
+ * Close the database. Note, once this is closed we can no longer interact with the DB.
162
+ */ async close() {
163
+ await this.#data.close();
164
+ await this.#multiMapData.close();
165
+ await this.#rootDb.close();
166
+ }
167
+ /** Deletes this store and removes the database files from disk */ async delete() {
175
168
  await this.drop();
176
169
  await this.close();
177
170
  if (this.path) {
178
- await fs.rm(this.path, { recursive: true, force: true });
179
- __classPrivateFieldGet(this, _AztecLmdbStore_log, "f").verbose(`Deleted database files at ${this.path}`);
171
+ await fs.rm(this.path, {
172
+ recursive: true,
173
+ force: true,
174
+ maxRetries: 3
175
+ });
176
+ this.#log.verbose(`Deleted database files at ${this.path}`);
180
177
  }
181
178
  }
182
179
  estimateSize() {
183
- const stats = __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").getStats();
180
+ const stats = this.#rootDb.getStats();
184
181
  // The 'mapSize' is the total amount of virtual address space allocated to the DB (effectively the maximum possible size)
185
182
  // http://www.lmdb.tech/doc/group__mdb.html#a4bde3c8b676457342cba2fe27aed5fbd
186
183
  let mapSize = 0;
187
184
  if ('mapSize' in stats && typeof stats.mapSize === 'number') {
188
185
  mapSize = stats.mapSize;
189
186
  }
190
- const dataResult = this.estimateSubDBSize(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"));
191
- const multiResult = this.estimateSubDBSize(__classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f"));
187
+ const dataResult = this.estimateSubDBSize(this.#data);
188
+ const multiResult = this.estimateSubDBSize(this.#multiMapData);
192
189
  return Promise.resolve({
193
190
  mappingSize: mapSize,
194
191
  actualSize: dataResult.actualSize + multiResult.actualSize,
195
- numItems: dataResult.numItems + multiResult.numItems,
192
+ numItems: dataResult.numItems + multiResult.numItems
196
193
  });
197
194
  }
198
195
  estimateSubDBSize(db) {
@@ -204,22 +201,16 @@ export class AztecLmdbStore {
204
201
  numItems = stats.entryCount;
205
202
  }
206
203
  // The closest value we can get to the actual size of the database is the number of consumed pages * the page size
207
- if ('treeBranchPageCount' in stats &&
208
- typeof stats.treeBranchPageCount === 'number' &&
209
- 'treeLeafPageCount' in stats &&
210
- typeof stats.treeLeafPageCount === 'number' &&
211
- 'overflowPages' in stats &&
212
- typeof stats.overflowPages === 'number' &&
213
- 'pageSize' in stats &&
214
- typeof stats.pageSize === 'number') {
204
+ if ('treeBranchPageCount' in stats && typeof stats.treeBranchPageCount === 'number' && 'treeLeafPageCount' in stats && typeof stats.treeLeafPageCount === 'number' && 'overflowPages' in stats && typeof stats.overflowPages === 'number' && 'pageSize' in stats && typeof stats.pageSize === 'number') {
215
205
  const branchPages = stats.treeBranchPageCount;
216
206
  const leafPages = stats.treeLeafPageCount;
217
207
  const overflowPages = stats.overflowPages;
218
208
  const pageSize = stats.pageSize;
219
209
  actualSize = (branchPages + leafPages + overflowPages) * pageSize;
220
210
  }
221
- return { actualSize, numItems };
211
+ return {
212
+ actualSize,
213
+ numItems
214
+ };
222
215
  }
223
216
  }
224
- _AztecLmdbStore_rootDb = new WeakMap(), _AztecLmdbStore_data = new WeakMap(), _AztecLmdbStore_multiMapData = new WeakMap(), _AztecLmdbStore_log = new WeakMap();
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQy9DLE9BQU8sRUFBb0MsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWdCNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFRekIsWUFBWSxNQUFvQixFQUFrQixXQUFvQixFQUFVLElBQVk7UUFBMUMsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBUDVGLGdCQUFXLEdBQUcsSUFBYSxDQUFDO1FBRTVCLHlDQUFzQjtRQUN0Qix1Q0FBOEI7UUFDOUIsK0NBQXNDO1FBQ3RDLDhCQUFPLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBQztRQUduQyx1QkFBQSxJQUFJLDBCQUFXLE1BQU0sTUFBQSxDQUFDO1FBRXRCLG1DQUFtQztRQUNuQyx1QkFBQSxJQUFJLHdC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
@@ -0,0 +1,18 @@
1
+ import type { AztecAsyncArray } from '../interfaces/array.js';
2
+ import { AztecLMDBStoreV2 } from './store.js';
3
+ export declare class LMDBArray<T> implements AztecAsyncArray<T> {
4
+ private store;
5
+ private length;
6
+ private encoder;
7
+ private prefix;
8
+ constructor(store: AztecLMDBStoreV2, name: string);
9
+ pop(): Promise<T | undefined>;
10
+ push(...vals: T[]): Promise<number>;
11
+ setAt(index: number, val: T): Promise<boolean>;
12
+ atAsync(index: number): Promise<T | undefined>;
13
+ lengthAsync(): Promise<number>;
14
+ entriesAsync(): AsyncIterableIterator<[number, T]>;
15
+ valuesAsync(): AsyncIterableIterator<T>;
16
+ [Symbol.asyncIterator](): AsyncIterableIterator<T>;
17
+ }
18
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,101 @@
1
+ import { Encoder } from 'msgpackr/pack';
2
+ import { execInReadTx, execInWriteTx } from './store.js';
3
+ import { deserializeKey, serializeKey } from './utils.js';
4
+ export class LMDBArray {
5
+ store;
6
+ length;
7
+ encoder;
8
+ prefix;
9
+ constructor(store, name){
10
+ this.store = store;
11
+ this.encoder = new Encoder();
12
+ this.length = store.openSingleton(name + ':length');
13
+ this.prefix = `array:${name}`;
14
+ }
15
+ pop() {
16
+ return execInWriteTx(this.store, async (tx)=>{
17
+ const length = await this.lengthAsync();
18
+ if (length === 0) {
19
+ return;
20
+ }
21
+ const val = await tx.get(serializeKey(this.prefix, length - 1));
22
+ await tx.remove(serializeKey(this.prefix, length - 1));
23
+ await this.length.set(length - 1);
24
+ return val ? this.encoder.unpack(val) : undefined;
25
+ });
26
+ }
27
+ push(...vals) {
28
+ return execInWriteTx(this.store, async (tx)=>{
29
+ let length = await this.lengthAsync();
30
+ for (const val of vals){
31
+ await tx.set(serializeKey(this.prefix, length++), this.encoder.pack(val));
32
+ }
33
+ await this.length.set(length);
34
+ return length;
35
+ });
36
+ }
37
+ setAt(index, val) {
38
+ return execInWriteTx(this.store, async (tx)=>{
39
+ const length = await this.lengthAsync();
40
+ if (index < 0) {
41
+ index += length;
42
+ }
43
+ if (index < 0 || index >= length) {
44
+ return false;
45
+ }
46
+ await tx.set(serializeKey(this.prefix, index), this.encoder.pack(val));
47
+ return true;
48
+ });
49
+ }
50
+ atAsync(index) {
51
+ return execInReadTx(this.store, async (tx)=>{
52
+ const length = await this.lengthAsync();
53
+ if (index < 0) {
54
+ index += length;
55
+ }
56
+ if (index < 0 || index >= length) {
57
+ return undefined;
58
+ }
59
+ const val = await tx.get(serializeKey(this.prefix, index));
60
+ return val ? this.encoder.unpack(val) : undefined;
61
+ });
62
+ }
63
+ async lengthAsync() {
64
+ return await this.length.getAsync() ?? 0;
65
+ }
66
+ async *entriesAsync() {
67
+ // pin array length so that pushes don't affect iteration
68
+ const length = await this.lengthAsync();
69
+ if (length === 0) {
70
+ return;
71
+ }
72
+ let tx = this.store.getCurrentWriteTx();
73
+ const shouldClose = !tx;
74
+ tx ??= this.store.getReadTx();
75
+ try {
76
+ for await (const [key, val] of tx.iterate(serializeKey(this.prefix, 0), undefined, false, length)){
77
+ const deserializedKey = deserializeKey(this.prefix, key);
78
+ // if pops happened while iterating we may have read too much. Terminate early
79
+ if (deserializedKey === false) {
80
+ break;
81
+ }
82
+ yield [
83
+ deserializedKey,
84
+ this.encoder.unpack(val)
85
+ ];
86
+ }
87
+ } finally{
88
+ if (shouldClose) {
89
+ tx.close();
90
+ }
91
+ }
92
+ }
93
+ async *valuesAsync() {
94
+ for await (const [_, value] of this.entriesAsync()){
95
+ yield value;
96
+ }
97
+ }
98
+ [Symbol.asyncIterator]() {
99
+ return this.valuesAsync();
100
+ }
101
+ }
@@ -1,5 +1,5 @@
1
1
  import { type Logger } from '@aztec/foundation/log';
2
- import { type DataStoreConfig } from '../config.js';
2
+ import type { DataStoreConfig } from '../config.js';
3
3
  import { AztecLMDBStoreV2 } from './store.js';
4
4
  export declare function createStore(name: string, config: DataStoreConfig, log?: Logger): Promise<AztecLMDBStoreV2>;
5
5
  export declare function openTmpStore(name: string, ephemeral?: boolean, dbMapSizeKb?: number, // 10GB
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAMlE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9C,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,GAAG,GAAE,MAAiD,GACrD,OAAO,CAAC,gBAAgB,CAAC,CAsC3B;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAc,EACzB,WAAW,SAAqB,EAAE,OAAO;AACzC,UAAU,SAAc,EACxB,GAAG,GAAE,MAAiD,GACrD,OAAO,CAAC,gBAAgB,CAAC,CAe3B;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,WAAW,SAAqB,EAAE,OAAO;AACzC,UAAU,SAAc,EACxB,GAAG,GAAE,MAAyC,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CAG3B"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAMlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9C,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,GAAG,GAAE,MAAiD,GACrD,OAAO,CAAC,gBAAgB,CAAC,CAsC3B;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAc,EACzB,WAAW,SAAqB,EAAE,OAAO;AACzC,UAAU,SAAc,EACxB,GAAG,GAAE,MAAiD,GACrD,OAAO,CAAC,gBAAgB,CAAC,CAmB3B;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,WAAW,SAAqB,EAAE,OAAO;AACzC,UAAU,SAAc,EACxB,GAAG,GAAE,MAAyC,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CAG3B"}