@xyo-network/xl1-driver-lmdb 4.0.11 → 4.0.14

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/README.md CHANGED
@@ -5,13 +5,16 @@
5
5
  [![npm-badge][]][npm-link]
6
6
  [![license-badge][]][license-link]
7
7
 
8
- > LMDB-backed map driver for XL1 protocol storage — a synchronous, embedded `SyncMap` implementation for Node.
8
+ > Node LMDB map driver for XL1 protocol storage.
9
9
 
10
- ## About
10
+ ## Description
11
11
 
12
- XL1 SDK components persist data through the `MapType` (`SyncMap | AsyncMap`) abstraction. This package provides `SynchronousLmdbMap`, a synchronous [LMDB](https://github.com/kriszyp/lmdb-js)-backed `SyncMap` for Node, plus helpers (`getLocalPersistentMap`, `deleteLocalPersistentMap`, `getStoreDirectory`) for convention-based on-disk stores. A single LMDB environment supports multiple named stores for multi-tenancy.
12
+ XL1 is the XYO Layer One blockchain protocol. This package provides a Node-only
13
+ LMDB-backed `SyncMap` implementation for XL1 stores that need durable local
14
+ storage without a separate database service.
13
15
 
14
- Inject it wherever an SDK component accepts a `MapType` to back that store with durable, embedded, file-based storage no external database process required.
16
+ Use it for local nodes, CLIs, test fixtures, and services that can keep
17
+ synchronous embedded storage on disk.
15
18
 
16
19
  ## Install
17
20
 
@@ -39,52 +42,76 @@ Using bun:
39
42
  bun add @xyo-network/xl1-driver-lmdb
40
43
  ```
41
44
 
42
- > `lmdb` is an optional peer dependency — install it in the consuming application. This package is Node-only.
45
+ This package is Node-only and depends on `lmdb`.
43
46
 
44
- ## What's Inside
47
+ ## Usage
45
48
 
46
- - **`SynchronousLmdbMap`** — a synchronous LMDB-backed `SyncMap<K, V>`: `get`/`set`/`has`/`getMany`/`setMany`/`delete`/`clear`/`all`, with multi-store support inside one environment.
47
- - **`getLocalPersistentMap` / `deleteLocalPersistentMap`** — create/remove a convention-based local store.
48
- - **`getStoreDirectory`**, **`StoreKind`**, **`LmdbMapParams`** — store path and configuration helpers.
49
+ Create a convention-based local persistent map:
49
50
 
50
- ## Building Locally
51
+ ```ts
52
+ import { getLocalPersistentMap } from '@xyo-network/xl1-driver-lmdb'
53
+
54
+ const map = await getLocalPersistentMap<string, { height: number }>('xl1', 'blocks')
55
+
56
+ await map.set('head', { height: 42 })
57
+ console.log(await map.get('head'))
58
+ ```
59
+
60
+ Or construct the map directly:
61
+
62
+ ```ts
63
+ import { SynchronousLmdbMap } from '@xyo-network/xl1-driver-lmdb'
64
+
65
+ const map = await SynchronousLmdbMap.create({
66
+ location: '.store',
67
+ dbName: 'xl1',
68
+ storeName: 'blocks',
69
+ })
70
+ await map.start()
71
+ ```
72
+
73
+ ## Documentation
74
+
75
+ Exports include:
76
+
77
+ - `SynchronousLmdbMap` - synchronous LMDB-backed map.
78
+ - `getLocalPersistentMap` and `deleteLocalPersistentMap` - convention-based local stores.
79
+ - `getStoreDirectory`, `StoreKind`, and `LmdbMapParams` - path and configuration helpers.
80
+
81
+ Use the memory driver in `@xyo-network/xl1-sdk/driver-memory` when durability is
82
+ not required.
83
+
84
+ ## AI Agent Skills
85
+
86
+ Install the recommended XL1/XYO skills with [Skills.sh](https://skills.sh):
87
+
88
+ ```sh
89
+ npx skills add XYOracleNetwork/xyo-skills --all
90
+ ```
91
+
92
+ In XY toolchain repos, the equivalent convenience command is:
51
93
 
52
94
  ```sh
53
- xy build @xyo-network/xl1-driver-lmdb
54
- xy test @xyo-network/xl1-driver-lmdb
55
- xy lint @xyo-network/xl1-driver-lmdb
95
+ pnpm xy skills defaults
96
+ pnpm xy skills lint --fix
56
97
  ```
57
98
 
58
- ## Maintainers
59
-
60
- <table>
61
- <tr>
62
- <td align="center" valign="top" width="120">
63
- <a href="https://github.com/arietrouw">
64
- <img src="https://github.com/arietrouw.png" width="80" height="80" alt="Arie Trouw" /><br />
65
- <sub><b>Arie Trouw</b></sub>
66
- </a>
67
- <br />
68
- <a href="https://arietrouw.com">arietrouw.com</a>
69
- </td>
70
- <td align="center" valign="top" width="120">
71
- <a href="https://github.com/jonesmac">
72
- <img src="https://github.com/jonesmac.png" width="80" height="80" alt="Matt Jones" /><br />
73
- <sub><b>Matt Jones</b></sub>
74
- </a>
75
- </td>
76
- <td align="center" valign="top" width="120">
77
- <a href="https://github.com/JoelBCarter">
78
- <img src="https://github.com/JoelBCarter.png" width="80" height="80" alt="Joel Carter" /><br />
79
- <sub><b>Joel Carter</b></sub>
80
- </a>
81
- </td>
82
- </tr>
83
- </table>
99
+ For XL1 work, ask your agent to use `xyo-knowledge`, `xl1-knowledge`, and
100
+ `xl1-patterns`. These skills cover XYO primitives, XL1 chain and gateway APIs,
101
+ and application patterns for XL1 dApps.
102
+
103
+ ## Building Locally
104
+
105
+ ```sh
106
+ pnpm xy build @xyo-network/xl1-driver-lmdb
107
+ pnpm xy test @xyo-network/xl1-driver-lmdb
108
+ pnpm xy lint @xyo-network/xl1-driver-lmdb
109
+ ```
84
110
 
85
111
  ## License
86
112
 
87
- See the [LICENSE](./LICENSE) file (LGPL-3.0-only).
113
+ See the [LICENSE](./LICENSE) file for license rights and limitations
114
+ (LGPL-3.0-only).
88
115
 
89
116
  ## Credits
90
117
 
@@ -1,5 +1,5 @@
1
1
  import { AbstractCreatable } from '@ariestools/sdk';
2
- import type { SyncMap } from '@xyo-network/xl1-protocol-lib';
2
+ import type { SyncMap } from '@xyo-network/xl1-protocol/protocol-lib';
3
3
  import type { Database, Key, RootDatabase } from 'lmdb';
4
4
  import type { LmdbMapParams } from './Params.ts';
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SynchronousLmdbMap.d.ts","sourceRoot":"","sources":["../../src/SynchronousLmdbMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAa,MAAM,iBAAiB,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,EACV,QAAQ,EAAE,GAAG,EAAE,YAAY,EAC5B,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD;;;;;;;GAOG;AACH,qBACa,kBAAkB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAE,SAAQ,iBAAiB,CAAC,aAAa,CAAE,YAAW,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACjH,SAAS,CAAC,EAAE,EAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7B,SAAS,CAAC,YAAY,EAAG,YAAY,CAAA;IAErC;;;;;;OAMG;IACH,IAAI,UAAU,WAEb;IAED,GAAG,IAAI,CAAC,EAAE;IAIV,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO;IAItB,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAIzB,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;IAWtB,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO;IAInB,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAIzB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI;IAMjB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7C"}
1
+ {"version":3,"file":"SynchronousLmdbMap.d.ts","sourceRoot":"","sources":["../../src/SynchronousLmdbMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAa,MAAM,iBAAiB,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,KAAK,EACV,QAAQ,EAAE,GAAG,EAAE,YAAY,EAC5B,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD;;;;;;;GAOG;AACH,qBACa,kBAAkB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAE,SAAQ,iBAAiB,CAAC,aAAa,CAAE,YAAW,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACjH,SAAS,CAAC,EAAE,EAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7B,SAAS,CAAC,YAAY,EAAG,YAAY,CAAA;IAErC;;;;;;OAMG;IACH,IAAI,UAAU,WAEb;IAED,GAAG,IAAI,CAAC,EAAE;IAIV,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO;IAItB,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAIzB,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;IAWtB,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO;IAInB,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAIzB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI;IAMjB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7C"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/getStoreDirectory.ts", "../../src/localPersistentMap.ts", "../../src/SynchronousLmdbMap.ts"],
4
- "sourcesContent": ["import Path from 'node:path'\n\nimport type { StoreKind } from './StoreKind.ts'\n\n/**\n * Creates a convention-based directory path for an archivist store\n * @param name The name of the archivist\n * @param storageRoot The root directory for storage\n * @param kind The kind of the archivist (optional)\n * @returns The directory path for the archivist store\n */\nexport const getStoreDirectory = (name: string, storageRoot: string, kind?: StoreKind): string => {\n return (kind === undefined) ? Path.join(storageRoot, name) : Path.join(storageRoot, kind, name)\n}\n", "import { rm } from 'node:fs/promises'\nimport Path from 'node:path'\n\nimport type { MapType } from '@xyo-network/xl1-protocol-lib'\n\nimport { getStoreDirectory } from './getStoreDirectory.ts'\nimport type { StoreKind } from './StoreKind.ts'\nimport { SynchronousLmdbMap } from './SynchronousLmdbMap.ts'\n\nconst DEFAULT_STORAGE_ROOT = Path.join(process.cwd(), '.store')\n\n/**\n * Returns a local persistent map\n * @param dbName The name of the database\n * @param storeName The name of the store\n * @param storageRoot The root directory for storage (default is '.store' in the current working directory)\n * @param kind The kind of the map\n * @returns a map\n */\nexport const getLocalPersistentMap = async <TId, TData>(\n dbName: string,\n storeName: string,\n storageRoot?: string,\n kind: StoreKind = 'lmdb'): Promise<MapType<TId, TData>> => {\n switch (kind) {\n case 'lmdb': {\n const root = storageRoot ?? DEFAULT_STORAGE_ROOT\n const location = getStoreDirectory(dbName, root, 'lmdb')\n const store = await SynchronousLmdbMap.create({\n location, dbName, storeName,\n })\n await store.start()\n return store as unknown as MapType<TId, TData>\n }\n }\n}\n\nexport const deleteLocalPersistentMap = async (\n dbName: string,\n storageRoot?: string,\n kind: StoreKind = 'lmdb',\n): Promise<void> => {\n await Promise.resolve()\n let location = ''\n switch (kind) {\n case 'lmdb': {\n const root = storageRoot ?? DEFAULT_STORAGE_ROOT\n location = getStoreDirectory(dbName, root, 'lmdb')\n break\n }\n }\n await rm(location, { recursive: true, force: true })\n}\n", "import { AbstractCreatable, creatable } from '@ariestools/sdk'\nimport type { SyncMap } from '@xyo-network/xl1-protocol-lib'\nimport type {\n Database, Key, RootDatabase,\n} from 'lmdb'\nimport { open } from 'lmdb'\n\nimport type { LmdbMapParams } from './Params.ts'\n\n// TODO: Abstract creatable instead of service?\n/**\n * A synchronous LMDB-backed Map implementation.\n * This class provides a synchronous interface to an LMDB database, allowing for key-value storage.\n * It allows for multi-tenancy within a single LMDB environment by using a root database (located\n * at this.folderPath) and a specific DB within the environment (specified by this.params.storeName).\n * @template K - The type of keys in the map.\n * @template V - The type of values in the map.\n */\n@creatable()\nexport class SynchronousLmdbMap<K extends Key, V> extends AbstractCreatable<LmdbMapParams> implements SyncMap<K, V> {\n protected db!: Database<V, K>\n protected rootDatabase!: RootDatabase\n\n /**\n * The path to the LMDB folder where the database is stored.\n * This is constructed from the location and dbName parameters\n * allowing for multiple DBs within the root (by specifying a\n * different storeName).\n * @returns The folder path for the LMDB database.\n */\n get folderPath() {\n return `${this.params.location}/${this.params.storeName}`\n }\n\n all(): V[] {\n return [...this.db.getRange({})].map(entry => entry.value)\n }\n\n clear(): void {\n this.db.clearSync()\n }\n\n delete(id: K): boolean {\n return this.db.removeSync(id)\n }\n\n get(id: K): V | undefined {\n return this.db.get(id)\n }\n\n getMany(ids: K[]): V[] {\n const results: V[] = []\n for (const id of ids) {\n const value = this.db.get(id)\n if (value !== undefined) {\n results.push(value)\n }\n }\n return results\n }\n\n has(id: K): boolean {\n return this.db.doesExist(id)\n }\n\n set(id: K, data: V): void {\n this.db.putSync(id, data)\n }\n\n setMany(entries: [K, V][]): void {\n for (const [key, value] of entries) {\n this.set(key, value)\n }\n }\n\n override async startHandler(): Promise<void> {\n await super.startHandler()\n // Initialize the DB Environment (opens the default LMDB database)\n this.rootDatabase = open({ path: this.folderPath, name: this.params.dbName })\n // Open the desired DB (using the store name)\n this.db = this.rootDatabase.openDB<V, K>({ name: this.params.storeName, cache: true })\n }\n}\n"],
4
+ "sourcesContent": ["import Path from 'node:path'\n\nimport type { StoreKind } from './StoreKind.ts'\n\n/**\n * Creates a convention-based directory path for an archivist store\n * @param name The name of the archivist\n * @param storageRoot The root directory for storage\n * @param kind The kind of the archivist (optional)\n * @returns The directory path for the archivist store\n */\nexport const getStoreDirectory = (name: string, storageRoot: string, kind?: StoreKind): string => {\n return (kind === undefined) ? Path.join(storageRoot, name) : Path.join(storageRoot, kind, name)\n}\n", "import { rm } from 'node:fs/promises'\nimport Path from 'node:path'\n\nimport type { MapType } from '@xyo-network/xl1-protocol/protocol-lib'\n\nimport { getStoreDirectory } from './getStoreDirectory.ts'\nimport type { StoreKind } from './StoreKind.ts'\nimport { SynchronousLmdbMap } from './SynchronousLmdbMap.ts'\n\nconst DEFAULT_STORAGE_ROOT = Path.join(process.cwd(), '.store')\n\n/**\n * Returns a local persistent map\n * @param dbName The name of the database\n * @param storeName The name of the store\n * @param storageRoot The root directory for storage (default is '.store' in the current working directory)\n * @param kind The kind of the map\n * @returns a map\n */\nexport const getLocalPersistentMap = async <TId, TData>(\n dbName: string,\n storeName: string,\n storageRoot?: string,\n kind: StoreKind = 'lmdb'): Promise<MapType<TId, TData>> => {\n switch (kind) {\n case 'lmdb': {\n const root = storageRoot ?? DEFAULT_STORAGE_ROOT\n const location = getStoreDirectory(dbName, root, 'lmdb')\n const store = await SynchronousLmdbMap.create({\n location, dbName, storeName,\n })\n await store.start()\n return store as unknown as MapType<TId, TData>\n }\n }\n}\n\nexport const deleteLocalPersistentMap = async (\n dbName: string,\n storageRoot?: string,\n kind: StoreKind = 'lmdb',\n): Promise<void> => {\n await Promise.resolve()\n let location = ''\n switch (kind) {\n case 'lmdb': {\n const root = storageRoot ?? DEFAULT_STORAGE_ROOT\n location = getStoreDirectory(dbName, root, 'lmdb')\n break\n }\n }\n await rm(location, { recursive: true, force: true })\n}\n", "import { AbstractCreatable, creatable } from '@ariestools/sdk'\nimport type { SyncMap } from '@xyo-network/xl1-protocol/protocol-lib'\nimport type {\n Database, Key, RootDatabase,\n} from 'lmdb'\nimport { open } from 'lmdb'\n\nimport type { LmdbMapParams } from './Params.ts'\n\n// TODO: Abstract creatable instead of service?\n/**\n * A synchronous LMDB-backed Map implementation.\n * This class provides a synchronous interface to an LMDB database, allowing for key-value storage.\n * It allows for multi-tenancy within a single LMDB environment by using a root database (located\n * at this.folderPath) and a specific DB within the environment (specified by this.params.storeName).\n * @template K - The type of keys in the map.\n * @template V - The type of values in the map.\n */\n@creatable()\nexport class SynchronousLmdbMap<K extends Key, V> extends AbstractCreatable<LmdbMapParams> implements SyncMap<K, V> {\n protected db!: Database<V, K>\n protected rootDatabase!: RootDatabase\n\n /**\n * The path to the LMDB folder where the database is stored.\n * This is constructed from the location and dbName parameters\n * allowing for multiple DBs within the root (by specifying a\n * different storeName).\n * @returns The folder path for the LMDB database.\n */\n get folderPath() {\n return `${this.params.location}/${this.params.storeName}`\n }\n\n all(): V[] {\n return [...this.db.getRange({})].map(entry => entry.value)\n }\n\n clear(): void {\n this.db.clearSync()\n }\n\n delete(id: K): boolean {\n return this.db.removeSync(id)\n }\n\n get(id: K): V | undefined {\n return this.db.get(id)\n }\n\n getMany(ids: K[]): V[] {\n const results: V[] = []\n for (const id of ids) {\n const value = this.db.get(id)\n if (value !== undefined) {\n results.push(value)\n }\n }\n return results\n }\n\n has(id: K): boolean {\n return this.db.doesExist(id)\n }\n\n set(id: K, data: V): void {\n this.db.putSync(id, data)\n }\n\n setMany(entries: [K, V][]): void {\n for (const [key, value] of entries) {\n this.set(key, value)\n }\n }\n\n override async startHandler(): Promise<void> {\n await super.startHandler()\n // Initialize the DB Environment (opens the default LMDB database)\n this.rootDatabase = open({ path: this.folderPath, name: this.params.dbName })\n // Open the desired DB (using the store name)\n this.db = this.rootDatabase.openDB<V, K>({ name: this.params.storeName, cache: true })\n }\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;AAAA,OAAO,UAAU;AAWV,IAAM,oBAAoB,CAAC,MAAc,aAAqB,SAA6B;AAChG,SAAQ,SAAS,SAAa,KAAK,KAAK,aAAa,IAAI,IAAI,KAAK,KAAK,aAAa,MAAM,IAAI;AAChG;;;ACbA,SAAS,UAAU;AACnB,OAAOA,WAAU;;;ACDjB,SAAS,mBAAmB,iBAAiB;AAK7C,SAAS,YAAY;AAcd,IAAM,qBAAN,cAAmD,kBAA0D;AAAA,EACxG;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASV,IAAI,aAAa;AACf,WAAO,GAAG,KAAK,OAAO,QAAQ,IAAI,KAAK,OAAO,SAAS;AAAA,EACzD;AAAA,EAEA,MAAW;AACT,WAAO,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,WAAS,MAAM,KAAK;AAAA,EAC3D;AAAA,EAEA,QAAc;AACZ,SAAK,GAAG,UAAU;AAAA,EACpB;AAAA,EAEA,OAAO,IAAgB;AACrB,WAAO,KAAK,GAAG,WAAW,EAAE;AAAA,EAC9B;AAAA,EAEA,IAAI,IAAsB;AACxB,WAAO,KAAK,GAAG,IAAI,EAAE;AAAA,EACvB;AAAA,EAEA,QAAQ,KAAe;AACrB,UAAM,UAAe,CAAC;AACtB,eAAW,MAAM,KAAK;AACpB,YAAM,QAAQ,KAAK,GAAG,IAAI,EAAE;AAC5B,UAAI,UAAU,QAAW;AACvB,gBAAQ,KAAK,KAAK;AAAA,MACpB;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,IAAgB;AAClB,WAAO,KAAK,GAAG,UAAU,EAAE;AAAA,EAC7B;AAAA,EAEA,IAAI,IAAO,MAAe;AACxB,SAAK,GAAG,QAAQ,IAAI,IAAI;AAAA,EAC1B;AAAA,EAEA,QAAQ,SAAyB;AAC/B,eAAW,CAAC,KAAK,KAAK,KAAK,SAAS;AAClC,WAAK,IAAI,KAAK,KAAK;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,MAAe,eAA8B;AAC3C,UAAM,MAAM,aAAa;AAEzB,SAAK,eAAe,KAAK,EAAE,MAAM,KAAK,YAAY,MAAM,KAAK,OAAO,OAAO,CAAC;AAE5E,SAAK,KAAK,KAAK,aAAa,OAAa,EAAE,MAAM,KAAK,OAAO,WAAW,OAAO,KAAK,CAAC;AAAA,EACvF;AACF;AA/Da,qBAAN;AAAA,EADN,UAAU;AAAA,GACE;;;ADVb,IAAM,uBAAuBC,MAAK,KAAK,QAAQ,IAAI,GAAG,QAAQ;AAUvD,IAAM,wBAAwB,OACnC,QACA,WACA,aACA,OAAkB,WAAyC;AAC3D,UAAQ,MAAM;AAAA,IACZ,KAAK,QAAQ;AACX,YAAM,OAAO,eAAe;AAC5B,YAAM,WAAW,kBAAkB,QAAQ,MAAM,MAAM;AACvD,YAAM,QAAQ,MAAM,mBAAmB,OAAO;AAAA,QAC5C;AAAA,QAAU;AAAA,QAAQ;AAAA,MACpB,CAAC;AACD,YAAM,MAAM,MAAM;AAClB,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,IAAM,2BAA2B,OACtC,QACA,aACA,OAAkB,WACA;AAClB,QAAM,QAAQ,QAAQ;AACtB,MAAI,WAAW;AACf,UAAQ,MAAM;AAAA,IACZ,KAAK,QAAQ;AACX,YAAM,OAAO,eAAe;AAC5B,iBAAW,kBAAkB,QAAQ,MAAM,MAAM;AACjD;AAAA,IACF;AAAA,EACF;AACA,QAAM,GAAG,UAAU,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AACrD;",
6
6
  "names": ["Path", "Path"]
7
7
  }
@@ -1,4 +1,4 @@
1
- import type { MapType } from '@xyo-network/xl1-protocol-lib';
1
+ import type { MapType } from '@xyo-network/xl1-protocol/protocol-lib';
2
2
  import type { StoreKind } from './StoreKind.ts';
3
3
  /**
4
4
  * Returns a local persistent map
@@ -1 +1 @@
1
- {"version":3,"file":"localPersistentMap.d.ts","sourceRoot":"","sources":["../../src/localPersistentMap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAG5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,GAAU,GAAG,EAAE,KAAK,EACpD,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,cAAc,MAAM,EACpB,OAAM,SAAkB,KAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAYvD,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,cAAc,MAAM,EACpB,OAAM,SAAkB,KACvB,OAAO,CAAC,IAAI,CAWd,CAAA"}
1
+ {"version":3,"file":"localPersistentMap.d.ts","sourceRoot":"","sources":["../../src/localPersistentMap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAA;AAGrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,GAAU,GAAG,EAAE,KAAK,EACpD,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,cAAc,MAAM,EACpB,OAAM,SAAkB,KAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAYvD,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,cAAc,MAAM,EACpB,OAAM,SAAkB,KACvB,OAAO,CAAC,IAAI,CAWd,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package.json",
3
3
  "name": "@xyo-network/xl1-driver-lmdb",
4
- "version": "4.0.11",
4
+ "version": "4.0.14",
5
5
  "description": "XYO Layer One SDK Protocol LMDB Driver",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -35,10 +35,14 @@
35
35
  "README.md"
36
36
  ],
37
37
  "dependencies": {
38
- "@xyo-network/xl1-protocol-lib": "~4.0.11"
38
+ "lmdb": "~3.5.6",
39
+ "@xyo-network/xl1-protocol": "~4.0.14"
39
40
  },
40
41
  "devDependencies": {
41
- "@ariestools/sdk": "~7.0.8",
42
+ "@ariestools/sdk": "~8.0.3",
43
+ "@ariestools/threads": "~8.0.3",
44
+ "@ariestools/toolchain": "~8.6.12",
45
+ "@ariestools/tsconfig": "~8.6.12",
42
46
  "@bitauth/libauth": "~3.0.0",
43
47
  "@metamask/providers": "~22.1.1",
44
48
  "@noble/post-quantum": "~0.6.1",
@@ -46,12 +50,8 @@
46
50
  "@opentelemetry/sdk-trace-base": "~2.9.0",
47
51
  "@scure/base": "~2.2.0",
48
52
  "@scure/bip39": "~2.2.0",
49
- "@xylabs/geo": "~7.0.8",
50
- "@xylabs/threads": "~7.0.8",
51
- "@xylabs/toolchain": "~8.6.2",
52
- "@xylabs/tsconfig": "~8.6.2",
53
- "@xyo-network/sdk": "~7.0.8",
54
- "@xyo-network/sdk-protocol": "~7.0.13",
53
+ "@xyo-network/sdk": "~7.0.11",
54
+ "@xyo-network/sdk-protocol": "~7.0.15",
55
55
  "ajv": "~8.20.0",
56
56
  "async-mutex": "~0.5.0",
57
57
  "debug": "~4.4.3",
@@ -59,8 +59,6 @@
59
59
  "ethers": "~6.17.0",
60
60
  "hash-wasm": "~4.12.0",
61
61
  "idb": "~8.0.3",
62
- "lmdb": "~3.5.6",
63
- "lru-cache": "~11.5.1",
64
62
  "observable-fns": "~0.6.1",
65
63
  "tslib": "~2.8.1",
66
64
  "typescript": "~6.0.3",
@@ -68,7 +66,8 @@
68
66
  "zod": "~4.4.3"
69
67
  },
70
68
  "peerDependencies": {
71
- "@ariestools/sdk": "^7.0.8",
69
+ "@ariestools/sdk": "^8.0.3",
70
+ "@ariestools/threads": "^8.0.3",
72
71
  "@bitauth/libauth": "^3.0.0",
73
72
  "@metamask/providers": "^22.1.1",
74
73
  "@noble/post-quantum": "^0.6.1",
@@ -76,27 +75,18 @@
76
75
  "@opentelemetry/sdk-trace-base": "^2.9.0",
77
76
  "@scure/base": "^2.2.0",
78
77
  "@scure/bip39": "^2.2.0",
79
- "@xylabs/geo": "^7.0.8",
80
- "@xylabs/threads": "^7.0.8",
81
- "@xyo-network/sdk": "^7.0.8",
82
- "@xyo-network/sdk-protocol": "^7.0.13",
78
+ "@xyo-network/sdk": "^7.0.11",
79
+ "@xyo-network/sdk-protocol": "^7.0.15",
83
80
  "ajv": "^8.20.0",
84
81
  "async-mutex": "^0.5.0",
85
82
  "debug": "^4.4.3",
86
83
  "ethers": "^6.17.0",
87
84
  "hash-wasm": "^4.12.0",
88
85
  "idb": "^8.0.3",
89
- "lmdb": "^3.5.6",
90
- "lru-cache": "^11.5.1",
91
86
  "observable-fns": "^0.6.1",
92
87
  "webextension-polyfill": "^0.12.0",
93
88
  "zod": "^4.4.3"
94
89
  },
95
- "peerDependenciesMeta": {
96
- "lmdb": {
97
- "optional": true
98
- }
99
- },
100
90
  "engines": {
101
91
  "node": ">=22.3"
102
92
  },