import {MUTES, asDecryptedEvent, readList} from "@welshman/util" import {TrustedEvent, PublishedList} from "@welshman/util" import {deriveEventsMapped, collection} from "@welshman/store" import {repository} from "./core.js" import {ensurePlaintext} from "./plaintext.js" import {makeOutboxLoader} from "./relaySelections.js" export const mutes = deriveEventsMapped(repository, { filters: [{kinds: [MUTES]}], itemToEvent: item => item.event, eventToItem: async (event: TrustedEvent) => readList( asDecryptedEvent(event, { content: await ensurePlaintext(event), }), ), }) export const { indexStore: mutesByPubkey, deriveItem: deriveMutes, loadItem: loadMutes, } = collection({ name: "mutes", store: mutes, getKey: mute => mute.event.pubkey, load: makeOutboxLoader(MUTES), })