@aztec/kv-store 0.46.7 → 0.47.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.
- package/dest/interfaces/index.d.ts +1 -0
- package/dest/interfaces/index.d.ts.map +1 -1
- package/dest/interfaces/index.js +2 -1
- package/dest/interfaces/set.d.ts +28 -0
- package/dest/interfaces/set.d.ts.map +1 -0
- package/dest/interfaces/set.js +2 -0
- package/dest/interfaces/store.d.ts +7 -0
- package/dest/interfaces/store.d.ts.map +1 -1
- package/dest/lmdb/set.d.ts +16 -0
- package/dest/lmdb/set.d.ts.map +1 -0
- package/dest/lmdb/set.js +25 -0
- package/dest/lmdb/store.d.ts +7 -0
- package/dest/lmdb/store.d.ts.map +1 -1
- package/dest/lmdb/store.js +10 -1
- package/dest/utils.d.ts +4 -0
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +5 -1
- package/package.json +2 -2
- package/src/interfaces/index.ts +1 -0
- package/src/interfaces/set.ts +31 -0
- package/src/interfaces/store.ts +8 -0
- package/src/lmdb/set.ts +35 -0
- package/src/lmdb/store.ts +11 -0
- package/src/utils.ts +9 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC"}
|
package/dest/interfaces/index.js
CHANGED
|
@@ -3,4 +3,5 @@ export * from './map.js';
|
|
|
3
3
|
export * from './counter.js';
|
|
4
4
|
export * from './singleton.js';
|
|
5
5
|
export * from './store.js';
|
|
6
|
-
|
|
6
|
+
export * from './set.js';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDIn0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type Key, type Range } from './common.js';
|
|
2
|
+
/**
|
|
3
|
+
* A set backed by a persistent store.
|
|
4
|
+
*/
|
|
5
|
+
export interface AztecSet<K extends Key> {
|
|
6
|
+
/**
|
|
7
|
+
* Checks if a key exists in the set.
|
|
8
|
+
* @param key - The key to check
|
|
9
|
+
* @returns True if the key exists, false otherwise
|
|
10
|
+
*/
|
|
11
|
+
has(key: K): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Adds the given value.
|
|
14
|
+
* @param key - The key to add.
|
|
15
|
+
*/
|
|
16
|
+
add(key: K): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Deletes the given key.
|
|
19
|
+
* @param key - The key to delete.
|
|
20
|
+
*/
|
|
21
|
+
delete(key: K): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Iterates over the sets's keys entries in the key's natural order
|
|
24
|
+
* @param range - The range of keys to iterate over
|
|
25
|
+
*/
|
|
26
|
+
entries(range?: Range<K>): IterableIterator<K>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/interfaces/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,GAAG;IACrC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;IAErB;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAChD"}
|
|
@@ -2,6 +2,7 @@ import { type AztecArray } from './array.js';
|
|
|
2
2
|
import { type Key } from './common.js';
|
|
3
3
|
import { type AztecCounter } from './counter.js';
|
|
4
4
|
import { type AztecMap, type AztecMultiMap } from './map.js';
|
|
5
|
+
import { type AztecSet } from './set.js';
|
|
5
6
|
import { type AztecSingleton } from './singleton.js';
|
|
6
7
|
/** A key-value store */
|
|
7
8
|
export interface AztecKVStore {
|
|
@@ -11,6 +12,12 @@ export interface AztecKVStore {
|
|
|
11
12
|
* @returns The map
|
|
12
13
|
*/
|
|
13
14
|
openMap<K extends string | number, V>(name: string): AztecMap<K, V>;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new set.
|
|
17
|
+
* @param name - The name of the set
|
|
18
|
+
* @returns The set
|
|
19
|
+
*/
|
|
20
|
+
openSet<K extends string | number>(name: string): AztecSet<K>;
|
|
14
21
|
/**
|
|
15
22
|
* Creates a new multi-map.
|
|
16
23
|
* @param name - The name of the multi-map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/interfaces/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,wBAAwB;AACxB,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpE;;;;OAIG;IACH,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9E;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1C;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAElD;;;OAGG;IACH,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAE1D;;;OAGG;IACH,WAAW,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEjF;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/interfaces/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,wBAAwB;AACxB,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpE;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE9D;;;;OAIG;IACH,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9E;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1C;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAElD;;;OAGG;IACH,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAE1D;;;OAGG;IACH,WAAW,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEjF;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Database } from 'lmdb';
|
|
2
|
+
import { type Key, type Range } from '../interfaces/common.js';
|
|
3
|
+
import { type AztecSet } from '../interfaces/set.js';
|
|
4
|
+
/**
|
|
5
|
+
* A set backed by LMDB.
|
|
6
|
+
*/
|
|
7
|
+
export declare class LmdbAztecSet<K extends Key> implements AztecSet<K> {
|
|
8
|
+
private map;
|
|
9
|
+
constructor(rootDb: Database, mapName: string);
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
has(key: K): boolean;
|
|
12
|
+
add(key: K): Promise<void>;
|
|
13
|
+
delete(key: K): Promise<void>;
|
|
14
|
+
entries(range?: Range<K>): IterableIterator<K>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/lmdb/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrD;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG,CAAE,YAAW,QAAQ,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAA2B;gBAC1B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;IAI7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7B,OAAO,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;CAGnD"}
|
package/dest/lmdb/set.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LmdbAztecMap } from './map.js';
|
|
2
|
+
/**
|
|
3
|
+
* A set backed by LMDB.
|
|
4
|
+
*/
|
|
5
|
+
export class LmdbAztecSet {
|
|
6
|
+
constructor(rootDb, mapName) {
|
|
7
|
+
this.map = new LmdbAztecMap(rootDb, mapName);
|
|
8
|
+
}
|
|
9
|
+
close() {
|
|
10
|
+
return this.map.close();
|
|
11
|
+
}
|
|
12
|
+
has(key) {
|
|
13
|
+
return this.map.has(key);
|
|
14
|
+
}
|
|
15
|
+
add(key) {
|
|
16
|
+
return this.map.set(key, true);
|
|
17
|
+
}
|
|
18
|
+
delete(key) {
|
|
19
|
+
return this.map.delete(key);
|
|
20
|
+
}
|
|
21
|
+
entries(range = {}) {
|
|
22
|
+
return this.map.keys(range);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGIvc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUFZLE1BQWdCLEVBQUUsT0FBZTtRQUMzQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQU07UUFDUixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFrQixFQUFFO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGIn0=
|
package/dest/lmdb/store.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { type RootDatabase } from 'lmdb';
|
|
|
2
2
|
import { type AztecArray } from '../interfaces/array.js';
|
|
3
3
|
import { type AztecCounter } from '../interfaces/counter.js';
|
|
4
4
|
import { type AztecMap, type AztecMultiMap } from '../interfaces/map.js';
|
|
5
|
+
import { type AztecSet } from '../interfaces/set.js';
|
|
5
6
|
import { type AztecSingleton } from '../interfaces/singleton.js';
|
|
6
7
|
import { type AztecKVStore } from '../interfaces/store.js';
|
|
7
8
|
/**
|
|
@@ -30,6 +31,12 @@ export declare class AztecLmdbStore implements AztecKVStore {
|
|
|
30
31
|
* @returns A new AztecMap
|
|
31
32
|
*/
|
|
32
33
|
openMap<K extends string | number, V>(name: string): AztecMap<K, V>;
|
|
34
|
+
/**
|
|
35
|
+
* Creates a new AztecSet in the store.
|
|
36
|
+
* @param name - Name of the set
|
|
37
|
+
* @returns A new AztecSet
|
|
38
|
+
*/
|
|
39
|
+
openSet<K extends string | number>(name: string): AztecSet<K>;
|
|
33
40
|
/**
|
|
34
41
|
* Creates a new AztecMultiMap in the store. A multi-map stores multiple values for a single key automatically.
|
|
35
42
|
* @param name - Name of the map
|
package/dest/lmdb/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,YAAY,EAAQ,MAAM,MAAM,CAAC;AAExE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,YAAY,EAAQ,MAAM,MAAM,CAAC;AAExE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAO3D;;GAEG;AACH,qBAAa,cAAe,YAAW,YAAY;;gBAKrC,MAAM,EAAE,YAAY;IAgBhC;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,GAAE,OAAe,EAC1B,GAAG,yCAA2C,GAC7C,cAAc;IASjB;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAInE;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAI7D;;;;OAIG;IACH,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAI7E,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;IAI9F;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAIzC;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC;IAIjD;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI7C;;OAEG;IACG,KAAK;CAGZ"}
|
package/dest/lmdb/store.js
CHANGED
|
@@ -5,6 +5,7 @@ import { open } from 'lmdb';
|
|
|
5
5
|
import { LmdbAztecArray } from './array.js';
|
|
6
6
|
import { LmdbAztecCounter } from './counter.js';
|
|
7
7
|
import { LmdbAztecMap } from './map.js';
|
|
8
|
+
import { LmdbAztecSet } from './set.js';
|
|
8
9
|
import { LmdbAztecSingleton } from './singleton.js';
|
|
9
10
|
/**
|
|
10
11
|
* A key-value store backed by LMDB.
|
|
@@ -55,6 +56,14 @@ export class AztecLmdbStore {
|
|
|
55
56
|
openMap(name) {
|
|
56
57
|
return new LmdbAztecMap(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
|
|
57
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Creates a new AztecSet in the store.
|
|
61
|
+
* @param name - Name of the set
|
|
62
|
+
* @returns A new AztecSet
|
|
63
|
+
*/
|
|
64
|
+
openSet(name) {
|
|
65
|
+
return new LmdbAztecSet(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
|
|
66
|
+
}
|
|
58
67
|
/**
|
|
59
68
|
* Creates a new AztecMultiMap in the store. A multi-map stores multiple values for a single key automatically.
|
|
60
69
|
* @param name - Name of the map
|
|
@@ -98,4 +107,4 @@ export class AztecLmdbStore {
|
|
|
98
107
|
}
|
|
99
108
|
}
|
|
100
109
|
_AztecLmdbStore_rootDb = new WeakMap(), _AztecLmdbStore_data = new WeakMap(), _AztecLmdbStore_multiMapData = new WeakMap();
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBOEMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUXhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRDs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQVksTUFBb0I7UUFKaEMseUNBQXNCO1FBQ3RCLHVDQUE4QjtRQUM5QiwrQ0FBc0M7UUFHcEMsdUJBQUEsSUFBSSwwQkFBVyxNQUFNLE1BQUEsQ0FBQztRQUV0QixtQ0FBbUM7UUFDbkMsdUJBQUEsSUFBSSx3QkFBUyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNqQyxRQUFRLEVBQUUsU0FBUztZQUNuQixXQUFXLEVBQUUsZ0JBQWdCO1NBQzlCLENBQUMsTUFBQSxDQUFDO1FBRUgsdUJBQUEsSUFBSSxnQ0FBaUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7WUFDbEQsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixXQUFXLEVBQUUsZ0JBQWdCO1lBQzdCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxNQUFBLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFhLEVBQ2IsWUFBcUIsS0FBSyxFQUMxQixHQUFHLEdBQUcsaUJBQWlCLENBQUMscUJBQXFCLENBQUM7UUFFOUMsR0FBRyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsSUFBSSxJQUFJLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUNyRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSTtZQUNKLE1BQU0sRUFBRSxTQUFTO1NBQ2xCLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQStCLElBQVk7UUFDaEQsT0FBTyxJQUFJLFlBQVksQ0FBQyx1QkFBQSxJQUFJLDRCQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQTRCLElBQVk7UUFDN0MsT0FBTyxJQUFJLFlBQVksQ0FBQyx1QkFBQSxJQUFJLDRCQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQStCLElBQVk7UUFDckQsT0FBTyxJQUFJLFlBQVksQ0FBQyx1QkFBQSxJQUFJLG9DQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFdBQVcsQ0FBcUQsSUFBWTtRQUMxRSxPQUFPLElBQUksZ0JBQWdCLENBQUMsdUJBQUEsSUFBSSw0QkFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFJLElBQVk7UUFDdkIsT0FBTyxJQUFJLGNBQWMsQ0FBQyx1QkFBQSxJQUFJLDRCQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUksSUFBWTtRQUMzQixPQUFPLElBQUksa0JBQWtCLENBQUMsdUJBQUEsSUFBSSw0QkFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFJLFFBQWlCO1FBQzlCLE9BQU8sdUJBQUEsSUFBSSw4QkFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sdUJBQUEsSUFBSSw4QkFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDRiJ9
|
package/dest/utils.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type EthAddress } from '@aztec/foundation/eth-address';
|
|
2
2
|
import { type Logger } from '@aztec/foundation/log';
|
|
3
3
|
import { type AztecKVStore } from './interfaces/store.js';
|
|
4
|
+
import { AztecLmdbStore } from './lmdb/store.js';
|
|
5
|
+
export declare function createStore(config: {
|
|
6
|
+
dataDirectory: string | undefined;
|
|
7
|
+
}, rollupAddress: EthAddress, log?: Logger): Promise<AztecLmdbStore>;
|
|
4
8
|
/**
|
|
5
9
|
* Clears the store if the rollup address does not match the one stored in the database.
|
|
6
10
|
* This is to prevent data from being accidentally shared between different rollup instances.
|
package/dest/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,wBAAgB,WAAW,CACzB,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAC7C,aAAa,EAAE,UAAU,EACzB,GAAG,GAAE,MAA4C,2BAGlD;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAC7D,KAAK,EAAE,CAAC,EACR,aAAa,EAAE,UAAU,EACzB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,CAAC,CAeZ;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,GAAE,OAAe,GAAG,YAAY,CAErE"}
|
package/dest/utils.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
1
2
|
import { AztecLmdbStore } from './lmdb/store.js';
|
|
3
|
+
export function createStore(config, rollupAddress, log = createDebugLogger('aztec:kv-store')) {
|
|
4
|
+
return initStoreForRollup(AztecLmdbStore.open(config.dataDirectory, false, log), rollupAddress, log);
|
|
5
|
+
}
|
|
2
6
|
/**
|
|
3
7
|
* Clears the store if the rollup address does not match the one stored in the database.
|
|
4
8
|
* This is to prevent data from being accidentally shared between different rollup instances.
|
|
@@ -25,4 +29,4 @@ export async function initStoreForRollup(store, rollupAddress, log) {
|
|
|
25
29
|
export function openTmpStore(ephemeral = false) {
|
|
26
30
|
return AztecLmdbStore.open(undefined, ephemeral);
|
|
27
31
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE1BQU0sVUFBVSxXQUFXLENBQ3pCLE1BQTZDLEVBQzdDLGFBQXlCLEVBQ3pCLE1BQWMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUM7SUFFakQsT0FBTyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN2RyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsS0FBUSxFQUNSLGFBQXlCLEVBQ3pCLEdBQVk7SUFFWixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxhQUFhLENBQXFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3BHLE1BQU0sbUJBQW1CLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JELE1BQU0seUJBQXlCLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFM0QsSUFBSSxPQUFPLHlCQUF5QixLQUFLLFdBQVcsSUFBSSx5QkFBeUIsS0FBSyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFHLEdBQUcsRUFBRSxJQUFJLENBQ1AscUNBQXFDLGFBQWEsV0FBVyxrQkFBa0IsK0JBQStCLENBQy9HLENBQUM7UUFFRixNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNsRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxZQUFxQixLQUFLO0lBQ3JELE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDbkQsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/kv-store",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.47.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/interfaces/index.js",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
]
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@aztec/foundation": "0.
|
|
55
|
+
"@aztec/foundation": "0.47.0",
|
|
56
56
|
"lmdb": "^3.0.6"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
package/src/interfaces/index.ts
CHANGED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type Key, type Range } from './common.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A set backed by a persistent store.
|
|
5
|
+
*/
|
|
6
|
+
export interface AztecSet<K extends Key> {
|
|
7
|
+
/**
|
|
8
|
+
* Checks if a key exists in the set.
|
|
9
|
+
* @param key - The key to check
|
|
10
|
+
* @returns True if the key exists, false otherwise
|
|
11
|
+
*/
|
|
12
|
+
has(key: K): boolean;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Adds the given value.
|
|
16
|
+
* @param key - The key to add.
|
|
17
|
+
*/
|
|
18
|
+
add(key: K): Promise<void>;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Deletes the given key.
|
|
22
|
+
* @param key - The key to delete.
|
|
23
|
+
*/
|
|
24
|
+
delete(key: K): Promise<void>;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Iterates over the sets's keys entries in the key's natural order
|
|
28
|
+
* @param range - The range of keys to iterate over
|
|
29
|
+
*/
|
|
30
|
+
entries(range?: Range<K>): IterableIterator<K>;
|
|
31
|
+
}
|
package/src/interfaces/store.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { type AztecArray } from './array.js';
|
|
|
2
2
|
import { type Key } from './common.js';
|
|
3
3
|
import { type AztecCounter } from './counter.js';
|
|
4
4
|
import { type AztecMap, type AztecMultiMap } from './map.js';
|
|
5
|
+
import { type AztecSet } from './set.js';
|
|
5
6
|
import { type AztecSingleton } from './singleton.js';
|
|
6
7
|
|
|
7
8
|
/** A key-value store */
|
|
@@ -13,6 +14,13 @@ export interface AztecKVStore {
|
|
|
13
14
|
*/
|
|
14
15
|
openMap<K extends string | number, V>(name: string): AztecMap<K, V>;
|
|
15
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Creates a new set.
|
|
19
|
+
* @param name - The name of the set
|
|
20
|
+
* @returns The set
|
|
21
|
+
*/
|
|
22
|
+
openSet<K extends string | number>(name: string): AztecSet<K>;
|
|
23
|
+
|
|
16
24
|
/**
|
|
17
25
|
* Creates a new multi-map.
|
|
18
26
|
* @param name - The name of the multi-map
|
package/src/lmdb/set.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type Database } from 'lmdb';
|
|
2
|
+
|
|
3
|
+
import { type Key, type Range } from '../interfaces/common.js';
|
|
4
|
+
import { type AztecSet } from '../interfaces/set.js';
|
|
5
|
+
import { LmdbAztecMap } from './map.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A set backed by LMDB.
|
|
9
|
+
*/
|
|
10
|
+
export class LmdbAztecSet<K extends Key> implements AztecSet<K> {
|
|
11
|
+
private map: LmdbAztecMap<K, boolean>;
|
|
12
|
+
constructor(rootDb: Database, mapName: string) {
|
|
13
|
+
this.map = new LmdbAztecMap(rootDb, mapName);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
close(): Promise<void> {
|
|
17
|
+
return this.map.close();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
has(key: K): boolean {
|
|
21
|
+
return this.map.has(key);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
add(key: K): Promise<void> {
|
|
25
|
+
return this.map.set(key, true);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
delete(key: K): Promise<void> {
|
|
29
|
+
return this.map.delete(key);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
entries(range: Range<K> = {}): IterableIterator<K> {
|
|
33
|
+
return this.map.keys(range);
|
|
34
|
+
}
|
|
35
|
+
}
|
package/src/lmdb/store.ts
CHANGED
|
@@ -5,11 +5,13 @@ import { type Database, type Key, type RootDatabase, open } from 'lmdb';
|
|
|
5
5
|
import { type AztecArray } from '../interfaces/array.js';
|
|
6
6
|
import { type AztecCounter } from '../interfaces/counter.js';
|
|
7
7
|
import { type AztecMap, type AztecMultiMap } from '../interfaces/map.js';
|
|
8
|
+
import { type AztecSet } from '../interfaces/set.js';
|
|
8
9
|
import { type AztecSingleton } from '../interfaces/singleton.js';
|
|
9
10
|
import { type AztecKVStore } from '../interfaces/store.js';
|
|
10
11
|
import { LmdbAztecArray } from './array.js';
|
|
11
12
|
import { LmdbAztecCounter } from './counter.js';
|
|
12
13
|
import { LmdbAztecMap } from './map.js';
|
|
14
|
+
import { LmdbAztecSet } from './set.js';
|
|
13
15
|
import { LmdbAztecSingleton } from './singleton.js';
|
|
14
16
|
|
|
15
17
|
/**
|
|
@@ -71,6 +73,15 @@ export class AztecLmdbStore implements AztecKVStore {
|
|
|
71
73
|
return new LmdbAztecMap(this.#data, name);
|
|
72
74
|
}
|
|
73
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Creates a new AztecSet in the store.
|
|
78
|
+
* @param name - Name of the set
|
|
79
|
+
* @returns A new AztecSet
|
|
80
|
+
*/
|
|
81
|
+
openSet<K extends string | number>(name: string): AztecSet<K> {
|
|
82
|
+
return new LmdbAztecSet(this.#data, name);
|
|
83
|
+
}
|
|
84
|
+
|
|
74
85
|
/**
|
|
75
86
|
* Creates a new AztecMultiMap in the store. A multi-map stores multiple values for a single key automatically.
|
|
76
87
|
* @param name - Name of the map
|
package/src/utils.ts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { type EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import { type Logger } from '@aztec/foundation/log';
|
|
2
|
+
import { type Logger, createDebugLogger } from '@aztec/foundation/log';
|
|
3
3
|
|
|
4
4
|
import { type AztecKVStore } from './interfaces/store.js';
|
|
5
5
|
import { AztecLmdbStore } from './lmdb/store.js';
|
|
6
6
|
|
|
7
|
+
export function createStore(
|
|
8
|
+
config: { dataDirectory: string | undefined },
|
|
9
|
+
rollupAddress: EthAddress,
|
|
10
|
+
log: Logger = createDebugLogger('aztec:kv-store'),
|
|
11
|
+
) {
|
|
12
|
+
return initStoreForRollup(AztecLmdbStore.open(config.dataDirectory, false, log), rollupAddress, log);
|
|
13
|
+
}
|
|
14
|
+
|
|
7
15
|
/**
|
|
8
16
|
* Clears the store if the rollup address does not match the one stored in the database.
|
|
9
17
|
* This is to prevent data from being accidentally shared between different rollup instances.
|