Welshman Docs / @welshman/domain
@welshman/domain
Classes
- AppDataReader
- AppDataWriter
- AsyncEventReader
- BaseEventReader
- BlockedRelayListReader
- BlockedRelayListWriter
- BlossomServerListReader
- BlossomServerListWriter
- BookmarkListReader
- BookmarkListWriter
- ClassifiedReader
- ClassifiedWriter
- CommentReader
- CommentWriter
- CommunityListReader
- CommunityListWriter
- ConfiguredKind
- DeleteReader
- DeleteWriter
- EmojiListReader
- EmojiListWriter
- EventReader
- EventWriter
- FeedListReader
- FeedListWriter
- FeedReader
- FeedWriter
- FollowListReader
- FollowListWriter
- HandlerReader
- HandlerRecommendationReader
- HandlerRecommendationWriter
- HandlerWriter
- KindFactory
- ListReader
- ListWriter
- MessagingRelayListReader
- MessagingRelayListWriter
- MuteListReader
- MuteListWriter
- NoteReader
- NoteWriter
- PinboardReader
- PinboardWriter
- PinListReader
- PinListWriter
- PinReader
- PinWriter
- PollReader
- PollResponseReader
- PollResponseWriter
- PollWriter
- ProfileReader
- ProfileWriter
- ReactionReader
- ReactionWriter
- Relay
- RelayAddMemberReader
- RelayAddMemberWriter
- RelayInviteReader
- RelayInviteWriter
- RelayJoinReader
- RelayJoinWriter
- RelayLeaveReader
- RelayLeaveWriter
- RelayListReader
- RelayListWriter
- RelayMembersReader
- RelayMembersWriter
- RelayRemoveMemberReader
- RelayRemoveMemberWriter
- RelayRoleReader
- RelayRoleWriter
- RelaySetReader
- RelaySetWriter
- ReportReader
- ReportWriter
- RoomAddMemberReader
- RoomAddMemberWriter
- RoomAdminsReader
- RoomAdminsWriter
- RoomCreatePermissionReader
- RoomCreatePermissionWriter
- RoomCreateReader
- RoomCreateWriter
- RoomDeleteReader
- RoomDeleteWriter
- RoomEditReader
- RoomEditWriter
- RoomJoinReader
- RoomJoinWriter
- RoomLeaveReader
- RoomLeaveWriter
- RoomListReader
- RoomListWriter
- RoomMembersReader
- RoomMembersWriter
- RoomMetaReader
- RoomMetaWriter
- RoomPinsReader
- RoomPinsWriter
- RoomRemoveMemberReader
- RoomRemoveMemberWriter
- RoomUpdatePinsReader
- RoomUpdatePinsWriter
- SearchRelayListReader
- SearchRelayListWriter
- TagParser
- ThreadReader
- ThreadWriter
- TimeEventReader
- TimeEventWriter
- TopicListReader
- TopicListWriter
- ZapGoalReader
- ZapGoalWriter
- Zapper
- ZapReceiptReader
- ZapReceiptWriter
- ZapRequestReader
- ZapRequestWriter
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?
optionaladdress:string
Defined in: kinds/Comment.ts:26
id?
optionalid:string
Defined in: kinds/Comment.ts:25
kind?
optionalkind:string
Defined in: kinds/Comment.ts:27
pubkey?
optionalpubkey: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?
optionaladdress: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?
optionalabout:string
Defined in: kinds/Handler.ts:10
lud16?
optionallud16:string
Defined in: kinds/Handler.ts:13
name?
optionalname:string
Defined in: kinds/Handler.ts:9
nip05?
optionalnip05:string
Defined in: kinds/Handler.ts:14
picture?
optionalpicture:string
Defined in: kinds/Handler.ts:11
website?
optionalwebsite: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
event
Returns
Reader
writer()
writer: (
kind,context,reader?) =>Writer
Defined in: core/Kind.ts:14
Parameters
kind
number
context
reader?
Reader
Returns
Writer
KindContext
KindContext =
object
Defined in: core/Kind.ts:6
Properties
resolver
resolver:
Resolver
Defined in: core/Kind.ts:7
signer?
optionalsigner: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
banner?
optionalbanner:string
Defined in: other/Relay.ts:9
contact?
optionalcontact:string
Defined in: other/Relay.ts:13
description?
optionaldescription:string
Defined in: other/Relay.ts:17
icon?
optionalicon:string
Defined in: other/Relay.ts:8
limitation?
optionallimitation:object
Defined in: other/Relay.ts:21
auth_required?
optionalauth_required:boolean
min_pow_difficulty?
optionalmin_pow_difficulty:number
payment_required?
optionalpayment_required:boolean
name?
optionalname:string
Defined in: other/Relay.ts:10
negentropy?
optionalnegentropy:number
Defined in: other/Relay.ts:16
privacy_policy?
optionalprivacy_policy:string
Defined in: other/Relay.ts:19
pubkey?
optionalpubkey:string
Defined in: other/Relay.ts:12
redirect_to?
optionalredirect_to:string
Defined in: other/Relay.ts:28
self?
optionalself:string
Defined in: other/Relay.ts:11
software?
optionalsoftware:string
Defined in: other/Relay.ts:14
supported_nips?
optionalsupported_nips:string[]
Defined in: other/Relay.ts:18
terms_of_service?
optionalterms_of_service:string
Defined in: other/Relay.ts:20
version?
optionalversion: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?
optionalallowsNostr:boolean
Defined in: other/Zapper.ts:27
callback?
optionalcallback:string
Defined in: other/Zapper.ts:24
lnurl
lnurl:
string
Defined in: other/Zapper.ts:21
maxSendable?
optionalmaxSendable:number
Defined in: other/Zapper.ts:26
minSendable?
optionalminSendable: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?
optionalrelay: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
constAppData:KindFactory<AppDataReader,AppDataWriter>
Defined in: kinds/AppData.ts:107
BlockedRelayList
constBlockedRelayList:KindFactory<BlockedRelayListReader,BlockedRelayListWriter>
Defined in: kinds/BlockedRelayList.ts:34
BlossomServerList
constBlossomServerList:KindFactory<BlossomServerListReader,BlossomServerListWriter>
Defined in: kinds/BlossomServerList.ts:34
BookmarkList
constBookmarkList:KindFactory<BookmarkListReader,BookmarkListWriter>
Defined in: kinds/BookmarkList.ts:40
Classified
constClassified:KindFactory<ClassifiedReader,ClassifiedWriter>
Defined in: kinds/Classified.ts:85
Comment
constComment:KindFactory<CommentReader,CommentWriter>
Defined in: kinds/Comment.ts:141
CommunityList
constCommunityList:KindFactory<CommunityListReader,CommunityListWriter>
Defined in: kinds/CommunityList.ts:25
Delete
constDelete:KindFactory<DeleteReader,DeleteWriter>
Defined in: kinds/Delete.ts:98
EmojiList
constEmojiList:KindFactory<EmojiListReader,EmojiListWriter>
Defined in: kinds/EmojiList.ts:24
Feed
constFeed:KindFactory<FeedReader,FeedWriter>
Defined in: kinds/Feed.ts:38
FeedList
constFeedList:KindFactory<FeedListReader,FeedListWriter>
Defined in: kinds/FeedList.ts:32
FollowList
constFollowList:KindFactory<FollowListReader,FollowListWriter>
Defined in: kinds/FollowList.ts:32
Handler
constHandler:KindFactory<HandlerReader,HandlerWriter>
Defined in: kinds/Handler.ts:125
HandlerRecommendation
constHandlerRecommendation:KindFactory<HandlerRecommendationReader,HandlerRecommendationWriter>
Defined in: kinds/HandlerRecommendation.ts:37
MessagingRelayList
constMessagingRelayList:KindFactory<MessagingRelayListReader,MessagingRelayListWriter>
Defined in: kinds/MessagingRelayList.ts:30
MuteList
constMuteList:KindFactory<MuteListReader,MuteListWriter>
Defined in: kinds/MuteList.ts:36
Note
constNote:KindFactory<NoteReader,NoteWriter>
Defined in: kinds/Note.ts:128
Pin
constPin:KindFactory<PinReader,PinWriter>
Defined in: kinds/Pin.ts:98
Pinboard
constPinboard:KindFactory<PinboardReader,PinboardWriter>
Defined in: kinds/Pinboard.ts:63
PinList
constPinList:KindFactory<PinListReader,PinListWriter>
Defined in: kinds/PinList.ts:32
Poll
constPoll:KindFactory<PollReader,PollWriter>
Defined in: kinds/Poll.ts:113
PollResponse
constPollResponse:KindFactory<PollResponseReader,PollResponseWriter>
Defined in: kinds/PollResponse.ts:36
Profile
constProfile:KindFactory<ProfileReader,ProfileWriter>
Defined in: kinds/Profile.ts:135
Reaction
constReaction:KindFactory<ReactionReader,ReactionWriter>
Defined in: kinds/Reaction.ts:76
RelayAddMember
constRelayAddMember:KindFactory<RelayAddMemberReader,RelayAddMemberWriter>
Defined in: kinds/RelayAddMember.ts:22
RelayInvite
constRelayInvite:KindFactory<RelayInviteReader,RelayInviteWriter>
Defined in: kinds/RelayInvite.ts:22
RelayJoin
constRelayJoin:KindFactory<RelayJoinReader,RelayJoinWriter>
Defined in: kinds/RelayJoin.ts:30
RelayLeave
constRelayLeave:KindFactory<RelayLeaveReader,RelayLeaveWriter>
Defined in: kinds/RelayLeave.ts:13
RelayList
constRelayList:KindFactory<RelayListReader,RelayListWriter>
Defined in: kinds/RelayList.ts:133
RelayMembers
constRelayMembers:KindFactory<RelayMembersReader,RelayMembersWriter>
Defined in: kinds/RelayMembers.ts:45
RelayRemoveMember
constRelayRemoveMember:KindFactory<RelayRemoveMemberReader,RelayRemoveMemberWriter>
Defined in: kinds/RelayRemoveMember.ts:22
RelayRole
constRelayRole:KindFactory<RelayRoleReader,RelayRoleWriter>
Defined in: kinds/RelayRole.ts:53
RelaySet
constRelaySet:KindFactory<RelaySetReader,RelaySetWriter>
Defined in: kinds/RelaySet.ts:54
Report
constReport:KindFactory<ReportReader,ReportWriter>
Defined in: kinds/Report.ts:79
RoomAddMember
constRoomAddMember:KindFactory<RoomAddMemberReader,RoomAddMemberWriter>
Defined in: kinds/RoomAddMember.ts:22
RoomAdmins
constRoomAdmins:KindFactory<RoomAdminsReader,RoomAdminsWriter>
Defined in: kinds/RoomAdmins.ts:30
RoomCreate
constRoomCreate:KindFactory<RoomCreateReader,RoomCreateWriter>
Defined in: kinds/RoomCreate.ts:21
RoomCreatePermission
constRoomCreatePermission:KindFactory<RoomCreatePermissionReader,RoomCreatePermissionWriter>
Defined in: kinds/RoomCreatePermission.ts:34
RoomDelete
constRoomDelete:KindFactory<RoomDeleteReader,RoomDeleteWriter>
Defined in: kinds/RoomDelete.ts:21
RoomEdit
constRoomEdit:KindFactory<RoomEditReader,RoomEditWriter>
Defined in: kinds/RoomEdit.ts:102
RoomJoin
constRoomJoin:KindFactory<RoomJoinReader,RoomJoinWriter>
Defined in: kinds/RoomJoin.ts:30
RoomLeave
constRoomLeave:KindFactory<RoomLeaveReader,RoomLeaveWriter>
Defined in: kinds/RoomLeave.ts:21
RoomList
constRoomList:KindFactory<RoomListReader,RoomListWriter>
Defined in: kinds/RoomList.ts:141
RoomMembers
constRoomMembers:KindFactory<RoomMembersReader,RoomMembersWriter>
Defined in: kinds/RoomMembers.ts:34
RoomMeta
constRoomMeta:KindFactory<RoomMetaReader,RoomMetaWriter>
Defined in: kinds/RoomMeta.ts:94
RoomPins
constRoomPins:KindFactory<RoomPinsReader,RoomPinsWriter>
Defined in: kinds/RoomPins.ts:42
RoomRemoveMember
constRoomRemoveMember:KindFactory<RoomRemoveMemberReader,RoomRemoveMemberWriter>
Defined in: kinds/RoomRemoveMember.ts:30
RoomUpdatePins
constRoomUpdatePins:KindFactory<RoomUpdatePinsReader,RoomUpdatePinsWriter>
Defined in: kinds/RoomUpdatePins.ts:54
SearchRelayList
constSearchRelayList:KindFactory<SearchRelayListReader,SearchRelayListWriter>
Defined in: kinds/SearchRelayList.ts:34
Thread
constThread:KindFactory<ThreadReader,ThreadWriter>
Defined in: kinds/Thread.ts:20
TimeEvent
constTimeEvent:KindFactory<TimeEventReader,TimeEventWriter>
Defined in: kinds/TimeEvent.ts:73
TopicList
constTopicList:KindFactory<TopicListReader,TopicListWriter>
Defined in: kinds/TopicList.ts:40
ZapGoal
constZapGoal:KindFactory<ZapGoalReader,ZapGoalWriter>
Defined in: kinds/ZapGoal.ts:99
ZapReceipt
constZapReceipt:KindFactory<ZapReceiptReader,ZapReceiptWriter>
Defined in: kinds/ZapReceipt.ts:83
ZapRequest
constZapRequest: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
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
zaptags 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
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
total
number