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

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 +11 -10
  142. package/src/utils.ts +4 -4
@@ -1,4 +1,4 @@
1
- import { EthAddress } from '@aztec/circuits.js';
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
3
  import { mkdir, mkdtemp, readFile, rm, writeFile } from 'fs/promises';
4
4
  import { tmpdir } from 'os';
@@ -11,51 +11,60 @@ export async function createStore(name, config, log = createLogger('kv-store:lmd
11
11
  let store;
12
12
  if (typeof dataDirectory !== 'undefined') {
13
13
  const subDir = join(dataDirectory, name);
14
- await mkdir(subDir, { recursive: true });
14
+ await mkdir(subDir, {
15
+ recursive: true
16
+ });
15
17
  if (l1Contracts) {
16
18
  const { rollupAddress } = l1Contracts;
17
- const localRollupAddress = await readFile(join(subDir, ROLLUP_ADDRESS_FILE), 'utf-8')
18
- .then(EthAddress.fromString)
19
- .catch(() => EthAddress.ZERO);
19
+ const localRollupAddress = await readFile(join(subDir, ROLLUP_ADDRESS_FILE), 'utf-8').then(EthAddress.fromString).catch(()=>EthAddress.ZERO);
20
20
  if (!localRollupAddress.equals(rollupAddress)) {
21
21
  if (!localRollupAddress.isZero()) {
22
22
  log.warn(`Rollup address mismatch. Clearing entire database...`, {
23
23
  expected: rollupAddress,
24
- found: localRollupAddress,
24
+ found: localRollupAddress
25
+ });
26
+ await rm(subDir, {
27
+ recursive: true,
28
+ force: true,
29
+ maxRetries: 3
30
+ });
31
+ await mkdir(subDir, {
32
+ recursive: true
25
33
  });
26
- await rm(subDir, { recursive: true, force: true });
27
- await mkdir(subDir, { recursive: true });
28
34
  }
29
35
  await writeFile(join(subDir, ROLLUP_ADDRESS_FILE), rollupAddress.toString());
30
36
  }
31
37
  }
32
38
  log.info(`Creating ${name} data store at directory ${subDir} with map size ${config.dataStoreMapSizeKB} KB (LMDB v2)`);
33
- store = await AztecLMDBStoreV2.new(subDir, config.dataStoreMapSizeKB, MAX_READERS, () => Promise.resolve(), log);
34
- }
35
- else {
39
+ store = await AztecLMDBStoreV2.new(subDir, config.dataStoreMapSizeKB, MAX_READERS, ()=>Promise.resolve(), log);
40
+ } else {
36
41
  store = await openTmpStore(name, true, config.dataStoreMapSizeKB, MAX_READERS, log);
37
42
  }
38
43
  return store;
39
44
  }
40
- export async function openTmpStore(name, ephemeral = true, dbMapSizeKb = 10 * 1024 * 1024, // 10GB
41
- maxReaders = MAX_READERS, log = createLogger('kv-store:lmdb-v2:' + name)) {
45
+ export async function openTmpStore(name, ephemeral = true, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS, log = createLogger('kv-store:lmdb-v2:' + name)) {
42
46
  const dataDir = await mkdtemp(join(tmpdir(), name + '-'));
43
47
  log.debug(`Created temporary data store at: ${dataDir} with size: ${dbMapSizeKb} KB (LMDB v2)`);
44
48
  // pass a cleanup callback because process.on('beforeExit', cleanup) does not work under Jest
45
- const cleanup = async () => {
49
+ const cleanup = async ()=>{
46
50
  if (ephemeral) {
47
- await rm(dataDir, { recursive: true, force: true });
48
- log.debug(`Deleted temporary data store: ${dataDir}`);
49
- }
50
- else {
51
+ try {
52
+ await rm(dataDir, {
53
+ recursive: true,
54
+ force: true,
55
+ maxRetries: 3
56
+ });
57
+ log.debug(`Deleted temporary data store: ${dataDir}`);
58
+ } catch (err) {
59
+ log.warn(`Failed to delete temporary data directory (LMDB v2) ${dataDir}: ${err}`);
60
+ }
61
+ } else {
51
62
  log.debug(`Leaving temporary data store: ${dataDir}`);
52
63
  }
53
64
  };
54
65
  return AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, cleanup, log);
55
66
  }
56
- export function openStoreAt(dataDir, dbMapSizeKb = 10 * 1024 * 1024, // 10GB
57
- maxReaders = MAX_READERS, log = createLogger('kv-store:lmdb-v2')) {
67
+ export function openStoreAt(dataDir, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS, log = createLogger('kv-store:lmdb-v2')) {
58
68
  log.debug(`Opening data store at: ${dataDir} with size: ${dbMapSizeKb} KB (LMDB v2)`);
59
69
  return AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined, log);
60
70
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUM7QUFDN0MsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixJQUFZLEVBQ1osTUFBdUIsRUFDdkIsTUFBYyxZQUFZLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBRXRELE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTlDLElBQUksS0FBdUIsQ0FBQztJQUM1QixJQUFJLE9BQU8sYUFBYSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFekMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsV0FBVyxDQUFDO1lBQ3RDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQztpQkFDbEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7aUJBQzNCLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztvQkFDakMsR0FBRyxDQUFDLElBQUksQ0FBQyxzREFBc0QsRUFBRTt3QkFDL0QsUUFBUSxFQUFFLGFBQWE7d0JBQ3ZCLEtBQUssRUFBRSxrQkFBa0I7cUJBQzFCLENBQUMsQ0FBQztvQkFFSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUNuRCxNQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztnQkFFRCxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNILENBQUM7UUFFRCxHQUFHLENBQUMsSUFBSSxDQUNOLFlBQVksSUFBSSw0QkFBNEIsTUFBTSxrQkFBa0IsTUFBTSxDQUFDLGtCQUFrQixlQUFlLENBQzdHLENBQUM7UUFDRixLQUFLLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25ILENBQUM7U0FBTSxDQUFDO1FBQ04sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxZQUFZLENBQ2hDLElBQVksRUFDWixZQUFxQixJQUFJLEVBQ3pCLFdBQVcsR0FBRyxFQUFFLEdBQUcsSUFBSyxHQUFHLElBQUssRUFBRSxPQUFPO0FBQ3pDLFVBQVUsR0FBRyxXQUFXLEVBQ3hCLE1BQWMsWUFBWSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUV0RCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsR0FBRyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsT0FBTyxlQUFlLFdBQVcsZUFBZSxDQUFDLENBQUM7SUFFaEcsNkZBQTZGO0lBQzdGLE1BQU0sT0FBTyxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ3pCLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELEdBQUcsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQzthQUFNLENBQUM7WUFDTixHQUFHLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3pCLE9BQWUsRUFDZixXQUFXLEdBQUcsRUFBRSxHQUFHLElBQUssR0FBRyxJQUFLLEVBQUUsT0FBTztBQUN6QyxVQUFVLEdBQUcsV0FBVyxFQUN4QixNQUFjLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztJQUU5QyxHQUFHLENBQUMsS0FBSyxDQUFDLDBCQUEwQixPQUFPLGVBQWUsV0FBVyxlQUFlLENBQUMsQ0FBQztJQUN0RixPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDaEYsQ0FBQyJ9
@@ -1,3 +1,2 @@
1
1
  export * from './store.js';
2
2
  export * from './factory.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi12Mi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGNBQWMsQ0FBQyJ9
@@ -2,28 +2,29 @@ import { Encoder } from 'msgpackr';
2
2
  import { execInReadTx, execInWriteTx } from './store.js';
3
3
  import { deserializeKey, maxKey, minKey, serializeKey } from './utils.js';
4
4
  export class LMDBMap {
5
- constructor(store, name) {
5
+ store;
6
+ prefix;
7
+ encoder;
8
+ constructor(store, name){
6
9
  this.store = store;
7
10
  this.encoder = new Encoder();
8
11
  this.prefix = `map:${name}`;
9
12
  }
10
13
  /**
11
- * Sets the value at the given key.
12
- * @param key - The key to set the value at
13
- * @param val - The value to set
14
- */
15
- set(key, val) {
16
- return execInWriteTx(this.store, tx => tx.set(serializeKey(this.prefix, key), this.encoder.pack(val)));
14
+ * Sets the value at the given key.
15
+ * @param key - The key to set the value at
16
+ * @param val - The value to set
17
+ */ set(key, val) {
18
+ return execInWriteTx(this.store, (tx)=>tx.set(serializeKey(this.prefix, key), this.encoder.pack(val)));
17
19
  }
18
20
  /**
19
- * Sets the value at the given key if it does not already exist.
20
- * @param key - The key to set the value at
21
- * @param val - The value to set
22
- */
23
- setIfNotExists(key, val) {
24
- return execInWriteTx(this.store, async (tx) => {
21
+ * Sets the value at the given key if it does not already exist.
22
+ * @param key - The key to set the value at
23
+ * @param val - The value to set
24
+ */ setIfNotExists(key, val) {
25
+ return execInWriteTx(this.store, async (tx)=>{
25
26
  const strKey = serializeKey(this.prefix, key);
26
- const exists = !!(await tx.get(strKey));
27
+ const exists = !!await tx.get(strKey);
27
28
  if (!exists) {
28
29
  await tx.set(strKey, this.encoder.pack(val));
29
30
  return true;
@@ -32,88 +33,87 @@ export class LMDBMap {
32
33
  });
33
34
  }
34
35
  /**
35
- * Deletes the value at the given key.
36
- * @param key - The key to delete the value at
37
- */
38
- delete(key) {
39
- return execInWriteTx(this.store, tx => tx.remove(serializeKey(this.prefix, key)));
36
+ * Deletes the value at the given key.
37
+ * @param key - The key to delete the value at
38
+ */ delete(key) {
39
+ return execInWriteTx(this.store, (tx)=>tx.remove(serializeKey(this.prefix, key)));
40
40
  }
41
41
  getAsync(key) {
42
- return execInReadTx(this.store, async (tx) => {
42
+ return execInReadTx(this.store, async (tx)=>{
43
43
  const val = await tx.get(serializeKey(this.prefix, key));
44
44
  return val ? this.encoder.unpack(val) : undefined;
45
45
  });
46
46
  }
47
47
  hasAsync(key) {
48
- return execInReadTx(this.store, async (tx) => !!(await tx.get(serializeKey(this.prefix, key))));
48
+ return execInReadTx(this.store, async (tx)=>!!await tx.get(serializeKey(this.prefix, key)));
49
49
  }
50
50
  /**
51
- * Iterates over the map's key-value entries in the key's natural order
52
- * @param range - The range of keys to iterate over
53
- */
54
- async *entriesAsync(range) {
51
+ * Iterates over the map's key-value entries in the key's natural order
52
+ * @param range - The range of keys to iterate over
53
+ */ async *entriesAsync(range) {
55
54
  const reverse = range?.reverse ?? false;
56
55
  const startKey = range?.start ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
57
56
  const endKey = range?.end ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
58
57
  let tx = this.store.getCurrentWriteTx();
59
58
  const shouldClose = !tx;
60
- tx ?? (tx = this.store.getReadTx());
59
+ tx ??= this.store.getReadTx();
61
60
  try {
62
- for await (const [key, val] of tx.iterate(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)) {
61
+ for await (const [key, val] of tx.iterate(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)){
63
62
  const deserializedKey = deserializeKey(this.prefix, key);
64
63
  if (!deserializedKey) {
65
64
  break;
66
65
  }
67
- yield [deserializedKey, this.encoder.unpack(val)];
66
+ yield [
67
+ deserializedKey,
68
+ this.encoder.unpack(val)
69
+ ];
68
70
  }
69
- }
70
- finally {
71
+ } finally{
71
72
  if (shouldClose) {
72
73
  tx.close();
73
74
  }
74
75
  }
75
76
  }
76
77
  /**
77
- * Iterates over the map's values in the key's natural order
78
- * @param range - The range of keys to iterate over
79
- */
80
- async *valuesAsync(range) {
81
- for await (const [_, value] of this.entriesAsync(range)) {
78
+ * Iterates over the map's values in the key's natural order
79
+ * @param range - The range of keys to iterate over
80
+ */ async *valuesAsync(range) {
81
+ for await (const [_, value] of this.entriesAsync(range)){
82
82
  yield value;
83
83
  }
84
84
  }
85
85
  /**
86
- * Iterates over the map's keys in the key's natural order
87
- * @param range - The range of keys to iterate over
88
- */
89
- async *keysAsync(range) {
90
- for await (const [key, _] of this.entriesAsync(range)) {
86
+ * Iterates over the map's keys in the key's natural order
87
+ * @param range - The range of keys to iterate over
88
+ */ async *keysAsync(range) {
89
+ for await (const [key, _] of this.entriesAsync(range)){
91
90
  yield key;
92
91
  }
93
92
  }
94
93
  }
95
94
  export class LMDBMultiMap {
96
- constructor(store, name) {
95
+ store;
96
+ prefix;
97
+ encoder;
98
+ constructor(store, name){
97
99
  this.store = store;
98
100
  this.encoder = new Encoder();
99
101
  this.prefix = `multimap:${name}`;
100
102
  }
101
103
  /**
102
- * Sets the value at the given key.
103
- * @param key - The key to set the value at
104
- * @param val - The value to set
105
- */
106
- set(key, val) {
107
- return execInWriteTx(this.store, tx => tx.setIndex(serializeKey(this.prefix, key), this.encoder.pack(val)));
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)));
108
109
  }
109
110
  /**
110
- * Sets the value at the given key if it does not already exist.
111
- * @param key - The key to set the value at
112
- * @param val - The value to set
113
- */
114
- setIfNotExists(key, val) {
115
- return execInWriteTx(this.store, async (tx) => {
116
- const exists = !!(await this.getAsync(key));
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
117
  if (!exists) {
118
118
  await tx.setIndex(serializeKey(this.prefix, key), this.encoder.pack(val));
119
119
  return true;
@@ -122,75 +122,72 @@ export class LMDBMultiMap {
122
122
  });
123
123
  }
124
124
  /**
125
- * Deletes the value at the given key.
126
- * @param key - The key to delete the value at
127
- */
128
- delete(key) {
129
- return execInWriteTx(this.store, tx => tx.removeIndex(serializeKey(this.prefix, key)));
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)));
130
129
  }
131
130
  getAsync(key) {
132
- return execInReadTx(this.store, async (tx) => {
131
+ return execInReadTx(this.store, async (tx)=>{
133
132
  const val = await tx.getIndex(serializeKey(this.prefix, key));
134
133
  return val.length > 0 ? this.encoder.unpack(val[0]) : undefined;
135
134
  });
136
135
  }
137
136
  hasAsync(key) {
138
- return execInReadTx(this.store, async (tx) => (await tx.getIndex(serializeKey(this.prefix, key))).length > 0);
137
+ return execInReadTx(this.store, async (tx)=>(await tx.getIndex(serializeKey(this.prefix, key))).length > 0);
139
138
  }
140
139
  /**
141
- * Iterates over the map's key-value entries in the key's natural order
142
- * @param range - The range of keys to iterate over
143
- */
144
- async *entriesAsync(range) {
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) {
145
143
  const reverse = range?.reverse ?? false;
146
144
  const startKey = range?.start ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
147
145
  const endKey = range?.end ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
148
146
  let tx = this.store.getCurrentWriteTx();
149
147
  const shouldClose = !tx;
150
- tx ?? (tx = this.store.getReadTx());
148
+ tx ??= this.store.getReadTx();
151
149
  try {
152
- for await (const [key, vals] of tx.iterateIndex(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)) {
150
+ for await (const [key, vals] of tx.iterateIndex(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)){
153
151
  const deserializedKey = deserializeKey(this.prefix, key);
154
152
  if (!deserializedKey) {
155
153
  break;
156
154
  }
157
- for (const val of vals) {
158
- yield [deserializedKey, this.encoder.unpack(val)];
155
+ for (const val of vals){
156
+ yield [
157
+ deserializedKey,
158
+ this.encoder.unpack(val)
159
+ ];
159
160
  }
160
161
  }
161
- }
162
- finally {
162
+ } finally{
163
163
  if (shouldClose) {
164
164
  tx.close();
165
165
  }
166
166
  }
167
167
  }
168
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
- */
172
- async *valuesAsync(range) {
173
- for await (const [_, value] of this.entriesAsync(range)) {
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)){
174
173
  yield value;
175
174
  }
176
175
  }
177
176
  /**
178
- * Iterates over the map's keys in the key's natural order
179
- * @param range - The range of keys to iterate over
180
- */
181
- async *keysAsync(range) {
182
- for await (const [key, _] of this.entriesAsync(range)) {
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)){
183
181
  yield key;
184
182
  }
185
183
  }
186
184
  deleteValue(key, val) {
187
- return execInWriteTx(this.store, tx => tx.removeIndex(serializeKey(this.prefix, key), this.encoder.pack(val)));
185
+ return execInWriteTx(this.store, (tx)=>tx.removeIndex(serializeKey(this.prefix, key), this.encoder.pack(val)));
188
186
  }
189
187
  async *getValuesAsync(key) {
190
- const values = await execInReadTx(this.store, tx => tx.getIndex(serializeKey(this.prefix, key)));
191
- for (const value of values) {
188
+ const values = await execInReadTx(this.store, (tx)=>tx.getIndex(serializeKey(this.prefix, key)));
189
+ for (const value of values){
192
190
  yield this.encoder.unpack(value);
193
191
  }
194
192
  }
195
193
  }
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFLbkMsT0FBTyxFQUF5QixZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUUsTUFBTSxPQUFPLE9BQU87SUFJbEIsWUFBb0IsS0FBdUIsRUFBRSxJQUFZO1FBQXJDLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBRm5DLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxHQUFNLEVBQUUsR0FBTTtRQUNoQixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsR0FBTSxFQUFFLEdBQU07UUFDM0IsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsRUFBRSxFQUFDLEVBQUU7WUFDMUMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMs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
@@ -1,11 +1,10 @@
1
- export var Database;
2
- (function (Database) {
1
+ export var Database = /*#__PURE__*/ function(Database) {
3
2
  Database["DATA"] = "data";
4
3
  Database["INDEX"] = "index";
5
- })(Database || (Database = {}));
4
+ return Database;
5
+ }({});
6
6
  export const CURSOR_PAGE_SIZE = 10;
7
- export var LMDBMessageType;
8
- (function (LMDBMessageType) {
7
+ export var LMDBMessageType = /*#__PURE__*/ function(LMDBMessageType) {
9
8
  LMDBMessageType[LMDBMessageType["OPEN_DATABASE"] = 100] = "OPEN_DATABASE";
10
9
  LMDBMessageType[LMDBMessageType["GET"] = 101] = "GET";
11
10
  LMDBMessageType[LMDBMessageType["HAS"] = 102] = "HAS";
@@ -15,5 +14,5 @@ export var LMDBMessageType;
15
14
  LMDBMessageType[LMDBMessageType["BATCH"] = 106] = "BATCH";
16
15
  LMDBMessageType[LMDBMessageType["STATS"] = 107] = "STATS";
17
16
  LMDBMessageType[LMDBMessageType["CLOSE"] = 108] = "CLOSE";
18
- })(LMDBMessageType || (LMDBMessageType = {}));
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL21lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQix5QkFBYSxDQUFBO0lBQ2IsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFFbkMsTUFBTSxDQUFOLElBQVksZUFjWDtBQWRELFdBQVksZUFBZTtJQUN6Qix5RUFBbUIsQ0FBQTtJQUNuQixxREFBRyxDQUFBO0lBQ0gscURBQUcsQ0FBQTtJQUVILHVFQUFZLENBQUE7SUFDWiwyRUFBYyxDQUFBO0lBQ2QsdUVBQVksQ0FBQTtJQUVaLHlEQUFLLENBQUE7SUFFTCx5REFBSyxDQUFBO0lBRUwseURBQUssQ0FBQTtBQUNQLENBQUMsRUFkVyxlQUFlLEtBQWYsZUFBZSxRQWMxQiJ9
17
+ return LMDBMessageType;
18
+ }({});
@@ -1,9 +1,8 @@
1
- var _ReadTransaction_instances, _ReadTransaction_iterate;
2
- import { __classPrivateFieldGet } from "tslib";
3
1
  import { CURSOR_PAGE_SIZE, Database, LMDBMessageType } from './message.js';
4
2
  export class ReadTransaction {
5
- constructor(channel) {
6
- _ReadTransaction_instances.add(this);
3
+ channel;
4
+ open;
5
+ constructor(channel){
7
6
  this.channel = channel;
8
7
  this.open = true;
9
8
  }
@@ -20,70 +19,83 @@ export class ReadTransaction {
20
19
  }
21
20
  async get(key) {
22
21
  this.assertIsOpen();
23
- const response = await this.channel.sendMessage(LMDBMessageType.GET, { keys: [key], db: Database.DATA });
22
+ const response = await this.channel.sendMessage(LMDBMessageType.GET, {
23
+ keys: [
24
+ key
25
+ ],
26
+ db: Database.DATA
27
+ });
24
28
  return response.values[0]?.[0] ?? undefined;
25
29
  }
26
30
  async getIndex(key) {
27
31
  this.assertIsOpen();
28
- const response = await this.channel.sendMessage(LMDBMessageType.GET, { keys: [key], db: Database.INDEX });
32
+ const response = await this.channel.sendMessage(LMDBMessageType.GET, {
33
+ keys: [
34
+ key
35
+ ],
36
+ db: Database.INDEX
37
+ });
29
38
  return response.values[0] ?? [];
30
39
  }
31
40
  async *iterate(startKey, endKey, reverse = false, limit) {
32
- yield* __classPrivateFieldGet(this, _ReadTransaction_instances, "m", _ReadTransaction_iterate).call(this, Database.DATA, startKey, endKey, reverse, limit, vals => vals[0]);
41
+ yield* this.#iterate(Database.DATA, startKey, endKey, reverse, limit, (vals)=>vals[0]);
33
42
  }
34
43
  async *iterateIndex(startKey, endKey, reverse = false, limit) {
35
- yield* __classPrivateFieldGet(this, _ReadTransaction_instances, "m", _ReadTransaction_iterate).call(this, Database.INDEX, startKey, endKey, reverse, limit, vals => vals);
44
+ yield* this.#iterate(Database.INDEX, startKey, endKey, reverse, limit, (vals)=>vals);
36
45
  }
37
- }
38
- _ReadTransaction_instances = new WeakSet(), _ReadTransaction_iterate = async function* _ReadTransaction_iterate(db, startKey, endKey, reverse, limit, map) {
39
- this.assertIsOpen();
40
- const response = await this.channel.sendMessage(LMDBMessageType.START_CURSOR, {
41
- key: startKey,
42
- reverse,
43
- count: typeof limit === 'number' ? Math.min(limit, CURSOR_PAGE_SIZE) : CURSOR_PAGE_SIZE,
44
- onePage: typeof limit === 'number' && limit < CURSOR_PAGE_SIZE,
45
- db,
46
- });
47
- const cursor = response.cursor;
48
- let entries = response.entries;
49
- let done = typeof cursor !== 'number';
50
- let count = 0;
51
- try {
52
- // emit the first page and any subsequent pages in a while loop
53
- // NB: end contition is in the middle of the while loop
54
- while (entries.length > 0) {
55
- for (const [key, values] of entries) {
56
- if (typeof limit === 'number' && count >= limit) {
57
- done = true;
58
- break;
59
- }
60
- if (endKey) {
61
- const cmp = Buffer.compare(key, endKey);
62
- if ((!reverse && cmp >= 0) || (reverse && cmp <= 0)) {
46
+ async *#iterate(db, startKey, endKey, reverse, limit, map) {
47
+ this.assertIsOpen();
48
+ const response = await this.channel.sendMessage(LMDBMessageType.START_CURSOR, {
49
+ key: startKey,
50
+ reverse,
51
+ count: typeof limit === 'number' ? Math.min(limit, CURSOR_PAGE_SIZE) : CURSOR_PAGE_SIZE,
52
+ onePage: typeof limit === 'number' && limit < CURSOR_PAGE_SIZE,
53
+ db
54
+ });
55
+ const cursor = response.cursor;
56
+ let entries = response.entries;
57
+ let done = typeof cursor !== 'number';
58
+ let count = 0;
59
+ try {
60
+ // emit the first page and any subsequent pages in a while loop
61
+ // NB: end contition is in the middle of the while loop
62
+ while(entries.length > 0){
63
+ for (const [key, values] of entries){
64
+ if (typeof limit === 'number' && count >= limit) {
63
65
  done = true;
64
66
  break;
65
67
  }
68
+ if (endKey) {
69
+ const cmp = Buffer.compare(key, endKey);
70
+ if (!reverse && cmp >= 0 || reverse && cmp <= 0) {
71
+ done = true;
72
+ break;
73
+ }
74
+ }
75
+ count++;
76
+ yield [
77
+ key,
78
+ map(values)
79
+ ];
66
80
  }
67
- count++;
68
- yield [key, map(values)];
81
+ // cursor is null if DB returned everything in the first page
82
+ if (typeof cursor !== 'number' || done) {
83
+ break;
84
+ }
85
+ const response = await this.channel.sendMessage(LMDBMessageType.ADVANCE_CURSOR, {
86
+ cursor,
87
+ count: CURSOR_PAGE_SIZE
88
+ });
89
+ done = response.done;
90
+ entries = response.entries;
69
91
  }
70
- // cursor is null if DB returned everything in the first page
71
- if (typeof cursor !== 'number' || done) {
72
- break;
92
+ } finally{
93
+ // we might not have anything to close
94
+ if (typeof cursor === 'number') {
95
+ await this.channel.sendMessage(LMDBMessageType.CLOSE_CURSOR, {
96
+ cursor
97
+ });
73
98
  }
74
- const response = await this.channel.sendMessage(LMDBMessageType.ADVANCE_CURSOR, {
75
- cursor,
76
- count: CURSOR_PAGE_SIZE,
77
- });
78
- done = response.done;
79
- entries = response.entries;
80
99
  }
81
100
  }
82
- finally {
83
- // we might not have anything to close
84
- if (typeof cursor === 'number') {
85
- await this.channel.sendMessage(LMDBMessageType.CLOSE_CURSOR, { cursor });
86
- }
87
- }
88
- };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZF90cmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL3JlYWRfdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUEyQixlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFcEcsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBc0IsT0FBMkI7O1FBQTNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBRnZDLFNBQUksR0FBRyxJQUFJLENBQUM7SUFFOEIsQ0FBQztJQUU5QyxLQUFLO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBZTtRQUM5QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFlO1FBQ25DLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixN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
101
+ }
@@ -1,4 +1,4 @@
1
- import { type AztecAsyncSingleton } from '../interfaces/singleton.js';
1
+ import type { AztecAsyncSingleton } from '../interfaces/singleton.js';
2
2
  import { type AztecLMDBStoreV2 } from './store.js';
3
3
  export declare class LMDBSingleValue<T> implements AztecAsyncSingleton<T> {
4
4
  private store;
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/singleton.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;IAGnD,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAiB;gBACZ,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;IAIzD,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAOlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAM3B"}
1
+ {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/singleton.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;IAGnD,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAiB;gBACZ,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;IAIzD,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAOlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAM3B"}
@@ -2,28 +2,30 @@ import { Encoder } from 'msgpackr';
2
2
  import { execInReadTx, execInWriteTx } from './store.js';
3
3
  import { serializeKey } from './utils.js';
4
4
  export class LMDBSingleValue {
5
- constructor(store, name) {
5
+ store;
6
+ key;
7
+ encoder;
8
+ constructor(store, name){
6
9
  this.store = store;
7
10
  this.encoder = new Encoder();
8
11
  this.key = serializeKey(`singleton:${name}`, 'value');
9
12
  }
10
13
  getAsync() {
11
- return execInReadTx(this.store, async (tx) => {
14
+ return execInReadTx(this.store, async (tx)=>{
12
15
  const val = await tx.get(this.key);
13
16
  return val ? this.encoder.unpack(val) : undefined;
14
17
  });
15
18
  }
16
19
  set(val) {
17
- return execInWriteTx(this.store, async (tx) => {
20
+ return execInWriteTx(this.store, async (tx)=>{
18
21
  await tx.set(this.key, this.encoder.pack(val));
19
22
  return true;
20
23
  });
21
24
  }
22
25
  delete() {
23
- return execInWriteTx(this.store, async (tx) => {
26
+ return execInWriteTx(this.store, async (tx)=>{
24
27
  await tx.remove(this.key);
25
28
  return true;
26
29
  });
27
30
  }
28
31
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvc2luZ2xldG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbkMsT0FBTyxFQUF5QixZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUMsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBb0IsS0FBdUIsRUFBRSxJQUFZO1FBQXJDLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBRG5DLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTlCLElBQUksQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFFLEVBQUMsRUFBRTtZQUN6QyxNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFNO1FBQ1IsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsRUFBRSxFQUFDLEVBQUU7WUFDMUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFFLEVBQUMsRUFBRTtZQUMxQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
@@ -27,7 +27,7 @@ export declare class AztecLMDBStoreV2 implements AztecAsyncKVStore, LMDBMessageC
27
27
  openMap<K extends Key, V>(name: string): AztecAsyncMap<K, V>;
28
28
  openMultiMap<K extends Key, V>(name: string): AztecAsyncMultiMap<K, V>;
29
29
  openSingleton<T>(name: string): AztecAsyncSingleton<T>;
30
- openArray<T>(_name: string): AztecAsyncArray<T>;
30
+ openArray<T>(name: string): AztecAsyncArray<T>;
31
31
  openSet<K extends Key>(_name: string): AztecAsyncSet<K>;
32
32
  openCounter<K extends Key>(_name: string): AztecAsyncCounter<K>;
33
33
  transactionAsync<T extends Exclude<any, Promise<any>>>(callback: (tx: WriteTransaction) => Promise<T>): Promise<T>;