{
  "version": 3,
  "sources": ["../../src/modules/bridge-wrapper/BridgeWrapper.ts"],
  "sourcesContent": ["import type { TypeCheck } from '@ariestools/sdk'\nimport type { XyoAddress } from '@xyo-network/sdk-protocol'\n\nimport type {\n  BridgeConfig,\n  BridgeExposeOptions,\n  BridgeExposeQuery,\n  BridgeInstance,\n  BridgeModule,\n  BridgeModuleEventData,\n  BridgeParams,\n  BridgeUnexposeOptions,\n  BridgeUnexposeQuery,\n  ModuleFilterPayload,\n} from '#bridge-model'\nimport {\n  BridgeExposeQuerySchema,\n  BridgeUnexposeQuerySchema,\n  isBridgeInstance,\n  isBridgeModule,\n  ModuleFilterPayloadSchema,\n} from '#bridge-model'\nimport type {\n  AddressPayload, AnyConfigSchema, ModuleIdentifier, ModuleInstance,\n  QueryableModuleTypeCheck,\n} from '#module-model'\nimport { constructableModuleWrapper, ModuleWrapper } from '#module-wrapper'\n\nconstructableModuleWrapper()\nexport class BridgeWrapper<TWrappedModule extends BridgeModule = BridgeModule>\n  extends ModuleWrapper<TWrappedModule>\n  implements BridgeInstance<TWrappedModule['params']> {\n  static override readonly instanceIdentityCheck: TypeCheck<BridgeInstance<BridgeParams<AnyConfigSchema<BridgeConfig<void, void, void, void>>>, BridgeModuleEventData>> = isBridgeInstance\n  static override readonly moduleIdentityCheck: QueryableModuleTypeCheck<BridgeModule<BridgeParams<AnyConfigSchema<BridgeConfig<void, void, void, void>>>, BridgeModuleEventData>> = isBridgeModule\n\n  async expose(id: ModuleIdentifier, options?: BridgeExposeOptions): Promise<ModuleInstance[]> {\n    const filterPayload: ModuleFilterPayload = {\n      id, schema: ModuleFilterPayloadSchema, ...options,\n    }\n    const addresses = (\n      await this.sendQuery<BridgeExposeQuery, ModuleFilterPayload, AddressPayload>({ schema: BridgeExposeQuerySchema }, [filterPayload])\n    ).map(({ address }) => address)\n    return await Promise.all((addresses).map(address => this.resolve(address)))\n  }\n\n  async unexpose(id: ModuleIdentifier, options?: BridgeUnexposeOptions): Promise<XyoAddress[]> {\n    const filterPayload: ModuleFilterPayload = {\n      id, schema: ModuleFilterPayloadSchema, ...options,\n    }\n    return (\n      await this.sendQuery<BridgeUnexposeQuery, ModuleFilterPayload, AddressPayload>({ schema: BridgeUnexposeQuerySchema }, [filterPayload])\n    ).map(({ address }) => address)\n  }\n}\n"],
  "mappings": ";AAeA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,SAAS,4BAA4B,qBAAqB;AAE1D,2BAA2B;AACpB,IAAM,gBAAN,cACG,cAC4C;AAAA,EACpD,OAAyB,wBAA+I;AAAA,EACxK,OAAyB,sBAA0J;AAAA,EAEnL,MAAM,OAAO,IAAsB,SAA0D;AAC3F,UAAM,gBAAqC;AAAA,MACzC;AAAA,MAAI,QAAQ;AAAA,MAA2B,GAAG;AAAA,IAC5C;AACA,UAAM,aACJ,MAAM,KAAK,UAAkE,EAAE,QAAQ,wBAAwB,GAAG,CAAC,aAAa,CAAC,GACjI,IAAI,CAAC,EAAE,QAAQ,MAAM,OAAO;AAC9B,WAAO,MAAM,QAAQ,IAAK,UAAW,IAAI,aAAW,KAAK,QAAQ,OAAO,CAAC,CAAC;AAAA,EAC5E;AAAA,EAEA,MAAM,SAAS,IAAsB,SAAwD;AAC3F,UAAM,gBAAqC;AAAA,MACzC;AAAA,MAAI,QAAQ;AAAA,MAA2B,GAAG;AAAA,IAC5C;AACA,YACE,MAAM,KAAK,UAAoE,EAAE,QAAQ,0BAA0B,GAAG,CAAC,aAAa,CAAC,GACrI,IAAI,CAAC,EAAE,QAAQ,MAAM,OAAO;AAAA,EAChC;AACF;",
  "names": []
}
