@xyo-network/archivist-lmdb 6.0.4 → 7.0.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/README.md CHANGED
@@ -38,10 +38,12 @@ bun add {{name}}
38
38
 
39
39
  See the [LICENSE](LICENSE) file for license rights and limitations (LGPL-3.0-only).
40
40
 
41
+ ## Credits
41
42
 
43
+ [Made with 🔥 and ❄️ by XYO Foundation](https://xyo.network)
42
44
 
43
- [logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
44
45
  [npm-badge]: https://img.shields.io/npm/v/@xyo-network/archivist-lmdb.svg
45
46
  [npm-link]: https://www.npmjs.com/package/@xyo-network/archivist-lmdb
46
47
  [license-badge]: https://img.shields.io/npm/l/@xyo-network/archivist-lmdb.svg
47
48
  [license-link]: https://github.com/xylabs/sdk-js/blob/main/LICENSE
49
+ [logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
@@ -8,7 +8,7 @@ export declare class LmdbArchivist<TParams extends LmdbArchivistParams = LmdbArc
8
8
  static readonly configSchemas: Schema[];
9
9
  static readonly defaultConfigSchema: Schema;
10
10
  static readonly labels: {
11
- "network.xyo.storage.class": string;
11
+ 'network.xyo.storage.class': string;
12
12
  };
13
13
  protected static readonly dataHashIndex: IndexDescription;
14
14
  protected static readonly sequenceIndex: IndexDescription;
@@ -1 +1 @@
1
- {"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAM/C,OAAO,EAAE,iBAAiB,EAAqB,MAAM,iCAAiC,CAAA;AACtF,OAAO,KAAK,EAEV,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,8BAA8B,CAAA;AAUrC,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EAAE,MAAM,EACf,eAAe,EAChB,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EACV,QAAQ,EACM,YAAY,EAC3B,MAAM,MAAM,CAAA;AAIb,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtD,qBACa,aAAa,CACxB,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,EACzD,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CACtE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9C,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAsD;IACtG,gBAAyB,mBAAmB,EAAE,MAAM,CAA4B;IAChF,gBAAyB,MAAM;;MAAmD;IAElF,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAExD;IAED,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAExD;IAED,SAAS,CAAC,aAAa,EAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,EAAG,YAAY,CAAA;IAC3B,SAAS,CAAC,SAAS,EAAG,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;IAC9D,SAAS,CAAC,aAAa,EAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAE7C,IAAI,MAAM,WAET;IAED,IAAI,UAAU,WAEb;IAED,IAAI,QAAQ,WAEX;IAED,IAAa,OAAO,aAUnB;IAED,IAAI,SAAS,WAEZ;IAEc,YAAY;cAmBR,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;cAIlC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cAU7B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAaxC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;cAcxE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE;cAShD,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;cAW9F,WAAW,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE;CAmB3F"}
1
+ {"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAM/C,OAAO,EAAE,iBAAiB,EAAqB,MAAM,iCAAiC,CAAA;AACtF,OAAO,KAAK,EAEV,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,8BAA8B,CAAA;AAUrC,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EAAE,MAAM,EACf,eAAe,EAChB,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EACV,QAAQ,EACM,YAAY,EAC3B,MAAM,MAAM,CAAA;AAIb,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtD,qBACa,aAAa,CACxB,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,EACzD,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CACtE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9C,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAsD;IACtG,gBAAyB,mBAAmB,EAAE,MAAM,CAA4B;IAChF,gBAAyB,MAAM,EAAE;QAC/B,2BAA2B,EAAE,MAAM,CAAA;KACpC,CAAmD;IAEpD,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAExD;IAED,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAExD;IAED,SAAS,CAAC,aAAa,EAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,EAAG,YAAY,CAAA;IAC3B,SAAS,CAAC,SAAS,EAAG,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;IAC9D,SAAS,CAAC,aAAa,EAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAE7C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,UAAU,WAEb;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAU/B;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAEc,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cAmBzB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;cAIlC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cAU7B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAaxC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;cAcxE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE;cAShD,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;cAW9F,WAAW,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE;CAmB3F"}
@@ -1,8 +1,22 @@
1
+ import { zodAsFactory, zodIsFactory, zodToFactory } from '@xylabs/sdk-js';
1
2
  import type { ArchivistConfig } from '@xyo-network/archivist-model';
3
+ import { ArchivistConfigZod } from '@xyo-network/archivist-model';
4
+ import * as z from 'zod/mini';
2
5
  export declare const LmdbArchivistConfigSchema: string & {
3
6
  readonly __schema: true;
4
7
  };
5
8
  export type LmdbArchivistConfigSchema = typeof LmdbArchivistConfigSchema;
9
+ export declare const LmdbArchivistConfigZod: z.ZodMiniObject<Omit<(typeof ArchivistConfigZod)['shape'], 'schema'> & {
10
+ clearStoreOnStart: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
11
+ dbName: z.ZodMiniOptional<z.ZodMiniString<string>>;
12
+ location: z.ZodMiniOptional<z.ZodMiniString<string>>;
13
+ schema: z.ZodMiniLiteral<LmdbArchivistConfigSchema>;
14
+ storeName: z.ZodMiniOptional<z.ZodMiniString<string>>;
15
+ }, z.core.$strip>;
16
+ export type LmdbArchivistConfigBase = z.infer<typeof LmdbArchivistConfigZod>;
17
+ export declare const isLmdbArchivistConfig: ReturnType<typeof zodIsFactory<LmdbArchivistConfigBase>>;
18
+ export declare const asLmdbArchivistConfig: ReturnType<typeof zodAsFactory<LmdbArchivistConfigBase>>;
19
+ export declare const toLmdbArchivistConfig: ReturnType<typeof zodToFactory<LmdbArchivistConfigBase>>;
6
20
  export type LmdbArchivistConfig<TStoreName extends string = string> = ArchivistConfig<{
7
21
  /**
8
22
  * If true, the store will be cleared on start
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAKnE,eAAO,MAAM,yBAAyB;;CAAkD,CAAA;AACxF,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAA;AAExE,MAAM,MAAM,mBAAmB,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,eAAe,CAAC;IACpF;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,yBAAyB,CAAA;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,CAAA;CACvB,CAAC,CAAA"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAAE,YAAY,EAAE,YAAY,EACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAI7B,eAAO,MAAM,yBAAyB,EAAE,MAAM,GAAG;IAC/C,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAC0B,CAAA;AACnD,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAA;AAExE,eAAO,MAAM,sBAAsB,EAAE,CAAC,CAAC,aAAa,CAChD,IAAI,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GACpD;IACA,iBAAiB,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;IAC/D,MAAM,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IAClD,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IACpD,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAA;IACnD,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;CACtD,EACD,CAAC,CAAC,IAAI,CAAC,MAAM,CAOb,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE5E,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAwC,CAAA;AACnI,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAiE,CAAA;AAC5J,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAiE,CAAA;AAE5J,MAAM,MAAM,mBAAmB,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,eAAe,CAAC;IACpF;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,yBAAyB,CAAA;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,CAAA;CACvB,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- export declare const LmdbArchivistSchema: "network.xyo.archivist.lmdb" & {
1
+ export declare const LmdbArchivistSchema: 'network.xyo.archivist.lmdb' & {
2
2
  readonly __schema: true;
3
3
  };
4
4
  export type LmdbArchivistSchema = typeof LmdbArchivistSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;CAA+C,CAAA;AAC/E,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,EAAE,4BAA4B,GAAG;IAC/D,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CACuB,CAAA;AAChD,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA"}
@@ -34,7 +34,14 @@ import { PayloadBuilder, SequenceConstants } from "@xyo-network/sdk-protocol-js"
34
34
  import { open } from "lmdb";
35
35
 
36
36
  // src/Config.ts
37
+ import {
38
+ zodAsFactory,
39
+ zodIsFactory,
40
+ zodToFactory
41
+ } from "@xylabs/sdk-js";
42
+ import { ArchivistConfigZod } from "@xyo-network/archivist-model";
37
43
  import { asSchema as asSchema2 } from "@xyo-network/sdk-protocol-js";
44
+ import * as z from "zod/mini";
38
45
 
39
46
  // src/Schema.ts
40
47
  import { asSchema } from "@xyo-network/sdk-protocol-js";
@@ -42,6 +49,16 @@ var LmdbArchivistSchema = asSchema("network.xyo.archivist.lmdb", true);
42
49
 
43
50
  // src/Config.ts
44
51
  var LmdbArchivistConfigSchema = asSchema2(`${LmdbArchivistSchema}.config`, true);
52
+ var LmdbArchivistConfigZod = z.extend(ArchivistConfigZod, {
53
+ clearStoreOnStart: z.optional(z.boolean()),
54
+ dbName: z.optional(z.string()),
55
+ location: z.optional(z.string()),
56
+ schema: z.literal(LmdbArchivistConfigSchema),
57
+ storeName: z.optional(z.string())
58
+ });
59
+ var isLmdbArchivistConfig = zodIsFactory(LmdbArchivistConfigZod);
60
+ var asLmdbArchivistConfig = zodAsFactory(LmdbArchivistConfigZod, "asLmdbArchivistConfig");
61
+ var toLmdbArchivistConfig = zodToFactory(LmdbArchivistConfigZod, "toLmdbArchivistConfig");
45
62
 
46
63
  // src/Archivist.ts
47
64
  var LmdbArchivist = class extends AbstractArchivist {
@@ -171,6 +188,10 @@ LmdbArchivist = __decorateClass([
171
188
  export {
172
189
  LmdbArchivist,
173
190
  LmdbArchivistConfigSchema,
174
- LmdbArchivistSchema
191
+ LmdbArchivistConfigZod,
192
+ LmdbArchivistSchema,
193
+ asLmdbArchivistConfig,
194
+ isLmdbArchivistConfig,
195
+ toLmdbArchivistConfig
175
196
  };
176
197
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Archivist.ts", "../../src/Config.ts", "../../src/Schema.ts"],
4
- "sourcesContent": ["import type { Hash, Hex } from '@xylabs/sdk-js'\nimport {\n assertEx,\n exists,\n fulfilled,\n} from '@xylabs/sdk-js'\nimport { AbstractArchivist, StorageClassLabel } from '@xyo-network/archivist-abstract'\nimport type {\n ArchivistInsertQuery,\n ArchivistModuleEventData,\n ArchivistNextOptions,\n IndexDescription,\n} from '@xyo-network/archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n} from '@xyo-network/archivist-model'\nimport { creatableModule } from '@xyo-network/module-model'\nimport type {\n BoundWitness,\n Payload, Schema,\n WithStorageMeta,\n} from '@xyo-network/sdk-protocol-js'\nimport { PayloadBuilder, SequenceConstants } from '@xyo-network/sdk-protocol-js'\nimport type {\n Database,\n RangeOptions, RootDatabase,\n} from 'lmdb'\nimport { open } from 'lmdb'\n\nimport { LmdbArchivistConfigSchema } from './Config.ts'\nimport type { LmdbArchivistParams } from './Params.ts'\n\n@creatableModule()\nexport class LmdbArchivist<\n TParams extends LmdbArchivistParams = LmdbArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n> extends AbstractArchivist<TParams, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, LmdbArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = LmdbArchivistConfigSchema\n static override readonly labels = { ...super.labels, [StorageClassLabel]: 'disk' }\n\n protected static readonly dataHashIndex: IndexDescription = {\n key: { _dataHash: 1 }, multiEntry: false, unique: false,\n }\n\n protected static readonly sequenceIndex: IndexDescription = {\n key: { _sequence: 1 }, multiEntry: false, unique: true,\n }\n\n protected dataHashIndex!: Database<Hash, string>\n protected db!: RootDatabase\n protected hashIndex!: Database<WithStorageMeta<Payload>, Hash>\n protected sequenceIndex!: Database<Hash, Hex>\n\n get dbName() {\n return assertEx(this.config.dbName, () => 'No dbName specified')\n }\n\n get folderPath() {\n return `${this.location}/${this.config.dbName}/${this.storeName}`\n }\n\n get location() {\n return assertEx(this.config.location, () => 'No location specified')\n }\n\n override get queries() {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistNextQuerySchema,\n ...super.queries,\n ]\n }\n\n get storeName() {\n return assertEx(this.config.storeName, () => 'No storeName specified')\n }\n\n override async startHandler() {\n await super.startHandler()\n\n // Open LMDB database\n this.db = open({\n path: this.folderPath,\n maxDbs: 3, // Payloads, dataHashIndex, sequenceIndex\n })\n\n // Open sub-databases\n this.hashIndex = this.db.openDB<WithStorageMeta<Payload>, Hash>({ name: 'payloads' })\n this.dataHashIndex = this.db.openDB<Hash, string>({ name: 'dataHashIndex' })\n this.sequenceIndex = this.db.openDB<Hash, Hex>({ name: 'sequenceIndex' })\n\n if (this.config.clearStoreOnStart) {\n await this.clearHandler()\n }\n }\n\n protected override allHandler(): WithStorageMeta<Payload>[] {\n return [...this.hashIndex.getRange({})].map(entry => entry.value).toSorted(PayloadBuilder.compareStorageMeta)\n }\n\n protected override async clearHandler(): Promise<void> {\n // Ensure all operations are synchronous within transaction\n await this.db.transaction(() => {\n this.hashIndex.clearSync()\n this.dataHashIndex.clearSync()\n this.sequenceIndex.clearSync()\n })\n return this.emit('cleared', { mod: this })\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = this.allHandler()\n const settled = await Promise.allSettled(\n Object.values((await this.parentArchivists()).commit ?? []).map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = { schema: ArchivistInsertQuerySchema }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }).filter(exists),\n )\n await this.clearHandler()\n return settled.filter(fulfilled).map(result => result.value).filter(exists)\n }\n\n protected override async deleteHandler(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n return (await this.db.transaction(() => {\n return hashes.map((hash) => {\n const payload = this.hashIndex.get(hash)\n if (payload) {\n this.hashIndex.removeSync(hash)\n this.dataHashIndex.removeSync(payload._dataHash)\n this.sequenceIndex.removeSync(payload._sequence)\n return payload\n }\n })\n })).filter(exists)\n }\n\n protected override getHandler(hashes: Hash[]): WithStorageMeta<Payload>[] {\n return hashes.map((hash) => {\n const byHash = this.hashIndex.get(hash)\n if (byHash) return byHash\n const byDataHash = this.dataHashIndex.get(hash)\n if (byDataHash) return this.hashIndex.get(byDataHash)\n }).filter(exists)\n }\n\n protected override async insertHandler(payloads: WithStorageMeta<Payload>[]): Promise<WithStorageMeta<Payload>[]> {\n await this.db.transaction(() => {\n for (const payload of payloads) {\n this.hashIndex.putSync(payload._hash, payload)\n this.dataHashIndex.putSync(payload._dataHash, payload._hash)\n this.sequenceIndex.putSync(payload._sequence, payload._hash)\n }\n })\n return payloads\n }\n\n protected override nextHandler(options?: ArchivistNextOptions): WithStorageMeta<Payload>[] {\n const {\n limit = 100, cursor, order, open = cursor ? true : false,\n } = options ?? {}\n\n // Determine search range based on order (ascending or descending)\n const rangeOptions: RangeOptions = order === 'desc'\n ? { start: cursor ?? SequenceConstants.maxLocalSequence, reverse: true }\n : { start: cursor ?? SequenceConstants.minLocalSequence }\n\n // Get range of sequence-indexed hashes\n const sequenceEntries = [...this.sequenceIndex.getRange(rangeOptions)]\n .slice(open ? 1 : 0, limit + (open ? 1 : 0)) // Apply cursor offset and limit\n\n // Fetch full payloads using hashes retrieved from sequence index\n return sequenceEntries\n .map(({ value: hash }) => this.hashIndex.get(hash))\n .filter(exists)\n }\n}\n", "import type { ArchivistConfig } from '@xyo-network/archivist-model'\nimport { asSchema } from '@xyo-network/sdk-protocol-js'\n\nimport { LmdbArchivistSchema } from './Schema.ts'\n\nexport const LmdbArchivistConfigSchema = asSchema(`${LmdbArchivistSchema}.config`, true)\nexport type LmdbArchivistConfigSchema = typeof LmdbArchivistConfigSchema\n\nexport type LmdbArchivistConfig<TStoreName extends string = string> = ArchivistConfig<{\n /**\n * If true, the store will be cleared on start\n */\n clearStoreOnStart?: boolean\n /**\n * The database name - also used as the filename for the db\n */\n dbName?: string\n /**\n * The location where the folder for the db will be created\n */\n location?: string\n schema: LmdbArchivistConfigSchema\n /**\n * The name of the object store - becomes a sub-level\n */\n storeName?: TStoreName\n}>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const LmdbArchivistSchema = asSchema('network.xyo.archivist.lmdb', true)\nexport type LmdbArchivistSchema = typeof LmdbArchivistSchema\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { Hash, Hex } from '@xylabs/sdk-js'\nimport {\n assertEx,\n exists,\n fulfilled,\n} from '@xylabs/sdk-js'\nimport { AbstractArchivist, StorageClassLabel } from '@xyo-network/archivist-abstract'\nimport type {\n ArchivistInsertQuery,\n ArchivistModuleEventData,\n ArchivistNextOptions,\n IndexDescription,\n} from '@xyo-network/archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n} from '@xyo-network/archivist-model'\nimport { creatableModule } from '@xyo-network/module-model'\nimport type {\n BoundWitness,\n Payload, Schema,\n WithStorageMeta,\n} from '@xyo-network/sdk-protocol-js'\nimport { PayloadBuilder, SequenceConstants } from '@xyo-network/sdk-protocol-js'\nimport type {\n Database,\n RangeOptions, RootDatabase,\n} from 'lmdb'\nimport { open } from 'lmdb'\n\nimport { LmdbArchivistConfigSchema } from './Config.ts'\nimport type { LmdbArchivistParams } from './Params.ts'\n\n@creatableModule()\nexport class LmdbArchivist<\n TParams extends LmdbArchivistParams = LmdbArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n> extends AbstractArchivist<TParams, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, LmdbArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = LmdbArchivistConfigSchema\n static override readonly labels: {\n 'network.xyo.storage.class': string\n } = { ...super.labels, [StorageClassLabel]: 'disk' }\n\n protected static readonly dataHashIndex: IndexDescription = {\n key: { _dataHash: 1 }, multiEntry: false, unique: false,\n }\n\n protected static readonly sequenceIndex: IndexDescription = {\n key: { _sequence: 1 }, multiEntry: false, unique: true,\n }\n\n protected dataHashIndex!: Database<Hash, string>\n protected db!: RootDatabase\n protected hashIndex!: Database<WithStorageMeta<Payload>, Hash>\n protected sequenceIndex!: Database<Hash, Hex>\n\n get dbName(): string {\n return assertEx(this.config.dbName, () => 'No dbName specified')\n }\n\n get folderPath() {\n return `${this.location}/${this.config.dbName}/${this.storeName}`\n }\n\n get location(): string {\n return assertEx(this.config.location, () => 'No location specified')\n }\n\n override get queries(): Schema[] {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistNextQuerySchema,\n ...super.queries,\n ]\n }\n\n get storeName(): string {\n return assertEx(this.config.storeName, () => 'No storeName specified')\n }\n\n override async startHandler(): Promise<void> {\n await super.startHandler()\n\n // Open LMDB database\n this.db = open({\n path: this.folderPath,\n maxDbs: 3, // Payloads, dataHashIndex, sequenceIndex\n })\n\n // Open sub-databases\n this.hashIndex = this.db.openDB<WithStorageMeta<Payload>, Hash>({ name: 'payloads' })\n this.dataHashIndex = this.db.openDB<Hash, string>({ name: 'dataHashIndex' })\n this.sequenceIndex = this.db.openDB<Hash, Hex>({ name: 'sequenceIndex' })\n\n if (this.config.clearStoreOnStart) {\n await this.clearHandler()\n }\n }\n\n protected override allHandler(): WithStorageMeta<Payload>[] {\n return [...this.hashIndex.getRange({})].map(entry => entry.value).toSorted(PayloadBuilder.compareStorageMeta)\n }\n\n protected override async clearHandler(): Promise<void> {\n // Ensure all operations are synchronous within transaction\n await this.db.transaction(() => {\n this.hashIndex.clearSync()\n this.dataHashIndex.clearSync()\n this.sequenceIndex.clearSync()\n })\n return this.emit('cleared', { mod: this })\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = this.allHandler()\n const settled = await Promise.allSettled(\n Object.values((await this.parentArchivists()).commit ?? []).map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = { schema: ArchivistInsertQuerySchema }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }).filter(exists),\n )\n await this.clearHandler()\n return settled.filter(fulfilled).map(result => result.value).filter(exists)\n }\n\n protected override async deleteHandler(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n return (await this.db.transaction(() => {\n return hashes.map((hash) => {\n const payload = this.hashIndex.get(hash)\n if (payload) {\n this.hashIndex.removeSync(hash)\n this.dataHashIndex.removeSync(payload._dataHash)\n this.sequenceIndex.removeSync(payload._sequence)\n return payload\n }\n })\n })).filter(exists)\n }\n\n protected override getHandler(hashes: Hash[]): WithStorageMeta<Payload>[] {\n return hashes.map((hash) => {\n const byHash = this.hashIndex.get(hash)\n if (byHash) return byHash\n const byDataHash = this.dataHashIndex.get(hash)\n if (byDataHash) return this.hashIndex.get(byDataHash)\n }).filter(exists)\n }\n\n protected override async insertHandler(payloads: WithStorageMeta<Payload>[]): Promise<WithStorageMeta<Payload>[]> {\n await this.db.transaction(() => {\n for (const payload of payloads) {\n this.hashIndex.putSync(payload._hash, payload)\n this.dataHashIndex.putSync(payload._dataHash, payload._hash)\n this.sequenceIndex.putSync(payload._sequence, payload._hash)\n }\n })\n return payloads\n }\n\n protected override nextHandler(options?: ArchivistNextOptions): WithStorageMeta<Payload>[] {\n const {\n limit = 100, cursor, order, open = cursor ? true : false,\n } = options ?? {}\n\n // Determine search range based on order (ascending or descending)\n const rangeOptions: RangeOptions = order === 'desc'\n ? { start: cursor ?? SequenceConstants.maxLocalSequence, reverse: true }\n : { start: cursor ?? SequenceConstants.minLocalSequence }\n\n // Get range of sequence-indexed hashes\n const sequenceEntries = [...this.sequenceIndex.getRange(rangeOptions)]\n .slice(open ? 1 : 0, limit + (open ? 1 : 0)) // Apply cursor offset and limit\n\n // Fetch full payloads using hashes retrieved from sequence index\n return sequenceEntries\n .map(({ value: hash }) => this.hashIndex.get(hash))\n .filter(exists)\n }\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { ArchivistConfig } from '@xyo-network/archivist-model'\nimport { ArchivistConfigZod } from '@xyo-network/archivist-model'\nimport { asSchema } from '@xyo-network/sdk-protocol-js'\nimport * as z from 'zod/mini'\n\nimport { LmdbArchivistSchema } from './Schema.ts'\n\nexport const LmdbArchivistConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${LmdbArchivistSchema}.config`, true)\nexport type LmdbArchivistConfigSchema = typeof LmdbArchivistConfigSchema\n\nexport const LmdbArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ArchivistConfigZod)['shape'], 'schema'>\n & {\n clearStoreOnStart: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n dbName: z.ZodMiniOptional<z.ZodMiniString<string>>\n location: z.ZodMiniOptional<z.ZodMiniString<string>>\n schema: z.ZodMiniLiteral<LmdbArchivistConfigSchema>\n storeName: z.ZodMiniOptional<z.ZodMiniString<string>>\n },\n z.core.$strip\n> = z.extend(ArchivistConfigZod, {\n clearStoreOnStart: z.optional(z.boolean()),\n dbName: z.optional(z.string()),\n location: z.optional(z.string()),\n schema: z.literal(LmdbArchivistConfigSchema),\n storeName: z.optional(z.string()),\n})\n\nexport type LmdbArchivistConfigBase = z.infer<typeof LmdbArchivistConfigZod>\n\nexport const isLmdbArchivistConfig: ReturnType<typeof zodIsFactory<LmdbArchivistConfigBase>> = zodIsFactory(LmdbArchivistConfigZod)\nexport const asLmdbArchivistConfig: ReturnType<typeof zodAsFactory<LmdbArchivistConfigBase>> = zodAsFactory(LmdbArchivistConfigZod, 'asLmdbArchivistConfig')\nexport const toLmdbArchivistConfig: ReturnType<typeof zodToFactory<LmdbArchivistConfigBase>> = zodToFactory(LmdbArchivistConfigZod, 'toLmdbArchivistConfig')\n\nexport type LmdbArchivistConfig<TStoreName extends string = string> = ArchivistConfig<{\n /**\n * If true, the store will be cleared on start\n */\n clearStoreOnStart?: boolean\n /**\n * The database name - also used as the filename for the db\n */\n dbName?: string\n /**\n * The location where the folder for the db will be created\n */\n location?: string\n schema: LmdbArchivistConfigSchema\n /**\n * The name of the object store - becomes a sub-level\n */\n storeName?: TStoreName\n}>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const LmdbArchivistSchema: 'network.xyo.archivist.lmdb' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.lmdb', true)\nexport type LmdbArchivistSchema = typeof LmdbArchivistSchema\n"],
5
+ "mappings": "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",
6
6
  "names": ["asSchema", "asSchema", "open"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/archivist-lmdb",
3
- "version": "6.0.4",
3
+ "version": "7.0.0",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -34,31 +34,29 @@
34
34
  "README.md"
35
35
  ],
36
36
  "dependencies": {
37
- "@xyo-network/archivist-abstract": "~6.0.4",
38
- "@xyo-network/archivist-model": "~6.0.4",
39
- "@xyo-network/module-model": "~6.0.4"
37
+ "@xyo-network/archivist-abstract": "~7.0.0",
38
+ "@xyo-network/module-model": "~7.0.0",
39
+ "@xyo-network/archivist-model": "~7.0.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@bitauth/libauth": "~3.0.0",
43
43
  "@metamask/providers": "^22.1.1",
44
44
  "@noble/post-quantum": "~0.6.1",
45
45
  "@opentelemetry/api": "^1.9.1",
46
- "@opentelemetry/sdk-trace-base": "^2.7.1",
46
+ "@opentelemetry/sdk-trace-base": "^2.8.0",
47
47
  "@scure/base": "~2.2.0",
48
48
  "@scure/bip39": "~2.2.0",
49
- "@xylabs/geo": "^6.0.8",
50
- "@xylabs/sdk-js": "^6.0.8",
51
- "@xylabs/threads": "^6.0.8",
52
- "@xylabs/toolchain": "~8.1.16",
53
- "@xylabs/tsconfig": "~8.1.16",
54
- "@xylabs/vitest-extended": "~6.0.8",
55
- "@xyo-network/sdk-protocol-js": "~6.0.9",
49
+ "@xylabs/geo": "^6.1.1",
50
+ "@xylabs/sdk-js": "^6.1.1",
51
+ "@xylabs/threads": "^6.1.1",
52
+ "@xylabs/toolchain": "^8.1.20",
53
+ "@xylabs/tsconfig": "^8.1.20",
54
+ "@xylabs/vitest-extended": "^6.1.1",
55
+ "@xyo-network/sdk-protocol-js": "~7.0",
56
56
  "ajv": "^8.20.0",
57
57
  "async-mutex": "^0.5.0",
58
- "bn.js": "^5.2.3",
59
- "buffer": "^6.0.3",
60
58
  "debug": "~4.4.3",
61
- "eslint": "^10.4.1",
59
+ "eslint": "^10.5.0",
62
60
  "ethers": "^6.16.0",
63
61
  "hash-wasm": "~4.12.0",
64
62
  "idb": "^8.0.3",
@@ -72,7 +70,7 @@
72
70
  "vitest": "~4.1.8",
73
71
  "webextension-polyfill": "^0.12.0",
74
72
  "zod": "^4.4.3",
75
- "@xyo-network/archivist-acceptance-tests": "~6.0.4"
73
+ "@xyo-network/archivist-acceptance-tests": "~7.0.0"
76
74
  },
77
75
  "peerDependencies": {
78
76
  "@bitauth/libauth": "~3.0",
@@ -85,11 +83,9 @@
85
83
  "@xylabs/geo": "^6.0",
86
84
  "@xylabs/sdk-js": "^6.0",
87
85
  "@xylabs/threads": "^6.0",
88
- "@xyo-network/sdk-protocol-js": "~6.0",
86
+ "@xyo-network/sdk-protocol-js": "^7.0",
89
87
  "ajv": "^8.20",
90
88
  "async-mutex": "^0.5",
91
- "bn.js": "^5.2",
92
- "buffer": "^6.0",
93
89
  "debug": "~4.4",
94
90
  "ethers": "^6.16",
95
91
  "hash-wasm": "~4.12",
@@ -100,6 +96,9 @@
100
96
  "webextension-polyfill": "^0.12",
101
97
  "zod": "^4.4"
102
98
  },
99
+ "engines": {
100
+ "node": "^24"
101
+ },
103
102
  "publishConfig": {
104
103
  "access": "public"
105
104
  }