@xyo-network/archivist-abstract 2.84.6 → 2.84.8

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.
@@ -1,27 +1,44 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ AbstractArchivist: () => AbstractArchivist
24
+ });
25
+ module.exports = __toCommonJS(src_exports);
26
+
1
27
  // src/AbstractArchivist.ts
2
- import { assertEx } from "@xylabs/assert";
3
- import { compact } from "@xylabs/lodash";
4
- import {
5
- ArchivistAllQuerySchema,
6
- ArchivistClearQuerySchema,
7
- ArchivistCommitQuerySchema,
8
- ArchivistDeleteQuerySchema,
9
- ArchivistGetQuerySchema,
10
- ArchivistInsertQuerySchema,
11
- asArchivistInstance,
12
- isArchivistInstance
13
- } from "@xyo-network/archivist-model";
14
- import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-builder";
15
- import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
16
- import { PayloadHasher } from "@xyo-network/hash";
17
- import { AbstractModuleInstance } from "@xyo-network/module-abstract";
18
- import { duplicateModules } from "@xyo-network/module-model";
19
- import { PayloadWrapper } from "@xyo-network/payload-wrapper";
20
- var AbstractArchivist = class extends AbstractModuleInstance {
28
+ var import_assert = require("@xylabs/assert");
29
+ var import_lodash = require("@xylabs/lodash");
30
+ var import_archivist_model = require("@xyo-network/archivist-model");
31
+ var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
32
+ var import_boundwitness_model = require("@xyo-network/boundwitness-model");
33
+ var import_hash = require("@xyo-network/hash");
34
+ var import_module_abstract = require("@xyo-network/module-abstract");
35
+ var import_module_model = require("@xyo-network/module-model");
36
+ var import_payload_wrapper = require("@xyo-network/payload-wrapper");
37
+ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInstance {
21
38
  _lastInsertedPayload;
22
39
  _parents;
23
40
  get queries() {
24
- return [ArchivistGetQuerySchema, ...super.queries];
41
+ return [import_archivist_model.ArchivistGetQuerySchema, ...super.queries];
25
42
  }
26
43
  get requireAllParents() {
27
44
  return this.config.requireAllParents ?? true;
@@ -83,16 +100,16 @@ var AbstractArchivist = class extends AbstractModuleInstance {
83
100
  });
84
101
  }
85
102
  allHandler() {
86
- throw Error("Not implemented");
103
+ throw new Error("Not implemented");
87
104
  }
88
105
  clearHandler() {
89
- throw Error("Not implemented");
106
+ throw new Error("Not implemented");
90
107
  }
91
108
  commitHandler() {
92
- throw Error("Not implemented");
109
+ throw new Error("Not implemented");
93
110
  }
94
111
  deleteHandler(_hashes) {
95
- throw Error("Not implemented");
112
+ throw new Error("Not implemented");
96
113
  }
97
114
  async deleteWithConfig(hashes, config) {
98
115
  const emitEvents = (config == null ? void 0 : config.emitEvents) ?? true;
@@ -104,7 +121,7 @@ var AbstractArchivist = class extends AbstractModuleInstance {
104
121
  }
105
122
  async getFromParent(hashes, archivist) {
106
123
  const foundPairs = (await Promise.all(
107
- (await archivist.get(hashes)).map(async (payload) => [await PayloadHasher.hashAsync(payload), payload])
124
+ (await archivist.get(hashes)).map(async (payload) => [await import_hash.PayloadHasher.hashAsync(payload), payload])
108
125
  )).filter(([hash]) => {
109
126
  const askedFor = hashes.includes(hash);
110
127
  if (!askedFor) {
@@ -112,9 +129,9 @@ var AbstractArchivist = class extends AbstractModuleInstance {
112
129
  }
113
130
  return askedFor;
114
131
  });
115
- const foundHashes = foundPairs.map(([hash]) => hash);
132
+ const foundHashes = new Set(foundPairs.map(([hash]) => hash));
116
133
  const foundPayloads = foundPairs.map(([, payload]) => payload);
117
- const notfound = hashes.filter((hash) => !foundHashes.includes(hash));
134
+ const notfound = hashes.filter((hash) => !foundHashes.has(hash));
118
135
  return [foundPayloads, notfound];
119
136
  }
120
137
  async getFromParents(hashes) {
@@ -132,19 +149,19 @@ var AbstractArchivist = class extends AbstractModuleInstance {
132
149
  return [result, remainingHashes];
133
150
  }
134
151
  getHandler(_hashes) {
135
- throw Error("Not implemented");
152
+ throw new Error("Not implemented");
136
153
  }
137
154
  async getWithConfig(hashes, config) {
138
155
  const emitEvents = (config == null ? void 0 : config.emitEvents) ?? true;
139
- const map = await PayloadWrapper.toMap(await this.getHandler(hashes));
156
+ const map = await import_payload_wrapper.PayloadWrapper.toMap(await this.getHandler(hashes));
140
157
  const { foundPayloads, notfoundHashes } = hashes.reduce(
141
158
  (prev, hash) => {
142
159
  const found = map[hash];
143
160
  if (found) {
144
- if (found.schema === BoundWitnessSchema) {
145
- prev.foundPayloads.push({ ...PayloadHasher.hashFields(found), ...{ _signatures: found._signatures } });
161
+ if (found.schema === import_boundwitness_model.BoundWitnessSchema) {
162
+ prev.foundPayloads.push({ ...import_hash.PayloadHasher.hashFields(found), _signatures: found._signatures });
146
163
  } else {
147
- prev.foundPayloads.push({ ...PayloadHasher.hashFields(found) });
164
+ prev.foundPayloads.push({ ...import_hash.PayloadHasher.hashFields(found) });
148
165
  }
149
166
  } else {
150
167
  prev.notfoundHashes.push(hash);
@@ -163,7 +180,7 @@ var AbstractArchivist = class extends AbstractModuleInstance {
163
180
  return this._lastInsertedPayload;
164
181
  }
165
182
  insertHandler(_payloads) {
166
- throw Error("Not implemented");
183
+ throw new Error("Not implemented");
167
184
  }
168
185
  async insertWithConfig(payloads, config) {
169
186
  const emitEvents = (config == null ? void 0 : config.emitEvents) ?? true;
@@ -184,36 +201,39 @@ var AbstractArchivist = class extends AbstractModuleInstance {
184
201
  read: await this.resolveArchivists((_d = (_c = this.config) == null ? void 0 : _c.parents) == null ? void 0 : _d.read),
185
202
  write: await this.resolveArchivists((_f = (_e = this.config) == null ? void 0 : _e.parents) == null ? void 0 : _f.write)
186
203
  };
187
- return assertEx(this._parents);
204
+ return (0, import_assert.assertEx)(this._parents);
188
205
  }
189
206
  async queryHandler(query, payloads, queryConfig) {
190
207
  var _a;
191
- const wrappedQuery = QueryBoundWitnessWrapper.parseQuery(query, payloads);
208
+ const wrappedQuery = import_boundwitness_builder.QueryBoundWitnessWrapper.parseQuery(query, payloads);
192
209
  const queryPayload = await wrappedQuery.getQuery();
193
- assertEx(this.queryable(query, payloads, queryConfig));
210
+ (0, import_assert.assertEx)(this.queryable(query, payloads, queryConfig));
194
211
  const resultPayloads = [];
195
212
  if (this.config.storeQueries) {
196
213
  await this.insertHandler([query]);
197
214
  }
198
215
  switch (queryPayload.schema) {
199
- case ArchivistAllQuerySchema:
216
+ case import_archivist_model.ArchivistAllQuerySchema: {
200
217
  resultPayloads.push(...await this.allHandler());
201
218
  break;
202
- case ArchivistClearQuerySchema:
219
+ }
220
+ case import_archivist_model.ArchivistClearQuerySchema: {
203
221
  await this.clearHandler();
204
222
  break;
205
- case ArchivistCommitQuerySchema:
223
+ }
224
+ case import_archivist_model.ArchivistCommitQuerySchema: {
206
225
  resultPayloads.push(...await this.commitHandler());
207
226
  break;
208
- case ArchivistDeleteQuerySchema: {
227
+ }
228
+ case import_archivist_model.ArchivistDeleteQuerySchema: {
209
229
  const resultPayload = {
210
230
  hashes: [...await this.deleteWithConfig(queryPayload.hashes)],
211
- schema: ArchivistDeleteQuerySchema
231
+ schema: import_archivist_model.ArchivistDeleteQuerySchema
212
232
  };
213
233
  resultPayloads.push(resultPayload);
214
234
  break;
215
235
  }
216
- case ArchivistGetQuerySchema:
236
+ case import_archivist_model.ArchivistGetQuerySchema: {
217
237
  if ((_a = queryPayload.hashes) == null ? void 0 : _a.length) {
218
238
  resultPayloads.push(...await this.getWithConfig(queryPayload.hashes));
219
239
  } else {
@@ -222,17 +242,19 @@ var AbstractArchivist = class extends AbstractModuleInstance {
222
242
  resultPayloads.push(head);
223
243
  }
224
244
  break;
225
- case ArchivistInsertQuerySchema: {
245
+ }
246
+ case import_archivist_model.ArchivistInsertQuerySchema: {
226
247
  const payloads2 = await wrappedQuery.getPayloads();
227
- assertEx(await wrappedQuery.getPayloads(), `Missing payloads: ${JSON.stringify(wrappedQuery.payload(), null, 2)}`);
228
- const resolvedPayloads = await PayloadWrapper.filterExclude(payloads2, await wrappedQuery.hashAsync());
229
- assertEx(resolvedPayloads.length === payloads2.length, `Could not find some passed hashes [${resolvedPayloads.length} != ${payloads2.length}]`);
248
+ (0, import_assert.assertEx)(await wrappedQuery.getPayloads(), `Missing payloads: ${JSON.stringify(wrappedQuery.payload(), null, 2)}`);
249
+ const resolvedPayloads = await import_payload_wrapper.PayloadWrapper.filterExclude(payloads2, await wrappedQuery.hashAsync());
250
+ (0, import_assert.assertEx)(resolvedPayloads.length === payloads2.length, `Could not find some passed hashes [${resolvedPayloads.length} != ${payloads2.length}]`);
230
251
  resultPayloads.push(...await this.insertWithConfig(payloads2));
231
- this._lastInsertedPayload = resolvedPayloads[resolvedPayloads.length - 1];
252
+ this._lastInsertedPayload = resolvedPayloads.at(-1);
232
253
  break;
233
254
  }
234
- default:
255
+ default: {
235
256
  return await super.queryHandler(query, payloads);
257
+ }
236
258
  }
237
259
  return resultPayloads;
238
260
  }
@@ -241,7 +263,7 @@ var AbstractArchivist = class extends AbstractModuleInstance {
241
263
  }
242
264
  async writeToParents(payloads) {
243
265
  const parents = await this.parents();
244
- return compact(
266
+ return (0, import_lodash.compact)(
245
267
  await Promise.all(
246
268
  Object.values(parents.write ?? {}).map(async (parent) => {
247
269
  return parent ? await this.writeToParent(parent, payloads) : void 0;
@@ -251,24 +273,25 @@ var AbstractArchivist = class extends AbstractModuleInstance {
251
273
  }
252
274
  async resolveArchivists(archivists = []) {
253
275
  const archivistModules = [...await this.resolve({ address: archivists }), ...await this.resolve({ name: archivists })].filter(
254
- duplicateModules
276
+ import_module_model.duplicateModules
255
277
  );
256
- assertEx(
278
+ (0, import_assert.assertEx)(
257
279
  !this.requireAllParents || archivistModules.length === archivists.length,
258
280
  `Failed to find some archivists (set allRequired to false if ok): [${archivists.filter(
259
- (archivist) => archivistModules.map((module) => !(module.address === archivist || module.config.name === archivist))
281
+ (archivist) => archivistModules.map((module2) => !(module2.address === archivist || module2.config.name === archivist))
260
282
  )}]`
261
283
  );
262
- return archivistModules.reduce((prev, module) => {
263
- prev[module.address] = asArchivistInstance(module, () => {
264
- isArchivistInstance(module, { log: console });
265
- return `Unable to cast resolved module to an archivist: [${module.address}, ${module.config.name}, ${module.config.schema})}]`;
284
+ return archivistModules.reduce((prev, module2) => {
285
+ prev[module2.address] = (0, import_archivist_model.asArchivistInstance)(module2, () => {
286
+ (0, import_archivist_model.isArchivistInstance)(module2, { log: console });
287
+ return `Unable to cast resolved module to an archivist: [${module2.address}, ${module2.config.name}, ${module2.config.schema})}]`;
266
288
  });
267
289
  return prev;
268
290
  }, {});
269
291
  }
270
292
  };
271
- export {
293
+ // Annotate the CommonJS export names for ESM import in node:
294
+ 0 && (module.exports = {
272
295
  AbstractArchivist
273
- };
274
- //# sourceMappingURL=index.mjs.map
296
+ });
297
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts","../../src/AbstractArchivist.ts"],"sourcesContent":["export * from './AbstractArchivist'\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable, PromisableArray } from '@xylabs/promise'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistDeleteQuery,\n ArchivistDeleteQuerySchema,\n ArchivistGetQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistInstance,\n ArchivistModuleEventData,\n ArchivistParams,\n ArchivistQuery,\n ArchivistQueryBase,\n asArchivistInstance,\n isArchivistInstance,\n} from '@xyo-network/archivist-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, BoundWitnessSchema, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { duplicateModules, ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport interface ActionConfig {\n emitEvents?: boolean\n}\n\nexport interface InsertConfig extends ActionConfig {\n writeToParents?: boolean\n}\n\nexport interface ArchivistParentInstances {\n commit?: Record<string, ArchivistInstance>\n read?: Record<string, ArchivistInstance>\n write?: Record<string, ArchivistInstance>\n}\n\nexport abstract class AbstractArchivist<\n TParams extends ArchivistParams = ArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n >\n extends AbstractModuleInstance<TParams, TEventData>\n implements ArchivistInstance<TParams>\n{\n private _lastInsertedPayload: Payload | undefined\n private _parents?: ArchivistParentInstances\n\n override get queries(): string[] {\n return [ArchivistGetQuerySchema, ...super.queries]\n }\n\n get requireAllParents() {\n return this.config.requireAllParents ?? true\n }\n\n protected override get _queryAccountPaths(): Record<ArchivistQueryBase['schema'], string> {\n return {\n 'network.xyo.query.archivist.all': '1/1',\n 'network.xyo.query.archivist.clear': '1/2',\n 'network.xyo.query.archivist.commit': '1/3',\n 'network.xyo.query.archivist.delete': '1/4',\n 'network.xyo.query.archivist.get': '1/5',\n 'network.xyo.query.archivist.insert': '1/6',\n }\n }\n\n protected get storeParentReads() {\n return !!this.config?.storeParentReads\n }\n\n all(): PromisableArray<Payload> {\n this._noOverride('all')\n return this.busy(async () => {\n await this.started('throw')\n return await this.allHandler()\n })\n }\n\n clear(): Promisable<void> {\n this._noOverride('clear')\n return this.busy(async () => {\n await this.started('throw')\n return await this.clearHandler()\n })\n }\n\n commit(): Promisable<BoundWitness[]> {\n this._noOverride('commit')\n return this.busy(async () => {\n await this.started('throw')\n return await this.commitHandler()\n })\n }\n\n async delete(hashes: string[]): Promise<string[]> {\n this._noOverride('delete')\n return await this.busy(async () => {\n await this.started('throw')\n return await this.deleteWithConfig(hashes)\n })\n }\n\n async get(hashes: string[]): Promise<Payload[]> {\n this._noOverride('get')\n return await this.busy(async () => {\n await this.started('throw')\n return await this.getWithConfig(hashes)\n })\n }\n\n async insert(payloads: Payload[]): Promise<Payload[]> {\n this._noOverride('insert')\n return await this.busy(async () => {\n await this.started('throw')\n return await this.insertWithConfig(payloads)\n })\n }\n\n protected allHandler(): PromisableArray<Payload> {\n throw new Error('Not implemented')\n }\n\n protected clearHandler(): Promisable<void> {\n throw new Error('Not implemented')\n }\n\n protected commitHandler(): Promisable<BoundWitness[]> {\n throw new Error('Not implemented')\n }\n\n protected deleteHandler(_hashes: string[]): PromisableArray<string> {\n throw new Error('Not implemented')\n }\n\n protected async deleteWithConfig(hashes: string[], config?: ActionConfig): Promise<string[]> {\n const emitEvents = config?.emitEvents ?? true\n\n const deletedHashes = await this.deleteHandler(hashes)\n\n if (emitEvents) {\n await this.emit('deleted', { hashes: deletedHashes, module: this })\n }\n\n return deletedHashes\n }\n\n protected async getFromParent(hashes: string[], archivist: ArchivistInstance): Promise<[Payload[], string[]]> {\n const foundPairs = (\n await Promise.all(\n (await archivist.get(hashes)).map<Promise<[string, Payload]>>(async (payload) => [await PayloadHasher.hashAsync(payload), payload]),\n )\n ).filter(([hash]) => {\n const askedFor = hashes.includes(hash)\n if (!askedFor) {\n console.warn(`Parent returned payload with hash not asked for: ${hash}`)\n //throw Error(`Parent returned payload with hash not asked for: ${hash}`)\n }\n return askedFor\n })\n\n const foundHashes = new Set(foundPairs.map(([hash]) => hash))\n const foundPayloads = foundPairs.map(([, payload]) => payload)\n\n const notfound = hashes.filter((hash) => !foundHashes.has(hash))\n return [foundPayloads, notfound]\n }\n\n protected async getFromParents(hashes: string[]): Promise<[Payload[], string[]]> {\n const parents = Object.values((await this.parents())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: Payload[] = []\n\n //intentionally doing this serially\n while (parentIndex < parents.length && remainingHashes.length > 0) {\n const [found, notfound] = await this.getFromParent(remainingHashes, parents[parentIndex])\n result = [...result, ...found]\n remainingHashes = notfound\n parentIndex++\n }\n return [result, remainingHashes]\n }\n\n protected getHandler(_hashes: string[]): Promisable<Payload[]> {\n throw new Error('Not implemented')\n }\n\n protected async getWithConfig(hashes: string[], config?: InsertConfig): Promise<Payload[]> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const emitEvents = config?.emitEvents ?? true\n const map = await PayloadWrapper.toMap(await this.getHandler(hashes))\n\n // eslint-disable-next-line unicorn/no-array-reduce\n const { foundPayloads, notfoundHashes } = hashes.reduce<{ foundPayloads: Payload[]; notfoundHashes: string[] }>(\n (prev, hash) => {\n const found = map[hash]\n if (found) {\n //TODO: Find a better way to scrub meta data without scrubbing _signatures\n if (found.schema === BoundWitnessSchema) {\n prev.foundPayloads.push({ ...PayloadHasher.hashFields(found), _signatures: (found as BoundWitness)._signatures } as BoundWitness)\n } else {\n prev.foundPayloads.push({ ...PayloadHasher.hashFields(found) } as Payload)\n }\n } else {\n prev.notfoundHashes.push(hash)\n }\n return prev\n },\n { foundPayloads: [], notfoundHashes: [] },\n )\n\n const [parentFoundPayloads] = await this.getFromParents(notfoundHashes)\n\n if (this.storeParentReads) {\n await this.insertWithConfig(parentFoundPayloads)\n }\n return [...foundPayloads, ...parentFoundPayloads]\n }\n\n protected head(): Promisable<Payload | undefined> {\n return this._lastInsertedPayload\n }\n\n protected insertHandler(_payloads: Payload[]): Promise<Payload[]> {\n throw new Error('Not implemented')\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<Payload[]> {\n const emitEvents = config?.emitEvents ?? true\n const writeToParents = config?.writeToParents ?? true\n\n const insertedPayloads = await this.insertHandler(payloads)\n\n if (writeToParents) {\n await this.writeToParents(insertedPayloads)\n }\n if (emitEvents) {\n await this.emit('inserted', { module: this, payloads: insertedPayloads })\n }\n\n return insertedPayloads\n }\n\n protected async parents() {\n this._parents = this._parents ?? {\n commit: await this.resolveArchivists(this.config?.parents?.commit),\n read: await this.resolveArchivists(this.config?.parents?.read),\n write: await this.resolveArchivists(this.config?.parents?.write),\n }\n return assertEx(this._parents)\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrappedQuery = QueryBoundWitnessWrapper.parseQuery<ArchivistQuery>(query, payloads)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n if (this.config.storeQueries) {\n await this.insertHandler([query])\n }\n\n switch (queryPayload.schema) {\n case ArchivistAllQuerySchema: {\n resultPayloads.push(...(await this.allHandler()))\n break\n }\n case ArchivistClearQuerySchema: {\n await this.clearHandler()\n break\n }\n case ArchivistCommitQuerySchema: {\n resultPayloads.push(...(await this.commitHandler()))\n break\n }\n case ArchivistDeleteQuerySchema: {\n const resultPayload: ArchivistDeleteQuery = {\n hashes: [...(await this.deleteWithConfig(queryPayload.hashes))],\n schema: ArchivistDeleteQuerySchema,\n }\n resultPayloads.push(resultPayload)\n break\n }\n case ArchivistGetQuerySchema: {\n if (queryPayload.hashes?.length) {\n resultPayloads.push(...(await this.getWithConfig(queryPayload.hashes)))\n } else {\n const head = await this.head()\n if (head) resultPayloads.push(head)\n }\n break\n }\n case ArchivistInsertQuerySchema: {\n const payloads = await wrappedQuery.getPayloads()\n assertEx(await wrappedQuery.getPayloads(), `Missing payloads: ${JSON.stringify(wrappedQuery.payload(), null, 2)}`)\n const resolvedPayloads = await PayloadWrapper.filterExclude(payloads, await wrappedQuery.hashAsync())\n assertEx(resolvedPayloads.length === payloads.length, `Could not find some passed hashes [${resolvedPayloads.length} != ${payloads.length}]`)\n resultPayloads.push(...(await this.insertWithConfig(payloads)))\n // NOTE: There isn't an exact equivalence between what we get and what we store. Once\n // we move to returning only inserted Payloads(/hash) instead of a BoundWitness, we\n // can grab the actual last one\n this._lastInsertedPayload = resolvedPayloads.at(-1)\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]) {\n return await parent.insert(payloads)\n }\n\n protected async writeToParents(payloads: Payload[]): Promise<Payload[]> {\n const parents = await this.parents()\n return compact(\n await Promise.all(\n Object.values(parents.write ?? {}).map(async (parent) => {\n return parent ? await this.writeToParent(parent, payloads) : undefined\n }),\n ),\n ).flat()\n }\n\n private async resolveArchivists(archivists: string[] = []) {\n const archivistModules = [...(await this.resolve({ address: archivists })), ...(await this.resolve({ name: archivists }))].filter(\n duplicateModules,\n )\n\n assertEx(\n !this.requireAllParents || archivistModules.length === archivists.length,\n `Failed to find some archivists (set allRequired to false if ok): [${archivists.filter((archivist) =>\n archivistModules.map((module) => !(module.address === archivist || module.config.name === archivist)),\n )}]`,\n )\n\n // eslint-disable-next-line unicorn/no-array-reduce\n return archivistModules.reduce<Record<string, ArchivistInstance>>((prev, module) => {\n prev[module.address] = asArchivistInstance(module, () => {\n isArchivistInstance(module, { log: console })\n return `Unable to cast resolved module to an archivist: [${module.address}, ${module.config.name}, ${module.config.schema})}]`\n })\n\n return prev\n }, {})\n }\n}\n"],"mappings":"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","names":["payloads","module"]}
@@ -1,44 +1,27 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- AbstractArchivist: () => AbstractArchivist
24
- });
25
- module.exports = __toCommonJS(src_exports);
26
-
27
1
  // src/AbstractArchivist.ts
28
- var import_assert = require("@xylabs/assert");
29
- var import_lodash = require("@xylabs/lodash");
30
- var import_archivist_model = require("@xyo-network/archivist-model");
31
- var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
32
- var import_boundwitness_model = require("@xyo-network/boundwitness-model");
33
- var import_hash = require("@xyo-network/hash");
34
- var import_module_abstract = require("@xyo-network/module-abstract");
35
- var import_module_model = require("@xyo-network/module-model");
36
- var import_payload_wrapper = require("@xyo-network/payload-wrapper");
37
- var AbstractArchivist = class extends import_module_abstract.AbstractModuleInstance {
2
+ import { assertEx } from "@xylabs/assert";
3
+ import { compact } from "@xylabs/lodash";
4
+ import {
5
+ ArchivistAllQuerySchema,
6
+ ArchivistClearQuerySchema,
7
+ ArchivistCommitQuerySchema,
8
+ ArchivistDeleteQuerySchema,
9
+ ArchivistGetQuerySchema,
10
+ ArchivistInsertQuerySchema,
11
+ asArchivistInstance,
12
+ isArchivistInstance
13
+ } from "@xyo-network/archivist-model";
14
+ import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-builder";
15
+ import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
16
+ import { PayloadHasher } from "@xyo-network/hash";
17
+ import { AbstractModuleInstance } from "@xyo-network/module-abstract";
18
+ import { duplicateModules } from "@xyo-network/module-model";
19
+ import { PayloadWrapper } from "@xyo-network/payload-wrapper";
20
+ var AbstractArchivist = class extends AbstractModuleInstance {
38
21
  _lastInsertedPayload;
39
22
  _parents;
40
23
  get queries() {
41
- return [import_archivist_model.ArchivistGetQuerySchema, ...super.queries];
24
+ return [ArchivistGetQuerySchema, ...super.queries];
42
25
  }
43
26
  get requireAllParents() {
44
27
  return this.config.requireAllParents ?? true;
@@ -100,16 +83,16 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
100
83
  });
101
84
  }
102
85
  allHandler() {
103
- throw Error("Not implemented");
86
+ throw new Error("Not implemented");
104
87
  }
105
88
  clearHandler() {
106
- throw Error("Not implemented");
89
+ throw new Error("Not implemented");
107
90
  }
108
91
  commitHandler() {
109
- throw Error("Not implemented");
92
+ throw new Error("Not implemented");
110
93
  }
111
94
  deleteHandler(_hashes) {
112
- throw Error("Not implemented");
95
+ throw new Error("Not implemented");
113
96
  }
114
97
  async deleteWithConfig(hashes, config) {
115
98
  const emitEvents = (config == null ? void 0 : config.emitEvents) ?? true;
@@ -121,7 +104,7 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
121
104
  }
122
105
  async getFromParent(hashes, archivist) {
123
106
  const foundPairs = (await Promise.all(
124
- (await archivist.get(hashes)).map(async (payload) => [await import_hash.PayloadHasher.hashAsync(payload), payload])
107
+ (await archivist.get(hashes)).map(async (payload) => [await PayloadHasher.hashAsync(payload), payload])
125
108
  )).filter(([hash]) => {
126
109
  const askedFor = hashes.includes(hash);
127
110
  if (!askedFor) {
@@ -129,9 +112,9 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
129
112
  }
130
113
  return askedFor;
131
114
  });
132
- const foundHashes = foundPairs.map(([hash]) => hash);
115
+ const foundHashes = new Set(foundPairs.map(([hash]) => hash));
133
116
  const foundPayloads = foundPairs.map(([, payload]) => payload);
134
- const notfound = hashes.filter((hash) => !foundHashes.includes(hash));
117
+ const notfound = hashes.filter((hash) => !foundHashes.has(hash));
135
118
  return [foundPayloads, notfound];
136
119
  }
137
120
  async getFromParents(hashes) {
@@ -149,19 +132,19 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
149
132
  return [result, remainingHashes];
150
133
  }
151
134
  getHandler(_hashes) {
152
- throw Error("Not implemented");
135
+ throw new Error("Not implemented");
153
136
  }
154
137
  async getWithConfig(hashes, config) {
155
138
  const emitEvents = (config == null ? void 0 : config.emitEvents) ?? true;
156
- const map = await import_payload_wrapper.PayloadWrapper.toMap(await this.getHandler(hashes));
139
+ const map = await PayloadWrapper.toMap(await this.getHandler(hashes));
157
140
  const { foundPayloads, notfoundHashes } = hashes.reduce(
158
141
  (prev, hash) => {
159
142
  const found = map[hash];
160
143
  if (found) {
161
- if (found.schema === import_boundwitness_model.BoundWitnessSchema) {
162
- prev.foundPayloads.push({ ...import_hash.PayloadHasher.hashFields(found), ...{ _signatures: found._signatures } });
144
+ if (found.schema === BoundWitnessSchema) {
145
+ prev.foundPayloads.push({ ...PayloadHasher.hashFields(found), _signatures: found._signatures });
163
146
  } else {
164
- prev.foundPayloads.push({ ...import_hash.PayloadHasher.hashFields(found) });
147
+ prev.foundPayloads.push({ ...PayloadHasher.hashFields(found) });
165
148
  }
166
149
  } else {
167
150
  prev.notfoundHashes.push(hash);
@@ -180,7 +163,7 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
180
163
  return this._lastInsertedPayload;
181
164
  }
182
165
  insertHandler(_payloads) {
183
- throw Error("Not implemented");
166
+ throw new Error("Not implemented");
184
167
  }
185
168
  async insertWithConfig(payloads, config) {
186
169
  const emitEvents = (config == null ? void 0 : config.emitEvents) ?? true;
@@ -201,36 +184,39 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
201
184
  read: await this.resolveArchivists((_d = (_c = this.config) == null ? void 0 : _c.parents) == null ? void 0 : _d.read),
202
185
  write: await this.resolveArchivists((_f = (_e = this.config) == null ? void 0 : _e.parents) == null ? void 0 : _f.write)
203
186
  };
204
- return (0, import_assert.assertEx)(this._parents);
187
+ return assertEx(this._parents);
205
188
  }
206
189
  async queryHandler(query, payloads, queryConfig) {
207
190
  var _a;
208
- const wrappedQuery = import_boundwitness_builder.QueryBoundWitnessWrapper.parseQuery(query, payloads);
191
+ const wrappedQuery = QueryBoundWitnessWrapper.parseQuery(query, payloads);
209
192
  const queryPayload = await wrappedQuery.getQuery();
210
- (0, import_assert.assertEx)(this.queryable(query, payloads, queryConfig));
193
+ assertEx(this.queryable(query, payloads, queryConfig));
211
194
  const resultPayloads = [];
212
195
  if (this.config.storeQueries) {
213
196
  await this.insertHandler([query]);
214
197
  }
215
198
  switch (queryPayload.schema) {
216
- case import_archivist_model.ArchivistAllQuerySchema:
199
+ case ArchivistAllQuerySchema: {
217
200
  resultPayloads.push(...await this.allHandler());
218
201
  break;
219
- case import_archivist_model.ArchivistClearQuerySchema:
202
+ }
203
+ case ArchivistClearQuerySchema: {
220
204
  await this.clearHandler();
221
205
  break;
222
- case import_archivist_model.ArchivistCommitQuerySchema:
206
+ }
207
+ case ArchivistCommitQuerySchema: {
223
208
  resultPayloads.push(...await this.commitHandler());
224
209
  break;
225
- case import_archivist_model.ArchivistDeleteQuerySchema: {
210
+ }
211
+ case ArchivistDeleteQuerySchema: {
226
212
  const resultPayload = {
227
213
  hashes: [...await this.deleteWithConfig(queryPayload.hashes)],
228
- schema: import_archivist_model.ArchivistDeleteQuerySchema
214
+ schema: ArchivistDeleteQuerySchema
229
215
  };
230
216
  resultPayloads.push(resultPayload);
231
217
  break;
232
218
  }
233
- case import_archivist_model.ArchivistGetQuerySchema:
219
+ case ArchivistGetQuerySchema: {
234
220
  if ((_a = queryPayload.hashes) == null ? void 0 : _a.length) {
235
221
  resultPayloads.push(...await this.getWithConfig(queryPayload.hashes));
236
222
  } else {
@@ -239,17 +225,19 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
239
225
  resultPayloads.push(head);
240
226
  }
241
227
  break;
242
- case import_archivist_model.ArchivistInsertQuerySchema: {
228
+ }
229
+ case ArchivistInsertQuerySchema: {
243
230
  const payloads2 = await wrappedQuery.getPayloads();
244
- (0, import_assert.assertEx)(await wrappedQuery.getPayloads(), `Missing payloads: ${JSON.stringify(wrappedQuery.payload(), null, 2)}`);
245
- const resolvedPayloads = await import_payload_wrapper.PayloadWrapper.filterExclude(payloads2, await wrappedQuery.hashAsync());
246
- (0, import_assert.assertEx)(resolvedPayloads.length === payloads2.length, `Could not find some passed hashes [${resolvedPayloads.length} != ${payloads2.length}]`);
231
+ assertEx(await wrappedQuery.getPayloads(), `Missing payloads: ${JSON.stringify(wrappedQuery.payload(), null, 2)}`);
232
+ const resolvedPayloads = await PayloadWrapper.filterExclude(payloads2, await wrappedQuery.hashAsync());
233
+ assertEx(resolvedPayloads.length === payloads2.length, `Could not find some passed hashes [${resolvedPayloads.length} != ${payloads2.length}]`);
247
234
  resultPayloads.push(...await this.insertWithConfig(payloads2));
248
- this._lastInsertedPayload = resolvedPayloads[resolvedPayloads.length - 1];
235
+ this._lastInsertedPayload = resolvedPayloads.at(-1);
249
236
  break;
250
237
  }
251
- default:
238
+ default: {
252
239
  return await super.queryHandler(query, payloads);
240
+ }
253
241
  }
254
242
  return resultPayloads;
255
243
  }
@@ -258,7 +246,7 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
258
246
  }
259
247
  async writeToParents(payloads) {
260
248
  const parents = await this.parents();
261
- return (0, import_lodash.compact)(
249
+ return compact(
262
250
  await Promise.all(
263
251
  Object.values(parents.write ?? {}).map(async (parent) => {
264
252
  return parent ? await this.writeToParent(parent, payloads) : void 0;
@@ -268,25 +256,24 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
268
256
  }
269
257
  async resolveArchivists(archivists = []) {
270
258
  const archivistModules = [...await this.resolve({ address: archivists }), ...await this.resolve({ name: archivists })].filter(
271
- import_module_model.duplicateModules
259
+ duplicateModules
272
260
  );
273
- (0, import_assert.assertEx)(
261
+ assertEx(
274
262
  !this.requireAllParents || archivistModules.length === archivists.length,
275
263
  `Failed to find some archivists (set allRequired to false if ok): [${archivists.filter(
276
- (archivist) => archivistModules.map((module2) => !(module2.address === archivist || module2.config.name === archivist))
264
+ (archivist) => archivistModules.map((module) => !(module.address === archivist || module.config.name === archivist))
277
265
  )}]`
278
266
  );
279
- return archivistModules.reduce((prev, module2) => {
280
- prev[module2.address] = (0, import_archivist_model.asArchivistInstance)(module2, () => {
281
- (0, import_archivist_model.isArchivistInstance)(module2, { log: console });
282
- return `Unable to cast resolved module to an archivist: [${module2.address}, ${module2.config.name}, ${module2.config.schema})}]`;
267
+ return archivistModules.reduce((prev, module) => {
268
+ prev[module.address] = asArchivistInstance(module, () => {
269
+ isArchivistInstance(module, { log: console });
270
+ return `Unable to cast resolved module to an archivist: [${module.address}, ${module.config.name}, ${module.config.schema})}]`;
283
271
  });
284
272
  return prev;
285
273
  }, {});
286
274
  }
287
275
  };
288
- // Annotate the CommonJS export names for ESM import in node:
289
- 0 && (module.exports = {
276
+ export {
290
277
  AbstractArchivist
291
- });
278
+ };
292
279
  //# sourceMappingURL=index.js.map