@welshman/domain 0.9.0-pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/domain/src/EventBuilder.d.ts +35 -0
- package/dist/domain/src/EventBuilder.d.ts.map +1 -0
- package/dist/domain/src/EventBuilder.js +111 -0
- package/dist/domain/src/EventBuilder.js.map +1 -0
- package/dist/domain/src/EventReader.d.ts +24 -0
- package/dist/domain/src/EventReader.d.ts.map +1 -0
- package/dist/domain/src/EventReader.js +57 -0
- package/dist/domain/src/EventReader.js.map +1 -0
- package/dist/domain/src/ListBuilder.d.ts +21 -0
- package/dist/domain/src/ListBuilder.d.ts.map +1 -0
- package/dist/domain/src/ListBuilder.js +73 -0
- package/dist/domain/src/ListBuilder.js.map +1 -0
- package/dist/domain/src/ListReader.d.ts +12 -0
- package/dist/domain/src/ListReader.d.ts.map +1 -0
- package/dist/domain/src/ListReader.js +31 -0
- package/dist/domain/src/ListReader.js.map +1 -0
- package/dist/domain/src/index.d.ts +54 -0
- package/dist/domain/src/index.d.ts.map +1 -0
- package/dist/domain/src/index.js +54 -0
- package/dist/domain/src/index.js.map +1 -0
- package/dist/domain/src/kinds/BlockedRelayList.d.ts +15 -0
- package/dist/domain/src/kinds/BlockedRelayList.d.ts.map +1 -0
- package/dist/domain/src/kinds/BlockedRelayList.js +30 -0
- package/dist/domain/src/kinds/BlockedRelayList.js.map +1 -0
- package/dist/domain/src/kinds/BlossomServerList.d.ts +15 -0
- package/dist/domain/src/kinds/BlossomServerList.d.ts.map +1 -0
- package/dist/domain/src/kinds/BlossomServerList.js +30 -0
- package/dist/domain/src/kinds/BlossomServerList.js.map +1 -0
- package/dist/domain/src/kinds/BookmarkList.d.ts +17 -0
- package/dist/domain/src/kinds/BookmarkList.d.ts.map +1 -0
- package/dist/domain/src/kinds/BookmarkList.js +36 -0
- package/dist/domain/src/kinds/BookmarkList.js.map +1 -0
- package/dist/domain/src/kinds/Classified.d.ts +27 -0
- package/dist/domain/src/kinds/Classified.d.ts.map +1 -0
- package/dist/domain/src/kinds/Classified.js +65 -0
- package/dist/domain/src/kinds/Classified.js.map +1 -0
- package/dist/domain/src/kinds/Comment.d.ts +29 -0
- package/dist/domain/src/kinds/Comment.d.ts.map +1 -0
- package/dist/domain/src/kinds/Comment.js +82 -0
- package/dist/domain/src/kinds/Comment.js.map +1 -0
- package/dist/domain/src/kinds/EmojiList.d.ts +16 -0
- package/dist/domain/src/kinds/EmojiList.d.ts.map +1 -0
- package/dist/domain/src/kinds/EmojiList.js +33 -0
- package/dist/domain/src/kinds/EmojiList.js.map +1 -0
- package/dist/domain/src/kinds/Feed.d.ts +17 -0
- package/dist/domain/src/kinds/Feed.d.ts.map +1 -0
- package/dist/domain/src/kinds/Feed.js +33 -0
- package/dist/domain/src/kinds/Feed.js.map +1 -0
- package/dist/domain/src/kinds/FeedList.d.ts +15 -0
- package/dist/domain/src/kinds/FeedList.d.ts.map +1 -0
- package/dist/domain/src/kinds/FeedList.js +30 -0
- package/dist/domain/src/kinds/FeedList.js.map +1 -0
- package/dist/domain/src/kinds/FollowList.d.ts +14 -0
- package/dist/domain/src/kinds/FollowList.d.ts.map +1 -0
- package/dist/domain/src/kinds/FollowList.js +27 -0
- package/dist/domain/src/kinds/FollowList.js.map +1 -0
- package/dist/domain/src/kinds/GroupList.d.ts +13 -0
- package/dist/domain/src/kinds/GroupList.d.ts.map +1 -0
- package/dist/domain/src/kinds/GroupList.js +24 -0
- package/dist/domain/src/kinds/GroupList.js.map +1 -0
- package/dist/domain/src/kinds/Handler.d.ts +41 -0
- package/dist/domain/src/kinds/Handler.d.ts.map +1 -0
- package/dist/domain/src/kinds/Handler.js +86 -0
- package/dist/domain/src/kinds/Handler.js.map +1 -0
- package/dist/domain/src/kinds/HandlerRecommendation.d.ts +15 -0
- package/dist/domain/src/kinds/HandlerRecommendation.d.ts.map +1 -0
- package/dist/domain/src/kinds/HandlerRecommendation.js +32 -0
- package/dist/domain/src/kinds/HandlerRecommendation.js.map +1 -0
- package/dist/domain/src/kinds/MessagingRelayList.d.ts +14 -0
- package/dist/domain/src/kinds/MessagingRelayList.d.ts.map +1 -0
- package/dist/domain/src/kinds/MessagingRelayList.js +27 -0
- package/dist/domain/src/kinds/MessagingRelayList.js.map +1 -0
- package/dist/domain/src/kinds/MuteList.d.ts +15 -0
- package/dist/domain/src/kinds/MuteList.d.ts.map +1 -0
- package/dist/domain/src/kinds/MuteList.js +30 -0
- package/dist/domain/src/kinds/MuteList.js.map +1 -0
- package/dist/domain/src/kinds/Pin.d.ts +37 -0
- package/dist/domain/src/kinds/Pin.d.ts.map +1 -0
- package/dist/domain/src/kinds/Pin.js +74 -0
- package/dist/domain/src/kinds/Pin.js.map +1 -0
- package/dist/domain/src/kinds/PinList.d.ts +15 -0
- package/dist/domain/src/kinds/PinList.d.ts.map +1 -0
- package/dist/domain/src/kinds/PinList.js +30 -0
- package/dist/domain/src/kinds/PinList.js.map +1 -0
- package/dist/domain/src/kinds/Pinboard.d.ts +21 -0
- package/dist/domain/src/kinds/Pinboard.d.ts.map +1 -0
- package/dist/domain/src/kinds/Pinboard.js +53 -0
- package/dist/domain/src/kinds/Pinboard.js.map +1 -0
- package/dist/domain/src/kinds/Poll.d.ts +37 -0
- package/dist/domain/src/kinds/Poll.d.ts.map +1 -0
- package/dist/domain/src/kinds/Poll.js +80 -0
- package/dist/domain/src/kinds/Poll.js.map +1 -0
- package/dist/domain/src/kinds/PollResponse.d.ts +15 -0
- package/dist/domain/src/kinds/PollResponse.d.ts.map +1 -0
- package/dist/domain/src/kinds/PollResponse.js +33 -0
- package/dist/domain/src/kinds/PollResponse.js.map +1 -0
- package/dist/domain/src/kinds/Profile.d.ts +36 -0
- package/dist/domain/src/kinds/Profile.d.ts.map +1 -0
- package/dist/domain/src/kinds/Profile.js +105 -0
- package/dist/domain/src/kinds/Profile.js.map +1 -0
- package/dist/domain/src/kinds/RelayAddMember.d.ts +12 -0
- package/dist/domain/src/kinds/RelayAddMember.d.ts.map +1 -0
- package/dist/domain/src/kinds/RelayAddMember.js +21 -0
- package/dist/domain/src/kinds/RelayAddMember.js.map +1 -0
- package/dist/domain/src/kinds/RelayInvite.d.ts +12 -0
- package/dist/domain/src/kinds/RelayInvite.d.ts.map +1 -0
- package/dist/domain/src/kinds/RelayInvite.js +21 -0
- package/dist/domain/src/kinds/RelayInvite.js.map +1 -0
- package/dist/domain/src/kinds/RelayJoin.d.ts +14 -0
- package/dist/domain/src/kinds/RelayJoin.d.ts.map +1 -0
- package/dist/domain/src/kinds/RelayJoin.js +27 -0
- package/dist/domain/src/kinds/RelayJoin.js.map +1 -0
- package/dist/domain/src/kinds/RelayLeave.d.ts +10 -0
- package/dist/domain/src/kinds/RelayLeave.d.ts.map +1 -0
- package/dist/domain/src/kinds/RelayLeave.js +14 -0
- package/dist/domain/src/kinds/RelayLeave.js.map +1 -0
- package/dist/domain/src/kinds/RelayList.d.ts +24 -0
- package/dist/domain/src/kinds/RelayList.d.ts.map +1 -0
- package/dist/domain/src/kinds/RelayList.js +89 -0
- package/dist/domain/src/kinds/RelayList.js.map +1 -0
- package/dist/domain/src/kinds/RelayMembers.d.ts +17 -0
- package/dist/domain/src/kinds/RelayMembers.d.ts.map +1 -0
- package/dist/domain/src/kinds/RelayMembers.js +38 -0
- package/dist/domain/src/kinds/RelayMembers.js.map +1 -0
- package/dist/domain/src/kinds/RelayRemoveMember.d.ts +12 -0
- package/dist/domain/src/kinds/RelayRemoveMember.d.ts.map +1 -0
- package/dist/domain/src/kinds/RelayRemoveMember.js +21 -0
- package/dist/domain/src/kinds/RelayRemoveMember.js.map +1 -0
- package/dist/domain/src/kinds/RelaySet.d.ts +20 -0
- package/dist/domain/src/kinds/RelaySet.d.ts.map +1 -0
- package/dist/domain/src/kinds/RelaySet.js +45 -0
- package/dist/domain/src/kinds/RelaySet.js.map +1 -0
- package/dist/domain/src/kinds/Report.d.ts +18 -0
- package/dist/domain/src/kinds/Report.d.ts.map +1 -0
- package/dist/domain/src/kinds/Report.js +59 -0
- package/dist/domain/src/kinds/Report.js.map +1 -0
- package/dist/domain/src/kinds/RoomAddMember.d.ts +12 -0
- package/dist/domain/src/kinds/RoomAddMember.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomAddMember.js +21 -0
- package/dist/domain/src/kinds/RoomAddMember.js.map +1 -0
- package/dist/domain/src/kinds/RoomAdmins.d.ts +14 -0
- package/dist/domain/src/kinds/RoomAdmins.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomAdmins.js +27 -0
- package/dist/domain/src/kinds/RoomAdmins.js.map +1 -0
- package/dist/domain/src/kinds/RoomCreate.d.ts +11 -0
- package/dist/domain/src/kinds/RoomCreate.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomCreate.js +20 -0
- package/dist/domain/src/kinds/RoomCreate.js.map +1 -0
- package/dist/domain/src/kinds/RoomCreatePermission.d.ts +15 -0
- package/dist/domain/src/kinds/RoomCreatePermission.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomCreatePermission.js +30 -0
- package/dist/domain/src/kinds/RoomCreatePermission.js.map +1 -0
- package/dist/domain/src/kinds/RoomDelete.d.ts +11 -0
- package/dist/domain/src/kinds/RoomDelete.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomDelete.js +20 -0
- package/dist/domain/src/kinds/RoomDelete.js.map +1 -0
- package/dist/domain/src/kinds/RoomEdit.d.ts +28 -0
- package/dist/domain/src/kinds/RoomEdit.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomEdit.js +80 -0
- package/dist/domain/src/kinds/RoomEdit.js.map +1 -0
- package/dist/domain/src/kinds/RoomJoin.d.ts +15 -0
- package/dist/domain/src/kinds/RoomJoin.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomJoin.js +33 -0
- package/dist/domain/src/kinds/RoomJoin.js.map +1 -0
- package/dist/domain/src/kinds/RoomLeave.d.ts +11 -0
- package/dist/domain/src/kinds/RoomLeave.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomLeave.js +20 -0
- package/dist/domain/src/kinds/RoomLeave.js.map +1 -0
- package/dist/domain/src/kinds/RoomList.d.ts +14 -0
- package/dist/domain/src/kinds/RoomList.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomList.js +27 -0
- package/dist/domain/src/kinds/RoomList.js.map +1 -0
- package/dist/domain/src/kinds/RoomMembers.d.ts +15 -0
- package/dist/domain/src/kinds/RoomMembers.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomMembers.js +30 -0
- package/dist/domain/src/kinds/RoomMembers.js.map +1 -0
- package/dist/domain/src/kinds/RoomMeta.d.ts +27 -0
- package/dist/domain/src/kinds/RoomMeta.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomMeta.js +72 -0
- package/dist/domain/src/kinds/RoomMeta.js.map +1 -0
- package/dist/domain/src/kinds/RoomRemoveMember.d.ts +14 -0
- package/dist/domain/src/kinds/RoomRemoveMember.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomRemoveMember.js +27 -0
- package/dist/domain/src/kinds/RoomRemoveMember.js.map +1 -0
- package/dist/domain/src/kinds/SearchRelayList.d.ts +15 -0
- package/dist/domain/src/kinds/SearchRelayList.d.ts.map +1 -0
- package/dist/domain/src/kinds/SearchRelayList.js +30 -0
- package/dist/domain/src/kinds/SearchRelayList.js.map +1 -0
- package/dist/domain/src/kinds/SlashCommand.d.ts +38 -0
- package/dist/domain/src/kinds/SlashCommand.d.ts.map +1 -0
- package/dist/domain/src/kinds/SlashCommand.js +91 -0
- package/dist/domain/src/kinds/SlashCommand.js.map +1 -0
- package/dist/domain/src/kinds/Thread.d.ts +12 -0
- package/dist/domain/src/kinds/Thread.d.ts.map +1 -0
- package/dist/domain/src/kinds/Thread.js +21 -0
- package/dist/domain/src/kinds/Thread.js.map +1 -0
- package/dist/domain/src/kinds/TimeEvent.d.ts +21 -0
- package/dist/domain/src/kinds/TimeEvent.d.ts.map +1 -0
- package/dist/domain/src/kinds/TimeEvent.js +58 -0
- package/dist/domain/src/kinds/TimeEvent.js.map +1 -0
- package/dist/domain/src/kinds/TopicList.d.ts +17 -0
- package/dist/domain/src/kinds/TopicList.d.ts.map +1 -0
- package/dist/domain/src/kinds/TopicList.js +36 -0
- package/dist/domain/src/kinds/TopicList.js.map +1 -0
- package/dist/domain/src/kinds/ZapGoal.d.ts +20 -0
- package/dist/domain/src/kinds/ZapGoal.d.ts.map +1 -0
- package/dist/domain/src/kinds/ZapGoal.js +52 -0
- package/dist/domain/src/kinds/ZapGoal.js.map +1 -0
- package/dist/domain/src/kinds/ZapReceipt.d.ts +28 -0
- package/dist/domain/src/kinds/ZapReceipt.d.ts.map +1 -0
- package/dist/domain/src/kinds/ZapReceipt.js +93 -0
- package/dist/domain/src/kinds/ZapReceipt.js.map +1 -0
- package/dist/domain/src/kinds/ZapRequest.d.ts +20 -0
- package/dist/domain/src/kinds/ZapRequest.d.ts.map +1 -0
- package/dist/domain/src/kinds/ZapRequest.js +47 -0
- package/dist/domain/src/kinds/ZapRequest.js.map +1 -0
- package/dist/feeds/src/compiler.d.ts +49 -0
- package/dist/feeds/src/compiler.d.ts.map +1 -0
- package/dist/feeds/src/compiler.js +253 -0
- package/dist/feeds/src/compiler.js.map +1 -0
- package/dist/feeds/src/controller.d.ts +32 -0
- package/dist/feeds/src/controller.d.ts.map +1 -0
- package/dist/feeds/src/controller.js +329 -0
- package/dist/feeds/src/controller.js.map +1 -0
- package/dist/feeds/src/core.d.ts +76 -0
- package/dist/feeds/src/core.d.ts.map +1 -0
- package/dist/feeds/src/core.js +28 -0
- package/dist/feeds/src/core.js.map +1 -0
- package/dist/feeds/src/display.d.ts +21 -0
- package/dist/feeds/src/display.d.ts.map +1 -0
- package/dist/feeds/src/display.js +144 -0
- package/dist/feeds/src/display.js.map +1 -0
- package/dist/feeds/src/index.d.ts +7 -0
- package/dist/feeds/src/index.d.ts.map +1 -0
- package/dist/feeds/src/index.js +7 -0
- package/dist/feeds/src/index.js.map +1 -0
- package/dist/feeds/src/request.d.ts +26 -0
- package/dist/feeds/src/request.d.ts.map +1 -0
- package/dist/feeds/src/request.js +83 -0
- package/dist/feeds/src/request.js.map +1 -0
- package/dist/feeds/src/utils.d.ts +58 -0
- package/dist/feeds/src/utils.d.ts.map +1 -0
- package/dist/feeds/src/utils.js +218 -0
- package/dist/feeds/src/utils.js.map +1 -0
- package/dist/feeds/src/validate.d.ts +24 -0
- package/dist/feeds/src/validate.d.ts.map +1 -0
- package/dist/feeds/src/validate.js +137 -0
- package/dist/feeds/src/validate.js.map +1 -0
- package/dist/lib/src/Deferred.d.ts +21 -0
- package/dist/lib/src/Deferred.d.ts.map +1 -0
- package/dist/lib/src/Deferred.js +21 -0
- package/dist/lib/src/Deferred.js.map +1 -0
- package/dist/lib/src/Emitter.d.ts +14 -0
- package/dist/lib/src/Emitter.d.ts.map +1 -0
- package/dist/lib/src/Emitter.js +18 -0
- package/dist/lib/src/Emitter.js.map +1 -0
- package/dist/lib/src/LRUCache.d.ts +45 -0
- package/dist/lib/src/LRUCache.d.ts.map +1 -0
- package/dist/lib/src/LRUCache.js +72 -0
- package/dist/lib/src/LRUCache.js.map +1 -0
- package/dist/lib/src/TaskQueue.d.ts +21 -0
- package/dist/lib/src/TaskQueue.d.ts.map +1 -0
- package/dist/lib/src/TaskQueue.js +63 -0
- package/dist/lib/src/TaskQueue.js.map +1 -0
- package/dist/lib/src/Tools.d.ts +828 -0
- package/dist/lib/src/Tools.d.ts.map +1 -0
- package/dist/lib/src/Tools.js +1402 -0
- package/dist/lib/src/Tools.js.map +1 -0
- package/dist/lib/src/index.d.ts +7 -0
- package/dist/lib/src/index.d.ts.map +1 -0
- package/dist/lib/src/index.js +7 -0
- package/dist/lib/src/index.js.map +1 -0
- package/dist/lib/src/normalize-url/index.d.ts +286 -0
- package/dist/lib/src/normalize-url/index.d.ts.map +1 -0
- package/dist/lib/src/normalize-url/index.js +252 -0
- package/dist/lib/src/normalize-url/index.js.map +1 -0
- package/dist/net/src/adapter.d.ts +47 -0
- package/dist/net/src/adapter.d.ts.map +1 -0
- package/dist/net/src/adapter.js +130 -0
- package/dist/net/src/adapter.js.map +1 -0
- package/dist/net/src/auth.d.ts +40 -0
- package/dist/net/src/auth.d.ts.map +1 -0
- package/dist/net/src/auth.js +124 -0
- package/dist/net/src/auth.js.map +1 -0
- package/dist/net/src/context.d.ts +10 -0
- package/dist/net/src/context.d.ts.map +1 -0
- package/dist/net/src/context.js +2 -0
- package/dist/net/src/context.js.map +1 -0
- package/dist/net/src/diff.d.ts +57 -0
- package/dist/net/src/diff.d.ts.map +1 -0
- package/dist/net/src/diff.js +162 -0
- package/dist/net/src/diff.js.map +1 -0
- package/dist/net/src/index.d.ts +15 -0
- package/dist/net/src/index.d.ts.map +1 -0
- package/dist/net/src/index.js +15 -0
- package/dist/net/src/index.js.map +1 -0
- package/dist/net/src/message.d.ts +64 -0
- package/dist/net/src/message.d.ts.map +1 -0
- package/dist/net/src/message.js +37 -0
- package/dist/net/src/message.js.map +1 -0
- package/dist/net/src/negentropy.d.ts +48 -0
- package/dist/net/src/negentropy.d.ts.map +1 -0
- package/dist/net/src/negentropy.js +535 -0
- package/dist/net/src/negentropy.js.map +1 -0
- package/dist/net/src/policy.d.ts +40 -0
- package/dist/net/src/policy.d.ts.map +1 -0
- package/dist/net/src/policy.js +210 -0
- package/dist/net/src/policy.js.map +1 -0
- package/dist/net/src/pool.d.ts +13 -0
- package/dist/net/src/pool.d.ts.map +1 -0
- package/dist/net/src/pool.js +44 -0
- package/dist/net/src/pool.js.map +1 -0
- package/dist/net/src/publish.d.ts +45 -0
- package/dist/net/src/publish.d.ts.map +1 -0
- package/dist/net/src/publish.js +98 -0
- package/dist/net/src/publish.js.map +1 -0
- package/dist/net/src/repository.d.ts +69 -0
- package/dist/net/src/repository.d.ts.map +1 -0
- package/dist/net/src/repository.js +304 -0
- package/dist/net/src/repository.js.map +1 -0
- package/dist/net/src/request.d.ts +58 -0
- package/dist/net/src/request.d.ts.map +1 -0
- package/dist/net/src/request.js +224 -0
- package/dist/net/src/request.js.map +1 -0
- package/dist/net/src/socket.d.ts +49 -0
- package/dist/net/src/socket.d.ts.map +1 -0
- package/dist/net/src/socket.js +126 -0
- package/dist/net/src/socket.js.map +1 -0
- package/dist/net/src/tracker.d.ts +16 -0
- package/dist/net/src/tracker.d.ts.map +1 -0
- package/dist/net/src/tracker.js +63 -0
- package/dist/net/src/tracker.js.map +1 -0
- package/dist/net/src/util.d.ts +2 -0
- package/dist/net/src/util.d.ts.map +1 -0
- package/dist/net/src/util.js +2 -0
- package/dist/net/src/util.js.map +1 -0
- package/dist/net/src/wrapManager.d.ts +37 -0
- package/dist/net/src/wrapManager.d.ts.map +1 -0
- package/dist/net/src/wrapManager.js +94 -0
- package/dist/net/src/wrapManager.js.map +1 -0
- package/dist/signer/src/index.d.ts +7 -0
- package/dist/signer/src/index.d.ts.map +1 -0
- package/dist/signer/src/index.js +7 -0
- package/dist/signer/src/index.js.map +1 -0
- package/dist/signer/src/nip59.d.ts +19 -0
- package/dist/signer/src/nip59.d.ts.map +1 -0
- package/dist/signer/src/nip59.js +70 -0
- package/dist/signer/src/nip59.js.map +1 -0
- package/dist/signer/src/signers/nip01.d.ts +20 -0
- package/dist/signer/src/signers/nip01.d.ts.map +1 -0
- package/dist/signer/src/signers/nip01.js +23 -0
- package/dist/signer/src/signers/nip01.js.map +1 -0
- package/dist/signer/src/signers/nip07.d.ts +23 -0
- package/dist/signer/src/signers/nip07.d.ts.map +1 -0
- package/dist/signer/src/signers/nip07.js +29 -0
- package/dist/signer/src/signers/nip07.js.map +1 -0
- package/dist/signer/src/signers/nip46.d.ts +127 -0
- package/dist/signer/src/signers/nip46.d.ts.map +1 -0
- package/dist/signer/src/signers/nip46.js +379 -0
- package/dist/signer/src/signers/nip46.js.map +1 -0
- package/dist/signer/src/signers/nip55.d.ts +20 -0
- package/dist/signer/src/signers/nip55.d.ts.map +1 -0
- package/dist/signer/src/signers/nip55.js +87 -0
- package/dist/signer/src/signers/nip55.js.map +1 -0
- package/dist/signer/src/util.d.ts +56 -0
- package/dist/signer/src/util.d.ts.map +1 -0
- package/dist/signer/src/util.js +65 -0
- package/dist/signer/src/util.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/util/src/Address.d.ts +21 -0
- package/dist/util/src/Address.d.ts.map +1 -0
- package/dist/util/src/Address.js +43 -0
- package/dist/util/src/Address.js.map +1 -0
- package/dist/util/src/Blossom.d.ts +66 -0
- package/dist/util/src/Blossom.d.ts.map +1 -0
- package/dist/util/src/Blossom.js +124 -0
- package/dist/util/src/Blossom.js.map +1 -0
- package/dist/util/src/Events.d.ts +71 -0
- package/dist/util/src/Events.d.ts.map +1 -0
- package/dist/util/src/Events.js +91 -0
- package/dist/util/src/Events.js.map +1 -0
- package/dist/util/src/Filters.d.ts +48 -0
- package/dist/util/src/Filters.d.ts.map +1 -0
- package/dist/util/src/Filters.js +182 -0
- package/dist/util/src/Filters.js.map +1 -0
- package/dist/util/src/Handles.d.ts +15 -0
- package/dist/util/src/Handles.d.ts.map +1 -0
- package/dist/util/src/Handles.js +25 -0
- package/dist/util/src/Handles.js.map +1 -0
- package/dist/util/src/Keys.d.ts +37 -0
- package/dist/util/src/Keys.d.ts.map +1 -0
- package/dist/util/src/Keys.js +26 -0
- package/dist/util/src/Keys.js.map +1 -0
- package/dist/util/src/Kinds.d.ts +194 -0
- package/dist/util/src/Kinds.d.ts.map +1 -0
- package/dist/util/src/Kinds.js +203 -0
- package/dist/util/src/Kinds.js.map +1 -0
- package/dist/util/src/Links.d.ts +3 -0
- package/dist/util/src/Links.d.ts.map +1 -0
- package/dist/util/src/Links.js +3 -0
- package/dist/util/src/Links.js.map +1 -0
- package/dist/util/src/Nip42.d.ts +7 -0
- package/dist/util/src/Nip42.d.ts.map +1 -0
- package/dist/util/src/Nip42.js +9 -0
- package/dist/util/src/Nip42.js.map +1 -0
- package/dist/util/src/Nip86.d.ts +39 -0
- package/dist/util/src/Nip86.d.ts.map +1 -0
- package/dist/util/src/Nip86.js +49 -0
- package/dist/util/src/Nip86.js.map +1 -0
- package/dist/util/src/Nip98.d.ts +9 -0
- package/dist/util/src/Nip98.d.ts.map +1 -0
- package/dist/util/src/Nip98.js +16 -0
- package/dist/util/src/Nip98.js.map +1 -0
- package/dist/util/src/Pow.d.ts +11 -0
- package/dist/util/src/Pow.d.ts.map +1 -0
- package/dist/util/src/Pow.js +127 -0
- package/dist/util/src/Pow.js.map +1 -0
- package/dist/util/src/Pubkey.d.ts +10 -0
- package/dist/util/src/Pubkey.d.ts.map +1 -0
- package/dist/util/src/Pubkey.js +32 -0
- package/dist/util/src/Pubkey.js.map +1 -0
- package/dist/util/src/Relay.d.ts +38 -0
- package/dist/util/src/Relay.d.ts.map +1 -0
- package/dist/util/src/Relay.js +55 -0
- package/dist/util/src/Relay.js.map +1 -0
- package/dist/util/src/Tags.d.ts +37 -0
- package/dist/util/src/Tags.d.ts.map +1 -0
- package/dist/util/src/Tags.js +79 -0
- package/dist/util/src/Tags.js.map +1 -0
- package/dist/util/src/Wallet.d.ts +32 -0
- package/dist/util/src/Wallet.d.ts.map +1 -0
- package/dist/util/src/Wallet.js +9 -0
- package/dist/util/src/Wallet.js.map +1 -0
- package/dist/util/src/Zaps.d.ts +86 -0
- package/dist/util/src/Zaps.d.ts.map +1 -0
- package/dist/util/src/Zaps.js +184 -0
- package/dist/util/src/Zaps.js.map +1 -0
- package/dist/util/src/index.d.ts +18 -0
- package/dist/util/src/index.d.ts.map +1 -0
- package/dist/util/src/index.js +18 -0
- package/dist/util/src/index.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { call } from "@welshman/lib";
|
|
2
|
+
import { getTag } from "./Tags.js";
|
|
3
|
+
import { makeSecret, own, getPubkey } from "./Keys.js";
|
|
4
|
+
import { makeEvent } from "./Events.js";
|
|
5
|
+
export let benchmark = 0;
|
|
6
|
+
export const benchmarkDifficulty = 15;
|
|
7
|
+
export const estimateWork = (difficulty) => Math.ceil(benchmark * Math.pow(2, difficulty - benchmarkDifficulty));
|
|
8
|
+
const workerCode = `
|
|
9
|
+
// Utility function to convert bytes to hex
|
|
10
|
+
function bytesToHex(bytes) {
|
|
11
|
+
return Array.from(bytes)
|
|
12
|
+
.map(b => b.toString(16).padStart(2, '0'))
|
|
13
|
+
.join('')
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Utility function to calculate proof of work from hash
|
|
17
|
+
function getPow(id) {
|
|
18
|
+
let count = 0
|
|
19
|
+
|
|
20
|
+
for (let i = 0; i < 32; i++) {
|
|
21
|
+
const nibble = id[i]
|
|
22
|
+
if (nibble === 0) {
|
|
23
|
+
count += 8
|
|
24
|
+
} else {
|
|
25
|
+
count += Math.clz32(nibble) - 24
|
|
26
|
+
break
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return count
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
self.onmessage = async function (ev) {
|
|
34
|
+
const {event, difficulty, start = 0, step = 1} = ev.data
|
|
35
|
+
|
|
36
|
+
let count = start
|
|
37
|
+
|
|
38
|
+
const tag = ["nonce", count.toString(), difficulty.toString()]
|
|
39
|
+
|
|
40
|
+
event.tags.push(tag)
|
|
41
|
+
|
|
42
|
+
const encoder = new TextEncoder()
|
|
43
|
+
|
|
44
|
+
while (true) {
|
|
45
|
+
count += step
|
|
46
|
+
tag[1] = count.toString()
|
|
47
|
+
|
|
48
|
+
// Create the event array as specified by NIP-01
|
|
49
|
+
const eventArray = [0, event.pubkey, event.created_at, event.kind, event.tags, event.content]
|
|
50
|
+
const eventString = JSON.stringify(eventArray)
|
|
51
|
+
|
|
52
|
+
// Use Web Crypto API for SHA-256 hashing
|
|
53
|
+
const messageBuffer = encoder.encode(eventString)
|
|
54
|
+
const hashBuffer = await crypto.subtle.digest('SHA-256', messageBuffer)
|
|
55
|
+
const hashArray = new Uint8Array(hashBuffer)
|
|
56
|
+
|
|
57
|
+
const pow = getPow(hashArray)
|
|
58
|
+
|
|
59
|
+
if (pow >= difficulty) {
|
|
60
|
+
event.id = bytesToHex(hashArray)
|
|
61
|
+
break
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
postMessage(event)
|
|
66
|
+
}
|
|
67
|
+
`;
|
|
68
|
+
const createPowWorker = () => {
|
|
69
|
+
if (typeof Worker === "undefined") {
|
|
70
|
+
throw new Error("Worker is not available in this environment");
|
|
71
|
+
}
|
|
72
|
+
const blob = new Blob([workerCode], { type: "application/javascript" });
|
|
73
|
+
const url = URL.createObjectURL(blob);
|
|
74
|
+
const worker = new Worker(url, { type: "module" });
|
|
75
|
+
// Clean up the blob URL after worker is created
|
|
76
|
+
URL.revokeObjectURL(url);
|
|
77
|
+
return worker;
|
|
78
|
+
};
|
|
79
|
+
export const makePow = (event, difficulty) => {
|
|
80
|
+
const worker = createPowWorker();
|
|
81
|
+
const result = new Promise((resolve, reject) => {
|
|
82
|
+
worker.onmessage = (e) => {
|
|
83
|
+
resolve(e.data);
|
|
84
|
+
worker.terminate();
|
|
85
|
+
};
|
|
86
|
+
worker.onerror = (e) => {
|
|
87
|
+
reject(e.error || e);
|
|
88
|
+
worker.terminate();
|
|
89
|
+
};
|
|
90
|
+
worker.postMessage({ difficulty, event });
|
|
91
|
+
});
|
|
92
|
+
return { worker, result };
|
|
93
|
+
};
|
|
94
|
+
export const getPow = (event) => {
|
|
95
|
+
const difficulty = parseInt(getTag("nonce", event.tags)?.[2] || "");
|
|
96
|
+
if (isNaN(difficulty))
|
|
97
|
+
return 0;
|
|
98
|
+
let count = 0;
|
|
99
|
+
// Convert hex string to array of bytes
|
|
100
|
+
for (let i = 0; i < event.id.length; i += 2) {
|
|
101
|
+
const byte = parseInt(event.id.slice(i, i + 2), 16);
|
|
102
|
+
if (byte === 0) {
|
|
103
|
+
count += 8;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
count += Math.clz32(byte) - 24;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return count >= difficulty ? difficulty : 0;
|
|
111
|
+
};
|
|
112
|
+
// Generate a simple pow to estimate the device capacities
|
|
113
|
+
call(() => {
|
|
114
|
+
// Only run benchmark if Worker is available (browser environment)
|
|
115
|
+
if (typeof Worker === "undefined") {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const secret = makeSecret();
|
|
119
|
+
const pubkey = getPubkey(secret);
|
|
120
|
+
const event = own(makeEvent(1, {}), pubkey);
|
|
121
|
+
const pow = makePow(event, benchmarkDifficulty);
|
|
122
|
+
const start = Date.now();
|
|
123
|
+
pow.result.then(() => {
|
|
124
|
+
benchmark = Date.now() - start;
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=Pow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pow.js","sourceRoot":"","sources":["../../../../util/src/Pow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class Pubkey {
|
|
2
|
+
readonly pubkey: string;
|
|
3
|
+
readonly relays: string[];
|
|
4
|
+
constructor(pubkey: string, relays?: string[]);
|
|
5
|
+
static from(entity: string, relays?: string[]): Pubkey;
|
|
6
|
+
toString: () => string;
|
|
7
|
+
toNpub: () => `npub1${string}`;
|
|
8
|
+
toNprofile: () => `nprofile1${string}`;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=Pubkey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pubkey.d.ts","sourceRoot":"","sources":["../../../../util/src/Pubkey.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IAEf,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE;gBADhB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,EAAO;IAGhC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO;IAmBjD,QAAQ,eAAoB;IAE5B,MAAM,yBAAgC;IAEtC,UAAU,6BAA6B;CACxC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { decode, npubEncode, nprofileEncode } from "nostr-tools/nip19";
|
|
2
|
+
export class Pubkey {
|
|
3
|
+
pubkey;
|
|
4
|
+
relays;
|
|
5
|
+
constructor(pubkey, relays = []) {
|
|
6
|
+
this.pubkey = pubkey;
|
|
7
|
+
this.relays = relays;
|
|
8
|
+
}
|
|
9
|
+
static from(entity, relays = []) {
|
|
10
|
+
let pubkey;
|
|
11
|
+
if (entity.match(/^[0-9a-f]{64}$/)) {
|
|
12
|
+
pubkey = entity;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
const { type, data } = decode(entity);
|
|
16
|
+
if (type === "npub") {
|
|
17
|
+
pubkey = data;
|
|
18
|
+
}
|
|
19
|
+
else if (type === "nprofile") {
|
|
20
|
+
pubkey = data.pubkey;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
throw new Error(`Invalid pubkey: ${entity}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return new Pubkey(pubkey, relays);
|
|
27
|
+
}
|
|
28
|
+
toString = () => this.pubkey;
|
|
29
|
+
toNpub = () => npubEncode(this.pubkey);
|
|
30
|
+
toNprofile = () => nprofileEncode(this);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=Pubkey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pubkey.js","sourceRoot":"","sources":["../../../../util/src/Pubkey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAEpE,MAAM,OAAO,MAAM;IAEN;IACA;IAFX,YACW,MAAc,EACd,SAAmB,EAAE;QADrB,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAe;IAC7B,CAAC;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAc,EAAE,SAAmB,EAAE;QAC/C,IAAI,MAAc,CAAA;QAClB,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,MAAM,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,MAAM,CAAC,MAAM,CAAQ,CAAA;YAE1C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAA;YACf,CAAC;iBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;QAED,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC;IAED,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAA;IAE5B,MAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEtC,UAAU,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;CACxC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare enum RelayMode {
|
|
2
|
+
Read = "read",
|
|
3
|
+
Write = "write",
|
|
4
|
+
Search = "search",
|
|
5
|
+
Blocked = "blocked",
|
|
6
|
+
Messaging = "messaging"
|
|
7
|
+
}
|
|
8
|
+
export type RelayProfile = {
|
|
9
|
+
url: string;
|
|
10
|
+
icon?: string;
|
|
11
|
+
banner?: string;
|
|
12
|
+
name?: string;
|
|
13
|
+
self?: string;
|
|
14
|
+
pubkey?: string;
|
|
15
|
+
contact?: string;
|
|
16
|
+
software?: string;
|
|
17
|
+
version?: string;
|
|
18
|
+
negentropy?: number;
|
|
19
|
+
description?: string;
|
|
20
|
+
supported_nips?: string[];
|
|
21
|
+
privacy_policy?: string;
|
|
22
|
+
terms_of_service?: string;
|
|
23
|
+
limitation?: {
|
|
24
|
+
min_pow_difficulty?: number;
|
|
25
|
+
payment_required?: boolean;
|
|
26
|
+
auth_required?: boolean;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export declare const LOCAL_RELAY_URL = "local://welshman.relay/";
|
|
30
|
+
export declare const isRelayUrl: (url: string) => boolean;
|
|
31
|
+
export declare const isOnionUrl: (url: string) => boolean;
|
|
32
|
+
export declare const isLocalUrl: (url: string) => boolean;
|
|
33
|
+
export declare const isIPAddress: (url: string) => boolean;
|
|
34
|
+
export declare const isShareableRelayUrl: (url: string) => boolean;
|
|
35
|
+
export declare const normalizeRelayUrl: (url: string) => string;
|
|
36
|
+
export declare const displayRelayUrl: (url: string) => string;
|
|
37
|
+
export declare const displayRelayProfile: (profile?: RelayProfile, fallback?: string) => string;
|
|
38
|
+
//# sourceMappingURL=Relay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Relay.d.ts","sourceRoot":"","sources":["../../../../util/src/Relay.ts"],"names":[],"mappings":"AAIA,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE;QACX,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;QAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;KACxB,CAAA;CACF,CAAA;AAID,eAAO,MAAM,eAAe,4BAA4B,CAAA;AAExD,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,YAsBrC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,YAA6D,CAAA;AAEnG,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,YACiD,CAAA;AAEvF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,YAA6C,CAAA;AAEpF,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,YAAiD,CAAA;AAEhG,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,WAiB5C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,WAA8C,CAAA;AAEzF,eAAO,MAAM,mBAAmB,GAAI,UAAU,YAAY,EAAE,iBAAa,WAC9C,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { last, normalizeUrl, stripProtocol } from "@welshman/lib";
|
|
2
|
+
// Constants and types
|
|
3
|
+
export var RelayMode;
|
|
4
|
+
(function (RelayMode) {
|
|
5
|
+
RelayMode["Read"] = "read";
|
|
6
|
+
RelayMode["Write"] = "write";
|
|
7
|
+
RelayMode["Search"] = "search";
|
|
8
|
+
RelayMode["Blocked"] = "blocked";
|
|
9
|
+
RelayMode["Messaging"] = "messaging";
|
|
10
|
+
})(RelayMode || (RelayMode = {}));
|
|
11
|
+
// Utils related to bare urls
|
|
12
|
+
export const LOCAL_RELAY_URL = "local://welshman.relay/";
|
|
13
|
+
export const isRelayUrl = (url) => {
|
|
14
|
+
if (!url.includes("://")) {
|
|
15
|
+
url = "wss://" + url;
|
|
16
|
+
}
|
|
17
|
+
let parsed;
|
|
18
|
+
try {
|
|
19
|
+
parsed = new URL(url);
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
// Skip non-ws urls
|
|
25
|
+
if (!parsed.protocol.match(/^wss?:$/))
|
|
26
|
+
return false;
|
|
27
|
+
// Host is required (rejects local file paths like /home/foo/bar.png)
|
|
28
|
+
if (!parsed.hostname)
|
|
29
|
+
return false;
|
|
30
|
+
// Skip non-localhost hosts without a dot (checks host, not path)
|
|
31
|
+
if (!parsed.hostname.includes(".") && parsed.hostname !== "localhost")
|
|
32
|
+
return false;
|
|
33
|
+
return true;
|
|
34
|
+
};
|
|
35
|
+
export const isOnionUrl = (url) => Boolean(stripProtocol(url).match(/^[a-z2-7]{56}.onion/));
|
|
36
|
+
export const isLocalUrl = (url) => Boolean(url.match(/\.local(:[\d]+)?\/?$/) || stripProtocol(url).match(/^localhost:/));
|
|
37
|
+
export const isIPAddress = (url) => Boolean(url.match(/\d+\.\d+\.\d+\.\d+/));
|
|
38
|
+
export const isShareableRelayUrl = (url) => Boolean(isRelayUrl(url) && !isLocalUrl(url));
|
|
39
|
+
export const normalizeRelayUrl = (url) => {
|
|
40
|
+
if (url === LOCAL_RELAY_URL)
|
|
41
|
+
return url;
|
|
42
|
+
const prefix = url.match(/^wss?:\/\//)?.[0] || (isOnionUrl(url) ? "ws://" : "wss://");
|
|
43
|
+
// Use our library to normalize
|
|
44
|
+
url = normalizeUrl(url, { stripHash: true, stripAuthentication: false });
|
|
45
|
+
// Strip the protocol, lowercase
|
|
46
|
+
url = stripProtocol(url).toLowerCase();
|
|
47
|
+
// Urls without pathnames are supposed to have a trailing slash
|
|
48
|
+
if (!url.includes("/")) {
|
|
49
|
+
url += "/";
|
|
50
|
+
}
|
|
51
|
+
return prefix + url;
|
|
52
|
+
};
|
|
53
|
+
export const displayRelayUrl = (url) => last(url.split("://")).replace(/\/$/, "");
|
|
54
|
+
export const displayRelayProfile = (profile, fallback = "") => profile?.name || fallback;
|
|
55
|
+
//# sourceMappingURL=Relay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Relay.js","sourceRoot":"","sources":["../../../../util/src/Relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare const getTags: (types: string | string[], tags: string[][]) => string[][];
|
|
2
|
+
export declare const getTag: (types: string | string[], tags: string[][]) => string[] | undefined;
|
|
3
|
+
export declare const getTagValues: (types: string | string[], tags: string[][]) => string[];
|
|
4
|
+
export declare const getTagValue: (types: string | string[], tags: string[][]) => string | undefined;
|
|
5
|
+
export declare const getEventTags: (tags: string[][]) => string[][];
|
|
6
|
+
export declare const getEventTagValues: (tags: string[][]) => string[];
|
|
7
|
+
export declare const getAddressTags: (tags: string[][]) => string[][];
|
|
8
|
+
export declare const getAddressTagValues: (tags: string[][]) => string[];
|
|
9
|
+
export declare const getPubkeyTags: (tags: string[][]) => string[][];
|
|
10
|
+
export declare const getPubkeyTagValues: (tags: string[][]) => string[];
|
|
11
|
+
export declare const getTopicTags: (tags: string[][]) => string[][];
|
|
12
|
+
export declare const getTopicTagValues: (tags: string[][]) => string[];
|
|
13
|
+
export declare const getRelayTags: (tags: string[][]) => string[][];
|
|
14
|
+
export declare const getRelayTagValues: (tags: string[][]) => string[];
|
|
15
|
+
export declare const getGroupTags: (tags: string[][]) => string[][];
|
|
16
|
+
export declare const getGroupTagValues: (tags: string[][]) => string[];
|
|
17
|
+
export declare const getKindTags: (tags: string[][]) => string[][];
|
|
18
|
+
export declare const getKindTagValues: (tags: string[][]) => number[];
|
|
19
|
+
export declare const getCommentTags: (tags: string[][]) => {
|
|
20
|
+
roots: string[][];
|
|
21
|
+
replies: string[][];
|
|
22
|
+
};
|
|
23
|
+
export declare const getCommentTagValues: (tags: string[][]) => Record<string, string[]>;
|
|
24
|
+
export declare const getReplyTags: (tags: string[][]) => {
|
|
25
|
+
roots: string[][];
|
|
26
|
+
replies: string[][];
|
|
27
|
+
mentions: string[][];
|
|
28
|
+
};
|
|
29
|
+
export declare const getReplyTagValues: (tags: string[][]) => Record<string, string[]>;
|
|
30
|
+
export declare const getEmojiTags: (name: string, tags: string[][]) => string[][];
|
|
31
|
+
export declare const getEmojiTag: (name: string, tags: string[][]) => string[] | undefined;
|
|
32
|
+
export declare const getEmojiTagUrls: (name: string, tags: string[][]) => string[];
|
|
33
|
+
export declare const getEmojiTagUrl: (name: string, tags: string[][]) => string | undefined;
|
|
34
|
+
export declare const uniqTags: (tags: string[][]) => string[][];
|
|
35
|
+
export declare const tagsFromIMeta: (imeta: string[]) => string[][];
|
|
36
|
+
export declare const tagger: (name: string) => (value: string, ...args: unknown[]) => string[];
|
|
37
|
+
//# sourceMappingURL=Tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tags.d.ts","sourceRoot":"","sources":["../../../../util/src/Tags.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,GAAG,MAAM,EAAE,EAAE,MAAM,MAAM,EAAE,EAAE,eAIjE,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,GAAG,MAAM,EAAE,EAAE,MAAM,MAAM,EAAE,EAAE,yBAIhE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,GAAG,MAAM,EAAE,EAAE,MAAM,MAAM,EAAE,EAAE,aACrC,CAAA;AAElC,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,GAAG,MAAM,EAAE,EAAE,MAAM,MAAM,EAAE,EAAE,uBAA6B,CAAA;AAEnG,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,EAAE,eACiB,CAAA;AAE9D,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,EAAE,aAAmC,CAAA;AAErF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,EAAE,eACoB,CAAA;AAEnE,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,EAAE,aAAqC,CAAA;AAEzF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,EAAE,eACgB,CAAA;AAE9D,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,EAAE,EAAE,aAAoC,CAAA;AAEvF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,EAAE,eAA+B,CAAA;AAE5E,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,EAAE,aACG,CAAA;AAErD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,EAAE,eAC8B,CAAA;AAE3E,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,EAAE,aAAmC,CAAA;AAErF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,EAAE,eACsC,CAAA;AAEnF,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,EAAE,aAAmC,CAAA;AAErF,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,EAAE,eACmB,CAAA;AAE/D,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,EAAE,aAA+C,CAAA;AAEhG,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,EAAE;;;CAK9C,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,EAAE,6BAIjD,CAAA;AAEH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,EAAE;;;;CAkC5C,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,EAAE,6BACK,CAAA;AAEvD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,EAAE,eAAuC,CAAA;AAElG,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,EAAE,yBAAoC,CAAA;AAE9F,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,EAAE,aACxB,CAAA;AAEtC,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,EAAE,uBAAuC,CAAA;AAEpG,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,EAAE,eAA+C,CAAA;AAExF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,eAA2C,CAAA;AAExF,eAAO,MAAM,MAAM,GAChB,MAAM,MAAM,MACZ,OAAO,MAAM,EAAE,GAAG,MAAM,OAAO,EAAE,aAAkB,CAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { uniqBy, first, spec, mapVals, nth, nthEq, ensurePlural } from "@welshman/lib";
|
|
2
|
+
import { isRelayUrl } from "./Relay.js";
|
|
3
|
+
import { Address } from "./Address.js";
|
|
4
|
+
export const getTags = (types, tags) => {
|
|
5
|
+
types = ensurePlural(types);
|
|
6
|
+
return tags.filter(t => types.includes(t[0]));
|
|
7
|
+
};
|
|
8
|
+
export const getTag = (types, tags) => {
|
|
9
|
+
types = ensurePlural(types);
|
|
10
|
+
return tags.find(t => types.includes(t[0]));
|
|
11
|
+
};
|
|
12
|
+
export const getTagValues = (types, tags) => getTags(types, tags).map(nth(1));
|
|
13
|
+
export const getTagValue = (types, tags) => getTag(types, tags)?.[1];
|
|
14
|
+
export const getEventTags = (tags) => tags.filter(t => ["e"].includes(t[0]) && t[1].length === 64);
|
|
15
|
+
export const getEventTagValues = (tags) => getEventTags(tags).map(nth(1));
|
|
16
|
+
export const getAddressTags = (tags) => tags.filter(t => ["a"].includes(t[0]) && Address.isAddress(t[1]));
|
|
17
|
+
export const getAddressTagValues = (tags) => getAddressTags(tags).map(nth(1));
|
|
18
|
+
export const getPubkeyTags = (tags) => tags.filter(t => ["p"].includes(t[0]) && t[1].length === 64);
|
|
19
|
+
export const getPubkeyTagValues = (tags) => getPubkeyTags(tags).map(nth(1));
|
|
20
|
+
export const getTopicTags = (tags) => tags.filter(nthEq(0, "t"));
|
|
21
|
+
export const getTopicTagValues = (tags) => getTopicTags(tags).map(t => t[1].replace(/^#/, ""));
|
|
22
|
+
export const getRelayTags = (tags) => tags.filter(t => ["r", "relay"].includes(t[0]) && isRelayUrl(t[1] || ""));
|
|
23
|
+
export const getRelayTagValues = (tags) => getRelayTags(tags).map(nth(1));
|
|
24
|
+
export const getGroupTags = (tags) => tags.filter(t => ["h", "group"].includes(t[0]) && t[1] && isRelayUrl(t[2] || ""));
|
|
25
|
+
export const getGroupTagValues = (tags) => getGroupTags(tags).map(nth(1));
|
|
26
|
+
export const getKindTags = (tags) => tags.filter(t => ["k"].includes(t[0]) && t[1].match(/^\d+$/));
|
|
27
|
+
export const getKindTagValues = (tags) => getKindTags(tags).map(t => parseInt(t[1]));
|
|
28
|
+
export const getCommentTags = (tags) => {
|
|
29
|
+
const roots = tags.filter(t => ["A", "E", "P", "K"].includes(t[0]));
|
|
30
|
+
const replies = tags.filter(t => ["a", "e", "p", "k"].includes(t[0]));
|
|
31
|
+
return { roots, replies };
|
|
32
|
+
};
|
|
33
|
+
export const getCommentTagValues = (tags) => mapVals(tags => tags.filter(t => ["a", "e"].includes(t[0].toLowerCase())).map(nth(1)), getCommentTags(tags));
|
|
34
|
+
export const getReplyTags = (tags) => {
|
|
35
|
+
const validTags = tags.filter(t => ["a", "e", "q"].includes(t[0]));
|
|
36
|
+
const mentionTags = validTags.filter(nthEq(0, "q"));
|
|
37
|
+
const roots = [];
|
|
38
|
+
const replies = [];
|
|
39
|
+
const mentions = [];
|
|
40
|
+
const dispatchTags = (thisTags) => thisTags.forEach((t, i) => {
|
|
41
|
+
if (t[3] === "root") {
|
|
42
|
+
if (validTags.filter(nthEq(3, "reply")).length === 0) {
|
|
43
|
+
replies.push(t);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
roots.push(t);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (t[3] === "reply") {
|
|
50
|
+
replies.push(t);
|
|
51
|
+
}
|
|
52
|
+
else if (t[3] === "mention") {
|
|
53
|
+
mentions.push(t);
|
|
54
|
+
}
|
|
55
|
+
else if (i === thisTags.length - 1) {
|
|
56
|
+
replies.push(t);
|
|
57
|
+
}
|
|
58
|
+
else if (i === 0) {
|
|
59
|
+
roots.push(t);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
mentions.push(t);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
// Add different types separately so positional logic works
|
|
66
|
+
dispatchTags(validTags.filter(nthEq(0, "e")));
|
|
67
|
+
dispatchTags(validTags.filter(nthEq(0, "a")).filter(t => Boolean(t[3])));
|
|
68
|
+
mentionTags.forEach((t) => mentions.push(t));
|
|
69
|
+
return { roots, replies, mentions };
|
|
70
|
+
};
|
|
71
|
+
export const getReplyTagValues = (tags) => mapVals(tags => tags.map(nth(1)), getReplyTags(tags));
|
|
72
|
+
export const getEmojiTags = (name, tags) => tags.filter(spec(["emoji", name]));
|
|
73
|
+
export const getEmojiTag = (name, tags) => first(getEmojiTags(name, tags));
|
|
74
|
+
export const getEmojiTagUrls = (name, tags) => getEmojiTags(name, tags).map(nth(2));
|
|
75
|
+
export const getEmojiTagUrl = (name, tags) => first(getEmojiTagUrls(name, tags));
|
|
76
|
+
export const uniqTags = (tags) => uniqBy(t => t.slice(0, 2).join(":"), tags);
|
|
77
|
+
export const tagsFromIMeta = (imeta) => imeta.map((m) => m.split(" "));
|
|
78
|
+
export const tagger = (name) => (value, ...args) => [name, value];
|
|
79
|
+
//# sourceMappingURL=Tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tags.js","sourceRoot":"","sources":["../../../../util/src/Tags.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type WebLNInfo = {
|
|
2
|
+
methods?: string[];
|
|
3
|
+
supports?: string[];
|
|
4
|
+
version?: string;
|
|
5
|
+
node?: {
|
|
6
|
+
alias: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export type NWCInfo = {
|
|
10
|
+
lud16: string;
|
|
11
|
+
secret: string;
|
|
12
|
+
relayUrl: string;
|
|
13
|
+
walletPubkey: string;
|
|
14
|
+
nostrWalletConnectUrl: string;
|
|
15
|
+
};
|
|
16
|
+
export declare enum WalletType {
|
|
17
|
+
WebLN = "webln",
|
|
18
|
+
NWC = "nwc"
|
|
19
|
+
}
|
|
20
|
+
export type WebLNWallet = {
|
|
21
|
+
type: WalletType.WebLN;
|
|
22
|
+
info: WebLNInfo;
|
|
23
|
+
};
|
|
24
|
+
export type NWCWallet = {
|
|
25
|
+
type: WalletType.NWC;
|
|
26
|
+
info: NWCInfo;
|
|
27
|
+
};
|
|
28
|
+
export type Wallet = WebLNWallet | NWCWallet;
|
|
29
|
+
export declare const isWebLNWallet: (wallet: Wallet) => wallet is WebLNWallet;
|
|
30
|
+
export declare const isNWCWallet: (wallet: Wallet) => wallet is NWCWallet;
|
|
31
|
+
export declare const getWalletAddress: (wallet: Wallet) => string | undefined;
|
|
32
|
+
//# sourceMappingURL=Wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../../../util/src/Wallet.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,oBAAY,UAAU;IACpB,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,UAAU,CAAC,KAAK,CAAA;IACtB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,UAAU,CAAC,GAAG,CAAA;IACpB,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,SAAS,CAAA;AAE5C,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,MAAM,IAAI,WACvB,CAAA;AAElC,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,MAAM,IAAI,SAA2C,CAAA;AAElG,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,uBACM,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var WalletType;
|
|
2
|
+
(function (WalletType) {
|
|
3
|
+
WalletType["WebLN"] = "webln";
|
|
4
|
+
WalletType["NWC"] = "nwc";
|
|
5
|
+
})(WalletType || (WalletType = {}));
|
|
6
|
+
export const isWebLNWallet = (wallet) => wallet.type === WalletType.WebLN;
|
|
7
|
+
export const isNWCWallet = (wallet) => wallet.type === WalletType.NWC;
|
|
8
|
+
export const getWalletAddress = (wallet) => isNWCWallet(wallet) ? wallet.info.lud16 : undefined;
|
|
9
|
+
//# sourceMappingURL=Wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wallet.js","sourceRoot":"","sources":["../../../../util/src/Wallet.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,yBAAW,CAAA;AACb,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAcD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAyB,EAAE,CACrE,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAA;AAElC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAuB,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,GAAG,CAAA;AAElG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE,CACjD,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { Filter } from "./Filters.js";
|
|
2
|
+
import type { TrustedEvent, SignedEvent } from "./Events.js";
|
|
3
|
+
export declare const toMsats: (sats: number) => number;
|
|
4
|
+
export declare const fromMsats: (msats: number) => number;
|
|
5
|
+
export declare const hrpToMillisat: (hrpString: string) => bigint;
|
|
6
|
+
export declare const getInvoiceAmount: (bolt11: string) => number;
|
|
7
|
+
export declare const getLnUrl: (address: string) => string | undefined;
|
|
8
|
+
export type Zapper = {
|
|
9
|
+
lnurl: string;
|
|
10
|
+
pubkey?: string;
|
|
11
|
+
callback?: string;
|
|
12
|
+
minSendable?: number;
|
|
13
|
+
maxSendable?: number;
|
|
14
|
+
nostrPubkey?: string;
|
|
15
|
+
allowsNostr?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export type Zap = {
|
|
18
|
+
request: TrustedEvent;
|
|
19
|
+
response: TrustedEvent;
|
|
20
|
+
invoiceAmount: number;
|
|
21
|
+
};
|
|
22
|
+
export declare const zapFromEvent: (response: TrustedEvent, zapper: Zapper | undefined) => Zap | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* A single recipient of an event's zaps, parsed from a NIP-57 Appendix G `zap`
|
|
25
|
+
* tag of the form `["zap", <pubkey>, <relay hint>, <weight>]`.
|
|
26
|
+
*/
|
|
27
|
+
export type ZapSplit = {
|
|
28
|
+
pubkey: string;
|
|
29
|
+
relay?: string;
|
|
30
|
+
weight: number;
|
|
31
|
+
};
|
|
32
|
+
export type ZapSplitAmount = ZapSplit & {
|
|
33
|
+
amount: number;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Resolve an event's zap-split recipients per NIP-57 Appendix G:
|
|
37
|
+
*
|
|
38
|
+
* - With no `zap` tags the whole zap goes to the event's author.
|
|
39
|
+
* - If no recipient carries a weight, the zap is split equally (weight 1 each).
|
|
40
|
+
* - If weights are only partially present, unweighted recipients drop to weight
|
|
41
|
+
* 0 (i.e. they should not be zapped).
|
|
42
|
+
*
|
|
43
|
+
* Weight-0 recipients are still returned so callers have the full recipient set;
|
|
44
|
+
* they simply receive 0 from `splitZapAmount`.
|
|
45
|
+
*/
|
|
46
|
+
export declare const getZapSplits: (event: TrustedEvent) => ZapSplit[];
|
|
47
|
+
/**
|
|
48
|
+
* Divide `total` (in any integer unit, e.g. millisats) across an event's
|
|
49
|
+
* zap-split recipients proportionally to their weights. Any rounding remainder
|
|
50
|
+
* is handed to the highest-weighted recipient so the parts sum back to exactly
|
|
51
|
+
* `total`. If every weight is 0, nobody is zapped.
|
|
52
|
+
*/
|
|
53
|
+
export declare const splitZapAmount: (event: TrustedEvent, total: number) => ZapSplitAmount[];
|
|
54
|
+
export type ZapRequestParams = {
|
|
55
|
+
msats: number;
|
|
56
|
+
zapper: Zapper;
|
|
57
|
+
pubkey: string;
|
|
58
|
+
relays: string[];
|
|
59
|
+
content?: string;
|
|
60
|
+
eventId?: string;
|
|
61
|
+
anonymous?: boolean;
|
|
62
|
+
};
|
|
63
|
+
export declare const makeZapRequest: ({ msats, zapper, pubkey, relays, content, eventId, anonymous, }: ZapRequestParams) => {
|
|
64
|
+
kind: number;
|
|
65
|
+
content: string;
|
|
66
|
+
tags: string[][];
|
|
67
|
+
created_at: number;
|
|
68
|
+
};
|
|
69
|
+
export type RequestInvoiceParams = {
|
|
70
|
+
zapper: Zapper;
|
|
71
|
+
event: SignedEvent;
|
|
72
|
+
};
|
|
73
|
+
export declare const requestZap: ({ zapper, event }: RequestInvoiceParams) => Promise<{
|
|
74
|
+
invoice: any;
|
|
75
|
+
error?: undefined;
|
|
76
|
+
} | {
|
|
77
|
+
error: any;
|
|
78
|
+
invoice?: undefined;
|
|
79
|
+
}>;
|
|
80
|
+
export type ZapResponseFilterParams = {
|
|
81
|
+
zapper: Zapper;
|
|
82
|
+
pubkey: string;
|
|
83
|
+
eventId?: string;
|
|
84
|
+
};
|
|
85
|
+
export declare const getZapResponseFilter: ({ zapper, pubkey, eventId }: ZapResponseFilterParams) => Filter;
|
|
86
|
+
//# sourceMappingURL=Zaps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Zaps.d.ts","sourceRoot":"","sources":["../../../../util/src/Zaps.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,aAAa,CAAA;AAc1D,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,WAAgB,CAAA;AAEpD,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,WAA6B,CAAA;AAEpE,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,WA2B9C,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,WAI9C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,uBAqBvC,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,GAAG,GAAG;IAChB,OAAO,EAAE,YAAY,CAAA;IACrB,QAAQ,EAAE,YAAY,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,UAAU,YAAY,EAAE,QAAQ,MAAM,GAAG,SAAS,oBA0C9E,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAA;AAQxD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,YAAY,KAAG,QAAQ,EAc1D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,YAAY,EAAE,OAAO,MAAM,KAAG,cAAc,EAoBjF,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,iEAQ5B,gBAAgB;;;;;CAiBlB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,UAAU,GAAU,mBAAiB,oBAAoB;;;;;;EAOrE,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,6BAA2B,uBAAuB,WAiBtF,CAAA"}
|