@xyo-network/archivist-abstract 2.90.15 → 2.90.16

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.
@@ -16,7 +16,7 @@ export interface ArchivistParentInstances {
16
16
  read?: Record<string, ArchivistInstance>;
17
17
  write?: Record<string, ArchivistInstance>;
18
18
  }
19
- export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams> {
19
+ export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams, TEventData, Payload> {
20
20
  private _lastInsertedPayload;
21
21
  private _parents?;
22
22
  get queries(): string[];
@@ -36,17 +36,17 @@ export declare abstract class AbstractArchivist<TParams extends ArchivistParams
36
36
  protected deleteWithConfig(hashes: string[], config?: ActionConfig): Promise<string[]>;
37
37
  protected getFromParent(hashes: string[], archivist: ArchivistInstance): Promise<[WithMeta<Payload>[], string[]]>;
38
38
  protected getFromParents(hashes: string[]): Promise<[WithMeta<Payload>[], string[]]>;
39
- protected getHandler(_hashes: string[]): Promisable<PayloadWithMeta[]>;
40
- protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
39
+ protected getHandler(_hashes: string[]): Promisable<Payload[]>;
40
+ protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
41
41
  protected head(): Promisable<Payload | undefined>;
42
- protected insertHandler(_payloads: Payload[]): Promise<WithMeta<Payload>[]>;
43
- protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<PayloadWithMeta[]>;
44
- protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
45
- protected parents(): Promise<ArchivistParentInstances>;
46
- protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
47
- protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<WithMeta<{
42
+ protected insertHandler(_payloads: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]>;
43
+ protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<WithMeta<{
48
44
  schema: string;
49
45
  } & object>[]>;
46
+ protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
47
+ protected parents(): Promise<ArchivistParentInstances>;
48
+ protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
49
+ protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]>;
50
50
  protected writeToParents(payloads: Payload[]): Promise<PayloadWithMeta[]>;
51
51
  private resolveArchivists;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export interface ArchivistParentInstances {
16
16
  read?: Record<string, ArchivistInstance>;
17
17
  write?: Record<string, ArchivistInstance>;
18
18
  }
19
- export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams> {
19
+ export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams, TEventData, Payload> {
20
20
  private _lastInsertedPayload;
21
21
  private _parents?;
22
22
  get queries(): string[];
@@ -36,17 +36,17 @@ export declare abstract class AbstractArchivist<TParams extends ArchivistParams
36
36
  protected deleteWithConfig(hashes: string[], config?: ActionConfig): Promise<string[]>;
37
37
  protected getFromParent(hashes: string[], archivist: ArchivistInstance): Promise<[WithMeta<Payload>[], string[]]>;
38
38
  protected getFromParents(hashes: string[]): Promise<[WithMeta<Payload>[], string[]]>;
39
- protected getHandler(_hashes: string[]): Promisable<PayloadWithMeta[]>;
40
- protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
39
+ protected getHandler(_hashes: string[]): Promisable<Payload[]>;
40
+ protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
41
41
  protected head(): Promisable<Payload | undefined>;
42
- protected insertHandler(_payloads: Payload[]): Promise<WithMeta<Payload>[]>;
43
- protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<PayloadWithMeta[]>;
44
- protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
45
- protected parents(): Promise<ArchivistParentInstances>;
46
- protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
47
- protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<WithMeta<{
42
+ protected insertHandler(_payloads: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]>;
43
+ protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<WithMeta<{
48
44
  schema: string;
49
45
  } & object>[]>;
46
+ protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
47
+ protected parents(): Promise<ArchivistParentInstances>;
48
+ protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
49
+ protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]>;
50
50
  protected writeToParents(payloads: Payload[]): Promise<PayloadWithMeta[]>;
51
51
  private resolveArchivists;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export interface ArchivistParentInstances {
16
16
  read?: Record<string, ArchivistInstance>;
17
17
  write?: Record<string, ArchivistInstance>;
18
18
  }
19
- export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams> {
19
+ export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams, TEventData, Payload> {
20
20
  private _lastInsertedPayload;
21
21
  private _parents?;
22
22
  get queries(): string[];
@@ -36,17 +36,17 @@ export declare abstract class AbstractArchivist<TParams extends ArchivistParams
36
36
  protected deleteWithConfig(hashes: string[], config?: ActionConfig): Promise<string[]>;
37
37
  protected getFromParent(hashes: string[], archivist: ArchivistInstance): Promise<[WithMeta<Payload>[], string[]]>;
38
38
  protected getFromParents(hashes: string[]): Promise<[WithMeta<Payload>[], string[]]>;
39
- protected getHandler(_hashes: string[]): Promisable<PayloadWithMeta[]>;
40
- protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
39
+ protected getHandler(_hashes: string[]): Promisable<Payload[]>;
40
+ protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
41
41
  protected head(): Promisable<Payload | undefined>;
42
- protected insertHandler(_payloads: Payload[]): Promise<WithMeta<Payload>[]>;
43
- protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<PayloadWithMeta[]>;
44
- protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
45
- protected parents(): Promise<ArchivistParentInstances>;
46
- protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
47
- protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<WithMeta<{
42
+ protected insertHandler(_payloads: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]>;
43
+ protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<WithMeta<{
48
44
  schema: string;
49
45
  } & object>[]>;
46
+ protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
47
+ protected parents(): Promise<ArchivistParentInstances>;
48
+ protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
49
+ protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]>;
50
50
  protected writeToParents(payloads: Payload[]): Promise<PayloadWithMeta[]>;
51
51
  private resolveArchivists;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
@@ -100,7 +100,7 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
100
100
  this._noOverride("insert");
101
101
  return await this.busy(async () => {
102
102
  await this.started("throw");
103
- return await this.insertWithConfig(await Promise.all(payloads.map((payload) => import_payload_builder.PayloadBuilder.build(payload, true))));
103
+ return await this.insertWithConfig(payloads);
104
104
  });
105
105
  }
106
106
  allHandler() {
@@ -176,7 +176,7 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
176
176
  for (const hash of hashes) {
177
177
  const found = map[hash] ?? dataMap[hash];
178
178
  if (found) {
179
- foundPayloads.push(await import_payload_builder.PayloadBuilder.build(found));
179
+ foundPayloads.push(await import_payload_builder.PayloadBuilder.build(found, true));
180
180
  } else {
181
181
  notfoundHashes.push(hash);
182
182
  }
@@ -209,7 +209,7 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
209
209
  async insertWithConfig(payloads, config) {
210
210
  const emitEvents = config?.emitEvents ?? true;
211
211
  const writeToParents = config?.writeToParents ?? true;
212
- const insertedPayloads = await this.insertHandler(payloads);
212
+ const insertedPayloads = await this.insertHandler(await import_payload_builder.PayloadBuilder.build(payloads, true));
213
213
  if (writeToParents) {
214
214
  await this.writeToParents(insertedPayloads);
215
215
  }
@@ -231,6 +231,7 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
231
231
  }
232
232
  async queryHandler(query, payloads, queryConfig) {
233
233
  const wrappedQuery = await import_boundwitness_wrapper.QueryBoundWitnessWrapper.parseQuery(query, payloads);
234
+ const builtQuery = await import_payload_builder.PayloadBuilder.build(query, true);
234
235
  const queryPayload = await wrappedQuery.getQuery();
235
236
  (0, import_assert.assertEx)(await this.queryable(query, payloads, queryConfig));
236
237
  const resultPayloads = [];
@@ -275,7 +276,7 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
275
276
  const result = await super.queryHandler(query, payloads);
276
277
  if (this.config.storeQueries) {
277
278
  await this.insertHandler([
278
- query
279
+ builtQuery
279
280
  ]);
280
281
  }
281
282
  return result;
@@ -283,7 +284,7 @@ var AbstractArchivist = class extends import_module_abstract.AbstractModuleInsta
283
284
  }
284
285
  if (this.config.storeQueries) {
285
286
  await this.insertHandler([
286
- query
287
+ builtQuery
287
288
  ]);
288
289
  }
289
290
  return resultPayloads;
@@ -1 +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 { BoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { duplicateModules, ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta, WithMeta } from '@xyo-network/payload-model'\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 ?? false\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<WithMeta<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<WithMeta<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<WithMeta<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<WithMeta<Payload>[]> {\n this._noOverride('insert')\n return await this.busy(async () => {\n await this.started('throw')\n //make sure all incoming payloads have proper $hash and $meta\n return await this.insertWithConfig(await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload, true))))\n })\n }\n\n protected allHandler(): PromisableArray<WithMeta<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<WithMeta<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<[WithMeta<Payload>[], string[]]> {\n const foundPairs = (await PayloadBuilder.dataHashPairs(await archivist.get(hashes))).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<[WithMeta<Payload>[], string[]]> {\n const parents = Object.values((await this.parents())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithMeta<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<PayloadWithMeta[]> {\n throw new Error('Not implemented')\n }\n\n protected async getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const emitEvents = config?.emitEvents ?? true\n const gotten = await this.getHandler(hashes)\n const map = await PayloadBuilder.toHashMap(gotten)\n const dataMap = await PayloadBuilder.toDataHashMap(gotten)\n\n const foundPayloads: PayloadWithMeta[] = []\n const notfoundHashes: string[] = []\n for (const hash of hashes) {\n const found = map[hash] ?? dataMap[hash]\n if (found) {\n foundPayloads.push((await PayloadBuilder.build(found)) as PayloadWithMeta)\n } else {\n notfoundHashes.push(hash)\n }\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<WithMeta<Payload>[]> {\n throw new Error('Not implemented')\n }\n\n protected async insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]) {\n assertEx(payloads, () => `Missing payloads: ${JSON.stringify(query.payload, null, 2)}`)\n const resolvedPayloads = await PayloadBuilder.filterIncludeByDataHash(payloads, query.payloadHashes)\n assertEx(\n resolvedPayloads.length === query.payloadHashes.length,\n () => `Could not find some passed hashes [${resolvedPayloads.length} != ${query.payloadHashes.length}]`,\n )\n const queryPayload = await query.getQuery()\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(resolvedPayloads, await PayloadBuilder.dataHash(queryPayload))\n const result = await this.insertWithConfig(payloadsWithoutQuery)\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 return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]> {\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 = await QueryBoundWitnessWrapper.parseQuery<ArchivistQuery>(query, payloads)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\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 resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, payloads)))\n break\n }\n default: {\n const result = await super.queryHandler(query, payloads)\n if (this.config.storeQueries) {\n await this.insertHandler([query])\n }\n return result\n }\n }\n if (this.config.storeQueries) {\n await this.insertHandler([query])\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<PayloadWithMeta[]> {\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 () =>\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":["AbstractArchivist","AbstractModuleInstance","_lastInsertedPayload","_parents","queries","ArchivistGetQuerySchema","requireAllParents","config","_queryAccountPaths","storeParentReads","all","_noOverride","busy","started","allHandler","clear","clearHandler","commit","commitHandler","delete","hashes","deleteWithConfig","get","getWithConfig","insert","payloads","insertWithConfig","Promise","map","payload","PayloadBuilder","build","Error","deleteHandler","_hashes","emitEvents","deletedHashes","emit","module","getFromParent","archivist","foundPairs","dataHashPairs","filter","hash","askedFor","includes","console","warn","foundHashes","Set","foundPayloads","notfound","has","getFromParents","parents","Object","values","read","remainingHashes","parentIndex","result","length","found","getHandler","gotten","toHashMap","dataMap","toDataHashMap","notfoundHashes","push","parentFoundPayloads","head","insertHandler","_payloads","insertQueryHandler","query","assertEx","JSON","stringify","resolvedPayloads","filterIncludeByDataHash","payloadHashes","queryPayload","getQuery","payloadsWithoutQuery","filterExclude","dataHash","at","writeToParents","insertedPayloads","resolveArchivists","write","queryHandler","queryConfig","wrappedQuery","QueryBoundWitnessWrapper","parseQuery","queryable","resultPayloads","schema","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","resultPayload","ArchivistInsertQuerySchema","storeQueries","writeToParent","parent","compact","undefined","flat","archivists","archivistModules","resolve","address","name","duplicateModules","reduce","prev","asArchivistInstance","isArchivistInstance","log"]}
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 { BoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { duplicateModules, ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta, WithMeta } from '@xyo-network/payload-model'\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, TEventData, Payload>\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 ?? false\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<WithMeta<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<WithMeta<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<WithMeta<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<WithMeta<Payload>[]> {\n this._noOverride('insert')\n return await this.busy(async () => {\n await this.started('throw')\n //make sure all incoming payloads have proper $hash and $meta\n return await this.insertWithConfig(payloads)\n })\n }\n\n protected allHandler(): PromisableArray<WithMeta<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<WithMeta<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<[WithMeta<Payload>[], string[]]> {\n const foundPairs = (await PayloadBuilder.dataHashPairs((await archivist.get(hashes)) as WithMeta<Payload>[])).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<[WithMeta<Payload>[], string[]]> {\n const parents = Object.values((await this.parents())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithMeta<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<WithMeta<Payload>[]> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const emitEvents = config?.emitEvents ?? true\n const gotten = await this.getHandler(hashes)\n const map = await PayloadBuilder.toHashMap(gotten)\n const dataMap = await PayloadBuilder.toDataHashMap(gotten)\n\n const foundPayloads: WithMeta<Payload>[] = []\n const notfoundHashes: string[] = []\n for (const hash of hashes) {\n const found = map[hash] ?? dataMap[hash]\n if (found) {\n foundPayloads.push(await PayloadBuilder.build<Payload>(found, true))\n } else {\n notfoundHashes.push(hash)\n }\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: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]> {\n throw new Error('Not implemented')\n }\n\n protected async insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]) {\n assertEx(payloads, () => `Missing payloads: ${JSON.stringify(query.payload, null, 2)}`)\n const resolvedPayloads = await PayloadBuilder.filterIncludeByDataHash(payloads, query.payloadHashes)\n assertEx(\n resolvedPayloads.length === query.payloadHashes.length,\n () => `Could not find some passed hashes [${resolvedPayloads.length} != ${query.payloadHashes.length}]`,\n )\n const queryPayload = await query.getQuery()\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(resolvedPayloads, await PayloadBuilder.dataHash(queryPayload))\n const result = await this.insertWithConfig(payloadsWithoutQuery)\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 return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]> {\n const emitEvents = config?.emitEvents ?? true\n const writeToParents = config?.writeToParents ?? true\n\n const insertedPayloads = await this.insertHandler(await PayloadBuilder.build(payloads, true))\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 = await QueryBoundWitnessWrapper.parseQuery<ArchivistQuery>(query, payloads)\n const builtQuery = await PayloadBuilder.build(query, true)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\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 resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, payloads)))\n break\n }\n default: {\n const result = await super.queryHandler(query, payloads)\n if (this.config.storeQueries) {\n await this.insertHandler([builtQuery])\n }\n return result\n }\n }\n if (this.config.storeQueries) {\n await this.insertHandler([builtQuery])\n }\n return resultPayloads\n }\n\n protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]> {\n return await parent.insert(payloads)\n }\n\n protected async writeToParents(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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 () =>\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":["AbstractArchivist","AbstractModuleInstance","_lastInsertedPayload","_parents","queries","ArchivistGetQuerySchema","requireAllParents","config","_queryAccountPaths","storeParentReads","all","_noOverride","busy","started","allHandler","clear","clearHandler","commit","commitHandler","delete","hashes","deleteWithConfig","get","getWithConfig","insert","payloads","insertWithConfig","Error","deleteHandler","_hashes","emitEvents","deletedHashes","emit","module","getFromParent","archivist","foundPairs","PayloadBuilder","dataHashPairs","filter","hash","askedFor","includes","console","warn","foundHashes","Set","map","foundPayloads","payload","notfound","has","getFromParents","parents","Object","values","read","remainingHashes","parentIndex","result","length","found","getHandler","gotten","toHashMap","dataMap","toDataHashMap","notfoundHashes","push","build","parentFoundPayloads","head","insertHandler","_payloads","insertQueryHandler","query","assertEx","JSON","stringify","resolvedPayloads","filterIncludeByDataHash","payloadHashes","queryPayload","getQuery","payloadsWithoutQuery","filterExclude","dataHash","at","writeToParents","insertedPayloads","resolveArchivists","write","queryHandler","queryConfig","wrappedQuery","QueryBoundWitnessWrapper","parseQuery","builtQuery","queryable","resultPayloads","schema","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","resultPayload","ArchivistInsertQuerySchema","storeQueries","writeToParent","parent","compact","Promise","undefined","flat","archivists","archivistModules","resolve","address","name","duplicateModules","reduce","prev","asArchivistInstance","isArchivistInstance","log"]}
@@ -76,7 +76,7 @@ var AbstractArchivist = class extends AbstractModuleInstance {
76
76
  this._noOverride("insert");
77
77
  return await this.busy(async () => {
78
78
  await this.started("throw");
79
- return await this.insertWithConfig(await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload, true))));
79
+ return await this.insertWithConfig(payloads);
80
80
  });
81
81
  }
82
82
  allHandler() {
@@ -152,7 +152,7 @@ var AbstractArchivist = class extends AbstractModuleInstance {
152
152
  for (const hash of hashes) {
153
153
  const found = map[hash] ?? dataMap[hash];
154
154
  if (found) {
155
- foundPayloads.push(await PayloadBuilder.build(found));
155
+ foundPayloads.push(await PayloadBuilder.build(found, true));
156
156
  } else {
157
157
  notfoundHashes.push(hash);
158
158
  }
@@ -185,7 +185,7 @@ var AbstractArchivist = class extends AbstractModuleInstance {
185
185
  async insertWithConfig(payloads, config) {
186
186
  const emitEvents = config?.emitEvents ?? true;
187
187
  const writeToParents = config?.writeToParents ?? true;
188
- const insertedPayloads = await this.insertHandler(payloads);
188
+ const insertedPayloads = await this.insertHandler(await PayloadBuilder.build(payloads, true));
189
189
  if (writeToParents) {
190
190
  await this.writeToParents(insertedPayloads);
191
191
  }
@@ -207,6 +207,7 @@ var AbstractArchivist = class extends AbstractModuleInstance {
207
207
  }
208
208
  async queryHandler(query, payloads, queryConfig) {
209
209
  const wrappedQuery = await QueryBoundWitnessWrapper.parseQuery(query, payloads);
210
+ const builtQuery = await PayloadBuilder.build(query, true);
210
211
  const queryPayload = await wrappedQuery.getQuery();
211
212
  assertEx(await this.queryable(query, payloads, queryConfig));
212
213
  const resultPayloads = [];
@@ -251,7 +252,7 @@ var AbstractArchivist = class extends AbstractModuleInstance {
251
252
  const result = await super.queryHandler(query, payloads);
252
253
  if (this.config.storeQueries) {
253
254
  await this.insertHandler([
254
- query
255
+ builtQuery
255
256
  ]);
256
257
  }
257
258
  return result;
@@ -259,7 +260,7 @@ var AbstractArchivist = class extends AbstractModuleInstance {
259
260
  }
260
261
  if (this.config.storeQueries) {
261
262
  await this.insertHandler([
262
- query
263
+ builtQuery
263
264
  ]);
264
265
  }
265
266
  return resultPayloads;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AbstractArchivist.ts"],"sourcesContent":["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 { BoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { duplicateModules, ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta, WithMeta } from '@xyo-network/payload-model'\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 ?? false\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<WithMeta<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<WithMeta<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<WithMeta<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<WithMeta<Payload>[]> {\n this._noOverride('insert')\n return await this.busy(async () => {\n await this.started('throw')\n //make sure all incoming payloads have proper $hash and $meta\n return await this.insertWithConfig(await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload, true))))\n })\n }\n\n protected allHandler(): PromisableArray<WithMeta<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<WithMeta<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<[WithMeta<Payload>[], string[]]> {\n const foundPairs = (await PayloadBuilder.dataHashPairs(await archivist.get(hashes))).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<[WithMeta<Payload>[], string[]]> {\n const parents = Object.values((await this.parents())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithMeta<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<PayloadWithMeta[]> {\n throw new Error('Not implemented')\n }\n\n protected async getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const emitEvents = config?.emitEvents ?? true\n const gotten = await this.getHandler(hashes)\n const map = await PayloadBuilder.toHashMap(gotten)\n const dataMap = await PayloadBuilder.toDataHashMap(gotten)\n\n const foundPayloads: PayloadWithMeta[] = []\n const notfoundHashes: string[] = []\n for (const hash of hashes) {\n const found = map[hash] ?? dataMap[hash]\n if (found) {\n foundPayloads.push((await PayloadBuilder.build(found)) as PayloadWithMeta)\n } else {\n notfoundHashes.push(hash)\n }\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<WithMeta<Payload>[]> {\n throw new Error('Not implemented')\n }\n\n protected async insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]) {\n assertEx(payloads, () => `Missing payloads: ${JSON.stringify(query.payload, null, 2)}`)\n const resolvedPayloads = await PayloadBuilder.filterIncludeByDataHash(payloads, query.payloadHashes)\n assertEx(\n resolvedPayloads.length === query.payloadHashes.length,\n () => `Could not find some passed hashes [${resolvedPayloads.length} != ${query.payloadHashes.length}]`,\n )\n const queryPayload = await query.getQuery()\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(resolvedPayloads, await PayloadBuilder.dataHash(queryPayload))\n const result = await this.insertWithConfig(payloadsWithoutQuery)\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 return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]> {\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 = await QueryBoundWitnessWrapper.parseQuery<ArchivistQuery>(query, payloads)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\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 resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, payloads)))\n break\n }\n default: {\n const result = await super.queryHandler(query, payloads)\n if (this.config.storeQueries) {\n await this.insertHandler([query])\n }\n return result\n }\n }\n if (this.config.storeQueries) {\n await this.insertHandler([query])\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<PayloadWithMeta[]> {\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 () =>\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":["assertEx","compact","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","ArchivistGetQuerySchema","ArchivistInsertQuerySchema","asArchivistInstance","isArchivistInstance","QueryBoundWitnessWrapper","AbstractModuleInstance","duplicateModules","PayloadBuilder","AbstractArchivist","AbstractModuleInstance","_lastInsertedPayload","_parents","queries","ArchivistGetQuerySchema","requireAllParents","config","_queryAccountPaths","storeParentReads","all","_noOverride","busy","started","allHandler","clear","clearHandler","commit","commitHandler","delete","hashes","deleteWithConfig","get","getWithConfig","insert","payloads","insertWithConfig","Promise","map","payload","PayloadBuilder","build","Error","deleteHandler","_hashes","emitEvents","deletedHashes","emit","module","getFromParent","archivist","foundPairs","dataHashPairs","filter","hash","askedFor","includes","console","warn","foundHashes","Set","foundPayloads","notfound","has","getFromParents","parents","Object","values","read","remainingHashes","parentIndex","result","length","found","getHandler","gotten","toHashMap","dataMap","toDataHashMap","notfoundHashes","push","parentFoundPayloads","head","insertHandler","_payloads","insertQueryHandler","query","assertEx","JSON","stringify","resolvedPayloads","filterIncludeByDataHash","payloadHashes","queryPayload","getQuery","payloadsWithoutQuery","filterExclude","dataHash","at","writeToParents","insertedPayloads","resolveArchivists","write","queryHandler","queryConfig","wrappedQuery","QueryBoundWitnessWrapper","parseQuery","queryable","resultPayloads","schema","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","resultPayload","ArchivistInsertQuerySchema","storeQueries","writeToParent","parent","compact","undefined","flat","archivists","archivistModules","resolve","address","name","duplicateModules","reduce","prev","asArchivistInstance","isArchivistInstance","log"]}
1
+ {"version":3,"sources":["../../src/AbstractArchivist.ts"],"sourcesContent":["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 { BoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { duplicateModules, ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta, WithMeta } from '@xyo-network/payload-model'\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, TEventData, Payload>\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 ?? false\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<WithMeta<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<WithMeta<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<WithMeta<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<WithMeta<Payload>[]> {\n this._noOverride('insert')\n return await this.busy(async () => {\n await this.started('throw')\n //make sure all incoming payloads have proper $hash and $meta\n return await this.insertWithConfig(payloads)\n })\n }\n\n protected allHandler(): PromisableArray<WithMeta<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<WithMeta<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<[WithMeta<Payload>[], string[]]> {\n const foundPairs = (await PayloadBuilder.dataHashPairs((await archivist.get(hashes)) as WithMeta<Payload>[])).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<[WithMeta<Payload>[], string[]]> {\n const parents = Object.values((await this.parents())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithMeta<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<WithMeta<Payload>[]> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const emitEvents = config?.emitEvents ?? true\n const gotten = await this.getHandler(hashes)\n const map = await PayloadBuilder.toHashMap(gotten)\n const dataMap = await PayloadBuilder.toDataHashMap(gotten)\n\n const foundPayloads: WithMeta<Payload>[] = []\n const notfoundHashes: string[] = []\n for (const hash of hashes) {\n const found = map[hash] ?? dataMap[hash]\n if (found) {\n foundPayloads.push(await PayloadBuilder.build<Payload>(found, true))\n } else {\n notfoundHashes.push(hash)\n }\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: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]> {\n throw new Error('Not implemented')\n }\n\n protected async insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]) {\n assertEx(payloads, () => `Missing payloads: ${JSON.stringify(query.payload, null, 2)}`)\n const resolvedPayloads = await PayloadBuilder.filterIncludeByDataHash(payloads, query.payloadHashes)\n assertEx(\n resolvedPayloads.length === query.payloadHashes.length,\n () => `Could not find some passed hashes [${resolvedPayloads.length} != ${query.payloadHashes.length}]`,\n )\n const queryPayload = await query.getQuery()\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(resolvedPayloads, await PayloadBuilder.dataHash(queryPayload))\n const result = await this.insertWithConfig(payloadsWithoutQuery)\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 return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]> {\n const emitEvents = config?.emitEvents ?? true\n const writeToParents = config?.writeToParents ?? true\n\n const insertedPayloads = await this.insertHandler(await PayloadBuilder.build(payloads, true))\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 = await QueryBoundWitnessWrapper.parseQuery<ArchivistQuery>(query, payloads)\n const builtQuery = await PayloadBuilder.build(query, true)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\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 resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, payloads)))\n break\n }\n default: {\n const result = await super.queryHandler(query, payloads)\n if (this.config.storeQueries) {\n await this.insertHandler([builtQuery])\n }\n return result\n }\n }\n if (this.config.storeQueries) {\n await this.insertHandler([builtQuery])\n }\n return resultPayloads\n }\n\n protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]> {\n return await parent.insert(payloads)\n }\n\n protected async writeToParents(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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 () =>\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":["assertEx","compact","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","ArchivistGetQuerySchema","ArchivistInsertQuerySchema","asArchivistInstance","isArchivistInstance","QueryBoundWitnessWrapper","AbstractModuleInstance","duplicateModules","PayloadBuilder","AbstractArchivist","AbstractModuleInstance","_lastInsertedPayload","_parents","queries","ArchivistGetQuerySchema","requireAllParents","config","_queryAccountPaths","storeParentReads","all","_noOverride","busy","started","allHandler","clear","clearHandler","commit","commitHandler","delete","hashes","deleteWithConfig","get","getWithConfig","insert","payloads","insertWithConfig","Error","deleteHandler","_hashes","emitEvents","deletedHashes","emit","module","getFromParent","archivist","foundPairs","PayloadBuilder","dataHashPairs","filter","hash","askedFor","includes","console","warn","foundHashes","Set","map","foundPayloads","payload","notfound","has","getFromParents","parents","Object","values","read","remainingHashes","parentIndex","result","length","found","getHandler","gotten","toHashMap","dataMap","toDataHashMap","notfoundHashes","push","build","parentFoundPayloads","head","insertHandler","_payloads","insertQueryHandler","query","assertEx","JSON","stringify","resolvedPayloads","filterIncludeByDataHash","payloadHashes","queryPayload","getQuery","payloadsWithoutQuery","filterExclude","dataHash","at","writeToParents","insertedPayloads","resolveArchivists","write","queryHandler","queryConfig","wrappedQuery","QueryBoundWitnessWrapper","parseQuery","builtQuery","queryable","resultPayloads","schema","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","resultPayload","ArchivistInsertQuerySchema","storeQueries","writeToParent","parent","compact","Promise","undefined","flat","archivists","archivistModules","resolve","address","name","duplicateModules","reduce","prev","asArchivistInstance","isArchivistInstance","log"]}
@@ -16,7 +16,7 @@ export interface ArchivistParentInstances {
16
16
  read?: Record<string, ArchivistInstance>;
17
17
  write?: Record<string, ArchivistInstance>;
18
18
  }
19
- export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams> {
19
+ export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams, TEventData, Payload> {
20
20
  private _lastInsertedPayload;
21
21
  private _parents?;
22
22
  get queries(): string[];
@@ -36,17 +36,17 @@ export declare abstract class AbstractArchivist<TParams extends ArchivistParams
36
36
  protected deleteWithConfig(hashes: string[], config?: ActionConfig): Promise<string[]>;
37
37
  protected getFromParent(hashes: string[], archivist: ArchivistInstance): Promise<[WithMeta<Payload>[], string[]]>;
38
38
  protected getFromParents(hashes: string[]): Promise<[WithMeta<Payload>[], string[]]>;
39
- protected getHandler(_hashes: string[]): Promisable<PayloadWithMeta[]>;
40
- protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
39
+ protected getHandler(_hashes: string[]): Promisable<Payload[]>;
40
+ protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
41
41
  protected head(): Promisable<Payload | undefined>;
42
- protected insertHandler(_payloads: Payload[]): Promise<WithMeta<Payload>[]>;
43
- protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<PayloadWithMeta[]>;
44
- protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
45
- protected parents(): Promise<ArchivistParentInstances>;
46
- protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
47
- protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<WithMeta<{
42
+ protected insertHandler(_payloads: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]>;
43
+ protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<WithMeta<{
48
44
  schema: string;
49
45
  } & object>[]>;
46
+ protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
47
+ protected parents(): Promise<ArchivistParentInstances>;
48
+ protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
49
+ protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]>;
50
50
  protected writeToParents(payloads: Payload[]): Promise<PayloadWithMeta[]>;
51
51
  private resolveArchivists;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export interface ArchivistParentInstances {
16
16
  read?: Record<string, ArchivistInstance>;
17
17
  write?: Record<string, ArchivistInstance>;
18
18
  }
19
- export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams> {
19
+ export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams, TEventData, Payload> {
20
20
  private _lastInsertedPayload;
21
21
  private _parents?;
22
22
  get queries(): string[];
@@ -36,17 +36,17 @@ export declare abstract class AbstractArchivist<TParams extends ArchivistParams
36
36
  protected deleteWithConfig(hashes: string[], config?: ActionConfig): Promise<string[]>;
37
37
  protected getFromParent(hashes: string[], archivist: ArchivistInstance): Promise<[WithMeta<Payload>[], string[]]>;
38
38
  protected getFromParents(hashes: string[]): Promise<[WithMeta<Payload>[], string[]]>;
39
- protected getHandler(_hashes: string[]): Promisable<PayloadWithMeta[]>;
40
- protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
39
+ protected getHandler(_hashes: string[]): Promisable<Payload[]>;
40
+ protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
41
41
  protected head(): Promisable<Payload | undefined>;
42
- protected insertHandler(_payloads: Payload[]): Promise<WithMeta<Payload>[]>;
43
- protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<PayloadWithMeta[]>;
44
- protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
45
- protected parents(): Promise<ArchivistParentInstances>;
46
- protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
47
- protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<WithMeta<{
42
+ protected insertHandler(_payloads: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]>;
43
+ protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<WithMeta<{
48
44
  schema: string;
49
45
  } & object>[]>;
46
+ protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
47
+ protected parents(): Promise<ArchivistParentInstances>;
48
+ protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
49
+ protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]>;
50
50
  protected writeToParents(payloads: Payload[]): Promise<PayloadWithMeta[]>;
51
51
  private resolveArchivists;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export interface ArchivistParentInstances {
16
16
  read?: Record<string, ArchivistInstance>;
17
17
  write?: Record<string, ArchivistInstance>;
18
18
  }
19
- export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams> {
19
+ export declare abstract class AbstractArchivist<TParams extends ArchivistParams = ArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements ArchivistInstance<TParams, TEventData, Payload> {
20
20
  private _lastInsertedPayload;
21
21
  private _parents?;
22
22
  get queries(): string[];
@@ -36,17 +36,17 @@ export declare abstract class AbstractArchivist<TParams extends ArchivistParams
36
36
  protected deleteWithConfig(hashes: string[], config?: ActionConfig): Promise<string[]>;
37
37
  protected getFromParent(hashes: string[], archivist: ArchivistInstance): Promise<[WithMeta<Payload>[], string[]]>;
38
38
  protected getFromParents(hashes: string[]): Promise<[WithMeta<Payload>[], string[]]>;
39
- protected getHandler(_hashes: string[]): Promisable<PayloadWithMeta[]>;
40
- protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
39
+ protected getHandler(_hashes: string[]): Promisable<Payload[]>;
40
+ protected getWithConfig(hashes: string[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
41
41
  protected head(): Promisable<Payload | undefined>;
42
- protected insertHandler(_payloads: Payload[]): Promise<WithMeta<Payload>[]>;
43
- protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<PayloadWithMeta[]>;
44
- protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]>;
45
- protected parents(): Promise<ArchivistParentInstances>;
46
- protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
47
- protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<WithMeta<{
42
+ protected insertHandler(_payloads: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]>;
43
+ protected insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<WithMeta<{
48
44
  schema: string;
49
45
  } & object>[]>;
46
+ protected insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]>;
47
+ protected parents(): Promise<ArchivistParentInstances>;
48
+ protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
49
+ protected writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]>;
50
50
  protected writeToParents(payloads: Payload[]): Promise<PayloadWithMeta[]>;
51
51
  private resolveArchivists;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractArchivist.d.ts","sourceRoot":"","sources":["../../src/AbstractArchivist.ts"],"names":[],"mappings":"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"}
@@ -98,7 +98,7 @@ var _AbstractArchivist = class _AbstractArchivist extends import_module_abstract
98
98
  this._noOverride("insert");
99
99
  return await this.busy(async () => {
100
100
  await this.started("throw");
101
- return await this.insertWithConfig(await Promise.all(payloads.map((payload) => import_payload_builder.PayloadBuilder.build(payload, true))));
101
+ return await this.insertWithConfig(payloads);
102
102
  });
103
103
  }
104
104
  allHandler() {
@@ -175,7 +175,7 @@ var _AbstractArchivist = class _AbstractArchivist extends import_module_abstract
175
175
  for (const hash of hashes) {
176
176
  const found = map[hash] ?? dataMap[hash];
177
177
  if (found) {
178
- foundPayloads.push(await import_payload_builder.PayloadBuilder.build(found));
178
+ foundPayloads.push(await import_payload_builder.PayloadBuilder.build(found, true));
179
179
  } else {
180
180
  notfoundHashes.push(hash);
181
181
  }
@@ -208,7 +208,7 @@ var _AbstractArchivist = class _AbstractArchivist extends import_module_abstract
208
208
  async insertWithConfig(payloads, config) {
209
209
  const emitEvents = (config == null ? void 0 : config.emitEvents) ?? true;
210
210
  const writeToParents = (config == null ? void 0 : config.writeToParents) ?? true;
211
- const insertedPayloads = await this.insertHandler(payloads);
211
+ const insertedPayloads = await this.insertHandler(await import_payload_builder.PayloadBuilder.build(payloads, true));
212
212
  if (writeToParents) {
213
213
  await this.writeToParents(insertedPayloads);
214
214
  }
@@ -232,6 +232,7 @@ var _AbstractArchivist = class _AbstractArchivist extends import_module_abstract
232
232
  async queryHandler(query, payloads, queryConfig) {
233
233
  var _a;
234
234
  const wrappedQuery = await import_boundwitness_wrapper.QueryBoundWitnessWrapper.parseQuery(query, payloads);
235
+ const builtQuery = await import_payload_builder.PayloadBuilder.build(query, true);
235
236
  const queryPayload = await wrappedQuery.getQuery();
236
237
  (0, import_assert.assertEx)(await this.queryable(query, payloads, queryConfig));
237
238
  const resultPayloads = [];
@@ -276,7 +277,7 @@ var _AbstractArchivist = class _AbstractArchivist extends import_module_abstract
276
277
  const result = await super.queryHandler(query, payloads);
277
278
  if (this.config.storeQueries) {
278
279
  await this.insertHandler([
279
- query
280
+ builtQuery
280
281
  ]);
281
282
  }
282
283
  return result;
@@ -284,7 +285,7 @@ var _AbstractArchivist = class _AbstractArchivist extends import_module_abstract
284
285
  }
285
286
  if (this.config.storeQueries) {
286
287
  await this.insertHandler([
287
- query
288
+ builtQuery
288
289
  ]);
289
290
  }
290
291
  return resultPayloads;
@@ -1 +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 { BoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { duplicateModules, ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta, WithMeta } from '@xyo-network/payload-model'\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 ?? false\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<WithMeta<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<WithMeta<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<WithMeta<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<WithMeta<Payload>[]> {\n this._noOverride('insert')\n return await this.busy(async () => {\n await this.started('throw')\n //make sure all incoming payloads have proper $hash and $meta\n return await this.insertWithConfig(await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload, true))))\n })\n }\n\n protected allHandler(): PromisableArray<WithMeta<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<WithMeta<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<[WithMeta<Payload>[], string[]]> {\n const foundPairs = (await PayloadBuilder.dataHashPairs(await archivist.get(hashes))).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<[WithMeta<Payload>[], string[]]> {\n const parents = Object.values((await this.parents())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithMeta<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<PayloadWithMeta[]> {\n throw new Error('Not implemented')\n }\n\n protected async getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const emitEvents = config?.emitEvents ?? true\n const gotten = await this.getHandler(hashes)\n const map = await PayloadBuilder.toHashMap(gotten)\n const dataMap = await PayloadBuilder.toDataHashMap(gotten)\n\n const foundPayloads: PayloadWithMeta[] = []\n const notfoundHashes: string[] = []\n for (const hash of hashes) {\n const found = map[hash] ?? dataMap[hash]\n if (found) {\n foundPayloads.push((await PayloadBuilder.build(found)) as PayloadWithMeta)\n } else {\n notfoundHashes.push(hash)\n }\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<WithMeta<Payload>[]> {\n throw new Error('Not implemented')\n }\n\n protected async insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]) {\n assertEx(payloads, () => `Missing payloads: ${JSON.stringify(query.payload, null, 2)}`)\n const resolvedPayloads = await PayloadBuilder.filterIncludeByDataHash(payloads, query.payloadHashes)\n assertEx(\n resolvedPayloads.length === query.payloadHashes.length,\n () => `Could not find some passed hashes [${resolvedPayloads.length} != ${query.payloadHashes.length}]`,\n )\n const queryPayload = await query.getQuery()\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(resolvedPayloads, await PayloadBuilder.dataHash(queryPayload))\n const result = await this.insertWithConfig(payloadsWithoutQuery)\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 return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]> {\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 = await QueryBoundWitnessWrapper.parseQuery<ArchivistQuery>(query, payloads)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\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 resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, payloads)))\n break\n }\n default: {\n const result = await super.queryHandler(query, payloads)\n if (this.config.storeQueries) {\n await this.insertHandler([query])\n }\n return result\n }\n }\n if (this.config.storeQueries) {\n await this.insertHandler([query])\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<PayloadWithMeta[]> {\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 () =>\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":["AbstractArchivist","AbstractModuleInstance","_lastInsertedPayload","_parents","queries","ArchivistGetQuerySchema","requireAllParents","config","_queryAccountPaths","storeParentReads","all","_noOverride","busy","started","allHandler","clear","clearHandler","commit","commitHandler","delete","hashes","deleteWithConfig","get","getWithConfig","insert","payloads","insertWithConfig","Promise","map","payload","PayloadBuilder","build","Error","deleteHandler","_hashes","emitEvents","deletedHashes","emit","module","getFromParent","archivist","foundPairs","dataHashPairs","filter","hash","askedFor","includes","console","warn","foundHashes","Set","foundPayloads","notfound","has","getFromParents","parents","Object","values","read","remainingHashes","parentIndex","result","length","found","getHandler","gotten","toHashMap","dataMap","toDataHashMap","notfoundHashes","push","parentFoundPayloads","head","insertHandler","_payloads","insertQueryHandler","query","assertEx","JSON","stringify","resolvedPayloads","filterIncludeByDataHash","payloadHashes","queryPayload","getQuery","payloadsWithoutQuery","filterExclude","dataHash","at","writeToParents","insertedPayloads","resolveArchivists","write","queryHandler","queryConfig","wrappedQuery","QueryBoundWitnessWrapper","parseQuery","queryable","resultPayloads","schema","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","resultPayload","ArchivistInsertQuerySchema","storeQueries","writeToParent","parent","compact","undefined","flat","archivists","archivistModules","resolve","address","name","duplicateModules","reduce","prev","asArchivistInstance","isArchivistInstance","log"]}
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 { BoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { duplicateModules, ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta, WithMeta } from '@xyo-network/payload-model'\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, TEventData, Payload>\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 ?? false\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<WithMeta<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<WithMeta<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<WithMeta<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<WithMeta<Payload>[]> {\n this._noOverride('insert')\n return await this.busy(async () => {\n await this.started('throw')\n //make sure all incoming payloads have proper $hash and $meta\n return await this.insertWithConfig(payloads)\n })\n }\n\n protected allHandler(): PromisableArray<WithMeta<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<WithMeta<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<[WithMeta<Payload>[], string[]]> {\n const foundPairs = (await PayloadBuilder.dataHashPairs((await archivist.get(hashes)) as WithMeta<Payload>[])).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<[WithMeta<Payload>[], string[]]> {\n const parents = Object.values((await this.parents())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithMeta<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<WithMeta<Payload>[]> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const emitEvents = config?.emitEvents ?? true\n const gotten = await this.getHandler(hashes)\n const map = await PayloadBuilder.toHashMap(gotten)\n const dataMap = await PayloadBuilder.toDataHashMap(gotten)\n\n const foundPayloads: WithMeta<Payload>[] = []\n const notfoundHashes: string[] = []\n for (const hash of hashes) {\n const found = map[hash] ?? dataMap[hash]\n if (found) {\n foundPayloads.push(await PayloadBuilder.build<Payload>(found, true))\n } else {\n notfoundHashes.push(hash)\n }\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: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]> {\n throw new Error('Not implemented')\n }\n\n protected async insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]) {\n assertEx(payloads, () => `Missing payloads: ${JSON.stringify(query.payload, null, 2)}`)\n const resolvedPayloads = await PayloadBuilder.filterIncludeByDataHash(payloads, query.payloadHashes)\n assertEx(\n resolvedPayloads.length === query.payloadHashes.length,\n () => `Could not find some passed hashes [${resolvedPayloads.length} != ${query.payloadHashes.length}]`,\n )\n const queryPayload = await query.getQuery()\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(resolvedPayloads, await PayloadBuilder.dataHash(queryPayload))\n const result = await this.insertWithConfig(payloadsWithoutQuery)\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 return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]> {\n const emitEvents = config?.emitEvents ?? true\n const writeToParents = config?.writeToParents ?? true\n\n const insertedPayloads = await this.insertHandler(await PayloadBuilder.build(payloads, true))\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 = await QueryBoundWitnessWrapper.parseQuery<ArchivistQuery>(query, payloads)\n const builtQuery = await PayloadBuilder.build(query, true)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\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 resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, payloads)))\n break\n }\n default: {\n const result = await super.queryHandler(query, payloads)\n if (this.config.storeQueries) {\n await this.insertHandler([builtQuery])\n }\n return result\n }\n }\n if (this.config.storeQueries) {\n await this.insertHandler([builtQuery])\n }\n return resultPayloads\n }\n\n protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]> {\n return await parent.insert(payloads)\n }\n\n protected async writeToParents(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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 () =>\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":["AbstractArchivist","AbstractModuleInstance","_lastInsertedPayload","_parents","queries","ArchivistGetQuerySchema","requireAllParents","config","_queryAccountPaths","storeParentReads","all","_noOverride","busy","started","allHandler","clear","clearHandler","commit","commitHandler","delete","hashes","deleteWithConfig","get","getWithConfig","insert","payloads","insertWithConfig","Error","deleteHandler","_hashes","emitEvents","deletedHashes","emit","module","getFromParent","archivist","foundPairs","PayloadBuilder","dataHashPairs","filter","hash","askedFor","includes","console","warn","foundHashes","Set","map","foundPayloads","payload","notfound","has","getFromParents","parents","Object","values","read","remainingHashes","parentIndex","result","length","found","getHandler","gotten","toHashMap","dataMap","toDataHashMap","notfoundHashes","push","build","parentFoundPayloads","head","insertHandler","_payloads","insertQueryHandler","query","assertEx","JSON","stringify","resolvedPayloads","filterIncludeByDataHash","payloadHashes","queryPayload","getQuery","payloadsWithoutQuery","filterExclude","dataHash","at","writeToParents","insertedPayloads","resolveArchivists","write","queryHandler","queryConfig","wrappedQuery","QueryBoundWitnessWrapper","parseQuery","builtQuery","queryable","resultPayloads","schema","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","resultPayload","ArchivistInsertQuerySchema","storeQueries","writeToParent","parent","compact","Promise","undefined","flat","archivists","archivistModules","resolve","address","name","duplicateModules","reduce","prev","asArchivistInstance","isArchivistInstance","log"]}
@@ -74,7 +74,7 @@ var _AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
74
74
  this._noOverride("insert");
75
75
  return await this.busy(async () => {
76
76
  await this.started("throw");
77
- return await this.insertWithConfig(await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload, true))));
77
+ return await this.insertWithConfig(payloads);
78
78
  });
79
79
  }
80
80
  allHandler() {
@@ -151,7 +151,7 @@ var _AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
151
151
  for (const hash of hashes) {
152
152
  const found = map[hash] ?? dataMap[hash];
153
153
  if (found) {
154
- foundPayloads.push(await PayloadBuilder.build(found));
154
+ foundPayloads.push(await PayloadBuilder.build(found, true));
155
155
  } else {
156
156
  notfoundHashes.push(hash);
157
157
  }
@@ -184,7 +184,7 @@ var _AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
184
184
  async insertWithConfig(payloads, config) {
185
185
  const emitEvents = (config == null ? void 0 : config.emitEvents) ?? true;
186
186
  const writeToParents = (config == null ? void 0 : config.writeToParents) ?? true;
187
- const insertedPayloads = await this.insertHandler(payloads);
187
+ const insertedPayloads = await this.insertHandler(await PayloadBuilder.build(payloads, true));
188
188
  if (writeToParents) {
189
189
  await this.writeToParents(insertedPayloads);
190
190
  }
@@ -208,6 +208,7 @@ var _AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
208
208
  async queryHandler(query, payloads, queryConfig) {
209
209
  var _a;
210
210
  const wrappedQuery = await QueryBoundWitnessWrapper.parseQuery(query, payloads);
211
+ const builtQuery = await PayloadBuilder.build(query, true);
211
212
  const queryPayload = await wrappedQuery.getQuery();
212
213
  assertEx(await this.queryable(query, payloads, queryConfig));
213
214
  const resultPayloads = [];
@@ -252,7 +253,7 @@ var _AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
252
253
  const result = await super.queryHandler(query, payloads);
253
254
  if (this.config.storeQueries) {
254
255
  await this.insertHandler([
255
- query
256
+ builtQuery
256
257
  ]);
257
258
  }
258
259
  return result;
@@ -260,7 +261,7 @@ var _AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
260
261
  }
261
262
  if (this.config.storeQueries) {
262
263
  await this.insertHandler([
263
- query
264
+ builtQuery
264
265
  ]);
265
266
  }
266
267
  return resultPayloads;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AbstractArchivist.ts"],"sourcesContent":["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 { BoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { duplicateModules, ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta, WithMeta } from '@xyo-network/payload-model'\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 ?? false\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<WithMeta<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<WithMeta<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<WithMeta<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<WithMeta<Payload>[]> {\n this._noOverride('insert')\n return await this.busy(async () => {\n await this.started('throw')\n //make sure all incoming payloads have proper $hash and $meta\n return await this.insertWithConfig(await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload, true))))\n })\n }\n\n protected allHandler(): PromisableArray<WithMeta<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<WithMeta<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<[WithMeta<Payload>[], string[]]> {\n const foundPairs = (await PayloadBuilder.dataHashPairs(await archivist.get(hashes))).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<[WithMeta<Payload>[], string[]]> {\n const parents = Object.values((await this.parents())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithMeta<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<PayloadWithMeta[]> {\n throw new Error('Not implemented')\n }\n\n protected async getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const emitEvents = config?.emitEvents ?? true\n const gotten = await this.getHandler(hashes)\n const map = await PayloadBuilder.toHashMap(gotten)\n const dataMap = await PayloadBuilder.toDataHashMap(gotten)\n\n const foundPayloads: PayloadWithMeta[] = []\n const notfoundHashes: string[] = []\n for (const hash of hashes) {\n const found = map[hash] ?? dataMap[hash]\n if (found) {\n foundPayloads.push((await PayloadBuilder.build(found)) as PayloadWithMeta)\n } else {\n notfoundHashes.push(hash)\n }\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<WithMeta<Payload>[]> {\n throw new Error('Not implemented')\n }\n\n protected async insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]) {\n assertEx(payloads, () => `Missing payloads: ${JSON.stringify(query.payload, null, 2)}`)\n const resolvedPayloads = await PayloadBuilder.filterIncludeByDataHash(payloads, query.payloadHashes)\n assertEx(\n resolvedPayloads.length === query.payloadHashes.length,\n () => `Could not find some passed hashes [${resolvedPayloads.length} != ${query.payloadHashes.length}]`,\n )\n const queryPayload = await query.getQuery()\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(resolvedPayloads, await PayloadBuilder.dataHash(queryPayload))\n const result = await this.insertWithConfig(payloadsWithoutQuery)\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 return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]> {\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 = await QueryBoundWitnessWrapper.parseQuery<ArchivistQuery>(query, payloads)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\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 resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, payloads)))\n break\n }\n default: {\n const result = await super.queryHandler(query, payloads)\n if (this.config.storeQueries) {\n await this.insertHandler([query])\n }\n return result\n }\n }\n if (this.config.storeQueries) {\n await this.insertHandler([query])\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<PayloadWithMeta[]> {\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 () =>\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":";;;;AAAA,SAASA,gBAAgB;AACzB,SAASC,eAAe;AAExB,SACEC,yBACAC,2BACAC,4BAEAC,4BACAC,yBACAC,4BAMAC,qBACAC,2BACK;AAEP,SAASC,gCAAgC;AACzC,SAASC,8BAA8B;AACvC,SAASC,wBAAgE;AACzE,SAASC,sBAAsB;AAiBxB,IAAeC,qBAAf,MAAeA,2BAIZC,uBAAAA;EAGAC;EACAC;EAER,IAAaC,UAAoB;AAC/B,WAAO;MAACC;SAA4B,MAAMD;;EAC5C;EAEA,IAAIE,oBAAoB;AACtB,WAAO,KAAKC,OAAOD,qBAAqB;EAC1C;EAEA,IAAuBE,qBAAmE;AACxF,WAAO;MACL,mCAAmC;MACnC,qCAAqC;MACrC,sCAAsC;MACtC,sCAAsC;MACtC,mCAAmC;MACnC,sCAAsC;IACxC;EACF;EAEA,IAAcC,mBAAmB;AArEnC;AAsEI,WAAO,CAAC,GAAC,UAAKF,WAAL,mBAAaE;EACxB;EAEAC,MAA0C;AACxC,SAAKC,YAAY,KAAA;AACjB,WAAO,KAAKC,KAAK,YAAA;AACf,YAAM,KAAKC,QAAQ,OAAA;AACnB,aAAO,MAAM,KAAKC,WAAU;IAC9B,CAAA;EACF;EAEAC,QAA0B;AACxB,SAAKJ,YAAY,OAAA;AACjB,WAAO,KAAKC,KAAK,YAAA;AACf,YAAM,KAAKC,QAAQ,OAAA;AACnB,aAAO,MAAM,KAAKG,aAAY;IAChC,CAAA;EACF;EAEAC,SAA+C;AAC7C,SAAKN,YAAY,QAAA;AACjB,WAAO,KAAKC,KAAK,YAAA;AACf,YAAM,KAAKC,QAAQ,OAAA;AACnB,aAAO,MAAM,KAAKK,cAAa;IACjC,CAAA;EACF;EAEA,MAAMC,OAAOC,QAAqC;AAChD,SAAKT,YAAY,QAAA;AACjB,WAAO,MAAM,KAAKC,KAAK,YAAA;AACrB,YAAM,KAAKC,QAAQ,OAAA;AACnB,aAAO,MAAM,KAAKQ,iBAAiBD,MAAAA;IACrC,CAAA;EACF;EAEA,MAAME,IAAIF,QAAgD;AACxD,SAAKT,YAAY,KAAA;AACjB,WAAO,MAAM,KAAKC,KAAK,YAAA;AACrB,YAAM,KAAKC,QAAQ,OAAA;AACnB,aAAO,MAAM,KAAKU,cAAcH,MAAAA;IAClC,CAAA;EACF;EAEA,MAAMI,OAAOC,UAAmD;AAC9D,SAAKd,YAAY,QAAA;AACjB,WAAO,MAAM,KAAKC,KAAK,YAAA;AACrB,YAAM,KAAKC,QAAQ,OAAA;AAEnB,aAAO,MAAM,KAAKa,iBAAiB,MAAMC,QAAQjB,IAAIe,SAASG,IAAI,CAACC,YAAYC,eAAeC,MAAMF,SAAS,IAAA,CAAA,CAAA,CAAA;IAC/G,CAAA;EACF;EAEUf,aAAiD;AACzD,UAAM,IAAIkB,MAAM,iBAAA;EAClB;EAEUhB,eAAiC;AACzC,UAAM,IAAIgB,MAAM,iBAAA;EAClB;EAEUd,gBAAsD;AAC9D,UAAM,IAAIc,MAAM,iBAAA;EAClB;EAEUC,cAAcC,SAA4C;AAClE,UAAM,IAAIF,MAAM,iBAAA;EAClB;EAEA,MAAgBX,iBAAiBD,QAAkBb,QAA0C;AAC3F,UAAM4B,cAAa5B,iCAAQ4B,eAAc;AAEzC,UAAMC,gBAAgB,MAAM,KAAKH,cAAcb,MAAAA;AAE/C,QAAIe,YAAY;AACd,YAAM,KAAKE,KAAK,WAAW;QAAEjB,QAAQgB;QAAeE,QAAQ;MAAK,CAAA;IACnE;AAEA,WAAOF;EACT;EAEA,MAAgBG,cAAcnB,QAAkBoB,WAAwE;AACtH,UAAMC,cAAc,MAAMX,eAAeY,cAAc,MAAMF,UAAUlB,IAAIF,MAAAA,CAAAA,GAAUuB,OAAO,CAAC,CAAA,EAAGC,IAAAA,MAAK;AACnG,YAAMC,WAAWzB,OAAO0B,SAASF,IAAAA;AACjC,UAAI,CAACC,UAAU;AACbE,gBAAQC,KAAK,oDAAoDJ,IAAAA,EAAM;MAEzE;AACA,aAAOC;IACT,CAAA;AAEA,UAAMI,cAAc,IAAIC,IAAIT,WAAWb,IAAI,CAAC,CAAA,EAAGgB,IAAAA,MAAUA,IAAAA,CAAAA;AACzD,UAAMO,gBAAgBV,WAAWb,IAAI,CAAC,CAACC,OAAAA,MAAaA,OAAAA;AAEpD,UAAMuB,WAAWhC,OAAOuB,OAAO,CAACC,SAAS,CAACK,YAAYI,IAAIT,IAAAA,CAAAA;AAC1D,WAAO;MAACO;MAAeC;;EACzB;EAEA,MAAgBE,eAAelC,QAA4D;AAvK7F;AAwKI,UAAMmC,UAAUC,OAAOC,SAAQ,WAAM,KAAKF,QAAO,MAAlB,mBAAuBG,SAAQ,CAAC,CAAA;AAC/D,QAAIC,kBAAkB;SAAIvC;;AAC1B,QAAIwC,cAAc;AAClB,QAAIC,SAA8B,CAAA;AAGlC,WAAOD,cAAcL,QAAQO,UAAUH,gBAAgBG,SAAS,GAAG;AACjE,YAAM,CAACC,OAAOX,QAAAA,IAAY,MAAM,KAAKb,cAAcoB,iBAAiBJ,QAAQK,WAAAA,CAAY;AACxFC,eAAS;WAAIA;WAAWE;;AACxBJ,wBAAkBP;AAClBQ;IACF;AACA,WAAO;MAACC;MAAQF;;EAClB;EAEUK,WAAW9B,SAAkD;AACrE,UAAM,IAAIF,MAAM,iBAAA;EAClB;EAEA,MAAgBT,cAAcH,QAAkBb,QAAmD;AAEjG,UAAM4B,cAAa5B,iCAAQ4B,eAAc;AACzC,UAAM8B,SAAS,MAAM,KAAKD,WAAW5C,MAAAA;AACrC,UAAMQ,MAAM,MAAME,eAAeoC,UAAUD,MAAAA;AAC3C,UAAME,UAAU,MAAMrC,eAAesC,cAAcH,MAAAA;AAEnD,UAAMd,gBAAmC,CAAA;AACzC,UAAMkB,iBAA2B,CAAA;AACjC,eAAWzB,QAAQxB,QAAQ;AACzB,YAAM2C,QAAQnC,IAAIgB,IAAAA,KAASuB,QAAQvB,IAAAA;AACnC,UAAImB,OAAO;AACTZ,sBAAcmB,KAAM,MAAMxC,eAAeC,MAAMgC,KAAAA,CAAAA;MACjD,OAAO;AACLM,uBAAeC,KAAK1B,IAAAA;MACtB;IACF;AAEA,UAAM,CAAC2B,mBAAAA,IAAuB,MAAM,KAAKjB,eAAee,cAAAA;AAExD,QAAI,KAAK5D,kBAAkB;AACzB,YAAM,KAAKiB,iBAAiB6C,mBAAAA;IAC9B;AACA,WAAO;SAAIpB;SAAkBoB;;EAC/B;EAEUC,OAAwC;AAChD,WAAO,KAAKtE;EACd;EAEUuE,cAAcC,WAAoD;AAC1E,UAAM,IAAI1C,MAAM,iBAAA;EAClB;EAEA,MAAgB2C,mBAAkFC,OAAUnD,UAAsB;AAChIoD,aAASpD,UAAU,MAAM,qBAAqBqD,KAAKC,UAAUH,MAAM/C,SAAS,MAAM,CAAA,CAAA,EAAI;AACtF,UAAMmD,mBAAmB,MAAMlD,eAAemD,wBAAwBxD,UAAUmD,MAAMM,aAAa;AACnGL,aACEG,iBAAiBlB,WAAWc,MAAMM,cAAcpB,QAChD,MAAM,sCAAsCkB,iBAAiBlB,MAAM,OAAOc,MAAMM,cAAcpB,MAAM,GAAG;AAEzG,UAAMqB,eAAe,MAAMP,MAAMQ,SAAQ;AACzC,UAAMC,uBAAuB,MAAMvD,eAAewD,cAAcN,kBAAkB,MAAMlD,eAAeyD,SAASJ,YAAAA,CAAAA;AAChH,UAAMtB,SAAS,MAAM,KAAKnC,iBAAiB2D,oBAAAA;AAI3C,SAAKnF,uBAAuB8E,iBAAiBQ,GAAG,EAAC;AACjD,WAAO3B;EACT;EAEA,MAAgBnC,iBAAiBD,UAAqBlB,QAAmD;AACvG,UAAM4B,cAAa5B,iCAAQ4B,eAAc;AACzC,UAAMsD,kBAAiBlF,iCAAQkF,mBAAkB;AAEjD,UAAMC,mBAAmB,MAAM,KAAKjB,cAAchD,QAAAA;AAElD,QAAIgE,gBAAgB;AAClB,YAAM,KAAKA,eAAeC,gBAAAA;IAC5B;AACA,QAAIvD,YAAY;AACd,YAAM,KAAKE,KAAK,YAAY;QAAEC,QAAQ;QAAMb,UAAUiE;MAAiB,CAAA;IACzE;AAEA,WAAOA;EACT;EAEA,MAAgBnC,UAAU;AA9P5B;AA+PI,SAAKpD,WAAW,KAAKA,YAAY;MAC/Bc,QAAQ,MAAM,KAAK0E,mBAAkB,gBAAKpF,WAAL,mBAAagD,YAAb,mBAAsBtC,MAAAA;MAC3DyC,MAAM,MAAM,KAAKiC,mBAAkB,gBAAKpF,WAAL,mBAAagD,YAAb,mBAAsBG,IAAAA;MACzDkC,OAAO,MAAM,KAAKD,mBAAkB,gBAAKpF,WAAL,mBAAagD,YAAb,mBAAsBqC,KAAAA;IAC5D;AACA,WAAOf,SAAS,KAAK1E,QAAQ;EAC/B;EAEA,MAAyB0F,aACvBjB,OACAnD,UACAqE,aACmC;AA3QvC;AA4QI,UAAMC,eAAe,MAAMC,yBAAyBC,WAA2BrB,OAAOnD,QAAAA;AACtF,UAAM0D,eAAe,MAAMY,aAAaX,SAAQ;AAChDP,aAAS,MAAM,KAAKqB,UAAUtB,OAAOnD,UAAUqE,WAAAA,CAAAA;AAC/C,UAAMK,iBAA4B,CAAA;AAElC,YAAQhB,aAAaiB,QAAM;MACzB,KAAKC,yBAAyB;AAC5BF,uBAAe7B,KAAI,GAAK,MAAM,KAAKxD,WAAU,CAAA;AAC7C;MACF;MACA,KAAKwF,2BAA2B;AAC9B,cAAM,KAAKtF,aAAY;AACvB;MACF;MACA,KAAKuF,4BAA4B;AAC/BJ,uBAAe7B,KAAI,GAAK,MAAM,KAAKpD,cAAa,CAAA;AAChD;MACF;MACA,KAAKsF,4BAA4B;AAC/B,cAAMC,gBAAsC;UAC1CrF,QAAQ;eAAK,MAAM,KAAKC,iBAAiB8D,aAAa/D,MAAM;;UAC5DgF,QAAQI;QACV;AACAL,uBAAe7B,KAAKmC,aAAAA;AACpB;MACF;MACA,KAAKpG,yBAAyB;AAC5B,aAAI8E,kBAAa/D,WAAb+D,mBAAqBrB,QAAQ;AAC/BqC,yBAAe7B,KAAI,GAAK,MAAM,KAAK/C,cAAc4D,aAAa/D,MAAM,CAAA;QACtE,OAAO;AACL,gBAAMoD,OAAO,MAAM,KAAKA,KAAI;AAC5B,cAAIA;AAAM2B,2BAAe7B,KAAKE,IAAAA;QAChC;AACA;MACF;MACA,KAAKkC,4BAA4B;AAC/BP,uBAAe7B,KAAI,GAAK,MAAM,KAAKK,mBAAmBoB,cAActE,QAAAA,CAAAA;AACpE;MACF;MACA,SAAS;AACP,cAAMoC,SAAS,MAAM,MAAMgC,aAAajB,OAAOnD,QAAAA;AAC/C,YAAI,KAAKlB,OAAOoG,cAAc;AAC5B,gBAAM,KAAKlC,cAAc;YAACG;WAAM;QAClC;AACA,eAAOf;MACT;IACF;AACA,QAAI,KAAKtD,OAAOoG,cAAc;AAC5B,YAAM,KAAKlC,cAAc;QAACG;OAAM;IAClC;AACA,WAAOuB;EACT;EAEA,MAAgBS,cAAcC,QAA2BpF,UAAqB;AAC5E,WAAO,MAAMoF,OAAOrF,OAAOC,QAAAA;EAC7B;EAEA,MAAgBgE,eAAehE,UAAiD;AAC9E,UAAM8B,UAAU,MAAM,KAAKA,QAAO;AAClC,WAAOuD,QACL,MAAMnF,QAAQjB,IACZ8C,OAAOC,OAAOF,QAAQqC,SAAS,CAAC,CAAA,EAAGhE,IAAI,OAAOiF,WAAAA;AAC5C,aAAOA,SAAS,MAAM,KAAKD,cAAcC,QAAQpF,QAAAA,IAAYsF;IAC/D,CAAA,CAAA,CAAA,EAEFC,KAAI;EACR;EAEA,MAAcrB,kBAAkBsB,aAAuB,CAAA,GAAI;AACzD,UAAMC,mBAAmB;SAAK,MAAM,KAAKC,QAAQ;QAAEC,SAASH;MAAW,CAAA;SAAS,MAAM,KAAKE,QAAQ;QAAEE,MAAMJ;MAAW,CAAA;MAAKtE,OACzH2E,gBAAAA;AAGFzC,aACE,CAAC,KAAKvE,qBAAqB4G,iBAAiBpD,WAAWmD,WAAWnD,QAClE,MACE,qEAAqEmD,WAAWtE,OAAO,CAACH,cACtF0E,iBAAiBtF,IAAI,CAACU,WAAW,EAAEA,OAAO8E,YAAY5E,aAAaF,OAAO/B,OAAO8G,SAAS7E,UAAQ,CAAA,CAAA,GAChG;AAIR,WAAO0E,iBAAiBK,OAA0C,CAACC,MAAMlF,WAAAA;AACvEkF,WAAKlF,OAAO8E,OAAO,IAAIK,oBAAoBnF,QAAQ,MAAA;AACjDoF,4BAAoBpF,QAAQ;UAAEqF,KAAK5E;QAAQ,CAAA;AAC3C,eAAO,oDAAoDT,OAAO8E,OAAO,KAAK9E,OAAO/B,OAAO8G,IAAI,KAAK/E,OAAO/B,OAAO6F,MAAM;MAC3H,CAAA;AAEA,aAAOoB;IACT,GAAG,CAAC,CAAA;EACN;AACF;AA3TUvH;AAJH,IAAeD,oBAAf;","names":["assertEx","compact","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","ArchivistGetQuerySchema","ArchivistInsertQuerySchema","asArchivistInstance","isArchivistInstance","QueryBoundWitnessWrapper","AbstractModuleInstance","duplicateModules","PayloadBuilder","AbstractArchivist","AbstractModuleInstance","_lastInsertedPayload","_parents","queries","ArchivistGetQuerySchema","requireAllParents","config","_queryAccountPaths","storeParentReads","all","_noOverride","busy","started","allHandler","clear","clearHandler","commit","commitHandler","delete","hashes","deleteWithConfig","get","getWithConfig","insert","payloads","insertWithConfig","Promise","map","payload","PayloadBuilder","build","Error","deleteHandler","_hashes","emitEvents","deletedHashes","emit","module","getFromParent","archivist","foundPairs","dataHashPairs","filter","hash","askedFor","includes","console","warn","foundHashes","Set","foundPayloads","notfound","has","getFromParents","parents","Object","values","read","remainingHashes","parentIndex","result","length","found","getHandler","gotten","toHashMap","dataMap","toDataHashMap","notfoundHashes","push","parentFoundPayloads","head","insertHandler","_payloads","insertQueryHandler","query","assertEx","JSON","stringify","resolvedPayloads","filterIncludeByDataHash","payloadHashes","queryPayload","getQuery","payloadsWithoutQuery","filterExclude","dataHash","at","writeToParents","insertedPayloads","resolveArchivists","write","queryHandler","queryConfig","wrappedQuery","QueryBoundWitnessWrapper","parseQuery","queryable","resultPayloads","schema","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","resultPayload","ArchivistInsertQuerySchema","storeQueries","writeToParent","parent","compact","undefined","flat","archivists","archivistModules","resolve","address","name","duplicateModules","reduce","prev","asArchivistInstance","isArchivistInstance","log"]}
1
+ {"version":3,"sources":["../../src/AbstractArchivist.ts"],"sourcesContent":["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 { BoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { duplicateModules, ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta, WithMeta } from '@xyo-network/payload-model'\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, TEventData, Payload>\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 ?? false\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<WithMeta<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<WithMeta<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<WithMeta<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<WithMeta<Payload>[]> {\n this._noOverride('insert')\n return await this.busy(async () => {\n await this.started('throw')\n //make sure all incoming payloads have proper $hash and $meta\n return await this.insertWithConfig(payloads)\n })\n }\n\n protected allHandler(): PromisableArray<WithMeta<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<WithMeta<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<[WithMeta<Payload>[], string[]]> {\n const foundPairs = (await PayloadBuilder.dataHashPairs((await archivist.get(hashes)) as WithMeta<Payload>[])).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<[WithMeta<Payload>[], string[]]> {\n const parents = Object.values((await this.parents())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithMeta<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<WithMeta<Payload>[]> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const emitEvents = config?.emitEvents ?? true\n const gotten = await this.getHandler(hashes)\n const map = await PayloadBuilder.toHashMap(gotten)\n const dataMap = await PayloadBuilder.toDataHashMap(gotten)\n\n const foundPayloads: WithMeta<Payload>[] = []\n const notfoundHashes: string[] = []\n for (const hash of hashes) {\n const found = map[hash] ?? dataMap[hash]\n if (found) {\n foundPayloads.push(await PayloadBuilder.build<Payload>(found, true))\n } else {\n notfoundHashes.push(hash)\n }\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: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]> {\n throw new Error('Not implemented')\n }\n\n protected async insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]) {\n assertEx(payloads, () => `Missing payloads: ${JSON.stringify(query.payload, null, 2)}`)\n const resolvedPayloads = await PayloadBuilder.filterIncludeByDataHash(payloads, query.payloadHashes)\n assertEx(\n resolvedPayloads.length === query.payloadHashes.length,\n () => `Could not find some passed hashes [${resolvedPayloads.length} != ${query.payloadHashes.length}]`,\n )\n const queryPayload = await query.getQuery()\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(resolvedPayloads, await PayloadBuilder.dataHash(queryPayload))\n const result = await this.insertWithConfig(payloadsWithoutQuery)\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 return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]> {\n const emitEvents = config?.emitEvents ?? true\n const writeToParents = config?.writeToParents ?? true\n\n const insertedPayloads = await this.insertHandler(await PayloadBuilder.build(payloads, true))\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 = await QueryBoundWitnessWrapper.parseQuery<ArchivistQuery>(query, payloads)\n const builtQuery = await PayloadBuilder.build(query, true)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\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 resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, payloads)))\n break\n }\n default: {\n const result = await super.queryHandler(query, payloads)\n if (this.config.storeQueries) {\n await this.insertHandler([builtQuery])\n }\n return result\n }\n }\n if (this.config.storeQueries) {\n await this.insertHandler([builtQuery])\n }\n return resultPayloads\n }\n\n protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]> {\n return await parent.insert(payloads)\n }\n\n protected async writeToParents(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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 () =>\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":["assertEx","compact","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","ArchivistGetQuerySchema","ArchivistInsertQuerySchema","asArchivistInstance","isArchivistInstance","QueryBoundWitnessWrapper","AbstractModuleInstance","duplicateModules","PayloadBuilder","AbstractArchivist","AbstractModuleInstance","_lastInsertedPayload","_parents","queries","ArchivistGetQuerySchema","requireAllParents","config","_queryAccountPaths","storeParentReads","all","_noOverride","busy","started","allHandler","clear","clearHandler","commit","commitHandler","delete","hashes","deleteWithConfig","get","getWithConfig","insert","payloads","insertWithConfig","Error","deleteHandler","_hashes","emitEvents","deletedHashes","emit","module","getFromParent","archivist","foundPairs","PayloadBuilder","dataHashPairs","filter","hash","askedFor","includes","console","warn","foundHashes","Set","map","foundPayloads","payload","notfound","has","getFromParents","parents","Object","values","read","remainingHashes","parentIndex","result","length","found","getHandler","gotten","toHashMap","dataMap","toDataHashMap","notfoundHashes","push","build","parentFoundPayloads","head","insertHandler","_payloads","insertQueryHandler","query","assertEx","JSON","stringify","resolvedPayloads","filterIncludeByDataHash","payloadHashes","queryPayload","getQuery","payloadsWithoutQuery","filterExclude","dataHash","at","writeToParents","insertedPayloads","resolveArchivists","write","queryHandler","queryConfig","wrappedQuery","QueryBoundWitnessWrapper","parseQuery","builtQuery","queryable","resultPayloads","schema","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","resultPayload","ArchivistInsertQuerySchema","storeQueries","writeToParent","parent","compact","Promise","undefined","flat","archivists","archivistModules","resolve","address","name","duplicateModules","reduce","prev","asArchivistInstance","isArchivistInstance","log"]}
package/package.json CHANGED
@@ -13,13 +13,13 @@
13
13
  "@xylabs/assert": "^2.14.2",
14
14
  "@xylabs/lodash": "^2.14.2",
15
15
  "@xylabs/promise": "^2.14.2",
16
- "@xyo-network/archivist-model": "~2.90.15",
17
- "@xyo-network/boundwitness-model": "~2.90.15",
18
- "@xyo-network/boundwitness-wrapper": "~2.90.15",
19
- "@xyo-network/module-abstract": "~2.90.15",
20
- "@xyo-network/module-model": "~2.90.15",
21
- "@xyo-network/payload-builder": "~2.90.15",
22
- "@xyo-network/payload-model": "~2.90.15"
16
+ "@xyo-network/archivist-model": "~2.90.16",
17
+ "@xyo-network/boundwitness-model": "~2.90.16",
18
+ "@xyo-network/boundwitness-wrapper": "~2.90.16",
19
+ "@xyo-network/module-abstract": "~2.90.16",
20
+ "@xyo-network/module-model": "~2.90.16",
21
+ "@xyo-network/payload-builder": "~2.90.16",
22
+ "@xyo-network/payload-model": "~2.90.16"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@xylabs/ts-scripts-yarn3": "^3.2.42",
@@ -65,6 +65,6 @@
65
65
  },
66
66
  "sideEffects": false,
67
67
  "types": "dist/node/index.d.ts",
68
- "version": "2.90.15",
68
+ "version": "2.90.16",
69
69
  "type": "module"
70
70
  }
@@ -43,7 +43,7 @@ export abstract class AbstractArchivist<
43
43
  TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,
44
44
  >
45
45
  extends AbstractModuleInstance<TParams, TEventData>
46
- implements ArchivistInstance<TParams>
46
+ implements ArchivistInstance<TParams, TEventData, Payload>
47
47
  {
48
48
  private _lastInsertedPayload: Payload | undefined
49
49
  private _parents?: ArchivistParentInstances
@@ -116,7 +116,7 @@ export abstract class AbstractArchivist<
116
116
  return await this.busy(async () => {
117
117
  await this.started('throw')
118
118
  //make sure all incoming payloads have proper $hash and $meta
119
- return await this.insertWithConfig(await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload, true))))
119
+ return await this.insertWithConfig(payloads)
120
120
  })
121
121
  }
122
122
 
@@ -149,7 +149,7 @@ export abstract class AbstractArchivist<
149
149
  }
150
150
 
151
151
  protected async getFromParent(hashes: string[], archivist: ArchivistInstance): Promise<[WithMeta<Payload>[], string[]]> {
152
- const foundPairs = (await PayloadBuilder.dataHashPairs(await archivist.get(hashes))).filter(([, hash]) => {
152
+ const foundPairs = (await PayloadBuilder.dataHashPairs((await archivist.get(hashes)) as WithMeta<Payload>[])).filter(([, hash]) => {
153
153
  const askedFor = hashes.includes(hash)
154
154
  if (!askedFor) {
155
155
  console.warn(`Parent returned payload with hash not asked for: ${hash}`)
@@ -181,23 +181,23 @@ export abstract class AbstractArchivist<
181
181
  return [result, remainingHashes]
182
182
  }
183
183
 
184
- protected getHandler(_hashes: string[]): Promisable<PayloadWithMeta[]> {
184
+ protected getHandler(_hashes: string[]): Promisable<Payload[]> {
185
185
  throw new Error('Not implemented')
186
186
  }
187
187
 
188
- protected async getWithConfig(hashes: string[], config?: InsertConfig): Promise<PayloadWithMeta[]> {
188
+ protected async getWithConfig(hashes: string[], config?: InsertConfig): Promise<WithMeta<Payload>[]> {
189
189
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
190
190
  const emitEvents = config?.emitEvents ?? true
191
191
  const gotten = await this.getHandler(hashes)
192
192
  const map = await PayloadBuilder.toHashMap(gotten)
193
193
  const dataMap = await PayloadBuilder.toDataHashMap(gotten)
194
194
 
195
- const foundPayloads: PayloadWithMeta[] = []
195
+ const foundPayloads: WithMeta<Payload>[] = []
196
196
  const notfoundHashes: string[] = []
197
197
  for (const hash of hashes) {
198
198
  const found = map[hash] ?? dataMap[hash]
199
199
  if (found) {
200
- foundPayloads.push((await PayloadBuilder.build(found)) as PayloadWithMeta)
200
+ foundPayloads.push(await PayloadBuilder.build<Payload>(found, true))
201
201
  } else {
202
202
  notfoundHashes.push(hash)
203
203
  }
@@ -215,7 +215,7 @@ export abstract class AbstractArchivist<
215
215
  return this._lastInsertedPayload
216
216
  }
217
217
 
218
- protected insertHandler(_payloads: Payload[]): Promise<WithMeta<Payload>[]> {
218
+ protected insertHandler(_payloads: WithMeta<Payload>[]): Promise<WithMeta<Payload>[]> {
219
219
  throw new Error('Not implemented')
220
220
  }
221
221
 
@@ -236,11 +236,11 @@ export abstract class AbstractArchivist<
236
236
  return result
237
237
  }
238
238
 
239
- protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<PayloadWithMeta[]> {
239
+ protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithMeta<Payload>[]> {
240
240
  const emitEvents = config?.emitEvents ?? true
241
241
  const writeToParents = config?.writeToParents ?? true
242
242
 
243
- const insertedPayloads = await this.insertHandler(payloads)
243
+ const insertedPayloads = await this.insertHandler(await PayloadBuilder.build(payloads, true))
244
244
 
245
245
  if (writeToParents) {
246
246
  await this.writeToParents(insertedPayloads)
@@ -267,6 +267,7 @@ export abstract class AbstractArchivist<
267
267
  queryConfig?: TConfig,
268
268
  ): Promise<ModuleQueryHandlerResult> {
269
269
  const wrappedQuery = await QueryBoundWitnessWrapper.parseQuery<ArchivistQuery>(query, payloads)
270
+ const builtQuery = await PayloadBuilder.build(query, true)
270
271
  const queryPayload = await wrappedQuery.getQuery()
271
272
  assertEx(await this.queryable(query, payloads, queryConfig))
272
273
  const resultPayloads: Payload[] = []
@@ -308,18 +309,18 @@ export abstract class AbstractArchivist<
308
309
  default: {
309
310
  const result = await super.queryHandler(query, payloads)
310
311
  if (this.config.storeQueries) {
311
- await this.insertHandler([query])
312
+ await this.insertHandler([builtQuery])
312
313
  }
313
314
  return result
314
315
  }
315
316
  }
316
317
  if (this.config.storeQueries) {
317
- await this.insertHandler([query])
318
+ await this.insertHandler([builtQuery])
318
319
  }
319
320
  return resultPayloads
320
321
  }
321
322
 
322
- protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]) {
323
+ protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<PayloadWithMeta[]> {
323
324
  return await parent.insert(payloads)
324
325
  }
325
326