Skip to content

Welshman Docs / @welshman/domain

@welshman/domain

Classes

Type Aliases

ClassifiedPrice

ClassifiedPrice = object

Defined in: kinds/Classified.ts:7

Properties

amount

amount: number

Defined in: kinds/Classified.ts:8

currency

currency: string

Defined in: kinds/Classified.ts:9

frequency

frequency: string

Defined in: kinds/Classified.ts:10


CommentRef

CommentRef = object

Defined in: kinds/Comment.ts:24

Properties

address?

optional address: string

Defined in: kinds/Comment.ts:26

id?

optional id: string

Defined in: kinds/Comment.ts:25

kind?

optional kind: string

Defined in: kinds/Comment.ts:27

pubkey?

optional pubkey: string

Defined in: kinds/Comment.ts:28


Emoji

Emoji = object

Defined in: behaviors/Emoji.ts:8

A NIP-30 custom emoji, parsed from an ["emoji", <shortcode>, <url>, <address>] tag. address is an optional kind:pubkey:d-tag pointer to the kind-30030 emoji set (NIP-51) the emoji belongs to.

Properties

address?

optional address: string

Defined in: behaviors/Emoji.ts:11

shortcode

shortcode: string

Defined in: behaviors/Emoji.ts:9

url

url: string

Defined in: behaviors/Emoji.ts:10


HandlerMeta

HandlerMeta = object

Defined in: kinds/Handler.ts:8

Properties

about?

optional about: string

Defined in: kinds/Handler.ts:10

lud16?

optional lud16: string

Defined in: kinds/Handler.ts:13

name?

optional name: string

Defined in: kinds/Handler.ts:9

nip05?

optional nip05: string

Defined in: kinds/Handler.ts:14

picture?

optional picture: string

Defined in: kinds/Handler.ts:11

website?

optional website: string

Defined in: kinds/Handler.ts:12


KindConfig<Reader, Writer>

KindConfig<Reader, Writer> = object

Defined in: core/Kind.ts:11

Type Parameters

Reader

Reader extends BaseEventReader

Writer

Writer extends EventWriter<Reader>

Properties

kind

kind: number

Defined in: core/Kind.ts:12

reader()

reader: (kind, context, event) => Reader

Defined in: core/Kind.ts:13

Parameters
kind

number

context

KindContext

event

TrustedEvent

Returns

Reader

writer()

writer: (kind, context, reader?) => Writer

Defined in: core/Kind.ts:14

Parameters
kind

number

context

KindContext

reader?

Reader

Returns

Writer


KindContext

KindContext = object

Defined in: core/Kind.ts:6

Properties

resolver

resolver: Resolver

Defined in: core/Kind.ts:7

signer?

optional signer: ISigner

Defined in: core/Kind.ts:8


Parsed<R>

Parsed<R> = ReturnType<R["parse"]>

Defined in: core/EventReader.ts:104

What reader.parse() yields for a given reader — the reader for sync kinds, a promise of it for kinds that decrypt. await works either way.

Type Parameters

R

R extends BaseEventReader


PinReference

PinReference = { id: string; relay: string; type: "event"; } | { address: string; relay: string; type: "address"; } | { id: string; kind: string; type: "external"; }

Defined in: kinds/Pin.ts:9


PollOption

PollOption = object

Defined in: kinds/Poll.ts:10

Properties

id

id: string

Defined in: kinds/Poll.ts:11

label

label: string

Defined in: kinds/Poll.ts:12


PollResult

PollResult = object

Defined in: kinds/Poll.ts:15

Properties

options

options: object[]

Defined in: kinds/Poll.ts:16

id

id: string

label

label: string

votes

votes: number

voters

voters: number

Defined in: kinds/Poll.ts:17


PollType

PollType = "singlechoice" | "multiplechoice"

Defined in: kinds/Poll.ts:8


RelayInfo

RelayInfo = object

Defined in: other/Relay.ts:7

Properties

optional banner: string

Defined in: other/Relay.ts:9

contact?

optional contact: string

Defined in: other/Relay.ts:13

description?

optional description: string

Defined in: other/Relay.ts:17

icon?

optional icon: string

Defined in: other/Relay.ts:8

limitation?

optional limitation: object

Defined in: other/Relay.ts:21

auth_required?

optional auth_required: boolean

min_pow_difficulty?

optional min_pow_difficulty: number

payment_required?

optional payment_required: boolean

name?

optional name: string

Defined in: other/Relay.ts:10

negentropy?

optional negentropy: number

Defined in: other/Relay.ts:16

privacy_policy?

optional privacy_policy: string

Defined in: other/Relay.ts:19

pubkey?

optional pubkey: string

Defined in: other/Relay.ts:12

redirect_to?

optional redirect_to: string

Defined in: other/Relay.ts:28

self?

optional self: string

Defined in: other/Relay.ts:11

software?

optional software: string

Defined in: other/Relay.ts:14

supported_nips?

optional supported_nips: string[]

Defined in: other/Relay.ts:18

terms_of_service?

optional terms_of_service: string

Defined in: other/Relay.ts:20

version?

optional version: string

Defined in: other/Relay.ts:15


Zap

Zap = object

Defined in: other/Zapper.ts:9

Properties

invoiceAmount

invoiceAmount: number

Defined in: other/Zapper.ts:12

request

request: TrustedEvent

Defined in: other/Zapper.ts:10

response

response: TrustedEvent

Defined in: other/Zapper.ts:11


ZapperValues

ZapperValues = object

Defined in: other/Zapper.ts:20

Properties

allowsNostr?

optional allowsNostr: boolean

Defined in: other/Zapper.ts:27

callback?

optional callback: string

Defined in: other/Zapper.ts:24

lnurl

lnurl: string

Defined in: other/Zapper.ts:21

maxSendable?

optional maxSendable: number

Defined in: other/Zapper.ts:26

minSendable?

optional minSendable: number

Defined in: other/Zapper.ts:25

nostrPubkey

nostrPubkey: string

Defined in: other/Zapper.ts:23

pubkey

pubkey: string

Defined in: other/Zapper.ts:22


ZapSplit

ZapSplit = object

Defined in: behaviors/ZapSplits.ts:8

A single recipient of an event's zaps, parsed from a NIP-57 Appendix G zap tag of the form ["zap", <pubkey>, <relay hint>, <weight>].

Properties

pubkey

pubkey: string

Defined in: behaviors/ZapSplits.ts:9

relay?

optional relay: string

Defined in: behaviors/ZapSplits.ts:10

weight

weight: number

Defined in: behaviors/ZapSplits.ts:11


ZapSplitAmount

ZapSplitAmount = ZapSplit & object

Defined in: behaviors/ZapSplits.ts:14

Type declaration

amount

amount: number

Variables

AppData

const AppData: KindFactory<AppDataReader, AppDataWriter>

Defined in: kinds/AppData.ts:107


BlockedRelayList

const BlockedRelayList: KindFactory<BlockedRelayListReader, BlockedRelayListWriter>

Defined in: kinds/BlockedRelayList.ts:34


BlossomServerList

const BlossomServerList: KindFactory<BlossomServerListReader, BlossomServerListWriter>

Defined in: kinds/BlossomServerList.ts:34


BookmarkList

const BookmarkList: KindFactory<BookmarkListReader, BookmarkListWriter>

Defined in: kinds/BookmarkList.ts:40


Classified

const Classified: KindFactory<ClassifiedReader, ClassifiedWriter>

Defined in: kinds/Classified.ts:85


Comment

const Comment: KindFactory<CommentReader, CommentWriter>

Defined in: kinds/Comment.ts:141


CommunityList

const CommunityList: KindFactory<CommunityListReader, CommunityListWriter>

Defined in: kinds/CommunityList.ts:25


Delete

const Delete: KindFactory<DeleteReader, DeleteWriter>

Defined in: kinds/Delete.ts:98


EmojiList

const EmojiList: KindFactory<EmojiListReader, EmojiListWriter>

Defined in: kinds/EmojiList.ts:24


Feed

const Feed: KindFactory<FeedReader, FeedWriter>

Defined in: kinds/Feed.ts:38


FeedList

const FeedList: KindFactory<FeedListReader, FeedListWriter>

Defined in: kinds/FeedList.ts:32


FollowList

const FollowList: KindFactory<FollowListReader, FollowListWriter>

Defined in: kinds/FollowList.ts:32


Handler

const Handler: KindFactory<HandlerReader, HandlerWriter>

Defined in: kinds/Handler.ts:125


HandlerRecommendation

const HandlerRecommendation: KindFactory<HandlerRecommendationReader, HandlerRecommendationWriter>

Defined in: kinds/HandlerRecommendation.ts:37


MessagingRelayList

const MessagingRelayList: KindFactory<MessagingRelayListReader, MessagingRelayListWriter>

Defined in: kinds/MessagingRelayList.ts:30


MuteList

const MuteList: KindFactory<MuteListReader, MuteListWriter>

Defined in: kinds/MuteList.ts:36


Note

const Note: KindFactory<NoteReader, NoteWriter>

Defined in: kinds/Note.ts:128


Pin

const Pin: KindFactory<PinReader, PinWriter>

Defined in: kinds/Pin.ts:98


Pinboard

const Pinboard: KindFactory<PinboardReader, PinboardWriter>

Defined in: kinds/Pinboard.ts:63


PinList

const PinList: KindFactory<PinListReader, PinListWriter>

Defined in: kinds/PinList.ts:32


Poll

const Poll: KindFactory<PollReader, PollWriter>

Defined in: kinds/Poll.ts:113


PollResponse

const PollResponse: KindFactory<PollResponseReader, PollResponseWriter>

Defined in: kinds/PollResponse.ts:36


Profile

const Profile: KindFactory<ProfileReader, ProfileWriter>

Defined in: kinds/Profile.ts:135


Reaction

const Reaction: KindFactory<ReactionReader, ReactionWriter>

Defined in: kinds/Reaction.ts:76


RelayAddMember

const RelayAddMember: KindFactory<RelayAddMemberReader, RelayAddMemberWriter>

Defined in: kinds/RelayAddMember.ts:22


RelayInvite

const RelayInvite: KindFactory<RelayInviteReader, RelayInviteWriter>

Defined in: kinds/RelayInvite.ts:22


RelayJoin

const RelayJoin: KindFactory<RelayJoinReader, RelayJoinWriter>

Defined in: kinds/RelayJoin.ts:30


RelayLeave

const RelayLeave: KindFactory<RelayLeaveReader, RelayLeaveWriter>

Defined in: kinds/RelayLeave.ts:13


RelayList

const RelayList: KindFactory<RelayListReader, RelayListWriter>

Defined in: kinds/RelayList.ts:133


RelayMembers

const RelayMembers: KindFactory<RelayMembersReader, RelayMembersWriter>

Defined in: kinds/RelayMembers.ts:45


RelayRemoveMember

const RelayRemoveMember: KindFactory<RelayRemoveMemberReader, RelayRemoveMemberWriter>

Defined in: kinds/RelayRemoveMember.ts:22


RelayRole

const RelayRole: KindFactory<RelayRoleReader, RelayRoleWriter>

Defined in: kinds/RelayRole.ts:53


RelaySet

const RelaySet: KindFactory<RelaySetReader, RelaySetWriter>

Defined in: kinds/RelaySet.ts:54


Report

const Report: KindFactory<ReportReader, ReportWriter>

Defined in: kinds/Report.ts:79


RoomAddMember

const RoomAddMember: KindFactory<RoomAddMemberReader, RoomAddMemberWriter>

Defined in: kinds/RoomAddMember.ts:22


RoomAdmins

const RoomAdmins: KindFactory<RoomAdminsReader, RoomAdminsWriter>

Defined in: kinds/RoomAdmins.ts:30


RoomCreate

const RoomCreate: KindFactory<RoomCreateReader, RoomCreateWriter>

Defined in: kinds/RoomCreate.ts:21


RoomCreatePermission

const RoomCreatePermission: KindFactory<RoomCreatePermissionReader, RoomCreatePermissionWriter>

Defined in: kinds/RoomCreatePermission.ts:34


RoomDelete

const RoomDelete: KindFactory<RoomDeleteReader, RoomDeleteWriter>

Defined in: kinds/RoomDelete.ts:21


RoomEdit

const RoomEdit: KindFactory<RoomEditReader, RoomEditWriter>

Defined in: kinds/RoomEdit.ts:102


RoomJoin

const RoomJoin: KindFactory<RoomJoinReader, RoomJoinWriter>

Defined in: kinds/RoomJoin.ts:30


RoomLeave

const RoomLeave: KindFactory<RoomLeaveReader, RoomLeaveWriter>

Defined in: kinds/RoomLeave.ts:21


RoomList

const RoomList: KindFactory<RoomListReader, RoomListWriter>

Defined in: kinds/RoomList.ts:141


RoomMembers

const RoomMembers: KindFactory<RoomMembersReader, RoomMembersWriter>

Defined in: kinds/RoomMembers.ts:34


RoomMeta

const RoomMeta: KindFactory<RoomMetaReader, RoomMetaWriter>

Defined in: kinds/RoomMeta.ts:94


RoomPins

const RoomPins: KindFactory<RoomPinsReader, RoomPinsWriter>

Defined in: kinds/RoomPins.ts:42


RoomRemoveMember

const RoomRemoveMember: KindFactory<RoomRemoveMemberReader, RoomRemoveMemberWriter>

Defined in: kinds/RoomRemoveMember.ts:30


RoomUpdatePins

const RoomUpdatePins: KindFactory<RoomUpdatePinsReader, RoomUpdatePinsWriter>

Defined in: kinds/RoomUpdatePins.ts:54


SearchRelayList

const SearchRelayList: KindFactory<SearchRelayListReader, SearchRelayListWriter>

Defined in: kinds/SearchRelayList.ts:34


Thread

const Thread: KindFactory<ThreadReader, ThreadWriter>

Defined in: kinds/Thread.ts:20


TimeEvent

const TimeEvent: KindFactory<TimeEventReader, TimeEventWriter>

Defined in: kinds/TimeEvent.ts:73


TopicList

const TopicList: KindFactory<TopicListReader, TopicListWriter>

Defined in: kinds/TopicList.ts:40


ZapGoal

const ZapGoal: KindFactory<ZapGoalReader, ZapGoalWriter>

Defined in: kinds/ZapGoal.ts:99


ZapReceipt

const ZapReceipt: KindFactory<ZapReceiptReader, ZapReceiptWriter>

Defined in: kinds/ZapReceipt.ts:83


ZapRequest

const ZapRequest: KindFactory<ZapRequestReader, ZapRequestWriter>

Defined in: kinds/ZapRequest.ts:90

Functions

displayPubkey()

displayPubkey(pubkey): string

Defined in: kinds/Profile.ts:22

Parameters

pubkey

string

Returns

string


getCommentTags()

getCommentTags(tags): object

Defined in: kinds/Comment.ts:11

Parameters

tags

string[][]

Returns

object

replies

replies: string[][]

roots

roots: string[][]


getCommentTagValues()

getCommentTagValues(tags): Record<string, string[]>

Defined in: kinds/Comment.ts:18

Parameters

tags

string[][]

Returns

Record<string, string[]>


getEmojis()

getEmojis(event): Emoji[]

Defined in: behaviors/Emoji.ts:19

Parse an event's NIP-30 emoji tags. Tags missing a shortcode or url are skipped. A plain function so it can read emojis off any event, regardless of kind, without a kind-specific reader.

Parameters

event

TrustedEvent

Returns

Emoji[]


getReplyTags()

getReplyTags(tags): object

Defined in: kinds/Note.ts:21

Parameters

tags

string[][]

Returns

object

mentions

mentions: string[][]

replies

replies: string[][]

roots

roots: string[][]


getReplyTagValues()

getReplyTagValues(tags): Record<string, string[]>

Defined in: kinds/Note.ts:57

Parameters

tags

string[][]

Returns

Record<string, string[]>


getZapSplits()

getZapSplits(event): ZapSplit[]

Defined in: behaviors/ZapSplits.ts:36

Resolve an event's zap-split recipients per NIP-57 Appendix G:

  • With no zap tags the whole zap goes to the event's author.
  • If no recipient carries a weight, the zap is split equally (weight 1 each).
  • If weights are only partially present, unweighted recipients drop to weight 0 (i.e. they should not be zapped).

Weight-0 recipients are still returned so callers have the full recipient set; they simply receive 0 from splitZapAmount.

A plain function so it can read splits off any event, regardless of kind, without a kind-specific reader.

Parameters

event

TrustedEvent

Returns

ZapSplit[]


parseLnUrl()

parseLnUrl(values): Maybe<string>

Defined in: kinds/Profile.ts:10

Parameters

values

Record<string, any> = {}

Returns

Maybe<string>


splitZapAmount()

splitZapAmount(event, total): ZapSplitAmount[]

Defined in: behaviors/ZapSplits.ts:58

Divide total (in any integer unit, e.g. millisats) across an event's zap-split recipients proportionally to their weights. Any rounding remainder is handed to the highest-weighted recipient so the parts sum back to exactly total. If every weight is 0, nobody is zapped.

Parameters

event

TrustedEvent

total

number

Returns

ZapSplitAmount[]