@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.
Files changed (443) hide show
  1. package/LICENSE +21 -0
  2. package/dist/domain/src/EventBuilder.d.ts +35 -0
  3. package/dist/domain/src/EventBuilder.d.ts.map +1 -0
  4. package/dist/domain/src/EventBuilder.js +111 -0
  5. package/dist/domain/src/EventBuilder.js.map +1 -0
  6. package/dist/domain/src/EventReader.d.ts +24 -0
  7. package/dist/domain/src/EventReader.d.ts.map +1 -0
  8. package/dist/domain/src/EventReader.js +57 -0
  9. package/dist/domain/src/EventReader.js.map +1 -0
  10. package/dist/domain/src/ListBuilder.d.ts +21 -0
  11. package/dist/domain/src/ListBuilder.d.ts.map +1 -0
  12. package/dist/domain/src/ListBuilder.js +73 -0
  13. package/dist/domain/src/ListBuilder.js.map +1 -0
  14. package/dist/domain/src/ListReader.d.ts +12 -0
  15. package/dist/domain/src/ListReader.d.ts.map +1 -0
  16. package/dist/domain/src/ListReader.js +31 -0
  17. package/dist/domain/src/ListReader.js.map +1 -0
  18. package/dist/domain/src/index.d.ts +54 -0
  19. package/dist/domain/src/index.d.ts.map +1 -0
  20. package/dist/domain/src/index.js +54 -0
  21. package/dist/domain/src/index.js.map +1 -0
  22. package/dist/domain/src/kinds/BlockedRelayList.d.ts +15 -0
  23. package/dist/domain/src/kinds/BlockedRelayList.d.ts.map +1 -0
  24. package/dist/domain/src/kinds/BlockedRelayList.js +30 -0
  25. package/dist/domain/src/kinds/BlockedRelayList.js.map +1 -0
  26. package/dist/domain/src/kinds/BlossomServerList.d.ts +15 -0
  27. package/dist/domain/src/kinds/BlossomServerList.d.ts.map +1 -0
  28. package/dist/domain/src/kinds/BlossomServerList.js +30 -0
  29. package/dist/domain/src/kinds/BlossomServerList.js.map +1 -0
  30. package/dist/domain/src/kinds/BookmarkList.d.ts +17 -0
  31. package/dist/domain/src/kinds/BookmarkList.d.ts.map +1 -0
  32. package/dist/domain/src/kinds/BookmarkList.js +36 -0
  33. package/dist/domain/src/kinds/BookmarkList.js.map +1 -0
  34. package/dist/domain/src/kinds/Classified.d.ts +27 -0
  35. package/dist/domain/src/kinds/Classified.d.ts.map +1 -0
  36. package/dist/domain/src/kinds/Classified.js +65 -0
  37. package/dist/domain/src/kinds/Classified.js.map +1 -0
  38. package/dist/domain/src/kinds/Comment.d.ts +29 -0
  39. package/dist/domain/src/kinds/Comment.d.ts.map +1 -0
  40. package/dist/domain/src/kinds/Comment.js +82 -0
  41. package/dist/domain/src/kinds/Comment.js.map +1 -0
  42. package/dist/domain/src/kinds/EmojiList.d.ts +16 -0
  43. package/dist/domain/src/kinds/EmojiList.d.ts.map +1 -0
  44. package/dist/domain/src/kinds/EmojiList.js +33 -0
  45. package/dist/domain/src/kinds/EmojiList.js.map +1 -0
  46. package/dist/domain/src/kinds/Feed.d.ts +17 -0
  47. package/dist/domain/src/kinds/Feed.d.ts.map +1 -0
  48. package/dist/domain/src/kinds/Feed.js +33 -0
  49. package/dist/domain/src/kinds/Feed.js.map +1 -0
  50. package/dist/domain/src/kinds/FeedList.d.ts +15 -0
  51. package/dist/domain/src/kinds/FeedList.d.ts.map +1 -0
  52. package/dist/domain/src/kinds/FeedList.js +30 -0
  53. package/dist/domain/src/kinds/FeedList.js.map +1 -0
  54. package/dist/domain/src/kinds/FollowList.d.ts +14 -0
  55. package/dist/domain/src/kinds/FollowList.d.ts.map +1 -0
  56. package/dist/domain/src/kinds/FollowList.js +27 -0
  57. package/dist/domain/src/kinds/FollowList.js.map +1 -0
  58. package/dist/domain/src/kinds/GroupList.d.ts +13 -0
  59. package/dist/domain/src/kinds/GroupList.d.ts.map +1 -0
  60. package/dist/domain/src/kinds/GroupList.js +24 -0
  61. package/dist/domain/src/kinds/GroupList.js.map +1 -0
  62. package/dist/domain/src/kinds/Handler.d.ts +41 -0
  63. package/dist/domain/src/kinds/Handler.d.ts.map +1 -0
  64. package/dist/domain/src/kinds/Handler.js +86 -0
  65. package/dist/domain/src/kinds/Handler.js.map +1 -0
  66. package/dist/domain/src/kinds/HandlerRecommendation.d.ts +15 -0
  67. package/dist/domain/src/kinds/HandlerRecommendation.d.ts.map +1 -0
  68. package/dist/domain/src/kinds/HandlerRecommendation.js +32 -0
  69. package/dist/domain/src/kinds/HandlerRecommendation.js.map +1 -0
  70. package/dist/domain/src/kinds/MessagingRelayList.d.ts +14 -0
  71. package/dist/domain/src/kinds/MessagingRelayList.d.ts.map +1 -0
  72. package/dist/domain/src/kinds/MessagingRelayList.js +27 -0
  73. package/dist/domain/src/kinds/MessagingRelayList.js.map +1 -0
  74. package/dist/domain/src/kinds/MuteList.d.ts +15 -0
  75. package/dist/domain/src/kinds/MuteList.d.ts.map +1 -0
  76. package/dist/domain/src/kinds/MuteList.js +30 -0
  77. package/dist/domain/src/kinds/MuteList.js.map +1 -0
  78. package/dist/domain/src/kinds/Pin.d.ts +37 -0
  79. package/dist/domain/src/kinds/Pin.d.ts.map +1 -0
  80. package/dist/domain/src/kinds/Pin.js +74 -0
  81. package/dist/domain/src/kinds/Pin.js.map +1 -0
  82. package/dist/domain/src/kinds/PinList.d.ts +15 -0
  83. package/dist/domain/src/kinds/PinList.d.ts.map +1 -0
  84. package/dist/domain/src/kinds/PinList.js +30 -0
  85. package/dist/domain/src/kinds/PinList.js.map +1 -0
  86. package/dist/domain/src/kinds/Pinboard.d.ts +21 -0
  87. package/dist/domain/src/kinds/Pinboard.d.ts.map +1 -0
  88. package/dist/domain/src/kinds/Pinboard.js +53 -0
  89. package/dist/domain/src/kinds/Pinboard.js.map +1 -0
  90. package/dist/domain/src/kinds/Poll.d.ts +37 -0
  91. package/dist/domain/src/kinds/Poll.d.ts.map +1 -0
  92. package/dist/domain/src/kinds/Poll.js +80 -0
  93. package/dist/domain/src/kinds/Poll.js.map +1 -0
  94. package/dist/domain/src/kinds/PollResponse.d.ts +15 -0
  95. package/dist/domain/src/kinds/PollResponse.d.ts.map +1 -0
  96. package/dist/domain/src/kinds/PollResponse.js +33 -0
  97. package/dist/domain/src/kinds/PollResponse.js.map +1 -0
  98. package/dist/domain/src/kinds/Profile.d.ts +36 -0
  99. package/dist/domain/src/kinds/Profile.d.ts.map +1 -0
  100. package/dist/domain/src/kinds/Profile.js +105 -0
  101. package/dist/domain/src/kinds/Profile.js.map +1 -0
  102. package/dist/domain/src/kinds/RelayAddMember.d.ts +12 -0
  103. package/dist/domain/src/kinds/RelayAddMember.d.ts.map +1 -0
  104. package/dist/domain/src/kinds/RelayAddMember.js +21 -0
  105. package/dist/domain/src/kinds/RelayAddMember.js.map +1 -0
  106. package/dist/domain/src/kinds/RelayInvite.d.ts +12 -0
  107. package/dist/domain/src/kinds/RelayInvite.d.ts.map +1 -0
  108. package/dist/domain/src/kinds/RelayInvite.js +21 -0
  109. package/dist/domain/src/kinds/RelayInvite.js.map +1 -0
  110. package/dist/domain/src/kinds/RelayJoin.d.ts +14 -0
  111. package/dist/domain/src/kinds/RelayJoin.d.ts.map +1 -0
  112. package/dist/domain/src/kinds/RelayJoin.js +27 -0
  113. package/dist/domain/src/kinds/RelayJoin.js.map +1 -0
  114. package/dist/domain/src/kinds/RelayLeave.d.ts +10 -0
  115. package/dist/domain/src/kinds/RelayLeave.d.ts.map +1 -0
  116. package/dist/domain/src/kinds/RelayLeave.js +14 -0
  117. package/dist/domain/src/kinds/RelayLeave.js.map +1 -0
  118. package/dist/domain/src/kinds/RelayList.d.ts +24 -0
  119. package/dist/domain/src/kinds/RelayList.d.ts.map +1 -0
  120. package/dist/domain/src/kinds/RelayList.js +89 -0
  121. package/dist/domain/src/kinds/RelayList.js.map +1 -0
  122. package/dist/domain/src/kinds/RelayMembers.d.ts +17 -0
  123. package/dist/domain/src/kinds/RelayMembers.d.ts.map +1 -0
  124. package/dist/domain/src/kinds/RelayMembers.js +38 -0
  125. package/dist/domain/src/kinds/RelayMembers.js.map +1 -0
  126. package/dist/domain/src/kinds/RelayRemoveMember.d.ts +12 -0
  127. package/dist/domain/src/kinds/RelayRemoveMember.d.ts.map +1 -0
  128. package/dist/domain/src/kinds/RelayRemoveMember.js +21 -0
  129. package/dist/domain/src/kinds/RelayRemoveMember.js.map +1 -0
  130. package/dist/domain/src/kinds/RelaySet.d.ts +20 -0
  131. package/dist/domain/src/kinds/RelaySet.d.ts.map +1 -0
  132. package/dist/domain/src/kinds/RelaySet.js +45 -0
  133. package/dist/domain/src/kinds/RelaySet.js.map +1 -0
  134. package/dist/domain/src/kinds/Report.d.ts +18 -0
  135. package/dist/domain/src/kinds/Report.d.ts.map +1 -0
  136. package/dist/domain/src/kinds/Report.js +59 -0
  137. package/dist/domain/src/kinds/Report.js.map +1 -0
  138. package/dist/domain/src/kinds/RoomAddMember.d.ts +12 -0
  139. package/dist/domain/src/kinds/RoomAddMember.d.ts.map +1 -0
  140. package/dist/domain/src/kinds/RoomAddMember.js +21 -0
  141. package/dist/domain/src/kinds/RoomAddMember.js.map +1 -0
  142. package/dist/domain/src/kinds/RoomAdmins.d.ts +14 -0
  143. package/dist/domain/src/kinds/RoomAdmins.d.ts.map +1 -0
  144. package/dist/domain/src/kinds/RoomAdmins.js +27 -0
  145. package/dist/domain/src/kinds/RoomAdmins.js.map +1 -0
  146. package/dist/domain/src/kinds/RoomCreate.d.ts +11 -0
  147. package/dist/domain/src/kinds/RoomCreate.d.ts.map +1 -0
  148. package/dist/domain/src/kinds/RoomCreate.js +20 -0
  149. package/dist/domain/src/kinds/RoomCreate.js.map +1 -0
  150. package/dist/domain/src/kinds/RoomCreatePermission.d.ts +15 -0
  151. package/dist/domain/src/kinds/RoomCreatePermission.d.ts.map +1 -0
  152. package/dist/domain/src/kinds/RoomCreatePermission.js +30 -0
  153. package/dist/domain/src/kinds/RoomCreatePermission.js.map +1 -0
  154. package/dist/domain/src/kinds/RoomDelete.d.ts +11 -0
  155. package/dist/domain/src/kinds/RoomDelete.d.ts.map +1 -0
  156. package/dist/domain/src/kinds/RoomDelete.js +20 -0
  157. package/dist/domain/src/kinds/RoomDelete.js.map +1 -0
  158. package/dist/domain/src/kinds/RoomEdit.d.ts +28 -0
  159. package/dist/domain/src/kinds/RoomEdit.d.ts.map +1 -0
  160. package/dist/domain/src/kinds/RoomEdit.js +80 -0
  161. package/dist/domain/src/kinds/RoomEdit.js.map +1 -0
  162. package/dist/domain/src/kinds/RoomJoin.d.ts +15 -0
  163. package/dist/domain/src/kinds/RoomJoin.d.ts.map +1 -0
  164. package/dist/domain/src/kinds/RoomJoin.js +33 -0
  165. package/dist/domain/src/kinds/RoomJoin.js.map +1 -0
  166. package/dist/domain/src/kinds/RoomLeave.d.ts +11 -0
  167. package/dist/domain/src/kinds/RoomLeave.d.ts.map +1 -0
  168. package/dist/domain/src/kinds/RoomLeave.js +20 -0
  169. package/dist/domain/src/kinds/RoomLeave.js.map +1 -0
  170. package/dist/domain/src/kinds/RoomList.d.ts +14 -0
  171. package/dist/domain/src/kinds/RoomList.d.ts.map +1 -0
  172. package/dist/domain/src/kinds/RoomList.js +27 -0
  173. package/dist/domain/src/kinds/RoomList.js.map +1 -0
  174. package/dist/domain/src/kinds/RoomMembers.d.ts +15 -0
  175. package/dist/domain/src/kinds/RoomMembers.d.ts.map +1 -0
  176. package/dist/domain/src/kinds/RoomMembers.js +30 -0
  177. package/dist/domain/src/kinds/RoomMembers.js.map +1 -0
  178. package/dist/domain/src/kinds/RoomMeta.d.ts +27 -0
  179. package/dist/domain/src/kinds/RoomMeta.d.ts.map +1 -0
  180. package/dist/domain/src/kinds/RoomMeta.js +72 -0
  181. package/dist/domain/src/kinds/RoomMeta.js.map +1 -0
  182. package/dist/domain/src/kinds/RoomRemoveMember.d.ts +14 -0
  183. package/dist/domain/src/kinds/RoomRemoveMember.d.ts.map +1 -0
  184. package/dist/domain/src/kinds/RoomRemoveMember.js +27 -0
  185. package/dist/domain/src/kinds/RoomRemoveMember.js.map +1 -0
  186. package/dist/domain/src/kinds/SearchRelayList.d.ts +15 -0
  187. package/dist/domain/src/kinds/SearchRelayList.d.ts.map +1 -0
  188. package/dist/domain/src/kinds/SearchRelayList.js +30 -0
  189. package/dist/domain/src/kinds/SearchRelayList.js.map +1 -0
  190. package/dist/domain/src/kinds/SlashCommand.d.ts +38 -0
  191. package/dist/domain/src/kinds/SlashCommand.d.ts.map +1 -0
  192. package/dist/domain/src/kinds/SlashCommand.js +91 -0
  193. package/dist/domain/src/kinds/SlashCommand.js.map +1 -0
  194. package/dist/domain/src/kinds/Thread.d.ts +12 -0
  195. package/dist/domain/src/kinds/Thread.d.ts.map +1 -0
  196. package/dist/domain/src/kinds/Thread.js +21 -0
  197. package/dist/domain/src/kinds/Thread.js.map +1 -0
  198. package/dist/domain/src/kinds/TimeEvent.d.ts +21 -0
  199. package/dist/domain/src/kinds/TimeEvent.d.ts.map +1 -0
  200. package/dist/domain/src/kinds/TimeEvent.js +58 -0
  201. package/dist/domain/src/kinds/TimeEvent.js.map +1 -0
  202. package/dist/domain/src/kinds/TopicList.d.ts +17 -0
  203. package/dist/domain/src/kinds/TopicList.d.ts.map +1 -0
  204. package/dist/domain/src/kinds/TopicList.js +36 -0
  205. package/dist/domain/src/kinds/TopicList.js.map +1 -0
  206. package/dist/domain/src/kinds/ZapGoal.d.ts +20 -0
  207. package/dist/domain/src/kinds/ZapGoal.d.ts.map +1 -0
  208. package/dist/domain/src/kinds/ZapGoal.js +52 -0
  209. package/dist/domain/src/kinds/ZapGoal.js.map +1 -0
  210. package/dist/domain/src/kinds/ZapReceipt.d.ts +28 -0
  211. package/dist/domain/src/kinds/ZapReceipt.d.ts.map +1 -0
  212. package/dist/domain/src/kinds/ZapReceipt.js +93 -0
  213. package/dist/domain/src/kinds/ZapReceipt.js.map +1 -0
  214. package/dist/domain/src/kinds/ZapRequest.d.ts +20 -0
  215. package/dist/domain/src/kinds/ZapRequest.d.ts.map +1 -0
  216. package/dist/domain/src/kinds/ZapRequest.js +47 -0
  217. package/dist/domain/src/kinds/ZapRequest.js.map +1 -0
  218. package/dist/feeds/src/compiler.d.ts +49 -0
  219. package/dist/feeds/src/compiler.d.ts.map +1 -0
  220. package/dist/feeds/src/compiler.js +253 -0
  221. package/dist/feeds/src/compiler.js.map +1 -0
  222. package/dist/feeds/src/controller.d.ts +32 -0
  223. package/dist/feeds/src/controller.d.ts.map +1 -0
  224. package/dist/feeds/src/controller.js +329 -0
  225. package/dist/feeds/src/controller.js.map +1 -0
  226. package/dist/feeds/src/core.d.ts +76 -0
  227. package/dist/feeds/src/core.d.ts.map +1 -0
  228. package/dist/feeds/src/core.js +28 -0
  229. package/dist/feeds/src/core.js.map +1 -0
  230. package/dist/feeds/src/display.d.ts +21 -0
  231. package/dist/feeds/src/display.d.ts.map +1 -0
  232. package/dist/feeds/src/display.js +144 -0
  233. package/dist/feeds/src/display.js.map +1 -0
  234. package/dist/feeds/src/index.d.ts +7 -0
  235. package/dist/feeds/src/index.d.ts.map +1 -0
  236. package/dist/feeds/src/index.js +7 -0
  237. package/dist/feeds/src/index.js.map +1 -0
  238. package/dist/feeds/src/request.d.ts +26 -0
  239. package/dist/feeds/src/request.d.ts.map +1 -0
  240. package/dist/feeds/src/request.js +83 -0
  241. package/dist/feeds/src/request.js.map +1 -0
  242. package/dist/feeds/src/utils.d.ts +58 -0
  243. package/dist/feeds/src/utils.d.ts.map +1 -0
  244. package/dist/feeds/src/utils.js +218 -0
  245. package/dist/feeds/src/utils.js.map +1 -0
  246. package/dist/feeds/src/validate.d.ts +24 -0
  247. package/dist/feeds/src/validate.d.ts.map +1 -0
  248. package/dist/feeds/src/validate.js +137 -0
  249. package/dist/feeds/src/validate.js.map +1 -0
  250. package/dist/lib/src/Deferred.d.ts +21 -0
  251. package/dist/lib/src/Deferred.d.ts.map +1 -0
  252. package/dist/lib/src/Deferred.js +21 -0
  253. package/dist/lib/src/Deferred.js.map +1 -0
  254. package/dist/lib/src/Emitter.d.ts +14 -0
  255. package/dist/lib/src/Emitter.d.ts.map +1 -0
  256. package/dist/lib/src/Emitter.js +18 -0
  257. package/dist/lib/src/Emitter.js.map +1 -0
  258. package/dist/lib/src/LRUCache.d.ts +45 -0
  259. package/dist/lib/src/LRUCache.d.ts.map +1 -0
  260. package/dist/lib/src/LRUCache.js +72 -0
  261. package/dist/lib/src/LRUCache.js.map +1 -0
  262. package/dist/lib/src/TaskQueue.d.ts +21 -0
  263. package/dist/lib/src/TaskQueue.d.ts.map +1 -0
  264. package/dist/lib/src/TaskQueue.js +63 -0
  265. package/dist/lib/src/TaskQueue.js.map +1 -0
  266. package/dist/lib/src/Tools.d.ts +828 -0
  267. package/dist/lib/src/Tools.d.ts.map +1 -0
  268. package/dist/lib/src/Tools.js +1402 -0
  269. package/dist/lib/src/Tools.js.map +1 -0
  270. package/dist/lib/src/index.d.ts +7 -0
  271. package/dist/lib/src/index.d.ts.map +1 -0
  272. package/dist/lib/src/index.js +7 -0
  273. package/dist/lib/src/index.js.map +1 -0
  274. package/dist/lib/src/normalize-url/index.d.ts +286 -0
  275. package/dist/lib/src/normalize-url/index.d.ts.map +1 -0
  276. package/dist/lib/src/normalize-url/index.js +252 -0
  277. package/dist/lib/src/normalize-url/index.js.map +1 -0
  278. package/dist/net/src/adapter.d.ts +47 -0
  279. package/dist/net/src/adapter.d.ts.map +1 -0
  280. package/dist/net/src/adapter.js +130 -0
  281. package/dist/net/src/adapter.js.map +1 -0
  282. package/dist/net/src/auth.d.ts +40 -0
  283. package/dist/net/src/auth.d.ts.map +1 -0
  284. package/dist/net/src/auth.js +124 -0
  285. package/dist/net/src/auth.js.map +1 -0
  286. package/dist/net/src/context.d.ts +10 -0
  287. package/dist/net/src/context.d.ts.map +1 -0
  288. package/dist/net/src/context.js +2 -0
  289. package/dist/net/src/context.js.map +1 -0
  290. package/dist/net/src/diff.d.ts +57 -0
  291. package/dist/net/src/diff.d.ts.map +1 -0
  292. package/dist/net/src/diff.js +162 -0
  293. package/dist/net/src/diff.js.map +1 -0
  294. package/dist/net/src/index.d.ts +15 -0
  295. package/dist/net/src/index.d.ts.map +1 -0
  296. package/dist/net/src/index.js +15 -0
  297. package/dist/net/src/index.js.map +1 -0
  298. package/dist/net/src/message.d.ts +64 -0
  299. package/dist/net/src/message.d.ts.map +1 -0
  300. package/dist/net/src/message.js +37 -0
  301. package/dist/net/src/message.js.map +1 -0
  302. package/dist/net/src/negentropy.d.ts +48 -0
  303. package/dist/net/src/negentropy.d.ts.map +1 -0
  304. package/dist/net/src/negentropy.js +535 -0
  305. package/dist/net/src/negentropy.js.map +1 -0
  306. package/dist/net/src/policy.d.ts +40 -0
  307. package/dist/net/src/policy.d.ts.map +1 -0
  308. package/dist/net/src/policy.js +210 -0
  309. package/dist/net/src/policy.js.map +1 -0
  310. package/dist/net/src/pool.d.ts +13 -0
  311. package/dist/net/src/pool.d.ts.map +1 -0
  312. package/dist/net/src/pool.js +44 -0
  313. package/dist/net/src/pool.js.map +1 -0
  314. package/dist/net/src/publish.d.ts +45 -0
  315. package/dist/net/src/publish.d.ts.map +1 -0
  316. package/dist/net/src/publish.js +98 -0
  317. package/dist/net/src/publish.js.map +1 -0
  318. package/dist/net/src/repository.d.ts +69 -0
  319. package/dist/net/src/repository.d.ts.map +1 -0
  320. package/dist/net/src/repository.js +304 -0
  321. package/dist/net/src/repository.js.map +1 -0
  322. package/dist/net/src/request.d.ts +58 -0
  323. package/dist/net/src/request.d.ts.map +1 -0
  324. package/dist/net/src/request.js +224 -0
  325. package/dist/net/src/request.js.map +1 -0
  326. package/dist/net/src/socket.d.ts +49 -0
  327. package/dist/net/src/socket.d.ts.map +1 -0
  328. package/dist/net/src/socket.js +126 -0
  329. package/dist/net/src/socket.js.map +1 -0
  330. package/dist/net/src/tracker.d.ts +16 -0
  331. package/dist/net/src/tracker.d.ts.map +1 -0
  332. package/dist/net/src/tracker.js +63 -0
  333. package/dist/net/src/tracker.js.map +1 -0
  334. package/dist/net/src/util.d.ts +2 -0
  335. package/dist/net/src/util.d.ts.map +1 -0
  336. package/dist/net/src/util.js +2 -0
  337. package/dist/net/src/util.js.map +1 -0
  338. package/dist/net/src/wrapManager.d.ts +37 -0
  339. package/dist/net/src/wrapManager.d.ts.map +1 -0
  340. package/dist/net/src/wrapManager.js +94 -0
  341. package/dist/net/src/wrapManager.js.map +1 -0
  342. package/dist/signer/src/index.d.ts +7 -0
  343. package/dist/signer/src/index.d.ts.map +1 -0
  344. package/dist/signer/src/index.js +7 -0
  345. package/dist/signer/src/index.js.map +1 -0
  346. package/dist/signer/src/nip59.d.ts +19 -0
  347. package/dist/signer/src/nip59.d.ts.map +1 -0
  348. package/dist/signer/src/nip59.js +70 -0
  349. package/dist/signer/src/nip59.js.map +1 -0
  350. package/dist/signer/src/signers/nip01.d.ts +20 -0
  351. package/dist/signer/src/signers/nip01.d.ts.map +1 -0
  352. package/dist/signer/src/signers/nip01.js +23 -0
  353. package/dist/signer/src/signers/nip01.js.map +1 -0
  354. package/dist/signer/src/signers/nip07.d.ts +23 -0
  355. package/dist/signer/src/signers/nip07.d.ts.map +1 -0
  356. package/dist/signer/src/signers/nip07.js +29 -0
  357. package/dist/signer/src/signers/nip07.js.map +1 -0
  358. package/dist/signer/src/signers/nip46.d.ts +127 -0
  359. package/dist/signer/src/signers/nip46.d.ts.map +1 -0
  360. package/dist/signer/src/signers/nip46.js +379 -0
  361. package/dist/signer/src/signers/nip46.js.map +1 -0
  362. package/dist/signer/src/signers/nip55.d.ts +20 -0
  363. package/dist/signer/src/signers/nip55.d.ts.map +1 -0
  364. package/dist/signer/src/signers/nip55.js +87 -0
  365. package/dist/signer/src/signers/nip55.js.map +1 -0
  366. package/dist/signer/src/util.d.ts +56 -0
  367. package/dist/signer/src/util.d.ts.map +1 -0
  368. package/dist/signer/src/util.js +65 -0
  369. package/dist/signer/src/util.js.map +1 -0
  370. package/dist/tsconfig.build.tsbuildinfo +1 -0
  371. package/dist/util/src/Address.d.ts +21 -0
  372. package/dist/util/src/Address.d.ts.map +1 -0
  373. package/dist/util/src/Address.js +43 -0
  374. package/dist/util/src/Address.js.map +1 -0
  375. package/dist/util/src/Blossom.d.ts +66 -0
  376. package/dist/util/src/Blossom.d.ts.map +1 -0
  377. package/dist/util/src/Blossom.js +124 -0
  378. package/dist/util/src/Blossom.js.map +1 -0
  379. package/dist/util/src/Events.d.ts +71 -0
  380. package/dist/util/src/Events.d.ts.map +1 -0
  381. package/dist/util/src/Events.js +91 -0
  382. package/dist/util/src/Events.js.map +1 -0
  383. package/dist/util/src/Filters.d.ts +48 -0
  384. package/dist/util/src/Filters.d.ts.map +1 -0
  385. package/dist/util/src/Filters.js +182 -0
  386. package/dist/util/src/Filters.js.map +1 -0
  387. package/dist/util/src/Handles.d.ts +15 -0
  388. package/dist/util/src/Handles.d.ts.map +1 -0
  389. package/dist/util/src/Handles.js +25 -0
  390. package/dist/util/src/Handles.js.map +1 -0
  391. package/dist/util/src/Keys.d.ts +37 -0
  392. package/dist/util/src/Keys.d.ts.map +1 -0
  393. package/dist/util/src/Keys.js +26 -0
  394. package/dist/util/src/Keys.js.map +1 -0
  395. package/dist/util/src/Kinds.d.ts +194 -0
  396. package/dist/util/src/Kinds.d.ts.map +1 -0
  397. package/dist/util/src/Kinds.js +203 -0
  398. package/dist/util/src/Kinds.js.map +1 -0
  399. package/dist/util/src/Links.d.ts +3 -0
  400. package/dist/util/src/Links.d.ts.map +1 -0
  401. package/dist/util/src/Links.js +3 -0
  402. package/dist/util/src/Links.js.map +1 -0
  403. package/dist/util/src/Nip42.d.ts +7 -0
  404. package/dist/util/src/Nip42.d.ts.map +1 -0
  405. package/dist/util/src/Nip42.js +9 -0
  406. package/dist/util/src/Nip42.js.map +1 -0
  407. package/dist/util/src/Nip86.d.ts +39 -0
  408. package/dist/util/src/Nip86.d.ts.map +1 -0
  409. package/dist/util/src/Nip86.js +49 -0
  410. package/dist/util/src/Nip86.js.map +1 -0
  411. package/dist/util/src/Nip98.d.ts +9 -0
  412. package/dist/util/src/Nip98.d.ts.map +1 -0
  413. package/dist/util/src/Nip98.js +16 -0
  414. package/dist/util/src/Nip98.js.map +1 -0
  415. package/dist/util/src/Pow.d.ts +11 -0
  416. package/dist/util/src/Pow.d.ts.map +1 -0
  417. package/dist/util/src/Pow.js +127 -0
  418. package/dist/util/src/Pow.js.map +1 -0
  419. package/dist/util/src/Pubkey.d.ts +10 -0
  420. package/dist/util/src/Pubkey.d.ts.map +1 -0
  421. package/dist/util/src/Pubkey.js +32 -0
  422. package/dist/util/src/Pubkey.js.map +1 -0
  423. package/dist/util/src/Relay.d.ts +38 -0
  424. package/dist/util/src/Relay.d.ts.map +1 -0
  425. package/dist/util/src/Relay.js +55 -0
  426. package/dist/util/src/Relay.js.map +1 -0
  427. package/dist/util/src/Tags.d.ts +37 -0
  428. package/dist/util/src/Tags.d.ts.map +1 -0
  429. package/dist/util/src/Tags.js +79 -0
  430. package/dist/util/src/Tags.js.map +1 -0
  431. package/dist/util/src/Wallet.d.ts +32 -0
  432. package/dist/util/src/Wallet.d.ts.map +1 -0
  433. package/dist/util/src/Wallet.js +9 -0
  434. package/dist/util/src/Wallet.js.map +1 -0
  435. package/dist/util/src/Zaps.d.ts +86 -0
  436. package/dist/util/src/Zaps.d.ts.map +1 -0
  437. package/dist/util/src/Zaps.js +184 -0
  438. package/dist/util/src/Zaps.js.map +1 -0
  439. package/dist/util/src/index.d.ts +18 -0
  440. package/dist/util/src/index.d.ts.map +1 -0
  441. package/dist/util/src/index.js +18 -0
  442. package/dist/util/src/index.js.map +1 -0
  443. package/package.json +37 -0
@@ -0,0 +1,23 @@
1
+ import { StampedEvent } from "@welshman/util";
2
+ import { SignOptions, Sign, ISigner, EncryptionImplementation } from "../util.js";
3
+ export type Nip07 = {
4
+ signEvent: Sign;
5
+ nip04: EncryptionImplementation;
6
+ nip44: EncryptionImplementation;
7
+ getPublicKey: () => string | undefined;
8
+ };
9
+ export declare const getNip07: () => Nip07 | undefined;
10
+ export declare class Nip07Signer implements ISigner {
11
+ #private;
12
+ getPubkey: () => Promise<string>;
13
+ sign: (template: StampedEvent, options?: SignOptions) => Promise<import("@welshman/util").SignedEvent>;
14
+ nip04: {
15
+ encrypt: (pubkey: string, message: string) => Promise<string>;
16
+ decrypt: (pubkey: string, message: string) => Promise<string>;
17
+ };
18
+ nip44: {
19
+ encrypt: (pubkey: string, message: string) => Promise<string>;
20
+ decrypt: (pubkey: string, message: string) => Promise<string>;
21
+ };
22
+ }
23
+ //# sourceMappingURL=nip07.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip07.d.ts","sourceRoot":"","sources":["../../../../../signer/src/signers/nip07.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAY,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAkB,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,EAAC,MAAM,YAAY,CAAA;AAEhG,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,IAAI,CAAA;IACf,KAAK,EAAE,wBAAwB,CAAA;IAC/B,KAAK,EAAE,wBAAwB,CAAA;IAC/B,YAAY,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,QAAQ,yBAA0C,CAAA;AAE/D,qBAAa,WAAY,YAAW,OAAO;;IAkBzC,SAAS,wBAAsE;IAE/E,IAAI,GAAI,UAAU,YAAY,EAAE,UAAS,WAAgB,mDAItD;IAEH,KAAK;0BACe,MAAM,WAAW,MAAM;0BAEvB,MAAM,WAAW,MAAM;MAE1C;IAED,KAAK;0BACe,MAAM,WAAW,MAAM;0BAEvB,MAAM,WAAW,MAAM;MAE1C;CACF"}
@@ -0,0 +1,29 @@
1
+ import { noop } from "@welshman/lib";
2
+ import { hash, own } from "@welshman/util";
3
+ import { signWithOptions } from "../util.js";
4
+ export const getNip07 = () => window.nostr;
5
+ export class Nip07Signer {
6
+ #lock = Promise.resolve();
7
+ #then = async (f) => {
8
+ const promise = this.#lock.then(() => {
9
+ const ext = getNip07();
10
+ if (!ext)
11
+ throw new Error("Nip07 is not enabled");
12
+ return f(ext);
13
+ });
14
+ // Recover from errors
15
+ this.#lock = promise.then(noop).catch(noop);
16
+ return promise;
17
+ };
18
+ getPubkey = async () => this.#then(ext => ext.getPublicKey());
19
+ sign = (template, options = {}) => signWithOptions(this.#then(async (ext) => ext.signEvent(hash(own(template, await ext.getPublicKey())))), options);
20
+ nip04 = {
21
+ encrypt: (pubkey, message) => this.#then(ext => ext.nip04.encrypt(pubkey, message)),
22
+ decrypt: (pubkey, message) => this.#then(ext => ext.nip04.decrypt(pubkey, message)),
23
+ };
24
+ nip44 = {
25
+ encrypt: (pubkey, message) => this.#then(ext => ext.nip44.encrypt(pubkey, message)),
26
+ decrypt: (pubkey, message) => this.#then(ext => ext.nip44.decrypt(pubkey, message)),
27
+ };
28
+ }
29
+ //# sourceMappingURL=nip07.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip07.js","sourceRoot":"","sources":["../../../../../signer/src/signers/nip07.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAClC,OAAO,EAAe,IAAI,EAAE,GAAG,EAAC,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAC,eAAe,EAAuD,MAAM,YAAY,CAAA;AAShG,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAE,MAA0B,CAAC,KAAK,CAAA;AAE/D,MAAM,OAAO,WAAW;IACtB,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;IAEzB,KAAK,GAAG,KAAK,EAAK,CAAiC,EAAE,EAAE;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACnC,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAA;YAEtB,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YAEjD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,sBAAsB;QACtB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE3C,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAS,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,EAAY,CAAC,CAAA;IAE/E,IAAI,GAAG,CAAC,QAAsB,EAAE,UAAuB,EAAE,EAAE,EAAE,CAC3D,eAAe,CACb,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,YAAY,EAAG,CAAC,CAAC,CAAC,CAAC,EACtF,OAAO,CACR,CAAA;IAEH,KAAK,GAAG;QACN,OAAO,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,EAAE,CAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,EAAE,CAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxD,CAAA;IAED,KAAK,GAAG;QACN,OAAO,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,EAAE,CAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,EAAE,CAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxD,CAAA;CACF"}
@@ -0,0 +1,127 @@
1
+ import { Emitter, MaybeAsync } from "@welshman/lib";
2
+ import { HashedEvent, RelayMode, StampedEvent, TrustedEvent } from "@welshman/util";
3
+ import { AdapterContext } from "@welshman/net";
4
+ import { ISigner, EncryptionImplementation, SignOptions } from "../util.js";
5
+ import { Nip01Signer } from "./nip01.js";
6
+ export type Nip46Context = {
7
+ debug: boolean;
8
+ };
9
+ export declare const nip46Context: {
10
+ debug: boolean;
11
+ };
12
+ export type Nip46Algorithm = "nip04" | "nip44";
13
+ export declare enum Nip46Event {
14
+ Send = "send",
15
+ Receive = "receive"
16
+ }
17
+ export type Nip46BrokerParams = {
18
+ relays: string[];
19
+ clientSecret: string;
20
+ connectSecret?: string;
21
+ signerPubkey?: string;
22
+ algorithm?: Nip46Algorithm;
23
+ context?: AdapterContext;
24
+ };
25
+ export type Nip46Response = {
26
+ id: string;
27
+ url: string;
28
+ event: TrustedEvent;
29
+ error?: string;
30
+ result?: string;
31
+ };
32
+ export type Nip46ResponseWithResult = {
33
+ id: string;
34
+ url: string;
35
+ event: TrustedEvent;
36
+ result: string;
37
+ };
38
+ export type Nip46ResponseWithError = {
39
+ id: string;
40
+ url: string;
41
+ event: TrustedEvent;
42
+ error: string;
43
+ };
44
+ export type PromenadeOptions = {
45
+ secret: string;
46
+ policy: [number, number];
47
+ coordinatorUrl: string;
48
+ signerPubkeys: string[];
49
+ onProgress?: (progress: number) => void;
50
+ generatePow: (event: HashedEvent, difficulty: number) => MaybeAsync<HashedEvent>;
51
+ getPubkeyRelays: (pubkey: string, mode: RelayMode) => MaybeAsync<string[]>;
52
+ };
53
+ export declare class PromenadeShardError extends Error {
54
+ readonly errorsBySignerPubkey: Map<string, string>;
55
+ constructor(message: string, errorsBySignerPubkey: Map<string, string>);
56
+ }
57
+ export declare class Nip46Receiver extends Emitter {
58
+ signer: ISigner;
59
+ params: Nip46BrokerParams;
60
+ abortController?: AbortController;
61
+ constructor(signer: ISigner, params: Nip46BrokerParams);
62
+ start: () => Promise<void>;
63
+ stop: () => void;
64
+ }
65
+ export declare class Nip46Sender extends Emitter {
66
+ signer: ISigner;
67
+ params: Nip46BrokerParams;
68
+ processing: boolean;
69
+ queue: Nip46Request[];
70
+ constructor(signer: ISigner, params: Nip46BrokerParams);
71
+ send: (request: Nip46Request) => Promise<void>;
72
+ process: () => Promise<void>;
73
+ enqueue: (request: Nip46Request) => void;
74
+ stop: () => void;
75
+ }
76
+ export declare class Nip46Request {
77
+ readonly method: string;
78
+ readonly params: string[];
79
+ id: string;
80
+ promise: import("@welshman/lib").Deferred<Nip46ResponseWithResult, Nip46ResponseWithError>;
81
+ constructor(method: string, params: string[]);
82
+ listen: (receiver: Nip46Receiver) => Promise<void>;
83
+ send: (sender: Nip46Sender) => Promise<void>;
84
+ }
85
+ export declare class Nip46Broker extends Emitter {
86
+ params: Nip46BrokerParams;
87
+ signer: ISigner;
88
+ sender: Nip46Sender;
89
+ receiver: Nip46Receiver;
90
+ constructor(params: Nip46BrokerParams);
91
+ static parseBunkerUrl: (url: string) => {
92
+ relays: string[];
93
+ signerPubkey: string;
94
+ connectSecret: string;
95
+ };
96
+ static fromBunkerUrl: (url: string) => Nip46Broker;
97
+ makeSigner: () => Nip01Signer;
98
+ makeSender: () => Nip46Sender;
99
+ makeReceiver: () => Nip46Receiver;
100
+ cleanup: () => void;
101
+ enqueue: (method: string, params: string[]) => Promise<Nip46Request>;
102
+ send: (method: string, params: string[]) => Promise<string>;
103
+ makeNostrconnectUrl: (meta?: Record<string, string>) => Promise<string>;
104
+ waitForNostrconnect: (url: string, signal: AbortSignal) => Promise<Nip46ResponseWithResult>;
105
+ getBunkerUrl: () => string;
106
+ ping: () => Promise<string>;
107
+ getPublicKey: () => Promise<string>;
108
+ createAccount: (username: string, domain: string, perms?: string) => Promise<string>;
109
+ connect: (connectSecret?: string, perms?: string) => Promise<string>;
110
+ signEvent: (event: StampedEvent) => Promise<any>;
111
+ nip04Encrypt: (pk: string, message: string) => Promise<string>;
112
+ nip04Decrypt: (pk: string, message: string) => Promise<string>;
113
+ nip44Encrypt: (pk: string, message: string) => Promise<string>;
114
+ nip44Decrypt: (pk: string, message: string) => Promise<string>;
115
+ switchRelays: () => Promise<string[]>;
116
+ }
117
+ export declare class Nip46Signer implements ISigner {
118
+ broker: Nip46Broker;
119
+ pubkey?: string;
120
+ nip04: EncryptionImplementation;
121
+ nip44: EncryptionImplementation;
122
+ constructor(broker: Nip46Broker);
123
+ getPubkey: () => Promise<string>;
124
+ sign: (template: StampedEvent, options?: SignOptions) => Promise<import("@welshman/util").SignedEvent>;
125
+ cleanup: () => Promise<void>;
126
+ }
127
+ //# sourceMappingURL=nip46.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip46.d.ts","sourceRoot":"","sources":["../../../../../signer/src/signers/nip46.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,379 @@
1
+ import { Emitter, throttle, makePromise, defer, sleep, tryCatch, randomId, parseJson, } from "@welshman/lib";
2
+ import { makeEvent, makeSecret, normalizeRelayUrl, NOSTR_CONNECT, prep, } from "@welshman/util";
3
+ import { publish, request } from "@welshman/net";
4
+ import { signWithOptions, decrypt } from "../util.js";
5
+ import { Nip01Signer } from "./nip01.js";
6
+ export const nip46Context = {
7
+ debug: false,
8
+ };
9
+ const nip46Log = (...args) => {
10
+ if (nip46Context.debug) {
11
+ console.log(...args);
12
+ }
13
+ };
14
+ export var Nip46Event;
15
+ (function (Nip46Event) {
16
+ Nip46Event["Send"] = "send";
17
+ Nip46Event["Receive"] = "receive";
18
+ })(Nip46Event || (Nip46Event = {}));
19
+ export class PromenadeShardError extends Error {
20
+ errorsBySignerPubkey;
21
+ constructor(message, errorsBySignerPubkey) {
22
+ super(message);
23
+ this.errorsBySignerPubkey = errorsBySignerPubkey;
24
+ }
25
+ }
26
+ const popupManager = (() => {
27
+ let pendingUrl = "";
28
+ let pendingSince = 0;
29
+ let currentWindow;
30
+ const openPending = throttle(1000, () => {
31
+ // If it's been a while since they asked for it, drop the request
32
+ if (Date.now() - pendingSince > 10_000)
33
+ return;
34
+ // If we have an active, open window, continue to wait
35
+ if (currentWindow && !currentWindow.closed) {
36
+ setTimeout(() => openPending(), 100);
37
+ }
38
+ else {
39
+ // Attempt to open the window
40
+ const w = window.open(pendingUrl, "", "width=600,height=800,popup=yes");
41
+ // If open was successful, keep track of our window
42
+ if (w) {
43
+ currentWindow = w;
44
+ }
45
+ // In any case, this url has been handled
46
+ pendingUrl = "";
47
+ pendingSince = 0;
48
+ }
49
+ });
50
+ return {
51
+ open: (url) => {
52
+ pendingUrl = url;
53
+ pendingSince = Date.now();
54
+ openPending();
55
+ },
56
+ };
57
+ })();
58
+ export class Nip46Receiver extends Emitter {
59
+ signer;
60
+ params;
61
+ abortController;
62
+ constructor(signer, params) {
63
+ super();
64
+ this.signer = signer;
65
+ this.params = params;
66
+ }
67
+ // start listening to the remote signer for incoming events
68
+ // broadcast any event returned by the remote signer
69
+ start = async () => {
70
+ if (this.abortController)
71
+ return;
72
+ this.abortController = new AbortController();
73
+ const { relays, context } = this.params;
74
+ const userPubkey = await this.signer.getPubkey();
75
+ const filters = [{ kinds: [NOSTR_CONNECT], "#p": [userPubkey] }];
76
+ request({
77
+ relays,
78
+ filters,
79
+ context,
80
+ signal: this.abortController.signal,
81
+ onEvent: async (event, url) => {
82
+ const json = await decrypt(this.signer, event.pubkey, event.content);
83
+ const response = tryCatch(() => JSON.parse(json)) || {};
84
+ // Delay errors in case there's a zombie signer out there clogging things up
85
+ if (response.error) {
86
+ await sleep(3000);
87
+ }
88
+ this.emit(Nip46Event.Receive, { ...response, url, event });
89
+ },
90
+ onClose: () => {
91
+ this.abortController = undefined;
92
+ },
93
+ });
94
+ };
95
+ stop = () => {
96
+ this.abortController?.abort();
97
+ this.removeAllListeners();
98
+ };
99
+ }
100
+ export class Nip46Sender extends Emitter {
101
+ signer;
102
+ params;
103
+ processing = false;
104
+ queue = [];
105
+ constructor(signer, params) {
106
+ super();
107
+ this.signer = signer;
108
+ this.params = params;
109
+ }
110
+ // send a request to the remote signer, emitting the request and the pub
111
+ send = async (request) => {
112
+ const { id, method, params } = request;
113
+ const { relays, signerPubkey, context, algorithm = "nip44" } = this.params;
114
+ if (!signerPubkey) {
115
+ throw new Error("Unable to send nip46 request without a signer pubkey");
116
+ }
117
+ const payload = JSON.stringify({ id, method, params });
118
+ const content = await this.signer[algorithm].encrypt(signerPubkey, payload);
119
+ const template = makeEvent(NOSTR_CONNECT, { content, tags: [["p", signerPubkey]] });
120
+ const event = await this.signer.sign(template);
121
+ publish({ relays, event, context });
122
+ this.emit(Nip46Event.Send, request);
123
+ };
124
+ // process the queue of requests
125
+ process = async () => {
126
+ if (this.processing) {
127
+ return;
128
+ }
129
+ this.processing = true;
130
+ try {
131
+ while (this.queue.length > 0) {
132
+ const [request] = this.queue.splice(0, 1);
133
+ try {
134
+ await this.send(request);
135
+ }
136
+ catch (error) {
137
+ nip46Log("nip46 error:", error, request);
138
+ }
139
+ }
140
+ }
141
+ finally {
142
+ this.processing = false;
143
+ }
144
+ };
145
+ // enqueue a request to the queue and process it
146
+ enqueue = (request) => {
147
+ this.queue.push(request);
148
+ this.process();
149
+ };
150
+ stop = () => {
151
+ this.removeAllListeners();
152
+ };
153
+ }
154
+ // NIP 46 request object constructor
155
+ export class Nip46Request {
156
+ method;
157
+ params;
158
+ id = randomId();
159
+ promise = defer();
160
+ constructor(method, params) {
161
+ this.method = method;
162
+ this.params = params;
163
+ }
164
+ // listen for a response from the remote signer and resolve/reject the in class promise
165
+ listen = async (receiver) => {
166
+ await receiver.start();
167
+ const onReceive = (response) => {
168
+ if (response.id !== this.id) {
169
+ return;
170
+ }
171
+ if (response.result === "auth_url") {
172
+ popupManager.open(response.error);
173
+ }
174
+ else {
175
+ if (response.error) {
176
+ this.promise.reject(response);
177
+ }
178
+ else {
179
+ this.promise.resolve(response);
180
+ }
181
+ receiver.off(Nip46Event.Receive, onReceive);
182
+ }
183
+ };
184
+ receiver.on(Nip46Event.Receive, onReceive);
185
+ };
186
+ // send the request to the remote signer
187
+ send = async (sender) => {
188
+ sender.enqueue(this);
189
+ };
190
+ }
191
+ export class Nip46Broker extends Emitter {
192
+ params;
193
+ signer;
194
+ sender;
195
+ receiver;
196
+ constructor(params) {
197
+ super();
198
+ this.params = params;
199
+ this.signer = this.makeSigner();
200
+ this.sender = this.makeSender();
201
+ this.receiver = this.makeReceiver();
202
+ }
203
+ // Static utility methods
204
+ static parseBunkerUrl = (url) => {
205
+ let connectSecret = "";
206
+ let signerPubkey = "";
207
+ let relays = [];
208
+ try {
209
+ const _url = new URL(url);
210
+ const _relays = _url.searchParams.getAll("relay") || [];
211
+ const _signerPubkey = _url.hostname || _url.pathname.replace(/\//g, "");
212
+ const _connectSecret = _url.searchParams.get("secret") || "";
213
+ relays = _relays.map(normalizeRelayUrl);
214
+ signerPubkey = _signerPubkey.match(/^[0-9a-f]{64}$/)?.[0] || "";
215
+ connectSecret = _connectSecret;
216
+ }
217
+ catch {
218
+ // pass
219
+ }
220
+ return { relays, signerPubkey, connectSecret };
221
+ };
222
+ static fromBunkerUrl = (url) => {
223
+ const clientSecret = makeSecret();
224
+ const { relays, signerPubkey, connectSecret } = Nip46Broker.parseBunkerUrl(url);
225
+ return new Nip46Broker({
226
+ relays,
227
+ clientSecret,
228
+ signerPubkey,
229
+ connectSecret,
230
+ });
231
+ };
232
+ // Getters for helper objects
233
+ makeSigner = () => new Nip01Signer(this.params.clientSecret);
234
+ makeSender = () => {
235
+ const sender = new Nip46Sender(this.signer, this.params);
236
+ sender.on(Nip46Event.Send, (data) => {
237
+ nip46Log("nip46 send:", data);
238
+ });
239
+ return sender;
240
+ };
241
+ makeReceiver = () => {
242
+ const receiver = new Nip46Receiver(this.signer, this.params);
243
+ receiver.on(Nip46Event.Receive, (data) => {
244
+ nip46Log("nip46 receive:", data);
245
+ });
246
+ return receiver;
247
+ };
248
+ // Lifecycle methods
249
+ cleanup = () => {
250
+ this.sender.stop();
251
+ this.receiver.stop();
252
+ };
253
+ // General purpose utility methods
254
+ enqueue = async (method, params) => {
255
+ const request = new Nip46Request(method, params);
256
+ await request.listen(this.receiver);
257
+ await request.send(this.sender);
258
+ return request;
259
+ };
260
+ send = async (method, params) => {
261
+ const request = await this.enqueue(method, params);
262
+ const response = await request.promise;
263
+ return response.result;
264
+ };
265
+ // Methods for initiating a connection
266
+ makeNostrconnectUrl = async (meta = {}) => {
267
+ const clientPubkey = await this.signer.getPubkey();
268
+ const secret = Math.random().toString(36).substring(7);
269
+ const params = new URLSearchParams({ ...meta, secret });
270
+ for (const relay of this.params.relays) {
271
+ params.append("relay", relay);
272
+ }
273
+ return `nostrconnect://${clientPubkey}?${params.toString()}`;
274
+ };
275
+ waitForNostrconnect = async (url, signal) => {
276
+ const secret = new URL(url).searchParams.get("secret");
277
+ const result = await makePromise(async (resolve, reject) => {
278
+ const onReceive = async (response) => {
279
+ if (response.result === "auth_url")
280
+ return;
281
+ if (["ack", secret].includes(response.result)) {
282
+ this.params.signerPubkey = response.event.pubkey;
283
+ if (response.result === "ack") {
284
+ console.warn("Bunker responded to nostrconnect with 'ack', which can lead to session hijacking");
285
+ }
286
+ resolve(response);
287
+ }
288
+ else {
289
+ reject(response);
290
+ }
291
+ cleanup();
292
+ };
293
+ const cleanup = () => {
294
+ this.receiver.off(Nip46Event.Receive, onReceive);
295
+ };
296
+ this.receiver.on(Nip46Event.Receive, onReceive);
297
+ this.receiver.start();
298
+ signal.addEventListener("abort", () => {
299
+ reject(undefined);
300
+ cleanup();
301
+ });
302
+ });
303
+ await this.switchRelays();
304
+ return result;
305
+ };
306
+ // Methods for serializing a connection
307
+ getBunkerUrl = () => {
308
+ if (!this.params.signerPubkey) {
309
+ throw new Error("Attempted to get a bunker url with no signerPubkey");
310
+ }
311
+ const params = new URLSearchParams();
312
+ for (const relay of this.params.relays) {
313
+ params.append("relay", relay);
314
+ }
315
+ if (this.params.connectSecret) {
316
+ params.set("secret", this.params.connectSecret);
317
+ }
318
+ return "bunker://" + this.params.signerPubkey + "?" + params.toString();
319
+ };
320
+ // Normal NIP 46 methods
321
+ ping = () => this.send("ping", []);
322
+ getPublicKey = () => this.send("get_public_key", []);
323
+ createAccount = (username, domain, perms = "") => this.send("create_account", [username, domain, "", perms]);
324
+ connect = async (connectSecret = "", perms = "") => {
325
+ if (!this.params.signerPubkey) {
326
+ throw new Error("Attempted to `connect` with no signerPubkey");
327
+ }
328
+ const result = await this.send("connect", [this.params.signerPubkey, connectSecret, perms]);
329
+ await this.switchRelays();
330
+ return result;
331
+ };
332
+ signEvent = async (event) => JSON.parse(await this.send("sign_event", [JSON.stringify(event)]));
333
+ nip04Encrypt = (pk, message) => this.send("nip04_encrypt", [pk, message]);
334
+ nip04Decrypt = (pk, message) => this.send("nip04_decrypt", [pk, message]);
335
+ nip44Encrypt = (pk, message) => this.send("nip44_encrypt", [pk, message]);
336
+ nip44Decrypt = (pk, message) => this.send("nip44_decrypt", [pk, message]);
337
+ switchRelays = async () => {
338
+ const relays = parseJson(await this.send("switch_relays", []));
339
+ if (relays && relays.length > 0) {
340
+ this.params.relays = relays.map(normalizeRelayUrl);
341
+ const oldSender = this.sender;
342
+ const oldReceiver = this.receiver;
343
+ // Let any in-flight requests finish first
344
+ setTimeout(() => {
345
+ oldSender.stop();
346
+ oldReceiver.stop();
347
+ }, 5_000);
348
+ this.sender = this.makeSender();
349
+ this.receiver = this.makeReceiver();
350
+ }
351
+ return this.params.relays;
352
+ };
353
+ }
354
+ export class Nip46Signer {
355
+ broker;
356
+ pubkey;
357
+ nip04;
358
+ nip44;
359
+ constructor(broker) {
360
+ this.broker = broker;
361
+ this.nip04 = {
362
+ encrypt: this.broker.nip04Encrypt,
363
+ decrypt: this.broker.nip04Decrypt,
364
+ };
365
+ this.nip44 = {
366
+ encrypt: this.broker.nip44Encrypt,
367
+ decrypt: this.broker.nip44Decrypt,
368
+ };
369
+ }
370
+ getPubkey = async () => {
371
+ if (!this.pubkey) {
372
+ this.pubkey = await this.broker.getPublicKey();
373
+ }
374
+ return this.pubkey;
375
+ };
376
+ sign = (template, options = {}) => signWithOptions(this.getPubkey().then(pubkey => this.broker.signEvent(prep(template, pubkey))), options);
377
+ cleanup = async () => this.broker.cleanup();
378
+ }
379
+ //# sourceMappingURL=nip46.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip46.js","sourceRoot":"","sources":["../../../../../signer/src/signers/nip46.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EAER,SAAS,GACV,MAAM,eAAe,CAAA;AACtB,OAAO,EAEL,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,IAAI,GAIL,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAC,OAAO,EAAE,OAAO,EAAiB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAoC,eAAe,EAAe,OAAO,EAAC,MAAM,YAAY,CAAA;AACnG,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAA;AAMtC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,KAAK;CACb,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;IAClC,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACtB,CAAC;AACH,CAAC,CAAA;AAID,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,iCAAmB,CAAA;AACrB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AA2CD,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAGjC;IAFX,YACE,OAAe,EACN,oBAAyC;QAElD,KAAK,CAAC,OAAO,CAAC,CAAA;QAFL,yBAAoB,GAApB,oBAAoB,CAAqB;IAGpD,CAAC;CACF;AAED,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;IACzB,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,IAAI,aAAqB,CAAA;IAEzB,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;QACtC,iEAAiE;QACjE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,MAAM;YAAE,OAAM;QAE9C,sDAAsD;QACtD,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC3C,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,gCAAgC,CAAC,CAAA;YAEvE,mDAAmD;YACnD,IAAI,CAAC,EAAE,CAAC;gBACN,aAAa,GAAG,CAAC,CAAA;YACnB,CAAC;YAED,yCAAyC;YACzC,UAAU,GAAG,EAAE,CAAA;YACf,YAAY,GAAG,CAAC,CAAA;QAClB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,UAAU,GAAG,GAAG,CAAA;YAChB,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEzB,WAAW,EAAE,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC,CAAC,EAAE,CAAA;AAEJ,MAAM,OAAO,aAAc,SAAQ,OAAO;IAI/B;IACA;IAJF,eAAe,CAAkB;IAExC,YACS,MAAe,EACf,MAAyB;QAEhC,KAAK,EAAE,CAAA;QAHA,WAAM,GAAN,MAAM,CAAS;QACf,WAAM,GAAN,MAAM,CAAmB;IAGlC,CAAC;IAED,2DAA2D;IAC3D,oDAAoD;IACpD,KAAK,GAAG,KAAK,IAAI,EAAE;QACjB,IAAI,IAAI,CAAC,eAAe;YAAE,OAAM;QAEhC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAE5C,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,MAAM,CAAA;QACrC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;QAChD,MAAM,OAAO,GAAG,CAAC,EAAC,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAC,CAAC,CAAA;QAE9D,OAAO,CAAC;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;YACnC,OAAO,EAAE,KAAK,EAAE,KAAmB,EAAE,GAAW,EAAE,EAAE;gBAClD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;gBACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;gBAEvD,4EAA4E;gBAC5E,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACnB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;gBACnB,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAC,GAAG,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAkB,CAAC,CAAA;YAC3E,CAAC;YACD,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;YAClC,CAAC;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,IAAI,GAAG,GAAG,EAAE;QACV,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAA;QAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC3B,CAAC,CAAA;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,OAAO;IAK7B;IACA;IALF,UAAU,GAAG,KAAK,CAAA;IAClB,KAAK,GAAmB,EAAE,CAAA;IAEjC,YACS,MAAe,EACf,MAAyB;QAEhC,KAAK,EAAE,CAAA;QAHA,WAAM,GAAN,MAAM,CAAS;QACf,WAAM,GAAN,MAAM,CAAmB;IAGlC,CAAC;IACD,wEAAwE;IACjE,IAAI,GAAG,KAAK,EAAE,OAAqB,EAAE,EAAE;QAC5C,MAAM,EAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,OAAO,CAAA;QACpC,MAAM,EAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,EAAC,GAAG,IAAI,CAAC,MAAM,CAAA;QAExE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAA;QACpD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC3E,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAAC,CAAC,CAAA;QACjF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE9C,OAAO,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC,CAAA;QAEjC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,gCAAgC;IACzB,OAAO,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QAEtB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAEzC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC1B,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACzB,CAAC;IACH,CAAC,CAAA;IAED,gDAAgD;IAChD,OAAO,GAAG,CAAC,OAAqB,EAAE,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC,CAAA;IAED,IAAI,GAAG,GAAG,EAAE;QACV,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC3B,CAAC,CAAA;CACF;AAED,oCAAoC;AACpC,MAAM,OAAO,YAAY;IAKZ;IACA;IALX,EAAE,GAAG,QAAQ,EAAE,CAAA;IACf,OAAO,GAAG,KAAK,EAAmD,CAAA;IAElE,YACW,MAAc,EACd,MAAgB;QADhB,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAU;IACxB,CAAC;IAEJ,uFAAuF;IACvF,MAAM,GAAG,KAAK,EAAE,QAAuB,EAAE,EAAE;QACzC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;QAEtB,MAAM,SAAS,GAAG,CAAC,QAAuB,EAAE,EAAE;YAC5C,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC5B,OAAM;YACR,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACnC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAA;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAkC,CAAC,CAAA;gBACzD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAmC,CAAC,CAAA;gBAC3D,CAAC;gBAED,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC,CAAA;QAED,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAC5C,CAAC,CAAA;IAED,wCAAwC;IACxC,IAAI,GAAG,KAAK,EAAE,MAAmB,EAAE,EAAE;QACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC,CAAA;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,OAAO;IAKnB;IAJZ,MAAM,CAAS;IACf,MAAM,CAAa;IACnB,QAAQ,CAAe;IAE9B,YAAmB,MAAyB;QAC1C,KAAK,EAAE,CAAA;QADU,WAAM,GAAN,MAAM,CAAmB;QAG1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;IACrC,CAAC;IAED,yBAAyB;IAEzB,MAAM,CAAC,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;QACtC,IAAI,aAAa,GAAG,EAAE,CAAA;QACtB,IAAI,YAAY,GAAG,EAAE,CAAA;QACrB,IAAI,MAAM,GAAa,EAAE,CAAA;QAEzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACvE,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;YAE5D,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YACvC,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC/D,aAAa,GAAG,cAAc,CAAA;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,OAAO,EAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAC,CAAA;IAC9C,CAAC,CAAA;IAED,MAAM,CAAC,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE;QACrC,MAAM,YAAY,GAAG,UAAU,EAAE,CAAA;QACjC,MAAM,EAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAC,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QAE7E,OAAO,IAAI,WAAW,CAAC;YACrB,MAAM;YACN,YAAY;YACZ,YAAY;YACZ,aAAa;SACd,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,6BAA6B;IAE7B,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAE5D,UAAU,GAAG,GAAG,EAAE;QAChB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAExD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAS,EAAE,EAAE;YACvC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,YAAY,GAAG,GAAG,EAAE;QAClB,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE5D,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE;YAC5C,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;IAED,oBAAoB;IAEpB,OAAO,GAAG,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC,CAAA;IAED,kCAAkC;IAElC,OAAO,GAAG,KAAK,EAAE,MAAc,EAAE,MAAgB,EAAE,EAAE;QACnD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAEhD,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE/B,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,IAAI,GAAG,KAAK,EAAE,MAAc,EAAE,MAAgB,EAAE,EAAE;QAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAA;QAEtC,OAAO,QAAQ,CAAC,MAAM,CAAA;IACxB,CAAC,CAAA;IAED,sCAAsC;IAEtC,mBAAmB,GAAG,KAAK,EAAE,OAA+B,EAAE,EAAE,EAAE;QAChE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAC,GAAG,IAAI,EAAE,MAAM,EAAC,CAAC,CAAA;QAErD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,kBAAkB,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;IAC9D,CAAC,CAAA;IAED,mBAAmB,GAAG,KAAK,EAAE,GAAW,EAAE,MAAmB,EAAE,EAAE;QAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,SAAS,GAAG,KAAK,EAAE,QAAuB,EAAE,EAAE;gBAClD,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU;oBAAE,OAAM;gBAE1C,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAO,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAA;oBAEhD,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;wBAC9B,OAAO,CAAC,IAAI,CACV,kFAAkF,CACnF,CAAA;oBACH,CAAC;oBAED,OAAO,CAAC,QAAmC,CAAC,CAAA;gBAC9C,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAClB,CAAC;gBAED,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YAED,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;YAClD,CAAC,CAAA;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;YAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACpC,MAAM,CAAC,SAAS,CAAC,CAAA;gBACjB,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CACF,CAAA;QAED,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,uCAAuC;IAEvC,YAAY,GAAG,GAAG,EAAE;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QAEpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IACzE,CAAC,CAAA;IAED,wBAAwB;IAExB,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAElC,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;IAEpD,aAAa,GAAG,CAAC,QAAgB,EAAE,MAAc,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CAC/D,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;IAE5D,OAAO,GAAG,KAAK,EAAE,aAAa,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAA;QAE3F,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,SAAS,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE,CACxC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAEpE,YAAY,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;IAEzF,YAAY,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;IAEzF,YAAY,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;IAEzF,YAAY,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;IAEzF,YAAY,GAAG,KAAK,IAAI,EAAE;QACxB,MAAM,MAAM,GAAG,SAAS,CAAW,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAA;QAExE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAElD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAA;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAA;YAEjC,0CAA0C;YAC1C,UAAU,CAAC,GAAG,EAAE;gBACd,SAAS,CAAC,IAAI,EAAE,CAAA;gBAChB,WAAW,CAAC,IAAI,EAAE,CAAA;YACpB,CAAC,EAAE,KAAK,CAAC,CAAA;YAET,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACrC,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;IAC3B,CAAC,CAAA;;AAGH,MAAM,OAAO,WAAW;IAKH;IAJnB,MAAM,CAAS;IACf,KAAK,CAA0B;IAC/B,KAAK,CAA0B;IAE/B,YAAmB,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;QACpC,IAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SAClC,CAAA;QAED,IAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SAClC,CAAA;IACH,CAAC;IAED,SAAS,GAAG,KAAK,IAAI,EAAE;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;QAChD,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC,CAAA;IAED,IAAI,GAAG,CAAC,QAAsB,EAAE,UAAuB,EAAE,EAAE,EAAE,CAC3D,eAAe,CACb,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAC9E,OAAO,CACR,CAAA;IAEH,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;CAC5C"}
@@ -0,0 +1,20 @@
1
+ import { AppInfo } from "nostr-signer-capacitor-plugin";
2
+ import { SignedEvent, StampedEvent } from "@welshman/util";
3
+ import { SignOptions, ISigner } from "../util.js";
4
+ export declare const getNip55: () => Promise<AppInfo[]>;
5
+ export declare class Nip55Signer implements ISigner {
6
+ #private;
7
+ readonly packageName: string;
8
+ constructor(packageName: string, pubkey?: string);
9
+ getPubkey: () => Promise<string>;
10
+ sign: (template: StampedEvent, options?: SignOptions) => Promise<SignedEvent>;
11
+ nip04: {
12
+ encrypt: (recipientPubKey: string, message: string) => Promise<string>;
13
+ decrypt: (senderPubKey: string, message: string) => Promise<string>;
14
+ };
15
+ nip44: {
16
+ encrypt: (recipientPubKey: string, message: string) => Promise<string>;
17
+ decrypt: (senderPubKey: string, message: string) => Promise<string>;
18
+ };
19
+ }
20
+ //# sourceMappingURL=nip55.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip55.d.ts","sourceRoot":"","sources":["../../../../../signer/src/signers/nip55.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAC,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAC,WAAW,EAAE,YAAY,EAAoB,MAAM,gBAAgB,CAAA;AAC3E,OAAO,EAAkB,WAAW,EAAE,OAAO,EAAC,MAAM,YAAY,CAAA;AAEhE,eAAO,MAAM,QAAQ,QAAa,OAAO,CAAC,OAAO,EAAE,CAGlD,CAAA;AAED,qBAAa,WAAY,YAAW,OAAO;;IAKvC,QAAQ,CAAC,WAAW,EAAE,MAAM;gBAAnB,WAAW,EAAE,MAAM,EAC5B,MAAM,CAAC,EAAE,MAAM;IAcjB,SAAS,QAAa,OAAO,CAAC,MAAM,CAAC,CAUpC;IAED,IAAI,GAAI,UAAU,YAAY,EAAE,UAAS,WAAgB,KAAG,OAAO,CAAC,WAAW,CAAC,CAiB7E;IAEH,KAAK;mCAC8B,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;gCAiB5C,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;MAiBxE;IAED,KAAK;mCAC8B,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;gCAiB5C,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;MAiBxE;CACF"}