@xyo-network/sdk 7.4.2 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/neutral/api-location-diviner.mjs +1 -1
  2. package/dist/neutral/api-location-diviner.mjs.map +2 -2
  3. package/dist/neutral/archivist-abstract.mjs +30 -25
  4. package/dist/neutral/archivist-abstract.mjs.map +2 -2
  5. package/dist/neutral/archivist-generic.mjs +4 -2
  6. package/dist/neutral/archivist-generic.mjs.map +2 -2
  7. package/dist/neutral/archivist-memory.mjs +5 -4
  8. package/dist/neutral/archivist-memory.mjs.map +2 -2
  9. package/dist/neutral/archivist-model.mjs +10 -5
  10. package/dist/neutral/archivist-model.mjs.map +2 -2
  11. package/dist/neutral/archivist-view.mjs +5 -3
  12. package/dist/neutral/archivist-view.mjs.map +2 -2
  13. package/dist/neutral/boundwitness-loader.mjs +11 -6
  14. package/dist/neutral/boundwitness-loader.mjs.map +2 -2
  15. package/dist/neutral/bridge-abstract.mjs +39 -26
  16. package/dist/neutral/bridge-abstract.mjs.map +2 -2
  17. package/dist/neutral/bridge-http.mjs +19 -15
  18. package/dist/neutral/bridge-http.mjs.map +2 -2
  19. package/dist/neutral/bridge-wrapper.mjs +4 -2
  20. package/dist/neutral/bridge-wrapper.mjs.map +2 -2
  21. package/dist/neutral/diviner-abstract.mjs +2 -2
  22. package/dist/neutral/diviner-abstract.mjs.map +2 -2
  23. package/dist/neutral/diviner-boundwitness.memory.mjs +4 -5
  24. package/dist/neutral/diviner-boundwitness.memory.mjs.map +2 -2
  25. package/dist/neutral/diviner-boundwitness.mjs +4 -5
  26. package/dist/neutral/diviner-boundwitness.mjs.map +2 -2
  27. package/dist/neutral/diviner-payload-generic.mjs +13 -15
  28. package/dist/neutral/diviner-payload-generic.mjs.map +2 -2
  29. package/dist/neutral/manifest-wrapper.mjs +4 -2
  30. package/dist/neutral/manifest-wrapper.mjs.map +2 -2
  31. package/dist/neutral/module-abstract.mjs +43 -46
  32. package/dist/neutral/module-abstract.mjs.map +3 -3
  33. package/dist/neutral/module-model.mjs +18 -1
  34. package/dist/neutral/module-model.mjs.map +2 -2
  35. package/dist/neutral/module-resolver.mjs +59 -51
  36. package/dist/neutral/module-resolver.mjs.map +3 -3
  37. package/dist/neutral/module-wrapper.mjs +11 -6
  38. package/dist/neutral/module-wrapper.mjs.map +2 -2
  39. package/dist/neutral/modules/archivist-abstract/AbstractArchivist.d.ts.map +1 -1
  40. package/dist/neutral/modules/archivist-generic/Archivist.d.ts.map +1 -1
  41. package/dist/neutral/modules/archivist-memory/MemoryDriver.d.ts.map +1 -1
  42. package/dist/neutral/modules/archivist-model/lib/getBoundWitness.d.ts.map +1 -1
  43. package/dist/neutral/modules/archivist-model/lib/hydrateBoundWitness.d.ts.map +1 -1
  44. package/dist/neutral/modules/archivist-view/ViewArchivist.d.ts.map +1 -1
  45. package/dist/neutral/modules/boundwitness-loader/Loader.d.ts.map +1 -1
  46. package/dist/neutral/modules/bridge-abstract/AbstractBridge.d.ts.map +1 -1
  47. package/dist/neutral/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.d.ts.map +1 -1
  48. package/dist/neutral/modules/bridge-http/HttpBridge.d.ts.map +1 -1
  49. package/dist/neutral/modules/bridge-http/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  50. package/dist/neutral/modules/bridge-wrapper/BridgeWrapper.d.ts.map +1 -1
  51. package/dist/neutral/modules/diviner-boundwitness/MemoryBoundWitnessDiviner.d.ts.map +1 -1
  52. package/dist/neutral/modules/diviner-payload-generic/Diviner.d.ts.map +1 -1
  53. package/dist/neutral/modules/manifest-wrapper/Wrapper.d.ts.map +1 -1
  54. package/dist/neutral/modules/manifest-wrapper/WrapperEx.d.ts.map +1 -1
  55. package/dist/neutral/modules/module-abstract/AbstractModule.d.ts +0 -1
  56. package/dist/neutral/modules/module-abstract/AbstractModule.d.ts.map +1 -1
  57. package/dist/neutral/modules/module-abstract/AbstractModuleInstance.d.ts.map +1 -1
  58. package/dist/neutral/modules/module-abstract/QueryValidator/ModuleConfigQueryValidator.d.ts.map +1 -1
  59. package/dist/neutral/modules/module-model/QueryableModule/IsQueryableModuleFactory.d.ts.map +1 -1
  60. package/dist/neutral/modules/module-resolver/CompositeModuleResolver.d.ts.map +1 -1
  61. package/dist/neutral/modules/module-resolver/ResolveHelper/ResolveHelper.d.ts.map +1 -1
  62. package/dist/neutral/modules/module-resolver/ResolveHelper/resolveAll.d.ts.map +1 -1
  63. package/dist/neutral/modules/module-resolver/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -1
  64. package/dist/neutral/modules/module-resolver/ResolveHelper/resolvePathToAddress.d.ts.map +1 -1
  65. package/dist/neutral/modules/module-resolver/SimpleModuleResolver.d.ts.map +1 -1
  66. package/dist/neutral/modules/module-wrapper/ModuleWrapper.d.ts.map +1 -1
  67. package/dist/neutral/modules/node-abstract/AbstractNode.d.ts.map +1 -1
  68. package/dist/neutral/modules/node-memory/MemoryNode.d.ts.map +1 -1
  69. package/dist/neutral/modules/node-memory/NodeHelper/flatAttachToExistingNode.d.ts.map +1 -1
  70. package/dist/neutral/modules/node-view/ViewNode.d.ts.map +1 -1
  71. package/dist/neutral/modules/node-wrapper/NodeWrapper.d.ts.map +1 -1
  72. package/dist/neutral/modules/payloadset-plugin/Resolver.d.ts.map +1 -1
  73. package/dist/neutral/modules/sentinel-abstract/AbstractSentinel.d.ts.map +1 -1
  74. package/dist/neutral/modules/sentinel-memory/MemorySentinel.d.ts.map +1 -1
  75. package/dist/neutral/modules/sentinel-memory/SentinelRunner.d.ts.map +1 -1
  76. package/dist/neutral/modules/witness-abstract/AbstractWitness.d.ts.map +1 -1
  77. package/dist/neutral/node-abstract.mjs +8 -4
  78. package/dist/neutral/node-abstract.mjs.map +2 -2
  79. package/dist/neutral/node-memory.mjs +6 -4
  80. package/dist/neutral/node-memory.mjs.map +2 -2
  81. package/dist/neutral/node-view.mjs +2 -1
  82. package/dist/neutral/node-view.mjs.map +2 -2
  83. package/dist/neutral/node-wrapper.mjs +16 -7
  84. package/dist/neutral/node-wrapper.mjs.map +2 -2
  85. package/dist/neutral/payloadset-plugin.mjs +11 -10
  86. package/dist/neutral/payloadset-plugin.mjs.map +2 -2
  87. package/dist/neutral/sentinel-abstract.mjs +4 -3
  88. package/dist/neutral/sentinel-abstract.mjs.map +2 -2
  89. package/dist/neutral/sentinel-memory.mjs +12 -7
  90. package/dist/neutral/sentinel-memory.mjs.map +2 -2
  91. package/dist/neutral/witness-abstract.mjs +4 -3
  92. package/dist/neutral/witness-abstract.mjs.map +2 -2
  93. package/dist/node/modules/archivist-abstract/AbstractArchivist.d.ts.map +1 -1
  94. package/dist/node/modules/archivist-generic/Archivist.d.ts.map +1 -1
  95. package/dist/node/modules/archivist-memory/MemoryDriver.d.ts.map +1 -1
  96. package/dist/node/modules/archivist-model/lib/getBoundWitness.d.ts.map +1 -1
  97. package/dist/node/modules/archivist-model/lib/hydrateBoundWitness.d.ts.map +1 -1
  98. package/dist/node/modules/archivist-view/ViewArchivist.d.ts.map +1 -1
  99. package/dist/node/modules/boundwitness-loader/Loader.d.ts.map +1 -1
  100. package/dist/node/modules/bridge-abstract/AbstractBridge.d.ts.map +1 -1
  101. package/dist/node/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.d.ts.map +1 -1
  102. package/dist/node/modules/bridge-http/HttpBridge.d.ts.map +1 -1
  103. package/dist/node/modules/bridge-http/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  104. package/dist/node/modules/bridge-wrapper/BridgeWrapper.d.ts.map +1 -1
  105. package/dist/node/modules/diviner-boundwitness/MemoryBoundWitnessDiviner.d.ts.map +1 -1
  106. package/dist/node/modules/diviner-payload-generic/Diviner.d.ts.map +1 -1
  107. package/dist/node/modules/manifest-wrapper/Wrapper.d.ts.map +1 -1
  108. package/dist/node/modules/manifest-wrapper/WrapperEx.d.ts.map +1 -1
  109. package/dist/node/modules/module-abstract/AbstractModule.d.ts +0 -1
  110. package/dist/node/modules/module-abstract/AbstractModule.d.ts.map +1 -1
  111. package/dist/node/modules/module-abstract/AbstractModuleInstance.d.ts.map +1 -1
  112. package/dist/node/modules/module-abstract/QueryValidator/ModuleConfigQueryValidator.d.ts.map +1 -1
  113. package/dist/node/modules/module-model/QueryableModule/IsQueryableModuleFactory.d.ts.map +1 -1
  114. package/dist/node/modules/module-resolver/CompositeModuleResolver.d.ts.map +1 -1
  115. package/dist/node/modules/module-resolver/ResolveHelper/ResolveHelper.d.ts.map +1 -1
  116. package/dist/node/modules/module-resolver/ResolveHelper/resolveAll.d.ts.map +1 -1
  117. package/dist/node/modules/module-resolver/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -1
  118. package/dist/node/modules/module-resolver/ResolveHelper/resolvePathToAddress.d.ts.map +1 -1
  119. package/dist/node/modules/module-resolver/SimpleModuleResolver.d.ts.map +1 -1
  120. package/dist/node/modules/module-wrapper/ModuleWrapper.d.ts.map +1 -1
  121. package/dist/node/modules/node-abstract/AbstractNode.d.ts.map +1 -1
  122. package/dist/node/modules/node-memory/MemoryNode.d.ts.map +1 -1
  123. package/dist/node/modules/node-memory/NodeHelper/flatAttachToExistingNode.d.ts.map +1 -1
  124. package/dist/node/modules/node-view/ViewNode.d.ts.map +1 -1
  125. package/dist/node/modules/node-wrapper/NodeWrapper.d.ts.map +1 -1
  126. package/dist/node/modules/payloadset-plugin/Resolver.d.ts.map +1 -1
  127. package/dist/node/modules/sentinel-abstract/AbstractSentinel.d.ts.map +1 -1
  128. package/dist/node/modules/sentinel-memory/MemorySentinel.d.ts.map +1 -1
  129. package/dist/node/modules/sentinel-memory/SentinelRunner.d.ts.map +1 -1
  130. package/dist/node/modules/witness-abstract/AbstractWitness.d.ts.map +1 -1
  131. package/package.json +11 -11
@@ -63,7 +63,7 @@ var MemoryDriver = class extends AbstractCreatable {
63
63
  _dataHashIndex;
64
64
  _sortedValues;
65
65
  get cache() {
66
- this._cache = this._cache ?? new LRUCache({
66
+ this._cache ??= new LRUCache({
67
67
  max: this.max,
68
68
  dispose: () => {
69
69
  this._sortedValues = void 0;
@@ -75,7 +75,7 @@ var MemoryDriver = class extends AbstractCreatable {
75
75
  return assertEx(this._config, () => "Driver config is not set");
76
76
  }
77
77
  get dataHashIndex() {
78
- this._dataHashIndex = this._dataHashIndex ?? new LRUCache({ max: this.max });
78
+ this._dataHashIndex ??= new LRUCache({ max: this.max });
79
79
  return this._dataHashIndex;
80
80
  }
81
81
  get max() {
@@ -108,13 +108,14 @@ var MemoryDriver = class extends AbstractCreatable {
108
108
  }
109
109
  async delete(hashes) {
110
110
  this._sortedValues = void 0;
111
- const deletedPayloads = (await Promise.all(this.cache.dump().map(async ([key, item]) => {
111
+ const candidateDeletions = await Promise.all(this.cache.dump().map(async ([key, item]) => {
112
112
  const itemValueDataHash = await PayloadBuilder.dataHash(item.value);
113
113
  if (hashes.includes(key) || hashes.includes(itemValueDataHash)) {
114
114
  this.cache.delete(key);
115
115
  return item.value;
116
116
  }
117
- }))).filter(exists);
117
+ }));
118
+ const deletedPayloads = candidateDeletions.filter(exists);
118
119
  this.rebuildDataHashIndex();
119
120
  return deletedPayloads;
120
121
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/archivist-memory/Archivist.ts", "../../src/modules/archivist-memory/Config.ts", "../../src/modules/archivist-memory/MemoryDriver.ts"],
4
- "sourcesContent": ["import type { Schema } from '@xyo-network/sdk-protocol'\n\nimport { StorageClassLabel } from '#archivist-abstract'\nimport type { GenericArchivistParams } from '#archivist-generic'\nimport { GenericArchivist } from '#archivist-generic'\nimport type {\n ArchivistModuleEventData,\n AttachableArchivistInstance,\n} from '#archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n} from '#archivist-model'\nimport type {\n AnyConfigSchema, AttachableModuleInstance, ModuleInstance,\n} from '#module-model'\nimport { creatableModule } from '#module-model'\n\nimport type { MemoryArchivistConfig } from './Config.ts'\nimport { MemoryArchivistConfigSchema } from './Config.ts'\nimport { MemoryDriver } from './MemoryDriver.ts'\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>>\n = GenericArchivistParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends GenericArchivist<TParams, TEventData>\n implements AttachableArchivistInstance, ModuleInstance {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, MemoryArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = MemoryArchivistConfigSchema\n static override readonly labels: {\n 'network.xyo.storage.class': string\n } = { ...super.labels, [StorageClassLabel]: 'memory' }\n\n override get queries(): Schema[] {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistNextQuerySchema,\n ...super.queries,\n ]\n }\n\n static override async paramsHandler<T extends AttachableModuleInstance<MemoryArchivistParams, ArchivistModuleEventData>>(\n inParams?: Partial<T['params']>,\n ): Promise<T['params']> {\n const superParams = await super.paramsHandler(inParams)\n return { ...superParams, driver: superParams.driver ?? await MemoryDriver.create(superParams) }\n }\n}\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, type Payload, type Schema,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ArchivistConfig } from '#archivist-model'\nimport { ArchivistConfigZod } from '#archivist-model'\n\nexport const MemoryArchivistConfigSchema: 'network.xyo.archivist.memory.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.memory.config', true)\nexport type MemoryArchivistConfigSchema = typeof MemoryArchivistConfigSchema\n\nexport const MemoryArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ArchivistConfigZod)['shape'], 'schema'>\n & {\n max: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n schema: z.ZodMiniLiteral<MemoryArchivistConfigSchema>\n },\n z.core.$strip\n> = z.extend(ArchivistConfigZod, {\n max: z.optional(z.number()),\n schema: z.literal(MemoryArchivistConfigSchema),\n})\n\nexport type MemoryArchivistConfigBase = z.infer<typeof MemoryArchivistConfigZod>\n\nexport const isMemoryArchivistConfig: ReturnType<typeof zodIsFactory<MemoryArchivistConfigBase>> = zodIsFactory(MemoryArchivistConfigZod)\nexport const asMemoryArchivistConfig: ReturnType<typeof zodAsFactory<MemoryArchivistConfigBase>> = zodAsFactory(MemoryArchivistConfigZod, 'asMemoryArchivistConfig')\nexport const toMemoryArchivistConfig: ReturnType<typeof zodToFactory<MemoryArchivistConfigBase>> = zodToFactory(MemoryArchivistConfigZod, 'toMemoryArchivistConfig')\n\nexport type MemoryArchivistConfig<TConfig extends Payload | EmptyObject | void = void, TSchema extends Schema | void = void> = ArchivistConfig<\n WithAdditional<\n {\n max?: number\n },\n TConfig\n >,\n TSchema extends Schema ? TSchema : MemoryArchivistConfigSchema | ArchivistConfig['schema']\n>\n", "import type {\n BrandedHash,\n CreatableParams, Hash, Hex, Promisable,\n} from '@ariestools/sdk'\nimport {\n AbstractCreatable, assertEx,\n creatable, exists,\n isDefined,\n} from '@ariestools/sdk'\nimport type { Payload, WithStorageMeta } from '@xyo-network/sdk-protocol'\nimport { PayloadBuilder } from '@xyo-network/sdk-protocol'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ArchivistDriver, ArchivistNextOptions } from '#archivist-model'\n\nexport interface MemoryDriverConfig {\n max?: number\n}\n\nexport interface MemoryDriverParams extends CreatableParams {\n config: MemoryDriverConfig\n}\n\n@creatable()\nexport class MemoryDriver extends AbstractCreatable<MemoryDriverParams>\n implements ArchivistDriver<Hash, Payload, WithStorageMeta<Payload>> {\n private _cache?: LRUCache<Hash, WithStorageMeta<Payload>>\n private _config?: MemoryDriverConfig\n private _dataHashIndex?: LRUCache<Hash, Hash>\n private _sortedValues?: WithStorageMeta<Payload>[]\n\n protected get cache(): LRUCache<BrandedHash, WithStorageMeta<Payload>> {\n this._cache = this._cache ?? new LRUCache<Hash, WithStorageMeta<Payload>>({\n max: this.max,\n dispose: () => { this._sortedValues = undefined },\n })\n return this._cache\n }\n\n protected get config(): MemoryDriverConfig {\n return assertEx(this._config, () => 'Driver config is not set')\n }\n\n protected get dataHashIndex(): LRUCache<BrandedHash, BrandedHash> {\n this._dataHashIndex = this._dataHashIndex ?? new LRUCache<Hash, Hash>({ max: this.max })\n return this._dataHashIndex\n }\n\n protected get max(): number {\n return this.config?.max ?? 10_000\n }\n\n protected get sortedValues(): WithStorageMeta<Payload>[] {\n this._sortedValues ??= this.cache.values().filter(exists).toArray().toSorted(PayloadBuilder.compareStorageMeta)\n return this._sortedValues\n }\n\n private static findIndexFromCursor(payloads: WithStorageMeta[], cursor: Hex) {\n const index = payloads.findIndex(({ _sequence }) => _sequence === cursor)\n if (index === -1) {\n return Infinity // move to the end\n }\n return index\n }\n\n all(): Promisable<WithStorageMeta<Payload>[]> {\n return [...this.sortedValues]\n }\n\n clear(): void {\n this.cache.clear()\n this._dataHashIndex = new LRUCache<Hash, Hash>({ max: this.max })\n this._sortedValues = undefined\n }\n\n count(): number {\n return this.cache.size\n }\n\n override createHandler(): Promisable<void> {\n this._config = this.params.config ?? {}\n }\n\n async delete(hashes: Hash[]): Promise<WithStorageMeta[]> {\n this._sortedValues = undefined\n const deletedPayloads: WithStorageMeta<Payload>[] = (await Promise.all(this.cache\n .dump()\n .map(async ([key, item]) => {\n const itemValueDataHash = await PayloadBuilder.dataHash(item.value)\n if (hashes.includes(key) || hashes.includes(itemValueDataHash)) {\n this.cache.delete(key)\n return item.value\n }\n })))\n .filter(exists)\n this.rebuildDataHashIndex()\n return deletedPayloads\n }\n\n get(hashes: Hash[]): Promisable<WithStorageMeta<Payload>[]> {\n return hashes.map((hash) => {\n const exact = this.cache.get(hash)\n if (exact) return exact\n const resolvedHash = this.dataHashIndex.get(hash) ?? hash\n const result = this.cache.get(resolvedHash)\n if (resolvedHash !== hash && !result) {\n throw new Error('Missing referenced payload')\n }\n return result\n }).filter(exists)\n }\n\n insert(payloads: WithStorageMeta<Payload>[]): WithStorageMeta<Payload>[] {\n this._sortedValues = undefined\n const payloadsWithMeta = payloads.toSorted(PayloadBuilder.compareStorageMeta)\n return payloadsWithMeta.map((payload) => {\n return this.insertPayloadIntoCache(payload)\n })\n }\n\n next(options?: ArchivistNextOptions): Promisable<WithStorageMeta<Payload>[]> {\n const {\n limit = 100, cursor, order, open = true,\n } = options ?? {}\n const all = order === 'desc' ? this.sortedValues.toReversed() : this.sortedValues\n const startIndex = isDefined(cursor)\n ? MemoryDriver.findIndexFromCursor(all, cursor) + (open ? 1 : 0)\n : 0\n return all.slice(startIndex, startIndex + limit)\n }\n\n private insertPayloadIntoCache(payload: WithStorageMeta<Payload>): WithStorageMeta<Payload> {\n this.cache.set(payload._hash, payload)\n this.dataHashIndex.set(payload._dataHash, payload._hash)\n return payload\n }\n\n private rebuildDataHashIndex() {\n this._dataHashIndex = new LRUCache<Hash, Hash>({ max: this.max })\n const payloads = this.cache.dump().map(([, item]) => item.value)\n for (const payload of payloads) {\n this.dataHashIndex.set(payload._dataHash, payload._hash)\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAEA,SAAS,yBAAyB;AAElC,SAAS,wBAAwB;AAKjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP,SAAS,uBAAuB;;;ACnBhC;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AACP;AAAA,EACE;AAAA,OACK;AACP,YAAY,OAAO;AAGnB,SAAS,0BAA0B;AAE5B,IAAM,8BAET,SAAS,uCAAuC,IAAI;AAGjD,IAAM,2BAOP,SAAO,oBAAoB;AAAA,EAC/B,KAAO,WAAW,SAAO,CAAC;AAAA,EAC1B,QAAU,UAAQ,2BAA2B;AAC/C,CAAC;AAIM,IAAM,0BAAsF,aAAa,wBAAwB;AACjI,IAAM,0BAAsF,aAAa,0BAA0B,yBAAyB;AAC5J,IAAM,0BAAsF,aAAa,0BAA0B,yBAAyB;;;AC7BnK;AAAA,EACE;AAAA,EAAmB;AAAA,EACnB;AAAA,EAAW;AAAA,EACX;AAAA,OACK;AAEP,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AAalB,IAAM,eAAN,cAA2B,kBACoC;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,IAAc,QAAyD;AACrE,SAAK,SAAS,KAAK,UAAU,IAAI,SAAyC;AAAA,MACxE,KAAK,KAAK;AAAA,MACV,SAAS,MAAM;AAAE,aAAK,gBAAgB;AAAA,MAAU;AAAA,IAClD,CAAC;AACD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,SAA6B;AACzC,WAAO,SAAS,KAAK,SAAS,MAAM,0BAA0B;AAAA,EAChE;AAAA,EAEA,IAAc,gBAAoD;AAChE,SAAK,iBAAiB,KAAK,kBAAkB,IAAI,SAAqB,EAAE,KAAK,KAAK,IAAI,CAAC;AACvF,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,MAAc;AAC1B,WAAO,KAAK,QAAQ,OAAO;AAAA,EAC7B;AAAA,EAEA,IAAc,eAA2C;AACvD,SAAK,kBAAkB,KAAK,MAAM,OAAO,EAAE,OAAO,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,kBAAkB;AAC9G,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,OAAe,oBAAoB,UAA6B,QAAa;AAC3E,UAAM,QAAQ,SAAS,UAAU,CAAC,EAAE,UAAU,MAAM,cAAc,MAAM;AACxE,QAAI,UAAU,IAAI;AAChB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAA8C;AAC5C,WAAO,CAAC,GAAG,KAAK,YAAY;AAAA,EAC9B;AAAA,EAEA,QAAc;AACZ,SAAK,MAAM,MAAM;AACjB,SAAK,iBAAiB,IAAI,SAAqB,EAAE,KAAK,KAAK,IAAI,CAAC;AAChE,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,QAAgB;AACd,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAES,gBAAkC;AACzC,SAAK,UAAU,KAAK,OAAO,UAAU,CAAC;AAAA,EACxC;AAAA,EAEA,MAAM,OAAO,QAA4C;AACvD,SAAK,gBAAgB;AACrB,UAAM,mBAA+C,MAAM,QAAQ,IAAI,KAAK,MACzE,KAAK,EACL,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM;AAC1B,YAAM,oBAAoB,MAAM,eAAe,SAAS,KAAK,KAAK;AAClE,UAAI,OAAO,SAAS,GAAG,KAAK,OAAO,SAAS,iBAAiB,GAAG;AAC9D,aAAK,MAAM,OAAO,GAAG;AACrB,eAAO,KAAK;AAAA,MACd;AAAA,IACF,CAAC,CAAC,GACD,OAAO,MAAM;AAChB,SAAK,qBAAqB;AAC1B,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,QAAwD;AAC1D,WAAO,OAAO,IAAI,CAAC,SAAS;AAC1B,YAAM,QAAQ,KAAK,MAAM,IAAI,IAAI;AACjC,UAAI,MAAO,QAAO;AAClB,YAAM,eAAe,KAAK,cAAc,IAAI,IAAI,KAAK;AACrD,YAAM,SAAS,KAAK,MAAM,IAAI,YAAY;AAC1C,UAAI,iBAAiB,QAAQ,CAAC,QAAQ;AACpC,cAAM,IAAI,MAAM,4BAA4B;AAAA,MAC9C;AACA,aAAO;AAAA,IACT,CAAC,EAAE,OAAO,MAAM;AAAA,EAClB;AAAA,EAEA,OAAO,UAAkE;AACvE,SAAK,gBAAgB;AACrB,UAAM,mBAAmB,SAAS,SAAS,eAAe,kBAAkB;AAC5E,WAAO,iBAAiB,IAAI,CAAC,YAAY;AACvC,aAAO,KAAK,uBAAuB,OAAO;AAAA,IAC5C,CAAC;AAAA,EACH;AAAA,EAEA,KAAK,SAAwE;AAC3E,UAAM;AAAA,MACJ,QAAQ;AAAA,MAAK;AAAA,MAAQ;AAAA,MAAO,OAAO;AAAA,IACrC,IAAI,WAAW,CAAC;AAChB,UAAM,MAAM,UAAU,SAAS,KAAK,aAAa,WAAW,IAAI,KAAK;AACrE,UAAM,aAAa,UAAU,MAAM,IAC/B,aAAa,oBAAoB,KAAK,MAAM,KAAK,OAAO,IAAI,KAC5D;AACJ,WAAO,IAAI,MAAM,YAAY,aAAa,KAAK;AAAA,EACjD;AAAA,EAEQ,uBAAuB,SAA6D;AAC1F,SAAK,MAAM,IAAI,QAAQ,OAAO,OAAO;AACrC,SAAK,cAAc,IAAI,QAAQ,WAAW,QAAQ,KAAK;AACvD,WAAO;AAAA,EACT;AAAA,EAEQ,uBAAuB;AAC7B,SAAK,iBAAiB,IAAI,SAAqB,EAAE,KAAK,KAAK,IAAI,CAAC;AAChE,UAAM,WAAW,KAAK,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,MAAM,KAAK,KAAK;AAC/D,eAAW,WAAW,UAAU;AAC9B,WAAK,cAAc,IAAI,QAAQ,WAAW,QAAQ,KAAK;AAAA,IACzD;AAAA,EACF;AACF;AAxHa,eAAN;AAAA,EADN,UAAU;AAAA,GACE;;;AFKN,IAAM,kBAAN,cAIG,iBAC+C;AAAA,EAOvD,IAAa,UAAoB;AAC/B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,MAAM;AAAA,IACX;AAAA,EACF;AAAA,EAEA,aAAsB,cACpB,UACsB;AACtB,UAAM,cAAc,MAAM,MAAM,cAAc,QAAQ;AACtD,WAAO,EAAE,GAAG,aAAa,QAAQ,YAAY,UAAU,MAAM,aAAa,OAAO,WAAW,EAAE;AAAA,EAChG;AACF;AAxBE,cANW,iBAMc,iBAA0B,CAAC,GAAG,6CAAM,kBAAe,2BAA2B;AACvG,cAPW,iBAOc,uBAA8B;AACvD,cARW,iBAQc,UAErB,EAAE,GAAG,6CAAM,WAAQ,CAAC,iBAAiB,GAAG,SAAS;AAV1C,kBAAN;AAAA,EADN,gBAAgB;AAAA,GACJ;",
4
+ "sourcesContent": ["import type { Schema } from '@xyo-network/sdk-protocol'\n\nimport { StorageClassLabel } from '#archivist-abstract'\nimport type { GenericArchivistParams } from '#archivist-generic'\nimport { GenericArchivist } from '#archivist-generic'\nimport type {\n ArchivistModuleEventData,\n AttachableArchivistInstance,\n} from '#archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n} from '#archivist-model'\nimport type {\n AnyConfigSchema, AttachableModuleInstance, ModuleInstance,\n} from '#module-model'\nimport { creatableModule } from '#module-model'\n\nimport type { MemoryArchivistConfig } from './Config.ts'\nimport { MemoryArchivistConfigSchema } from './Config.ts'\nimport { MemoryDriver } from './MemoryDriver.ts'\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>>\n = GenericArchivistParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends GenericArchivist<TParams, TEventData>\n implements AttachableArchivistInstance, ModuleInstance {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, MemoryArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = MemoryArchivistConfigSchema\n static override readonly labels: {\n 'network.xyo.storage.class': string\n } = { ...super.labels, [StorageClassLabel]: 'memory' }\n\n override get queries(): Schema[] {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistNextQuerySchema,\n ...super.queries,\n ]\n }\n\n static override async paramsHandler<T extends AttachableModuleInstance<MemoryArchivistParams, ArchivistModuleEventData>>(\n inParams?: Partial<T['params']>,\n ): Promise<T['params']> {\n const superParams = await super.paramsHandler(inParams)\n return { ...superParams, driver: superParams.driver ?? await MemoryDriver.create(superParams) }\n }\n}\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, type Payload, type Schema,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ArchivistConfig } from '#archivist-model'\nimport { ArchivistConfigZod } from '#archivist-model'\n\nexport const MemoryArchivistConfigSchema: 'network.xyo.archivist.memory.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.memory.config', true)\nexport type MemoryArchivistConfigSchema = typeof MemoryArchivistConfigSchema\n\nexport const MemoryArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ArchivistConfigZod)['shape'], 'schema'>\n & {\n max: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n schema: z.ZodMiniLiteral<MemoryArchivistConfigSchema>\n },\n z.core.$strip\n> = z.extend(ArchivistConfigZod, {\n max: z.optional(z.number()),\n schema: z.literal(MemoryArchivistConfigSchema),\n})\n\nexport type MemoryArchivistConfigBase = z.infer<typeof MemoryArchivistConfigZod>\n\nexport const isMemoryArchivistConfig: ReturnType<typeof zodIsFactory<MemoryArchivistConfigBase>> = zodIsFactory(MemoryArchivistConfigZod)\nexport const asMemoryArchivistConfig: ReturnType<typeof zodAsFactory<MemoryArchivistConfigBase>> = zodAsFactory(MemoryArchivistConfigZod, 'asMemoryArchivistConfig')\nexport const toMemoryArchivistConfig: ReturnType<typeof zodToFactory<MemoryArchivistConfigBase>> = zodToFactory(MemoryArchivistConfigZod, 'toMemoryArchivistConfig')\n\nexport type MemoryArchivistConfig<TConfig extends Payload | EmptyObject | void = void, TSchema extends Schema | void = void> = ArchivistConfig<\n WithAdditional<\n {\n max?: number\n },\n TConfig\n >,\n TSchema extends Schema ? TSchema : MemoryArchivistConfigSchema | ArchivistConfig['schema']\n>\n", "import type {\n BrandedHash,\n CreatableParams, Hash, Hex, Promisable,\n} from '@ariestools/sdk'\nimport {\n AbstractCreatable, assertEx,\n creatable, exists,\n isDefined,\n} from '@ariestools/sdk'\nimport type { Payload, WithStorageMeta } from '@xyo-network/sdk-protocol'\nimport { PayloadBuilder } from '@xyo-network/sdk-protocol'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ArchivistDriver, ArchivistNextOptions } from '#archivist-model'\n\nexport interface MemoryDriverConfig {\n max?: number\n}\n\nexport interface MemoryDriverParams extends CreatableParams {\n config: MemoryDriverConfig\n}\n\n@creatable()\nexport class MemoryDriver extends AbstractCreatable<MemoryDriverParams>\n implements ArchivistDriver<Hash, Payload, WithStorageMeta<Payload>> {\n private _cache?: LRUCache<Hash, WithStorageMeta<Payload>>\n private _config?: MemoryDriverConfig\n private _dataHashIndex?: LRUCache<Hash, Hash>\n private _sortedValues?: WithStorageMeta<Payload>[]\n\n protected get cache(): LRUCache<BrandedHash, WithStorageMeta<Payload>> {\n this._cache ??= new LRUCache<Hash, WithStorageMeta<Payload>>({\n max: this.max,\n dispose: () => { this._sortedValues = undefined },\n })\n return this._cache\n }\n\n protected get config(): MemoryDriverConfig {\n return assertEx(this._config, () => 'Driver config is not set')\n }\n\n protected get dataHashIndex(): LRUCache<BrandedHash, BrandedHash> {\n this._dataHashIndex ??= new LRUCache<Hash, Hash>({ max: this.max })\n return this._dataHashIndex\n }\n\n protected get max(): number {\n return this.config?.max ?? 10_000\n }\n\n protected get sortedValues(): WithStorageMeta<Payload>[] {\n this._sortedValues ??= this.cache.values().filter(exists).toArray().toSorted(PayloadBuilder.compareStorageMeta)\n return this._sortedValues\n }\n\n private static findIndexFromCursor(payloads: WithStorageMeta[], cursor: Hex) {\n const index = payloads.findIndex(({ _sequence }) => _sequence === cursor)\n if (index === -1) {\n return Infinity // move to the end\n }\n return index\n }\n\n all(): Promisable<WithStorageMeta<Payload>[]> {\n return [...this.sortedValues]\n }\n\n clear(): void {\n this.cache.clear()\n this._dataHashIndex = new LRUCache<Hash, Hash>({ max: this.max })\n this._sortedValues = undefined\n }\n\n count(): number {\n return this.cache.size\n }\n\n override createHandler(): Promisable<void> {\n this._config = this.params.config ?? {}\n }\n\n async delete(hashes: Hash[]): Promise<WithStorageMeta[]> {\n this._sortedValues = undefined\n const candidateDeletions = await Promise.all(this.cache\n .dump()\n .map(async ([key, item]) => {\n const itemValueDataHash = await PayloadBuilder.dataHash(item.value)\n if (hashes.includes(key) || hashes.includes(itemValueDataHash)) {\n this.cache.delete(key)\n return item.value\n }\n }))\n const deletedPayloads: WithStorageMeta<Payload>[] = candidateDeletions\n .filter(exists)\n this.rebuildDataHashIndex()\n return deletedPayloads\n }\n\n get(hashes: Hash[]): Promisable<WithStorageMeta<Payload>[]> {\n return hashes.map((hash) => {\n const exact = this.cache.get(hash)\n if (exact) return exact\n const resolvedHash = this.dataHashIndex.get(hash) ?? hash\n const result = this.cache.get(resolvedHash)\n if (resolvedHash !== hash && !result) {\n throw new Error('Missing referenced payload')\n }\n return result\n }).filter(exists)\n }\n\n insert(payloads: WithStorageMeta<Payload>[]): WithStorageMeta<Payload>[] {\n this._sortedValues = undefined\n const payloadsWithMeta = payloads.toSorted(PayloadBuilder.compareStorageMeta)\n return payloadsWithMeta.map((payload) => {\n return this.insertPayloadIntoCache(payload)\n })\n }\n\n next(options?: ArchivistNextOptions): Promisable<WithStorageMeta<Payload>[]> {\n const {\n limit = 100, cursor, order, open = true,\n } = options ?? {}\n const all = order === 'desc' ? this.sortedValues.toReversed() : this.sortedValues\n const startIndex = isDefined(cursor)\n ? MemoryDriver.findIndexFromCursor(all, cursor) + (open ? 1 : 0)\n : 0\n return all.slice(startIndex, startIndex + limit)\n }\n\n private insertPayloadIntoCache(payload: WithStorageMeta<Payload>): WithStorageMeta<Payload> {\n this.cache.set(payload._hash, payload)\n this.dataHashIndex.set(payload._dataHash, payload._hash)\n return payload\n }\n\n private rebuildDataHashIndex() {\n this._dataHashIndex = new LRUCache<Hash, Hash>({ max: this.max })\n const payloads = this.cache.dump().map(([, item]) => item.value)\n for (const payload of payloads) {\n this.dataHashIndex.set(payload._dataHash, payload._hash)\n }\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -251,7 +251,7 @@ var toArchivistConfig = zodToFactory11(ArchivistConfigZod, "toArchivistConfig");
251
251
  var IndexSeparator = "-";
252
252
  var buildStandardIndexName = (index) => {
253
253
  const { key, unique } = index;
254
- const prefix = unique ? "UX" : "IX";
254
+ const prefix = unique === true ? "UX" : "IX";
255
255
  const indexKeys = Object.keys(key);
256
256
  return `${prefix}_${indexKeys.join(IndexSeparator)}`;
257
257
  };
@@ -263,11 +263,13 @@ import {
263
263
  isStorageMeta
264
264
  } from "@xyo-network/sdk-protocol";
265
265
  var tryGetTypedBoundWitnessWithStorageMeta = async (archivist, hash, identity) => {
266
- const payload = (await archivist.get([hash])).at(0);
266
+ const payloads = await archivist.get([hash]);
267
+ const payload = payloads.at(0);
267
268
  return identity(payload) ? payload : void 0;
268
269
  };
269
270
  var getTypedBoundWitnessWithStorageMeta = async (archivist, hash, identity) => {
270
- const payload = assertEx((await archivist.get([hash])).at(0), () => `failed to locate bound witness: ${hash}`);
271
+ const payloads = await archivist.get([hash]);
272
+ const payload = assertEx(payloads.at(0), () => `failed to locate bound witness: ${hash}`);
271
273
  return assertEx(identity(payload) ? payload : void 0, () => `located payload failed identity check: ${hash}`);
272
274
  };
273
275
  var getBoundWitnessWithStorageMeta = (archivist, hash) => {
@@ -279,11 +281,14 @@ import { exists, isHash } from "@ariestools/sdk";
279
281
  import { isBoundWitness as isBoundWitness2, isStorageMeta as isStorageMeta2 } from "@xyo-network/sdk-protocol";
280
282
  var tryHydrateTypedBoundWitness = async (archivist, hashOrBw, identity) => {
281
283
  const bw = isHash(hashOrBw) ? await tryGetTypedBoundWitnessWithStorageMeta(archivist, hashOrBw, identity) : hashOrBw;
282
- return bw ? [bw, (await archivist.get(bw?.payload_hashes)).filter(exists)] : void 0;
284
+ if (bw === void 0) return void 0;
285
+ const found = await archivist.get(bw?.payload_hashes);
286
+ return [bw, found.filter(exists)];
283
287
  };
284
288
  var hydrateTypedBoundWitness = async (archivist, hashOrBw, identity) => {
285
289
  const bw = isHash(hashOrBw) ? await getTypedBoundWitnessWithStorageMeta(archivist, hashOrBw, identity) : hashOrBw;
286
- const payloads = (await archivist.get(bw?.payload_hashes)).filter(exists);
290
+ const found = await archivist.get(bw?.payload_hashes);
291
+ const payloads = found.filter(exists);
287
292
  if (payloads.length !== bw.payload_hashes.length) {
288
293
  throw new Error(`missing payloads for ${bw._hash}`);
289
294
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/archivist-model/ArchivistSnapshot.ts", "../../src/modules/archivist-model/ArchivistStats.ts", "../../src/modules/archivist-model/attachable/asAttachableInstance.ts", "../../src/modules/archivist-model/attachable/isAttachableInstance.ts", "../../src/modules/archivist-model/typeChecks.ts", "../../src/modules/archivist-model/Queries/All.ts", "../../src/modules/archivist-model/Queries/Clear.ts", "../../src/modules/archivist-model/Queries/Commit.ts", "../../src/modules/archivist-model/Queries/Delete.ts", "../../src/modules/archivist-model/Queries/Get.ts", "../../src/modules/archivist-model/Queries/Insert.ts", "../../src/modules/archivist-model/Queries/Next.ts", "../../src/modules/archivist-model/Queries/Snapshot.ts", "../../src/modules/archivist-model/attachable/AttachableInstance.ts", "../../src/modules/archivist-model/Config.ts", "../../src/modules/archivist-model/IndexDescription.ts", "../../src/modules/archivist-model/lib/getBoundWitness.ts", "../../src/modules/archivist-model/lib/hydrateBoundWitness.ts"],
4
- "sourcesContent": ["import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type { Payload, PayloadHashMap } from '@xyo-network/sdk-protocol'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistSnapshotPayloadSchema: 'network.xyo.archivist.snapshot' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.snapshot', true)\nexport type ArchivistSnapshotPayloadSchema = typeof ArchivistSnapshotPayloadSchema\n\nexport const ArchivistSnapshotPayloadZod: z.ZodMiniIntersection<\n z.ZodMiniObject<{ schema: z.ZodMiniLiteral<ArchivistSnapshotPayloadSchema> }, z.core.$strip>,\n z.ZodMiniCustom<PayloadHashMap, PayloadHashMap>\n> = z.intersection(PayloadZodOfSchema(ArchivistSnapshotPayloadSchema), z.custom<PayloadHashMap>())\n\nexport type ArchivistSnapshotPayload<TPayload extends Payload = Payload, TId extends string | number | symbol = Hash>\n = Payload<PayloadHashMap<TPayload, TId>, ArchivistSnapshotPayloadSchema>\n\nconst isArchivistSnapshotPayloadInternal = zodIsFactory(ArchivistSnapshotPayloadZod)\n\nexport const isArchivistSnapshotPayload = <\n TPayload extends Payload = Payload,\n TId extends string | number | symbol = Hash,\n TInput = unknown,\n>(payload?: TInput): payload is ArchivistSnapshotPayload<TPayload, TId> & TInput => isArchivistSnapshotPayloadInternal(payload)\n\nexport const asArchivistSnapshotPayload: ReturnType<typeof zodAsFactory<ArchivistSnapshotPayload>>\n = zodAsFactory(ArchivistSnapshotPayloadZod, 'asArchivistSnapshotPayload')\nexport const toArchivistSnapshotPayload: ReturnType<typeof zodToFactory<ArchivistSnapshotPayload>>\n = zodToFactory(ArchivistSnapshotPayloadZod, 'toArchivistSnapshotPayload')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistStatsPayloadSchema: 'network.xyo.archivist.stats' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.stats', true)\nexport type ArchivistStatsPayloadSchema = typeof ArchivistStatsPayloadSchema\n\nexport const ArchivistStatsPayloadZod: z.ZodMiniObject<{\n payloadCount: z.ZodMiniNumber<number>\n schema: z.ZodMiniLiteral<ArchivistStatsPayloadSchema>\n}, z.core.$strip> = z.extend(PayloadZodOfSchema(ArchivistStatsPayloadSchema), { payloadCount: z.number() })\n\nexport type ArchivistStatsPayload = z.infer<typeof ArchivistStatsPayloadZod>\n\nexport const isArchivistStatsPayload: ReturnType<typeof zodIsFactory<ArchivistStatsPayload>> = zodIsFactory(ArchivistStatsPayloadZod)\nexport const asArchivistStatsPayload: ReturnType<typeof zodAsFactory<ArchivistStatsPayload>> = zodAsFactory(ArchivistStatsPayloadZod, 'asArchivistStatsPayload')\nexport const toArchivistStatsPayload: ReturnType<typeof zodToFactory<ArchivistStatsPayload>> = zodToFactory(ArchivistStatsPayloadZod, 'toArchivistStatsPayload')\n", "import { AsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableArchivistInstance } from './isAttachableInstance.ts'\n\nexport const asAttachableArchivistInstance = AsObjectFactory.create(isAttachableArchivistInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableModuleInstance } from '#module-model'\n\nimport { isArchivistInstance } from '../typeChecks.ts'\nimport type { AttachableArchivistInstance } from './AttachableInstance.ts'\n\nexport const requiredAttachableArchivistInstanceFunctions: ObjectTypeShape = {}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<AttachableArchivistInstance>()\n\nexport const isAttachableArchivistInstance: TypeCheck<AttachableArchivistInstance> = factory.create(requiredAttachableArchivistInstanceFunctions, [\n isArchivistInstance,\n isAttachableModuleInstance,\n])\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\n\nimport {\n IsInstanceFactory, isModuleInstance, IsQueryableModuleFactory, WithFactory,\n} from '#module-model'\n\nimport type { ArchivistInstance } from './Instance.ts'\nimport type { ArchivistModuleInstance } from './ModuleInstance.ts'\nimport { ArchivistGetQuerySchema } from './Queries/index.ts'\n\nconst isInstanceFactory = new IsInstanceFactory<ArchivistInstance>()\nexport const isArchivistInstance: TypeCheck<ArchivistInstance> = isInstanceFactory.create({ get: 'function' }, [isModuleInstance])\nconst isQueryableModuleFactory = new IsQueryableModuleFactory<ArchivistModuleInstance>()\nexport const isArchivistModule: TypeCheck<ArchivistModuleInstance> = isQueryableModuleFactory.create([ArchivistGetQuerySchema])\n\nexport const asArchivistModule = AsObjectFactory.create(isArchivistModule)\nexport const asArchivistInstance = AsObjectFactory.create(isArchivistInstance)\n\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withArchivistModule = WithFactory.create(isArchivistModule)\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withArchivistInstance = WithFactory.create(isArchivistInstance)\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistAllQuerySchema: 'network.xyo.query.archivist.all' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.all', true)\nexport type ArchivistAllQuerySchema = typeof ArchivistAllQuerySchema\n\nexport const ArchivistAllQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistAllQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistAllQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistAllQuery = z.infer<typeof ArchivistAllQueryZod>\n\nexport const isArchivistAllQuery: ReturnType<typeof zodIsFactory<ArchivistAllQuery>> = zodIsFactory(ArchivistAllQueryZod)\nexport const asArchivistAllQuery: ReturnType<typeof zodAsFactory<ArchivistAllQuery>> = zodAsFactory(ArchivistAllQueryZod, 'asArchivistAllQuery')\nexport const toArchivistAllQuery: ReturnType<typeof zodToFactory<ArchivistAllQuery>> = zodToFactory(ArchivistAllQueryZod, 'toArchivistAllQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistClearQuerySchema: 'network.xyo.query.archivist.clear' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.clear', true)\nexport type ArchivistClearQuerySchema = typeof ArchivistClearQuerySchema\n\nexport const ArchivistClearQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistClearQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistClearQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistClearQuery = z.infer<typeof ArchivistClearQueryZod>\n\nexport const isArchivistClearQuery: ReturnType<typeof zodIsFactory<ArchivistClearQuery>> = zodIsFactory(ArchivistClearQueryZod)\nexport const asArchivistClearQuery: ReturnType<typeof zodAsFactory<ArchivistClearQuery>> = zodAsFactory(ArchivistClearQueryZod, 'asArchivistClearQuery')\nexport const toArchivistClearQuery: ReturnType<typeof zodToFactory<ArchivistClearQuery>> = zodToFactory(ArchivistClearQueryZod, 'toArchivistClearQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistCommitQuerySchema: 'network.xyo.query.archivist.commit' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.commit', true)\nexport type ArchivistCommitQuerySchema = typeof ArchivistCommitQuerySchema\n\nexport const ArchivistCommitQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistCommitQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistCommitQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistCommitQuery = z.infer<typeof ArchivistCommitQueryZod>\n\nexport const isArchivistCommitQuery: ReturnType<typeof zodIsFactory<ArchivistCommitQuery>> = zodIsFactory(ArchivistCommitQueryZod)\nexport const asArchivistCommitQuery: ReturnType<typeof zodAsFactory<ArchivistCommitQuery>> = zodAsFactory(ArchivistCommitQueryZod, 'asArchivistCommitQuery')\nexport const toArchivistCommitQuery: ReturnType<typeof zodToFactory<ArchivistCommitQuery>> = zodToFactory(ArchivistCommitQueryZod, 'toArchivistCommitQuery')\n", "import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistDeleteQuerySchema: 'network.xyo.query.archivist.delete' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.delete', true)\nexport type ArchivistDeleteQuerySchema = typeof ArchivistDeleteQuerySchema\n\nexport const ArchivistDeleteQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistDeleteQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { hashes: z.ZodMiniArray<z.ZodMiniCustom<Hash, Hash>> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistDeleteQuerySchema), {\n ...QueryFieldsZod.shape,\n hashes: z.array(z.custom<Hash>()),\n})\n\nexport type ArchivistDeleteQuery = z.infer<typeof ArchivistDeleteQueryZod>\n\nexport const isArchivistDeleteQuery: ReturnType<typeof zodIsFactory<ArchivistDeleteQuery>> = zodIsFactory(ArchivistDeleteQueryZod)\nexport const asArchivistDeleteQuery: ReturnType<typeof zodAsFactory<ArchivistDeleteQuery>> = zodAsFactory(ArchivistDeleteQueryZod, 'asArchivistDeleteQuery')\nexport const toArchivistDeleteQuery: ReturnType<typeof zodToFactory<ArchivistDeleteQuery>> = zodToFactory(ArchivistDeleteQueryZod, 'toArchivistDeleteQuery')\n", "import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistGetQuerySchema: 'network.xyo.query.archivist.get' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.get', true)\nexport type ArchivistGetQuerySchema = typeof ArchivistGetQuerySchema\n\nexport const ArchivistGetQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistGetQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { hashes: z.ZodMiniArray<z.ZodMiniCustom<Hash, Hash>> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistGetQuerySchema), {\n ...QueryFieldsZod.shape,\n hashes: z.array(z.custom<Hash>()),\n})\n\nexport type ArchivistGetQuery = z.infer<typeof ArchivistGetQueryZod>\n\nexport const isArchivistGetQuery: ReturnType<typeof zodIsFactory<ArchivistGetQuery>> = zodIsFactory(ArchivistGetQueryZod)\nexport const asArchivistGetQuery: ReturnType<typeof zodAsFactory<ArchivistGetQuery>> = zodAsFactory(ArchivistGetQueryZod, 'asArchivistGetQuery')\nexport const toArchivistGetQuery: ReturnType<typeof zodToFactory<ArchivistGetQuery>> = zodToFactory(ArchivistGetQueryZod, 'toArchivistGetQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistInsertQuerySchema: 'network.xyo.query.archivist.insert' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.insert', true)\nexport type ArchivistInsertQuerySchema = typeof ArchivistInsertQuerySchema\n\nexport const ArchivistInsertQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistInsertQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistInsertQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistInsertQuery = z.infer<typeof ArchivistInsertQueryZod>\n\nexport const isArchivistInsertQuery: ReturnType<typeof zodIsFactory<ArchivistInsertQuery>> = zodIsFactory(ArchivistInsertQueryZod)\nexport const asArchivistInsertQuery: ReturnType<typeof zodAsFactory<ArchivistInsertQuery>> = zodAsFactory(ArchivistInsertQueryZod, 'asArchivistInsertQuery')\nexport const toArchivistInsertQuery: ReturnType<typeof zodToFactory<ArchivistInsertQuery>> = zodToFactory(ArchivistInsertQueryZod, 'toArchivistInsertQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type { Sequence } from '@xyo-network/sdk-protocol'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistNextQuerySchema: 'network.xyo.query.archivist.next' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.next', true)\nexport type ArchivistNextQuerySchema = typeof ArchivistNextQuerySchema\n\nexport const ArchivistNextQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistNextQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & {\n cursor: z.ZodMiniOptional<z.ZodMiniCustom<Sequence, Sequence>>\n limit: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n open: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n order: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<'asc'>, z.ZodMiniLiteral<'desc'>]>>\n },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistNextQuerySchema), {\n ...QueryFieldsZod.shape,\n cursor: z.optional(z.custom<Sequence>()),\n limit: z.optional(z.number()),\n open: z.optional(z.boolean()),\n order: z.optional(z.union([z.literal('asc'), z.literal('desc')])),\n})\n\nexport type ArchivistNextQuery = z.infer<typeof ArchivistNextQueryZod>\n\nexport const isArchivistNextQuery: ReturnType<typeof zodIsFactory<ArchivistNextQuery>> = zodIsFactory(ArchivistNextQueryZod)\nexport const asArchivistNextQuery: ReturnType<typeof zodAsFactory<ArchivistNextQuery>> = zodAsFactory(ArchivistNextQueryZod, 'asArchivistNextQuery')\nexport const toArchivistNextQuery: ReturnType<typeof zodToFactory<ArchivistNextQuery>> = zodToFactory(ArchivistNextQueryZod, 'toArchivistNextQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistSnapshotQuerySchema: 'network.xyo.query.archivist.snapshot' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.snapshot', true)\nexport type ArchivistSnapshotQuerySchema = typeof ArchivistSnapshotQuerySchema\n\nexport const ArchivistSnapshotQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistSnapshotQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistSnapshotQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistSnapshotQuery = z.infer<typeof ArchivistSnapshotQueryZod>\n\nexport const isArchivistSnapshotQuery: ReturnType<typeof zodIsFactory<ArchivistSnapshotQuery>> = zodIsFactory(ArchivistSnapshotQueryZod)\nexport const asArchivistSnapshotQuery: ReturnType<typeof zodAsFactory<ArchivistSnapshotQuery>> = zodAsFactory(ArchivistSnapshotQueryZod, 'asArchivistSnapshotQuery')\nexport const toArchivistSnapshotQuery: ReturnType<typeof zodToFactory<ArchivistSnapshotQuery>> = zodToFactory(ArchivistSnapshotQueryZod, 'toArchivistSnapshotQuery')\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk-protocol'\n\nimport type { AttachableModuleInstance } from '#module-model'\n\nimport type { ArchivistModuleEventData } from '../EventData.ts'\nimport type { ArchivistInstance, ArchivistParams } from '../Instance.ts'\nimport type { ArchivistModuleInstance } from '../ModuleInstance.ts'\n\nexport interface AttachableArchivistInstance<\n TParams extends ArchivistParams = ArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n TPayload extends Payload = Payload,\n> extends ArchivistModuleInstance<TParams, TEventData>,\n AttachableModuleInstance<TParams, TEventData>,\n ArchivistInstance<TParams, TEventData, TPayload> {}\n\nexport type AttachableArchivistInstanceTypeCheck<T extends AttachableArchivistInstance = AttachableArchivistInstance> = TypeCheck<T>\n\nexport class IsAttachableArchivistInstanceFactory<T extends AttachableArchivistInstance = AttachableArchivistInstance> extends IsObjectFactory<T> {}\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type {\n Payload,\n Schema,\n} from '@xyo-network/sdk-protocol'\nimport { asSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleConfig, ModuleIdentifier } from '#module-model'\nimport { ModuleConfigZod } from '#module-model'\n\nimport type { IndexDescription } from './IndexDescription.ts'\n\nexport interface ArchivistParents {\n commit?: ModuleIdentifier[]\n read?: ModuleIdentifier[]\n write?: ModuleIdentifier[]\n}\n\nexport interface ArchivistStorage {\n /** The indexes to create on the object store */\n indexes?: IndexDescription[]\n}\n\nexport interface ArchivistGetCache {\n enabled?: boolean\n maxEntries?: number\n}\n\nexport const ArchivistConfigSchema: 'network.xyo.archivist.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.config', true)\nexport type ArchivistConfigSchema = typeof ArchivistConfigSchema\n\nexport const ArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ModuleConfigZod)['shape'], 'schema'>\n & {\n getCache: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistGetCache, ArchivistGetCache>>\n parents: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistParents, ArchivistParents>>\n requireAllParents: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n schema: z.ZodMiniLiteral<ArchivistConfigSchema>\n storage: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistStorage, ArchivistStorage>>\n storeParentReads: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n },\n z.core.$strip\n> = z.extend(ModuleConfigZod, {\n getCache: z.optional(z.custom<ArchivistGetCache>()),\n parents: z.optional(z.custom<ArchivistParents>()),\n requireAllParents: z.optional(z.boolean()),\n schema: z.literal(ArchivistConfigSchema),\n storage: z.optional(z.custom<ArchivistStorage>()),\n storeParentReads: z.optional(z.boolean()),\n})\n\nexport type ArchivistConfigBase = z.infer<typeof ArchivistConfigZod>\n\nexport const isArchivistConfig: ReturnType<typeof zodIsFactory<ArchivistConfigBase>> = zodIsFactory(ArchivistConfigZod)\nexport const asArchivistConfig: ReturnType<typeof zodAsFactory<ArchivistConfigBase>> = zodAsFactory(ArchivistConfigZod, 'asArchivistConfig')\nexport const toArchivistConfig: ReturnType<typeof zodToFactory<ArchivistConfigBase>> = zodToFactory(ArchivistConfigZod, 'toArchivistConfig')\n\nexport type ArchivistConfig<TConfig extends Payload | EmptyObject | void = void, TSchema extends Schema | void = void> = ModuleConfig<\n WithAdditional<\n {\n /** @field caching configuration for get calls */\n getCache?: ArchivistGetCache\n /** @field address of one or more parent archivists to read from */\n parents?: ArchivistParents\n /** @field fail if some parents can not be resolved (true if unspecified) */\n requireAllParents?: boolean\n schema: TConfig extends Payload ? TConfig['schema'] : ArchivistConfigSchema\n /** @field storage configuration */\n storage?: ArchivistStorage\n /** @field should child store all reads from parents? */\n storeParentReads?: boolean\n },\n TConfig\n >,\n TSchema\n>\n", "/**\n * The index direction (1 for ascending, -1 for descending)\n */\nexport type IndexDirection = -1 | 1\n\n/**\n * Description of index(es) to be created on a store\n */\nexport interface IndexDescription {\n /**\n * The key(s) to index\n */\n key: Record<string, IndexDirection>\n /**\n * Is the indexed value an array\n */\n multiEntry?: boolean\n /**\n * The name of the index\n */\n name?: string\n /**\n * If true, the index must enforce uniqueness on the key\n */\n unique?: boolean\n}\n\nexport const IndexSeparator = '-'\n\n/**\n * Given an index description, this will build the index\n * name in standard form\n * @param index The index description\n * @returns The index name in standard form\n */\nexport const buildStandardIndexName = (index: IndexDescription) => {\n const { key, unique } = index\n const prefix = unique ? 'UX' : 'IX'\n const indexKeys = Object.keys(key)\n return `${prefix}_${indexKeys.join(IndexSeparator)}`\n}\n", "import type { Hash, IdentityFunction } from '@ariestools/sdk'\nimport { assertEx } from '@ariestools/sdk'\nimport {\n type BoundWitness, isBoundWitness, isStorageMeta, type WithStorageMeta,\n} from '@xyo-network/sdk-protocol'\n\nimport type { ReadArchivist } from '../PayloadArchivist.ts'\n\nexport const tryGetTypedBoundWitnessWithStorageMeta = async <T extends BoundWitness>(archivist: ReadArchivist, hash: Hash,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<WithStorageMeta<T> | undefined> => {\n const payload = (await archivist.get([hash])).at(0)\n return identity(payload) ? payload : undefined\n}\n\nexport const getTypedBoundWitnessWithStorageMeta = async <T extends BoundWitness>(archivist: ReadArchivist, hash: Hash,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<WithStorageMeta<T>> => {\n const payload = assertEx((await archivist.get([hash])).at(0), () => `failed to locate bound witness: ${hash}`)\n return assertEx(identity(payload) ? payload : undefined, () => `located payload failed identity check: ${hash}`)\n}\n\nexport const getBoundWitnessWithStorageMeta = (archivist: ReadArchivist, hash: Hash): Promise<WithStorageMeta<BoundWitness>> => {\n return getTypedBoundWitnessWithStorageMeta<BoundWitness>(archivist, hash, x => isStorageMeta(x) && isBoundWitness(x))\n}\n", "import type { Hash, IdentityFunction } from '@ariestools/sdk'\nimport { exists, isHash } from '@ariestools/sdk'\nimport type { BoundWitness, WithStorageMeta } from '@xyo-network/sdk-protocol'\nimport { isBoundWitness, isStorageMeta } from '@xyo-network/sdk-protocol'\n\nimport type { ReadArchivist } from '../PayloadArchivist.ts'\nimport { getTypedBoundWitnessWithStorageMeta, tryGetTypedBoundWitnessWithStorageMeta } from './getBoundWitness.ts'\nimport type { HydratedBoundWitness } from './HydratedBoundWitness.ts'\n\nexport const tryHydrateTypedBoundWitness = async <T extends BoundWitness>(archivist: ReadArchivist, hashOrBw: Hash | WithStorageMeta<T>,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<HydratedBoundWitness<T> | undefined> => {\n const bw = isHash(hashOrBw) ? await tryGetTypedBoundWitnessWithStorageMeta(archivist, hashOrBw, identity) : hashOrBw\n return bw ? [bw, (await archivist.get(bw?.payload_hashes)).filter(exists)] : undefined\n}\n\nexport const hydrateTypedBoundWitness = async <T extends BoundWitness>(archivist: ReadArchivist, hashOrBw: Hash | WithStorageMeta<T>,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<HydratedBoundWitness<T>> => {\n const bw = isHash(hashOrBw) ? await getTypedBoundWitnessWithStorageMeta(archivist, hashOrBw, identity) : hashOrBw\n const payloads = (await archivist.get(bw?.payload_hashes)).filter(exists)\n if (payloads.length !== bw.payload_hashes.length) {\n throw new Error(`missing payloads for ${bw._hash}`)\n }\n return [bw, payloads]\n}\n\nexport const hydrateBoundWitness = (\n archivist: ReadArchivist,\n hashOrBw: Hash | WithStorageMeta<BoundWitness>,\n): Promise<HydratedBoundWitness<BoundWitness>> => {\n const idFunction: IdentityFunction<WithStorageMeta<BoundWitness>> = x => isBoundWitness(x) && isStorageMeta(x)\n return hydrateTypedBoundWitness<BoundWitness>(archivist, hashOrBw, idFunction)\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type { Payload, PayloadHashMap } from '@xyo-network/sdk-protocol'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistSnapshotPayloadSchema: 'network.xyo.archivist.snapshot' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.snapshot', true)\nexport type ArchivistSnapshotPayloadSchema = typeof ArchivistSnapshotPayloadSchema\n\nexport const ArchivistSnapshotPayloadZod: z.ZodMiniIntersection<\n z.ZodMiniObject<{ schema: z.ZodMiniLiteral<ArchivistSnapshotPayloadSchema> }, z.core.$strip>,\n z.ZodMiniCustom<PayloadHashMap, PayloadHashMap>\n> = z.intersection(PayloadZodOfSchema(ArchivistSnapshotPayloadSchema), z.custom<PayloadHashMap>())\n\nexport type ArchivistSnapshotPayload<TPayload extends Payload = Payload, TId extends string | number | symbol = Hash>\n = Payload<PayloadHashMap<TPayload, TId>, ArchivistSnapshotPayloadSchema>\n\nconst isArchivistSnapshotPayloadInternal = zodIsFactory(ArchivistSnapshotPayloadZod)\n\nexport const isArchivistSnapshotPayload = <\n TPayload extends Payload = Payload,\n TId extends string | number | symbol = Hash,\n TInput = unknown,\n>(payload?: TInput): payload is ArchivistSnapshotPayload<TPayload, TId> & TInput => isArchivistSnapshotPayloadInternal(payload)\n\nexport const asArchivistSnapshotPayload: ReturnType<typeof zodAsFactory<ArchivistSnapshotPayload>>\n = zodAsFactory(ArchivistSnapshotPayloadZod, 'asArchivistSnapshotPayload')\nexport const toArchivistSnapshotPayload: ReturnType<typeof zodToFactory<ArchivistSnapshotPayload>>\n = zodToFactory(ArchivistSnapshotPayloadZod, 'toArchivistSnapshotPayload')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistStatsPayloadSchema: 'network.xyo.archivist.stats' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.stats', true)\nexport type ArchivistStatsPayloadSchema = typeof ArchivistStatsPayloadSchema\n\nexport const ArchivistStatsPayloadZod: z.ZodMiniObject<{\n payloadCount: z.ZodMiniNumber<number>\n schema: z.ZodMiniLiteral<ArchivistStatsPayloadSchema>\n}, z.core.$strip> = z.extend(PayloadZodOfSchema(ArchivistStatsPayloadSchema), { payloadCount: z.number() })\n\nexport type ArchivistStatsPayload = z.infer<typeof ArchivistStatsPayloadZod>\n\nexport const isArchivistStatsPayload: ReturnType<typeof zodIsFactory<ArchivistStatsPayload>> = zodIsFactory(ArchivistStatsPayloadZod)\nexport const asArchivistStatsPayload: ReturnType<typeof zodAsFactory<ArchivistStatsPayload>> = zodAsFactory(ArchivistStatsPayloadZod, 'asArchivistStatsPayload')\nexport const toArchivistStatsPayload: ReturnType<typeof zodToFactory<ArchivistStatsPayload>> = zodToFactory(ArchivistStatsPayloadZod, 'toArchivistStatsPayload')\n", "import { AsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableArchivistInstance } from './isAttachableInstance.ts'\n\nexport const asAttachableArchivistInstance = AsObjectFactory.create(isAttachableArchivistInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableModuleInstance } from '#module-model'\n\nimport { isArchivistInstance } from '../typeChecks.ts'\nimport type { AttachableArchivistInstance } from './AttachableInstance.ts'\n\nexport const requiredAttachableArchivistInstanceFunctions: ObjectTypeShape = {}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<AttachableArchivistInstance>()\n\nexport const isAttachableArchivistInstance: TypeCheck<AttachableArchivistInstance> = factory.create(requiredAttachableArchivistInstanceFunctions, [\n isArchivistInstance,\n isAttachableModuleInstance,\n])\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\n\nimport {\n IsInstanceFactory, isModuleInstance, IsQueryableModuleFactory, WithFactory,\n} from '#module-model'\n\nimport type { ArchivistInstance } from './Instance.ts'\nimport type { ArchivistModuleInstance } from './ModuleInstance.ts'\nimport { ArchivistGetQuerySchema } from './Queries/index.ts'\n\nconst isInstanceFactory = new IsInstanceFactory<ArchivistInstance>()\nexport const isArchivistInstance: TypeCheck<ArchivistInstance> = isInstanceFactory.create({ get: 'function' }, [isModuleInstance])\nconst isQueryableModuleFactory = new IsQueryableModuleFactory<ArchivistModuleInstance>()\nexport const isArchivistModule: TypeCheck<ArchivistModuleInstance> = isQueryableModuleFactory.create([ArchivistGetQuerySchema])\n\nexport const asArchivistModule = AsObjectFactory.create(isArchivistModule)\nexport const asArchivistInstance = AsObjectFactory.create(isArchivistInstance)\n\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withArchivistModule = WithFactory.create(isArchivistModule)\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withArchivistInstance = WithFactory.create(isArchivistInstance)\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistAllQuerySchema: 'network.xyo.query.archivist.all' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.all', true)\nexport type ArchivistAllQuerySchema = typeof ArchivistAllQuerySchema\n\nexport const ArchivistAllQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistAllQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistAllQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistAllQuery = z.infer<typeof ArchivistAllQueryZod>\n\nexport const isArchivistAllQuery: ReturnType<typeof zodIsFactory<ArchivistAllQuery>> = zodIsFactory(ArchivistAllQueryZod)\nexport const asArchivistAllQuery: ReturnType<typeof zodAsFactory<ArchivistAllQuery>> = zodAsFactory(ArchivistAllQueryZod, 'asArchivistAllQuery')\nexport const toArchivistAllQuery: ReturnType<typeof zodToFactory<ArchivistAllQuery>> = zodToFactory(ArchivistAllQueryZod, 'toArchivistAllQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistClearQuerySchema: 'network.xyo.query.archivist.clear' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.clear', true)\nexport type ArchivistClearQuerySchema = typeof ArchivistClearQuerySchema\n\nexport const ArchivistClearQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistClearQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistClearQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistClearQuery = z.infer<typeof ArchivistClearQueryZod>\n\nexport const isArchivistClearQuery: ReturnType<typeof zodIsFactory<ArchivistClearQuery>> = zodIsFactory(ArchivistClearQueryZod)\nexport const asArchivistClearQuery: ReturnType<typeof zodAsFactory<ArchivistClearQuery>> = zodAsFactory(ArchivistClearQueryZod, 'asArchivistClearQuery')\nexport const toArchivistClearQuery: ReturnType<typeof zodToFactory<ArchivistClearQuery>> = zodToFactory(ArchivistClearQueryZod, 'toArchivistClearQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistCommitQuerySchema: 'network.xyo.query.archivist.commit' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.commit', true)\nexport type ArchivistCommitQuerySchema = typeof ArchivistCommitQuerySchema\n\nexport const ArchivistCommitQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistCommitQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistCommitQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistCommitQuery = z.infer<typeof ArchivistCommitQueryZod>\n\nexport const isArchivistCommitQuery: ReturnType<typeof zodIsFactory<ArchivistCommitQuery>> = zodIsFactory(ArchivistCommitQueryZod)\nexport const asArchivistCommitQuery: ReturnType<typeof zodAsFactory<ArchivistCommitQuery>> = zodAsFactory(ArchivistCommitQueryZod, 'asArchivistCommitQuery')\nexport const toArchivistCommitQuery: ReturnType<typeof zodToFactory<ArchivistCommitQuery>> = zodToFactory(ArchivistCommitQueryZod, 'toArchivistCommitQuery')\n", "import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistDeleteQuerySchema: 'network.xyo.query.archivist.delete' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.delete', true)\nexport type ArchivistDeleteQuerySchema = typeof ArchivistDeleteQuerySchema\n\nexport const ArchivistDeleteQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistDeleteQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { hashes: z.ZodMiniArray<z.ZodMiniCustom<Hash, Hash>> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistDeleteQuerySchema), {\n ...QueryFieldsZod.shape,\n hashes: z.array(z.custom<Hash>()),\n})\n\nexport type ArchivistDeleteQuery = z.infer<typeof ArchivistDeleteQueryZod>\n\nexport const isArchivistDeleteQuery: ReturnType<typeof zodIsFactory<ArchivistDeleteQuery>> = zodIsFactory(ArchivistDeleteQueryZod)\nexport const asArchivistDeleteQuery: ReturnType<typeof zodAsFactory<ArchivistDeleteQuery>> = zodAsFactory(ArchivistDeleteQueryZod, 'asArchivistDeleteQuery')\nexport const toArchivistDeleteQuery: ReturnType<typeof zodToFactory<ArchivistDeleteQuery>> = zodToFactory(ArchivistDeleteQueryZod, 'toArchivistDeleteQuery')\n", "import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistGetQuerySchema: 'network.xyo.query.archivist.get' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.get', true)\nexport type ArchivistGetQuerySchema = typeof ArchivistGetQuerySchema\n\nexport const ArchivistGetQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistGetQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { hashes: z.ZodMiniArray<z.ZodMiniCustom<Hash, Hash>> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistGetQuerySchema), {\n ...QueryFieldsZod.shape,\n hashes: z.array(z.custom<Hash>()),\n})\n\nexport type ArchivistGetQuery = z.infer<typeof ArchivistGetQueryZod>\n\nexport const isArchivistGetQuery: ReturnType<typeof zodIsFactory<ArchivistGetQuery>> = zodIsFactory(ArchivistGetQueryZod)\nexport const asArchivistGetQuery: ReturnType<typeof zodAsFactory<ArchivistGetQuery>> = zodAsFactory(ArchivistGetQueryZod, 'asArchivistGetQuery')\nexport const toArchivistGetQuery: ReturnType<typeof zodToFactory<ArchivistGetQuery>> = zodToFactory(ArchivistGetQueryZod, 'toArchivistGetQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistInsertQuerySchema: 'network.xyo.query.archivist.insert' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.insert', true)\nexport type ArchivistInsertQuerySchema = typeof ArchivistInsertQuerySchema\n\nexport const ArchivistInsertQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistInsertQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistInsertQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistInsertQuery = z.infer<typeof ArchivistInsertQueryZod>\n\nexport const isArchivistInsertQuery: ReturnType<typeof zodIsFactory<ArchivistInsertQuery>> = zodIsFactory(ArchivistInsertQueryZod)\nexport const asArchivistInsertQuery: ReturnType<typeof zodAsFactory<ArchivistInsertQuery>> = zodAsFactory(ArchivistInsertQueryZod, 'asArchivistInsertQuery')\nexport const toArchivistInsertQuery: ReturnType<typeof zodToFactory<ArchivistInsertQuery>> = zodToFactory(ArchivistInsertQueryZod, 'toArchivistInsertQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type { Sequence } from '@xyo-network/sdk-protocol'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistNextQuerySchema: 'network.xyo.query.archivist.next' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.next', true)\nexport type ArchivistNextQuerySchema = typeof ArchivistNextQuerySchema\n\nexport const ArchivistNextQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistNextQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & {\n cursor: z.ZodMiniOptional<z.ZodMiniCustom<Sequence, Sequence>>\n limit: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n open: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n order: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<'asc'>, z.ZodMiniLiteral<'desc'>]>>\n },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistNextQuerySchema), {\n ...QueryFieldsZod.shape,\n cursor: z.optional(z.custom<Sequence>()),\n limit: z.optional(z.number()),\n open: z.optional(z.boolean()),\n order: z.optional(z.union([z.literal('asc'), z.literal('desc')])),\n})\n\nexport type ArchivistNextQuery = z.infer<typeof ArchivistNextQueryZod>\n\nexport const isArchivistNextQuery: ReturnType<typeof zodIsFactory<ArchivistNextQuery>> = zodIsFactory(ArchivistNextQueryZod)\nexport const asArchivistNextQuery: ReturnType<typeof zodAsFactory<ArchivistNextQuery>> = zodAsFactory(ArchivistNextQueryZod, 'asArchivistNextQuery')\nexport const toArchivistNextQuery: ReturnType<typeof zodToFactory<ArchivistNextQuery>> = zodToFactory(ArchivistNextQueryZod, 'toArchivistNextQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistSnapshotQuerySchema: 'network.xyo.query.archivist.snapshot' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.snapshot', true)\nexport type ArchivistSnapshotQuerySchema = typeof ArchivistSnapshotQuerySchema\n\nexport const ArchivistSnapshotQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistSnapshotQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistSnapshotQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistSnapshotQuery = z.infer<typeof ArchivistSnapshotQueryZod>\n\nexport const isArchivistSnapshotQuery: ReturnType<typeof zodIsFactory<ArchivistSnapshotQuery>> = zodIsFactory(ArchivistSnapshotQueryZod)\nexport const asArchivistSnapshotQuery: ReturnType<typeof zodAsFactory<ArchivistSnapshotQuery>> = zodAsFactory(ArchivistSnapshotQueryZod, 'asArchivistSnapshotQuery')\nexport const toArchivistSnapshotQuery: ReturnType<typeof zodToFactory<ArchivistSnapshotQuery>> = zodToFactory(ArchivistSnapshotQueryZod, 'toArchivistSnapshotQuery')\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk-protocol'\n\nimport type { AttachableModuleInstance } from '#module-model'\n\nimport type { ArchivistModuleEventData } from '../EventData.ts'\nimport type { ArchivistInstance, ArchivistParams } from '../Instance.ts'\nimport type { ArchivistModuleInstance } from '../ModuleInstance.ts'\n\nexport interface AttachableArchivistInstance<\n TParams extends ArchivistParams = ArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n TPayload extends Payload = Payload,\n> extends ArchivistModuleInstance<TParams, TEventData>,\n AttachableModuleInstance<TParams, TEventData>,\n ArchivistInstance<TParams, TEventData, TPayload> {}\n\nexport type AttachableArchivistInstanceTypeCheck<T extends AttachableArchivistInstance = AttachableArchivistInstance> = TypeCheck<T>\n\nexport class IsAttachableArchivistInstanceFactory<T extends AttachableArchivistInstance = AttachableArchivistInstance> extends IsObjectFactory<T> {}\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type {\n Payload,\n Schema,\n} from '@xyo-network/sdk-protocol'\nimport { asSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleConfig, ModuleIdentifier } from '#module-model'\nimport { ModuleConfigZod } from '#module-model'\n\nimport type { IndexDescription } from './IndexDescription.ts'\n\nexport interface ArchivistParents {\n commit?: ModuleIdentifier[]\n read?: ModuleIdentifier[]\n write?: ModuleIdentifier[]\n}\n\nexport interface ArchivistStorage {\n /** The indexes to create on the object store */\n indexes?: IndexDescription[]\n}\n\nexport interface ArchivistGetCache {\n enabled?: boolean\n maxEntries?: number\n}\n\nexport const ArchivistConfigSchema: 'network.xyo.archivist.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.config', true)\nexport type ArchivistConfigSchema = typeof ArchivistConfigSchema\n\nexport const ArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ModuleConfigZod)['shape'], 'schema'>\n & {\n getCache: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistGetCache, ArchivistGetCache>>\n parents: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistParents, ArchivistParents>>\n requireAllParents: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n schema: z.ZodMiniLiteral<ArchivistConfigSchema>\n storage: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistStorage, ArchivistStorage>>\n storeParentReads: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n },\n z.core.$strip\n> = z.extend(ModuleConfigZod, {\n getCache: z.optional(z.custom<ArchivistGetCache>()),\n parents: z.optional(z.custom<ArchivistParents>()),\n requireAllParents: z.optional(z.boolean()),\n schema: z.literal(ArchivistConfigSchema),\n storage: z.optional(z.custom<ArchivistStorage>()),\n storeParentReads: z.optional(z.boolean()),\n})\n\nexport type ArchivistConfigBase = z.infer<typeof ArchivistConfigZod>\n\nexport const isArchivistConfig: ReturnType<typeof zodIsFactory<ArchivistConfigBase>> = zodIsFactory(ArchivistConfigZod)\nexport const asArchivistConfig: ReturnType<typeof zodAsFactory<ArchivistConfigBase>> = zodAsFactory(ArchivistConfigZod, 'asArchivistConfig')\nexport const toArchivistConfig: ReturnType<typeof zodToFactory<ArchivistConfigBase>> = zodToFactory(ArchivistConfigZod, 'toArchivistConfig')\n\nexport type ArchivistConfig<TConfig extends Payload | EmptyObject | void = void, TSchema extends Schema | void = void> = ModuleConfig<\n WithAdditional<\n {\n /** @field caching configuration for get calls */\n getCache?: ArchivistGetCache\n /** @field address of one or more parent archivists to read from */\n parents?: ArchivistParents\n /** @field fail if some parents can not be resolved (true if unspecified) */\n requireAllParents?: boolean\n schema: TConfig extends Payload ? TConfig['schema'] : ArchivistConfigSchema\n /** @field storage configuration */\n storage?: ArchivistStorage\n /** @field should child store all reads from parents? */\n storeParentReads?: boolean\n },\n TConfig\n >,\n TSchema\n>\n", "/**\n * The index direction (1 for ascending, -1 for descending)\n */\nexport type IndexDirection = -1 | 1\n\n/**\n * Description of index(es) to be created on a store\n */\nexport interface IndexDescription {\n /**\n * The key(s) to index\n */\n key: Record<string, IndexDirection>\n /**\n * Is the indexed value an array\n */\n multiEntry?: boolean\n /**\n * The name of the index\n */\n name?: string\n /**\n * If true, the index must enforce uniqueness on the key\n */\n unique?: boolean\n}\n\nexport const IndexSeparator = '-'\n\n/**\n * Given an index description, this will build the index\n * name in standard form\n * @param index The index description\n * @returns The index name in standard form\n */\nexport const buildStandardIndexName = (index: IndexDescription) => {\n const { key, unique } = index\n const prefix = unique === true ? 'UX' : 'IX'\n const indexKeys = Object.keys(key)\n return `${prefix}_${indexKeys.join(IndexSeparator)}`\n}\n", "import type { Hash, IdentityFunction } from '@ariestools/sdk'\nimport { assertEx } from '@ariestools/sdk'\nimport {\n type BoundWitness, isBoundWitness, isStorageMeta, type WithStorageMeta,\n} from '@xyo-network/sdk-protocol'\n\nimport type { ReadArchivist } from '../PayloadArchivist.ts'\n\nexport const tryGetTypedBoundWitnessWithStorageMeta = async <T extends BoundWitness>(archivist: ReadArchivist, hash: Hash,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<WithStorageMeta<T> | undefined> => {\n const payloads = await archivist.get([hash])\n const payload = payloads.at(0)\n return identity(payload) ? payload : undefined\n}\n\nexport const getTypedBoundWitnessWithStorageMeta = async <T extends BoundWitness>(archivist: ReadArchivist, hash: Hash,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<WithStorageMeta<T>> => {\n const payloads = await archivist.get([hash])\n const payload = assertEx(payloads.at(0), () => `failed to locate bound witness: ${hash}`)\n return assertEx(identity(payload) ? payload : undefined, () => `located payload failed identity check: ${hash}`)\n}\n\nexport const getBoundWitnessWithStorageMeta = (archivist: ReadArchivist, hash: Hash): Promise<WithStorageMeta<BoundWitness>> => {\n return getTypedBoundWitnessWithStorageMeta<BoundWitness>(archivist, hash, x => isStorageMeta(x) && isBoundWitness(x))\n}\n", "import type { Hash, IdentityFunction } from '@ariestools/sdk'\nimport { exists, isHash } from '@ariestools/sdk'\nimport type { BoundWitness, WithStorageMeta } from '@xyo-network/sdk-protocol'\nimport { isBoundWitness, isStorageMeta } from '@xyo-network/sdk-protocol'\n\nimport type { ReadArchivist } from '../PayloadArchivist.ts'\nimport { getTypedBoundWitnessWithStorageMeta, tryGetTypedBoundWitnessWithStorageMeta } from './getBoundWitness.ts'\nimport type { HydratedBoundWitness } from './HydratedBoundWitness.ts'\n\nexport const tryHydrateTypedBoundWitness = async <T extends BoundWitness>(archivist: ReadArchivist, hashOrBw: Hash | WithStorageMeta<T>,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<HydratedBoundWitness<T> | undefined> => {\n const bw = isHash(hashOrBw) ? await tryGetTypedBoundWitnessWithStorageMeta(archivist, hashOrBw, identity) : hashOrBw\n if (bw === undefined) return undefined\n const found = await archivist.get(bw?.payload_hashes)\n return [bw, found.filter(exists)]\n}\n\nexport const hydrateTypedBoundWitness = async <T extends BoundWitness>(archivist: ReadArchivist, hashOrBw: Hash | WithStorageMeta<T>,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<HydratedBoundWitness<T>> => {\n const bw = isHash(hashOrBw) ? await getTypedBoundWitnessWithStorageMeta(archivist, hashOrBw, identity) : hashOrBw\n const found = await archivist.get(bw?.payload_hashes)\n const payloads = found.filter(exists)\n if (payloads.length !== bw.payload_hashes.length) {\n throw new Error(`missing payloads for ${bw._hash}`)\n }\n return [bw, payloads]\n}\n\nexport const hydrateBoundWitness = (\n archivist: ReadArchivist,\n hashOrBw: Hash | WithStorageMeta<BoundWitness>,\n): Promise<HydratedBoundWitness<BoundWitness>> => {\n const idFunction: IdentityFunction<WithStorageMeta<BoundWitness>> = x => isBoundWitness(x) && isStorageMeta(x)\n return hydrateTypedBoundWitness<BoundWitness>(archivist, hashOrBw, idFunction)\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "z", "AsObjectFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "AsObjectFactory", "IsObjectFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z", "isBoundWitness", "isStorageMeta", "isBoundWitness", "isStorageMeta"]
7
7
  }
@@ -52,7 +52,7 @@ var ViewArchivist = class extends AbstractArchivist {
52
52
  return [ArchivistGetQuerySchema, ArchivistAllQuerySchema, ArchivistNextQuerySchema, ...super.queries];
53
53
  }
54
54
  async originArchivistInstance() {
55
- this._originArchivistInstance = this._originArchivistInstance ?? assertEx(await this.resolve(this.originArchivist, { identity: isArchivistInstance, required: true }));
55
+ this._originArchivistInstance ??= assertEx(await this.resolve(this.originArchivist, { identity: isArchivistInstance, required: true }));
56
56
  return this._originArchivistInstance;
57
57
  }
58
58
  /** @deprecated use next instead */
@@ -60,10 +60,12 @@ var ViewArchivist = class extends AbstractArchivist {
60
60
  throw new Error("allHandler is deprecated, use nextHandler instead");
61
61
  }
62
62
  async getHandler(hashes) {
63
- return await (await this.originArchivistInstance()).get(hashes);
63
+ const originArchivist = await this.originArchivistInstance();
64
+ return await originArchivist.get(hashes);
64
65
  }
65
66
  async nextHandler(options) {
66
- return await (await this.originArchivistInstance()).next?.(options) ?? [];
67
+ const originArchivist = await this.originArchivistInstance();
68
+ return await originArchivist.next?.(options) ?? [];
67
69
  }
68
70
  };
69
71
  __publicField(ViewArchivist, "configSchemas", [...__superGet(ViewArchivist, ViewArchivist, "configSchemas"), ViewArchivistConfigSchema]);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/archivist-view/ViewArchivist.ts"],
4
- "sourcesContent": ["import type { Hash, Promisable } from '@ariestools/sdk'\nimport {\n assertEx,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type {\n Payload, Schema, WithStorageMeta,\n} from '@xyo-network/sdk-protocol'\nimport { asSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport { AbstractArchivist, StorageClassLabel } from '#archivist-abstract'\nimport type {\n ArchivistConfig,\n ArchivistInstance,\n ArchivistModuleEventData,\n ArchivistNextOptions,\n ArchivistParams,\n} from '#archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistConfigZod,\n ArchivistGetQuerySchema,\n ArchivistNextQuerySchema,\n isArchivistInstance,\n} from '#archivist-model'\nimport type {\n AnyConfigSchema,\n ModuleIdentifier,\n ModuleInstance,\n} from '#module-model'\nimport {\n labeledCreatableModule,\n ModuleLimitationViewLabel,\n} from '#module-model'\n\nexport const ViewArchivistConfigSchema: 'network.xyo.archivist.view.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.view.config', true)\nexport type ViewArchivistConfigSchema = typeof ViewArchivistConfigSchema\n\nexport const ViewArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ArchivistConfigZod)['shape'], 'schema'>\n & {\n originArchivist: z.ZodMiniOptional<z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>>\n schema: z.ZodMiniLiteral<ViewArchivistConfigSchema>\n },\n z.core.$strip\n> = z.extend(ArchivistConfigZod, {\n originArchivist: z.optional(z.custom<ModuleIdentifier>()),\n schema: z.literal(ViewArchivistConfigSchema),\n})\n\nexport type ViewArchivistConfigBase = z.infer<typeof ViewArchivistConfigZod>\n\nexport const isViewArchivistConfig: ReturnType<typeof zodIsFactory<ViewArchivistConfigBase>> = zodIsFactory(ViewArchivistConfigZod)\nexport const asViewArchivistConfig: ReturnType<typeof zodAsFactory<ViewArchivistConfigBase>> = zodAsFactory(ViewArchivistConfigZod, 'asViewArchivistConfig')\nexport const toViewArchivistConfig: ReturnType<typeof zodToFactory<ViewArchivistConfigBase>> = zodToFactory(ViewArchivistConfigZod, 'toViewArchivistConfig')\n\nexport type ViewArchivistConfig = ArchivistConfig<\n {\n originArchivist?: ModuleIdentifier\n },\n ViewArchivistConfigSchema\n>\n\nexport type ViewArchivistParams<TConfig extends AnyConfigSchema<ViewArchivistConfig> = AnyConfigSchema<ViewArchivistConfig>> = ArchivistParams<TConfig>\n\n@labeledCreatableModule()\nexport class ViewArchivist<\n TParams extends ViewArchivistParams<AnyConfigSchema<ViewArchivistConfig>> = ViewArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends AbstractArchivist<TParams, TEventData>\n implements ArchivistInstance, ModuleInstance {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ViewArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = ViewArchivistConfigSchema\n static override readonly labels: {\n 'ModuleLimitationLabelName': string\n 'network.xyo.storage.class': string\n } = { ...ModuleLimitationViewLabel, [StorageClassLabel]: 'proxy' }\n\n private _originArchivistInstance?: ArchivistInstance\n\n get originArchivist(): string|(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) {\n return assertEx(this.config.originArchivist, () => 'originArchivist not configured')\n }\n\n override get queries(): Schema[] {\n return [ArchivistGetQuerySchema, ArchivistAllQuerySchema, ArchivistNextQuerySchema, ...super.queries]\n }\n\n async originArchivistInstance(): Promise<ArchivistInstance<ArchivistParams<AnyConfigSchema<ArchivistConfig>>, ArchivistModuleEventData, Payload>> {\n this._originArchivistInstance\n = this._originArchivistInstance ?? assertEx(await this.resolve(this.originArchivist, { identity: isArchivistInstance, required: true }))\n return this._originArchivistInstance\n }\n\n /** @deprecated use next instead */\n protected override allHandler(): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error('allHandler is deprecated, use nextHandler instead')\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n return await (await this.originArchivistInstance()).get(hashes)\n }\n\n protected override async nextHandler(options?: ArchivistNextOptions): Promise<WithStorageMeta<Payload>[]> {\n return (await (await this.originArchivistInstance()).next?.(options)) ?? []\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AACA;AAAA,EACE;AAAA,EACA;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AAIP,SAAS,gBAAgB;AACzB,YAAY,OAAO;AAEnB,SAAS,mBAAmB,yBAAyB;AAQrD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAMP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEA,IAAM,4BAET,SAAS,qCAAqC,IAAI;AAG/C,IAAM,yBAOP,SAAO,oBAAoB;AAAA,EAC/B,iBAAmB,WAAW,SAAyB,CAAC;AAAA,EACxD,QAAU,UAAQ,yBAAyB;AAC7C,CAAC;AAIM,IAAM,wBAAkF,aAAa,sBAAsB;AAC3H,IAAM,wBAAkF,aAAa,wBAAwB,uBAAuB;AACpJ,IAAM,wBAAkF,aAAa,wBAAwB,uBAAuB;AAYpJ,IAAM,gBAAN,cAIG,kBACqC;AAAA,EAQrC;AAAA,EAER,IAAI,kBAID;AACD,WAAO,SAAS,KAAK,OAAO,iBAAiB,MAAM,gCAAgC;AAAA,EACrF;AAAA,EAEA,IAAa,UAAoB;AAC/B,WAAO,CAAC,yBAAyB,yBAAyB,0BAA0B,GAAG,MAAM,OAAO;AAAA,EACtG;AAAA,EAEA,MAAM,0BAA4I;AAChJ,SAAK,2BACD,KAAK,4BAA4B,SAAS,MAAM,KAAK,QAAQ,KAAK,iBAAiB,EAAE,UAAU,qBAAqB,UAAU,KAAK,CAAC,CAAC;AACzI,WAAO,KAAK;AAAA,EACd;AAAA;AAAA,EAGmB,aAAqD;AACtE,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AAAA,EAEA,MAAyB,WAAW,QAAqD;AACvF,WAAO,OAAO,MAAM,KAAK,wBAAwB,GAAG,IAAI,MAAM;AAAA,EAChE;AAAA,EAEA,MAAyB,YAAY,SAAqE;AACxG,WAAQ,OAAO,MAAM,KAAK,wBAAwB,GAAG,OAAO,OAAO,KAAM,CAAC;AAAA,EAC5E;AACF;AAvCE,cANW,eAMc,iBAA0B,CAAC,GAAG,yCAAM,kBAAe,yBAAyB;AACrG,cAPW,eAOc,uBAA8B;AACvD,cARW,eAQc,UAGrB,EAAE,GAAG,2BAA2B,CAAC,iBAAiB,GAAG,QAAQ;AAXtD,gBAAN;AAAA,EADN,uBAAuB;AAAA,GACX;",
4
+ "sourcesContent": ["import type { Hash, Promisable } from '@ariestools/sdk'\nimport {\n assertEx,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type {\n Payload, Schema, WithStorageMeta,\n} from '@xyo-network/sdk-protocol'\nimport { asSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport { AbstractArchivist, StorageClassLabel } from '#archivist-abstract'\nimport type {\n ArchivistConfig,\n ArchivistInstance,\n ArchivistModuleEventData,\n ArchivistNextOptions,\n ArchivistParams,\n} from '#archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistConfigZod,\n ArchivistGetQuerySchema,\n ArchivistNextQuerySchema,\n isArchivistInstance,\n} from '#archivist-model'\nimport type {\n AnyConfigSchema,\n ModuleIdentifier,\n ModuleInstance,\n} from '#module-model'\nimport {\n labeledCreatableModule,\n ModuleLimitationViewLabel,\n} from '#module-model'\n\nexport const ViewArchivistConfigSchema: 'network.xyo.archivist.view.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.view.config', true)\nexport type ViewArchivistConfigSchema = typeof ViewArchivistConfigSchema\n\nexport const ViewArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ArchivistConfigZod)['shape'], 'schema'>\n & {\n originArchivist: z.ZodMiniOptional<z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>>\n schema: z.ZodMiniLiteral<ViewArchivistConfigSchema>\n },\n z.core.$strip\n> = z.extend(ArchivistConfigZod, {\n originArchivist: z.optional(z.custom<ModuleIdentifier>()),\n schema: z.literal(ViewArchivistConfigSchema),\n})\n\nexport type ViewArchivistConfigBase = z.infer<typeof ViewArchivistConfigZod>\n\nexport const isViewArchivistConfig: ReturnType<typeof zodIsFactory<ViewArchivistConfigBase>> = zodIsFactory(ViewArchivistConfigZod)\nexport const asViewArchivistConfig: ReturnType<typeof zodAsFactory<ViewArchivistConfigBase>> = zodAsFactory(ViewArchivistConfigZod, 'asViewArchivistConfig')\nexport const toViewArchivistConfig: ReturnType<typeof zodToFactory<ViewArchivistConfigBase>> = zodToFactory(ViewArchivistConfigZod, 'toViewArchivistConfig')\n\nexport type ViewArchivistConfig = ArchivistConfig<\n {\n originArchivist?: ModuleIdentifier\n },\n ViewArchivistConfigSchema\n>\n\nexport type ViewArchivistParams<TConfig extends AnyConfigSchema<ViewArchivistConfig> = AnyConfigSchema<ViewArchivistConfig>> = ArchivistParams<TConfig>\n\n@labeledCreatableModule()\nexport class ViewArchivist<\n TParams extends ViewArchivistParams<AnyConfigSchema<ViewArchivistConfig>> = ViewArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends AbstractArchivist<TParams, TEventData>\n implements ArchivistInstance, ModuleInstance {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ViewArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = ViewArchivistConfigSchema\n static override readonly labels: {\n 'ModuleLimitationLabelName': string\n 'network.xyo.storage.class': string\n } = { ...ModuleLimitationViewLabel, [StorageClassLabel]: 'proxy' }\n\n private _originArchivistInstance?: ArchivistInstance\n\n get originArchivist(): string|(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) {\n return assertEx(this.config.originArchivist, () => 'originArchivist not configured')\n }\n\n override get queries(): Schema[] {\n return [ArchivistGetQuerySchema, ArchivistAllQuerySchema, ArchivistNextQuerySchema, ...super.queries]\n }\n\n async originArchivistInstance(): Promise<ArchivistInstance<ArchivistParams<AnyConfigSchema<ArchivistConfig>>, ArchivistModuleEventData, Payload>> {\n this._originArchivistInstance\n ??= assertEx(await this.resolve(this.originArchivist, { identity: isArchivistInstance, required: true }))\n return this._originArchivistInstance\n }\n\n /** @deprecated use next instead */\n protected override allHandler(): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error('allHandler is deprecated, use nextHandler instead')\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n const originArchivist = await this.originArchivistInstance()\n return await originArchivist.get(hashes)\n }\n\n protected override async nextHandler(options?: ArchivistNextOptions): Promise<WithStorageMeta<Payload>[]> {\n const originArchivist = await this.originArchivistInstance()\n return (await originArchivist.next?.(options)) ?? []\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AACA;AAAA,EACE;AAAA,EACA;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AAIP,SAAS,gBAAgB;AACzB,YAAY,OAAO;AAEnB,SAAS,mBAAmB,yBAAyB;AAQrD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAMP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEA,IAAM,4BAET,SAAS,qCAAqC,IAAI;AAG/C,IAAM,yBAOP,SAAO,oBAAoB;AAAA,EAC/B,iBAAmB,WAAW,SAAyB,CAAC;AAAA,EACxD,QAAU,UAAQ,yBAAyB;AAC7C,CAAC;AAIM,IAAM,wBAAkF,aAAa,sBAAsB;AAC3H,IAAM,wBAAkF,aAAa,wBAAwB,uBAAuB;AACpJ,IAAM,wBAAkF,aAAa,wBAAwB,uBAAuB;AAYpJ,IAAM,gBAAN,cAIG,kBACqC;AAAA,EAQrC;AAAA,EAER,IAAI,kBAID;AACD,WAAO,SAAS,KAAK,OAAO,iBAAiB,MAAM,gCAAgC;AAAA,EACrF;AAAA,EAEA,IAAa,UAAoB;AAC/B,WAAO,CAAC,yBAAyB,yBAAyB,0BAA0B,GAAG,MAAM,OAAO;AAAA,EACtG;AAAA,EAEA,MAAM,0BAA4I;AAChJ,SAAK,6BACC,SAAS,MAAM,KAAK,QAAQ,KAAK,iBAAiB,EAAE,UAAU,qBAAqB,UAAU,KAAK,CAAC,CAAC;AAC1G,WAAO,KAAK;AAAA,EACd;AAAA;AAAA,EAGmB,aAAqD;AACtE,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AAAA,EAEA,MAAyB,WAAW,QAAqD;AACvF,UAAM,kBAAkB,MAAM,KAAK,wBAAwB;AAC3D,WAAO,MAAM,gBAAgB,IAAI,MAAM;AAAA,EACzC;AAAA,EAEA,MAAyB,YAAY,SAAqE;AACxG,UAAM,kBAAkB,MAAM,KAAK,wBAAwB;AAC3D,WAAQ,MAAM,gBAAgB,OAAO,OAAO,KAAM,CAAC;AAAA,EACrD;AACF;AAzCE,cANW,eAMc,iBAA0B,CAAC,GAAG,yCAAM,kBAAe,yBAAyB;AACrG,cAPW,eAOc,uBAA8B;AACvD,cARW,eAQc,UAGrB,EAAE,GAAG,2BAA2B,CAAC,iBAAiB,GAAG,QAAQ;AAXtD,gBAAN;AAAA,EADN,uBAAuB;AAAA,GACX;",
6
6
  "names": []
7
7
  }
@@ -12,36 +12,41 @@ var BoundWitnessLoader = class extends Base {
12
12
  _createCacheMutex = new Mutex();
13
13
  async load(hash) {
14
14
  if (Array.isArray(hash)) {
15
- return (await Promise.all(hash.map((h) => this.load(h)))).flat();
15
+ const loaded = await Promise.all(hash.map((h) => this.load(h)));
16
+ return loaded.flat();
16
17
  }
17
18
  const bw = asBoundWitness(await this.getPayload(hash));
18
19
  if (bw) {
19
- const payloads = (await Promise.all(bw.payload_hashes.map((hash2) => this.getPayload(hash2)))).filter(exists);
20
+ const fetched = await Promise.all(bw.payload_hashes.map((hash2) => this.getPayload(hash2)));
21
+ const payloads = fetched.filter(exists);
20
22
  return [bw, ...payloads];
21
23
  }
22
24
  return [];
23
25
  }
24
26
  async getCache() {
25
27
  return await this._createCacheMutex.runExclusive(async () => {
26
- this._cache = this._cache ?? this.params.cache ?? await MemoryArchivist.create({ account: "random" });
28
+ this._cache ??= this.params.cache ?? await MemoryArchivist.create({ account: "random" });
27
29
  if (this.params.workingSet.payloads) await this._cache.insert(this.params.workingSet.payloads);
28
30
  return this._cache;
29
31
  });
30
32
  }
31
33
  async getPayload(hash) {
32
34
  const cache = await this.getCache();
33
- const payloadFromCache = (await cache.get([hash])).at(0);
35
+ const cached = await cache.get([hash]);
36
+ const payloadFromCache = cached.at(0);
34
37
  if (isAnyPayload(payloadFromCache)) {
35
38
  return payloadFromCache;
36
39
  }
37
- for (const archivist of this.params.workingSet.archivists ?? []) {
40
+ const workingSetArchivists = this.params.workingSet.archivists ?? [];
41
+ for (const archivist of workingSetArchivists) {
38
42
  const payloadFromArchivist = await archivist.get([hash]);
39
43
  if (isAnyPayload(payloadFromArchivist)) {
40
44
  await cache.insert([payloadFromArchivist]);
41
45
  return payloadFromArchivist;
42
46
  }
43
47
  }
44
- for (const huriEndpoint of this.params.workingSet.huriEndpoints ?? []) {
48
+ const huriEndpoints = this.params.workingSet.huriEndpoints ?? [];
49
+ for (const huriEndpoint of huriEndpoints) {
45
50
  const huri = new Huri(hash, { archivistUri: huriEndpoint });
46
51
  const payloadFromHuri = await huri.fetch();
47
52
  if (isAnyPayload(payloadFromHuri)) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/boundwitness-loader/Loader.ts"],
4
- "sourcesContent": ["import type { BaseParams, Hash } from '@ariestools/sdk'\nimport { Base, exists } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk-protocol'\nimport {\n asBoundWitness, Huri, isAnyPayload,\n} from '@xyo-network/sdk-protocol'\nimport { Mutex } from 'async-mutex'\n\nimport { MemoryArchivist } from '#archivist-memory'\nimport type { ArchivistInstance } from '#archivist-model'\n\nexport interface PayloadWorkingSet {\n archivists?: ArchivistInstance[]\n huriEndpoints?: string[]\n payloads?: Payload[]\n}\n\nexport interface BoundWitnessLoaderParams extends BaseParams {\n cache?: ArchivistInstance\n workingSet: PayloadWorkingSet\n}\n\nexport class BoundWitnessLoader extends Base<BoundWitnessLoaderParams> {\n private _cache?: ArchivistInstance\n private _createCacheMutex = new Mutex()\n\n async load(hash: Hash | Hash[]): Promise<Payload[]> {\n if (Array.isArray(hash)) {\n return (await Promise.all(hash.map(h => this.load(h)))).flat()\n }\n const bw = asBoundWitness(await this.getPayload(hash))\n if (bw) {\n const payloads = (await Promise.all(bw.payload_hashes.map(hash => this.getPayload(hash)))).filter(exists)\n return [bw, ...payloads]\n }\n return []\n }\n\n private async getCache() {\n return await this._createCacheMutex.runExclusive(async () => {\n this._cache = this._cache ?? this.params.cache ?? (await MemoryArchivist.create({ account: 'random' }))\n if (this.params.workingSet.payloads) await this._cache.insert(this.params.workingSet.payloads)\n return this._cache\n })\n }\n\n private async getPayload(hash: Hash): Promise<Payload | undefined> {\n const cache = await this.getCache()\n const payloadFromCache = (await cache.get([hash])).at(0)\n if (isAnyPayload(payloadFromCache)) {\n return payloadFromCache\n }\n\n for (const archivist of this.params.workingSet.archivists ?? []) {\n const payloadFromArchivist = await archivist.get([hash])\n if (isAnyPayload(payloadFromArchivist)) {\n await cache.insert([payloadFromArchivist])\n return payloadFromArchivist\n }\n }\n\n for (const huriEndpoint of this.params.workingSet.huriEndpoints ?? []) {\n const huri = new Huri(hash, { archivistUri: huriEndpoint })\n const payloadFromHuri = await huri.fetch()\n if (isAnyPayload(payloadFromHuri)) {\n await cache.insert([payloadFromHuri])\n return payloadFromHuri\n }\n }\n }\n}\n"],
5
- "mappings": ";AACA,SAAS,MAAM,cAAc;AAE7B;AAAA,EACE;AAAA,EAAgB;AAAA,EAAM;AAAA,OACjB;AACP,SAAS,aAAa;AAEtB,SAAS,uBAAuB;AAczB,IAAM,qBAAN,cAAiC,KAA+B;AAAA,EAC7D;AAAA,EACA,oBAAoB,IAAI,MAAM;AAAA,EAEtC,MAAM,KAAK,MAAyC;AAClD,QAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,cAAQ,MAAM,QAAQ,IAAI,KAAK,IAAI,OAAK,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;AAAA,IAC/D;AACA,UAAM,KAAK,eAAe,MAAM,KAAK,WAAW,IAAI,CAAC;AACrD,QAAI,IAAI;AACN,YAAM,YAAY,MAAM,QAAQ,IAAI,GAAG,eAAe,IAAI,CAAAA,UAAQ,KAAK,WAAWA,KAAI,CAAC,CAAC,GAAG,OAAO,MAAM;AACxG,aAAO,CAAC,IAAI,GAAG,QAAQ;AAAA,IACzB;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,MAAc,WAAW;AACvB,WAAO,MAAM,KAAK,kBAAkB,aAAa,YAAY;AAC3D,WAAK,SAAS,KAAK,UAAU,KAAK,OAAO,SAAU,MAAM,gBAAgB,OAAO,EAAE,SAAS,SAAS,CAAC;AACrG,UAAI,KAAK,OAAO,WAAW,SAAU,OAAM,KAAK,OAAO,OAAO,KAAK,OAAO,WAAW,QAAQ;AAC7F,aAAO,KAAK;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EAEA,MAAc,WAAW,MAA0C;AACjE,UAAM,QAAQ,MAAM,KAAK,SAAS;AAClC,UAAM,oBAAoB,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AACvD,QAAI,aAAa,gBAAgB,GAAG;AAClC,aAAO;AAAA,IACT;AAEA,eAAW,aAAa,KAAK,OAAO,WAAW,cAAc,CAAC,GAAG;AAC/D,YAAM,uBAAuB,MAAM,UAAU,IAAI,CAAC,IAAI,CAAC;AACvD,UAAI,aAAa,oBAAoB,GAAG;AACtC,cAAM,MAAM,OAAO,CAAC,oBAAoB,CAAC;AACzC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,eAAW,gBAAgB,KAAK,OAAO,WAAW,iBAAiB,CAAC,GAAG;AACrE,YAAM,OAAO,IAAI,KAAK,MAAM,EAAE,cAAc,aAAa,CAAC;AAC1D,YAAM,kBAAkB,MAAM,KAAK,MAAM;AACzC,UAAI,aAAa,eAAe,GAAG;AACjC,cAAM,MAAM,OAAO,CAAC,eAAe,CAAC;AACpC,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import type { BaseParams, Hash } from '@ariestools/sdk'\nimport { Base, exists } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk-protocol'\nimport {\n asBoundWitness, Huri, isAnyPayload,\n} from '@xyo-network/sdk-protocol'\nimport { Mutex } from 'async-mutex'\n\nimport { MemoryArchivist } from '#archivist-memory'\nimport type { ArchivistInstance } from '#archivist-model'\n\nexport interface PayloadWorkingSet {\n archivists?: ArchivistInstance[]\n huriEndpoints?: string[]\n payloads?: Payload[]\n}\n\nexport interface BoundWitnessLoaderParams extends BaseParams {\n cache?: ArchivistInstance\n workingSet: PayloadWorkingSet\n}\n\nexport class BoundWitnessLoader extends Base<BoundWitnessLoaderParams> {\n private _cache?: ArchivistInstance\n private _createCacheMutex = new Mutex()\n\n async load(hash: Hash | Hash[]): Promise<Payload[]> {\n if (Array.isArray(hash)) {\n const loaded = await Promise.all(hash.map(h => this.load(h)))\n return loaded.flat()\n }\n const bw = asBoundWitness(await this.getPayload(hash))\n if (bw) {\n const fetched = await Promise.all(bw.payload_hashes.map(hash => this.getPayload(hash)))\n const payloads = fetched.filter(exists)\n return [bw, ...payloads]\n }\n return []\n }\n\n private async getCache() {\n return await this._createCacheMutex.runExclusive(async () => {\n this._cache ??= this.params.cache ?? (await MemoryArchivist.create({ account: 'random' }))\n if (this.params.workingSet.payloads) await this._cache.insert(this.params.workingSet.payloads)\n return this._cache\n })\n }\n\n private async getPayload(hash: Hash): Promise<Payload | undefined> {\n const cache = await this.getCache()\n const cached = await cache.get([hash])\n const payloadFromCache = cached.at(0)\n if (isAnyPayload(payloadFromCache)) {\n return payloadFromCache\n }\n\n const workingSetArchivists = this.params.workingSet.archivists ?? []\n for (const archivist of workingSetArchivists) {\n const payloadFromArchivist = await archivist.get([hash])\n if (isAnyPayload(payloadFromArchivist)) {\n await cache.insert([payloadFromArchivist])\n return payloadFromArchivist\n }\n }\n\n const huriEndpoints = this.params.workingSet.huriEndpoints ?? []\n for (const huriEndpoint of huriEndpoints) {\n const huri = new Huri(hash, { archivistUri: huriEndpoint })\n const payloadFromHuri = await huri.fetch()\n if (isAnyPayload(payloadFromHuri)) {\n await cache.insert([payloadFromHuri])\n return payloadFromHuri\n }\n }\n }\n}\n"],
5
+ "mappings": ";AACA,SAAS,MAAM,cAAc;AAE7B;AAAA,EACE;AAAA,EAAgB;AAAA,EAAM;AAAA,OACjB;AACP,SAAS,aAAa;AAEtB,SAAS,uBAAuB;AAczB,IAAM,qBAAN,cAAiC,KAA+B;AAAA,EAC7D;AAAA,EACA,oBAAoB,IAAI,MAAM;AAAA,EAEtC,MAAM,KAAK,MAAyC;AAClD,QAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,YAAM,SAAS,MAAM,QAAQ,IAAI,KAAK,IAAI,OAAK,KAAK,KAAK,CAAC,CAAC,CAAC;AAC5D,aAAO,OAAO,KAAK;AAAA,IACrB;AACA,UAAM,KAAK,eAAe,MAAM,KAAK,WAAW,IAAI,CAAC;AACrD,QAAI,IAAI;AACN,YAAM,UAAU,MAAM,QAAQ,IAAI,GAAG,eAAe,IAAI,CAAAA,UAAQ,KAAK,WAAWA,KAAI,CAAC,CAAC;AACtF,YAAM,WAAW,QAAQ,OAAO,MAAM;AACtC,aAAO,CAAC,IAAI,GAAG,QAAQ;AAAA,IACzB;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,MAAc,WAAW;AACvB,WAAO,MAAM,KAAK,kBAAkB,aAAa,YAAY;AAC3D,WAAK,WAAW,KAAK,OAAO,SAAU,MAAM,gBAAgB,OAAO,EAAE,SAAS,SAAS,CAAC;AACxF,UAAI,KAAK,OAAO,WAAW,SAAU,OAAM,KAAK,OAAO,OAAO,KAAK,OAAO,WAAW,QAAQ;AAC7F,aAAO,KAAK;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EAEA,MAAc,WAAW,MAA0C;AACjE,UAAM,QAAQ,MAAM,KAAK,SAAS;AAClC,UAAM,SAAS,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC;AACrC,UAAM,mBAAmB,OAAO,GAAG,CAAC;AACpC,QAAI,aAAa,gBAAgB,GAAG;AAClC,aAAO;AAAA,IACT;AAEA,UAAM,uBAAuB,KAAK,OAAO,WAAW,cAAc,CAAC;AACnE,eAAW,aAAa,sBAAsB;AAC5C,YAAM,uBAAuB,MAAM,UAAU,IAAI,CAAC,IAAI,CAAC;AACvD,UAAI,aAAa,oBAAoB,GAAG;AACtC,cAAM,MAAM,OAAO,CAAC,oBAAoB,CAAC;AACzC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,UAAM,gBAAgB,KAAK,OAAO,WAAW,iBAAiB,CAAC;AAC/D,eAAW,gBAAgB,eAAe;AACxC,YAAM,OAAO,IAAI,KAAK,MAAM,EAAE,cAAc,aAAa,CAAC;AAC1D,YAAM,kBAAkB,MAAM,KAAK,MAAM;AACzC,UAAI,aAAa,eAAe,GAAG;AACjC,cAAM,MAAM,OAAO,CAAC,eAAe,CAAC;AACpC,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;",
6
6
  "names": ["hash"]
7
7
  }
@@ -55,10 +55,9 @@ var AbstractBridge = class extends AbstractModuleInstance {
55
55
  const workingSet = options.direction === "up" ? [this] : [...roots, this];
56
56
  if (id === "*") {
57
57
  const remainingDepth = (options.maxDepth ?? 5) - 1;
58
- return remainingDepth <= 0 ? workingSet : (
59
- // eslint-disable-next-line @typescript-eslint/await-thenable
60
- [...workingSet, ...(await Promise.all(roots.map((mod) => mod.resolve("*", { ...options, maxDepth: remainingDepth })))).flat()]
61
- );
58
+ if (remainingDepth <= 0) return workingSet;
59
+ const nested = await Promise.all(roots.map((mod) => mod.resolve("*", { ...options, maxDepth: remainingDepth })));
60
+ return [...workingSet, ...nested.flat()];
62
61
  }
63
62
  switch (typeof id) {
64
63
  case "string": {
@@ -139,10 +138,16 @@ var AbstractBridge = class extends AbstractModuleInstance {
139
138
  async resolveArchivingArchivists() {
140
139
  const archivists = this.archiving?.archivists;
141
140
  if (!archivists) return [];
142
- const resolvedAddresses = (await Promise.all(
143
- archivists.map(async (archivist) => (await Promise.all((await this.parents()).map((parent) => resolvePathToAddress(parent, archivist)))).filter(exists))
144
- )).flat().filter(exists);
145
- const resolved = (await Promise.all(resolvedAddresses.map((address) => resolveAddressToInstance(this, address)))).filter(exists);
141
+ const resolvedAddressesNested = await Promise.all(
142
+ archivists.map(async (archivist) => {
143
+ const parents = await this.parents();
144
+ const addresses = await Promise.all(parents.map((parent) => resolvePathToAddress(parent, archivist)));
145
+ return addresses.filter(exists);
146
+ })
147
+ );
148
+ const resolvedAddresses = resolvedAddressesNested.flat().filter(exists);
149
+ const resolvedInstances = await Promise.all(resolvedAddresses.map((address) => resolveAddressToInstance(this, address)));
150
+ const resolved = resolvedInstances.filter(exists);
146
151
  return resolved.map((mod) => asArchivistInstance(mod)).filter(exists);
147
152
  }
148
153
  };
@@ -283,19 +288,19 @@ var ModuleProxyResolver = class {
283
288
  if (direction === "down" || direction === "all") {
284
289
  const downResolverModule = await this.downResolver.resolve(firstPartAddress);
285
290
  if (downResolverModule) {
286
- return remainingParts ? downResolverModule.resolve(remainingParts, options) : downResolverModule;
291
+ return remainingParts !== void 0 && remainingParts !== "" ? downResolverModule.resolve(remainingParts, options) : downResolverModule;
287
292
  }
288
293
  console.log(`ModuleProxyResolver: ${firstPartAddress} | ${this.root.address}`);
289
294
  if (firstPartAddress === this.root.address) {
290
295
  const wrapped = wrapModuleWithType(this.root, await Account.random());
291
- return remainingParts ? wrapped?.resolve(remainingParts, options) : wrapped;
296
+ return remainingParts !== void 0 && remainingParts !== "" ? wrapped?.resolve(remainingParts, options) : wrapped;
292
297
  }
293
298
  const addressToProxy = Object.keys(this.childAddressMap).includes(firstPartAddress) ? firstPartAddress : Object.entries(this.childAddressMap).find(([_, value]) => value === firstPartAddress)?.[0];
294
299
  if (addressToProxy) {
295
300
  const proxy = await this.host.resolve(addressToProxy, { ...options, direction: "down" });
296
301
  if (proxy) {
297
302
  const wrapped = wrapModuleWithType(proxy, await Account.random());
298
- return remainingParts ? wrapped?.resolve(remainingParts, options) : wrapped;
303
+ return remainingParts !== void 0 && remainingParts !== "" ? wrapped?.resolve(remainingParts, options) : wrapped;
299
304
  }
300
305
  return;
301
306
  }
@@ -325,6 +330,18 @@ var ModuleProxyResolver = class {
325
330
  };
326
331
 
327
332
  // src/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.ts
333
+ var collectChildAddresses = (manifest, result) => {
334
+ const children = manifest.modules?.public ?? [];
335
+ for (const child of children) {
336
+ if (typeof child !== "object") {
337
+ continue;
338
+ }
339
+ const address = child.status?.address;
340
+ if (isAddress(address)) {
341
+ result[address] = child.config.name ?? null;
342
+ }
343
+ }
344
+ };
328
345
  var AbstractModuleProxy = class extends AbstractModuleInstance2 {
329
346
  static requiredQueries = [ModuleStateQuerySchema];
330
347
  _config;
@@ -371,8 +388,9 @@ var AbstractModuleProxy = class extends AbstractModuleInstance2 {
371
388
  }
372
389
  async addressPreviousHash() {
373
390
  const queryPayload = { schema: ModuleAddressQuerySchema };
391
+ const queryResult = await this.sendQuery(queryPayload, void 0, this.account);
374
392
  const result = assertEx3(
375
- (await this.sendQuery(queryPayload, void 0, this.account)).find(
393
+ queryResult.find(
376
394
  isPayloadOfSchemaType2(AddressPreviousHashSchema)
377
395
  ),
378
396
  () => "Result did not include correct payload"
@@ -391,16 +409,9 @@ var AbstractModuleProxy = class extends AbstractModuleInstance2 {
391
409
  const state = await this.state();
392
410
  nodeManifests = state.filter(isPayloadOfSchemaType2(NodeManifestPayloadSchema));
393
411
  }
394
- for (const manifest of nodeManifests ?? []) {
395
- const children = manifest.modules?.public ?? [];
396
- for (const child of children) {
397
- if (typeof child === "object") {
398
- const address = child.status?.address;
399
- if (isAddress(address)) {
400
- result[address] = child.config.name ?? null;
401
- }
402
- }
403
- }
412
+ const manifests = nodeManifests ?? [];
413
+ for (const manifest of manifests) {
414
+ collectChildAddresses(manifest, result);
404
415
  }
405
416
  return result;
406
417
  }
@@ -425,8 +436,9 @@ var AbstractModuleProxy = class extends AbstractModuleInstance2 {
425
436
  );
426
437
  }
427
438
  async manifest(maxDepth) {
428
- const queryPayload = { schema: ModuleManifestQuerySchema, ...maxDepth === void 0 ? {} : { maxDepth } };
429
- return (await this.sendQuery(queryPayload))[0];
439
+ const queryPayload = { schema: ModuleManifestQuerySchema, ...maxDepth !== void 0 && { maxDepth } };
440
+ const queryResult = await this.sendQuery(queryPayload);
441
+ return queryResult[0];
430
442
  }
431
443
  async moduleAddress() {
432
444
  const queryPayload = { schema: ModuleAddressQuerySchema };
@@ -434,10 +446,11 @@ var AbstractModuleProxy = class extends AbstractModuleInstance2 {
434
446
  }
435
447
  async previousHash() {
436
448
  const queryPayload = { schema: ModuleAddressQuerySchema };
437
- return (await this.sendQuery(queryPayload)).pop().previousHash;
449
+ const queryResult = await this.sendQuery(queryPayload);
450
+ return queryResult.pop().previousHash;
438
451
  }
439
452
  async publicChildren() {
440
- this._publicChildren = this._publicChildren ?? await super.publicChildren();
453
+ this._publicChildren ??= await super.publicChildren();
441
454
  return this._publicChildren;
442
455
  }
443
456
  async query(query, payloads) {