@xyo-network/archivist-mongodb 2.74.0 → 2.74.2

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/dist/index.d.mts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './Archivist';
2
+ export * from '@xyo-network/archivist-model-mongodb';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,sCAAsC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './Archivist';
2
+ export * from '@xyo-network/archivist-model-mongodb';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,sCAAsC,CAAA"}
package/dist/index.js CHANGED
@@ -16,13 +16,13 @@ var __copyProps = (to, from, except, desc) => {
16
16
  }
17
17
  return to;
18
18
  };
19
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
19
20
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
21
 
21
22
  // src/index.ts
22
23
  var src_exports = {};
23
24
  __export(src_exports, {
24
- MongoDBArchivist: () => MongoDBArchivist,
25
- MongoDBArchivistConfigSchema: () => MongoDBArchivistConfigSchema
25
+ MongoDBArchivist: () => MongoDBArchivist
26
26
  });
27
27
  module.exports = __toCommonJS(src_exports);
28
28
 
@@ -31,12 +31,15 @@ var import_assert = require("@xylabs/assert");
31
31
  var import_exists = require("@xylabs/exists");
32
32
  var import_lodash = require("@xylabs/lodash");
33
33
  var import_promise = require("@xylabs/promise");
34
+ var import_static_implements = require("@xylabs/static-implements");
34
35
  var import_archivist_abstract = require("@xyo-network/archivist-abstract");
35
36
  var import_archivist_model = require("@xyo-network/archivist-model");
37
+ var import_archivist_model_mongodb = require("@xyo-network/archivist-model-mongodb");
38
+ var import_module_model_mongodb = require("@xyo-network/module-model-mongodb");
36
39
  var import_payload_wrapper2 = require("@xyo-network/payload-wrapper");
37
40
  var import_sdk_xyo_mongo_js = require("@xyo-network/sdk-xyo-mongo-js");
38
41
 
39
- // src/validByType.ts
42
+ // src/lib/validByType.ts
40
43
  var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
41
44
  var import_boundwitness_model = require("@xyo-network/boundwitness-model");
42
45
  var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
@@ -64,7 +67,17 @@ var validByType = /* @__PURE__ */ __name(async (payloads = []) => {
64
67
  }, "validByType");
65
68
 
66
69
  // src/Archivist.ts
67
- var MongoDBArchivistConfigSchema = "network.xyo.archivist.mongodb.config";
70
+ function _ts_decorate(decorators, target, key, desc) {
71
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
72
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
73
+ r = Reflect.decorate(decorators, target, key, desc);
74
+ else
75
+ for (var i = decorators.length - 1; i >= 0; i--)
76
+ if (d = decorators[i])
77
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
78
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
79
+ }
80
+ __name(_ts_decorate, "_ts_decorate");
68
81
  var toBoundWitnessWithMeta = /* @__PURE__ */ __name(async (wrapper) => {
69
82
  const bw = wrapper.boundwitness;
70
83
  return {
@@ -93,14 +106,15 @@ var toPayloadWithMeta = /* @__PURE__ */ __name(async (wrapper) => {
93
106
  _timestamp: Date.now()
94
107
  };
95
108
  }, "toPayloadWithMeta");
96
- var MongoDBArchivist = class extends import_archivist_abstract.AbstractArchivist {
109
+ var MongoDBArchivist = class MongoDBArchivist2 extends import_archivist_abstract.AbstractArchivist {
97
110
  static {
98
111
  __name(this, "MongoDBArchivist");
99
112
  }
100
113
  static configSchemas = [
101
- MongoDBArchivistConfigSchema,
114
+ import_archivist_model_mongodb.MongoDBArchivistConfigSchema,
102
115
  import_archivist_model.ArchivistConfigSchema
103
116
  ];
117
+ static labels = import_module_model_mongodb.MongoDBStorageClassLabels;
104
118
  _boundWitnessSdk;
105
119
  _payloadSdk;
106
120
  get boundWitnessSdkConfig() {
@@ -164,9 +178,15 @@ var MongoDBArchivist = class extends import_archivist_abstract.AbstractArchivist
164
178
  return payloads ?? [];
165
179
  }
166
180
  };
181
+ MongoDBArchivist = _ts_decorate([
182
+ (0, import_static_implements.staticImplements)()
183
+ ], MongoDBArchivist);
184
+
185
+ // src/index.ts
186
+ __reExport(src_exports, require("@xyo-network/archivist-model-mongodb"), module.exports);
167
187
  // Annotate the CommonJS export names for ESM import in node:
168
188
  0 && (module.exports = {
169
189
  MongoDBArchivist,
170
- MongoDBArchivistConfigSchema
190
+ ...require("@xyo-network/archivist-model-mongodb")
171
191
  });
172
192
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/Archivist.ts","../src/validByType.ts"],"sourcesContent":["export * from './Archivist'\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { merge } from '@xylabs/lodash'\nimport { fulfilledValues } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { ArchivistConfig, ArchivistConfigSchema, ArchivistInsertQuerySchema, ArchivistParams } from '@xyo-network/archivist-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AnyConfigSchema } from '@xyo-network/module'\nimport { BoundWitnessWithMeta, PayloadWithMeta, PayloadWithPartialMeta } from '@xyo-network/node-core-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { BaseMongoSdk, BaseMongoSdkConfig, BaseMongoSdkPrivateConfig, BaseMongoSdkPublicConfig } from '@xyo-network/sdk-xyo-mongo-js'\n\nimport { validByType } from './validByType'\n\nexport const MongoDBArchivistConfigSchema = 'network.xyo.archivist.mongodb.config'\nexport type MongoDBArchivistConfigSchema = typeof MongoDBArchivistConfigSchema\n\nexport type MongoDBArchivistConfig = ArchivistConfig<{\n boundWitnessSdkConfig?: Partial<BaseMongoSdkPublicConfig>\n payloadSdkConfig?: Partial<BaseMongoSdkPublicConfig>\n schema: MongoDBArchivistConfigSchema\n}>\n\nexport type MongoDBArchivistParams = ArchivistParams<\n AnyConfigSchema<MongoDBArchivistConfig>,\n {\n boundWitnessSdkConfig: BaseMongoSdkPrivateConfig & Partial<BaseMongoSdkPublicConfig>\n payloadSdkConfig: BaseMongoSdkPrivateConfig & Partial<BaseMongoSdkPublicConfig>\n }\n>\n\nconst toBoundWitnessWithMeta = async (wrapper: BoundWitnessWrapper | QueryBoundWitnessWrapper): Promise<BoundWitnessWithMeta> => {\n const bw = wrapper.boundwitness as BoundWitness\n return { ...bw, _hash: await wrapper.hashAsync(), _timestamp: Date.now() }\n}\n\nconst toReturnValue = (value: Payload | BoundWitness): Payload => {\n const _signatures = (value as BoundWitness)?._signatures\n if (_signatures) {\n return { ...PayloadWrapper.wrap(value).body(), _signatures } as BoundWitness\n } else {\n return { ...PayloadWrapper.wrap(value).body() }\n }\n}\n\nconst toPayloadWithMeta = async (wrapper: PayloadWrapper): Promise<PayloadWithMeta> => {\n return { ...wrapper.payload(), _hash: await wrapper.hashAsync(), _timestamp: Date.now() }\n}\n\nexport class MongoDBArchivist<TParams extends MongoDBArchivistParams = MongoDBArchivistParams> extends AbstractArchivist<TParams> {\n static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]\n\n private _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n private _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n return merge({}, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? 'bound_witnesses',\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n return merge({}, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? 'payload',\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n override get queries(): string[] {\n return [ArchivistInsertQuerySchema, ...super.queries]\n }\n\n override async head(): Promise<Payload | undefined> {\n const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()\n return head[0] ? PayloadWrapper.wrap(head[0]).body() : undefined\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n const payloads = hashes.map((_hash) => this.payloads.findOne({ _hash }))\n const bws = hashes.map((_hash) => this.boundWitnesses.findOne({ _hash }))\n const gets = await Promise.allSettled([payloads, bws].flat())\n const succeeded = gets.reduce<(PayloadWithPartialMeta | null)[]>(fulfilledValues, []) as Payload[]\n return succeeded.filter(exists).map(toReturnValue)\n }\n\n protected override async insertHandler(payloads?: Payload[]): Promise<Payload[]> {\n const [bw, p] = await validByType(payloads)\n const boundWitnesses = await Promise.all(bw.map((x) => toBoundWitnessWithMeta(x)))\n const payloadsWithMeta = await Promise.all(p.map((x) => toPayloadWithMeta(x)))\n if (boundWitnesses.length) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnesses)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnesses.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')\n }\n if (payloadsWithMeta.length) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')\n }\n return payloads ?? []\n }\n}\n","import { isQueryBoundWitness, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport const validByType = async (payloads: Payload[] = []) => {\n const results: [BoundWitnessWrapper[], PayloadWrapper[]] = [[], []]\n await Promise.all(\n payloads.map(async (payload) => {\n if (isBoundWitness(payload)) {\n const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper\n const bw = wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(bw)\n }\n } else {\n const payloadWrapper = PayloadWrapper.wrap(payload)\n if (await payloadWrapper.getValid()) {\n results[1].push(payloadWrapper)\n }\n }\n }),\n )\n return results\n}\n"],"mappings":"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","names":["import_payload_wrapper","validByType","payloads","results","Promise","all","map","payload","isBoundWitness","wrapper","isQueryBoundWitness","QueryBoundWitnessWrapper","BoundWitnessWrapper","bw","parse","getValid","push","payloadWrapper","PayloadWrapper","wrap","MongoDBArchivistConfigSchema","toBoundWitnessWithMeta","wrapper","bw","boundwitness","_hash","hashAsync","_timestamp","Date","now","toReturnValue","value","_signatures","PayloadWrapper","wrap","body","toPayloadWithMeta","payload","MongoDBArchivist","AbstractArchivist","configSchemas","ArchivistConfigSchema","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","merge","params","config","collection","boundWitnesses","BaseMongoSdk","assertEx","payloadSdkConfig","payloads","queries","ArchivistInsertQuerySchema","head","find","sort","limit","toArray","undefined","getHandler","hashes","map","findOne","bws","gets","Promise","allSettled","flat","succeeded","reduce","fulfilledValues","filter","exists","insertHandler","p","validByType","all","x","payloadsWithMeta","length","boundWitnessesResult","insertMany","acknowledged","insertedCount","Error","payloadsResult"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/Archivist.ts","../src/lib/validByType.ts"],"sourcesContent":["export * from './Archivist'\nexport * from '@xyo-network/archivist-model-mongodb'\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { merge } from '@xylabs/lodash'\nimport { fulfilledValues } from '@xylabs/promise'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { ArchivistConfigSchema, ArchivistInsertQuerySchema } from '@xyo-network/archivist-model'\nimport { MongoDBArchivistConfigSchema, MongoDBArchivistParams } from '@xyo-network/archivist-model-mongodb'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { WithLabels } from '@xyo-network/module-model'\nimport { MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta, PayloadWithPartialMeta } from '@xyo-network/node-core-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\n\nimport { validByType } from './lib'\n\nconst toBoundWitnessWithMeta = async (wrapper: BoundWitnessWrapper | QueryBoundWitnessWrapper): Promise<BoundWitnessWithMeta> => {\n const bw = wrapper.boundwitness as BoundWitness\n return { ...bw, _hash: await wrapper.hashAsync(), _timestamp: Date.now() }\n}\n\nconst toReturnValue = (value: Payload | BoundWitness): Payload => {\n const _signatures = (value as BoundWitness)?._signatures\n if (_signatures) {\n return { ...PayloadWrapper.wrap(value).body(), _signatures } as BoundWitness\n } else {\n return { ...PayloadWrapper.wrap(value).body() }\n }\n}\n\nconst toPayloadWithMeta = async (wrapper: PayloadWrapper): Promise<PayloadWithMeta> => {\n return { ...wrapper.payload(), _hash: await wrapper.hashAsync(), _timestamp: Date.now() }\n}\n\n@staticImplements<WithLabels<MongoDBStorageClassLabels>>()\nexport class MongoDBArchivist<TParams extends MongoDBArchivistParams = MongoDBArchivistParams> extends AbstractArchivist<TParams> {\n static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]\n static labels = MongoDBStorageClassLabels\n\n private _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n private _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n return merge({}, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? 'bound_witnesses',\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n return merge({}, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? 'payload',\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n override get queries(): string[] {\n return [ArchivistInsertQuerySchema, ...super.queries]\n }\n\n override async head(): Promise<Payload | undefined> {\n const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()\n return head[0] ? PayloadWrapper.wrap(head[0]).body() : undefined\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n const payloads = hashes.map((_hash) => this.payloads.findOne({ _hash }))\n const bws = hashes.map((_hash) => this.boundWitnesses.findOne({ _hash }))\n const gets = await Promise.allSettled([payloads, bws].flat())\n const succeeded = gets.reduce<(PayloadWithPartialMeta | null)[]>(fulfilledValues, []) as Payload[]\n return succeeded.filter(exists).map(toReturnValue)\n }\n\n protected override async insertHandler(payloads?: Payload[]): Promise<Payload[]> {\n const [bw, p] = await validByType(payloads)\n const boundWitnesses = await Promise.all(bw.map((x) => toBoundWitnessWithMeta(x)))\n const payloadsWithMeta = await Promise.all(p.map((x) => toPayloadWithMeta(x)))\n if (boundWitnesses.length) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnesses)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnesses.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')\n }\n if (payloadsWithMeta.length) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')\n }\n return payloads ?? []\n }\n}\n","import { isQueryBoundWitness, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport const validByType = async (payloads: Payload[] = []) => {\n const results: [BoundWitnessWrapper[], PayloadWrapper[]] = [[], []]\n await Promise.all(\n payloads.map(async (payload) => {\n if (isBoundWitness(payload)) {\n const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper\n const bw = wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(bw)\n }\n } else {\n const payloadWrapper = PayloadWrapper.wrap(payload)\n if (await payloadWrapper.getValid()) {\n results[1].push(payloadWrapper)\n }\n }\n }),\n )\n return results\n}\n"],"mappings":"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","names":["import_payload_wrapper","validByType","payloads","results","Promise","all","map","payload","isBoundWitness","wrapper","isQueryBoundWitness","QueryBoundWitnessWrapper","BoundWitnessWrapper","bw","parse","getValid","push","payloadWrapper","PayloadWrapper","wrap","toBoundWitnessWithMeta","wrapper","bw","boundwitness","_hash","hashAsync","_timestamp","Date","now","toReturnValue","value","_signatures","PayloadWrapper","wrap","body","toPayloadWithMeta","payload","MongoDBArchivist","AbstractArchivist","configSchemas","MongoDBArchivistConfigSchema","ArchivistConfigSchema","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","merge","params","config","collection","boundWitnesses","BaseMongoSdk","assertEx","payloadSdkConfig","payloads","queries","ArchivistInsertQuerySchema","head","find","sort","limit","toArray","undefined","getHandler","hashes","map","findOne","bws","gets","Promise","allSettled","flat","succeeded","reduce","fulfilledValues","filter","exists","insertHandler","p","validByType","all","x","payloadsWithMeta","length","boundWitnessesResult","insertMany","acknowledged","insertedCount","Error","payloadsResult","staticImplements"]}
package/dist/index.mjs CHANGED
@@ -6,12 +6,15 @@ import { assertEx } from "@xylabs/assert";
6
6
  import { exists } from "@xylabs/exists";
7
7
  import { merge } from "@xylabs/lodash";
8
8
  import { fulfilledValues } from "@xylabs/promise";
9
+ import { staticImplements } from "@xylabs/static-implements";
9
10
  import { AbstractArchivist } from "@xyo-network/archivist-abstract";
10
11
  import { ArchivistConfigSchema, ArchivistInsertQuerySchema } from "@xyo-network/archivist-model";
12
+ import { MongoDBArchivistConfigSchema } from "@xyo-network/archivist-model-mongodb";
13
+ import { MongoDBStorageClassLabels } from "@xyo-network/module-model-mongodb";
11
14
  import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
12
15
  import { BaseMongoSdk } from "@xyo-network/sdk-xyo-mongo-js";
13
16
 
14
- // src/validByType.ts
17
+ // src/lib/validByType.ts
15
18
  import { isQueryBoundWitness, QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-builder";
16
19
  import { isBoundWitness } from "@xyo-network/boundwitness-model";
17
20
  import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
@@ -39,7 +42,17 @@ var validByType = /* @__PURE__ */ __name(async (payloads = []) => {
39
42
  }, "validByType");
40
43
 
41
44
  // src/Archivist.ts
42
- var MongoDBArchivistConfigSchema = "network.xyo.archivist.mongodb.config";
45
+ function _ts_decorate(decorators, target, key, desc) {
46
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
48
+ r = Reflect.decorate(decorators, target, key, desc);
49
+ else
50
+ for (var i = decorators.length - 1; i >= 0; i--)
51
+ if (d = decorators[i])
52
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
53
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
54
+ }
55
+ __name(_ts_decorate, "_ts_decorate");
43
56
  var toBoundWitnessWithMeta = /* @__PURE__ */ __name(async (wrapper) => {
44
57
  const bw = wrapper.boundwitness;
45
58
  return {
@@ -68,7 +81,7 @@ var toPayloadWithMeta = /* @__PURE__ */ __name(async (wrapper) => {
68
81
  _timestamp: Date.now()
69
82
  };
70
83
  }, "toPayloadWithMeta");
71
- var MongoDBArchivist = class extends AbstractArchivist {
84
+ var MongoDBArchivist = class MongoDBArchivist2 extends AbstractArchivist {
72
85
  static {
73
86
  __name(this, "MongoDBArchivist");
74
87
  }
@@ -76,6 +89,7 @@ var MongoDBArchivist = class extends AbstractArchivist {
76
89
  MongoDBArchivistConfigSchema,
77
90
  ArchivistConfigSchema
78
91
  ];
92
+ static labels = MongoDBStorageClassLabels;
79
93
  _boundWitnessSdk;
80
94
  _payloadSdk;
81
95
  get boundWitnessSdkConfig() {
@@ -139,8 +153,13 @@ var MongoDBArchivist = class extends AbstractArchivist {
139
153
  return payloads ?? [];
140
154
  }
141
155
  };
156
+ MongoDBArchivist = _ts_decorate([
157
+ staticImplements()
158
+ ], MongoDBArchivist);
159
+
160
+ // src/index.ts
161
+ export * from "@xyo-network/archivist-model-mongodb";
142
162
  export {
143
- MongoDBArchivist,
144
- MongoDBArchivistConfigSchema
163
+ MongoDBArchivist
145
164
  };
146
165
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Archivist.ts","../src/validByType.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { merge } from '@xylabs/lodash'\nimport { fulfilledValues } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { ArchivistConfig, ArchivistConfigSchema, ArchivistInsertQuerySchema, ArchivistParams } from '@xyo-network/archivist-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AnyConfigSchema } from '@xyo-network/module'\nimport { BoundWitnessWithMeta, PayloadWithMeta, PayloadWithPartialMeta } from '@xyo-network/node-core-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { BaseMongoSdk, BaseMongoSdkConfig, BaseMongoSdkPrivateConfig, BaseMongoSdkPublicConfig } from '@xyo-network/sdk-xyo-mongo-js'\n\nimport { validByType } from './validByType'\n\nexport const MongoDBArchivistConfigSchema = 'network.xyo.archivist.mongodb.config'\nexport type MongoDBArchivistConfigSchema = typeof MongoDBArchivistConfigSchema\n\nexport type MongoDBArchivistConfig = ArchivistConfig<{\n boundWitnessSdkConfig?: Partial<BaseMongoSdkPublicConfig>\n payloadSdkConfig?: Partial<BaseMongoSdkPublicConfig>\n schema: MongoDBArchivistConfigSchema\n}>\n\nexport type MongoDBArchivistParams = ArchivistParams<\n AnyConfigSchema<MongoDBArchivistConfig>,\n {\n boundWitnessSdkConfig: BaseMongoSdkPrivateConfig & Partial<BaseMongoSdkPublicConfig>\n payloadSdkConfig: BaseMongoSdkPrivateConfig & Partial<BaseMongoSdkPublicConfig>\n }\n>\n\nconst toBoundWitnessWithMeta = async (wrapper: BoundWitnessWrapper | QueryBoundWitnessWrapper): Promise<BoundWitnessWithMeta> => {\n const bw = wrapper.boundwitness as BoundWitness\n return { ...bw, _hash: await wrapper.hashAsync(), _timestamp: Date.now() }\n}\n\nconst toReturnValue = (value: Payload | BoundWitness): Payload => {\n const _signatures = (value as BoundWitness)?._signatures\n if (_signatures) {\n return { ...PayloadWrapper.wrap(value).body(), _signatures } as BoundWitness\n } else {\n return { ...PayloadWrapper.wrap(value).body() }\n }\n}\n\nconst toPayloadWithMeta = async (wrapper: PayloadWrapper): Promise<PayloadWithMeta> => {\n return { ...wrapper.payload(), _hash: await wrapper.hashAsync(), _timestamp: Date.now() }\n}\n\nexport class MongoDBArchivist<TParams extends MongoDBArchivistParams = MongoDBArchivistParams> extends AbstractArchivist<TParams> {\n static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]\n\n private _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n private _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n return merge({}, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? 'bound_witnesses',\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n return merge({}, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? 'payload',\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n override get queries(): string[] {\n return [ArchivistInsertQuerySchema, ...super.queries]\n }\n\n override async head(): Promise<Payload | undefined> {\n const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()\n return head[0] ? PayloadWrapper.wrap(head[0]).body() : undefined\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n const payloads = hashes.map((_hash) => this.payloads.findOne({ _hash }))\n const bws = hashes.map((_hash) => this.boundWitnesses.findOne({ _hash }))\n const gets = await Promise.allSettled([payloads, bws].flat())\n const succeeded = gets.reduce<(PayloadWithPartialMeta | null)[]>(fulfilledValues, []) as Payload[]\n return succeeded.filter(exists).map(toReturnValue)\n }\n\n protected override async insertHandler(payloads?: Payload[]): Promise<Payload[]> {\n const [bw, p] = await validByType(payloads)\n const boundWitnesses = await Promise.all(bw.map((x) => toBoundWitnessWithMeta(x)))\n const payloadsWithMeta = await Promise.all(p.map((x) => toPayloadWithMeta(x)))\n if (boundWitnesses.length) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnesses)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnesses.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')\n }\n if (payloadsWithMeta.length) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')\n }\n return payloads ?? []\n }\n}\n","import { isQueryBoundWitness, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport const validByType = async (payloads: Payload[] = []) => {\n const results: [BoundWitnessWrapper[], PayloadWrapper[]] = [[], []]\n await Promise.all(\n payloads.map(async (payload) => {\n if (isBoundWitness(payload)) {\n const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper\n const bw = wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(bw)\n }\n } else {\n const payloadWrapper = PayloadWrapper.wrap(payload)\n if (await payloadWrapper.getValid()) {\n results[1].push(payloadWrapper)\n }\n }\n }),\n )\n return results\n}\n"],"mappings":"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","names":["assertEx","exists","merge","fulfilledValues","AbstractArchivist","ArchivistConfigSchema","ArchivistInsertQuerySchema","PayloadWrapper","BaseMongoSdk","isQueryBoundWitness","QueryBoundWitnessWrapper","isBoundWitness","BoundWitnessWrapper","PayloadWrapper","validByType","payloads","results","Promise","all","map","payload","isBoundWitness","wrapper","isQueryBoundWitness","QueryBoundWitnessWrapper","BoundWitnessWrapper","bw","parse","getValid","push","payloadWrapper","PayloadWrapper","wrap","MongoDBArchivistConfigSchema","toBoundWitnessWithMeta","wrapper","bw","boundwitness","_hash","hashAsync","_timestamp","Date","now","toReturnValue","value","_signatures","PayloadWrapper","wrap","body","toPayloadWithMeta","payload","MongoDBArchivist","AbstractArchivist","configSchemas","ArchivistConfigSchema","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","merge","params","config","collection","boundWitnesses","BaseMongoSdk","assertEx","payloadSdkConfig","payloads","queries","ArchivistInsertQuerySchema","head","find","sort","limit","toArray","undefined","getHandler","hashes","map","findOne","bws","gets","Promise","allSettled","flat","succeeded","reduce","fulfilledValues","filter","exists","insertHandler","p","validByType","all","x","payloadsWithMeta","length","boundWitnessesResult","insertMany","acknowledged","insertedCount","Error","payloadsResult"]}
1
+ {"version":3,"sources":["../src/Archivist.ts","../src/lib/validByType.ts","../src/index.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { merge } from '@xylabs/lodash'\nimport { fulfilledValues } from '@xylabs/promise'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { ArchivistConfigSchema, ArchivistInsertQuerySchema } from '@xyo-network/archivist-model'\nimport { MongoDBArchivistConfigSchema, MongoDBArchivistParams } from '@xyo-network/archivist-model-mongodb'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { WithLabels } from '@xyo-network/module-model'\nimport { MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta, PayloadWithPartialMeta } from '@xyo-network/node-core-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\n\nimport { validByType } from './lib'\n\nconst toBoundWitnessWithMeta = async (wrapper: BoundWitnessWrapper | QueryBoundWitnessWrapper): Promise<BoundWitnessWithMeta> => {\n const bw = wrapper.boundwitness as BoundWitness\n return { ...bw, _hash: await wrapper.hashAsync(), _timestamp: Date.now() }\n}\n\nconst toReturnValue = (value: Payload | BoundWitness): Payload => {\n const _signatures = (value as BoundWitness)?._signatures\n if (_signatures) {\n return { ...PayloadWrapper.wrap(value).body(), _signatures } as BoundWitness\n } else {\n return { ...PayloadWrapper.wrap(value).body() }\n }\n}\n\nconst toPayloadWithMeta = async (wrapper: PayloadWrapper): Promise<PayloadWithMeta> => {\n return { ...wrapper.payload(), _hash: await wrapper.hashAsync(), _timestamp: Date.now() }\n}\n\n@staticImplements<WithLabels<MongoDBStorageClassLabels>>()\nexport class MongoDBArchivist<TParams extends MongoDBArchivistParams = MongoDBArchivistParams> extends AbstractArchivist<TParams> {\n static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]\n static labels = MongoDBStorageClassLabels\n\n private _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n private _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n return merge({}, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? 'bound_witnesses',\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n return merge({}, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? 'payload',\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n override get queries(): string[] {\n return [ArchivistInsertQuerySchema, ...super.queries]\n }\n\n override async head(): Promise<Payload | undefined> {\n const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()\n return head[0] ? PayloadWrapper.wrap(head[0]).body() : undefined\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n const payloads = hashes.map((_hash) => this.payloads.findOne({ _hash }))\n const bws = hashes.map((_hash) => this.boundWitnesses.findOne({ _hash }))\n const gets = await Promise.allSettled([payloads, bws].flat())\n const succeeded = gets.reduce<(PayloadWithPartialMeta | null)[]>(fulfilledValues, []) as Payload[]\n return succeeded.filter(exists).map(toReturnValue)\n }\n\n protected override async insertHandler(payloads?: Payload[]): Promise<Payload[]> {\n const [bw, p] = await validByType(payloads)\n const boundWitnesses = await Promise.all(bw.map((x) => toBoundWitnessWithMeta(x)))\n const payloadsWithMeta = await Promise.all(p.map((x) => toPayloadWithMeta(x)))\n if (boundWitnesses.length) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnesses)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnesses.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')\n }\n if (payloadsWithMeta.length) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')\n }\n return payloads ?? []\n }\n}\n","import { isQueryBoundWitness, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport const validByType = async (payloads: Payload[] = []) => {\n const results: [BoundWitnessWrapper[], PayloadWrapper[]] = [[], []]\n await Promise.all(\n payloads.map(async (payload) => {\n if (isBoundWitness(payload)) {\n const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper\n const bw = wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(bw)\n }\n } else {\n const payloadWrapper = PayloadWrapper.wrap(payload)\n if (await payloadWrapper.getValid()) {\n results[1].push(payloadWrapper)\n }\n }\n }),\n )\n return results\n}\n","export * from './Archivist'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":"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","names":["assertEx","exists","merge","fulfilledValues","staticImplements","AbstractArchivist","ArchivistConfigSchema","ArchivistInsertQuerySchema","MongoDBArchivistConfigSchema","MongoDBStorageClassLabels","PayloadWrapper","BaseMongoSdk","isQueryBoundWitness","QueryBoundWitnessWrapper","isBoundWitness","BoundWitnessWrapper","PayloadWrapper","validByType","payloads","results","Promise","all","map","payload","isBoundWitness","wrapper","isQueryBoundWitness","QueryBoundWitnessWrapper","BoundWitnessWrapper","bw","parse","getValid","push","payloadWrapper","PayloadWrapper","wrap","toBoundWitnessWithMeta","wrapper","bw","boundwitness","_hash","hashAsync","_timestamp","Date","now","toReturnValue","value","_signatures","PayloadWrapper","wrap","body","toPayloadWithMeta","payload","MongoDBArchivist","AbstractArchivist","configSchemas","MongoDBArchivistConfigSchema","ArchivistConfigSchema","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","merge","params","config","collection","boundWitnesses","BaseMongoSdk","assertEx","payloadSdkConfig","payloads","queries","ArchivistInsertQuerySchema","head","find","sort","limit","toArray","undefined","getHandler","hashes","map","findOne","bws","gets","Promise","allSettled","flat","succeeded","reduce","fulfilledValues","filter","exists","insertHandler","p","validByType","all","x","payloadsWithMeta","length","boundWitnessesResult","insertMany","acknowledged","insertedCount","Error","payloadsResult","staticImplements"]}
@@ -0,0 +1,2 @@
1
+ export * from './validByType';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './validByType';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validByType.d.ts","sourceRoot":"","sources":["../../src/lib/validByType.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;;;MAmBpD,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validByType.d.ts","sourceRoot":"","sources":["../../src/lib/validByType.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;;;MAmBpD,CAAA"}
package/package.json CHANGED
@@ -10,22 +10,25 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^2.11.5",
14
- "@xylabs/exists": "^2.11.5",
15
- "@xylabs/lodash": "^2.11.5",
16
- "@xylabs/promise": "^2.11.5",
17
- "@xyo-network/archivist-abstract": "~2.74.0",
18
- "@xyo-network/archivist-model": "~2.74.0",
19
- "@xyo-network/boundwitness-builder": "~2.74.0",
20
- "@xyo-network/boundwitness-model": "~2.74.0",
21
- "@xyo-network/boundwitness-wrapper": "~2.74.0",
22
- "@xyo-network/module": "~2.74.0",
23
- "@xyo-network/node-core-model": "~2.74.0",
24
- "@xyo-network/payload-model": "~2.74.0",
25
- "@xyo-network/payload-wrapper": "~2.74.0"
13
+ "@xylabs/assert": "^2.11.7",
14
+ "@xylabs/exists": "^2.11.7",
15
+ "@xylabs/lodash": "^2.11.7",
16
+ "@xylabs/promise": "^2.11.7",
17
+ "@xylabs/static-implements": "^2.11.7",
18
+ "@xyo-network/archivist-abstract": "~2.74.2",
19
+ "@xyo-network/archivist-model": "~2.74.2",
20
+ "@xyo-network/archivist-model-mongodb": "~2.74.2",
21
+ "@xyo-network/boundwitness-builder": "~2.74.2",
22
+ "@xyo-network/boundwitness-model": "~2.74.2",
23
+ "@xyo-network/boundwitness-wrapper": "~2.74.2",
24
+ "@xyo-network/module-model": "~2.74.2",
25
+ "@xyo-network/module-model-mongodb": "~2.74.2",
26
+ "@xyo-network/node-core-model": "~2.74.2",
27
+ "@xyo-network/payload-model": "~2.74.2",
28
+ "@xyo-network/payload-wrapper": "~2.74.2"
26
29
  },
27
30
  "peerDependencies": {
28
- "@xyo-network/sdk-xyo-mongo-js": "~2.74.0"
31
+ "@xyo-network/sdk-xyo-mongo-js": "~2.74.2"
29
32
  },
30
33
  "peerDependenciesMeta": {
31
34
  "@xyo-network/sdk-xyo-mongo-js": {
@@ -33,9 +36,9 @@
33
36
  }
34
37
  },
35
38
  "devDependencies": {
36
- "@xylabs/ts-scripts-yarn3": "^3.0.27",
37
- "@xylabs/tsconfig": "^3.0.27",
38
- "@xyo-network/sdk-xyo-mongo-js": "~2.74.0",
39
+ "@xylabs/ts-scripts-yarn3": "^3.0.28",
40
+ "@xylabs/tsconfig": "^3.0.28",
41
+ "@xyo-network/sdk-xyo-mongo-js": "~2.74.2",
39
42
  "fake-indexeddb": "^4.0.2",
40
43
  "typescript": "^5.2.2"
41
44
  },
@@ -73,5 +76,5 @@
73
76
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
74
77
  },
75
78
  "sideEffects": false,
76
- "version": "2.74.0"
79
+ "version": "2.74.2"
77
80
  }
package/src/Archivist.ts CHANGED
@@ -2,35 +2,21 @@ import { assertEx } from '@xylabs/assert'
2
2
  import { exists } from '@xylabs/exists'
3
3
  import { merge } from '@xylabs/lodash'
4
4
  import { fulfilledValues } from '@xylabs/promise'
5
+ import { staticImplements } from '@xylabs/static-implements'
5
6
  import { AbstractArchivist } from '@xyo-network/archivist-abstract'
6
- import { ArchivistConfig, ArchivistConfigSchema, ArchivistInsertQuerySchema, ArchivistParams } from '@xyo-network/archivist-model'
7
+ import { ArchivistConfigSchema, ArchivistInsertQuerySchema } from '@xyo-network/archivist-model'
8
+ import { MongoDBArchivistConfigSchema, MongoDBArchivistParams } from '@xyo-network/archivist-model-mongodb'
7
9
  import { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'
8
10
  import { BoundWitness } from '@xyo-network/boundwitness-model'
9
11
  import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
10
- import { AnyConfigSchema } from '@xyo-network/module'
12
+ import { WithLabels } from '@xyo-network/module-model'
13
+ import { MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'
11
14
  import { BoundWitnessWithMeta, PayloadWithMeta, PayloadWithPartialMeta } from '@xyo-network/node-core-model'
12
15
  import { Payload } from '@xyo-network/payload-model'
13
16
  import { PayloadWrapper } from '@xyo-network/payload-wrapper'
14
- import { BaseMongoSdk, BaseMongoSdkConfig, BaseMongoSdkPrivateConfig, BaseMongoSdkPublicConfig } from '@xyo-network/sdk-xyo-mongo-js'
17
+ import { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'
15
18
 
16
- import { validByType } from './validByType'
17
-
18
- export const MongoDBArchivistConfigSchema = 'network.xyo.archivist.mongodb.config'
19
- export type MongoDBArchivistConfigSchema = typeof MongoDBArchivistConfigSchema
20
-
21
- export type MongoDBArchivistConfig = ArchivistConfig<{
22
- boundWitnessSdkConfig?: Partial<BaseMongoSdkPublicConfig>
23
- payloadSdkConfig?: Partial<BaseMongoSdkPublicConfig>
24
- schema: MongoDBArchivistConfigSchema
25
- }>
26
-
27
- export type MongoDBArchivistParams = ArchivistParams<
28
- AnyConfigSchema<MongoDBArchivistConfig>,
29
- {
30
- boundWitnessSdkConfig: BaseMongoSdkPrivateConfig & Partial<BaseMongoSdkPublicConfig>
31
- payloadSdkConfig: BaseMongoSdkPrivateConfig & Partial<BaseMongoSdkPublicConfig>
32
- }
33
- >
19
+ import { validByType } from './lib'
34
20
 
35
21
  const toBoundWitnessWithMeta = async (wrapper: BoundWitnessWrapper | QueryBoundWitnessWrapper): Promise<BoundWitnessWithMeta> => {
36
22
  const bw = wrapper.boundwitness as BoundWitness
@@ -50,8 +36,10 @@ const toPayloadWithMeta = async (wrapper: PayloadWrapper): Promise<PayloadWithMe
50
36
  return { ...wrapper.payload(), _hash: await wrapper.hashAsync(), _timestamp: Date.now() }
51
37
  }
52
38
 
39
+ @staticImplements<WithLabels<MongoDBStorageClassLabels>>()
53
40
  export class MongoDBArchivist<TParams extends MongoDBArchivistParams = MongoDBArchivistParams> extends AbstractArchivist<TParams> {
54
41
  static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]
42
+ static labels = MongoDBStorageClassLabels
55
43
 
56
44
  private _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined
57
45
  private _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined
package/src/index.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './Archivist'
2
+ export * from '@xyo-network/archivist-model-mongodb'
@@ -0,0 +1 @@
1
+ export * from './validByType'
@@ -1 +0,0 @@
1
- {"version":3,"file":"validByType.d.ts","sourceRoot":"","sources":["../src/validByType.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;;;MAmBpD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validByType.d.ts","sourceRoot":"","sources":["../src/validByType.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;;;MAmBpD,CAAA"}
File without changes
File without changes