@xyo-network/archivist-abstract 5.2.25 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,7 +31,7 @@ export declare abstract class AbstractArchivist<TParams extends ArchivistParams
31
31
  private _payloadCountGauge?;
32
32
  private _payloadCountMeter?;
33
33
  static get defaultNextLimit(): number;
34
- get queries(): string[];
34
+ get queries(): Schema[];
35
35
  get requireAllParents(): boolean;
36
36
  protected get payloadCountGauge(): Gauge<import("@opentelemetry/api").Attributes> | null | undefined;
37
37
  protected get payloadCountMeter(): Meter | null;
@@ -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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"}
@@ -87,7 +87,7 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
87
87
  } finally {
88
88
  this.globalReentrancyMutex?.release();
89
89
  }
90
- }, { timeBudgetLimit: 100 });
90
+ }, { timeBudgetLimit: this.timeBudget });
91
91
  }
92
92
  /** deprecated use nextQuery or snapshotQuery instead */
93
93
  async allQuery(account) {
@@ -113,7 +113,7 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
113
113
  } finally {
114
114
  this.globalReentrancyMutex?.release();
115
115
  }
116
- }, { timeBudgetLimit: 100 });
116
+ }, { timeBudgetLimit: this.timeBudget });
117
117
  }
118
118
  async clearQuery(account) {
119
119
  this._noOverride("clearQuery");
@@ -136,7 +136,7 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
136
136
  } finally {
137
137
  this.globalReentrancyMutex?.release();
138
138
  }
139
- }, { timeBudgetLimit: 200 });
139
+ }, { timeBudgetLimit: this.timeBudget });
140
140
  }
141
141
  async commitQuery(account) {
142
142
  this._noOverride("commitQuery");
@@ -159,7 +159,7 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
159
159
  } finally {
160
160
  this.globalReentrancyMutex?.release();
161
161
  }
162
- }, { timeBudgetLimit: 200 });
162
+ }, { timeBudgetLimit: this.timeBudget });
163
163
  }
164
164
  async deleteQuery(hashes, account) {
165
165
  this._noOverride("deleteQuery");
@@ -182,7 +182,7 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
182
182
  } finally {
183
183
  this.globalReentrancyMutex?.release();
184
184
  }
185
- }, { timeBudgetLimit: 200 });
185
+ }, { timeBudgetLimit: this.timeBudget });
186
186
  }
187
187
  async getQuery(hashes, account) {
188
188
  this._noOverride("getQuery");
@@ -205,7 +205,7 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
205
205
  } finally {
206
206
  this.globalReentrancyMutex?.release();
207
207
  }
208
- }, { timeBudgetLimit: 200 });
208
+ }, { timeBudgetLimit: this.timeBudget });
209
209
  }
210
210
  async insertQuery(payloads, account) {
211
211
  this._noOverride("insertQuery");
@@ -229,7 +229,7 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
229
229
  } finally {
230
230
  this.globalReentrancyMutex?.release();
231
231
  }
232
- }, { timeBudgetLimit: 200 });
232
+ }, { timeBudgetLimit: this.timeBudget });
233
233
  }
234
234
  async nextQuery(options, account) {
235
235
  this._noOverride("nextQuery");
@@ -252,7 +252,7 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
252
252
  } finally {
253
253
  this.globalReentrancyMutex?.release();
254
254
  }
255
- }, { timeBudgetLimit: 200 });
255
+ }, { timeBudgetLimit: this.timeBudget });
256
256
  }
257
257
  async snapshotQuery(account) {
258
258
  this._noOverride("snapshotQuery");
@@ -434,6 +434,7 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
434
434
  payloadCountHandler() {
435
435
  return -1;
436
436
  }
437
+ // eslint-disable-next-line max-statements
437
438
  async queryHandler(query, payloads, queryConfig) {
438
439
  const sanitizedQuery = PayloadBuilder.omitStorageMeta(query);
439
440
  const sanitizedPayloads = PayloadBuilder.omitStorageMeta(payloads);
@@ -455,11 +456,13 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
455
456
  break;
456
457
  }
457
458
  case ArchivistDeleteQuerySchema: {
458
- resultPayloads.push(...await this.deleteWithConfig(queryPayload.hashes));
459
+ const typedQueryPayload = queryPayload;
460
+ resultPayloads.push(...await this.deleteWithConfig(typedQueryPayload.hashes));
459
461
  break;
460
462
  }
461
463
  case ArchivistGetQuerySchema: {
462
- resultPayloads.push(...await this.getWithConfig(queryPayload.hashes ?? []));
464
+ const typedQueryPayload = queryPayload;
465
+ resultPayloads.push(...await this.getWithConfig(typedQueryPayload.hashes ?? []));
463
466
  break;
464
467
  }
465
468
  case ArchivistInsertQuerySchema: {
@@ -467,7 +470,8 @@ var AbstractArchivist = class _AbstractArchivist extends AbstractModuleInstance
467
470
  break;
468
471
  }
469
472
  case ArchivistNextQuerySchema: {
470
- resultPayloads.push(...await this.nextHandler(queryPayload));
473
+ const typedQueryPayload = queryPayload;
474
+ resultPayloads.push(...await this.nextHandler(typedQueryPayload));
471
475
  break;
472
476
  }
473
477
  case ArchivistSnapshotQuerySchema: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AbstractArchivist.ts","../../src/StorageClassLabel.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport type { Gauge, Meter } from '@opentelemetry/api'\nimport type {\n Address, Hash, Promisable, PromisableArray,\n} from '@xylabs/sdk-js'\nimport {\n assertEx,\n difference,\n exists, globallyUnique,\n isNull, isUndefined,\n} from '@xylabs/sdk-js'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type {\n ArchivistAllQuery,\n ArchivistClearQuery,\n ArchivistCommitQuery,\n ArchivistDeleteQuery,\n ArchivistGetQuery,\n ArchivistInsertQuery,\n ArchivistInstance,\n ArchivistModuleEventData,\n ArchivistNextOptions,\n ArchivistNextQuery,\n ArchivistParams,\n ArchivistQueries,\n ArchivistSnapshotPayload,\n ArchivistSnapshotQuery,\n ArchivistStatsPayload,\n AttachableArchivistInstance,\n ReadArchivist,\n} from '@xyo-network/archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistGetQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n ArchivistSnapshotQuerySchema,\n ArchivistStatsPayloadSchema,\n asArchivistInstance,\n isArchivistInstance,\n} from '@xyo-network/archivist-model'\nimport type { BoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport type {\n ModuleConfig, ModuleIdentifier, ModuleQueryHandlerResult, ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { creatableModule, duplicateModules } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema, WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport { StorageClassLabel } from './StorageClassLabel.ts'\n\nconst NOT_IMPLEMENTED = 'Not implemented' as const\n\nexport interface ActionConfig {\n emitEvents?: boolean\n}\n\nexport interface InsertConfig extends ActionConfig {\n writeToParents?: boolean\n}\n\ninterface ArchivistParentInstanceMap {\n commit?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n read?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n write?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n}\n\ncreatableModule()\nexport abstract class AbstractArchivist<\n TParams extends ArchivistParams = ArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends AbstractModuleInstance<TParams, TEventData>\n implements AttachableArchivistInstance<TParams, TEventData, Payload> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = ArchivistConfigSchema\n static override readonly labels = { ...super.labels, [StorageClassLabel]: 'unknown' }\n static override readonly uniqueName = globallyUnique('AbstractArchivist', AbstractArchivist, 'xyo')\n\n // override this if a specialized archivist should have a different default next limit\n protected static defaultNextLimitSetting = 100\n\n private _getCache?: LRUCache<Hash, WithStorageMeta<Payload>>\n private _parentArchivists?: ArchivistParentInstanceMap\n private _payloadCountGauge?: Gauge | null\n private _payloadCountMeter?: Meter | null\n\n // do not override this! It is meant to get the this.defaultNextLimitSetting and work if it is overridden\n static get defaultNextLimit() {\n return this.defaultNextLimitSetting\n }\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 get payloadCountGauge() {\n const meter = this.payloadCountMeter\n if (!isNull(meter)) {\n this._payloadCountGauge = meter?.createGauge('payloadCount', { description: 'Payloads in the archivist' })\n }\n return this._payloadCountGauge\n }\n\n protected get payloadCountMeter(): Meter | null {\n if (isUndefined(this._payloadCountMeter)) {\n this._payloadCountMeter = this.params?.meterProvider?.getMeter(this.id) ?? null\n }\n return this._payloadCountMeter ?? null\n }\n\n protected get storeParentReads() {\n return !!this.config?.storeParentReads\n }\n\n /** @deprecated use next or snapshot instead */\n async all(): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('all')\n this.isSupportedQuery(ArchivistAllQuerySchema, 'all')\n return await this.spanAsync(`${this.id}|all`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return PayloadBuilder.omitPrivateStorageMeta(await this.allHandler()) as WithStorageMeta<Payload>[]\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: 100 })\n }\n\n /** deprecated use nextQuery or snapshotQuery instead */\n async allQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('allQuery')\n const queryPayload: ArchivistAllQuery = { schema: ArchivistAllQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async clear(): Promise<void> {\n this._noOverride('clear')\n this.isSupportedQuery(ArchivistClearQuerySchema, 'clear')\n return await this.spanAsync(`${this.id}|clear`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n await this.clearHandler()\n this.reportPayloadCount()\n await this.emit('cleared', { mod: this })\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: 100 })\n }\n\n async clearQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('clearQuery')\n const queryPayload: ArchivistClearQuery = { schema: ArchivistClearQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async commit(): Promise<BoundWitness[]> {\n this._noOverride('commit')\n this.isSupportedQuery(ArchivistCommitQuerySchema, 'commit')\n return await this.spanAsync(`${this.id}commit`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.commitHandler()\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: 200 })\n }\n\n async commitQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('commitQuery')\n const queryPayload: ArchivistCommitQuery = { schema: ArchivistCommitQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async delete(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('delete')\n this.isSupportedQuery(ArchivistDeleteQuerySchema, 'delete')\n return await this.spanAsync(`${this.id}|delete`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.deleteWithConfig(hashes)\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: 200 })\n }\n\n async deleteQuery(hashes: Hash[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('deleteQuery')\n const queryPayload: ArchivistDeleteQuery = { hashes, schema: ArchivistDeleteQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async get(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('get')\n this.isSupportedQuery(ArchivistGetQuerySchema, 'get')\n return await this.spanAsync(`${this.id}|get`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.getWithConfig(hashes)\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: 200 })\n }\n\n async getQuery(hashes: Hash[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('getQuery')\n const queryPayload: ArchivistGetQuery = { hashes, schema: ArchivistGetQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async insert(payloads: Payload[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('insert')\n this.isSupportedQuery(ArchivistInsertQuerySchema, 'insert')\n return await this.spanAsync(`${this.id}|insert`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.insertWithConfig(PayloadBuilder.omitStorageMeta(payloads))\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: 200 })\n }\n\n async insertQuery(payloads: Payload[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('insertQuery')\n const queryPayload: ArchivistInsertQuery = { schema: ArchivistInsertQuerySchema }\n return await this.sendQueryRaw(queryPayload, payloads, account)\n }\n\n async next(options?: ArchivistNextOptions): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('next')\n this.isSupportedQuery(ArchivistNextQuerySchema, 'next')\n return await this.spanAsync(`${this.id}|next`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n const { limit = AbstractArchivist.defaultNextLimit, ...otherOptions } = options ?? {}\n return await this.nextWithConfig({ limit, ...otherOptions })\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: 200 })\n }\n\n async nextQuery(options?: ArchivistNextOptions, account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('nextQuery')\n const queryPayload: ArchivistNextQuery = { schema: ArchivistNextQuerySchema, ...options }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async snapshot(): Promise<ArchivistSnapshotPayload<WithStorageMeta<Payload>, Hash>[]> {\n this._noOverride('snapshot')\n this.isSupportedQuery(ArchivistSnapshotQuerySchema, 'snapshot')\n return await this.spanAsync(`${this.id}|snapshot`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n throw new Error('Cannot take snapshot while in a global reentrancy lock')\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.snapshotHandler()\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: 200 })\n }\n\n async snapshotQuery(account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('snapshotQuery')\n const queryPayload: ArchivistSnapshotQuery = { schema: ArchivistSnapshotQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n protected allHandler(): PromisableArray<WithStorageMeta<Payload>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected clearHandler(): Promisable<void> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected commitHandler(): Promisable<BoundWitness[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected deleteHandler(_hashes: Hash[]): PromisableArray<WithStorageMeta<Payload>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async deleteWithConfig(hashes: Hash[], config?: ActionConfig): Promise<WithStorageMeta<Payload>[]> {\n const emitEvents = config?.emitEvents ?? true\n\n const payloads = await this.deleteHandler(hashes)\n const hashesDeleted = payloads.map(p => p._hash)\n\n if (emitEvents) {\n await this.emit('deleted', {\n hashes: hashesDeleted, payloads, mod: this,\n })\n }\n this.reportPayloadCount()\n return payloads\n }\n\n protected generateStats(): Promisable<ArchivistStatsPayload> {\n return {\n payloadCount: this.payloadCountHandler(),\n schema: ArchivistStatsPayloadSchema,\n }\n }\n\n protected async getFromParent(hashes: Hash[], archivist: ReadArchivist): Promise<[WithStorageMeta<Payload>[], Hash[]]> {\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: Hash[]): Promise<[WithStorageMeta<Payload>[], Hash[]]> {\n const parents = Object.values((await this.parentArchivists())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithStorageMeta<Payload>[] = []\n\n // Intentionally doing this serially\n while (parentIndex < parents.length && remainingHashes.length > 0) {\n const parent = parents[parentIndex]\n if (parent) {\n const [found, notfound] = await this.getFromParent(remainingHashes, parent)\n result = [...result, ...found]\n remainingHashes = notfound\n }\n parentIndex++\n }\n return [result, remainingHashes]\n }\n\n protected getHandler(_hashes: Hash[]): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n // eslint-disable-next-line max-statements\n protected async getWithConfig(hashes: Hash[], _config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n // Filter out duplicates\n const requestedHashes = new Set(hashes)\n\n // read from cache if we are caching\n const cache = this._getCache\n let fromCache: WithStorageMeta<Payload>[] = []\n let remainingHashes = [...requestedHashes]\n if (cache !== undefined) {\n fromCache = hashes.map(hash => cache.get(hash)).filter(exists)\n remainingHashes = hashes.filter(hash => !fromCache.some(payload => payload?._hash === hash || payload?._dataHash === hash))\n }\n\n // Attempt to find the payloads in the store\n const fromGet = await this.getHandler([...remainingHashes])\n const gotten = [...fromCache, ...fromGet].toSorted(PayloadBuilder.compareStorageMeta)\n\n // Do not just blindly return what the archivist told us but\n // ensure to only return requested payloads and keep track of\n // the ones it did not find so we can ask the parents.\n const foundPayloads: WithStorageMeta<Payload>[] = []\n const foundHashes = new Set<Hash>()\n\n // We are iterating over the returned result from the archivist\n // (not the array of hashes passed in) to preserve the natural order of the\n // hashes as returned by the archivist as that should loosely\n // correspond to the order when iterated and the symmetry will\n // be helpful for debugging\n for (const payload of gotten) {\n // trusting the hashes from the cache and parent\n const map: Record<Hash, WithStorageMeta<Payload>> = {\n [payload._hash]: payload,\n [payload._dataHash]: payload,\n }\n // Compute the hashes for this payload\n // const map = await PayloadBuilder.toAllHashMap([payload])\n for (const [key, payload] of Object.entries(map)) {\n let requestedPayloadFound = false\n const hash = key as Hash // Required cast as Object.entries always returns string keys\n // If this hash was requested\n if (\n requestedHashes.has(hash) // Indicate that we found it (but do not insert it yet). Since\n // one payload could satisfy two requested hashes (vit its dataHash\n // & rootHash) we only want to insert that payload once but we want\n // to keep track of all the hashes it satisfies so we can ask th\n // parents for the ones we did not find\n && !foundHashes.has(hash)\n ) {\n requestedPayloadFound = true\n // Add it to the list of found hashes\n foundHashes.add(hash)\n }\n if (requestedPayloadFound) foundPayloads.push(payload)\n }\n }\n // For all the hashes we did not find, ask the parents\n const notFoundHashes = [...difference(requestedHashes, foundHashes)]\n const [parentFoundPayloads] = await this.getFromParents(notFoundHashes)\n\n if (this.storeParentReads) {\n await this.insertWithConfig(parentFoundPayloads)\n }\n const result = this.omitClientMetaForDataHashes(\n hashes,\n (PayloadBuilder.omitPrivateStorageMeta([\n ...foundPayloads,\n ...parentFoundPayloads,\n ]) as WithStorageMeta<Payload>[]).toSorted(PayloadBuilder.compareStorageMeta),\n )\n\n // write to cache if we are caching\n if (cache !== undefined) {\n for (const payload of fromGet) {\n cache.set(payload._hash, payload)\n cache.set(payload._dataHash, payload)\n }\n for (const payload of parentFoundPayloads) {\n cache.set(payload._hash, payload)\n cache.set(payload._dataHash, payload)\n }\n }\n\n return result\n }\n\n protected insertHandler(_payloads: WithStorageMeta<Payload>[]): Promisable<WithStorageMeta<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.filterIncludeByEitherHash(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 return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n const emitEvents = config?.emitEvents ?? true\n const writeToParents = config?.writeToParents ?? true\n\n // remove the existing payloads\n const withStorageMeta = await PayloadBuilder.addStorageMeta(payloads)\n const hashes = withStorageMeta.map(p => p._hash)\n const existingPayloads = await this.getWithConfig(hashes)\n const existingHashes = new Set(existingPayloads.map(p => p._hash))\n const payloadsToInsert = withStorageMeta.filter(p => !existingHashes.has(p._hash))\n\n const insertedPayloads = await this.insertHandler(payloadsToInsert)\n\n if (writeToParents) {\n await this.writeToParents(insertedPayloads)\n }\n if (emitEvents) {\n await this.emit('inserted', {\n mod: this, payloads: insertedPayloads, outPayloads: insertedPayloads, inPayloads: payloads,\n })\n }\n this.reportPayloadCount()\n return PayloadBuilder.omitPrivateStorageMeta(insertedPayloads) as WithStorageMeta<Payload>[]\n }\n\n protected nextHandler(_options?: ArchivistNextOptions): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async nextWithConfig(options?: ArchivistNextOptions, _config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n const foundPayloads = await this.nextHandler(options)\n return PayloadBuilder.omitPrivateStorageMeta(foundPayloads) as WithStorageMeta<Payload>[]\n }\n\n protected async parentArchivists() {\n this._parentArchivists = this._parentArchivists ?? {\n commit: { ...await this.resolveArchivists(this.config?.parents?.commit, this.params.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._parentArchivists)\n }\n\n // the number of payloads in the archivist, -1 if not implemented\n // the implementations of these must be fast, so they may not be promises and should read an auto updated value\n protected payloadCountHandler() {\n return -1\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 sanitizedQuery = PayloadBuilder.omitStorageMeta(query) as T\n const sanitizedPayloads = PayloadBuilder.omitStorageMeta(payloads) as Payload[]\n const wrappedQuery = QueryBoundWitnessWrapper.parseQuery<ArchivistQueries>(sanitizedQuery, sanitizedPayloads)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(sanitizedQuery, sanitizedPayloads, 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 resultPayloads.push(...(await this.deleteWithConfig(queryPayload.hashes)))\n break\n }\n case ArchivistGetQuerySchema: {\n resultPayloads.push(...(await this.getWithConfig(queryPayload.hashes ?? [])))\n break\n }\n case ArchivistInsertQuerySchema: {\n resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, sanitizedPayloads)))\n break\n }\n case ArchivistNextQuerySchema: {\n resultPayloads.push(...(await this.nextHandler(queryPayload)))\n break\n }\n case ArchivistSnapshotQuerySchema: {\n resultPayloads.push(...(await this.snapshotHandler()))\n break\n }\n default: {\n const result = await super.queryHandler(sanitizedQuery, sanitizedPayloads)\n if (this.config.storeQueries) {\n await this.insertWithConfig([sanitizedQuery])\n }\n return PayloadBuilder.omitPrivateStorageMeta(result) as ModuleQueryHandlerResult\n }\n }\n if (this.config.storeQueries) {\n await this.insertWithConfig([sanitizedQuery])\n }\n return PayloadBuilder.omitPrivateStorageMeta(resultPayloads) as ModuleQueryHandlerResult\n }\n\n protected reportPayloadCount() {\n this._noOverride('reportPayloadCount')\n const gauge = this.payloadCountGauge\n if (gauge) {\n gauge.record(this.payloadCountHandler())\n }\n }\n\n protected snapshotHandler(): PromisableArray<ArchivistSnapshotPayload<WithStorageMeta<Payload>, Hash>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected override async startHandler() {\n if (this.config.getCache?.enabled === true) {\n this._getCache = new LRUCache({\n max: this.config.getCache?.maxEntries ?? 10_000,\n allowStale: true,\n noDisposeOnSet: false,\n updateAgeOnGet: true,\n })\n }\n const result = await super.startHandler()\n this.reportPayloadCount()\n return result\n }\n\n protected override async stateHandler(): Promise<Payload[]> {\n return [...await super.stateHandler(), await this.generateStats()]\n }\n\n protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<Payload[]> {\n return await parent.insert(PayloadBuilder.omitStorageMeta(payloads) as Payload[])\n }\n\n protected async writeToParents(payloads: Payload[]): Promise<Payload[]> {\n const parents = await this.parentArchivists()\n return (\n await Promise.all(\n Object.values(parents.write ?? {}).map(async (parent) => {\n return parent ? await this.writeToParent(parent, payloads) : undefined\n }),\n )\n ).filter(exists).flat()\n }\n\n private omitClientMetaForDataHashes<T extends Payload>(hashes: Hash[], payloads: WithStorageMeta<T>[]): WithStorageMeta<T>[] {\n return payloads.map((payload) => {\n // if retrieved by dataHash and not hash (both could have been specified)\n if (hashes.includes(payload._dataHash) && !hashes.includes(payload._hash)) {\n // scrub client meta\n const result = PayloadBuilder.omitClientMeta(payload) as WithStorageMeta<T>\n // we also scrub the _hash\n result._hash = result._dataHash\n return result\n } else {\n return payload\n }\n })\n }\n\n private async resolveArchivists(archivists: ModuleIdentifier[] = [], archivistInstances?: ArchivistInstance[]) {\n const archivistModules = (await Promise.all(archivists.map(archivist => this.resolve(archivist)))).filter(exists).filter(duplicateModules)\n\n assertEx(\n !this.requireAllParents || (archivistModules.length === archivists.length),\n () =>\n `Failed to find some archivists for ${this.modName} (set allRequired to false if ok)]`,\n )\n\n const archivistInstancesMap: Record<Address, ArchivistInstance> = {}\n for (let archivistInstance of archivistInstances ?? []) {\n archivistInstancesMap[archivistInstance.address] = archivistInstance\n }\n\n // eslint-disable-next-line unicorn/no-array-reduce\n return archivistModules.reduce<Record<Address, ArchivistInstance>>((prev, mod) => {\n prev[mod.address] = asArchivistInstance(mod, () => {\n isArchivistInstance(mod, { log: console })\n return `Unable to cast resolved module to an archivist: [${mod.address}, ${mod.modName}, ${mod.config.schema})}]`\n }, { required: true })\n\n return prev\n }, archivistInstancesMap)\n }\n}\n","export const StorageClassLabel = 'network.xyo.storage.class'\nexport type StorageClassLabelValue = 'memory' | 'disk' | 'network' | 'proxy' | 'unknown'\n"],"mappings":"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","names":["payload"]}
1
+ {"version":3,"sources":["../../src/AbstractArchivist.ts","../../src/StorageClassLabel.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport type { Gauge, Meter } from '@opentelemetry/api'\nimport type {\n Address, Hash, Promisable, PromisableArray,\n} from '@xylabs/sdk-js'\nimport {\n assertEx,\n difference,\n exists, globallyUnique,\n isNull, isUndefined,\n} from '@xylabs/sdk-js'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type {\n ArchivistAllQuery,\n ArchivistClearQuery,\n ArchivistCommitQuery,\n ArchivistDeleteQuery,\n ArchivistGetQuery,\n ArchivistInsertQuery,\n ArchivistInstance,\n ArchivistModuleEventData,\n ArchivistNextOptions,\n ArchivistNextQuery,\n ArchivistParams,\n ArchivistQueries,\n ArchivistSnapshotPayload,\n ArchivistSnapshotQuery,\n ArchivistStatsPayload,\n AttachableArchivistInstance,\n ReadArchivist,\n} from '@xyo-network/archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistGetQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n ArchivistSnapshotQuerySchema,\n ArchivistStatsPayloadSchema,\n asArchivistInstance,\n isArchivistInstance,\n} from '@xyo-network/archivist-model'\nimport type { BoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport type {\n ModuleConfig, ModuleIdentifier, ModuleQueryHandlerResult, ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { creatableModule, duplicateModules } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema, WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport { StorageClassLabel } from './StorageClassLabel.ts'\n\nconst NOT_IMPLEMENTED = 'Not implemented' as const\n\nexport interface ActionConfig {\n emitEvents?: boolean\n}\n\nexport interface InsertConfig extends ActionConfig {\n writeToParents?: boolean\n}\n\ninterface ArchivistParentInstanceMap {\n commit?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n read?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n write?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n}\n\ncreatableModule()\nexport abstract class AbstractArchivist<\n TParams extends ArchivistParams = ArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends AbstractModuleInstance<TParams, TEventData>\n implements AttachableArchivistInstance<TParams, TEventData, Payload> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = ArchivistConfigSchema\n static override readonly labels = { ...super.labels, [StorageClassLabel]: 'unknown' }\n static override readonly uniqueName = globallyUnique('AbstractArchivist', AbstractArchivist, 'xyo')\n\n // override this if a specialized archivist should have a different default next limit\n protected static defaultNextLimitSetting = 100\n\n private _getCache?: LRUCache<Hash, WithStorageMeta<Payload>>\n private _parentArchivists?: ArchivistParentInstanceMap\n private _payloadCountGauge?: Gauge | null\n private _payloadCountMeter?: Meter | null\n\n // do not override this! It is meant to get the this.defaultNextLimitSetting and work if it is overridden\n static get defaultNextLimit() {\n return this.defaultNextLimitSetting\n }\n\n override get queries(): Schema[] {\n return [ArchivistGetQuerySchema, ...super.queries]\n }\n\n get requireAllParents() {\n return this.config.requireAllParents ?? false\n }\n\n protected get payloadCountGauge() {\n const meter = this.payloadCountMeter\n if (!isNull(meter)) {\n this._payloadCountGauge = meter?.createGauge('payloadCount', { description: 'Payloads in the archivist' })\n }\n return this._payloadCountGauge\n }\n\n protected get payloadCountMeter(): Meter | null {\n if (isUndefined(this._payloadCountMeter)) {\n this._payloadCountMeter = this.params?.meterProvider?.getMeter(this.id) ?? null\n }\n return this._payloadCountMeter ?? null\n }\n\n protected get storeParentReads() {\n return !!this.config?.storeParentReads\n }\n\n /** @deprecated use next or snapshot instead */\n async all(): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('all')\n this.isSupportedQuery(ArchivistAllQuerySchema, 'all')\n return await this.spanAsync(`${this.id}|all`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return PayloadBuilder.omitPrivateStorageMeta(await this.allHandler()) as WithStorageMeta<Payload>[]\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n /** deprecated use nextQuery or snapshotQuery instead */\n async allQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('allQuery')\n const queryPayload: ArchivistAllQuery = { schema: ArchivistAllQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async clear(): Promise<void> {\n this._noOverride('clear')\n this.isSupportedQuery(ArchivistClearQuerySchema, 'clear')\n return await this.spanAsync(`${this.id}|clear`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n await this.clearHandler()\n this.reportPayloadCount()\n await this.emit('cleared', { mod: this })\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async clearQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('clearQuery')\n const queryPayload: ArchivistClearQuery = { schema: ArchivistClearQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async commit(): Promise<BoundWitness[]> {\n this._noOverride('commit')\n this.isSupportedQuery(ArchivistCommitQuerySchema, 'commit')\n return await this.spanAsync(`${this.id}commit`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.commitHandler()\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async commitQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('commitQuery')\n const queryPayload: ArchivistCommitQuery = { schema: ArchivistCommitQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async delete(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('delete')\n this.isSupportedQuery(ArchivistDeleteQuerySchema, 'delete')\n return await this.spanAsync(`${this.id}|delete`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.deleteWithConfig(hashes)\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async deleteQuery(hashes: Hash[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('deleteQuery')\n const queryPayload: ArchivistDeleteQuery = { hashes, schema: ArchivistDeleteQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async get(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('get')\n this.isSupportedQuery(ArchivistGetQuerySchema, 'get')\n return await this.spanAsync(`${this.id}|get`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.getWithConfig(hashes)\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async getQuery(hashes: Hash[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('getQuery')\n const queryPayload: ArchivistGetQuery = { hashes, schema: ArchivistGetQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async insert(payloads: Payload[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('insert')\n this.isSupportedQuery(ArchivistInsertQuerySchema, 'insert')\n return await this.spanAsync(`${this.id}|insert`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.insertWithConfig(PayloadBuilder.omitStorageMeta(payloads))\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async insertQuery(payloads: Payload[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('insertQuery')\n const queryPayload: ArchivistInsertQuery = { schema: ArchivistInsertQuerySchema }\n return await this.sendQueryRaw(queryPayload, payloads, account)\n }\n\n async next(options?: ArchivistNextOptions): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('next')\n this.isSupportedQuery(ArchivistNextQuerySchema, 'next')\n return await this.spanAsync(`${this.id}|next`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n const { limit = AbstractArchivist.defaultNextLimit, ...otherOptions } = options ?? {}\n return await this.nextWithConfig({ limit, ...otherOptions })\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async nextQuery(options?: ArchivistNextOptions, account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('nextQuery')\n const queryPayload: ArchivistNextQuery = { schema: ArchivistNextQuerySchema, ...options }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async snapshot(): Promise<ArchivistSnapshotPayload<WithStorageMeta<Payload>, Hash>[]> {\n this._noOverride('snapshot')\n this.isSupportedQuery(ArchivistSnapshotQuerySchema, 'snapshot')\n return await this.spanAsync(`${this.id}|snapshot`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n throw new Error('Cannot take snapshot while in a global reentrancy lock')\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.snapshotHandler()\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async snapshotQuery(account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('snapshotQuery')\n const queryPayload: ArchivistSnapshotQuery = { schema: ArchivistSnapshotQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n protected allHandler(): PromisableArray<WithStorageMeta<Payload>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected clearHandler(): Promisable<void> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected commitHandler(): Promisable<BoundWitness[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected deleteHandler(_hashes: Hash[]): PromisableArray<WithStorageMeta<Payload>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async deleteWithConfig(hashes: Hash[], config?: ActionConfig): Promise<WithStorageMeta<Payload>[]> {\n const emitEvents = config?.emitEvents ?? true\n\n const payloads = await this.deleteHandler(hashes)\n const hashesDeleted = payloads.map(p => p._hash)\n\n if (emitEvents) {\n await this.emit('deleted', {\n hashes: hashesDeleted, payloads, mod: this,\n })\n }\n this.reportPayloadCount()\n return payloads\n }\n\n protected generateStats(): Promisable<ArchivistStatsPayload> {\n return {\n payloadCount: this.payloadCountHandler(),\n schema: ArchivistStatsPayloadSchema,\n }\n }\n\n protected async getFromParent(hashes: Hash[], archivist: ReadArchivist): Promise<[WithStorageMeta<Payload>[], Hash[]]> {\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: Hash[]): Promise<[WithStorageMeta<Payload>[], Hash[]]> {\n const parents = Object.values((await this.parentArchivists())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithStorageMeta<Payload>[] = []\n\n // Intentionally doing this serially\n while (parentIndex < parents.length && remainingHashes.length > 0) {\n const parent = parents[parentIndex]\n if (parent) {\n const [found, notfound] = await this.getFromParent(remainingHashes, parent)\n result = [...result, ...found]\n remainingHashes = notfound\n }\n parentIndex++\n }\n return [result, remainingHashes]\n }\n\n protected getHandler(_hashes: Hash[]): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n // eslint-disable-next-line max-statements\n protected async getWithConfig(hashes: Hash[], _config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n // Filter out duplicates\n const requestedHashes = new Set(hashes)\n\n // read from cache if we are caching\n const cache = this._getCache\n let fromCache: WithStorageMeta<Payload>[] = []\n let remainingHashes = [...requestedHashes]\n if (cache !== undefined) {\n fromCache = hashes.map(hash => cache.get(hash)).filter(exists)\n remainingHashes = hashes.filter(hash => !fromCache.some(payload => payload?._hash === hash || payload?._dataHash === hash))\n }\n\n // Attempt to find the payloads in the store\n const fromGet = await this.getHandler([...remainingHashes])\n const gotten = [...fromCache, ...fromGet].toSorted(PayloadBuilder.compareStorageMeta)\n\n // Do not just blindly return what the archivist told us but\n // ensure to only return requested payloads and keep track of\n // the ones it did not find so we can ask the parents.\n const foundPayloads: WithStorageMeta<Payload>[] = []\n const foundHashes = new Set<Hash>()\n\n // We are iterating over the returned result from the archivist\n // (not the array of hashes passed in) to preserve the natural order of the\n // hashes as returned by the archivist as that should loosely\n // correspond to the order when iterated and the symmetry will\n // be helpful for debugging\n for (const payload of gotten) {\n // trusting the hashes from the cache and parent\n const map: Record<Hash, WithStorageMeta<Payload>> = {\n [payload._hash]: payload,\n [payload._dataHash]: payload,\n }\n // Compute the hashes for this payload\n // const map = await PayloadBuilder.toAllHashMap([payload])\n for (const [key, payload] of Object.entries(map)) {\n let requestedPayloadFound = false\n const hash = key as Hash // Required cast as Object.entries always returns string keys\n // If this hash was requested\n if (\n requestedHashes.has(hash) // Indicate that we found it (but do not insert it yet). Since\n // one payload could satisfy two requested hashes (vit its dataHash\n // & rootHash) we only want to insert that payload once but we want\n // to keep track of all the hashes it satisfies so we can ask th\n // parents for the ones we did not find\n && !foundHashes.has(hash)\n ) {\n requestedPayloadFound = true\n // Add it to the list of found hashes\n foundHashes.add(hash)\n }\n if (requestedPayloadFound) foundPayloads.push(payload)\n }\n }\n // For all the hashes we did not find, ask the parents\n const notFoundHashes = [...difference(requestedHashes, foundHashes)]\n const [parentFoundPayloads] = await this.getFromParents(notFoundHashes)\n\n if (this.storeParentReads) {\n await this.insertWithConfig(parentFoundPayloads)\n }\n const result = this.omitClientMetaForDataHashes(\n hashes,\n (PayloadBuilder.omitPrivateStorageMeta([\n ...foundPayloads,\n ...parentFoundPayloads,\n ]) as WithStorageMeta<Payload>[]).toSorted(PayloadBuilder.compareStorageMeta),\n )\n\n // write to cache if we are caching\n if (cache !== undefined) {\n for (const payload of fromGet) {\n cache.set(payload._hash, payload)\n cache.set(payload._dataHash, payload)\n }\n for (const payload of parentFoundPayloads) {\n cache.set(payload._hash, payload)\n cache.set(payload._dataHash, payload)\n }\n }\n\n return result\n }\n\n protected insertHandler(_payloads: WithStorageMeta<Payload>[]): Promisable<WithStorageMeta<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.filterIncludeByEitherHash(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 return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n const emitEvents = config?.emitEvents ?? true\n const writeToParents = config?.writeToParents ?? true\n\n // remove the existing payloads\n const withStorageMeta = await PayloadBuilder.addStorageMeta(payloads)\n const hashes = withStorageMeta.map(p => p._hash)\n const existingPayloads = await this.getWithConfig(hashes)\n const existingHashes = new Set(existingPayloads.map(p => p._hash))\n const payloadsToInsert = withStorageMeta.filter(p => !existingHashes.has(p._hash))\n\n const insertedPayloads = await this.insertHandler(payloadsToInsert)\n\n if (writeToParents) {\n await this.writeToParents(insertedPayloads)\n }\n if (emitEvents) {\n await this.emit('inserted', {\n mod: this, payloads: insertedPayloads, outPayloads: insertedPayloads, inPayloads: payloads,\n })\n }\n this.reportPayloadCount()\n return PayloadBuilder.omitPrivateStorageMeta(insertedPayloads) as WithStorageMeta<Payload>[]\n }\n\n protected nextHandler(_options?: ArchivistNextOptions): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async nextWithConfig(options?: ArchivistNextOptions, _config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n const foundPayloads = await this.nextHandler(options)\n return PayloadBuilder.omitPrivateStorageMeta(foundPayloads) as WithStorageMeta<Payload>[]\n }\n\n protected async parentArchivists() {\n this._parentArchivists = this._parentArchivists ?? {\n commit: { ...await this.resolveArchivists(this.config?.parents?.commit, this.params.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._parentArchivists)\n }\n\n // the number of payloads in the archivist, -1 if not implemented\n // the implementations of these must be fast, so they may not be promises and should read an auto updated value\n protected payloadCountHandler() {\n return -1\n }\n\n // eslint-disable-next-line max-statements\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 sanitizedQuery = PayloadBuilder.omitStorageMeta(query) as T\n const sanitizedPayloads = PayloadBuilder.omitStorageMeta(payloads) as Payload[]\n const wrappedQuery = QueryBoundWitnessWrapper.parseQuery<ArchivistQueries>(sanitizedQuery, sanitizedPayloads)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(sanitizedQuery, sanitizedPayloads, 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 typedQueryPayload = queryPayload as ArchivistDeleteQuery\n resultPayloads.push(...(await this.deleteWithConfig(typedQueryPayload.hashes)))\n break\n }\n case ArchivistGetQuerySchema: {\n const typedQueryPayload = queryPayload as ArchivistGetQuery\n resultPayloads.push(...(await this.getWithConfig(typedQueryPayload.hashes ?? [])))\n break\n }\n case ArchivistInsertQuerySchema: {\n resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, sanitizedPayloads)))\n break\n }\n case ArchivistNextQuerySchema: {\n const typedQueryPayload = queryPayload as ArchivistNextQuery\n resultPayloads.push(...(await this.nextHandler(typedQueryPayload)))\n break\n }\n case ArchivistSnapshotQuerySchema: {\n resultPayloads.push(...(await this.snapshotHandler()))\n break\n }\n default: {\n const result = await super.queryHandler(sanitizedQuery, sanitizedPayloads)\n if (this.config.storeQueries) {\n await this.insertWithConfig([sanitizedQuery])\n }\n return PayloadBuilder.omitPrivateStorageMeta(result) as ModuleQueryHandlerResult\n }\n }\n if (this.config.storeQueries) {\n await this.insertWithConfig([sanitizedQuery])\n }\n return PayloadBuilder.omitPrivateStorageMeta(resultPayloads) as ModuleQueryHandlerResult\n }\n\n protected reportPayloadCount() {\n this._noOverride('reportPayloadCount')\n const gauge = this.payloadCountGauge\n if (gauge) {\n gauge.record(this.payloadCountHandler())\n }\n }\n\n protected snapshotHandler(): PromisableArray<ArchivistSnapshotPayload<WithStorageMeta<Payload>, Hash>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected override async startHandler() {\n if (this.config.getCache?.enabled === true) {\n this._getCache = new LRUCache({\n max: this.config.getCache?.maxEntries ?? 10_000,\n allowStale: true,\n noDisposeOnSet: false,\n updateAgeOnGet: true,\n })\n }\n const result = await super.startHandler()\n this.reportPayloadCount()\n return result\n }\n\n protected override async stateHandler(): Promise<Payload[]> {\n return [...await super.stateHandler(), await this.generateStats()]\n }\n\n protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<Payload[]> {\n return await parent.insert(PayloadBuilder.omitStorageMeta(payloads) as Payload[])\n }\n\n protected async writeToParents(payloads: Payload[]): Promise<Payload[]> {\n const parents = await this.parentArchivists()\n return (\n await Promise.all(\n Object.values(parents.write ?? {}).map(async (parent) => {\n return parent ? await this.writeToParent(parent, payloads) : undefined\n }),\n )\n ).filter(exists).flat()\n }\n\n private omitClientMetaForDataHashes<T extends Payload>(hashes: Hash[], payloads: WithStorageMeta<T>[]): WithStorageMeta<T>[] {\n return payloads.map((payload) => {\n // if retrieved by dataHash and not hash (both could have been specified)\n if (hashes.includes(payload._dataHash) && !hashes.includes(payload._hash)) {\n // scrub client meta\n const result = PayloadBuilder.omitClientMeta(payload) as WithStorageMeta<T>\n // we also scrub the _hash\n result._hash = result._dataHash\n return result\n } else {\n return payload\n }\n })\n }\n\n private async resolveArchivists(archivists: ModuleIdentifier[] = [], archivistInstances?: ArchivistInstance[]) {\n const archivistModules = (await Promise.all(archivists.map(archivist => this.resolve(archivist)))).filter(exists).filter(duplicateModules)\n\n assertEx(\n !this.requireAllParents || (archivistModules.length === archivists.length),\n () =>\n `Failed to find some archivists for ${this.modName} (set allRequired to false if ok)]`,\n )\n\n const archivistInstancesMap: Record<Address, ArchivistInstance> = {}\n for (let archivistInstance of archivistInstances ?? []) {\n archivistInstancesMap[archivistInstance.address] = archivistInstance\n }\n\n // eslint-disable-next-line unicorn/no-array-reduce\n return archivistModules.reduce<Record<Address, ArchivistInstance>>((prev, mod) => {\n prev[mod.address] = asArchivistInstance(mod, () => {\n isArchivistInstance(mod, { log: console })\n return `Unable to cast resolved module to an archivist: [${mod.address}, ${mod.modName}, ${mod.config.schema})}]`\n }, { required: true })\n\n return prev\n }, archivistInstancesMap)\n }\n}\n","export const StorageClassLabel = 'network.xyo.storage.class'\nexport type StorageClassLabelValue = 'memory' | 'disk' | 'network' | 'proxy' | 'unknown'\n"],"mappings":"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","names":["payload"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/archivist-abstract",
3
- "version": "5.2.25",
3
+ "version": "5.3.0",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -37,20 +37,20 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@opentelemetry/api": "^1.9.0",
40
- "@xylabs/sdk-js": "~5.0.63",
41
- "@xyo-network/account-model": "~5.2.25",
42
- "@xyo-network/archivist-model": "~5.2.25",
43
- "@xyo-network/boundwitness-model": "~5.2.25",
44
- "@xyo-network/boundwitness-wrapper": "~5.2.25",
45
- "@xyo-network/module-abstract": "~5.2.25",
46
- "@xyo-network/module-model": "~5.2.25",
47
- "@xyo-network/payload-builder": "~5.2.25",
48
- "@xyo-network/payload-model": "~5.2.25",
49
- "lru-cache": "^11.2.4"
40
+ "@xylabs/sdk-js": "~5.0.64",
41
+ "@xyo-network/account-model": "~5.3.0",
42
+ "@xyo-network/archivist-model": "~5.3.0",
43
+ "@xyo-network/boundwitness-model": "~5.3.0",
44
+ "@xyo-network/boundwitness-wrapper": "~5.3.0",
45
+ "@xyo-network/module-abstract": "~5.3.0",
46
+ "@xyo-network/module-model": "~5.3.0",
47
+ "@xyo-network/payload-builder": "~5.3.0",
48
+ "@xyo-network/payload-model": "~5.3.0",
49
+ "lru-cache": "^11.2.5"
50
50
  },
51
51
  "devDependencies": {
52
- "@xylabs/ts-scripts-yarn3": "~7.2.32",
53
- "@xylabs/tsconfig": "~7.2.32",
52
+ "@xylabs/ts-scripts-yarn3": "~7.3.2",
53
+ "@xylabs/tsconfig": "~7.3.2",
54
54
  "typescript": "~5.9.3"
55
55
  },
56
56
  "publishConfig": {
@@ -99,7 +99,7 @@ export abstract class AbstractArchivist<
99
99
  return this.defaultNextLimitSetting
100
100
  }
101
101
 
102
- override get queries(): string[] {
102
+ override get queries(): Schema[] {
103
103
  return [ArchivistGetQuerySchema, ...super.queries]
104
104
  }
105
105
 
@@ -143,7 +143,7 @@ export abstract class AbstractArchivist<
143
143
  } finally {
144
144
  this.globalReentrancyMutex?.release()
145
145
  }
146
- }, { timeBudgetLimit: 100 })
146
+ }, { timeBudgetLimit: this.timeBudget })
147
147
  }
148
148
 
149
149
  /** deprecated use nextQuery or snapshotQuery instead */
@@ -171,7 +171,7 @@ export abstract class AbstractArchivist<
171
171
  } finally {
172
172
  this.globalReentrancyMutex?.release()
173
173
  }
174
- }, { timeBudgetLimit: 100 })
174
+ }, { timeBudgetLimit: this.timeBudget })
175
175
  }
176
176
 
177
177
  async clearQuery(account: AccountInstance): Promise<ModuleQueryResult> {
@@ -196,7 +196,7 @@ export abstract class AbstractArchivist<
196
196
  } finally {
197
197
  this.globalReentrancyMutex?.release()
198
198
  }
199
- }, { timeBudgetLimit: 200 })
199
+ }, { timeBudgetLimit: this.timeBudget })
200
200
  }
201
201
 
202
202
  async commitQuery(account: AccountInstance): Promise<ModuleQueryResult> {
@@ -221,7 +221,7 @@ export abstract class AbstractArchivist<
221
221
  } finally {
222
222
  this.globalReentrancyMutex?.release()
223
223
  }
224
- }, { timeBudgetLimit: 200 })
224
+ }, { timeBudgetLimit: this.timeBudget })
225
225
  }
226
226
 
227
227
  async deleteQuery(hashes: Hash[], account?: AccountInstance): Promise<ModuleQueryResult> {
@@ -246,7 +246,7 @@ export abstract class AbstractArchivist<
246
246
  } finally {
247
247
  this.globalReentrancyMutex?.release()
248
248
  }
249
- }, { timeBudgetLimit: 200 })
249
+ }, { timeBudgetLimit: this.timeBudget })
250
250
  }
251
251
 
252
252
  async getQuery(hashes: Hash[], account?: AccountInstance): Promise<ModuleQueryResult> {
@@ -271,7 +271,7 @@ export abstract class AbstractArchivist<
271
271
  } finally {
272
272
  this.globalReentrancyMutex?.release()
273
273
  }
274
- }, { timeBudgetLimit: 200 })
274
+ }, { timeBudgetLimit: this.timeBudget })
275
275
  }
276
276
 
277
277
  async insertQuery(payloads: Payload[], account?: AccountInstance): Promise<ModuleQueryResult> {
@@ -297,7 +297,7 @@ export abstract class AbstractArchivist<
297
297
  } finally {
298
298
  this.globalReentrancyMutex?.release()
299
299
  }
300
- }, { timeBudgetLimit: 200 })
300
+ }, { timeBudgetLimit: this.timeBudget })
301
301
  }
302
302
 
303
303
  async nextQuery(options?: ArchivistNextOptions, account?: AccountInstance): Promise<ModuleQueryResult> {
@@ -322,7 +322,7 @@ export abstract class AbstractArchivist<
322
322
  } finally {
323
323
  this.globalReentrancyMutex?.release()
324
324
  }
325
- }, { timeBudgetLimit: 200 })
325
+ }, { timeBudgetLimit: this.timeBudget })
326
326
  }
327
327
 
328
328
  async snapshotQuery(account?: AccountInstance): Promise<ModuleQueryResult> {
@@ -561,6 +561,7 @@ export abstract class AbstractArchivist<
561
561
  return -1
562
562
  }
563
563
 
564
+ // eslint-disable-next-line max-statements
564
565
  protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(
565
566
  query: T,
566
567
  payloads: Payload[],
@@ -587,11 +588,13 @@ export abstract class AbstractArchivist<
587
588
  break
588
589
  }
589
590
  case ArchivistDeleteQuerySchema: {
590
- resultPayloads.push(...(await this.deleteWithConfig(queryPayload.hashes)))
591
+ const typedQueryPayload = queryPayload as ArchivistDeleteQuery
592
+ resultPayloads.push(...(await this.deleteWithConfig(typedQueryPayload.hashes)))
591
593
  break
592
594
  }
593
595
  case ArchivistGetQuerySchema: {
594
- resultPayloads.push(...(await this.getWithConfig(queryPayload.hashes ?? [])))
596
+ const typedQueryPayload = queryPayload as ArchivistGetQuery
597
+ resultPayloads.push(...(await this.getWithConfig(typedQueryPayload.hashes ?? [])))
595
598
  break
596
599
  }
597
600
  case ArchivistInsertQuerySchema: {
@@ -599,7 +602,8 @@ export abstract class AbstractArchivist<
599
602
  break
600
603
  }
601
604
  case ArchivistNextQuerySchema: {
602
- resultPayloads.push(...(await this.nextHandler(queryPayload)))
605
+ const typedQueryPayload = queryPayload as ArchivistNextQuery
606
+ resultPayloads.push(...(await this.nextHandler(typedQueryPayload)))
603
607
  break
604
608
  }
605
609
  case ArchivistSnapshotQuerySchema: {