@aztec/kv-store 0.0.0-test.0 → 0.0.1-commit.023c3e5

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 (163) hide show
  1. package/dest/config.d.ts +2 -2
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +5 -3
  4. package/dest/indexeddb/array.d.ts +3 -2
  5. package/dest/indexeddb/array.d.ts.map +1 -1
  6. package/dest/indexeddb/array.js +6 -1
  7. package/dest/indexeddb/index.d.ts +2 -2
  8. package/dest/indexeddb/index.d.ts.map +1 -1
  9. package/dest/indexeddb/index.js +4 -7
  10. package/dest/indexeddb/map.d.ts +12 -6
  11. package/dest/indexeddb/map.d.ts.map +1 -1
  12. package/dest/indexeddb/map.js +38 -60
  13. package/dest/indexeddb/multi_map.d.ts +13 -0
  14. package/dest/indexeddb/multi_map.d.ts.map +1 -0
  15. package/dest/indexeddb/multi_map.js +92 -0
  16. package/dest/indexeddb/set.d.ts +1 -1
  17. package/dest/indexeddb/set.d.ts.map +1 -1
  18. package/dest/indexeddb/singleton.d.ts +3 -2
  19. package/dest/indexeddb/singleton.d.ts.map +1 -1
  20. package/dest/indexeddb/singleton.js +3 -1
  21. package/dest/indexeddb/store.d.ts +13 -14
  22. package/dest/indexeddb/store.d.ts.map +1 -1
  23. package/dest/indexeddb/store.js +45 -42
  24. package/dest/interfaces/array.d.ts +5 -4
  25. package/dest/interfaces/array.d.ts.map +1 -1
  26. package/dest/interfaces/array.js +1 -3
  27. package/dest/interfaces/array_test_suite.d.ts +1 -1
  28. package/dest/interfaces/common.d.ts +11 -9
  29. package/dest/interfaces/common.d.ts.map +1 -1
  30. package/dest/interfaces/common.js +8 -3
  31. package/dest/interfaces/counter.d.ts +1 -1
  32. package/dest/interfaces/index.d.ts +4 -2
  33. package/dest/interfaces/index.d.ts.map +1 -1
  34. package/dest/interfaces/index.js +2 -0
  35. package/dest/interfaces/map.d.ts +21 -49
  36. package/dest/interfaces/map.d.ts.map +1 -1
  37. package/dest/interfaces/map.js +1 -1
  38. package/dest/interfaces/map_test_suite.d.ts +1 -1
  39. package/dest/interfaces/map_test_suite.d.ts.map +1 -1
  40. package/dest/interfaces/map_test_suite.js +135 -70
  41. package/dest/interfaces/multi_map.d.ts +41 -0
  42. package/dest/interfaces/multi_map.d.ts.map +1 -0
  43. package/dest/interfaces/multi_map.js +3 -0
  44. package/dest/interfaces/multi_map_test_suite.d.ts +3 -0
  45. package/dest/interfaces/multi_map_test_suite.d.ts.map +1 -0
  46. package/dest/interfaces/multi_map_test_suite.js +339 -0
  47. package/dest/interfaces/set.d.ts +1 -1
  48. package/dest/interfaces/set_test_suite.d.ts +1 -1
  49. package/dest/interfaces/singleton.d.ts +1 -1
  50. package/dest/interfaces/singleton_test_suite.d.ts +1 -1
  51. package/dest/interfaces/store.d.ts +18 -43
  52. package/dest/interfaces/store.d.ts.map +1 -1
  53. package/dest/interfaces/utils.d.ts +3 -1
  54. package/dest/interfaces/utils.d.ts.map +1 -1
  55. package/dest/interfaces/utils.js +3 -1
  56. package/dest/lmdb/array.d.ts +3 -2
  57. package/dest/lmdb/array.d.ts.map +1 -1
  58. package/dest/lmdb/array.js +4 -2
  59. package/dest/lmdb/counter.d.ts +1 -1
  60. package/dest/lmdb/counter.d.ts.map +1 -1
  61. package/dest/lmdb/index.d.ts +2 -2
  62. package/dest/lmdb/index.d.ts.map +1 -1
  63. package/dest/lmdb/index.js +5 -5
  64. package/dest/lmdb/map.d.ts +11 -23
  65. package/dest/lmdb/map.d.ts.map +1 -1
  66. package/dest/lmdb/map.js +15 -81
  67. package/dest/lmdb/multi_map.d.ts +13 -0
  68. package/dest/lmdb/multi_map.d.ts.map +1 -0
  69. package/dest/lmdb/multi_map.js +44 -0
  70. package/dest/lmdb/set.d.ts +1 -1
  71. package/dest/lmdb/set.d.ts.map +1 -1
  72. package/dest/lmdb/singleton.d.ts +1 -1
  73. package/dest/lmdb/singleton.d.ts.map +1 -1
  74. package/dest/lmdb/store.d.ts +9 -25
  75. package/dest/lmdb/store.d.ts.map +1 -1
  76. package/dest/lmdb/store.js +12 -32
  77. package/dest/lmdb-v2/array.d.ts +4 -3
  78. package/dest/lmdb-v2/array.d.ts.map +1 -1
  79. package/dest/lmdb-v2/array.js +4 -2
  80. package/dest/lmdb-v2/factory.d.ts +6 -9
  81. package/dest/lmdb-v2/factory.d.ts.map +1 -1
  82. package/dest/lmdb-v2/factory.js +26 -12
  83. package/dest/lmdb-v2/index.d.ts +1 -1
  84. package/dest/lmdb-v2/map.d.ts +12 -45
  85. package/dest/lmdb-v2/map.d.ts.map +1 -1
  86. package/dest/lmdb-v2/map.js +17 -104
  87. package/dest/lmdb-v2/message.d.ts +24 -5
  88. package/dest/lmdb-v2/message.d.ts.map +1 -1
  89. package/dest/lmdb-v2/message.js +6 -4
  90. package/dest/lmdb-v2/multi_map.d.ts +52 -0
  91. package/dest/lmdb-v2/multi_map.d.ts.map +1 -0
  92. package/dest/lmdb-v2/multi_map.js +123 -0
  93. package/dest/lmdb-v2/read_transaction.d.ts +3 -1
  94. package/dest/lmdb-v2/read_transaction.d.ts.map +1 -1
  95. package/dest/lmdb-v2/read_transaction.js +34 -0
  96. package/dest/lmdb-v2/set.d.ts +15 -0
  97. package/dest/lmdb-v2/set.d.ts.map +1 -0
  98. package/dest/lmdb-v2/set.js +23 -0
  99. package/dest/lmdb-v2/singleton.d.ts +2 -2
  100. package/dest/lmdb-v2/singleton.d.ts.map +1 -1
  101. package/dest/lmdb-v2/singleton.js +1 -1
  102. package/dest/lmdb-v2/store.d.ts +13 -13
  103. package/dest/lmdb-v2/store.d.ts.map +1 -1
  104. package/dest/lmdb-v2/store.js +19 -29
  105. package/dest/lmdb-v2/tx-helpers.d.ts +6 -0
  106. package/dest/lmdb-v2/tx-helpers.d.ts.map +1 -0
  107. package/dest/lmdb-v2/tx-helpers.js +21 -0
  108. package/dest/lmdb-v2/utils.d.ts +3 -14
  109. package/dest/lmdb-v2/utils.d.ts.map +1 -1
  110. package/dest/lmdb-v2/utils.js +0 -94
  111. package/dest/lmdb-v2/write_transaction.d.ts +3 -5
  112. package/dest/lmdb-v2/write_transaction.d.ts.map +1 -1
  113. package/dest/lmdb-v2/write_transaction.js +9 -5
  114. package/dest/stores/index.d.ts +2 -1
  115. package/dest/stores/index.d.ts.map +1 -1
  116. package/dest/stores/index.js +1 -0
  117. package/dest/stores/l2_tips_store.d.ts +24 -8
  118. package/dest/stores/l2_tips_store.d.ts.map +1 -1
  119. package/dest/stores/l2_tips_store.js +63 -45
  120. package/dest/utils.d.ts +9 -6
  121. package/dest/utils.d.ts.map +1 -1
  122. package/dest/utils.js +45 -16
  123. package/package.json +23 -16
  124. package/src/config.ts +6 -4
  125. package/src/indexeddb/array.ts +5 -1
  126. package/src/indexeddb/index.ts +10 -8
  127. package/src/indexeddb/map.ts +35 -53
  128. package/src/indexeddb/multi_map.ts +91 -0
  129. package/src/indexeddb/singleton.ts +4 -1
  130. package/src/indexeddb/store.ts +66 -56
  131. package/src/interfaces/array.ts +5 -3
  132. package/src/interfaces/common.ts +20 -9
  133. package/src/interfaces/index.ts +3 -1
  134. package/src/interfaces/map.ts +19 -53
  135. package/src/interfaces/map_test_suite.ts +73 -44
  136. package/src/interfaces/multi_map.ts +45 -0
  137. package/src/interfaces/multi_map_test_suite.ts +342 -0
  138. package/src/interfaces/store.ts +18 -53
  139. package/src/interfaces/utils.ts +2 -0
  140. package/src/lmdb/array.ts +2 -1
  141. package/src/lmdb/index.ts +11 -6
  142. package/src/lmdb/map.ts +23 -94
  143. package/src/lmdb/multi_map.ts +51 -0
  144. package/src/lmdb/store.ts +24 -48
  145. package/src/lmdb-v2/array.ts +8 -3
  146. package/src/lmdb-v2/factory.ts +29 -18
  147. package/src/lmdb-v2/map.ts +30 -127
  148. package/src/lmdb-v2/message.ts +23 -0
  149. package/src/lmdb-v2/multi_map.ts +150 -0
  150. package/src/lmdb-v2/read_transaction.ts +40 -0
  151. package/src/lmdb-v2/set.ts +33 -0
  152. package/src/lmdb-v2/singleton.ts +6 -2
  153. package/src/lmdb-v2/store.ts +24 -42
  154. package/src/lmdb-v2/tx-helpers.ts +29 -0
  155. package/src/lmdb-v2/utils.ts +0 -118
  156. package/src/lmdb-v2/write_transaction.ts +11 -10
  157. package/src/stores/index.ts +2 -0
  158. package/src/stores/l2_tips_store.ts +67 -49
  159. package/src/utils.ts +69 -21
  160. package/dest/interfaces/store_test_suite.d.ts +0 -3
  161. package/dest/interfaces/store_test_suite.d.ts.map +0 -1
  162. package/dest/interfaces/store_test_suite.js +0 -37
  163. package/src/interfaces/store_test_suite.ts +0 -56
@@ -9,10 +9,12 @@ export declare enum LMDBMessageType {
9
9
  HAS = 102,
10
10
  START_CURSOR = 103,
11
11
  ADVANCE_CURSOR = 104,
12
- CLOSE_CURSOR = 105,
13
- BATCH = 106,
14
- STATS = 107,
15
- CLOSE = 108
12
+ ADVANCE_CURSOR_COUNT = 105,
13
+ CLOSE_CURSOR = 106,
14
+ BATCH = 107,
15
+ STATS = 108,
16
+ CLOSE = 109,
17
+ COPY_STORE = 110
16
18
  }
17
19
  type Key = Uint8Array;
18
20
  type Value = Uint8Array;
@@ -45,9 +47,17 @@ interface AdvanceCursorRequest {
45
47
  cursor: number;
46
48
  count: number | null;
47
49
  }
50
+ interface AdvanceCursorCountRequest {
51
+ cursor: number;
52
+ endKey: Key;
53
+ }
48
54
  interface CloseCursorRequest {
49
55
  cursor: number;
50
56
  }
57
+ interface CopyStoreRequest {
58
+ dstPath: string;
59
+ compact: boolean;
60
+ }
51
61
  export interface Batch {
52
62
  addEntries: Array<KeyValues>;
53
63
  removeEntries: Array<KeyOptionalValues>;
@@ -61,10 +71,12 @@ export type LMDBRequestBody = {
61
71
  [LMDBMessageType.HAS]: HasRequest;
62
72
  [LMDBMessageType.START_CURSOR]: StartCursorRequest;
63
73
  [LMDBMessageType.ADVANCE_CURSOR]: AdvanceCursorRequest;
74
+ [LMDBMessageType.ADVANCE_CURSOR_COUNT]: AdvanceCursorCountRequest;
64
75
  [LMDBMessageType.CLOSE_CURSOR]: CloseCursorRequest;
65
76
  [LMDBMessageType.BATCH]: BatchRequest;
66
77
  [LMDBMessageType.STATS]: void;
67
78
  [LMDBMessageType.CLOSE]: void;
79
+ [LMDBMessageType.COPY_STORE]: CopyStoreRequest;
68
80
  };
69
81
  interface GetResponse {
70
82
  values: OptionalValues;
@@ -80,6 +92,10 @@ interface AdvanceCursorResponse {
80
92
  entries: Array<KeyValues>;
81
93
  done: boolean;
82
94
  }
95
+ interface AdvanceCursorCountResponse {
96
+ count: number;
97
+ done: boolean;
98
+ }
83
99
  interface BatchResponse {
84
100
  durationNs: number;
85
101
  }
@@ -93,6 +109,7 @@ interface StatsResponse {
93
109
  totalUsedSize: bigint | number;
94
110
  }>;
95
111
  dbMapSizeBytes: bigint | number;
112
+ dbPhysicalFileSizeBytes: bigint | number;
96
113
  }
97
114
  export type LMDBResponseBody = {
98
115
  [LMDBMessageType.OPEN_DATABASE]: BoolResponse;
@@ -100,13 +117,15 @@ export type LMDBResponseBody = {
100
117
  [LMDBMessageType.HAS]: HasResponse;
101
118
  [LMDBMessageType.START_CURSOR]: StartCursorResponse;
102
119
  [LMDBMessageType.ADVANCE_CURSOR]: AdvanceCursorResponse;
120
+ [LMDBMessageType.ADVANCE_CURSOR_COUNT]: AdvanceCursorCountResponse;
103
121
  [LMDBMessageType.CLOSE_CURSOR]: BoolResponse;
104
122
  [LMDBMessageType.BATCH]: BatchResponse;
105
123
  [LMDBMessageType.STATS]: StatsResponse;
106
124
  [LMDBMessageType.CLOSE]: BoolResponse;
125
+ [LMDBMessageType.COPY_STORE]: BoolResponse;
107
126
  };
108
127
  export interface LMDBMessageChannel {
109
128
  sendMessage<T extends LMDBMessageType>(msgType: T, body: LMDBRequestBody[T]): Promise<LMDBResponseBody[T]>;
110
129
  }
111
130
  export {};
112
- //# sourceMappingURL=message.d.ts.map
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvbWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBWSxRQUFRO0lBQ2xCLElBQUksU0FBUztJQUNiLEtBQUssVUFBVTtDQUNoQjtBQUVELGVBQU8sTUFBTSxnQkFBZ0IsS0FBSyxDQUFDO0FBRW5DLG9CQUFZLGVBQWU7SUFDekIsYUFBYSxNQUFNO0lBQ25CLEdBQUcsTUFBQTtJQUNILEdBQUcsTUFBQTtJQUVILFlBQVksTUFBQTtJQUNaLGNBQWMsTUFBQTtJQUNkLG9CQUFvQixNQUFBO0lBQ3BCLFlBQVksTUFBQTtJQUVaLEtBQUssTUFBQTtJQUVMLEtBQUssTUFBQTtJQUVMLEtBQUssTUFBQTtJQUNMLFVBQVUsTUFBQTtDQUNYO0FBRUQsS0FBSyxHQUFHLEdBQUcsVUFBVSxDQUFDO0FBQ3RCLEtBQUssS0FBSyxHQUFHLFVBQVUsQ0FBQztBQUN4QixLQUFLLGNBQWMsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDNUMsS0FBSyxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDcEQsS0FBSyxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUVoQyxVQUFVLG1CQUFtQjtJQUMzQixFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDO0NBQ3RCO0FBRUQsVUFBVSxVQUFVO0lBQ2xCLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNaLEVBQUUsRUFBRSxNQUFNLENBQUM7Q0FDWjtBQUVELFVBQVUsV0FBVztJQUNuQixNQUFNLEVBQUUsY0FBYyxDQUFDO0NBQ3hCO0FBRUQsVUFBVSxVQUFVO0lBQ2xCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxDQUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/message.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,11 @@ export var LMDBMessageType = /*#__PURE__*/ function(LMDBMessageType) {
10
10
  LMDBMessageType[LMDBMessageType["HAS"] = 102] = "HAS";
11
11
  LMDBMessageType[LMDBMessageType["START_CURSOR"] = 103] = "START_CURSOR";
12
12
  LMDBMessageType[LMDBMessageType["ADVANCE_CURSOR"] = 104] = "ADVANCE_CURSOR";
13
- LMDBMessageType[LMDBMessageType["CLOSE_CURSOR"] = 105] = "CLOSE_CURSOR";
14
- LMDBMessageType[LMDBMessageType["BATCH"] = 106] = "BATCH";
15
- LMDBMessageType[LMDBMessageType["STATS"] = 107] = "STATS";
16
- LMDBMessageType[LMDBMessageType["CLOSE"] = 108] = "CLOSE";
13
+ LMDBMessageType[LMDBMessageType["ADVANCE_CURSOR_COUNT"] = 105] = "ADVANCE_CURSOR_COUNT";
14
+ LMDBMessageType[LMDBMessageType["CLOSE_CURSOR"] = 106] = "CLOSE_CURSOR";
15
+ LMDBMessageType[LMDBMessageType["BATCH"] = 107] = "BATCH";
16
+ LMDBMessageType[LMDBMessageType["STATS"] = 108] = "STATS";
17
+ LMDBMessageType[LMDBMessageType["CLOSE"] = 109] = "CLOSE";
18
+ LMDBMessageType[LMDBMessageType["COPY_STORE"] = 110] = "COPY_STORE";
17
19
  return LMDBMessageType;
18
20
  }({});
@@ -0,0 +1,52 @@
1
+ import type { Key, Range, Value } from '../interfaces/common.js';
2
+ import type { AztecAsyncMultiMap } from '../interfaces/multi_map.js';
3
+ import type { AztecLMDBStoreV2 } from './store.js';
4
+ export declare class LMDBMultiMap<K extends Key, V extends Value> implements AztecAsyncMultiMap<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
+ setMany(entries: {
16
+ key: K;
17
+ value: V;
18
+ }[]): Promise<void>;
19
+ /**
20
+ * Sets the value at the given key if it does not already exist.
21
+ * @param key - The key to set the value at
22
+ * @param val - The value to set
23
+ */
24
+ setIfNotExists(key: K, val: V): Promise<boolean>;
25
+ /**
26
+ * Deletes the value at the given key.
27
+ * @param key - The key to delete the value at
28
+ */
29
+ delete(key: K): Promise<void>;
30
+ getAsync(key: K): Promise<V | undefined>;
31
+ hasAsync(key: K): Promise<boolean>;
32
+ sizeAsync(): Promise<number>;
33
+ /**
34
+ * Iterates over the map's key-value entries in the key's natural order
35
+ * @param range - The range of keys to iterate over
36
+ */
37
+ entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]>;
38
+ /**
39
+ * Iterates over the map's values in the key's natural order
40
+ * @param range - The range of keys to iterate over
41
+ */
42
+ valuesAsync(range?: Range<K>): AsyncIterableIterator<V>;
43
+ /**
44
+ * Iterates over the map's keys in the key's natural order
45
+ * @param range - The range of keys to iterate over
46
+ */
47
+ keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
48
+ deleteValue(key: K, val: V | undefined): Promise<void>;
49
+ getValuesAsync(key: K): AsyncIterableIterator<V>;
50
+ getValueCountAsync(key: K): Promise<number>;
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfbWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi12Mi9tdWx0aV9tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJFLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSW5ELHFCQUFhLFlBQVksQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLENBQUUsWUFBVyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBSXpGLE9BQU8sQ0FBQyxLQUFLO0lBSGYsT0FBTyxDQUFDLE1BQU0sQ0FBUztJQUN2QixPQUFPLENBQUMsT0FBTyxDQUFpQjtJQUNoQyxZQUNVLEtBQUssRUFBRSxnQkFBZ0IsRUFDL0IsSUFBSSxFQUFFLE1BQU0sRUFHYjtJQUVEOzs7O09BSUc7SUFDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFakM7SUFFSyxPQUFPLENBQUMsT0FBTyxFQUFFO1FBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7S0FBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU01RDtJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FTL0M7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVCO0lBRUQsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FLdkM7SUFFRCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRWpDO0lBRUQsU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFM0I7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBOEJuRTtJQUVEOzs7T0FHRztJQUNJLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBSTdEO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJM0Q7SUFFRCxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXJEO0lBRU0sY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBS3REO0lBRUQsa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBSzFDO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/multi_map.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAIzF,OAAO,CAAC,KAAK;IAHf,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAiB;IAChC,YACU,KAAK,EAAE,gBAAgB,EAC/B,IAAI,EAAE,MAAM,EAGb;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjC;IAEK,OAAO,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5D;IAED;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAS/C;IAED;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5B;IAED,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAKvC;IAED,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAEjC;IAED,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAE3B;IAED;;;OAGG;IACI,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CA8BnE;IAED;;;OAGG;IACI,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAI7D;IAED;;;OAGG;IACI,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAI3D;IAED,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD;IAEM,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAKtD;IAED,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1C;CACF"}
@@ -0,0 +1,123 @@
1
+ import { Encoder } from 'msgpackr/pack';
2
+ import { MAXIMUM_KEY, toBufferKey } from 'ordered-binary';
3
+ import { execInReadTx, execInWriteTx } from './tx-helpers.js';
4
+ import { deserializeKey, maxKey, minKey, serializeKey } from './utils.js';
5
+ export class LMDBMultiMap {
6
+ store;
7
+ prefix;
8
+ encoder;
9
+ constructor(store, name){
10
+ this.store = store;
11
+ this.encoder = new Encoder();
12
+ this.prefix = `multimap:${name}`;
13
+ }
14
+ /**
15
+ * Sets the value at the given key.
16
+ * @param key - The key to set the value at
17
+ * @param val - The value to set
18
+ */ set(key, val) {
19
+ return execInWriteTx(this.store, (tx)=>tx.setIndex(serializeKey(this.prefix, key), this.encoder.pack(val)));
20
+ }
21
+ async setMany(entries) {
22
+ await execInWriteTx(this.store, async (tx)=>{
23
+ for (const { key, value } of entries){
24
+ await tx.setIndex(serializeKey(this.prefix, key), this.encoder.pack(value));
25
+ }
26
+ });
27
+ }
28
+ /**
29
+ * Sets the value at the given key if it does not already exist.
30
+ * @param key - The key to set the value at
31
+ * @param val - The value to set
32
+ */ setIfNotExists(key, val) {
33
+ return execInWriteTx(this.store, async (tx)=>{
34
+ const exists = !!await this.getAsync(key);
35
+ if (!exists) {
36
+ await tx.setIndex(serializeKey(this.prefix, key), this.encoder.pack(val));
37
+ return true;
38
+ }
39
+ return false;
40
+ });
41
+ }
42
+ /**
43
+ * Deletes the value at the given key.
44
+ * @param key - The key to delete the value at
45
+ */ delete(key) {
46
+ return execInWriteTx(this.store, (tx)=>tx.removeIndex(serializeKey(this.prefix, key)));
47
+ }
48
+ getAsync(key) {
49
+ return execInReadTx(this.store, async (tx)=>{
50
+ const val = await tx.getIndex(serializeKey(this.prefix, key));
51
+ return val.length > 0 ? this.encoder.unpack(val[0]) : undefined;
52
+ });
53
+ }
54
+ hasAsync(key) {
55
+ return execInReadTx(this.store, async (tx)=>(await tx.getIndex(serializeKey(this.prefix, key))).length > 0);
56
+ }
57
+ sizeAsync() {
58
+ return execInReadTx(this.store, (tx)=>tx.countEntriesIndex(minKey(this.prefix), maxKey(this.prefix), false));
59
+ }
60
+ /**
61
+ * Iterates over the map's key-value entries in the key's natural order
62
+ * @param range - The range of keys to iterate over
63
+ */ async *entriesAsync(range) {
64
+ const reverse = range?.reverse ?? false;
65
+ const startKey = range?.start ? serializeKey(this.prefix, range.start) : minKey(this.prefix);
66
+ const endKey = range?.end ? serializeKey(this.prefix, range.end) : reverse ? maxKey(this.prefix) : undefined;
67
+ let tx = this.store.getCurrentWriteTx();
68
+ const shouldClose = !tx;
69
+ tx ??= this.store.getReadTx();
70
+ try {
71
+ for await (const [key, vals] of tx.iterateIndex(reverse ? endKey : startKey, reverse ? startKey : endKey, reverse, range?.limit)){
72
+ const deserializedKey = deserializeKey(this.prefix, key);
73
+ if (!deserializedKey) {
74
+ break;
75
+ }
76
+ for (const val of vals){
77
+ yield [
78
+ deserializedKey,
79
+ this.encoder.unpack(val)
80
+ ];
81
+ }
82
+ }
83
+ } finally{
84
+ if (shouldClose) {
85
+ tx.close();
86
+ }
87
+ }
88
+ }
89
+ /**
90
+ * Iterates over the map's values in the key's natural order
91
+ * @param range - The range of keys to iterate over
92
+ */ async *valuesAsync(range) {
93
+ for await (const [_, value] of this.entriesAsync(range)){
94
+ yield value;
95
+ }
96
+ }
97
+ /**
98
+ * Iterates over the map's keys in the key's natural order
99
+ * @param range - The range of keys to iterate over
100
+ */ async *keysAsync(range) {
101
+ for await (const [key, _] of this.entriesAsync(range)){
102
+ yield key;
103
+ }
104
+ }
105
+ deleteValue(key, val) {
106
+ return execInWriteTx(this.store, (tx)=>tx.removeIndex(serializeKey(this.prefix, key), this.encoder.pack(val)));
107
+ }
108
+ async *getValuesAsync(key) {
109
+ const values = await execInReadTx(this.store, (tx)=>tx.getIndex(serializeKey(this.prefix, key)));
110
+ for (const value of values){
111
+ yield this.encoder.unpack(value);
112
+ }
113
+ }
114
+ getValueCountAsync(key) {
115
+ const startKey = serializeKey(this.prefix, key);
116
+ const endKey = toBufferKey([
117
+ this.prefix,
118
+ key,
119
+ MAXIMUM_KEY
120
+ ]);
121
+ return execInReadTx(this.store, (tx)=>tx.countEntriesIndex(startKey, endKey, false));
122
+ }
123
+ }
@@ -10,5 +10,7 @@ export declare class ReadTransaction {
10
10
  getIndex(key: Uint8Array): Promise<Uint8Array[]>;
11
11
  iterate(startKey: Uint8Array, endKey?: Uint8Array, reverse?: boolean, limit?: number): AsyncIterable<[Uint8Array, Uint8Array]>;
12
12
  iterateIndex(startKey: Uint8Array, endKey?: Uint8Array, reverse?: boolean, limit?: number): AsyncIterable<[Uint8Array, Uint8Array[]]>;
13
+ countEntries(startKey: Uint8Array, endKey: Uint8Array, reverse: boolean): Promise<number>;
14
+ countEntriesIndex(startKey: Uint8Array, endKey: Uint8Array, reverse: boolean): Promise<number>;
13
15
  }
14
- //# sourceMappingURL=read_transaction.d.ts.map
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZF90cmFuc2FjdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvcmVhZF90cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThCLEtBQUssa0JBQWtCLEVBQW1CLE1BQU0sY0FBYyxDQUFDO0FBRXBHLHFCQUFhLGVBQWU7O0lBR2QsU0FBUyxDQUFDLE9BQU8sRUFBRSxrQkFBa0I7SUFGakQsU0FBUyxDQUFDLElBQUksVUFBUTtJQUV0QixZQUFzQixPQUFPLEVBQUUsa0JBQWtCLEVBQUk7SUFFOUMsS0FBSyxJQUFJLElBQUksQ0FLbkI7SUFFRCxTQUFTLENBQUMsWUFBWSxTQUlyQjtJQUVZLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLENBSWpFO0lBRVksUUFBUSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBSTVEO0lBRWEsT0FBTyxDQUNuQixRQUFRLEVBQUUsVUFBVSxFQUNwQixNQUFNLENBQUMsRUFBRSxVQUFVLEVBQ25CLE9BQU8sVUFBUSxFQUNmLEtBQUssQ0FBQyxFQUFFLE1BQU0sR0FDYixhQUFhLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FFekM7SUFFYSxZQUFZLENBQ3hCLFFBQVEsRUFBRSxVQUFVLEVBQ3BCLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFDbkIsT0FBTyxVQUFRLEVBQ2YsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUNiLGFBQWEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBRTNDO0lBRU0sWUFBWSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFL0Y7SUFFTSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXBHO0NBbUdGIn0=
@@ -1 +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"}
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;IAEtB,YAAsB,OAAO,EAAE,kBAAkB,EAAI;IAE9C,KAAK,IAAI,IAAI,CAKnB;IAED,SAAS,CAAC,YAAY,SAIrB;IAEY,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAIjE;IAEY,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAI5D;IAEa,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,CAEzC;IAEa,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,CAE3C;IAEM,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/F;IAEM,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpG;CAmGF"}
@@ -43,6 +43,12 @@ export class ReadTransaction {
43
43
  async *iterateIndex(startKey, endKey, reverse = false, limit) {
44
44
  yield* this.#iterate(Database.INDEX, startKey, endKey, reverse, limit, (vals)=>vals);
45
45
  }
46
+ countEntries(startKey, endKey, reverse) {
47
+ return this.#countEntries(Database.DATA, startKey, endKey, reverse);
48
+ }
49
+ countEntriesIndex(startKey, endKey, reverse) {
50
+ return this.#countEntries(Database.INDEX, startKey, endKey, reverse);
51
+ }
46
52
  async *#iterate(db, startKey, endKey, reverse, limit, map) {
47
53
  this.assertIsOpen();
48
54
  const response = await this.channel.sendMessage(LMDBMessageType.START_CURSOR, {
@@ -98,4 +104,32 @@ export class ReadTransaction {
98
104
  }
99
105
  }
100
106
  }
107
+ async #countEntries(db, startKey, endKey, reverse) {
108
+ this.assertIsOpen();
109
+ const response = await this.channel.sendMessage(LMDBMessageType.START_CURSOR, {
110
+ key: startKey,
111
+ reverse,
112
+ count: 0,
113
+ onePage: false,
114
+ db
115
+ });
116
+ const cursor = response.cursor;
117
+ try {
118
+ if (!cursor) {
119
+ return 0;
120
+ }
121
+ const advanceResponse = await this.channel.sendMessage(LMDBMessageType.ADVANCE_CURSOR_COUNT, {
122
+ cursor,
123
+ endKey: endKey
124
+ });
125
+ return advanceResponse.count;
126
+ } finally{
127
+ // we might not have anything to close
128
+ if (typeof cursor === 'number') {
129
+ await this.channel.sendMessage(LMDBMessageType.CLOSE_CURSOR, {
130
+ cursor
131
+ });
132
+ }
133
+ }
134
+ }
101
135
  }
@@ -0,0 +1,15 @@
1
+ import type { Key, Range } from '../interfaces/common.js';
2
+ import type { AztecAsyncSet } from '../interfaces/set.js';
3
+ import type { AztecLMDBStoreV2 } from './store.js';
4
+ /**
5
+ * A set backed by LMDB.
6
+ */
7
+ export declare class LMDBSet<K extends Key> implements AztecAsyncSet<K> {
8
+ private map;
9
+ constructor(store: AztecLMDBStoreV2, mapName: string);
10
+ hasAsync(key: K): Promise<boolean>;
11
+ add(key: K): Promise<void>;
12
+ delete(key: K): Promise<void>;
13
+ entriesAsync(range?: Range<K>): AsyncIterableIterator<K>;
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi12Mi9zZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRW5EOztHQUVHO0FBQ0gscUJBQWEsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUUsWUFBVyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzdELE9BQU8sQ0FBQyxHQUFHLENBQXNCO0lBRWpDLFlBQVksS0FBSyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBRW5EO0lBRUQsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUVqQztJQUVELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFekI7SUFFRCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVCO0lBRU0sWUFBWSxDQUFDLEtBQUssR0FBRSxLQUFLLENBQUMsQ0FBQyxDQUFNLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBSWxFO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;GAEG;AACH,qBAAa,OAAO,CAAC,CAAC,SAAS,GAAG,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAsB;IAEjC,YAAY,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAEnD;IAED,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAEjC;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzB;IAED,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5B;IAEM,YAAY,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAIlE;CACF"}
@@ -0,0 +1,23 @@
1
+ import { LMDBMap } from './map.js';
2
+ /**
3
+ * A set backed by LMDB.
4
+ */ export class LMDBSet {
5
+ map;
6
+ constructor(store, mapName){
7
+ this.map = new LMDBMap(store, mapName);
8
+ }
9
+ hasAsync(key) {
10
+ return this.map.hasAsync(key);
11
+ }
12
+ add(key) {
13
+ return this.map.set(key, true);
14
+ }
15
+ delete(key) {
16
+ return this.map.delete(key);
17
+ }
18
+ async *entriesAsync(range = {}) {
19
+ for await (const key of this.map.keysAsync(range)){
20
+ yield key;
21
+ }
22
+ }
23
+ }
@@ -1,5 +1,5 @@
1
1
  import type { AztecAsyncSingleton } from '../interfaces/singleton.js';
2
- import { type AztecLMDBStoreV2 } from './store.js';
2
+ import type { AztecLMDBStoreV2 } from './store.js';
3
3
  export declare class LMDBSingleValue<T> implements AztecAsyncSingleton<T> {
4
4
  private store;
5
5
  private key;
@@ -9,4 +9,4 @@ export declare class LMDBSingleValue<T> implements AztecAsyncSingleton<T> {
9
9
  set(val: T): Promise<boolean>;
10
10
  delete(): Promise<boolean>;
11
11
  }
12
- //# sourceMappingURL=singleton.d.ts.map
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi12Mi9zaW5nbGV0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUluRCxxQkFBYSxlQUFlLENBQUMsQ0FBQyxDQUFFLFlBQVcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBSTdELE9BQU8sQ0FBQyxLQUFLO0lBSGYsT0FBTyxDQUFDLEdBQUcsQ0FBYTtJQUN4QixPQUFPLENBQUMsT0FBTyxDQUFpQjtJQUNoQyxZQUNVLEtBQUssRUFBRSxnQkFBZ0IsRUFDL0IsSUFBSSxFQUFFLE1BQU0sRUFHYjtJQUVELFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUtqQztJQUVELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FLNUI7SUFFRCxNQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUt6QjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/singleton.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,KAAK,gBAAgB,EAA+B,MAAM,YAAY,CAAC;AAGhF,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;IAGnD,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAiB;gBACZ,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;IAIzD,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAOlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAM3B"}
1
+ {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/singleton.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;IAI7D,OAAO,CAAC,KAAK;IAHf,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAiB;IAChC,YACU,KAAK,EAAE,gBAAgB,EAC/B,IAAI,EAAE,MAAM,EAGb;IAED,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAKjC;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAK5B;IAED,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAKzB;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { Encoder } from 'msgpackr';
2
- import { execInReadTx, execInWriteTx } from './store.js';
2
+ import { execInReadTx, execInWriteTx } from './tx-helpers.js';
3
3
  import { serializeKey } from './utils.js';
4
4
  export class LMDBSingleValue {
5
5
  store;
@@ -1,14 +1,16 @@
1
- import { type Logger } from '@aztec/foundation/log';
1
+ import { type LoggerBindings } from '@aztec/foundation/log';
2
2
  import type { AztecAsyncArray } from '../interfaces/array.js';
3
- import type { Key, StoreSize } from '../interfaces/common.js';
3
+ import type { Key, StoreSize, Value } from '../interfaces/common.js';
4
4
  import type { AztecAsyncCounter } from '../interfaces/counter.js';
5
- import type { AztecAsyncMap, AztecAsyncMultiMap } from '../interfaces/map.js';
5
+ import type { AztecAsyncMap } from '../interfaces/map.js';
6
+ import type { AztecAsyncMultiMap } from '../interfaces/multi_map.js';
6
7
  import type { AztecAsyncSet } from '../interfaces/set.js';
7
8
  import type { AztecAsyncSingleton } from '../interfaces/singleton.js';
8
9
  import type { AztecAsyncKVStore } from '../interfaces/store.js';
9
10
  import { type LMDBMessageChannel, LMDBMessageType, type LMDBRequestBody, type LMDBResponseBody } from './message.js';
10
11
  import { ReadTransaction } from './read_transaction.js';
11
12
  import { WriteTransaction } from './write_transaction.js';
13
+ export { execInReadTx, execInWriteTx } from './tx-helpers.js';
12
14
  export declare class AztecLMDBStoreV2 implements AztecAsyncKVStore, LMDBMessageChannel {
13
15
  private dataDir;
14
16
  private log;
@@ -21,23 +23,21 @@ export declare class AztecLMDBStoreV2 implements AztecAsyncKVStore, LMDBMessageC
21
23
  private constructor();
22
24
  get dataDirectory(): string;
23
25
  private start;
24
- static new(dataDir: string, dbMapSizeKb?: number, maxReaders?: number, cleanup?: () => Promise<void>, log?: Logger): Promise<AztecLMDBStoreV2>;
26
+ static new(dataDir: string, dbMapSizeKb?: number, maxReaders?: number, cleanup?: () => Promise<void>, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
27
+ backupTo(dstPath: string, compact?: boolean): Promise<void>;
25
28
  getReadTx(): ReadTransaction;
26
29
  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>;
30
+ openMap<K extends Key, V extends Value>(name: string): AztecAsyncMap<K, V>;
31
+ openMultiMap<K extends Key, V extends Value>(name: string): AztecAsyncMultiMap<K, V>;
32
+ openSingleton<T extends Value>(name: string): AztecAsyncSingleton<T>;
33
+ openArray<T extends Value>(name: string): AztecAsyncArray<T>;
34
+ openSet<K extends Key>(name: string): AztecAsyncSet<K>;
32
35
  openCounter<K extends Key>(_name: string): AztecAsyncCounter<K>;
33
36
  transactionAsync<T extends Exclude<any, Promise<any>>>(callback: (tx: WriteTransaction) => Promise<T>): Promise<T>;
34
37
  clear(): Promise<void>;
35
- fork(): Promise<AztecAsyncKVStore>;
36
38
  delete(): Promise<void>;
37
39
  close(): Promise<void>;
38
40
  sendMessage<T extends LMDBMessageType>(msgType: T, body: LMDBRequestBody[T]): Promise<LMDBResponseBody[T]>;
39
41
  estimateSize(): Promise<StoreSize>;
40
42
  }
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
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQU92RixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHaEUsT0FBTyxFQUVMLEtBQUssa0JBQWtCLEVBQ3ZCLGVBQWUsRUFDZixLQUFLLGVBQWUsRUFDcEIsS0FBSyxnQkFBZ0IsRUFDdEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUQscUJBQWEsZ0JBQWlCLFlBQVcsaUJBQWlCLEVBQUUsa0JBQWtCO0lBUTFFLE9BQU8sQ0FBQyxPQUFPO0lBR2YsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsT0FBTyxDQUFDO0lBWGxCLE9BQU8sQ0FBQyxJQUFJLENBQVM7SUFDckIsT0FBTyxDQUFDLE9BQU8sQ0FBcUU7SUFDcEYsT0FBTyxDQUFDLFNBQVMsQ0FBNkM7SUFDOUQsT0FBTyxDQUFDLFdBQVcsQ0FBcUI7SUFDeEMsT0FBTyxDQUFDLGdCQUFnQixDQUFZO0lBRXBDLE9BQU8sZUFXTjtJQUVELElBQVcsYUFBYSxJQUFJLE1BQU0sQ0FFakM7WUFFYSxLQUFLO0lBZ0JuQixPQUFvQixHQUFHLENBQ3JCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsV0FBVyxHQUFFLE1BQXlCLEVBQ3RDLFVBQVUsR0FBRSxNQUFXLEVBQ3ZCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxFQUM3QixRQUFRLENBQUMsRUFBRSxjQUFjLDZCQU0xQjtJQUVZLFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sVUFBTyxpQkFHcEQ7SUFFTSxTQUFTLElBQUksZUFBZSxDQUtsQztJQUVNLGlCQUFpQixJQUFJLGdCQUFnQixHQUFHLFNBQVMsQ0FNdkQ7SUFFRCxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FFekU7SUFFRCxZQUFZLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUVuRjtJQUVELGFBQWEsQ0FBQyxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBRW5FO0lBRUQsU0FBUyxDQUFDLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBRTNEO0lBRUQsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBRXJEO0lBRUQsV0FBVyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FFOUQ7SUFFSyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDekQsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLGdCQUFnQixLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FDN0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQTBCWjtJQUVELEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXJCO0lBRUssTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLNUI7SUFFSyxLQUFLLGtCQVFWO0lBRVksV0FBVyxDQUFDLENBQUMsU0FBUyxlQUFlLEVBQ2hELE9BQU8sRUFBRSxDQUFDLEVBQ1YsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FDdkIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBd0I5QjtJQUVZLFlBQVksSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBUTlDO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/store.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,16 @@ import { createLogger } from '@aztec/foundation/log';
2
2
  import { Semaphore, SerialQueue } from '@aztec/foundation/queue';
3
3
  import { MsgpackChannel, NativeLMDBStore } from '@aztec/native';
4
4
  import { AsyncLocalStorage } from 'async_hooks';
5
- import { rm } from 'fs/promises';
5
+ import { mkdir, rm } from 'fs/promises';
6
6
  import { LMDBArray } from './array.js';
7
- import { LMDBMap, LMDBMultiMap } from './map.js';
7
+ import { LMDBMap } from './map.js';
8
8
  import { Database, LMDBMessageType } from './message.js';
9
+ import { LMDBMultiMap } from './multi_map.js';
9
10
  import { ReadTransaction } from './read_transaction.js';
11
+ import { LMDBSet } from './set.js';
10
12
  import { LMDBSingleValue } from './singleton.js';
11
13
  import { WriteTransaction } from './write_transaction.js';
14
+ export { execInReadTx, execInWriteTx } from './tx-helpers.js';
12
15
  export class AztecLMDBStoreV2 {
13
16
  dataDir;
14
17
  log;
@@ -45,11 +48,21 @@ export class AztecLMDBStoreV2 {
45
48
  });
46
49
  this.open = true;
47
50
  }
48
- static async new(dataDir, dbMapSizeKb = 10 * 1024 * 1024, maxReaders = 16, cleanup, log = createLogger('kv-store:lmdb-v2')) {
51
+ static async new(dataDir, dbMapSizeKb = 10 * 1024 * 1024, maxReaders = 16, cleanup, bindings) {
52
+ const log = createLogger('kv-store:lmdb-v2', bindings);
49
53
  const db = new AztecLMDBStoreV2(dataDir, dbMapSizeKb, maxReaders, log, cleanup);
50
54
  await db.start();
51
55
  return db;
52
56
  }
57
+ async backupTo(dstPath, compact = true) {
58
+ await mkdir(dstPath, {
59
+ recursive: true
60
+ });
61
+ await this.channel.sendMessage(LMDBMessageType.COPY_STORE, {
62
+ dstPath,
63
+ compact
64
+ });
65
+ }
53
66
  getReadTx() {
54
67
  if (!this.open) {
55
68
  throw new Error('Store is closed');
@@ -75,8 +88,8 @@ export class AztecLMDBStoreV2 {
75
88
  openArray(name) {
76
89
  return new LMDBArray(this, name);
77
90
  }
78
- openSet(_name) {
79
- throw new Error('Not implemented');
91
+ openSet(name) {
92
+ return new LMDBSet(this, name);
80
93
  }
81
94
  openCounter(_name) {
82
95
  throw new Error('Not implemented');
@@ -109,9 +122,6 @@ export class AztecLMDBStoreV2 {
109
122
  clear() {
110
123
  return Promise.resolve();
111
124
  }
112
- fork() {
113
- throw new Error('Not implemented');
114
- }
115
125
  async delete() {
116
126
  await this.close();
117
127
  await rm(this.dataDir, {
@@ -153,29 +163,9 @@ export class AztecLMDBStoreV2 {
153
163
  const resp = await this.sendMessage(LMDBMessageType.STATS, undefined);
154
164
  return {
155
165
  mappingSize: Number(resp.dbMapSizeBytes),
166
+ physicalFileSize: Number(resp.dbPhysicalFileSizeBytes),
156
167
  actualSize: resp.stats.reduce((s, db)=>Number(db.totalUsedSize) + s, 0),
157
168
  numItems: resp.stats.reduce((s, db)=>Number(db.numDataItems) + s, 0)
158
169
  };
159
170
  }
160
171
  }
161
- export function execInWriteTx(store, fn) {
162
- const currentWrite = store.getCurrentWriteTx();
163
- if (currentWrite) {
164
- return fn(currentWrite);
165
- } else {
166
- return store.transactionAsync(fn);
167
- }
168
- }
169
- export async function execInReadTx(store, fn) {
170
- const currentWrite = store.getCurrentWriteTx();
171
- if (currentWrite) {
172
- return await fn(currentWrite);
173
- } else {
174
- const tx = store.getReadTx();
175
- try {
176
- return await fn(tx);
177
- } finally{
178
- tx.close();
179
- }
180
- }
181
- }
@@ -0,0 +1,6 @@
1
+ import type { ReadTransaction } from './read_transaction.js';
2
+ import type { AztecLMDBStoreV2 } from './store.js';
3
+ import type { WriteTransaction } from './write_transaction.js';
4
+ export declare function execInWriteTx<T>(store: AztecLMDBStoreV2, fn: (tx: WriteTransaction) => Promise<T>): Promise<T>;
5
+ export declare function execInReadTx<T>(store: AztecLMDBStoreV2, fn: (tx: ReadTransaction) => T | Promise<T>): Promise<T>;
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtaGVscGVycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvdHgtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9ELHdCQUFnQixhQUFhLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsZ0JBQWdCLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FPOUc7QUFFRCx3QkFBc0IsWUFBWSxDQUFDLENBQUMsRUFDbEMsS0FBSyxFQUFFLGdCQUFnQixFQUN2QixFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsZUFBZSxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQzFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FZWiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-helpers.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/tx-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,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"}