{
  "version": 3,
  "sources": ["../../src/modules/archivist-view/ViewArchivist.ts"],
  "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"],
  "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;",
  "names": []
}
