@welshman/app 0.8.16 → 0.9.0-pre2
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/dist/app/src/app.d.ts +47 -0
- package/dist/app/src/app.d.ts.map +1 -0
- package/dist/app/src/app.js +56 -0
- package/dist/app/src/app.js.map +1 -0
- package/dist/app/src/command.d.ts +26 -0
- package/dist/app/src/command.d.ts.map +1 -0
- package/dist/app/src/command.js +38 -0
- package/dist/app/src/command.js.map +1 -0
- package/dist/app/src/createApp.d.ts +12 -0
- package/dist/app/src/createApp.d.ts.map +1 -0
- package/dist/app/src/createApp.js +12 -0
- package/dist/app/src/createApp.js.map +1 -0
- package/dist/app/src/index.d.ts +39 -27
- package/dist/app/src/index.d.ts.map +1 -1
- package/dist/app/src/index.js +39 -92
- package/dist/app/src/index.js.map +1 -1
- package/dist/app/src/plugins/base.d.ts +133 -0
- package/dist/app/src/plugins/base.d.ts.map +1 -0
- package/dist/app/src/plugins/base.js +186 -0
- package/dist/app/src/plugins/base.js.map +1 -0
- package/dist/app/src/plugins/blockedRelayLists.d.ts +19 -0
- package/dist/app/src/plugins/blockedRelayLists.d.ts.map +1 -0
- package/dist/app/src/plugins/blockedRelayLists.js +34 -0
- package/dist/app/src/plugins/blockedRelayLists.js.map +1 -0
- package/dist/app/src/plugins/blossomServerLists.d.ts +18 -0
- package/dist/app/src/plugins/blossomServerLists.d.ts.map +1 -0
- package/dist/app/src/plugins/blossomServerLists.js +33 -0
- package/dist/app/src/plugins/blossomServerLists.js.map +1 -0
- package/dist/app/src/plugins/deletes.d.ts +14 -0
- package/dist/app/src/plugins/deletes.d.ts.map +1 -0
- package/dist/app/src/plugins/deletes.js +25 -0
- package/dist/app/src/plugins/deletes.js.map +1 -0
- package/dist/app/src/plugins/domain.d.ts +16 -0
- package/dist/app/src/plugins/domain.d.ts.map +1 -0
- package/dist/app/src/plugins/domain.js +37 -0
- package/dist/app/src/plugins/domain.js.map +1 -0
- package/dist/app/src/plugins/feedLists.d.ts +18 -0
- package/dist/app/src/plugins/feedLists.d.ts.map +1 -0
- package/dist/app/src/plugins/feedLists.js +33 -0
- package/dist/app/src/plugins/feedLists.js.map +1 -0
- package/dist/app/src/plugins/feeds.d.ts +32 -0
- package/dist/app/src/plugins/feeds.d.ts.map +1 -0
- package/dist/app/src/plugins/feeds.js +88 -0
- package/dist/app/src/plugins/feeds.js.map +1 -0
- package/dist/app/src/plugins/followLists.d.ts +15 -0
- package/dist/app/src/plugins/followLists.d.ts.map +1 -0
- package/dist/app/src/plugins/followLists.js +31 -0
- package/dist/app/src/plugins/followLists.js.map +1 -0
- package/dist/app/src/plugins/handles.d.ts +18 -0
- package/dist/app/src/plugins/handles.d.ts.map +1 -0
- package/dist/app/src/plugins/handles.js +61 -0
- package/dist/app/src/plugins/handles.js.map +1 -0
- package/dist/app/src/plugins/logger.d.ts +26 -0
- package/dist/app/src/plugins/logger.d.ts.map +1 -0
- package/dist/app/src/plugins/logger.js +19 -0
- package/dist/app/src/plugins/logger.js.map +1 -0
- package/dist/app/src/plugins/messagingRelayLists.d.ts +19 -0
- package/dist/app/src/plugins/messagingRelayLists.d.ts.map +1 -0
- package/dist/app/src/plugins/messagingRelayLists.js +36 -0
- package/dist/app/src/plugins/messagingRelayLists.js.map +1 -0
- package/dist/app/src/plugins/muteLists.d.ts +19 -0
- package/dist/app/src/plugins/muteLists.d.ts.map +1 -0
- package/dist/app/src/plugins/muteLists.js +38 -0
- package/dist/app/src/plugins/muteLists.js.map +1 -0
- package/dist/app/src/plugins/network.d.ts +18 -0
- package/dist/app/src/plugins/network.d.ts.map +1 -0
- package/dist/app/src/plugins/network.js +35 -0
- package/dist/app/src/plugins/network.js.map +1 -0
- package/dist/app/src/plugins/pinboards.d.ts +39 -0
- package/dist/app/src/plugins/pinboards.d.ts.map +1 -0
- package/dist/app/src/plugins/pinboards.js +94 -0
- package/dist/app/src/plugins/pinboards.js.map +1 -0
- package/dist/app/src/plugins/pins.d.ts +15 -0
- package/dist/app/src/plugins/pins.d.ts.map +1 -0
- package/dist/app/src/plugins/pins.js +31 -0
- package/dist/app/src/plugins/pins.js.map +1 -0
- package/dist/app/src/plugins/plaintext.d.ts +11 -0
- package/dist/app/src/plugins/plaintext.d.ts.map +1 -0
- package/dist/app/src/plugins/plaintext.js +18 -0
- package/dist/app/src/plugins/plaintext.js.map +1 -0
- package/dist/app/src/plugins/profiles.d.ts +18 -0
- package/dist/app/src/plugins/profiles.d.ts.map +1 -0
- package/dist/app/src/plugins/profiles.js +78 -0
- package/dist/app/src/plugins/profiles.js.map +1 -0
- package/dist/app/src/plugins/reactions.d.ts +15 -0
- package/dist/app/src/plugins/reactions.d.ts.map +1 -0
- package/dist/app/src/plugins/reactions.js +26 -0
- package/dist/app/src/plugins/reactions.js.map +1 -0
- package/dist/app/src/plugins/relayLists.d.ts +23 -0
- package/dist/app/src/plugins/relayLists.d.ts.map +1 -0
- package/dist/app/src/plugins/relayLists.js +46 -0
- package/dist/app/src/plugins/relayLists.js.map +1 -0
- package/dist/app/src/plugins/relayManagement.d.ts +12 -0
- package/dist/app/src/plugins/relayManagement.d.ts.map +1 -0
- package/dist/app/src/plugins/relayManagement.js +15 -0
- package/dist/app/src/plugins/relayManagement.js.map +1 -0
- package/dist/app/src/plugins/relayMembers.d.ts +12 -0
- package/dist/app/src/plugins/relayMembers.d.ts.map +1 -0
- package/dist/app/src/plugins/relayMembers.js +22 -0
- package/dist/app/src/plugins/relayMembers.js.map +1 -0
- package/dist/app/src/plugins/relayRoles.d.ts +14 -0
- package/dist/app/src/plugins/relayRoles.d.ts.map +1 -0
- package/dist/app/src/plugins/relayRoles.js +33 -0
- package/dist/app/src/plugins/relayRoles.js.map +1 -0
- package/dist/app/src/plugins/relayStats.d.ts +39 -0
- package/dist/app/src/plugins/relayStats.d.ts.map +1 -0
- package/dist/app/src/plugins/relayStats.js +173 -0
- package/dist/app/src/plugins/relayStats.js.map +1 -0
- package/dist/app/src/plugins/relays.d.ts +34 -0
- package/dist/app/src/plugins/relays.d.ts.map +1 -0
- package/dist/app/src/plugins/relays.js +68 -0
- package/dist/app/src/plugins/relays.js.map +1 -0
- package/dist/app/src/plugins/roomLists.d.ts +22 -0
- package/dist/app/src/plugins/roomLists.d.ts.map +1 -0
- package/dist/app/src/plugins/roomLists.js +37 -0
- package/dist/app/src/plugins/roomLists.js.map +1 -0
- package/dist/app/src/plugins/rooms.d.ts +45 -0
- package/dist/app/src/plugins/rooms.d.ts.map +1 -0
- package/dist/app/src/plugins/rooms.js +82 -0
- package/dist/app/src/plugins/rooms.js.map +1 -0
- package/dist/app/src/plugins/router.d.ts +25 -0
- package/dist/app/src/plugins/router.d.ts.map +1 -0
- package/dist/app/src/plugins/router.js +95 -0
- package/dist/app/src/plugins/router.js.map +1 -0
- package/dist/app/src/plugins/searchRelayLists.d.ts +19 -0
- package/dist/app/src/plugins/searchRelayLists.d.ts.map +1 -0
- package/dist/app/src/plugins/searchRelayLists.js +34 -0
- package/dist/app/src/plugins/searchRelayLists.js.map +1 -0
- package/dist/app/src/plugins/sync.d.ts +20 -0
- package/dist/app/src/plugins/sync.d.ts.map +1 -0
- package/dist/app/src/plugins/sync.js +42 -0
- package/dist/app/src/plugins/sync.js.map +1 -0
- package/dist/app/src/plugins/thunk.d.ts +74 -0
- package/dist/app/src/plugins/thunk.d.ts.map +1 -0
- package/dist/app/src/{thunk.js → plugins/thunk.js} +155 -152
- package/dist/app/src/plugins/thunk.js.map +1 -0
- package/dist/app/src/plugins/topics.d.ts +19 -0
- package/dist/app/src/plugins/topics.d.ts.map +1 -0
- package/dist/app/src/plugins/topics.js +51 -0
- package/dist/app/src/plugins/topics.js.map +1 -0
- package/dist/app/src/plugins/wot.d.ts +28 -0
- package/dist/app/src/plugins/wot.d.ts.map +1 -0
- package/dist/app/src/plugins/wot.js +116 -0
- package/dist/app/src/plugins/wot.js.map +1 -0
- package/dist/app/src/plugins/wraps.d.ts +25 -0
- package/dist/app/src/plugins/wraps.d.ts.map +1 -0
- package/dist/app/src/plugins/wraps.js +59 -0
- package/dist/app/src/plugins/wraps.js.map +1 -0
- package/dist/app/src/plugins/zappers.d.ts +30 -0
- package/dist/app/src/plugins/zappers.d.ts.map +1 -0
- package/dist/app/src/plugins/zappers.js +119 -0
- package/dist/app/src/plugins/zappers.js.map +1 -0
- package/dist/app/src/policy.d.ts +51 -0
- package/dist/app/src/policy.d.ts.map +1 -0
- package/dist/app/src/policy.js +129 -0
- package/dist/app/src/policy.js.map +1 -0
- package/dist/app/src/session.d.ts +36 -103
- package/dist/app/src/session.d.ts.map +1 -1
- package/dist/app/src/session.js +42 -171
- package/dist/app/src/session.js.map +1 -1
- package/dist/app/src/user.d.ts +34 -33
- package/dist/app/src/user.d.ts.map +1 -1
- package/dist/app/src/user.js +51 -53
- package/dist/app/src/user.js.map +1 -1
- package/dist/domain/src/behaviors/Emoji.d.ts +18 -0
- package/dist/domain/src/behaviors/Emoji.d.ts.map +1 -0
- package/dist/domain/src/behaviors/Emoji.js +9 -0
- package/dist/domain/src/behaviors/Emoji.js.map +1 -0
- package/dist/domain/src/behaviors/ZapSplits.d.ts +36 -0
- package/dist/domain/src/behaviors/ZapSplits.d.ts.map +1 -0
- package/dist/domain/src/behaviors/ZapSplits.js +54 -0
- package/dist/domain/src/behaviors/ZapSplits.js.map +1 -0
- package/dist/domain/src/core/EventReader.d.ts +24 -0
- package/dist/domain/src/core/EventReader.d.ts.map +1 -0
- package/dist/domain/src/core/EventReader.js +55 -0
- package/dist/domain/src/core/EventReader.js.map +1 -0
- package/dist/domain/src/core/EventWriter.d.ts +99 -0
- package/dist/domain/src/core/EventWriter.d.ts.map +1 -0
- package/dist/domain/src/core/EventWriter.js +233 -0
- package/dist/domain/src/core/EventWriter.js.map +1 -0
- package/dist/domain/src/core/Kind.d.ts +39 -0
- package/dist/domain/src/core/Kind.d.ts.map +1 -0
- package/dist/domain/src/core/Kind.js +43 -0
- package/dist/domain/src/core/Kind.js.map +1 -0
- package/dist/domain/src/core/ListReader.d.ts +9 -0
- package/dist/domain/src/core/ListReader.d.ts.map +1 -0
- package/dist/domain/src/core/ListReader.js +32 -0
- package/dist/domain/src/core/ListReader.js.map +1 -0
- package/dist/domain/src/core/ListWriter.d.ts +20 -0
- package/dist/domain/src/core/ListWriter.d.ts.map +1 -0
- package/dist/domain/src/core/ListWriter.js +72 -0
- package/dist/domain/src/core/ListWriter.js.map +1 -0
- package/dist/domain/src/index.d.ts +63 -0
- package/dist/domain/src/index.d.ts.map +1 -0
- package/dist/domain/src/index.js +63 -0
- package/dist/domain/src/index.js.map +1 -0
- package/dist/domain/src/kinds/AppData.d.ts +22 -0
- package/dist/domain/src/kinds/AppData.d.ts.map +1 -0
- package/dist/domain/src/kinds/AppData.js +84 -0
- package/dist/domain/src/kinds/AppData.js.map +1 -0
- package/dist/domain/src/kinds/BlockedRelayList.d.ts +14 -0
- package/dist/domain/src/kinds/BlockedRelayList.d.ts.map +1 -0
- package/dist/domain/src/kinds/BlockedRelayList.js +31 -0
- package/dist/domain/src/kinds/BlockedRelayList.js.map +1 -0
- package/dist/domain/src/kinds/BlossomServerList.d.ts +14 -0
- package/dist/domain/src/kinds/BlossomServerList.d.ts.map +1 -0
- package/dist/domain/src/kinds/BlossomServerList.js +31 -0
- package/dist/domain/src/kinds/BlossomServerList.js.map +1 -0
- package/dist/domain/src/kinds/BookmarkList.d.ts +16 -0
- package/dist/domain/src/kinds/BookmarkList.d.ts.map +1 -0
- package/dist/domain/src/kinds/BookmarkList.js +37 -0
- package/dist/domain/src/kinds/BookmarkList.js.map +1 -0
- package/dist/domain/src/kinds/Classified.d.ts +26 -0
- package/dist/domain/src/kinds/Classified.d.ts.map +1 -0
- package/dist/domain/src/kinds/Classified.js +66 -0
- package/dist/domain/src/kinds/Classified.js.map +1 -0
- package/dist/domain/src/kinds/Comment.d.ts +33 -0
- package/dist/domain/src/kinds/Comment.d.ts.map +1 -0
- package/dist/domain/src/kinds/Comment.js +105 -0
- package/dist/domain/src/kinds/Comment.js.map +1 -0
- package/dist/domain/src/kinds/Delete.d.ts +18 -0
- package/dist/domain/src/kinds/Delete.d.ts.map +1 -0
- package/dist/domain/src/kinds/Delete.js +70 -0
- package/dist/domain/src/kinds/Delete.js.map +1 -0
- package/dist/domain/src/kinds/EmojiList.d.ts +12 -0
- package/dist/domain/src/kinds/EmojiList.d.ts.map +1 -0
- package/dist/domain/src/kinds/EmojiList.js +25 -0
- package/dist/domain/src/kinds/EmojiList.js.map +1 -0
- package/dist/domain/src/kinds/Feed.d.ts +16 -0
- package/dist/domain/src/kinds/Feed.d.ts.map +1 -0
- package/dist/domain/src/kinds/Feed.js +34 -0
- package/dist/domain/src/kinds/Feed.js.map +1 -0
- package/dist/domain/src/kinds/FeedList.d.ts +14 -0
- package/dist/domain/src/kinds/FeedList.d.ts.map +1 -0
- package/dist/domain/src/kinds/FeedList.js +31 -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 +31 -0
- package/dist/domain/src/kinds/FollowList.js.map +1 -0
- package/dist/domain/src/kinds/GroupList.d.ts +12 -0
- package/dist/domain/src/kinds/GroupList.d.ts.map +1 -0
- package/dist/domain/src/kinds/GroupList.js +25 -0
- package/dist/domain/src/kinds/GroupList.js.map +1 -0
- package/dist/domain/src/kinds/Handler.d.ts +39 -0
- package/dist/domain/src/kinds/Handler.d.ts.map +1 -0
- package/dist/domain/src/kinds/Handler.js +87 -0
- package/dist/domain/src/kinds/Handler.js.map +1 -0
- package/dist/domain/src/kinds/HandlerRecommendation.d.ts +14 -0
- package/dist/domain/src/kinds/HandlerRecommendation.d.ts.map +1 -0
- package/dist/domain/src/kinds/HandlerRecommendation.js +33 -0
- package/dist/domain/src/kinds/HandlerRecommendation.js.map +1 -0
- package/dist/domain/src/kinds/MessagingRelayList.d.ts +13 -0
- package/dist/domain/src/kinds/MessagingRelayList.d.ts.map +1 -0
- package/dist/domain/src/kinds/MessagingRelayList.js +28 -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 +34 -0
- package/dist/domain/src/kinds/MuteList.js.map +1 -0
- package/dist/domain/src/kinds/Note.d.ts +18 -0
- package/dist/domain/src/kinds/Note.d.ts.map +1 -0
- package/dist/domain/src/kinds/Note.js +106 -0
- package/dist/domain/src/kinds/Note.js.map +1 -0
- package/dist/domain/src/kinds/Pin.d.ts +36 -0
- package/dist/domain/src/kinds/Pin.d.ts.map +1 -0
- package/dist/domain/src/kinds/Pin.js +76 -0
- package/dist/domain/src/kinds/Pin.js.map +1 -0
- package/dist/domain/src/kinds/PinList.d.ts +14 -0
- package/dist/domain/src/kinds/PinList.d.ts.map +1 -0
- package/dist/domain/src/kinds/PinList.js +31 -0
- package/dist/domain/src/kinds/PinList.js.map +1 -0
- package/dist/domain/src/kinds/Pinboard.d.ts +20 -0
- package/dist/domain/src/kinds/Pinboard.d.ts.map +1 -0
- package/dist/domain/src/kinds/Pinboard.js +54 -0
- package/dist/domain/src/kinds/Pinboard.js.map +1 -0
- package/dist/domain/src/kinds/Poll.d.ts +36 -0
- package/dist/domain/src/kinds/Poll.d.ts.map +1 -0
- package/dist/domain/src/kinds/Poll.js +81 -0
- package/dist/domain/src/kinds/Poll.js.map +1 -0
- package/dist/domain/src/kinds/PollResponse.d.ts +14 -0
- package/dist/domain/src/kinds/PollResponse.d.ts.map +1 -0
- package/dist/domain/src/kinds/PollResponse.js +34 -0
- package/dist/domain/src/kinds/PollResponse.js.map +1 -0
- package/dist/domain/src/kinds/Profile.d.ts +33 -0
- package/dist/domain/src/kinds/Profile.d.ts.map +1 -0
- package/dist/domain/src/kinds/Profile.js +101 -0
- package/dist/domain/src/kinds/Profile.js.map +1 -0
- package/dist/domain/src/kinds/Reaction.d.ts +16 -0
- package/dist/domain/src/kinds/Reaction.d.ts.map +1 -0
- package/dist/domain/src/kinds/Reaction.js +55 -0
- package/dist/domain/src/kinds/Reaction.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 +23 -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 +23 -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 +29 -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 +16 -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 +98 -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 +23 -0
- package/dist/domain/src/kinds/RelayRemoveMember.js.map +1 -0
- package/dist/domain/src/kinds/RelayRole.d.ts +18 -0
- package/dist/domain/src/kinds/RelayRole.d.ts.map +1 -0
- package/dist/domain/src/kinds/RelayRole.js +46 -0
- package/dist/domain/src/kinds/RelayRole.js.map +1 -0
- package/dist/domain/src/kinds/RelaySet.d.ts +19 -0
- package/dist/domain/src/kinds/RelaySet.d.ts.map +1 -0
- package/dist/domain/src/kinds/RelaySet.js +46 -0
- package/dist/domain/src/kinds/RelaySet.js.map +1 -0
- package/dist/domain/src/kinds/Report.d.ts +19 -0
- package/dist/domain/src/kinds/Report.d.ts.map +1 -0
- package/dist/domain/src/kinds/Report.js +63 -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 +23 -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 +29 -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 +22 -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 +32 -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 +22 -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 +81 -0
- package/dist/domain/src/kinds/RoomEdit.js.map +1 -0
- package/dist/domain/src/kinds/RoomJoin.d.ts +13 -0
- package/dist/domain/src/kinds/RoomJoin.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomJoin.js +29 -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 +22 -0
- package/dist/domain/src/kinds/RoomLeave.js.map +1 -0
- package/dist/domain/src/kinds/RoomList.d.ts +19 -0
- package/dist/domain/src/kinds/RoomList.d.ts.map +1 -0
- package/dist/domain/src/kinds/RoomList.js +72 -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 +32 -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 +74 -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 +29 -0
- package/dist/domain/src/kinds/RoomRemoveMember.js.map +1 -0
- package/dist/domain/src/kinds/SearchRelayList.d.ts +14 -0
- package/dist/domain/src/kinds/SearchRelayList.d.ts.map +1 -0
- package/dist/domain/src/kinds/SearchRelayList.js +31 -0
- package/dist/domain/src/kinds/SearchRelayList.js.map +1 -0
- package/dist/domain/src/kinds/Thread.d.ts +11 -0
- package/dist/domain/src/kinds/Thread.d.ts.map +1 -0
- package/dist/domain/src/kinds/Thread.js +22 -0
- package/dist/domain/src/kinds/Thread.js.map +1 -0
- package/dist/domain/src/kinds/TimeEvent.d.ts +20 -0
- package/dist/domain/src/kinds/TimeEvent.d.ts.map +1 -0
- package/dist/domain/src/kinds/TimeEvent.js +59 -0
- package/dist/domain/src/kinds/TimeEvent.js.map +1 -0
- package/dist/domain/src/kinds/TopicList.d.ts +16 -0
- package/dist/domain/src/kinds/TopicList.d.ts.map +1 -0
- package/dist/domain/src/kinds/TopicList.js +37 -0
- package/dist/domain/src/kinds/TopicList.js.map +1 -0
- package/dist/domain/src/kinds/ZapGoal.d.ts +21 -0
- package/dist/domain/src/kinds/ZapGoal.d.ts.map +1 -0
- package/dist/domain/src/kinds/ZapGoal.js +56 -0
- package/dist/domain/src/kinds/ZapGoal.js.map +1 -0
- package/dist/domain/src/kinds/ZapReceipt.d.ts +25 -0
- package/dist/domain/src/kinds/ZapReceipt.d.ts.map +1 -0
- package/dist/domain/src/kinds/ZapReceipt.js +68 -0
- package/dist/domain/src/kinds/ZapReceipt.js.map +1 -0
- package/dist/domain/src/kinds/ZapRequest.d.ts +28 -0
- package/dist/domain/src/kinds/ZapRequest.d.ts.map +1 -0
- package/dist/domain/src/kinds/ZapRequest.js +72 -0
- package/dist/domain/src/kinds/ZapRequest.js.map +1 -0
- package/dist/domain/src/other/Relay.d.ts +49 -0
- package/dist/domain/src/other/Relay.d.ts.map +1 -0
- package/dist/domain/src/other/Relay.js +50 -0
- package/dist/domain/src/other/Relay.js.map +1 -0
- package/dist/domain/src/other/Zapper.d.ts +40 -0
- package/dist/domain/src/other/Zapper.d.ts.map +1 -0
- package/dist/domain/src/other/Zapper.js +67 -0
- package/dist/domain/src/other/Zapper.js.map +1 -0
- package/dist/feeds/src/compiler.d.ts +2 -0
- package/dist/feeds/src/compiler.d.ts.map +1 -1
- package/dist/feeds/src/compiler.js +3 -0
- package/dist/feeds/src/compiler.js.map +1 -1
- package/dist/feeds/src/controller.d.ts.map +1 -1
- package/dist/feeds/src/controller.js +2 -0
- package/dist/feeds/src/controller.js.map +1 -1
- package/dist/feeds/src/index.d.ts +1 -0
- package/dist/feeds/src/index.d.ts.map +1 -1
- package/dist/feeds/src/index.js +1 -0
- package/dist/feeds/src/index.js.map +1 -1
- package/dist/feeds/src/request.d.ts +5 -2
- package/dist/feeds/src/request.d.ts.map +1 -1
- package/dist/feeds/src/request.js +16 -16
- package/dist/feeds/src/request.js.map +1 -1
- package/dist/feeds/src/router.d.ts +10 -0
- package/dist/feeds/src/router.d.ts.map +1 -0
- package/dist/feeds/src/router.js +45 -0
- package/dist/feeds/src/router.js.map +1 -0
- package/dist/feeds/src/utils.js +2 -2
- package/dist/feeds/src/utils.js.map +1 -1
- package/dist/lib/src/Tools.d.ts +13 -0
- package/dist/lib/src/Tools.d.ts.map +1 -1
- package/dist/lib/src/Tools.js +30 -1
- package/dist/lib/src/Tools.js.map +1 -1
- package/dist/net/src/adapter.d.ts +2 -2
- package/dist/net/src/adapter.d.ts.map +1 -1
- package/dist/net/src/adapter.js +8 -4
- package/dist/net/src/adapter.js.map +1 -1
- package/dist/net/src/auth.d.ts +1 -1
- package/dist/net/src/auth.d.ts.map +1 -1
- package/dist/net/src/auth.js +3 -3
- package/dist/net/src/auth.js.map +1 -1
- package/dist/net/src/context.d.ts +4 -7
- package/dist/net/src/context.d.ts.map +1 -1
- package/dist/net/src/context.js +1 -9
- package/dist/net/src/context.js.map +1 -1
- package/dist/net/src/message.d.ts +1 -1
- package/dist/net/src/message.d.ts.map +1 -1
- package/dist/net/src/message.js +1 -1
- package/dist/net/src/message.js.map +1 -1
- package/dist/net/src/pool.d.ts +1 -8
- package/dist/net/src/pool.d.ts.map +1 -1
- package/dist/net/src/pool.js +2 -18
- package/dist/net/src/pool.js.map +1 -1
- package/dist/net/src/repository.d.ts +4 -2
- package/dist/net/src/repository.d.ts.map +1 -1
- package/dist/net/src/repository.js +55 -21
- package/dist/net/src/repository.js.map +1 -1
- package/dist/net/src/request.d.ts +2 -3
- package/dist/net/src/request.d.ts.map +1 -1
- package/dist/net/src/request.js +4 -7
- package/dist/net/src/request.js.map +1 -1
- package/dist/net/src/wrapManager.d.ts +1 -0
- package/dist/net/src/wrapManager.d.ts.map +1 -1
- package/dist/net/src/wrapManager.js +5 -1
- package/dist/net/src/wrapManager.js.map +1 -1
- package/dist/signer/src/signers/nip46.d.ts +2 -2
- package/dist/signer/src/signers/nip46.d.ts.map +1 -1
- package/dist/signer/src/signers/nip46.js +10 -5
- package/dist/signer/src/signers/nip46.js.map +1 -1
- package/dist/signer/src/util.d.ts +1 -1
- package/dist/signer/src/util.d.ts.map +1 -1
- package/dist/signer/src/util.js +18 -6
- package/dist/signer/src/util.js.map +1 -1
- package/dist/store/src/repository.d.ts +17 -0
- package/dist/store/src/repository.d.ts.map +1 -1
- package/dist/store/src/repository.js +144 -0
- package/dist/store/src/repository.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/util/src/Events.d.ts +0 -12
- package/dist/util/src/Events.d.ts.map +1 -1
- package/dist/util/src/Events.js +3 -25
- package/dist/util/src/Events.js.map +1 -1
- 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/Kinds.d.ts +6 -1
- package/dist/util/src/Kinds.d.ts.map +1 -1
- package/dist/util/src/Kinds.js +8 -2
- package/dist/util/src/Kinds.js.map +1 -1
- package/dist/util/src/Lightning.d.ts +6 -0
- package/dist/util/src/Lightning.d.ts.map +1 -0
- package/dist/util/src/Lightning.js +59 -0
- package/dist/util/src/Lightning.js.map +1 -0
- package/dist/util/src/Nip86.d.ts +75 -25
- package/dist/util/src/Nip86.d.ts.map +1 -1
- package/dist/util/src/Nip86.js +169 -24
- package/dist/util/src/Nip86.js.map +1 -1
- package/dist/util/src/Pow.js +2 -2
- package/dist/util/src/Pow.js.map +1 -1
- package/dist/util/src/Pubkey.d.ts.map +1 -1
- package/dist/util/src/Pubkey.js +2 -1
- package/dist/util/src/Pubkey.js.map +1 -1
- package/dist/util/src/Relay.d.ts +0 -29
- package/dist/util/src/Relay.d.ts.map +1 -1
- package/dist/util/src/Relay.js +0 -10
- package/dist/util/src/Relay.js.map +1 -1
- package/dist/util/src/RelaySelection.d.ts +101 -0
- package/dist/util/src/RelaySelection.d.ts.map +1 -0
- package/dist/util/src/RelaySelection.js +98 -0
- package/dist/util/src/RelaySelection.js.map +1 -0
- package/dist/util/src/Tags.d.ts +16 -35
- package/dist/util/src/Tags.d.ts.map +1 -1
- package/dist/util/src/Tags.js +23 -74
- package/dist/util/src/Tags.js.map +1 -1
- package/dist/util/src/Topics.d.ts +2 -0
- package/dist/util/src/Topics.d.ts.map +1 -0
- package/dist/util/src/Topics.js +2 -0
- package/dist/util/src/Topics.js.map +1 -0
- package/dist/util/src/index.d.ts +3 -6
- package/dist/util/src/index.d.ts.map +1 -1
- package/dist/util/src/index.js +3 -6
- package/dist/util/src/index.js.map +1 -1
- package/package.json +16 -16
- package/dist/app/src/blockedRelayLists.d.ts +0 -9
- package/dist/app/src/blockedRelayLists.d.ts.map +0 -1
- package/dist/app/src/blockedRelayLists.js +0 -18
- package/dist/app/src/blockedRelayLists.js.map +0 -1
- package/dist/app/src/blossom.d.ts +0 -8
- package/dist/app/src/blossom.d.ts.map +0 -1
- package/dist/app/src/blossom.js +0 -17
- package/dist/app/src/blossom.js.map +0 -1
- package/dist/app/src/commands.d.ts +0 -43
- package/dist/app/src/commands.d.ts.map +0 -1
- package/dist/app/src/commands.js +0 -216
- package/dist/app/src/commands.js.map +0 -1
- package/dist/app/src/context.d.ts +0 -5
- package/dist/app/src/context.d.ts.map +0 -1
- package/dist/app/src/context.js +0 -2
- package/dist/app/src/context.js.map +0 -1
- package/dist/app/src/core.d.ts +0 -4
- package/dist/app/src/core.d.ts.map +0 -1
- package/dist/app/src/core.js +0 -4
- package/dist/app/src/core.js.map +0 -1
- package/dist/app/src/feeds.d.ts +0 -9
- package/dist/app/src/feeds.d.ts.map +0 -1
- package/dist/app/src/feeds.js +0 -35
- package/dist/app/src/feeds.js.map +0 -1
- package/dist/app/src/follows.d.ts +0 -9
- package/dist/app/src/follows.d.ts.map +0 -1
- package/dist/app/src/follows.js +0 -18
- package/dist/app/src/follows.js.map +0 -1
- package/dist/app/src/handles.d.ts +0 -30
- package/dist/app/src/handles.d.ts.map +0 -1
- package/dist/app/src/handles.js +0 -95
- package/dist/app/src/handles.js.map +0 -1
- package/dist/app/src/messagingRelayLists.d.ts +0 -9
- package/dist/app/src/messagingRelayLists.d.ts.map +0 -1
- package/dist/app/src/messagingRelayLists.js +0 -18
- package/dist/app/src/messagingRelayLists.js.map +0 -1
- package/dist/app/src/mutes.d.ts +0 -10
- package/dist/app/src/mutes.d.ts.map +0 -1
- package/dist/app/src/mutes.js +0 -32
- package/dist/app/src/mutes.js.map +0 -1
- package/dist/app/src/pins.d.ts +0 -9
- package/dist/app/src/pins.d.ts.map +0 -1
- package/dist/app/src/pins.js +0 -18
- package/dist/app/src/pins.js.map +0 -1
- package/dist/app/src/plaintext.d.ts +0 -6
- package/dist/app/src/plaintext.d.ts.map +0 -1
- package/dist/app/src/plaintext.js +0 -35
- package/dist/app/src/plaintext.js.map +0 -1
- package/dist/app/src/profiles.d.ts +0 -11
- package/dist/app/src/profiles.d.ts.map +0 -1
- package/dist/app/src/profiles.js +0 -23
- package/dist/app/src/profiles.js.map +0 -1
- package/dist/app/src/relayLists.d.ts +0 -13
- package/dist/app/src/relayLists.d.ts.map +0 -1
- package/dist/app/src/relayLists.js +0 -52
- package/dist/app/src/relayLists.js.map +0 -1
- package/dist/app/src/relayStats.d.ts +0 -34
- package/dist/app/src/relayStats.d.ts.map +0 -1
- package/dist/app/src/relayStats.js +0 -196
- package/dist/app/src/relayStats.js.map +0 -1
- package/dist/app/src/relays.d.ts +0 -18
- package/dist/app/src/relays.d.ts.map +0 -1
- package/dist/app/src/relays.js +0 -50
- package/dist/app/src/relays.js.map +0 -1
- package/dist/app/src/search.d.ts +0 -23
- package/dist/app/src/search.d.ts.map +0 -1
- package/dist/app/src/search.js +0 -76
- package/dist/app/src/search.js.map +0 -1
- package/dist/app/src/searchRelayLists.d.ts +0 -9
- package/dist/app/src/searchRelayLists.d.ts.map +0 -1
- package/dist/app/src/searchRelayLists.js +0 -18
- package/dist/app/src/searchRelayLists.js.map +0 -1
- package/dist/app/src/sync.d.ts +0 -9
- package/dist/app/src/sync.d.ts.map +0 -1
- package/dist/app/src/sync.js +0 -32
- package/dist/app/src/sync.js.map +0 -1
- package/dist/app/src/tags.d.ts +0 -10
- package/dist/app/src/tags.d.ts.map +0 -1
- package/dist/app/src/tags.js +0 -96
- package/dist/app/src/tags.js.map +0 -1
- package/dist/app/src/thunk.d.ts +0 -61
- package/dist/app/src/thunk.d.ts.map +0 -1
- package/dist/app/src/thunk.js.map +0 -1
- package/dist/app/src/topics.d.ts +0 -7
- package/dist/app/src/topics.d.ts.map +0 -1
- package/dist/app/src/topics.js +0 -38
- package/dist/app/src/topics.js.map +0 -1
- package/dist/app/src/wot.d.ts +0 -17
- package/dist/app/src/wot.d.ts.map +0 -1
- package/dist/app/src/wot.js +0 -72
- package/dist/app/src/wot.js.map +0 -1
- package/dist/app/src/zappers.d.ts +0 -21
- package/dist/app/src/zappers.d.ts.map +0 -1
- package/dist/app/src/zappers.js +0 -102
- package/dist/app/src/zappers.js.map +0 -1
- package/dist/util/src/Encryptable.d.ts +0 -34
- package/dist/util/src/Encryptable.d.ts.map +0 -1
- package/dist/util/src/Encryptable.js +0 -52
- package/dist/util/src/Encryptable.js.map +0 -1
- package/dist/util/src/Handler.d.ts +0 -17
- package/dist/util/src/Handler.d.ts.map +0 -1
- package/dist/util/src/Handler.js +0 -33
- package/dist/util/src/Handler.js.map +0 -1
- package/dist/util/src/List.d.ts +0 -42
- package/dist/util/src/List.d.ts.map +0 -1
- package/dist/util/src/List.js +0 -86
- package/dist/util/src/List.js.map +0 -1
- package/dist/util/src/Profile.d.ts +0 -26
- package/dist/util/src/Profile.d.ts.map +0 -1
- package/dist/util/src/Profile.js +0 -50
- package/dist/util/src/Profile.js.map +0 -1
- package/dist/util/src/Room.d.ts +0 -63
- package/dist/util/src/Room.d.ts.map +0 -1
- package/dist/util/src/Room.js +0 -94
- package/dist/util/src/Room.js.map +0 -1
- package/dist/util/src/Zaps.d.ts +0 -55
- package/dist/util/src/Zaps.d.ts.map +0 -1
- package/dist/util/src/Zaps.js +0 -135
- package/dist/util/src/Zaps.js.map +0 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { on, noop, always } from "@welshman/lib";
|
|
2
|
+
import { WRAP, isDVMKind, isEphemeralKind, verifyEvent } from "@welshman/util";
|
|
3
|
+
import { SocketEvent, isRelayEvent, makeSocketPolicyAuth } from "@welshman/net";
|
|
4
|
+
import { RelayStats } from "./plugins/relayStats.js";
|
|
5
|
+
import { Wraps } from "./plugins/wraps.js";
|
|
6
|
+
import { BlockedRelayLists } from "./plugins/blockedRelayLists.js";
|
|
7
|
+
import { Plaintext } from "./plugins/plaintext.js";
|
|
8
|
+
import { Logger } from "./plugins/logger.js";
|
|
9
|
+
/**
|
|
10
|
+
* Builds an app policy that authenticates the app's sockets (NIP-42) with
|
|
11
|
+
* the user's signer. It appends an auth socket policy to the pool's
|
|
12
|
+
* `socketPolicies`, so every socket the pool creates answers AUTH challenges
|
|
13
|
+
* according to `shouldAuth`; the policy is spliced back out on cleanup. No-op
|
|
14
|
+
* when the app has no user.
|
|
15
|
+
*
|
|
16
|
+
* Use the `appPolicyAuthAlways` / `appPolicyAuthNever` presets below, or
|
|
17
|
+
* call this with a custom predicate.
|
|
18
|
+
*/
|
|
19
|
+
export const makeAppPolicyAuth = (shouldAuth) => app => {
|
|
20
|
+
if (!app.user) {
|
|
21
|
+
return noop;
|
|
22
|
+
}
|
|
23
|
+
const policy = makeSocketPolicyAuth({
|
|
24
|
+
sign: app.user.signer.sign,
|
|
25
|
+
shouldAuth: socket => shouldAuth(socket, app),
|
|
26
|
+
});
|
|
27
|
+
app.pool.socketPolicies.push(policy);
|
|
28
|
+
return () => {
|
|
29
|
+
const index = app.pool.socketPolicies.indexOf(policy);
|
|
30
|
+
if (index !== -1) {
|
|
31
|
+
app.pool.socketPolicies.splice(index, 1);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export const appPolicyAuthNever = makeAppPolicyAuth(always(false));
|
|
36
|
+
export const appPolicyAuthAlways = makeAppPolicyAuth(always(true));
|
|
37
|
+
export const appPolicyAuthUnlessBlocked = makeAppPolicyAuth((socket, app) => {
|
|
38
|
+
if (!app.user) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return !app.use(BlockedRelayLists).urls(app.user.pubkey).get().includes(socket.url);
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* Ingests every event received on any socket into the app's repository. The
|
|
45
|
+
* net layer doesn't do this for us, and it's how all the repository-backed
|
|
46
|
+
* collections (and gift-wrap unwrapping) get populated.
|
|
47
|
+
*/
|
|
48
|
+
export const appPolicyIngest = app => app.pool.subscribe(socket => {
|
|
49
|
+
const onReceive = (message) => {
|
|
50
|
+
if (!isRelayEvent(message))
|
|
51
|
+
return;
|
|
52
|
+
const event = message[2];
|
|
53
|
+
if (isDVMKind(event.kind) || isEphemeralKind(event.kind))
|
|
54
|
+
return;
|
|
55
|
+
if (!verifyEvent(event))
|
|
56
|
+
return;
|
|
57
|
+
app.tracker.track(event.id, socket.url);
|
|
58
|
+
app.repository.publish(event);
|
|
59
|
+
};
|
|
60
|
+
socket.on(SocketEvent.Receive, onReceive);
|
|
61
|
+
return () => socket.off(SocketEvent.Receive, onReceive);
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* Listens to socket activity on the app's pool into the RelayStats store.
|
|
65
|
+
*/
|
|
66
|
+
export const appPolicyRelayStats = app => {
|
|
67
|
+
return app.pool.subscribe(app.use(RelayStats).monitorSocket);
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Watches the app's repository for gift wraps (existing and incoming) and
|
|
71
|
+
* feeds them to the unwrap queue.
|
|
72
|
+
*/
|
|
73
|
+
export const appPolicyWraps = app => {
|
|
74
|
+
const wraps = app.use(Wraps);
|
|
75
|
+
for (const wrap of app.repository.query([{ kinds: [WRAP] }])) {
|
|
76
|
+
wraps.enqueue(wrap);
|
|
77
|
+
}
|
|
78
|
+
return on(app.repository, "update", ({ added }) => {
|
|
79
|
+
for (const event of added) {
|
|
80
|
+
if (event.kind === WRAP) {
|
|
81
|
+
wraps.enqueue(event);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Wraps user.signer in a WrappedSigner which checks the plaintext cache before
|
|
88
|
+
* attempting to decrypt something.
|
|
89
|
+
*/
|
|
90
|
+
export const appPolicyCacheDecrypt = app => {
|
|
91
|
+
if (!app.user)
|
|
92
|
+
return noop;
|
|
93
|
+
return app.user.wrapSigner((method, thunk, args) => {
|
|
94
|
+
if (method === "nip04.decrypt" || method === "nip44.decrypt") {
|
|
95
|
+
const ciphertext = args[1];
|
|
96
|
+
return app.use(Plaintext).ensure(ciphertext, thunk);
|
|
97
|
+
}
|
|
98
|
+
return thunk();
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Wraps user.signer in a WrappedSigner which logs sign requests to the app logger.
|
|
103
|
+
*/
|
|
104
|
+
export const appPolicyLogSignerMethods = app => {
|
|
105
|
+
if (!app.user)
|
|
106
|
+
return noop;
|
|
107
|
+
const logger = app.use(Logger);
|
|
108
|
+
return app.user.wrapSigner(async (method, thunk) => {
|
|
109
|
+
logger.log("signer", { method, status: "pending" });
|
|
110
|
+
try {
|
|
111
|
+
const result = await thunk();
|
|
112
|
+
logger.log("signer", { method, status: "success" });
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
logger.log("signer", { method, status: "failure", error });
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
export const defaultAppPolicies = [
|
|
122
|
+
appPolicyIngest,
|
|
123
|
+
appPolicyRelayStats,
|
|
124
|
+
appPolicyWraps,
|
|
125
|
+
appPolicyCacheDecrypt,
|
|
126
|
+
appPolicyLogSignerMethods,
|
|
127
|
+
appPolicyAuthUnlessBlocked,
|
|
128
|
+
];
|
|
129
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAA;AAG7E,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAW1C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAC5B,CAAC,UAAkD,EAAa,EAAE,CAClE,GAAG,CAAC,EAAE;IACJ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAClC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;QAC1B,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;KAC9C,CAAC,CAAA;IAEF,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEpC,OAAO,GAAG,EAAE;QACV,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAErD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AAElE,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;IAC1E,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACrF,CAAC,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAc,GAAG,CAAC,EAAE,CAC9C,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;IAC1B,MAAM,SAAS,GAAG,CAAC,OAAqB,EAAE,EAAE;QAC1C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,OAAM;QAElC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAExB,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAM;QAChE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAAE,OAAM;QAE/B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACvC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAEzC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;AACzD,CAAC,CAAC,CAAA;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAc,GAAG,CAAC,EAAE;IAClD,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAA;AAC9D,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAc,GAAG,CAAC,EAAE;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAE5B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAC,KAAK,EAA0B,EAAE,EAAE;QACvE,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAc,GAAG,CAAC,EAAE;IACpD,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAE1B,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACjD,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAW,CAAA;YAEpC,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,KAA8B,CAE1E,CAAA;QACH,CAAC;QAED,OAAO,KAAK,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAc,GAAG,CAAC,EAAE;IACxD,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAE1B,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAE9B,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACjD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAC,CAAC,CAAA;QAEjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAA;YAE5B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAC,CAAC,CAAA;YAEjD,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC,CAAA;YAExD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC7C,eAAe;IACf,mBAAmB;IACnB,cAAc;IACd,qBAAqB;IACrB,yBAAyB;IACzB,0BAA0B;CAC3B,CAAA"}
|
|
@@ -1,108 +1,41 @@
|
|
|
1
|
-
import { ClientOptions } from "@pomade/core";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export
|
|
21
|
-
method: SessionMethod.Nip07;
|
|
22
|
-
pubkey: string;
|
|
23
|
-
};
|
|
24
|
-
export type SessionNip46 = {
|
|
25
|
-
method: SessionMethod.Nip46;
|
|
26
|
-
pubkey: string;
|
|
1
|
+
import type { ClientOptions as PomadeClientOptions } from "@pomade/core";
|
|
2
|
+
import type { MaybeAsync } from "@welshman/lib";
|
|
3
|
+
import type { ISigner } from "@welshman/signer";
|
|
4
|
+
export type Session<M extends string = string, D = unknown> = {
|
|
5
|
+
method: M;
|
|
6
|
+
data: D;
|
|
7
|
+
};
|
|
8
|
+
export type SessionHandler<M extends string, D> = {
|
|
9
|
+
method: M;
|
|
10
|
+
getSigner: (data: D) => MaybeAsync<ISigner>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Define a session handler. `M` and `D` are inferred from the arguments, so
|
|
14
|
+
* `getSigner` is type-checked against the data shape — and the same handler is
|
|
15
|
+
* used to build typed sessions (`toSession`) and to reconstruct signers.
|
|
16
|
+
*/
|
|
17
|
+
export declare const defineSessionHandler: <M extends string, D>(handler: SessionHandler<M, D>) => SessionHandler<M, D>;
|
|
18
|
+
/** Build a typed, serializable session from a handler and its data. */
|
|
19
|
+
export declare const toSession: <M extends string, D>(handler: SessionHandler<M, D>, data: D) => Session<M, D>;
|
|
20
|
+
export declare const nip01: SessionHandler<"nip01", {
|
|
27
21
|
secret: string;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
22
|
+
}>;
|
|
23
|
+
export declare const nip07: SessionHandler<"nip07", Record<string, never>>;
|
|
24
|
+
export declare const nip46: SessionHandler<"nip46", {
|
|
25
|
+
clientSecret: string;
|
|
26
|
+
signerPubkey: string;
|
|
27
|
+
relays: string[];
|
|
28
|
+
}>;
|
|
29
|
+
export declare const nip55: SessionHandler<"nip55", {
|
|
35
30
|
pubkey: string;
|
|
36
31
|
signer: string;
|
|
37
|
-
}
|
|
38
|
-
export
|
|
39
|
-
|
|
40
|
-
pubkey: string;
|
|
41
|
-
clientOptions: ClientOptions;
|
|
32
|
+
}>;
|
|
33
|
+
export declare const pomade: SessionHandler<"pomade", {
|
|
34
|
+
clientOptions: PomadeClientOptions;
|
|
42
35
|
email: string;
|
|
43
|
-
}
|
|
44
|
-
export
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
export type SessionAnonymous = {
|
|
49
|
-
method: SessionMethod.Anonymous;
|
|
50
|
-
};
|
|
51
|
-
export type SessionAnyMethod = SessionNip01 | SessionNip07 | SessionNip46 | SessionNip55 | SessionPomade | SessionPubkey | SessionAnonymous;
|
|
52
|
-
export type Session = SessionAnyMethod & {
|
|
53
|
-
wallet?: Wallet;
|
|
54
|
-
} & Record<string, any>;
|
|
55
|
-
export declare const pubkey: import("@welshman/store").WritableWithGetter<string | undefined>;
|
|
56
|
-
export declare const sessions: import("@welshman/store").WritableWithGetter<Record<string, Session>>;
|
|
57
|
-
export declare const session: import("@welshman/store").ReadableWithGetter<Session | undefined>;
|
|
58
|
-
export declare const getSession: (pubkey: string) => Session;
|
|
59
|
-
export declare const addSession: (session: Session) => void;
|
|
60
|
-
export declare const putSession: (session: Session) => void;
|
|
61
|
-
export declare const updateSession: (pubkey: string, f: (session: Session) => Session) => void;
|
|
62
|
-
export declare const dropSession: (_pubkey: string) => void;
|
|
63
|
-
export declare const clearSessions: () => void;
|
|
64
|
-
export declare const makeNip01Session: (secret: string) => SessionNip01;
|
|
65
|
-
export declare const makeNip07Session: (pubkey: string) => SessionNip07;
|
|
66
|
-
export declare const makeNip46Session: (pubkey: string, clientSecret: string, signerPubkey: string, relays: string[]) => SessionNip46;
|
|
67
|
-
export declare const makeNip55Session: (pubkey: string, signer: string) => SessionNip55;
|
|
68
|
-
export declare const makePomadeSession: (pubkey: string, email: string, clientOptions: ClientOptions) => SessionPomade;
|
|
69
|
-
export declare const makePubkeySession: (pubkey: string) => SessionPubkey;
|
|
70
|
-
export declare const isNip01Session: (session?: Session) => session is SessionNip01;
|
|
71
|
-
export declare const isNip07Session: (session?: Session) => session is SessionNip07;
|
|
72
|
-
export declare const isNip46Session: (session?: Session) => session is SessionNip46;
|
|
73
|
-
export declare const isNip55Session: (session?: Session) => session is SessionNip55;
|
|
74
|
-
export declare const isPomadeSession: (session?: Session) => session is SessionPomade;
|
|
75
|
-
export declare const isPubkeySession: (session?: Session) => session is SessionPubkey;
|
|
76
|
-
export declare const loginWithNip01: (secret: string) => void;
|
|
77
|
-
export declare const loginWithNip07: (pubkey: string) => void;
|
|
78
|
-
export declare const loginWithNip46: (pubkey: string, clientSecret: string, signerPubkey: string, relays: string[]) => void;
|
|
79
|
-
export declare const loginWithNip55: (pubkey: string, signer: string) => void;
|
|
80
|
-
export declare const loginWithPomade: (pubkey: string, email: string, clientOptions: ClientOptions) => void;
|
|
81
|
-
export declare const loginWithPubkey: (pubkey: string) => void;
|
|
82
|
-
export declare const nip46Perms = "sign_event:22242,nip04_encrypt,nip04_decrypt,nip44_encrypt,nip44_decrypt";
|
|
83
|
-
export type SignerLogEntry = {
|
|
84
|
-
id: string;
|
|
85
|
-
method: string;
|
|
86
|
-
started_at: number;
|
|
87
|
-
finished_at?: number;
|
|
88
|
-
ok?: boolean;
|
|
89
|
-
};
|
|
90
|
-
export declare const signerLog: import("@welshman/store").WritableWithGetter<SignerLogEntry[]>;
|
|
91
|
-
export declare const wrapSigner: (signer: ISigner) => WrappedSigner;
|
|
92
|
-
export declare const getSigner: {
|
|
93
|
-
(args_0: Session | undefined): WrappedSigner;
|
|
94
|
-
cache: import("@welshman/lib").LRUCache<string, WrappedSigner | undefined>;
|
|
95
|
-
getKey: (args: [Session | undefined]) => string;
|
|
96
|
-
getValue: (args: [Session | undefined]) => WrappedSigner | undefined;
|
|
97
|
-
pop: (args_0: Session | undefined) => WrappedSigner | undefined;
|
|
98
|
-
};
|
|
99
|
-
export declare const getSignerFromPubkey: (pubkey: string) => WrappedSigner | undefined;
|
|
100
|
-
export declare const signer: import("@welshman/store").ReadableWithGetter<WrappedSigner>;
|
|
101
|
-
export declare const sign: (event: StampedEvent) => Promise<SignedEvent>;
|
|
102
|
-
export declare const nip44EncryptToSelf: (payload: string) => Promise<string>;
|
|
103
|
-
export declare const wrapManager: WrapManager;
|
|
104
|
-
export declare const shouldUnwrap: import("@welshman/store").WritableWithGetter<boolean>;
|
|
105
|
-
export declare const failedUnwraps: Set<string>;
|
|
106
|
-
export declare const wrapQueue: TaskQueue<SignedEvent>;
|
|
107
|
-
export declare const unwrapAndStore: (wrap: SignedEvent) => Promise<void>;
|
|
36
|
+
}>;
|
|
37
|
+
export declare const sessionHandlers: Map<string, SessionHandler<string, any>>;
|
|
38
|
+
export declare const registerSessionHandler: (handler: SessionHandler<string, any>) => void;
|
|
39
|
+
export declare const unregisterSessionHandler: (handler: SessionHandler<string, any>) => void;
|
|
40
|
+
export declare const getSignerFromSession: (session: Session) => MaybeAsync<ISigner> | undefined;
|
|
108
41
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,IAAI,mBAAmB,EAAC,MAAM,cAAc,CAAA;AACtE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AAI7C,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,IAAI;IAC5D,MAAM,EAAE,CAAC,CAAA;IACT,IAAI,EAAE,CAAC,CAAA;CACR,CAAA;AAID,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI;IAChD,MAAM,EAAE,CAAC,CAAA;IACT,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC,CAAA;CAC5C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,yBAAY,CAAA;AAEnG,uEAAuE;AACvE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAC3C,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7B,MAAM,CAAC,KACN,OAAO,CAAC,CAAC,EAAE,CAAC,CAAqC,CAAA;AAIpD,eAAO,MAAM,KAAK;YAEW,MAAM;EACjC,CAAA;AAEF,eAAO,MAAM,KAAK,gDAGhB,CAAA;AAEF,eAAO,MAAM,KAAK;kBAEiB,MAAM;kBAAgB,MAAM;YAAU,MAAM,EAAE;EAE/E,CAAA;AAEF,eAAO,MAAM,KAAK;YAEW,MAAM;YAAU,MAAM;EACjD,CAAA;AAEF,eAAO,MAAM,MAAM;mBAEiB,mBAAmB;WAAS,MAAM;EAEpE,CAAA;AAIF,eAAO,MAAM,eAAe,0CAAiD,CAAA;AAE7E,eAAO,MAAM,sBAAsB,GAAI,SAAS,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,SAE1E,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,SAAS,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,SAE5E,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,KAAG,UAAU,CAAC,OAAO,CAAC,GAAG,SAChB,CAAA"}
|
package/dist/app/src/session.js
CHANGED
|
@@ -1,174 +1,45 @@
|
|
|
1
|
-
import { Client, PomadeSigner } from "@pomade/core";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
1
|
+
import { Client as PomadeClient, PomadeSigner } from "@pomade/core";
|
|
2
|
+
import { Nip46Broker, Nip46Signer, Nip07Signer, Nip01Signer, Nip55Signer } from "@welshman/signer";
|
|
3
|
+
/**
|
|
4
|
+
* Define a session handler. `M` and `D` are inferred from the arguments, so
|
|
5
|
+
* `getSigner` is type-checked against the data shape — and the same handler is
|
|
6
|
+
* used to build typed sessions (`toSession`) and to reconstruct signers.
|
|
7
|
+
*/
|
|
8
|
+
export const defineSessionHandler = (handler) => handler;
|
|
9
|
+
/** Build a typed, serializable session from a handler and its data. */
|
|
10
|
+
export const toSession = (handler, data) => ({ method: handler.method, data });
|
|
11
|
+
// ── Built-in handlers ──
|
|
12
|
+
export const nip01 = defineSessionHandler({
|
|
13
|
+
method: "nip01",
|
|
14
|
+
getSigner: (data) => new Nip01Signer(data.secret),
|
|
15
|
+
});
|
|
16
|
+
export const nip07 = defineSessionHandler({
|
|
17
|
+
method: "nip07",
|
|
18
|
+
getSigner: (_data) => new Nip07Signer(),
|
|
19
|
+
});
|
|
20
|
+
export const nip46 = defineSessionHandler({
|
|
21
|
+
method: "nip46",
|
|
22
|
+
getSigner: (data) => new Nip46Signer(new Nip46Broker(data)),
|
|
23
|
+
});
|
|
24
|
+
export const nip55 = defineSessionHandler({
|
|
25
|
+
method: "nip55",
|
|
26
|
+
getSigner: (data) => new Nip55Signer(data.signer, data.pubkey),
|
|
27
|
+
});
|
|
28
|
+
export const pomade = defineSessionHandler({
|
|
29
|
+
method: "pomade",
|
|
30
|
+
getSigner: (data) => new PomadeSigner(new PomadeClient(data.clientOptions)),
|
|
31
|
+
});
|
|
32
|
+
// ── Registry: deserialize a stored session back into a signer ──
|
|
33
|
+
export const sessionHandlers = new Map();
|
|
34
|
+
export const registerSessionHandler = (handler) => {
|
|
35
|
+
sessionHandlers.set(handler.method, handler);
|
|
26
36
|
};
|
|
27
|
-
export const
|
|
28
|
-
|
|
29
|
-
sessions.update(assoc(session.pubkey, session));
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
export const updateSession = (pubkey, f) => putSession(f(getSession(pubkey)));
|
|
33
|
-
export const dropSession = (_pubkey) => {
|
|
34
|
-
getSigner.pop(getSession(_pubkey))?.cleanup?.();
|
|
35
|
-
pubkey.update($pubkey => ($pubkey === _pubkey ? undefined : $pubkey));
|
|
36
|
-
sessions.update($sessions => omit([_pubkey], $sessions));
|
|
37
|
-
};
|
|
38
|
-
export const clearSessions = () => {
|
|
39
|
-
for (const pubkey of Object.keys(sessions.get())) {
|
|
40
|
-
dropSession(pubkey);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
// Session factories
|
|
44
|
-
export const makeNip01Session = (secret) => ({
|
|
45
|
-
method: SessionMethod.Nip01,
|
|
46
|
-
secret,
|
|
47
|
-
pubkey: getPubkey(secret),
|
|
48
|
-
});
|
|
49
|
-
export const makeNip07Session = (pubkey) => ({
|
|
50
|
-
method: SessionMethod.Nip07,
|
|
51
|
-
pubkey,
|
|
52
|
-
});
|
|
53
|
-
export const makeNip46Session = (pubkey, clientSecret, signerPubkey, relays) => ({
|
|
54
|
-
method: SessionMethod.Nip46,
|
|
55
|
-
pubkey,
|
|
56
|
-
secret: clientSecret,
|
|
57
|
-
handler: { pubkey: signerPubkey, relays },
|
|
58
|
-
});
|
|
59
|
-
export const makeNip55Session = (pubkey, signer) => ({
|
|
60
|
-
method: SessionMethod.Nip55,
|
|
61
|
-
pubkey,
|
|
62
|
-
signer,
|
|
63
|
-
});
|
|
64
|
-
export const makePomadeSession = (pubkey, email, clientOptions) => ({
|
|
65
|
-
method: SessionMethod.Pomade,
|
|
66
|
-
pubkey,
|
|
67
|
-
clientOptions,
|
|
68
|
-
email,
|
|
69
|
-
});
|
|
70
|
-
export const makePubkeySession = (pubkey) => ({
|
|
71
|
-
method: SessionMethod.Pubkey,
|
|
72
|
-
pubkey,
|
|
73
|
-
});
|
|
74
|
-
// Type guards
|
|
75
|
-
export const isNip01Session = (session) => session?.method === SessionMethod.Nip01;
|
|
76
|
-
export const isNip07Session = (session) => session?.method === SessionMethod.Nip07;
|
|
77
|
-
export const isNip46Session = (session) => session?.method === SessionMethod.Nip46;
|
|
78
|
-
export const isNip55Session = (session) => session?.method === SessionMethod.Nip55;
|
|
79
|
-
export const isPomadeSession = (session) => session?.method === SessionMethod.Pomade;
|
|
80
|
-
export const isPubkeySession = (session) => session?.method === SessionMethod.Pubkey;
|
|
81
|
-
// Login utilities
|
|
82
|
-
export const loginWithNip01 = (secret) => addSession(makeNip01Session(secret));
|
|
83
|
-
export const loginWithNip07 = (pubkey) => addSession(makeNip07Session(pubkey));
|
|
84
|
-
export const loginWithNip46 = (pubkey, clientSecret, signerPubkey, relays) => addSession(makeNip46Session(pubkey, clientSecret, signerPubkey, relays));
|
|
85
|
-
export const loginWithNip55 = (pubkey, signer) => addSession(makeNip55Session(pubkey, signer));
|
|
86
|
-
export const loginWithPomade = (pubkey, email, clientOptions) => addSession(makePomadeSession(pubkey, email, clientOptions));
|
|
87
|
-
export const loginWithPubkey = (pubkey) => addSession(makePubkeySession(pubkey));
|
|
88
|
-
// Other stuff
|
|
89
|
-
export const nip46Perms = "sign_event:22242,nip04_encrypt,nip04_decrypt,nip44_encrypt,nip44_decrypt";
|
|
90
|
-
export const signerLog = withGetter(writable([]));
|
|
91
|
-
export const wrapSigner = (signer) => new WrappedSigner(signer, async (method, thunk) => {
|
|
92
|
-
const id = randomId();
|
|
93
|
-
signerLog.update(log => append({ id, method, started_at: Date.now() }, log));
|
|
94
|
-
try {
|
|
95
|
-
const result = await thunk();
|
|
96
|
-
signerLog.update(log => log.map(x => (x.id === id ? { ...x, finished_at: Date.now(), ok: true } : x)));
|
|
97
|
-
return result;
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
signerLog.update(log => log.map(x => (x.id === id ? { ...x, finished_at: Date.now(), ok: false } : x)));
|
|
101
|
-
throw error;
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
export const getSigner = cached({
|
|
105
|
-
maxSize: 100,
|
|
106
|
-
getKey: ([session]) => `${session?.method}:${session?.pubkey}`,
|
|
107
|
-
getValue: ([session]) => {
|
|
108
|
-
if (isNip07Session(session))
|
|
109
|
-
return wrapSigner(new Nip07Signer());
|
|
110
|
-
if (isNip01Session(session))
|
|
111
|
-
return wrapSigner(new Nip01Signer(session.secret));
|
|
112
|
-
if (isNip55Session(session))
|
|
113
|
-
return wrapSigner(new Nip55Signer(session.signer, session.pubkey));
|
|
114
|
-
if (isPomadeSession(session))
|
|
115
|
-
return wrapSigner(new PomadeSigner(new Client(session.clientOptions)));
|
|
116
|
-
if (isNip46Session(session)) {
|
|
117
|
-
const { secret: clientSecret, handler: { relays, pubkey: signerPubkey }, } = session;
|
|
118
|
-
const broker = new Nip46Broker({ clientSecret, signerPubkey, relays });
|
|
119
|
-
const signer = new Nip46Signer(broker);
|
|
120
|
-
return wrapSigner(signer);
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
});
|
|
124
|
-
export const getSignerFromPubkey = (pubkey) => {
|
|
125
|
-
const session = getSession(pubkey);
|
|
126
|
-
if (session) {
|
|
127
|
-
return getSigner(session);
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
export const signer = withGetter(derived(session, getSigner));
|
|
131
|
-
export const sign = (event) => signer.get()?.sign(event);
|
|
132
|
-
export const nip44EncryptToSelf = (payload) => {
|
|
133
|
-
const $pubkey = pubkey.get();
|
|
134
|
-
const $signer = signer.get();
|
|
135
|
-
if (!$signer) {
|
|
136
|
-
throw new Error("Unable to encrypt to self without valid signer");
|
|
137
|
-
}
|
|
138
|
-
return $signer.nip44.encrypt($pubkey, payload);
|
|
139
|
-
};
|
|
140
|
-
// Gift wrap utilities
|
|
141
|
-
export const wrapManager = new WrapManager({ repository, tracker });
|
|
142
|
-
export const shouldUnwrap = withGetter(writable(false));
|
|
143
|
-
export const failedUnwraps = new Set();
|
|
144
|
-
export const wrapQueue = new TaskQueue({
|
|
145
|
-
batchSize: 5,
|
|
146
|
-
batchDelay: 30,
|
|
147
|
-
processItem: async (wrap) => {
|
|
148
|
-
for (const recipient of getPubkeyTagValues(wrap.tags)) {
|
|
149
|
-
const signer = getSignerFromPubkey(recipient);
|
|
150
|
-
if (signer) {
|
|
151
|
-
try {
|
|
152
|
-
const rumor = await Nip59.fromSigner(signer).unwrap(wrap);
|
|
153
|
-
wrapManager.add({ wrap, rumor, recipient });
|
|
154
|
-
return rumor;
|
|
155
|
-
}
|
|
156
|
-
catch (e) {
|
|
157
|
-
failedUnwraps.add(wrap.id);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
});
|
|
163
|
-
export const unwrapAndStore = async (wrap) => {
|
|
164
|
-
if (wrap.kind !== WRAP) {
|
|
165
|
-
throw new Error("Tried to unwrap an invalid event");
|
|
166
|
-
}
|
|
167
|
-
if (!shouldUnwrap.get()) {
|
|
168
|
-
throw new Error("Discarding wrapped event because `shouldUnwrap` is not enabled");
|
|
169
|
-
}
|
|
170
|
-
if (!failedUnwraps.has(wrap.id) && !wrapManager.getRumor(wrap.id)) {
|
|
171
|
-
wrapQueue.push(wrap);
|
|
172
|
-
}
|
|
37
|
+
export const unregisterSessionHandler = (handler) => {
|
|
38
|
+
sessionHandlers.delete(handler.method);
|
|
173
39
|
};
|
|
40
|
+
export const getSignerFromSession = (session) => sessionHandlers.get(session.method)?.getSigner(session.data);
|
|
41
|
+
// ── Initialize default session handlers ──
|
|
42
|
+
for (const sessionHandler of [nip01, nip07, nip46, nip55, pomade]) {
|
|
43
|
+
registerSessionHandler(sessionHandler);
|
|
44
|
+
}
|
|
174
45
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,IAAI,YAAY,EAAE,YAAY,EAAC,MAAM,cAAc,CAAA;AAGjE,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAiBhG;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAsB,OAA6B,EAAE,EAAE,CAAC,OAAO,CAAA;AAEnG,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,OAA6B,EAC7B,IAAO,EACQ,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;AAEpD,0BAA0B;AAE1B,MAAM,CAAC,MAAM,KAAK,GAAG,oBAAoB,CAAC;IACxC,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,CAAC,IAAsB,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;CACpE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,oBAAoB,CAAC;IACxC,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,CAAC,KAA4B,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE;CAC/D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,oBAAoB,CAAC;IACxC,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,CAAC,IAAoE,EAAE,EAAE,CAClF,IAAI,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,oBAAoB,CAAC;IACxC,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,CAAC,IAAsC,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACjG,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,oBAAoB,CAAC;IACzC,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,CAAC,IAAyD,EAAE,EAAE,CACvE,IAAI,YAAY,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;CACzD,CAAC,CAAA;AAEF,kEAAkE;AAElE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuC,CAAA;AAE7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAoC,EAAE,EAAE;IAC7E,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAoC,EAAE,EAAE;IAC/E,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAmC,EAAE,CACxF,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAE9D,4CAA4C;AAE5C,KAAK,MAAM,cAAc,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IAClE,sBAAsB,CAAC,cAAc,CAAC,CAAA;AACxC,CAAC"}
|
package/dist/app/src/user.d.ts
CHANGED
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export declare
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
import type { StampedEvent } from "@welshman/util";
|
|
2
|
+
import type { ISigner, SignerMethodWrapper } from "@welshman/signer";
|
|
3
|
+
import type { Session } from "./session.js";
|
|
4
|
+
import type { IApp } from "./app.js";
|
|
5
|
+
/**
|
|
6
|
+
* A single identity: a pubkey plus the signer that proves it. An `App` is
|
|
7
|
+
* centered on (at most) one `User`, since the data a user can access depends
|
|
8
|
+
* entirely on who they are.
|
|
9
|
+
*
|
|
10
|
+
* `signer` is mutable so app policies can layer behavior onto it after
|
|
11
|
+
* construction via `wrapSigner` — e.g. `appPolicyCacheDecrypt` and
|
|
12
|
+
* `appPolicyLogSignerMethods`.
|
|
13
|
+
*/
|
|
14
|
+
export declare class User {
|
|
15
|
+
readonly pubkey: string;
|
|
16
|
+
signer: ISigner;
|
|
17
|
+
constructor(pubkey: string, signer: ISigner);
|
|
18
|
+
static fromSigner(signer: ISigner): Promise<User>;
|
|
19
|
+
/**
|
|
20
|
+
* Reconstruct a signing user from a persisted session, using the registered
|
|
21
|
+
* session handlers to find the one for the session's method. The pubkey is
|
|
22
|
+
* derived from the signer. Returns undefined when no handler is registered
|
|
23
|
+
* for the session's method.
|
|
24
|
+
*/
|
|
25
|
+
static fromSession(session: Session): Promise<User | undefined>;
|
|
26
|
+
/**
|
|
27
|
+
* Return the app's signed-in user, throwing if there isn't one — the entry
|
|
28
|
+
* point for actions that can only run as a user (publishing, signing).
|
|
29
|
+
*/
|
|
30
|
+
static require(app: IApp): User;
|
|
31
|
+
sign: (event: StampedEvent) => Promise<import("@welshman/util").SignedEvent>;
|
|
32
|
+
nip44EncryptToSelf: (payload: string) => Promise<string>;
|
|
33
|
+
wrapSigner: (wrap: SignerMethodWrapper) => () => void;
|
|
34
|
+
}
|
|
34
35
|
//# sourceMappingURL=user.d.ts.map
|