@aztec/kv-store 0.72.1 → 0.74.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 (64) hide show
  1. package/dest/config.js +3 -3
  2. package/dest/indexeddb/store.d.ts +4 -7
  3. package/dest/indexeddb/store.d.ts.map +1 -1
  4. package/dest/indexeddb/store.js +5 -2
  5. package/dest/interfaces/common.d.ts +6 -1
  6. package/dest/interfaces/common.d.ts.map +1 -1
  7. package/dest/interfaces/index.d.ts +1 -1
  8. package/dest/interfaces/index.d.ts.map +1 -1
  9. package/dest/interfaces/map.d.ts +0 -6
  10. package/dest/interfaces/map.d.ts.map +1 -1
  11. package/dest/interfaces/map_test_suite.d.ts.map +1 -1
  12. package/dest/interfaces/map_test_suite.js +1 -12
  13. package/dest/interfaces/store.d.ts +11 -11
  14. package/dest/interfaces/store.d.ts.map +1 -1
  15. package/dest/lmdb/store.d.ts +2 -6
  16. package/dest/lmdb/store.d.ts.map +1 -1
  17. package/dest/lmdb/store.js +3 -3
  18. package/dest/lmdb-v2/factory.d.ts +9 -0
  19. package/dest/lmdb-v2/factory.d.ts.map +1 -0
  20. package/dest/lmdb-v2/factory.js +61 -0
  21. package/dest/lmdb-v2/index.d.ts +3 -0
  22. package/dest/lmdb-v2/index.d.ts.map +1 -0
  23. package/dest/lmdb-v2/index.js +3 -0
  24. package/dest/lmdb-v2/map.d.ts +86 -0
  25. package/dest/lmdb-v2/map.d.ts.map +1 -0
  26. package/dest/lmdb-v2/map.js +196 -0
  27. package/dest/lmdb-v2/message.d.ts +112 -0
  28. package/dest/lmdb-v2/message.d.ts.map +1 -0
  29. package/dest/lmdb-v2/message.js +19 -0
  30. package/dest/lmdb-v2/read_transaction.d.ts +14 -0
  31. package/dest/lmdb-v2/read_transaction.d.ts.map +1 -0
  32. package/dest/lmdb-v2/read_transaction.js +89 -0
  33. package/dest/lmdb-v2/singleton.d.ts +12 -0
  34. package/dest/lmdb-v2/singleton.d.ts.map +1 -0
  35. package/dest/lmdb-v2/singleton.js +29 -0
  36. package/dest/lmdb-v2/store.d.ts +43 -0
  37. package/dest/lmdb-v2/store.d.ts.map +1 -0
  38. package/dest/lmdb-v2/store.js +178 -0
  39. package/dest/lmdb-v2/utils.d.ts +19 -0
  40. package/dest/lmdb-v2/utils.d.ts.map +1 -0
  41. package/dest/lmdb-v2/utils.js +126 -0
  42. package/dest/lmdb-v2/write_transaction.d.ts +19 -0
  43. package/dest/lmdb-v2/write_transaction.d.ts.map +1 -0
  44. package/dest/lmdb-v2/write_transaction.js +234 -0
  45. package/dest/stores/l2_tips_store.js +2 -2
  46. package/package.json +14 -6
  47. package/src/config.ts +2 -2
  48. package/src/indexeddb/store.ts +8 -4
  49. package/src/interfaces/common.ts +3 -1
  50. package/src/interfaces/index.ts +1 -1
  51. package/src/interfaces/map.ts +0 -7
  52. package/src/interfaces/map_test_suite.ts +1 -16
  53. package/src/interfaces/store.ts +13 -3
  54. package/src/lmdb/store.ts +4 -4
  55. package/src/lmdb-v2/factory.ts +89 -0
  56. package/src/lmdb-v2/index.ts +2 -0
  57. package/src/lmdb-v2/map.ts +233 -0
  58. package/src/lmdb-v2/message.ts +146 -0
  59. package/src/lmdb-v2/read_transaction.ts +116 -0
  60. package/src/lmdb-v2/singleton.ts +34 -0
  61. package/src/lmdb-v2/store.ts +236 -0
  62. package/src/lmdb-v2/utils.ts +150 -0
  63. package/src/lmdb-v2/write_transaction.ts +314 -0
  64. package/src/stores/l2_tips_store.ts +1 -1
@@ -0,0 +1,196 @@
1
+ import { Encoder } from 'msgpackr';
2
+ import { execInReadTx, execInWriteTx } from './store.js';
3
+ import { deserializeKey, maxKey, minKey, serializeKey } from './utils.js';
4
+ export class LMDBMap {
5
+ constructor(store, name) {
6
+ this.store = store;
7
+ this.encoder = new Encoder();
8
+ this.prefix = `map:${name}`;
9
+ }
10
+ /**
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)));
17
+ }
18
+ /**
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) => {
25
+ const strKey = serializeKey(this.prefix, key);
26
+ const exists = !!(await tx.get(strKey));
27
+ if (!exists) {
28
+ await tx.set(strKey, this.encoder.pack(val));
29
+ return true;
30
+ }
31
+ return false;
32
+ });
33
+ }
34
+ /**
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
+ }
41
+ getAsync(key) {
42
+ return execInReadTx(this.store, async (tx) => {
43
+ const val = await tx.get(serializeKey(this.prefix, key));
44
+ return val ? this.encoder.unpack(val) : undefined;
45
+ });
46
+ }
47
+ hasAsync(key) {
48
+ return execInReadTx(this.store, async (tx) => !!(await tx.get(serializeKey(this.prefix, key))));
49
+ }
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) {
55
+ const reverse = range?.reverse ?? false;
56
+ const startKey = range?.start ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
57
+ const endKey = range?.end ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
58
+ let tx = this.store.getCurrentWriteTx();
59
+ const shouldClose = !tx;
60
+ tx ?? (tx = this.store.getReadTx());
61
+ try {
62
+ for await (const [key, val] of tx.iterate(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)) {
63
+ const deserializedKey = deserializeKey(this.prefix, key);
64
+ if (!deserializedKey) {
65
+ break;
66
+ }
67
+ yield [deserializedKey, this.encoder.unpack(val)];
68
+ }
69
+ }
70
+ finally {
71
+ if (shouldClose) {
72
+ tx.close();
73
+ }
74
+ }
75
+ }
76
+ /**
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
+ yield value;
83
+ }
84
+ }
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)) {
91
+ yield key;
92
+ }
93
+ }
94
+ }
95
+ export class LMDBMultiMap {
96
+ constructor(store, name) {
97
+ this.store = store;
98
+ this.encoder = new Encoder();
99
+ this.prefix = `multimap:${name}`;
100
+ }
101
+ /**
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)));
108
+ }
109
+ /**
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
+ if (!exists) {
118
+ await tx.setIndex(serializeKey(this.prefix, key), this.encoder.pack(val));
119
+ return true;
120
+ }
121
+ return false;
122
+ });
123
+ }
124
+ /**
125
+ * Deletes the value at the given key.
126
+ * @param key - The key to delete the value at
127
+ */
128
+ delete(key) {
129
+ return execInWriteTx(this.store, tx => tx.removeIndex(serializeKey(this.prefix, key)));
130
+ }
131
+ getAsync(key) {
132
+ return execInReadTx(this.store, async (tx) => {
133
+ const val = await tx.getIndex(serializeKey(this.prefix, key));
134
+ return val.length > 0 ? this.encoder.unpack(val[0]) : undefined;
135
+ });
136
+ }
137
+ hasAsync(key) {
138
+ return execInReadTx(this.store, async (tx) => (await tx.getIndex(serializeKey(this.prefix, key))).length > 0);
139
+ }
140
+ /**
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) {
145
+ const reverse = range?.reverse ?? false;
146
+ const startKey = range?.start ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
147
+ const endKey = range?.end ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
148
+ let tx = this.store.getCurrentWriteTx();
149
+ const shouldClose = !tx;
150
+ tx ?? (tx = this.store.getReadTx());
151
+ try {
152
+ for await (const [key, vals] of tx.iterateIndex(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)) {
153
+ const deserializedKey = deserializeKey(this.prefix, key);
154
+ if (!deserializedKey) {
155
+ break;
156
+ }
157
+ for (const val of vals) {
158
+ yield [deserializedKey, this.encoder.unpack(val)];
159
+ }
160
+ }
161
+ }
162
+ finally {
163
+ if (shouldClose) {
164
+ tx.close();
165
+ }
166
+ }
167
+ }
168
+ /**
169
+ * Iterates over the map's values in the key's natural order
170
+ * @param range - The range of keys to iterate over
171
+ */
172
+ async *valuesAsync(range) {
173
+ for await (const [_, value] of this.entriesAsync(range)) {
174
+ yield value;
175
+ }
176
+ }
177
+ /**
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)) {
183
+ yield key;
184
+ }
185
+ }
186
+ deleteValue(key, val) {
187
+ return execInWriteTx(this.store, tx => tx.removeIndex(serializeKey(this.prefix, key), this.encoder.pack(val)));
188
+ }
189
+ async *getValuesAsync(key) {
190
+ const values = await execInReadTx(this.store, tx => tx.getIndex(serializeKey(this.prefix, key)));
191
+ for (const value of values) {
192
+ yield this.encoder.unpack(value);
193
+ }
194
+ }
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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"}
@@ -0,0 +1,19 @@
1
+ export var Database;
2
+ (function (Database) {
3
+ Database["DATA"] = "data";
4
+ Database["INDEX"] = "index";
5
+ })(Database || (Database = {}));
6
+ export const CURSOR_PAGE_SIZE = 10;
7
+ export var LMDBMessageType;
8
+ (function (LMDBMessageType) {
9
+ LMDBMessageType[LMDBMessageType["OPEN_DATABASE"] = 100] = "OPEN_DATABASE";
10
+ LMDBMessageType[LMDBMessageType["GET"] = 101] = "GET";
11
+ LMDBMessageType[LMDBMessageType["HAS"] = 102] = "HAS";
12
+ LMDBMessageType[LMDBMessageType["START_CURSOR"] = 103] = "START_CURSOR";
13
+ LMDBMessageType[LMDBMessageType["ADVANCE_CURSOR"] = 104] = "ADVANCE_CURSOR";
14
+ LMDBMessageType[LMDBMessageType["CLOSE_CURSOR"] = 105] = "CLOSE_CURSOR";
15
+ LMDBMessageType[LMDBMessageType["BATCH"] = 106] = "BATCH";
16
+ LMDBMessageType[LMDBMessageType["STATS"] = 107] = "STATS";
17
+ LMDBMessageType[LMDBMessageType["CLOSE"] = 108] = "CLOSE";
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"}
@@ -0,0 +1,89 @@
1
+ var _ReadTransaction_instances, _ReadTransaction_iterate;
2
+ import { __classPrivateFieldGet } from "tslib";
3
+ import { CURSOR_PAGE_SIZE, Database, LMDBMessageType } from './message.js';
4
+ export class ReadTransaction {
5
+ constructor(channel) {
6
+ _ReadTransaction_instances.add(this);
7
+ this.channel = channel;
8
+ this.open = true;
9
+ }
10
+ close() {
11
+ if (!this.open) {
12
+ return;
13
+ }
14
+ this.open = false;
15
+ }
16
+ assertIsOpen() {
17
+ if (!this.open) {
18
+ throw new Error('Transaction is closed');
19
+ }
20
+ }
21
+ async get(key) {
22
+ this.assertIsOpen();
23
+ const response = await this.channel.sendMessage(LMDBMessageType.GET, { keys: [key], db: Database.DATA });
24
+ return response.values[0]?.[0] ?? undefined;
25
+ }
26
+ async getIndex(key) {
27
+ this.assertIsOpen();
28
+ const response = await this.channel.sendMessage(LMDBMessageType.GET, { keys: [key], db: Database.INDEX });
29
+ return response.values[0] ?? [];
30
+ }
31
+ 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]);
33
+ }
34
+ 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);
36
+ }
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)) {
63
+ done = true;
64
+ break;
65
+ }
66
+ }
67
+ count++;
68
+ yield [key, map(values)];
69
+ }
70
+ // cursor is null if DB returned everything in the first page
71
+ if (typeof cursor !== 'number' || done) {
72
+ break;
73
+ }
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
+ }
81
+ }
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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
@@ -0,0 +1,12 @@
1
+ import { type AztecAsyncSingleton } from '../interfaces/singleton.js';
2
+ import { type AztecLMDBStoreV2 } from './store.js';
3
+ export declare class LMDBSingleValue<T> implements AztecAsyncSingleton<T> {
4
+ private store;
5
+ private key;
6
+ private encoder;
7
+ constructor(store: AztecLMDBStoreV2, name: string);
8
+ getAsync(): Promise<T | undefined>;
9
+ set(val: T): Promise<boolean>;
10
+ delete(): Promise<boolean>;
11
+ }
12
+ //# sourceMappingURL=singleton.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,29 @@
1
+ import { Encoder } from 'msgpackr';
2
+ import { execInReadTx, execInWriteTx } from './store.js';
3
+ import { serializeKey } from './utils.js';
4
+ export class LMDBSingleValue {
5
+ constructor(store, name) {
6
+ this.store = store;
7
+ this.encoder = new Encoder();
8
+ this.key = serializeKey(`singleton:${name}`, 'value');
9
+ }
10
+ getAsync() {
11
+ return execInReadTx(this.store, async (tx) => {
12
+ const val = await tx.get(this.key);
13
+ return val ? this.encoder.unpack(val) : undefined;
14
+ });
15
+ }
16
+ set(val) {
17
+ return execInWriteTx(this.store, async (tx) => {
18
+ await tx.set(this.key, this.encoder.pack(val));
19
+ return true;
20
+ });
21
+ }
22
+ delete() {
23
+ return execInWriteTx(this.store, async (tx) => {
24
+ await tx.remove(this.key);
25
+ return true;
26
+ });
27
+ }
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvc2luZ2xldG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbkMsT0FBTyxFQUF5QixZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUMsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBb0IsS0FBdUIsRUFBRSxJQUFZO1FBQXJDLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBRG5DLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTlCLElBQUksQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFFLEVBQUMsRUFBRTtZQUN6QyxNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFNO1FBQ1IsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsRUFBRSxFQUFDLEVBQUU7WUFDMUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFFLEVBQUMsRUFBRTtZQUMxQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
@@ -0,0 +1,43 @@
1
+ import { type Logger } from '@aztec/foundation/log';
2
+ import type { AztecAsyncArray } from '../interfaces/array.js';
3
+ import type { Key, StoreSize } from '../interfaces/common.js';
4
+ import type { AztecAsyncCounter } from '../interfaces/counter.js';
5
+ import type { AztecAsyncMap, AztecAsyncMultiMap } from '../interfaces/map.js';
6
+ import type { AztecAsyncSet } from '../interfaces/set.js';
7
+ import type { AztecAsyncSingleton } from '../interfaces/singleton.js';
8
+ import type { AztecAsyncKVStore } from '../interfaces/store.js';
9
+ import { type LMDBMessageChannel, LMDBMessageType, type LMDBRequestBody, type LMDBResponseBody } from './message.js';
10
+ import { ReadTransaction } from './read_transaction.js';
11
+ import { WriteTransaction } from './write_transaction.js';
12
+ export declare class AztecLMDBStoreV2 implements AztecAsyncKVStore, LMDBMessageChannel {
13
+ private dataDir;
14
+ private log;
15
+ private cleanup?;
16
+ private open;
17
+ private channel;
18
+ private writerCtx;
19
+ private writerQueue;
20
+ private availableCursors;
21
+ private constructor();
22
+ get dataDirectory(): string;
23
+ private start;
24
+ static new(dataDir: string, dbMapSizeKb?: number, maxReaders?: number, cleanup?: () => Promise<void>, log?: Logger): Promise<AztecLMDBStoreV2>;
25
+ getReadTx(): ReadTransaction;
26
+ getCurrentWriteTx(): WriteTransaction | undefined;
27
+ openMap<K extends Key, V>(name: string): AztecAsyncMap<K, V>;
28
+ openMultiMap<K extends Key, V>(name: string): AztecAsyncMultiMap<K, V>;
29
+ openSingleton<T>(name: string): AztecAsyncSingleton<T>;
30
+ openArray<T>(_name: string): AztecAsyncArray<T>;
31
+ openSet<K extends Key>(_name: string): AztecAsyncSet<K>;
32
+ openCounter<K extends Key>(_name: string): AztecAsyncCounter<K>;
33
+ transactionAsync<T extends Exclude<any, Promise<any>>>(callback: (tx: WriteTransaction) => Promise<T>): Promise<T>;
34
+ clear(): Promise<void>;
35
+ fork(): Promise<AztecAsyncKVStore>;
36
+ delete(): Promise<void>;
37
+ close(): Promise<void>;
38
+ sendMessage<T extends LMDBMessageType>(msgType: T, body: LMDBRequestBody[T]): Promise<LMDBResponseBody[T]>;
39
+ estimateSize(): Promise<StoreSize>;
40
+ }
41
+ export declare function execInWriteTx<T>(store: AztecLMDBStoreV2, fn: (tx: WriteTransaction) => Promise<T>): Promise<T>;
42
+ export declare function execInReadTx<T>(store: AztecLMDBStoreV2, fn: (tx: ReadTransaction) => T | Promise<T>): Promise<T>;
43
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAOlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAEL,KAAK,kBAAkB,EACvB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBAAa,gBAAiB,YAAW,iBAAiB,EAAE,kBAAkB;IAQ1E,OAAO,CAAC,OAAO;IAGf,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO,CAAC;IAXlB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAqE;IACpF,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,gBAAgB,CAAY;IAEpC,OAAO;IAaP,IAAW,aAAa,IAAI,MAAM,CAEjC;YAEa,KAAK;WAgBC,GAAG,CACrB,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAyB,EACtC,UAAU,GAAE,MAAW,EACvB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC7B,GAAG,SAAmC;IAOjC,SAAS,IAAI,eAAe;IAO5B,iBAAiB,IAAI,gBAAgB,GAAG,SAAS;IAQxD,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAI5D,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAItE,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAItD,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;IAI/C,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;IAIvD,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAIzD,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EACzD,QAAQ,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,CAAC;IA4Bb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAI5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,KAAK;IAUE,WAAW,CAAC,CAAC,SAAS,eAAe,EAChD,OAAO,EAAE,CAAC,EACV,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IA0BlB,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;CAQhD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO9G;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,KAAK,EAAE,gBAAgB,EACvB,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC1C,OAAO,CAAC,CAAC,CAAC,CAYZ"}