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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dest/config.d.ts +17 -0
  2. package/dest/config.d.ts.map +1 -0
  3. package/dest/config.js +7 -5
  4. package/dest/indexeddb/array.d.ts +21 -0
  5. package/dest/indexeddb/array.d.ts.map +1 -0
  6. package/dest/indexeddb/array.js +36 -44
  7. package/dest/indexeddb/index.d.ts +7 -0
  8. package/dest/indexeddb/index.d.ts.map +1 -0
  9. package/dest/indexeddb/index.js +4 -1
  10. package/dest/indexeddb/map.d.ts +26 -0
  11. package/dest/indexeddb/map.d.ts.map +1 -0
  12. package/dest/indexeddb/map.js +43 -72
  13. package/dest/indexeddb/set.d.ts +17 -0
  14. package/dest/indexeddb/set.d.ts.map +1 -0
  15. package/dest/indexeddb/set.js +4 -3
  16. package/dest/indexeddb/singleton.d.ts +16 -0
  17. package/dest/indexeddb/singleton.d.ts.map +1 -0
  18. package/dest/indexeddb/singleton.js +22 -17
  19. package/dest/indexeddb/store.d.ts +97 -0
  20. package/dest/indexeddb/store.d.ts.map +1 -0
  21. package/dest/indexeddb/store.js +93 -97
  22. package/dest/interfaces/array.d.ts +80 -0
  23. package/dest/interfaces/array.d.ts.map +1 -0
  24. package/dest/interfaces/array.js +2 -3
  25. package/dest/interfaces/array_test_suite.d.ts +3 -0
  26. package/dest/interfaces/array_test_suite.d.ts.map +1 -0
  27. package/dest/interfaces/array_test_suite.js +25 -29
  28. package/dest/interfaces/common.d.ts +23 -0
  29. package/dest/interfaces/common.d.ts.map +1 -0
  30. package/dest/interfaces/common.js +2 -3
  31. package/dest/interfaces/counter.d.ts +59 -0
  32. package/dest/interfaces/counter.d.ts.map +1 -0
  33. package/dest/interfaces/counter.js +2 -1
  34. package/dest/interfaces/index.d.ts +8 -0
  35. package/dest/interfaces/index.d.ts.map +1 -0
  36. package/dest/interfaces/index.js +1 -0
  37. package/dest/interfaces/map.d.ts +134 -0
  38. package/dest/interfaces/map.d.ts.map +1 -0
  39. package/dest/interfaces/map.js +2 -3
  40. package/dest/interfaces/map_test_suite.d.ts +3 -0
  41. package/dest/interfaces/map_test_suite.d.ts.map +1 -0
  42. package/dest/interfaces/map_test_suite.js +42 -87
  43. package/dest/interfaces/set.d.ts +44 -0
  44. package/dest/interfaces/set.d.ts.map +1 -0
  45. package/dest/interfaces/set.js +2 -1
  46. package/dest/interfaces/set_test_suite.d.ts +3 -0
  47. package/dest/interfaces/set_test_suite.d.ts.map +1 -0
  48. package/dest/interfaces/set_test_suite.js +22 -59
  49. package/dest/interfaces/singleton.d.ts +29 -0
  50. package/dest/interfaces/singleton.d.ts.map +1 -0
  51. package/dest/interfaces/singleton.js +2 -4
  52. package/dest/interfaces/singleton_test_suite.d.ts +3 -0
  53. package/dest/interfaces/singleton_test_suite.d.ts.map +1 -0
  54. package/dest/interfaces/singleton_test_suite.js +10 -7
  55. package/dest/interfaces/store.d.ts +145 -0
  56. package/dest/interfaces/store.d.ts.map +1 -0
  57. package/dest/interfaces/store.js +2 -1
  58. package/dest/interfaces/store_test_suite.d.ts +3 -0
  59. package/dest/interfaces/store_test_suite.d.ts.map +1 -0
  60. package/dest/interfaces/store_test_suite.js +9 -6
  61. package/dest/interfaces/utils.d.ts +16 -0
  62. package/dest/interfaces/utils.d.ts.map +1 -0
  63. package/dest/interfaces/utils.js +15 -12
  64. package/dest/lmdb/array.d.ts +23 -0
  65. package/dest/lmdb/array.d.ts.map +1 -0
  66. package/dest/lmdb/array.js +41 -46
  67. package/dest/lmdb/counter.d.ts +19 -0
  68. package/dest/lmdb/counter.d.ts.map +1 -0
  69. package/dest/lmdb/counter.js +24 -18
  70. package/dest/lmdb/index.d.ts +12 -0
  71. package/dest/lmdb/index.d.ts.map +1 -0
  72. package/dest/lmdb/index.js +6 -2
  73. package/dest/lmdb/map.d.ts +52 -0
  74. package/dest/lmdb/map.d.ts.map +1 -0
  75. package/dest/lmdb/map.js +68 -90
  76. package/dest/lmdb/set.d.ts +18 -0
  77. package/dest/lmdb/set.d.ts.map +1 -0
  78. package/dest/lmdb/set.js +5 -4
  79. package/dest/lmdb/singleton.d.ts +14 -0
  80. package/dest/lmdb/singleton.d.ts.map +1 -0
  81. package/dest/lmdb/singleton.js +14 -13
  82. package/dest/lmdb/store.d.ts +110 -0
  83. package/dest/lmdb/store.d.ts.map +1 -0
  84. package/dest/lmdb/store.js +134 -124
  85. package/dest/lmdb-v2/factory.d.ts +9 -0
  86. package/dest/lmdb-v2/factory.d.ts.map +1 -0
  87. package/dest/lmdb-v2/factory.js +19 -22
  88. package/dest/lmdb-v2/index.d.ts +3 -0
  89. package/dest/lmdb-v2/index.d.ts.map +1 -0
  90. package/dest/lmdb-v2/index.js +1 -0
  91. package/dest/lmdb-v2/map.d.ts +86 -0
  92. package/dest/lmdb-v2/map.d.ts.map +1 -0
  93. package/dest/lmdb-v2/map.js +85 -82
  94. package/dest/lmdb-v2/message.d.ts +112 -0
  95. package/dest/lmdb-v2/message.d.ts.map +1 -0
  96. package/dest/lmdb-v2/message.js +7 -6
  97. package/dest/lmdb-v2/read_transaction.d.ts +14 -0
  98. package/dest/lmdb-v2/read_transaction.d.ts.map +1 -0
  99. package/dest/lmdb-v2/read_transaction.js +53 -65
  100. package/dest/lmdb-v2/singleton.d.ts +12 -0
  101. package/dest/lmdb-v2/singleton.d.ts.map +1 -0
  102. package/dest/lmdb-v2/singleton.js +5 -7
  103. package/dest/lmdb-v2/store.d.ts +43 -0
  104. package/dest/lmdb-v2/store.d.ts.map +1 -0
  105. package/dest/lmdb-v2/store.js +26 -27
  106. package/dest/lmdb-v2/utils.d.ts +19 -0
  107. package/dest/lmdb-v2/utils.d.ts.map +1 -0
  108. package/dest/lmdb-v2/utils.js +30 -30
  109. package/dest/lmdb-v2/write_transaction.d.ts +19 -0
  110. package/dest/lmdb-v2/write_transaction.d.ts.map +1 -0
  111. package/dest/lmdb-v2/write_transaction.js +110 -130
  112. package/dest/stores/index.d.ts +2 -0
  113. package/dest/stores/index.d.ts.map +1 -0
  114. package/dest/stores/index.js +1 -0
  115. package/dest/stores/l2_tips_store.d.ts +13 -0
  116. package/dest/stores/l2_tips_store.d.ts.map +1 -0
  117. package/dest/stores/l2_tips_store.js +12 -26
  118. package/dest/utils.d.ts +12 -0
  119. package/dest/utils.d.ts.map +1 -0
  120. package/dest/utils.js +7 -3
  121. package/package.json +6 -6
  122. package/src/interfaces/index.ts +1 -1
@@ -0,0 +1,86 @@
1
+ import type { Key, Range } from '../interfaces/common.js';
2
+ import type { AztecAsyncMap, AztecAsyncMultiMap } from '../interfaces/map.js';
3
+ import { type AztecLMDBStoreV2 } from './store.js';
4
+ export declare class LMDBMap<K extends Key, V> implements AztecAsyncMap<K, V> {
5
+ private store;
6
+ private prefix;
7
+ private encoder;
8
+ constructor(store: AztecLMDBStoreV2, name: string);
9
+ /**
10
+ * Sets the value at the given key.
11
+ * @param key - The key to set the value at
12
+ * @param val - The value to set
13
+ */
14
+ set(key: K, val: V): Promise<void>;
15
+ /**
16
+ * Sets the value at the given key if it does not already exist.
17
+ * @param key - The key to set the value at
18
+ * @param val - The value to set
19
+ */
20
+ setIfNotExists(key: K, val: V): Promise<boolean>;
21
+ /**
22
+ * Deletes the value at the given key.
23
+ * @param key - The key to delete the value at
24
+ */
25
+ delete(key: K): Promise<void>;
26
+ getAsync(key: K): Promise<V | undefined>;
27
+ hasAsync(key: K): Promise<boolean>;
28
+ /**
29
+ * Iterates over the map's key-value entries in the key's natural order
30
+ * @param range - The range of keys to iterate over
31
+ */
32
+ entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]>;
33
+ /**
34
+ * Iterates over the map's values in the key's natural order
35
+ * @param range - The range of keys to iterate over
36
+ */
37
+ valuesAsync(range?: Range<K>): AsyncIterableIterator<V>;
38
+ /**
39
+ * Iterates over the map's keys in the key's natural order
40
+ * @param range - The range of keys to iterate over
41
+ */
42
+ keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
43
+ }
44
+ export declare class LMDBMultiMap<K extends Key, V> implements AztecAsyncMultiMap<K, V> {
45
+ private store;
46
+ private prefix;
47
+ private encoder;
48
+ constructor(store: AztecLMDBStoreV2, name: string);
49
+ /**
50
+ * Sets the value at the given key.
51
+ * @param key - The key to set the value at
52
+ * @param val - The value to set
53
+ */
54
+ set(key: K, val: V): Promise<void>;
55
+ /**
56
+ * Sets the value at the given key if it does not already exist.
57
+ * @param key - The key to set the value at
58
+ * @param val - The value to set
59
+ */
60
+ setIfNotExists(key: K, val: V): Promise<boolean>;
61
+ /**
62
+ * Deletes the value at the given key.
63
+ * @param key - The key to delete the value at
64
+ */
65
+ delete(key: K): Promise<void>;
66
+ getAsync(key: K): Promise<V | undefined>;
67
+ hasAsync(key: K): Promise<boolean>;
68
+ /**
69
+ * Iterates over the map's key-value entries in the key's natural order
70
+ * @param range - The range of keys to iterate over
71
+ */
72
+ entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]>;
73
+ /**
74
+ * Iterates over the map's values in the key's natural order
75
+ * @param range - The range of keys to iterate over
76
+ */
77
+ valuesAsync(range?: Range<K>): AsyncIterableIterator<V>;
78
+ /**
79
+ * Iterates over the map's keys in the key's natural order
80
+ * @param range - The range of keys to iterate over
81
+ */
82
+ keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
83
+ deleteValue(key: K, val: V | undefined): Promise<void>;
84
+ getValuesAsync(key: K): AsyncIterableIterator<V>;
85
+ }
86
+ //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/map.ts"],"names":[],"mappings":"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"}
@@ -2,29 +2,28 @@ 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
- store;
6
- prefix;
7
- encoder;
8
- constructor(store, name){
5
+ constructor(store, name) {
9
6
  this.store = store;
10
7
  this.encoder = new Encoder();
11
8
  this.prefix = `map:${name}`;
12
9
  }
13
10
  /**
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)));
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)));
19
17
  }
20
18
  /**
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)=>{
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) => {
26
25
  const strKey = serializeKey(this.prefix, key);
27
- const exists = !!await tx.get(strKey);
26
+ const exists = !!(await tx.get(strKey));
28
27
  if (!exists) {
29
28
  await tx.set(strKey, this.encoder.pack(val));
30
29
  return true;
@@ -33,87 +32,88 @@ export class LMDBMap {
33
32
  });
34
33
  }
35
34
  /**
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)));
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)));
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
- */ 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
+ */
54
+ async *entriesAsync(range) {
54
55
  const reverse = range?.reverse ?? false;
55
56
  const startKey = range?.start ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
56
57
  const endKey = range?.end ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
57
58
  let tx = this.store.getCurrentWriteTx();
58
59
  const shouldClose = !tx;
59
- tx ??= this.store.getReadTx();
60
+ tx ?? (tx = this.store.getReadTx());
60
61
  try {
61
- for await (const [key, val] of tx.iterate(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)){
62
+ for await (const [key, val] of tx.iterate(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)) {
62
63
  const deserializedKey = deserializeKey(this.prefix, key);
63
64
  if (!deserializedKey) {
64
65
  break;
65
66
  }
66
- yield [
67
- deserializedKey,
68
- this.encoder.unpack(val)
69
- ];
67
+ yield [deserializedKey, this.encoder.unpack(val)];
70
68
  }
71
- } finally{
69
+ }
70
+ finally {
72
71
  if (shouldClose) {
73
72
  tx.close();
74
73
  }
75
74
  }
76
75
  }
77
76
  /**
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)){
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)) {
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
- */ async *keysAsync(range) {
89
- 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
+ */
89
+ async *keysAsync(range) {
90
+ for await (const [key, _] of this.entriesAsync(range)) {
90
91
  yield key;
91
92
  }
92
93
  }
93
94
  }
94
95
  export class LMDBMultiMap {
95
- store;
96
- prefix;
97
- encoder;
98
- constructor(store, name){
96
+ constructor(store, name) {
99
97
  this.store = store;
100
98
  this.encoder = new Encoder();
101
99
  this.prefix = `multimap:${name}`;
102
100
  }
103
101
  /**
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)));
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)));
109
108
  }
110
109
  /**
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);
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));
117
117
  if (!exists) {
118
118
  await tx.setIndex(serializeKey(this.prefix, key), this.encoder.pack(val));
119
119
  return true;
@@ -122,72 +122,75 @@ 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
- */ delete(key) {
128
- 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
+ */
128
+ delete(key) {
129
+ return execInWriteTx(this.store, tx => tx.removeIndex(serializeKey(this.prefix, key)));
129
130
  }
130
131
  getAsync(key) {
131
- return execInReadTx(this.store, async (tx)=>{
132
+ return execInReadTx(this.store, async (tx) => {
132
133
  const val = await tx.getIndex(serializeKey(this.prefix, key));
133
134
  return val.length > 0 ? this.encoder.unpack(val[0]) : undefined;
134
135
  });
135
136
  }
136
137
  hasAsync(key) {
137
- return execInReadTx(this.store, async (tx)=>(await tx.getIndex(serializeKey(this.prefix, key))).length > 0);
138
+ return execInReadTx(this.store, async (tx) => (await tx.getIndex(serializeKey(this.prefix, key))).length > 0);
138
139
  }
139
140
  /**
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) {
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) {
143
145
  const reverse = range?.reverse ?? false;
144
146
  const startKey = range?.start ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
145
147
  const endKey = range?.end ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
146
148
  let tx = this.store.getCurrentWriteTx();
147
149
  const shouldClose = !tx;
148
- tx ??= this.store.getReadTx();
150
+ tx ?? (tx = this.store.getReadTx());
149
151
  try {
150
- for await (const [key, vals] of tx.iterateIndex(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)){
152
+ for await (const [key, vals] of tx.iterateIndex(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)) {
151
153
  const deserializedKey = deserializeKey(this.prefix, key);
152
154
  if (!deserializedKey) {
153
155
  break;
154
156
  }
155
- for (const val of vals){
156
- yield [
157
- deserializedKey,
158
- this.encoder.unpack(val)
159
- ];
157
+ for (const val of vals) {
158
+ yield [deserializedKey, this.encoder.unpack(val)];
160
159
  }
161
160
  }
162
- } finally{
161
+ }
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
- */ async *valuesAsync(range) {
172
- 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
+ */
172
+ async *valuesAsync(range) {
173
+ for await (const [_, value] of this.entriesAsync(range)) {
173
174
  yield value;
174
175
  }
175
176
  }
176
177
  /**
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)){
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)) {
181
183
  yield key;
182
184
  }
183
185
  }
184
186
  deleteValue(key, val) {
185
- return execInWriteTx(this.store, (tx)=>tx.removeIndex(serializeKey(this.prefix, key), this.encoder.pack(val)));
187
+ return execInWriteTx(this.store, tx => tx.removeIndex(serializeKey(this.prefix, key), this.encoder.pack(val)));
186
188
  }
187
189
  async *getValuesAsync(key) {
188
- const values = await execInReadTx(this.store, (tx)=>tx.getIndex(serializeKey(this.prefix, key)));
189
- for (const value of values){
190
+ const values = await execInReadTx(this.store, tx => tx.getIndex(serializeKey(this.prefix, key)));
191
+ for (const value of values) {
190
192
  yield this.encoder.unpack(value);
191
193
  }
192
194
  }
193
195
  }
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFLbkMsT0FBTyxFQUF5QixZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUUsTUFBTSxPQUFPLE9BQU87SUFJbEIsWUFBb0IsS0FBdUIsRUFBRSxJQUFZO1FBQXJDLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBRm5DLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxHQUFNLEVBQUUsR0FBTTtRQUNoQixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsR0FBTSxFQUFFLEdBQU07UUFDM0IsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsRUFBRSxFQUFDLEVBQUU7WUFDMUMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMs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
@@ -0,0 +1,112 @@
1
+ export declare enum Database {
2
+ DATA = "data",
3
+ INDEX = "index"
4
+ }
5
+ export declare const CURSOR_PAGE_SIZE = 10;
6
+ export declare enum LMDBMessageType {
7
+ OPEN_DATABASE = 100,
8
+ GET = 101,
9
+ HAS = 102,
10
+ START_CURSOR = 103,
11
+ ADVANCE_CURSOR = 104,
12
+ CLOSE_CURSOR = 105,
13
+ BATCH = 106,
14
+ STATS = 107,
15
+ CLOSE = 108
16
+ }
17
+ type Key = Uint8Array;
18
+ type Value = Uint8Array;
19
+ type OptionalValues = Array<Value[] | null>;
20
+ type KeyOptionalValues = [Key, null | Array<Value>];
21
+ type KeyValues = [Key, Value[]];
22
+ interface OpenDatabaseRequest {
23
+ db: string;
24
+ uniqueKeys?: boolean;
25
+ }
26
+ interface GetRequest {
27
+ keys: Key[];
28
+ db: string;
29
+ }
30
+ interface GetResponse {
31
+ values: OptionalValues;
32
+ }
33
+ interface HasRequest {
34
+ entries: KeyOptionalValues[];
35
+ db: string;
36
+ }
37
+ interface StartCursorRequest {
38
+ key: Key;
39
+ reverse: boolean;
40
+ count: number | null;
41
+ onePage: boolean | null;
42
+ db: string;
43
+ }
44
+ interface AdvanceCursorRequest {
45
+ cursor: number;
46
+ count: number | null;
47
+ }
48
+ interface CloseCursorRequest {
49
+ cursor: number;
50
+ }
51
+ export interface Batch {
52
+ addEntries: Array<KeyValues>;
53
+ removeEntries: Array<KeyOptionalValues>;
54
+ }
55
+ interface BatchRequest {
56
+ batches: Map<string, Batch>;
57
+ }
58
+ export type LMDBRequestBody = {
59
+ [LMDBMessageType.OPEN_DATABASE]: OpenDatabaseRequest;
60
+ [LMDBMessageType.GET]: GetRequest;
61
+ [LMDBMessageType.HAS]: HasRequest;
62
+ [LMDBMessageType.START_CURSOR]: StartCursorRequest;
63
+ [LMDBMessageType.ADVANCE_CURSOR]: AdvanceCursorRequest;
64
+ [LMDBMessageType.CLOSE_CURSOR]: CloseCursorRequest;
65
+ [LMDBMessageType.BATCH]: BatchRequest;
66
+ [LMDBMessageType.STATS]: void;
67
+ [LMDBMessageType.CLOSE]: void;
68
+ };
69
+ interface GetResponse {
70
+ values: OptionalValues;
71
+ }
72
+ interface HasResponse {
73
+ exists: boolean[];
74
+ }
75
+ interface StartCursorResponse {
76
+ cursor: number | null;
77
+ entries: Array<KeyValues>;
78
+ }
79
+ interface AdvanceCursorResponse {
80
+ entries: Array<KeyValues>;
81
+ done: boolean;
82
+ }
83
+ interface BatchResponse {
84
+ durationNs: number;
85
+ }
86
+ interface BoolResponse {
87
+ ok: true;
88
+ }
89
+ interface StatsResponse {
90
+ stats: Array<{
91
+ name: string;
92
+ numDataItems: bigint | number;
93
+ totalUsedSize: bigint | number;
94
+ }>;
95
+ dbMapSizeBytes: bigint | number;
96
+ }
97
+ export type LMDBResponseBody = {
98
+ [LMDBMessageType.OPEN_DATABASE]: BoolResponse;
99
+ [LMDBMessageType.GET]: GetResponse;
100
+ [LMDBMessageType.HAS]: HasResponse;
101
+ [LMDBMessageType.START_CURSOR]: StartCursorResponse;
102
+ [LMDBMessageType.ADVANCE_CURSOR]: AdvanceCursorResponse;
103
+ [LMDBMessageType.CLOSE_CURSOR]: BoolResponse;
104
+ [LMDBMessageType.BATCH]: BatchResponse;
105
+ [LMDBMessageType.STATS]: StatsResponse;
106
+ [LMDBMessageType.CLOSE]: BoolResponse;
107
+ };
108
+ export interface LMDBMessageChannel {
109
+ sendMessage<T extends LMDBMessageType>(msgType: T, body: LMDBRequestBody[T]): Promise<LMDBResponseBody[T]>;
110
+ }
111
+ export {};
112
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/message.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- export var Database = /*#__PURE__*/ function(Database) {
1
+ export var Database;
2
+ (function (Database) {
2
3
  Database["DATA"] = "data";
3
4
  Database["INDEX"] = "index";
4
- return Database;
5
- }({});
5
+ })(Database || (Database = {}));
6
6
  export const CURSOR_PAGE_SIZE = 10;
7
- export var LMDBMessageType = /*#__PURE__*/ function(LMDBMessageType) {
7
+ export var LMDBMessageType;
8
+ (function (LMDBMessageType) {
8
9
  LMDBMessageType[LMDBMessageType["OPEN_DATABASE"] = 100] = "OPEN_DATABASE";
9
10
  LMDBMessageType[LMDBMessageType["GET"] = 101] = "GET";
10
11
  LMDBMessageType[LMDBMessageType["HAS"] = 102] = "HAS";
@@ -14,5 +15,5 @@ export var LMDBMessageType = /*#__PURE__*/ function(LMDBMessageType) {
14
15
  LMDBMessageType[LMDBMessageType["BATCH"] = 106] = "BATCH";
15
16
  LMDBMessageType[LMDBMessageType["STATS"] = 107] = "STATS";
16
17
  LMDBMessageType[LMDBMessageType["CLOSE"] = 108] = "CLOSE";
17
- return LMDBMessageType;
18
- }({});
18
+ })(LMDBMessageType || (LMDBMessageType = {}));
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL21lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQix5QkFBYSxDQUFBO0lBQ2IsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFFbkMsTUFBTSxDQUFOLElBQVksZUFjWDtBQWRELFdBQVksZUFBZTtJQUN6Qix5RUFBbUIsQ0FBQTtJQUNuQixxREFBRyxDQUFBO0lBQ0gscURBQUcsQ0FBQTtJQUVILHVFQUFZLENBQUE7SUFDWiwyRUFBYyxDQUFBO0lBQ2QsdUVBQVksQ0FBQTtJQUVaLHlEQUFLLENBQUE7SUFFTCx5REFBSyxDQUFBO0lBRUwseURBQUssQ0FBQTtBQUNQLENBQUMsRUFkVyxlQUFlLEtBQWYsZUFBZSxRQWMxQiJ9
@@ -0,0 +1,14 @@
1
+ import { type LMDBMessageChannel } from './message.js';
2
+ export declare class ReadTransaction {
3
+ #private;
4
+ protected channel: LMDBMessageChannel;
5
+ protected open: boolean;
6
+ constructor(channel: LMDBMessageChannel);
7
+ close(): void;
8
+ protected assertIsOpen(): void;
9
+ get(key: Uint8Array): Promise<Uint8Array | undefined>;
10
+ getIndex(key: Uint8Array): Promise<Uint8Array[]>;
11
+ iterate(startKey: Uint8Array, endKey?: Uint8Array, reverse?: boolean, limit?: number): AsyncIterable<[Uint8Array, Uint8Array]>;
12
+ iterateIndex(startKey: Uint8Array, endKey?: Uint8Array, reverse?: boolean, limit?: number): AsyncIterable<[Uint8Array, Uint8Array[]]>;
13
+ }
14
+ //# sourceMappingURL=read_transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read_transaction.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/read_transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,kBAAkB,EAAmB,MAAM,cAAc,CAAC;AAEpG,qBAAa,eAAe;;IAGd,SAAS,CAAC,OAAO,EAAE,kBAAkB;IAFjD,SAAS,CAAC,IAAI,UAAQ;gBAEA,OAAO,EAAE,kBAAkB;IAE1C,KAAK,IAAI,IAAI;IAOpB,SAAS,CAAC,YAAY;IAMT,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAMrD,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAM/C,OAAO,CACnB,QAAQ,EAAE,UAAU,EACpB,MAAM,CAAC,EAAE,UAAU,EACnB,OAAO,UAAQ,EACf,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAI5B,YAAY,CACxB,QAAQ,EAAE,UAAU,EACpB,MAAM,CAAC,EAAE,UAAU,EACnB,OAAO,UAAQ,EACf,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;CAqE7C"}