@aztec/kv-store 0.73.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2

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 (124) hide show
  1. package/dest/config.js +5 -7
  2. package/dest/indexeddb/array.js +44 -36
  3. package/dest/indexeddb/index.js +1 -4
  4. package/dest/indexeddb/map.js +72 -43
  5. package/dest/indexeddb/set.js +3 -4
  6. package/dest/indexeddb/singleton.js +17 -22
  7. package/dest/indexeddb/store.js +97 -93
  8. package/dest/interfaces/array.js +3 -2
  9. package/dest/interfaces/array_test_suite.js +29 -25
  10. package/dest/interfaces/common.js +3 -2
  11. package/dest/interfaces/counter.js +1 -2
  12. package/dest/interfaces/index.js +0 -1
  13. package/dest/interfaces/map.js +3 -2
  14. package/dest/interfaces/map_test_suite.js +87 -42
  15. package/dest/interfaces/set.js +1 -2
  16. package/dest/interfaces/set_test_suite.js +59 -22
  17. package/dest/interfaces/singleton.js +4 -2
  18. package/dest/interfaces/singleton_test_suite.js +7 -10
  19. package/dest/interfaces/store.js +1 -2
  20. package/dest/interfaces/store_test_suite.js +6 -9
  21. package/dest/interfaces/utils.js +12 -15
  22. package/dest/lmdb/array.js +46 -41
  23. package/dest/lmdb/counter.js +18 -24
  24. package/dest/lmdb/index.js +2 -6
  25. package/dest/lmdb/map.js +90 -68
  26. package/dest/lmdb/set.js +4 -5
  27. package/dest/lmdb/singleton.js +13 -14
  28. package/dest/lmdb/store.js +124 -134
  29. package/dest/lmdb-v2/factory.js +25 -17
  30. package/dest/lmdb-v2/index.js +0 -1
  31. package/dest/lmdb-v2/map.js +82 -85
  32. package/dest/lmdb-v2/message.js +6 -7
  33. package/dest/lmdb-v2/read_transaction.js +65 -53
  34. package/dest/lmdb-v2/singleton.js +7 -5
  35. package/dest/lmdb-v2/store.js +52 -29
  36. package/dest/lmdb-v2/utils.js +30 -30
  37. package/dest/lmdb-v2/write_transaction.js +130 -110
  38. package/dest/stores/index.js +0 -1
  39. package/dest/stores/l2_tips_store.js +26 -12
  40. package/dest/utils.js +3 -7
  41. package/package.json +6 -6
  42. package/src/interfaces/index.ts +1 -1
  43. package/src/lmdb-v2/factory.ts +10 -0
  44. package/src/lmdb-v2/store.ts +29 -3
  45. package/dest/config.d.ts +0 -17
  46. package/dest/config.d.ts.map +0 -1
  47. package/dest/indexeddb/array.d.ts +0 -21
  48. package/dest/indexeddb/array.d.ts.map +0 -1
  49. package/dest/indexeddb/index.d.ts +0 -7
  50. package/dest/indexeddb/index.d.ts.map +0 -1
  51. package/dest/indexeddb/map.d.ts +0 -26
  52. package/dest/indexeddb/map.d.ts.map +0 -1
  53. package/dest/indexeddb/set.d.ts +0 -17
  54. package/dest/indexeddb/set.d.ts.map +0 -1
  55. package/dest/indexeddb/singleton.d.ts +0 -16
  56. package/dest/indexeddb/singleton.d.ts.map +0 -1
  57. package/dest/indexeddb/store.d.ts +0 -97
  58. package/dest/indexeddb/store.d.ts.map +0 -1
  59. package/dest/interfaces/array.d.ts +0 -80
  60. package/dest/interfaces/array.d.ts.map +0 -1
  61. package/dest/interfaces/array_test_suite.d.ts +0 -3
  62. package/dest/interfaces/array_test_suite.d.ts.map +0 -1
  63. package/dest/interfaces/common.d.ts +0 -23
  64. package/dest/interfaces/common.d.ts.map +0 -1
  65. package/dest/interfaces/counter.d.ts +0 -59
  66. package/dest/interfaces/counter.d.ts.map +0 -1
  67. package/dest/interfaces/index.d.ts +0 -8
  68. package/dest/interfaces/index.d.ts.map +0 -1
  69. package/dest/interfaces/map.d.ts +0 -134
  70. package/dest/interfaces/map.d.ts.map +0 -1
  71. package/dest/interfaces/map_test_suite.d.ts +0 -3
  72. package/dest/interfaces/map_test_suite.d.ts.map +0 -1
  73. package/dest/interfaces/set.d.ts +0 -44
  74. package/dest/interfaces/set.d.ts.map +0 -1
  75. package/dest/interfaces/set_test_suite.d.ts +0 -3
  76. package/dest/interfaces/set_test_suite.d.ts.map +0 -1
  77. package/dest/interfaces/singleton.d.ts +0 -29
  78. package/dest/interfaces/singleton.d.ts.map +0 -1
  79. package/dest/interfaces/singleton_test_suite.d.ts +0 -3
  80. package/dest/interfaces/singleton_test_suite.d.ts.map +0 -1
  81. package/dest/interfaces/store.d.ts +0 -145
  82. package/dest/interfaces/store.d.ts.map +0 -1
  83. package/dest/interfaces/store_test_suite.d.ts +0 -3
  84. package/dest/interfaces/store_test_suite.d.ts.map +0 -1
  85. package/dest/interfaces/utils.d.ts +0 -16
  86. package/dest/interfaces/utils.d.ts.map +0 -1
  87. package/dest/lmdb/array.d.ts +0 -23
  88. package/dest/lmdb/array.d.ts.map +0 -1
  89. package/dest/lmdb/counter.d.ts +0 -19
  90. package/dest/lmdb/counter.d.ts.map +0 -1
  91. package/dest/lmdb/index.d.ts +0 -12
  92. package/dest/lmdb/index.d.ts.map +0 -1
  93. package/dest/lmdb/map.d.ts +0 -52
  94. package/dest/lmdb/map.d.ts.map +0 -1
  95. package/dest/lmdb/set.d.ts +0 -18
  96. package/dest/lmdb/set.d.ts.map +0 -1
  97. package/dest/lmdb/singleton.d.ts +0 -14
  98. package/dest/lmdb/singleton.d.ts.map +0 -1
  99. package/dest/lmdb/store.d.ts +0 -110
  100. package/dest/lmdb/store.d.ts.map +0 -1
  101. package/dest/lmdb-v2/factory.d.ts +0 -7
  102. package/dest/lmdb-v2/factory.d.ts.map +0 -1
  103. package/dest/lmdb-v2/index.d.ts +0 -3
  104. package/dest/lmdb-v2/index.d.ts.map +0 -1
  105. package/dest/lmdb-v2/map.d.ts +0 -86
  106. package/dest/lmdb-v2/map.d.ts.map +0 -1
  107. package/dest/lmdb-v2/message.d.ts +0 -112
  108. package/dest/lmdb-v2/message.d.ts.map +0 -1
  109. package/dest/lmdb-v2/read_transaction.d.ts +0 -14
  110. package/dest/lmdb-v2/read_transaction.d.ts.map +0 -1
  111. package/dest/lmdb-v2/singleton.d.ts +0 -12
  112. package/dest/lmdb-v2/singleton.d.ts.map +0 -1
  113. package/dest/lmdb-v2/store.d.ts +0 -41
  114. package/dest/lmdb-v2/store.d.ts.map +0 -1
  115. package/dest/lmdb-v2/utils.d.ts +0 -19
  116. package/dest/lmdb-v2/utils.d.ts.map +0 -1
  117. package/dest/lmdb-v2/write_transaction.d.ts +0 -19
  118. package/dest/lmdb-v2/write_transaction.d.ts.map +0 -1
  119. package/dest/stores/index.d.ts +0 -2
  120. package/dest/stores/index.d.ts.map +0 -1
  121. package/dest/stores/l2_tips_store.d.ts +0 -13
  122. package/dest/stores/l2_tips_store.d.ts.map +0 -1
  123. package/dest/utils.d.ts +0 -12
  124. package/dest/utils.d.ts.map +0 -1
@@ -2,58 +2,95 @@ import { toArray } from '@aztec/foundation/iterable';
2
2
  import { expect } from 'chai';
3
3
  import { isSyncStore } from './utils.js';
4
4
  export function describeAztecSet(testName, getStore, forceAsync = false) {
5
- describe(testName, () => {
5
+ describe(testName, ()=>{
6
6
  let store;
7
7
  let set;
8
- beforeEach(async () => {
8
+ beforeEach(async ()=>{
9
9
  store = await getStore();
10
10
  set = store.openSet('test');
11
11
  });
12
- afterEach(async () => {
12
+ afterEach(async ()=>{
13
13
  await store.delete();
14
14
  });
15
15
  async function has(key) {
16
- return isSyncStore(store) && !forceAsync
17
- ? set.has(key)
18
- : await set.hasAsync(key);
16
+ return isSyncStore(store) && !forceAsync ? set.has(key) : await set.hasAsync(key);
19
17
  }
20
18
  async function entries(range) {
21
- return isSyncStore(store) && !forceAsync
22
- ? await toArray(set.entries(range))
23
- : await toArray(set.entriesAsync(range));
19
+ return isSyncStore(store) && !forceAsync ? await toArray(set.entries(range)) : await toArray(set.entriesAsync(range));
24
20
  }
25
- it('should be able to set and get values', async () => {
21
+ it('should be able to set and get values', async ()=>{
26
22
  await set.add('foo');
27
23
  await set.add('baz');
28
24
  expect(await has('foo')).to.equal(true);
29
25
  expect(await has('baz')).to.equal(true);
30
26
  expect(await has('bar')).to.equal(false);
31
27
  });
32
- it('should be able to delete values', async () => {
28
+ it('should be able to delete values', async ()=>{
33
29
  await set.add('foo');
34
30
  await set.add('baz');
35
31
  await set.delete('foo');
36
32
  expect(await has('foo')).to.equal(false);
37
33
  expect(await has('baz')).to.equal(true);
38
34
  });
39
- it('should be able to iterate over entries', async () => {
35
+ it('should be able to iterate over entries', async ()=>{
40
36
  await set.add('baz');
41
37
  await set.add('foo');
42
- expect(await entries()).to.deep.equal(['baz', 'foo']);
38
+ expect(await entries()).to.deep.equal([
39
+ 'baz',
40
+ 'foo'
41
+ ]);
43
42
  });
44
- it('supports range queries', async () => {
43
+ it('supports range queries', async ()=>{
45
44
  await set.add('a');
46
45
  await set.add('b');
47
46
  await set.add('c');
48
47
  await set.add('d');
49
- expect(await entries({ start: 'b', end: 'c' })).to.deep.equal(['b']);
50
- expect(await entries({ start: 'b' })).to.deep.equal(['b', 'c', 'd']);
51
- expect(await entries({ end: 'c' })).to.deep.equal(['a', 'b']);
52
- expect(await entries({ start: 'b', end: 'c', reverse: true })).to.deep.equal(['c']);
53
- expect(await entries({ start: 'b', limit: 1 })).to.deep.equal(['b']);
54
- expect(await entries({ start: 'b', reverse: true })).to.deep.equal(['d', 'c']);
55
- expect(await entries({ end: 'b', reverse: true })).to.deep.equal(['b', 'a']);
48
+ expect(await entries({
49
+ start: 'b',
50
+ end: 'c'
51
+ })).to.deep.equal([
52
+ 'b'
53
+ ]);
54
+ expect(await entries({
55
+ start: 'b'
56
+ })).to.deep.equal([
57
+ 'b',
58
+ 'c',
59
+ 'd'
60
+ ]);
61
+ expect(await entries({
62
+ end: 'c'
63
+ })).to.deep.equal([
64
+ 'a',
65
+ 'b'
66
+ ]);
67
+ expect(await entries({
68
+ start: 'b',
69
+ end: 'c',
70
+ reverse: true
71
+ })).to.deep.equal([
72
+ 'c'
73
+ ]);
74
+ expect(await entries({
75
+ start: 'b',
76
+ limit: 1
77
+ })).to.deep.equal([
78
+ 'b'
79
+ ]);
80
+ expect(await entries({
81
+ start: 'b',
82
+ reverse: true
83
+ })).to.deep.equal([
84
+ 'd',
85
+ 'c'
86
+ ]);
87
+ expect(await entries({
88
+ end: 'b',
89
+ reverse: true
90
+ })).to.deep.equal([
91
+ 'b',
92
+ 'a'
93
+ ]);
56
94
  });
57
95
  });
58
96
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0X3Rlc3Rfc3VpdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9zZXRfdGVzdF9zdWl0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUs5QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsUUFBZ0IsRUFDaEIsUUFBeUQsRUFDekQsYUFBc0IsS0FBSztJQUUzQixRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUN0QixJQUFJLEtBQXVDLENBQUM7UUFDNUMsSUFBSSxHQUE2QyxDQUFDO1FBRWxELFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQixLQUFLLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztZQUN6QixHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssVUFBVSxHQUFHLENBQUMsR0FBVztZQUM1QixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVU7Z0JBQ3RDLENBQUMsQ0FBRSxHQUF3QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxNQUFPLEdBQTZCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxLQUFLLFVBQVUsT0FBTyxDQUFDLEtBQWtCO1lBQ3ZDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVTtnQkFD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QUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRixNQUFNLENBQUMsTUFBTSxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQy9FLE1BQU0sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
@@ -1,2 +1,4 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvc2luZ2xldG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
1
+ /**
2
+ * Represents a singleton value in the database.
3
+ * Note: The singleton loses type info so it's recommended to serialize to buffer when storing it.
4
+ */ export { };
@@ -1,33 +1,30 @@
1
1
  import { expect } from 'chai';
2
2
  import { isSyncStore } from './utils.js';
3
3
  export function describeAztecSingleton(testName, getStore, forceAsync = false) {
4
- describe(testName, () => {
4
+ describe(testName, ()=>{
5
5
  let store;
6
6
  let singleton;
7
- beforeEach(async () => {
7
+ beforeEach(async ()=>{
8
8
  store = await getStore();
9
9
  singleton = store.openSingleton('test');
10
10
  });
11
- afterEach(async () => {
11
+ afterEach(async ()=>{
12
12
  await store.delete();
13
13
  });
14
14
  async function get() {
15
- return isSyncStore(store) && !forceAsync
16
- ? singleton.get()
17
- : await singleton.getAsync();
15
+ return isSyncStore(store) && !forceAsync ? singleton.get() : await singleton.getAsync();
18
16
  }
19
- it('returns undefined if the value is not set', async () => {
17
+ it('returns undefined if the value is not set', async ()=>{
20
18
  expect(await get()).to.equal(undefined);
21
19
  });
22
- it('should be able to set and get values', async () => {
20
+ it('should be able to set and get values', async ()=>{
23
21
  expect(await singleton.set('foo')).to.equal(true);
24
22
  expect(await get()).to.equal('foo');
25
23
  });
26
- it('overwrites the value if it is set again', async () => {
24
+ it('overwrites the value if it is set again', async ()=>{
27
25
  expect(await singleton.set('foo')).to.equal(true);
28
26
  expect(await singleton.set('bar')).to.equal(true);
29
27
  expect(await get()).to.equal('bar');
30
28
  });
31
29
  });
32
30
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uX3Rlc3Rfc3VpdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9zaW5nbGV0b25fdGVzdF9zdWl0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxRQUFnQixFQUNoQixRQUF5RCxFQUN6RCxhQUFzQixLQUFLO0lBRTNCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3RCLElBQUksS0FBdUMsQ0FBQztRQUM1QyxJQUFJLFNBQStELENBQUM7UUFFcEUsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BCLEtBQUssR0FBRyxNQUFNLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLFNBQVMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFTLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxVQUFVLEdBQUc7WUFDaEIsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVO2dCQUN0QyxDQUFDLENBQUUsU0FBb0MsQ0FBQyxHQUFHLEVBQUU7Z0JBQzdDLENBQUMsQ0FBQyxNQUFPLFNBQXlDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEUsQ0FBQztRQUVELEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN6RCxNQUFNLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDcEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3ZELE1BQU0sQ0FBQyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -1,2 +1 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
1
+ export { };
@@ -1,13 +1,11 @@
1
1
  import { expect } from 'chai';
2
2
  import { isSyncStore } from './utils.js';
3
3
  export function describeAztecStore(testName, getPersistentStore, getPersistentNoPathStore, getEphemeralStore) {
4
- describe(testName, () => {
4
+ describe(testName, ()=>{
5
5
  async function get(store, singleton) {
6
- return isSyncStore(store)
7
- ? singleton.get()
8
- : await singleton.getAsync();
6
+ return isSyncStore(store) ? singleton.get() : await singleton.getAsync();
9
7
  }
10
- const itForks = async (store) => {
8
+ const itForks = async (store)=>{
11
9
  const singleton = store.openSingleton('singleton');
12
10
  await singleton.set('foo');
13
11
  const forkedStore = await store.fork();
@@ -20,21 +18,20 @@ export function describeAztecStore(testName, getPersistentStore, getPersistentNo
20
18
  expect(await get(store, singleton)).to.equal('foo');
21
19
  await forkedStore.delete();
22
20
  };
23
- it('forks a persistent store', async () => {
21
+ it('forks a persistent store', async ()=>{
24
22
  const store = await getPersistentStore();
25
23
  await itForks(store);
26
24
  await store.delete();
27
25
  });
28
- it('forks a persistent store with no path', async () => {
26
+ it('forks a persistent store with no path', async ()=>{
29
27
  const store = await getPersistentNoPathStore();
30
28
  await itForks(store);
31
29
  await store.delete();
32
30
  });
33
- it('forks an ephemeral store', async () => {
31
+ it('forks an ephemeral store', async ()=>{
34
32
  const store = await getEphemeralStore();
35
33
  await itForks(store);
36
34
  await store.delete();
37
35
  });
38
36
  });
39
37
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVfdGVzdF9zdWl0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL3N0b3JlX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUk5QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsUUFBZ0IsRUFDaEIsa0JBQW1FLEVBQ25FLHdCQUF5RSxFQUN6RSxpQkFBa0U7SUFFbEUsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDdEIsS0FBSyxVQUFVLEdBQUcsQ0FDaEIsS0FBdUMsRUFDdkMsU0FBK0Q7WUFFL0QsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDO2dCQUN2QixDQUFDLENBQUUsU0FBb0MsQ0FBQyxHQUFHLEVBQUU7Z0JBQzdDLENBQUMsQ0FBQyxNQUFPLFNBQXlDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEUsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxLQUF1QyxFQUFFLEVBQUU7WUFDaEUsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBUyxXQUFXLENBQUMsQ0FBQztZQUMzRCxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFM0IsTUFBTSxXQUFXLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkMsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBUyxXQUFXLENBQUMsQ0FBQztZQUN2RSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxNQUFNLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEUsTUFBTSxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsTUFBTSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDO1FBRUYsRUFBRSxDQUFDLDBCQUEwQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sa0JBQWtCLEVBQUUsQ0FBQztZQUN6QyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixNQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyRCxNQUFNLEtBQUssR0FBRyxNQUFNLHdCQUF3QixFQUFFLENBQUM7WUFDL0MsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDeEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
@@ -1,19 +1,16 @@
1
- /* eslint-disable no-console */
2
- export const mockLogger = {
3
- debug: (msg, data) => console.log(msg, data),
4
- info: (msg, data) => console.log(msg, data),
5
- warn: (msg, data) => console.log(msg, data),
6
- error: (msg, data) => console.error(msg, data),
7
- fatal: (msg, data) => console.error(msg, data),
8
- silent: (_msg, _data) => { },
9
- verbose: (msg, data) => console.log(msg, data),
10
- trace: (msg, data) => console.log(msg, data),
1
+ /* eslint-disable no-console */ export const mockLogger = {
2
+ debug: (msg, data)=>console.log(msg, data),
3
+ info: (msg, data)=>console.log(msg, data),
4
+ warn: (msg, data)=>console.log(msg, data),
5
+ error: (msg, data)=>console.error(msg, data),
6
+ fatal: (msg, data)=>console.error(msg, data),
7
+ silent: (_msg, _data)=>{},
8
+ verbose: (msg, data)=>console.log(msg, data),
9
+ trace: (msg, data)=>console.log(msg, data),
11
10
  level: 'trace',
12
- isLevelEnabled: (_level) => true,
13
- module: 'kv-store:mock-logger',
11
+ isLevelEnabled: (_level)=>true,
12
+ module: 'kv-store:mock-logger'
14
13
  };
15
- /* eslint-enable no-console */
16
- export function isSyncStore(store) {
14
+ /* eslint-enable no-console */ export function isSyncStore(store) {
17
15
  return store.syncGetters === true;
18
16
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSwrQkFBK0I7QUFDL0IsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLEtBQUssRUFBRSxDQUFDLEdBQVcsRUFBRSxJQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztJQUN6RCxJQUFJLEVBQUUsQ0FBQyxHQUFXLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7SUFDeEQsSUFBSSxFQUFFLENBQUMsR0FBVyxFQUFFLElBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO0lBQ3hELEtBQUssRUFBRSxDQUFDLEdBQVcsRUFBRSxJQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztJQUMzRCxLQUFLLEVBQUUsQ0FBQyxHQUFXLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7SUFDM0QsTUFBTSxFQUFFLENBQUMsSUFBWSxFQUFFLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQztJQUN4QyxPQUFPLEVBQUUsQ0FBQyxHQUFXLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7SUFDM0QsS0FBSyxFQUFFLENBQUMsR0FBVyxFQUFFLElBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO0lBQ3pELEtBQUssRUFBRSxPQUFnQjtJQUN2QixjQUFjLEVBQUUsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLElBQUk7SUFDeEMsTUFBTSxFQUFFLHNCQUFzQjtDQUMvQixDQUFDO0FBQ0YsOEJBQThCO0FBRTlCLE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBdUM7SUFDakUsT0FBUSxLQUFzQixDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUM7QUFDdEQsQ0FBQyJ9
@@ -1,46 +1,42 @@
1
- var _LmdbAztecArray_instances, _LmdbAztecArray_db, _LmdbAztecArray_name, _LmdbAztecArray_length, _LmdbAztecArray_slot;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
1
  import { LmdbAztecSingleton } from './singleton.js';
4
2
  /**
5
3
  * An persistent array backed by LMDB.
6
- */
7
- export class LmdbAztecArray {
8
- constructor(db, arrName) {
9
- _LmdbAztecArray_instances.add(this);
10
- _LmdbAztecArray_db.set(this, void 0);
11
- _LmdbAztecArray_name.set(this, void 0);
12
- _LmdbAztecArray_length.set(this, void 0);
13
- __classPrivateFieldSet(this, _LmdbAztecArray_name, arrName, "f");
14
- __classPrivateFieldSet(this, _LmdbAztecArray_length, new LmdbAztecSingleton(db, `${arrName}:meta:length`), "f");
15
- __classPrivateFieldSet(this, _LmdbAztecArray_db, db, "f");
4
+ */ export class LmdbAztecArray {
5
+ #db;
6
+ #name;
7
+ #length;
8
+ constructor(db, arrName){
9
+ this.#name = arrName;
10
+ this.#length = new LmdbAztecSingleton(db, `${arrName}:meta:length`);
11
+ this.#db = db;
16
12
  }
17
13
  get length() {
18
- return __classPrivateFieldGet(this, _LmdbAztecArray_length, "f").get() ?? 0;
14
+ return this.#length.get() ?? 0;
19
15
  }
20
16
  lengthAsync() {
21
17
  return Promise.resolve(this.length);
22
18
  }
23
19
  push(...vals) {
24
- return __classPrivateFieldGet(this, _LmdbAztecArray_db, "f").childTransaction(() => {
20
+ return this.#db.childTransaction(()=>{
25
21
  let length = this.length;
26
- for (const val of vals) {
27
- void __classPrivateFieldGet(this, _LmdbAztecArray_db, "f").put(__classPrivateFieldGet(this, _LmdbAztecArray_instances, "m", _LmdbAztecArray_slot).call(this, length), val);
22
+ for (const val of vals){
23
+ void this.#db.put(this.#slot(length), val);
28
24
  length += 1;
29
25
  }
30
- void __classPrivateFieldGet(this, _LmdbAztecArray_length, "f").set(length);
26
+ void this.#length.set(length);
31
27
  return length;
32
28
  });
33
29
  }
34
30
  pop() {
35
- return __classPrivateFieldGet(this, _LmdbAztecArray_db, "f").childTransaction(() => {
31
+ return this.#db.childTransaction(()=>{
36
32
  const length = this.length;
37
33
  if (length === 0) {
38
34
  return undefined;
39
35
  }
40
- const slot = __classPrivateFieldGet(this, _LmdbAztecArray_instances, "m", _LmdbAztecArray_slot).call(this, length - 1);
41
- const val = __classPrivateFieldGet(this, _LmdbAztecArray_db, "f").get(slot);
42
- void __classPrivateFieldGet(this, _LmdbAztecArray_db, "f").remove(slot);
43
- void __classPrivateFieldGet(this, _LmdbAztecArray_length, "f").set(length - 1);
36
+ const slot = this.#slot(length - 1);
37
+ const val = this.#db.get(slot);
38
+ void this.#db.remove(slot);
39
+ void this.#length.set(length - 1);
44
40
  return val;
45
41
  });
46
42
  }
@@ -53,7 +49,7 @@ export class LmdbAztecArray {
53
49
  if (index < 0 || index >= this.length) {
54
50
  return undefined;
55
51
  }
56
- return __classPrivateFieldGet(this, _LmdbAztecArray_db, "f").get(__classPrivateFieldGet(this, _LmdbAztecArray_instances, "m", _LmdbAztecArray_slot).call(this, index));
52
+ return this.#db.get(this.#slot(index));
57
53
  }
58
54
  atAsync(index) {
59
55
  return Promise.resolve(this.at(index));
@@ -65,48 +61,57 @@ export class LmdbAztecArray {
65
61
  if (index < 0 || index >= this.length) {
66
62
  return Promise.resolve(false);
67
63
  }
68
- return __classPrivateFieldGet(this, _LmdbAztecArray_db, "f").put(__classPrivateFieldGet(this, _LmdbAztecArray_instances, "m", _LmdbAztecArray_slot).call(this, index), val);
64
+ return this.#db.put(this.#slot(index), val);
69
65
  }
70
66
  *entries() {
71
- const transaction = __classPrivateFieldGet(this, _LmdbAztecArray_db, "f").useReadTransaction();
67
+ const transaction = this.#db.useReadTransaction();
72
68
  try {
73
- const values = __classPrivateFieldGet(this, _LmdbAztecArray_db, "f").getRange({
74
- start: __classPrivateFieldGet(this, _LmdbAztecArray_instances, "m", _LmdbAztecArray_slot).call(this, 0),
69
+ const values = this.#db.getRange({
70
+ start: this.#slot(0),
75
71
  limit: this.length,
76
- transaction,
72
+ transaction
77
73
  });
78
- for (const { key, value } of values) {
74
+ for (const { key, value } of values){
79
75
  const index = key[3];
80
- yield [index, value];
76
+ yield [
77
+ index,
78
+ value
79
+ ];
81
80
  }
82
- }
83
- finally {
81
+ } finally{
84
82
  transaction.done();
85
83
  }
86
84
  }
87
85
  async *entriesAsync() {
88
- for (const [key, value] of this.entries()) {
89
- yield [key, value];
86
+ for (const [key, value] of this.entries()){
87
+ yield [
88
+ key,
89
+ value
90
+ ];
90
91
  }
91
92
  }
92
93
  *values() {
93
- for (const [_, value] of this.entries()) {
94
+ for (const [_, value] of this.entries()){
94
95
  yield value;
95
96
  }
96
97
  }
97
98
  async *valuesAsync() {
98
- for (const [_, value] of this.entries()) {
99
+ for (const [_, value] of this.entries()){
99
100
  yield value;
100
101
  }
101
102
  }
102
- [(_LmdbAztecArray_db = new WeakMap(), _LmdbAztecArray_name = new WeakMap(), _LmdbAztecArray_length = new WeakMap(), _LmdbAztecArray_instances = new WeakSet(), Symbol.iterator)]() {
103
+ [Symbol.iterator]() {
103
104
  return this.values();
104
105
  }
105
106
  [Symbol.asyncIterator]() {
106
107
  return this.valuesAsync();
107
108
  }
109
+ #slot(index) {
110
+ return [
111
+ 'array',
112
+ this.#name,
113
+ 'slot',
114
+ index
115
+ ];
116
+ }
108
117
  }
109
- _LmdbAztecArray_slot = function _LmdbAztecArray_slot(index) {
110
- return ['array', __classPrivateFieldGet(this, _LmdbAztecArray_name, "f"), 'slot', index];
111
- };
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi9hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3BEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFLekIsWUFBWSxFQUEwQixFQUFFLE9BQWU7O1FBSnZELHFDQUFpQztRQUNqQyx1Q0FBYztRQUNkLHlDQUFvQztRQUdsQyx1QkFBQSxJQUFJLHdCQUFTLE9BQU8sTUFBQSxDQUFDO1FBQ3JCLHVCQUFBLElBQUksMEJBQVcsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsR0FBRyxPQUFPLGNBQWMsQ0FBQyxNQUFBLENBQUM7UUFDcEUsdUJBQUEsSUFBSSxzQkFBTyxFQUFpQyxNQUFBLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sdUJBQUEsSUFBSSw4QkFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFHLElBQVM7UUFDZixPQUFPLHVCQUFBLElBQUksMEJBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN6QixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN2QixLQUFLLHVCQUFBLElBQUksMEJBQUksQ0FBQyxHQUFHLENBQUMsdUJBQUEsSUFBSSx1REFBTSxNQUFWLElBQUksRUFBTyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxJQUFJLENBQUMsQ0FBQztZQUNkLENBQUM7WUFFRCxLQUFLLHVCQUFBLElB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
@@ -1,56 +1,50 @@
1
- var _LmdbAztecCounter_db, _LmdbAztecCounter_name, _LmdbAztecCounter_map;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
1
  import { LmdbAztecMap } from './map.js';
4
2
  /**
5
3
  * A counter implementation backed by LMDB
6
- */
7
- export class LmdbAztecCounter {
8
- constructor(db, name) {
9
- _LmdbAztecCounter_db.set(this, void 0);
10
- _LmdbAztecCounter_name.set(this, void 0);
11
- _LmdbAztecCounter_map.set(this, void 0);
12
- __classPrivateFieldSet(this, _LmdbAztecCounter_db, db, "f");
13
- __classPrivateFieldSet(this, _LmdbAztecCounter_name, name, "f");
14
- __classPrivateFieldSet(this, _LmdbAztecCounter_map, new LmdbAztecMap(db, name), "f");
4
+ */ export class LmdbAztecCounter {
5
+ #db;
6
+ #name;
7
+ #map;
8
+ constructor(db, name){
9
+ this.#db = db;
10
+ this.#name = name;
11
+ this.#map = new LmdbAztecMap(db, name);
15
12
  }
16
13
  async set(key, value) {
17
- await __classPrivateFieldGet(this, _LmdbAztecCounter_map, "f").set(key, value);
14
+ await this.#map.set(key, value);
18
15
  }
19
16
  update(key, delta = 1) {
20
- return __classPrivateFieldGet(this, _LmdbAztecCounter_db, "f").childTransaction(() => {
21
- const current = __classPrivateFieldGet(this, _LmdbAztecCounter_map, "f").get(key) ?? 0;
17
+ return this.#db.childTransaction(()=>{
18
+ const current = this.#map.get(key) ?? 0;
22
19
  const next = current + delta;
23
20
  if (next < 0) {
24
- throw new Error(`Cannot update ${key} in counter ${__classPrivateFieldGet(this, _LmdbAztecCounter_name, "f")} below zero`);
21
+ throw new Error(`Cannot update ${key} in counter ${this.#name} below zero`);
25
22
  }
26
23
  if (next === 0) {
27
- void __classPrivateFieldGet(this, _LmdbAztecCounter_map, "f").delete(key);
28
- }
29
- else {
24
+ void this.#map.delete(key);
25
+ } else {
30
26
  // store the key inside the entry because LMDB might return an internal representation
31
27
  // of the key when iterating over the database
32
- void __classPrivateFieldGet(this, _LmdbAztecCounter_map, "f").set(key, next);
28
+ void this.#map.set(key, next);
33
29
  }
34
30
  });
35
31
  }
36
32
  get(key) {
37
- return __classPrivateFieldGet(this, _LmdbAztecCounter_map, "f").get(key) ?? 0;
33
+ return this.#map.get(key) ?? 0;
38
34
  }
39
35
  getAsync(key) {
40
36
  return Promise.resolve(this.get(key));
41
37
  }
42
38
  entries(range = {}) {
43
- return __classPrivateFieldGet(this, _LmdbAztecCounter_map, "f").entries(range);
39
+ return this.#map.entries(range);
44
40
  }
45
41
  async *entriesAsync(range = {}) {
46
42
  yield* this.entries(range);
47
43
  }
48
44
  keys(range = {}) {
49
- return __classPrivateFieldGet(this, _LmdbAztecCounter_map, "f").keys(range);
45
+ return this.#map.keys(range);
50
46
  }
51
47
  async *keysAsync(range = {}) {
52
48
  yield* this.keys(range);
53
49
  }
54
50
  }
55
- _LmdbAztecCounter_db = new WeakMap(), _LmdbAztecCounter_name = new WeakMap(), _LmdbAztecCounter_map = new WeakMap();
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiL2NvdW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUFZLEVBQThCLEVBQUUsSUFBWTtRQUp4RCx1Q0FBYztRQUNkLHlDQUFjO1FBQ2Qsd0NBQThCO1FBRzVCLHVCQUFBLElBQUksd0JBQU8sRUFBRSxNQUFBLENBQUM7UUFDZCx1QkFBQSxJQUFJLDBCQUFTLElBQUksTUFBQSxDQUFDO1FBQ2xCLHVCQUFBLElBQUkseUJBQVEsSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFBLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBTSxFQUFFLEtBQWE7UUFDN0IsTUFBTSx1QkFBQSxJQUFJLDZCQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQU0sRUFBRSxLQUFLLEdBQUcsQ0FBQztRQUN0QixPQUFPLHVCQUFBLElBQUksNEJBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxPQUFPLEdBQUcsdUJBQUEsSUFBSSw2QkFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUU3QixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDYixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixHQUFHLGVBQWUsdUJBQUEsSUFBSSw4QkFBTSxhQUFhLENBQUMsQ0FBQztZQUM5RSxDQUFDO1lBRUQsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsS0FBSyx1QkFBQSxJQUFJLDZCQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixzRkFBc0Y7Z0JBQ3RGLDhDQUE4QztnQkFDOUMsS0FBSyx1QkFBQSxJQUFJLDZCQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQU07UUFDUixPQUFPLHVCQUFBLElBQUksNkJBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBTTtRQUNiLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFrQixFQUFFO1FBQzFCLE9BQU8sdUJBQUEsSUFBSSw2QkFBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQWtCLEVBQUU7UUFDdEMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQWtCLEVBQUU7UUFDdkIsT0FBTyx1QkFBQSxJQUFJLDZCQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBa0IsRUFBRTtRQUNuQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDRiJ9
@@ -8,9 +8,7 @@ export function createStore(name, config, log = createLogger('kv-store')) {
8
8
  if (typeof dataDirectory !== 'undefined') {
9
9
  dataDirectory = join(dataDirectory, name);
10
10
  }
11
- log.info(dataDirectory
12
- ? `Creating ${name} data store at directory ${dataDirectory} with map size ${config.dataStoreMapSizeKB} KB`
13
- : `Creating ${name} ephemeral data store with map size ${config.dataStoreMapSizeKB} KB`);
11
+ log.info(dataDirectory ? `Creating ${name} data store at directory ${dataDirectory} with map size ${config.dataStoreMapSizeKB} KB` : `Creating ${name} ephemeral data store with map size ${config.dataStoreMapSizeKB} KB`);
14
12
  const store = AztecLmdbStore.open(dataDirectory, config.dataStoreMapSizeKB, false);
15
13
  if (config.l1Contracts?.rollupAddress) {
16
14
  return initStoreForRollup(store, config.l1Contracts.rollupAddress, log);
@@ -21,9 +19,7 @@ export function createStore(name, config, log = createLogger('kv-store')) {
21
19
  * Opens a temporary store for testing purposes.
22
20
  * @param ephemeral - true if the store should only exist in memory and not automatically be flushed to disk. Optional
23
21
  * @returns A new store
24
- */
25
- export function openTmpStore(ephemeral = false) {
22
+ */ export function openTmpStore(ephemeral = false) {
26
23
  const mapSize = 1024 * 1024 * 10; // 10 GB map size
27
24
  return AztecLmdbStore.open(undefined, mapSize, ephemeral);
28
25
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVDLE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWSxFQUFFLE1BQXVCLEVBQUUsTUFBYyxZQUFZLENBQUMsVUFBVSxDQUFDO0lBQ3ZHLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDL0IsSUFBSSxPQUFPLGFBQWEsS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUN6QyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FDTixhQUFhO1FBQ1gsQ0FBQyxDQUFDLFlBQVksSUFBSSw0QkFBNEIsYUFBYSxrQkFBa0IsTUFBTSxDQUFDLGtCQUFrQixLQUFLO1FBQzNHLENBQUMsQ0FBQyxZQUFZLElBQUksdUNBQXVDLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxDQUMxRixDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25GLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUN0QyxPQUFPLGtCQUFrQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBQ0Q7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsWUFBcUIsS0FBSztJQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtJQUNuRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM1RCxDQUFDIn0=