@welshman/app 0.1.1 → 0.2.0

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 (402) hide show
  1. package/LICENSE +21 -0
  2. package/dist/app/src/commands.d.ts +7 -0
  3. package/dist/app/src/commands.d.ts.map +1 -0
  4. package/{build → dist/app}/src/commands.js +13 -7
  5. package/dist/app/src/commands.js.map +1 -0
  6. package/{build → dist/app}/src/context.d.ts +1 -0
  7. package/dist/app/src/context.d.ts.map +1 -0
  8. package/dist/app/src/context.js.map +1 -0
  9. package/{build → dist/app}/src/core.d.ts +3 -1
  10. package/dist/app/src/core.d.ts.map +1 -0
  11. package/{build → dist/app}/src/core.js +4 -18
  12. package/dist/app/src/core.js.map +1 -0
  13. package/dist/app/src/feeds.d.ts +9 -0
  14. package/dist/app/src/feeds.d.ts.map +1 -0
  15. package/dist/app/src/feeds.js +41 -0
  16. package/dist/app/src/feeds.js.map +1 -0
  17. package/dist/app/src/follows.d.ts +4 -0
  18. package/dist/app/src/follows.d.ts.map +1 -0
  19. package/dist/app/src/follows.js +16 -0
  20. package/dist/app/src/follows.js.map +1 -0
  21. package/{build → dist/app}/src/handles.d.ts +3 -3
  22. package/dist/app/src/handles.d.ts.map +1 -0
  23. package/{build → dist/app}/src/handles.js +6 -4
  24. package/dist/app/src/handles.js.map +1 -0
  25. package/{build → dist/app}/src/index.d.ts +2 -3
  26. package/dist/app/src/index.d.ts.map +1 -0
  27. package/dist/app/src/index.js +63 -0
  28. package/dist/app/src/index.js.map +1 -0
  29. package/dist/app/src/mutes.d.ts +4 -0
  30. package/dist/app/src/mutes.d.ts.map +1 -0
  31. package/{build → dist/app}/src/mutes.js +3 -11
  32. package/dist/app/src/mutes.js.map +1 -0
  33. package/dist/app/src/pins.d.ts +4 -0
  34. package/dist/app/src/pins.d.ts.map +1 -0
  35. package/dist/app/src/pins.js +16 -0
  36. package/dist/app/src/pins.js.map +1 -0
  37. package/{build → dist/app}/src/plaintext.d.ts +1 -0
  38. package/dist/app/src/plaintext.d.ts.map +1 -0
  39. package/dist/app/src/plaintext.js.map +1 -0
  40. package/{build → dist/app}/src/profiles.d.ts +3 -3
  41. package/dist/app/src/profiles.d.ts.map +1 -0
  42. package/dist/app/src/profiles.js +21 -0
  43. package/dist/app/src/profiles.js.map +1 -0
  44. package/dist/app/src/relaySelections.d.ts +15 -0
  45. package/dist/app/src/relaySelections.d.ts.map +1 -0
  46. package/dist/app/src/relaySelections.js +53 -0
  47. package/dist/app/src/relaySelections.js.map +1 -0
  48. package/{build → dist/app}/src/relays.d.ts +3 -1
  49. package/dist/app/src/relays.d.ts.map +1 -0
  50. package/{build → dist/app}/src/relays.js +41 -14
  51. package/dist/app/src/relays.js.map +1 -0
  52. package/{build → dist/app}/src/search.d.ts +1 -0
  53. package/dist/app/src/search.d.ts.map +1 -0
  54. package/{build → dist/app}/src/search.js +1 -1
  55. package/dist/app/src/search.js.map +1 -0
  56. package/{build → dist/app}/src/session.d.ts +26 -7
  57. package/dist/app/src/session.d.ts.map +1 -0
  58. package/{build → dist/app}/src/session.js +50 -3
  59. package/dist/app/src/session.js.map +1 -0
  60. package/dist/app/src/storage.d.ts +22 -0
  61. package/dist/app/src/storage.d.ts.map +1 -0
  62. package/dist/app/src/storage.js +80 -0
  63. package/dist/app/src/storage.js.map +1 -0
  64. package/dist/app/src/storageAdapters.d.ts +88 -0
  65. package/dist/app/src/storageAdapters.d.ts.map +1 -0
  66. package/dist/app/src/storageAdapters.js +174 -0
  67. package/dist/app/src/storageAdapters.js.map +1 -0
  68. package/{build → dist/app}/src/sync.d.ts +1 -0
  69. package/dist/app/src/sync.d.ts.map +1 -0
  70. package/{build → dist/app}/src/sync.js +7 -9
  71. package/dist/app/src/sync.js.map +1 -0
  72. package/{build → dist/app}/src/tags.d.ts +1 -0
  73. package/dist/app/src/tags.d.ts.map +1 -0
  74. package/{build → dist/app}/src/tags.js +11 -11
  75. package/dist/app/src/tags.js.map +1 -0
  76. package/dist/app/src/thunk.d.ts +48 -0
  77. package/dist/app/src/thunk.d.ts.map +1 -0
  78. package/dist/app/src/thunk.js +225 -0
  79. package/dist/app/src/thunk.js.map +1 -0
  80. package/{build → dist/app}/src/topics.d.ts +1 -0
  81. package/dist/app/src/topics.d.ts.map +1 -0
  82. package/dist/app/src/topics.js.map +1 -0
  83. package/{build → dist/app}/src/user.d.ts +1 -0
  84. package/dist/app/src/user.d.ts.map +1 -0
  85. package/dist/app/src/user.js.map +1 -0
  86. package/{build → dist/app}/src/util.d.ts +1 -0
  87. package/dist/app/src/util.d.ts.map +1 -0
  88. package/dist/app/src/util.js.map +1 -0
  89. package/{build → dist/app}/src/wot.d.ts +1 -0
  90. package/dist/app/src/wot.d.ts.map +1 -0
  91. package/dist/app/src/wot.js.map +1 -0
  92. package/dist/app/src/zappers.d.ts +6 -0
  93. package/dist/app/src/zappers.d.ts.map +1 -0
  94. package/{build → dist/app}/src/zappers.js +3 -3
  95. package/dist/app/src/zappers.js.map +1 -0
  96. package/dist/dvm/src/handler.d.ts +30 -0
  97. package/dist/dvm/src/handler.d.ts.map +1 -0
  98. package/dist/dvm/src/handler.js +84 -0
  99. package/dist/dvm/src/handler.js.map +1 -0
  100. package/dist/dvm/src/index.d.ts +3 -0
  101. package/dist/dvm/src/index.d.ts.map +1 -0
  102. package/dist/dvm/src/index.js +3 -0
  103. package/dist/dvm/src/index.js.map +1 -0
  104. package/dist/dvm/src/request.d.ts +14 -0
  105. package/dist/dvm/src/request.d.ts.map +1 -0
  106. package/dist/dvm/src/request.js +29 -0
  107. package/dist/dvm/src/request.js.map +1 -0
  108. package/dist/feeds/src/compiler.d.ts +49 -0
  109. package/dist/feeds/src/compiler.d.ts.map +1 -0
  110. package/dist/feeds/src/compiler.js +246 -0
  111. package/dist/feeds/src/compiler.js.map +1 -0
  112. package/dist/feeds/src/controller.d.ts +23 -0
  113. package/dist/feeds/src/controller.d.ts.map +1 -0
  114. package/dist/feeds/src/controller.js +212 -0
  115. package/dist/feeds/src/controller.js.map +1 -0
  116. package/dist/feeds/src/core.d.ts +76 -0
  117. package/dist/feeds/src/core.d.ts.map +1 -0
  118. package/dist/feeds/src/core.js +28 -0
  119. package/dist/feeds/src/core.js.map +1 -0
  120. package/dist/feeds/src/display.d.ts +21 -0
  121. package/dist/feeds/src/display.d.ts.map +1 -0
  122. package/dist/feeds/src/display.js +136 -0
  123. package/dist/feeds/src/display.js.map +1 -0
  124. package/dist/feeds/src/index.d.ts +7 -0
  125. package/dist/feeds/src/index.d.ts.map +1 -0
  126. package/dist/feeds/src/index.js +7 -0
  127. package/dist/feeds/src/index.js.map +1 -0
  128. package/dist/feeds/src/request.d.ts +22 -0
  129. package/dist/feeds/src/request.d.ts.map +1 -0
  130. package/dist/feeds/src/request.js +61 -0
  131. package/dist/feeds/src/request.js.map +1 -0
  132. package/dist/feeds/src/utils.d.ts +56 -0
  133. package/dist/feeds/src/utils.d.ts.map +1 -0
  134. package/dist/feeds/src/utils.js +152 -0
  135. package/dist/feeds/src/utils.js.map +1 -0
  136. package/dist/feeds/src/validate.d.ts +24 -0
  137. package/dist/feeds/src/validate.d.ts.map +1 -0
  138. package/dist/feeds/src/validate.js +137 -0
  139. package/dist/feeds/src/validate.js.map +1 -0
  140. package/dist/lib/src/Deferred.d.ts +21 -0
  141. package/dist/lib/src/Deferred.d.ts.map +1 -0
  142. package/dist/lib/src/Deferred.js +21 -0
  143. package/dist/lib/src/Deferred.js.map +1 -0
  144. package/dist/lib/src/Emitter.d.ts +14 -0
  145. package/dist/lib/src/Emitter.d.ts.map +1 -0
  146. package/dist/lib/src/Emitter.js +18 -0
  147. package/dist/lib/src/Emitter.js.map +1 -0
  148. package/dist/lib/src/LRUCache.d.ts +42 -0
  149. package/dist/lib/src/LRUCache.d.ts.map +1 -0
  150. package/dist/lib/src/LRUCache.js +62 -0
  151. package/dist/lib/src/LRUCache.js.map +1 -0
  152. package/dist/lib/src/TaskQueue.d.ts +20 -0
  153. package/dist/lib/src/TaskQueue.d.ts.map +1 -0
  154. package/dist/lib/src/TaskQueue.js +57 -0
  155. package/dist/lib/src/TaskQueue.js.map +1 -0
  156. package/dist/lib/src/Tools.d.ts +727 -0
  157. package/dist/lib/src/Tools.d.ts.map +1 -0
  158. package/dist/lib/src/Tools.js +1224 -0
  159. package/dist/lib/src/Tools.js.map +1 -0
  160. package/dist/lib/src/index.d.ts +7 -0
  161. package/dist/lib/src/index.d.ts.map +1 -0
  162. package/dist/lib/src/index.js +7 -0
  163. package/dist/lib/src/index.js.map +1 -0
  164. package/dist/lib/src/normalize-url/index.d.ts +286 -0
  165. package/dist/lib/src/normalize-url/index.d.ts.map +1 -0
  166. package/dist/lib/src/normalize-url/index.js +252 -0
  167. package/dist/lib/src/normalize-url/index.js.map +1 -0
  168. package/dist/net/src/adapter.d.ts +44 -0
  169. package/dist/net/src/adapter.d.ts.map +1 -0
  170. package/dist/net/src/adapter.js +91 -0
  171. package/dist/net/src/adapter.js.map +1 -0
  172. package/dist/net/src/auth.d.ts +43 -0
  173. package/dist/net/src/auth.d.ts.map +1 -0
  174. package/dist/net/src/auth.js +114 -0
  175. package/dist/net/src/auth.js.map +1 -0
  176. package/dist/net/src/context.d.ts +13 -0
  177. package/dist/net/src/context.d.ts.map +1 -0
  178. package/dist/net/src/context.js +10 -0
  179. package/dist/net/src/context.js.map +1 -0
  180. package/dist/net/src/diff.d.ts +54 -0
  181. package/dist/net/src/diff.d.ts.map +1 -0
  182. package/dist/net/src/diff.js +146 -0
  183. package/dist/net/src/diff.js.map +1 -0
  184. package/dist/net/src/index.d.ts +13 -0
  185. package/dist/net/src/index.d.ts.map +1 -0
  186. package/dist/net/src/index.js +13 -0
  187. package/dist/net/src/index.js.map +1 -0
  188. package/dist/net/src/message.d.ts +60 -0
  189. package/dist/net/src/message.d.ts.map +1 -0
  190. package/dist/net/src/message.js +35 -0
  191. package/dist/net/src/message.js.map +1 -0
  192. package/dist/net/src/negentropy.d.ts +48 -0
  193. package/dist/net/src/negentropy.d.ts.map +1 -0
  194. package/dist/net/src/negentropy.js +536 -0
  195. package/dist/net/src/negentropy.js.map +1 -0
  196. package/dist/net/src/policy.d.ts +40 -0
  197. package/dist/net/src/policy.d.ts.map +1 -0
  198. package/dist/net/src/policy.js +180 -0
  199. package/dist/net/src/policy.js.map +1 -0
  200. package/dist/net/src/pool.d.ts +21 -0
  201. package/dist/net/src/pool.d.ts.map +1 -0
  202. package/dist/net/src/pool.js +67 -0
  203. package/dist/net/src/pool.js.map +1 -0
  204. package/dist/net/src/publish.d.ts +44 -0
  205. package/dist/net/src/publish.d.ts.map +1 -0
  206. package/dist/net/src/publish.js +96 -0
  207. package/dist/net/src/publish.js.map +1 -0
  208. package/dist/net/src/request.d.ts +55 -0
  209. package/dist/net/src/request.d.ts.map +1 -0
  210. package/dist/net/src/request.js +212 -0
  211. package/dist/net/src/request.js.map +1 -0
  212. package/dist/net/src/socket.d.ts +43 -0
  213. package/dist/net/src/socket.d.ts.map +1 -0
  214. package/dist/net/src/socket.js +115 -0
  215. package/dist/net/src/socket.js.map +1 -0
  216. package/dist/net/src/tracker.d.ts +16 -0
  217. package/dist/net/src/tracker.d.ts.map +1 -0
  218. package/dist/net/src/tracker.js +63 -0
  219. package/dist/net/src/tracker.js.map +1 -0
  220. package/dist/net/src/util.d.ts +2 -0
  221. package/dist/net/src/util.d.ts.map +1 -0
  222. package/dist/net/src/util.js +2 -0
  223. package/dist/net/src/util.js.map +1 -0
  224. package/dist/relay/src/index.d.ts +3 -0
  225. package/dist/relay/src/index.d.ts.map +1 -0
  226. package/dist/relay/src/index.js +3 -0
  227. package/dist/relay/src/index.js.map +1 -0
  228. package/dist/relay/src/relay.d.ts +13 -0
  229. package/dist/relay/src/relay.d.ts.map +1 -0
  230. package/dist/relay/src/relay.js +48 -0
  231. package/dist/relay/src/relay.js.map +1 -0
  232. package/dist/relay/src/repository.d.ts +63 -0
  233. package/dist/relay/src/repository.d.ts.map +1 -0
  234. package/dist/relay/src/repository.js +270 -0
  235. package/dist/relay/src/repository.js.map +1 -0
  236. package/dist/signer/src/index.d.ts +7 -0
  237. package/dist/signer/src/index.d.ts.map +1 -0
  238. package/dist/signer/src/index.js +7 -0
  239. package/dist/signer/src/index.js.map +1 -0
  240. package/dist/signer/src/nip59.d.ts +27 -0
  241. package/dist/signer/src/nip59.d.ts.map +1 -0
  242. package/dist/signer/src/nip59.js +68 -0
  243. package/dist/signer/src/nip59.js.map +1 -0
  244. package/dist/signer/src/signers/nip01.d.ts +28 -0
  245. package/dist/signer/src/signers/nip01.d.ts.map +1 -0
  246. package/dist/signer/src/signers/nip01.js +22 -0
  247. package/dist/signer/src/signers/nip01.js.map +1 -0
  248. package/dist/signer/src/signers/nip07.d.ts +23 -0
  249. package/dist/signer/src/signers/nip07.d.ts.map +1 -0
  250. package/dist/signer/src/signers/nip07.js +30 -0
  251. package/dist/signer/src/signers/nip07.js.map +1 -0
  252. package/dist/signer/src/signers/nip46.d.ts +108 -0
  253. package/dist/signer/src/signers/nip46.d.ts.map +1 -0
  254. package/dist/signer/src/signers/nip46.js +349 -0
  255. package/dist/signer/src/signers/nip46.js.map +1 -0
  256. package/dist/signer/src/signers/nip55.d.ts +19 -0
  257. package/dist/signer/src/signers/nip55.d.ts.map +1 -0
  258. package/dist/signer/src/signers/nip55.js +134 -0
  259. package/dist/signer/src/signers/nip55.js.map +1 -0
  260. package/dist/signer/src/util.d.ts +65 -0
  261. package/dist/signer/src/util.d.ts.map +1 -0
  262. package/dist/signer/src/util.js +32 -0
  263. package/dist/signer/src/util.js.map +1 -0
  264. package/dist/store/src/collection.d.ts +32 -0
  265. package/dist/store/src/collection.d.ts.map +1 -0
  266. package/{build → dist/store}/src/collection.js +33 -11
  267. package/dist/store/src/collection.js.map +1 -0
  268. package/dist/store/src/custom.d.ts +10 -0
  269. package/dist/store/src/custom.d.ts.map +1 -0
  270. package/dist/store/src/custom.js +41 -0
  271. package/dist/store/src/custom.js.map +1 -0
  272. package/dist/store/src/getter.d.ts +11 -0
  273. package/dist/store/src/getter.d.ts.map +1 -0
  274. package/dist/store/src/getter.js +11 -0
  275. package/dist/store/src/getter.js.map +1 -0
  276. package/dist/store/src/index.d.ts +7 -0
  277. package/dist/store/src/index.d.ts.map +1 -0
  278. package/dist/store/src/index.js +7 -0
  279. package/dist/store/src/index.js.map +1 -0
  280. package/dist/store/src/repository.d.ts +16 -0
  281. package/dist/store/src/repository.d.ts.map +1 -0
  282. package/dist/store/src/repository.js +100 -0
  283. package/dist/store/src/repository.js.map +1 -0
  284. package/dist/store/src/synced.d.ts +2 -0
  285. package/dist/store/src/synced.d.ts.map +1 -0
  286. package/dist/store/src/synced.js +9 -0
  287. package/dist/store/src/synced.js.map +1 -0
  288. package/dist/store/src/throttle.d.ts +3 -0
  289. package/dist/store/src/throttle.d.ts.map +1 -0
  290. package/dist/store/src/throttle.js +9 -0
  291. package/dist/store/src/throttle.js.map +1 -0
  292. package/dist/tsconfig.build.tsbuildinfo +1 -0
  293. package/dist/util/src/Address.d.ts +21 -0
  294. package/dist/util/src/Address.d.ts.map +1 -0
  295. package/dist/util/src/Address.js +43 -0
  296. package/dist/util/src/Address.js.map +1 -0
  297. package/dist/util/src/Encryptable.d.ts +34 -0
  298. package/dist/util/src/Encryptable.d.ts.map +1 -0
  299. package/dist/util/src/Encryptable.js +52 -0
  300. package/dist/util/src/Encryptable.js.map +1 -0
  301. package/dist/util/src/Events.d.ts +77 -0
  302. package/dist/util/src/Events.d.ts.map +1 -0
  303. package/dist/util/src/Events.js +63 -0
  304. package/dist/util/src/Events.js.map +1 -0
  305. package/dist/util/src/Filters.d.ts +48 -0
  306. package/dist/util/src/Filters.d.ts.map +1 -0
  307. package/dist/util/src/Filters.js +185 -0
  308. package/dist/util/src/Filters.js.map +1 -0
  309. package/dist/util/src/Handler.d.ts +17 -0
  310. package/dist/util/src/Handler.d.ts.map +1 -0
  311. package/dist/util/src/Handler.js +33 -0
  312. package/dist/util/src/Handler.js.map +1 -0
  313. package/dist/util/src/Kinds.d.ts +159 -0
  314. package/dist/util/src/Kinds.d.ts.map +1 -0
  315. package/dist/util/src/Kinds.js +160 -0
  316. package/dist/util/src/Kinds.js.map +1 -0
  317. package/dist/util/src/Links.d.ts +3 -0
  318. package/dist/util/src/Links.d.ts.map +1 -0
  319. package/dist/util/src/Links.js +3 -0
  320. package/dist/util/src/Links.js.map +1 -0
  321. package/dist/util/src/List.d.ts +34 -0
  322. package/dist/util/src/List.d.ts.map +1 -0
  323. package/dist/util/src/List.js +74 -0
  324. package/dist/util/src/List.js.map +1 -0
  325. package/dist/util/src/Profile.d.ts +26 -0
  326. package/dist/util/src/Profile.d.ts.map +1 -0
  327. package/dist/util/src/Profile.js +50 -0
  328. package/dist/util/src/Profile.js.map +1 -0
  329. package/dist/util/src/Relay.d.ts +32 -0
  330. package/dist/util/src/Relay.d.ts.map +1 -0
  331. package/dist/util/src/Relay.js +49 -0
  332. package/dist/util/src/Relay.js.map +1 -0
  333. package/dist/util/src/Tags.d.ts +32 -0
  334. package/dist/util/src/Tags.d.ts.map +1 -0
  335. package/dist/util/src/Tags.js +74 -0
  336. package/dist/util/src/Tags.js.map +1 -0
  337. package/dist/util/src/Zaps.d.ts +20 -0
  338. package/dist/util/src/Zaps.d.ts.map +1 -0
  339. package/dist/util/src/Zaps.js +93 -0
  340. package/dist/util/src/Zaps.js.map +1 -0
  341. package/dist/util/src/index.d.ts +13 -0
  342. package/dist/util/src/index.d.ts.map +1 -0
  343. package/dist/util/src/index.js +13 -0
  344. package/dist/util/src/index.js.map +1 -0
  345. package/package.json +24 -26
  346. package/README.md +0 -73
  347. package/build/src/collection.d.ts +0 -12
  348. package/build/src/collection.js.map +0 -1
  349. package/build/src/commands.d.ts +0 -42
  350. package/build/src/commands.js.map +0 -1
  351. package/build/src/context.js.map +0 -1
  352. package/build/src/core.js.map +0 -1
  353. package/build/src/feeds.d.ts +0 -10
  354. package/build/src/feeds.js +0 -93
  355. package/build/src/feeds.js.map +0 -1
  356. package/build/src/follows.d.ts +0 -4
  357. package/build/src/follows.js +0 -24
  358. package/build/src/follows.js.map +0 -1
  359. package/build/src/freshness.d.ts +0 -10
  360. package/build/src/freshness.js +0 -14
  361. package/build/src/freshness.js.map +0 -1
  362. package/build/src/handles.js.map +0 -1
  363. package/build/src/index.js +0 -27
  364. package/build/src/index.js.map +0 -1
  365. package/build/src/mutes.d.ts +0 -4
  366. package/build/src/mutes.js.map +0 -1
  367. package/build/src/pins.d.ts +0 -4
  368. package/build/src/pins.js +0 -24
  369. package/build/src/pins.js.map +0 -1
  370. package/build/src/plaintext.js.map +0 -1
  371. package/build/src/profiles.js +0 -30
  372. package/build/src/profiles.js.map +0 -1
  373. package/build/src/relaySelections.d.ts +0 -9
  374. package/build/src/relaySelections.js +0 -51
  375. package/build/src/relaySelections.js.map +0 -1
  376. package/build/src/relays.js.map +0 -1
  377. package/build/src/router.d.ts +0 -197
  378. package/build/src/router.js +0 -272
  379. package/build/src/router.js.map +0 -1
  380. package/build/src/search.js.map +0 -1
  381. package/build/src/session.js.map +0 -1
  382. package/build/src/storage.d.ts +0 -70
  383. package/build/src/storage.js +0 -187
  384. package/build/src/storage.js.map +0 -1
  385. package/build/src/sync.js.map +0 -1
  386. package/build/src/tags.js.map +0 -1
  387. package/build/src/thunk.d.ts +0 -61
  388. package/build/src/thunk.js +0 -169
  389. package/build/src/thunk.js.map +0 -1
  390. package/build/src/topics.js.map +0 -1
  391. package/build/src/user.js.map +0 -1
  392. package/build/src/util.js.map +0 -1
  393. package/build/src/wot.js.map +0 -1
  394. package/build/src/zappers.d.ts +0 -6
  395. package/build/src/zappers.js.map +0 -1
  396. package/build/tsconfig.tsbuildinfo +0 -1
  397. /package/{build → dist/app}/src/context.js +0 -0
  398. /package/{build → dist/app}/src/plaintext.js +0 -0
  399. /package/{build → dist/app}/src/topics.js +0 -0
  400. /package/{build → dist/app}/src/user.js +0 -0
  401. /package/{build → dist/app}/src/util.js +0 -0
  402. /package/{build → dist/app}/src/wot.js +0 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Jon Staab
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,7 @@
1
+ export declare const unfollow: (value: string) => Promise<import("./thunk.js").Thunk>;
2
+ export declare const follow: (tag: string[]) => Promise<import("./thunk.js").Thunk>;
3
+ export declare const unmute: (value: string) => Promise<import("./thunk.js").Thunk>;
4
+ export declare const mute: (tag: string[]) => Promise<import("./thunk.js").Thunk>;
5
+ export declare const unpin: (value: string) => Promise<import("./thunk.js").Thunk>;
6
+ export declare const pin: (tag: string[]) => Promise<import("./thunk.js").Thunk>;
7
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/commands.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,QAAQ,GAAU,OAAO,MAAM,wCAM3C,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,KAAK,MAAM,EAAE,wCAMzC,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,OAAO,MAAM,wCAMzC,CAAA;AAED,eAAO,MAAM,IAAI,GAAU,KAAK,MAAM,EAAE,wCAMvC,CAAA;AAED,eAAO,MAAM,KAAK,GAAU,OAAO,MAAM,wCAMxC,CAAA;AAED,eAAO,MAAM,GAAG,GAAU,KAAK,MAAM,EAAE,wCAMtC,CAAA"}
@@ -1,37 +1,43 @@
1
1
  import { get } from "svelte/store";
2
2
  import { addToListPublicly, removeFromList, makeList, FOLLOWS, MUTES, PINS } from "@welshman/util";
3
+ import { Router, addMaximalFallbacks } from "@welshman/router";
3
4
  import { userFollows, userMutes, userPins } from "./user.js";
4
5
  import { nip44EncryptToSelf } from "./session.js";
5
6
  import { publishThunk } from "./thunk.js";
6
- import { Router } from "./router.js";
7
7
  export const unfollow = async (value) => {
8
8
  const list = get(userFollows) || makeList({ kind: FOLLOWS });
9
9
  const event = await removeFromList(list, value).reconcile(nip44EncryptToSelf);
10
- return publishThunk({ event, relays: Router.get().FromUser().getUrls() });
10
+ const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
11
+ return publishThunk({ event, relays });
11
12
  };
12
13
  export const follow = async (tag) => {
13
14
  const list = get(userFollows) || makeList({ kind: FOLLOWS });
14
15
  const event = await addToListPublicly(list, tag).reconcile(nip44EncryptToSelf);
15
- return publishThunk({ event, relays: Router.get().FromUser().getUrls() });
16
+ const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
17
+ return publishThunk({ event, relays });
16
18
  };
17
19
  export const unmute = async (value) => {
18
20
  const list = get(userMutes) || makeList({ kind: MUTES });
19
21
  const event = await removeFromList(list, value).reconcile(nip44EncryptToSelf);
20
- return publishThunk({ event, relays: Router.get().FromUser().getUrls() });
22
+ const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
23
+ return publishThunk({ event, relays });
21
24
  };
22
25
  export const mute = async (tag) => {
23
26
  const list = get(userMutes) || makeList({ kind: MUTES });
24
27
  const event = await addToListPublicly(list, tag).reconcile(nip44EncryptToSelf);
25
- return publishThunk({ event, relays: Router.get().FromUser().getUrls() });
28
+ const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
29
+ return publishThunk({ event, relays });
26
30
  };
27
31
  export const unpin = async (value) => {
28
32
  const list = get(userPins) || makeList({ kind: PINS });
29
33
  const event = await removeFromList(list, value).reconcile(nip44EncryptToSelf);
30
- return publishThunk({ event, relays: Router.get().FromUser().getUrls() });
34
+ const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
35
+ return publishThunk({ event, relays });
31
36
  };
32
37
  export const pin = async (tag) => {
33
38
  const list = get(userPins) || makeList({ kind: PINS });
34
39
  const event = await addToListPublicly(list, tag).reconcile(nip44EncryptToSelf);
35
- return publishThunk({ event, relays: Router.get().FromUser().getUrls() });
40
+ const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
41
+ return publishThunk({ event, relays });
36
42
  };
37
43
  //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,cAAc,CAAA;AAChC,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAChG,OAAO,EAAC,MAAM,EAAE,mBAAmB,EAAC,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAA;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAA;IAC1D,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,GAAa,EAAE,EAAE;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAA;IAC1D,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,GAAa,EAAE,EAAE;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAA;IACpD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAE,GAAa,EAAE,EAAE;IACzC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAA;IACpD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA"}
@@ -2,3 +2,4 @@ export type AppContext = {
2
2
  dufflepudUrl?: string;
3
3
  };
4
4
  export declare const appContext: AppContext;
5
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,UAAe,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,UAAU,GAAe,EAAE,CAAA"}
@@ -1,6 +1,7 @@
1
- import { Repository } from "@welshman/relay";
1
+ import { Repository, LocalRelay } from "@welshman/relay";
2
2
  import { Tracker } from "@welshman/net";
3
3
  export declare const repository: Repository<import("@welshman/util").TrustedEvent>;
4
+ export declare const relay: LocalRelay<import("@welshman/util").TrustedEvent>;
4
5
  export declare const tracker: Tracker;
5
6
  export declare const makeRepositoryStore: ({ throttle: t }?: {
6
7
  throttle?: number;
@@ -8,3 +9,4 @@ export declare const makeRepositoryStore: ({ throttle: t }?: {
8
9
  export declare const makeTrackerStore: ({ throttle: t }?: {
9
10
  throttle?: number;
10
11
  }) => import("@welshman/store").WritableWithGetter<Tracker>;
12
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/core.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,eAAO,MAAM,UAAU,mDAAmB,CAAA;AAE1C,eAAO,MAAM,KAAK,mDAA6B,CAAA;AAE/C,eAAO,MAAM,OAAO,SAAgB,CAAA;AAIpC,eAAO,MAAM,mBAAmB,GAAI,kBAAqB;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAM,oGAiB9E,CAAA;AAEH,eAAO,MAAM,gBAAgB,GAAI,kBAAqB;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAM,0DAiB3E,CAAA"}
@@ -1,24 +1,10 @@
1
1
  import { throttle } from "@welshman/lib";
2
- import { verifyEvent, isEphemeralKind, isDVMKind } from "@welshman/util";
3
- import { Repository } from "@welshman/relay";
4
- import { Pool, Tracker, SocketEvent, isRelayEvent } from "@welshman/net";
2
+ import { Repository, LocalRelay } from "@welshman/relay";
5
3
  import { custom } from "@welshman/store";
6
- import { loadRelay, trackRelayStats } from "./relays.js";
7
- export const repository = Repository.getSingleton();
4
+ import { Tracker } from "@welshman/net";
5
+ export const repository = Repository.get();
6
+ export const relay = new LocalRelay(repository);
8
7
  export const tracker = new Tracker();
9
- Pool.getSingleton().subscribe(socket => {
10
- loadRelay(socket.url);
11
- trackRelayStats(socket);
12
- socket.on(SocketEvent.Receive, message => {
13
- if (isRelayEvent(message)) {
14
- const event = message[2];
15
- if (!isEphemeralKind(event.kind) && !isDVMKind(event.kind) && verifyEvent(event)) {
16
- tracker.track(event.id, socket.url);
17
- repository.publish(event);
18
- }
19
- }
20
- });
21
- });
22
8
  // Adapt above objects to stores
23
9
  export const makeRepositoryStore = ({ throttle: t = 300 } = {}) => custom(setter => {
24
10
  let onUpdate = () => setter(repository);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAA;AAE1C,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAA;AAE/C,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAEpC,gCAAgC;AAEhC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,KAAyB,EAAE,EAAE,EAAE,CACnF,MAAM,CACJ,MAAM,CAAC,EAAE;IACP,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAEvC,IAAI,CAAC,EAAE,CAAC;QACN,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED,QAAQ,EAAE,CAAA;IACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAEjC,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACjD,CAAC,EACD;IACE,GAAG,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;CAC1D,CACF,CAAA;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,KAAyB,EAAE,EAAE,EAAE,CAChF,MAAM,CACJ,MAAM,CAAC,EAAE;IACP,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEpC,IAAI,CAAC,EAAE,CAAC;QACN,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED,QAAQ,EAAE,CAAA;IACV,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE9B,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAC9C,CAAC,EACD;IACE,GAAG,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;CACxD,CACF,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { FeedController, FeedControllerOptions, Feed } from "@welshman/feeds";
2
+ export declare const getPubkeysForScope: (scope: string) => string[];
3
+ export declare const getPubkeysForWOTRange: (min: number, max: number) => string[];
4
+ type MakeFeedControllerOptions = Partial<Omit<FeedControllerOptions, "feed">> & {
5
+ feed: Feed;
6
+ };
7
+ export declare const makeFeedController: (options: MakeFeedControllerOptions) => FeedController;
8
+ export {};
9
+ //# sourceMappingURL=feeds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../src/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,qBAAqB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAA;AAKlF,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,aAmB/C,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,aAY7D,CAAA;AAED,KAAK,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,GAAG;IAAC,IAAI,EAAE,IAAI,CAAA;CAAC,CAAA;AAE5F,eAAO,MAAM,kBAAkB,GAAI,SAAS,yBAAyB,mBAOjE,CAAA"}
@@ -0,0 +1,41 @@
1
+ import { Scope, FeedController } from "@welshman/feeds";
2
+ import { pubkey, signer } from "./session.js";
3
+ import { wotGraph, maxWot, getFollows, getNetwork, getFollowers } from "./wot.js";
4
+ import { repository } from "./core.js";
5
+ export const getPubkeysForScope = (scope) => {
6
+ const $pubkey = pubkey.get();
7
+ if (!$pubkey) {
8
+ return [];
9
+ }
10
+ switch (scope) {
11
+ case Scope.Self:
12
+ return [$pubkey];
13
+ case Scope.Follows:
14
+ return getFollows($pubkey);
15
+ case Scope.Network:
16
+ return getNetwork($pubkey);
17
+ case Scope.Followers:
18
+ return getFollowers($pubkey);
19
+ default:
20
+ return [];
21
+ }
22
+ };
23
+ export const getPubkeysForWOTRange = (min, max) => {
24
+ const pubkeys = [];
25
+ const thresholdMin = maxWot.get() * min;
26
+ const thresholdMax = maxWot.get() * max;
27
+ for (const [tpk, score] of wotGraph.get().entries()) {
28
+ if (score >= thresholdMin && score <= thresholdMax) {
29
+ pubkeys.push(tpk);
30
+ }
31
+ }
32
+ return pubkeys;
33
+ };
34
+ export const makeFeedController = (options) => new FeedController({
35
+ repository,
36
+ getPubkeysForScope,
37
+ getPubkeysForWOTRange,
38
+ signer: signer.get(),
39
+ ...options,
40
+ });
41
+ //# sourceMappingURL=feeds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../../src/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,cAAc,EAA8B,MAAM,iBAAiB,CAAA;AAClF,OAAO,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,UAAU,CAAA;AAC/E,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AAEpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;IAE5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAA;IACX,CAAC;IAED,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,IAAI;YACb,OAAO,CAAC,OAAO,CAAC,CAAA;QAClB,KAAK,KAAK,CAAC,OAAO;YAChB,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;QAC5B,KAAK,KAAK,CAAC,OAAO;YAChB,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;QAC5B,KAAK,KAAK,CAAC,SAAS;YAClB,OAAO,YAAY,CAAC,OAAO,CAAC,CAAA;QAC9B;YACE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE;IAChE,MAAM,OAAO,GAAG,EAAE,CAAA;IAClB,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAA;IACvC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAA;IAEvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAkC,EAAE,EAAE,CACvE,IAAI,cAAc,CAAC;IACjB,UAAU;IACV,kBAAkB;IAClB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE;IACpB,GAAG,OAAO;CACX,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { PublishedList } from "@welshman/util";
2
+ export declare const follows: import("@welshman/store").WritableWithGetter<PublishedList[]>;
3
+ export declare const followsByPubkey: import("@welshman/store").ReadableWithGetter<Map<string, PublishedList>>, deriveFollows: (key: string | undefined, relays?: string[]) => import("svelte/store").Readable<PublishedList | undefined>, loadFollows: (key: string, relays?: string[]) => Promise<PublishedList | undefined>;
4
+ //# sourceMappingURL=follows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follows.d.ts","sourceRoot":"","sources":["../../../src/follows.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAK1D,eAAO,MAAM,OAAO,+DAIlB,CAAA;AAEF,eAAO,MACO,eAAe,4EACf,aAAa,8GACf,WAAW,wEAMrB,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { FOLLOWS, asDecryptedEvent, readList } from "@welshman/util";
2
+ import { deriveEventsMapped, collection } from "@welshman/store";
3
+ import { repository } from "./core.js";
4
+ import { makeOutboxLoader } from "./relaySelections.js";
5
+ export const follows = deriveEventsMapped(repository, {
6
+ filters: [{ kinds: [FOLLOWS] }],
7
+ itemToEvent: item => item.event,
8
+ eventToItem: (event) => readList(asDecryptedEvent(event)),
9
+ });
10
+ export const { indexStore: followsByPubkey, deriveItem: deriveFollows, loadItem: loadFollows, } = collection({
11
+ name: "follows",
12
+ store: follows,
13
+ getKey: follows => follows.event.pubkey,
14
+ load: makeOutboxLoader(FOLLOWS),
15
+ });
16
+ //# sourceMappingURL=follows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follows.js","sourceRoot":"","sources":["../../../src/follows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAElE,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAA;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,kBAAkB,CAAgB,UAAU,EAAE;IACnE,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAC,CAAC;IAC7B,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;IAC/B,WAAW,EAAE,CAAC,KAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;CACxE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,EACX,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,WAAW,GACtB,GAAG,UAAU,CAAC;IACb,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;IACvC,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC;CAChC,CAAC,CAAA"}
@@ -1,4 +1,3 @@
1
- import { MultiRequestOptions } from "@welshman/net";
2
1
  export type Handle = {
3
2
  nip05: string;
4
3
  pubkey?: string;
@@ -14,7 +13,8 @@ export declare function queryProfile(nip05: string): Promise<{
14
13
  } | undefined>;
15
14
  export declare const handles: import("svelte/store").Writable<Handle[]>;
16
15
  export declare const fetchHandles: (nip05s: string[]) => Promise<Map<string, Handle>>;
17
- export declare const handlesByNip05: import("@welshman/store").ReadableWithGetter<Map<string, Handle>>, deriveHandle: (key: import("@welshman/lib").Maybe<string>) => import("svelte/store").Readable<Handle | undefined>, loadHandle: (key: string) => Promise<Handle | undefined>;
18
- export declare const deriveHandleForPubkey: (pubkey: string, request?: Partial<MultiRequestOptions>) => import("svelte/store").Readable<Handle | undefined>;
16
+ export declare const handlesByNip05: import("@welshman/store").ReadableWithGetter<Map<string, Handle>>, deriveHandle: (key: string | undefined, relays?: string[]) => import("svelte/store").Readable<Handle | undefined>, loadHandle: (key: string, relays?: string[]) => Promise<Handle | undefined>, onHandle: (cb: import("svelte/store").Subscriber<Handle>) => () => void;
17
+ export declare const deriveHandleForPubkey: (pubkey: string, relays?: string[]) => import("svelte/store").Readable<Handle | undefined>;
19
18
  export declare const displayNip05: (nip05: string) => string;
20
19
  export declare const displayHandle: (handle: Handle) => string;
20
+ //# sourceMappingURL=handles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../../src/handles.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,WAAW,QAA4C,CAAA;AAEpE,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;eA6B/C;AAED,eAAO,MAAM,OAAO,2CAAyB,CAAA;AAE7C,eAAO,MAAM,YAAY,GAAU,QAAQ,MAAM,EAAE,iCA+BlD,CAAA;AAED,eAAO,MACO,cAAc,qEACd,YAAY,uGACd,UAAU,mEACZ,QAAQ,+DAqBhB,CAAA;AAEF,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,EAAE,SAAQ,MAAM,EAAO,wDASvE,CAAA;AAEJ,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,WACgB,CAAA;AAE1D,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,WAA+B,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { writable, derived } from "svelte/store";
2
2
  import { tryCatch, fetchJson, uniq, batcher, postJson, last } from "@welshman/lib";
3
- import { collection } from "./collection.js";
3
+ import { collection } from "@welshman/store";
4
4
  import { deriveProfile } from "./profiles.js";
5
5
  import { appContext } from "./context.js";
6
6
  export const NIP05_REGEX = /^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/;
@@ -34,7 +34,9 @@ export const fetchHandles = async (nip05s) => {
34
34
  if (base) {
35
35
  const res = await tryCatch(async () => await postJson(`${base}/handle/info`, { handles: nip05s }));
36
36
  for (const { handle: nip05, info } of res?.data || []) {
37
- handlesByNip05.set(nip05, info);
37
+ if (info) {
38
+ handlesByNip05.set(nip05, info);
39
+ }
38
40
  }
39
41
  }
40
42
  else {
@@ -50,7 +52,7 @@ export const fetchHandles = async (nip05s) => {
50
52
  }
51
53
  return handlesByNip05;
52
54
  };
53
- export const { indexStore: handlesByNip05, deriveItem: deriveHandle, loadItem: loadHandle, } = collection({
55
+ export const { indexStore: handlesByNip05, deriveItem: deriveHandle, loadItem: loadHandle, onItem: onHandle, } = collection({
54
56
  name: "handles",
55
57
  store: handles,
56
58
  getKey: (handle) => handle.nip05,
@@ -67,7 +69,7 @@ export const { indexStore: handlesByNip05, deriveItem: deriveHandle, loadItem: l
67
69
  return nip05s;
68
70
  }),
69
71
  });
70
- export const deriveHandleForPubkey = (pubkey, request = {}) => derived([handlesByNip05, deriveProfile(pubkey, request)], ([$handlesByNip05, $profile]) => {
72
+ export const deriveHandleForPubkey = (pubkey, relays = []) => derived([handlesByNip05, deriveProfile(pubkey, relays)], ([$handlesByNip05, $profile]) => {
71
73
  if (!$profile?.nip05) {
72
74
  return undefined;
73
75
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handles.js","sourceRoot":"","sources":["../../../src/handles.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  export * from "./context.js";
2
2
  export * from "./core.js";
3
- export * from "./collection.js";
4
3
  export * from "./commands.js";
5
4
  export * from "./feeds.js";
6
- export * from "./freshness.js";
7
5
  export * from "./follows.js";
8
6
  export * from "./handles.js";
9
7
  export * from "./mutes.js";
@@ -12,10 +10,10 @@ export * from "./profiles.js";
12
10
  export * from "./pins.js";
13
11
  export * from "./relays.js";
14
12
  export * from "./relaySelections.js";
15
- export * from "./router.js";
16
13
  export * from "./search.js";
17
14
  export * from "./session.js";
18
15
  export * from "./storage.js";
16
+ export * from "./storageAdapters.js";
19
17
  export * from "./sync.js";
20
18
  export * from "./tags.js";
21
19
  export * from "./thunk.js";
@@ -24,3 +22,4 @@ export * from "./user.js";
24
22
  export * from "./util.js";
25
23
  export * from "./wot.js";
26
24
  export * from "./zappers.js";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA"}
@@ -0,0 +1,63 @@
1
+ export * from "./context.js";
2
+ export * from "./core.js";
3
+ export * from "./commands.js";
4
+ export * from "./feeds.js";
5
+ export * from "./follows.js";
6
+ export * from "./handles.js";
7
+ export * from "./mutes.js";
8
+ export * from "./plaintext.js";
9
+ export * from "./profiles.js";
10
+ export * from "./pins.js";
11
+ export * from "./relays.js";
12
+ export * from "./relaySelections.js";
13
+ export * from "./search.js";
14
+ export * from "./session.js";
15
+ export * from "./storage.js";
16
+ export * from "./storageAdapters.js";
17
+ export * from "./sync.js";
18
+ export * from "./tags.js";
19
+ export * from "./thunk.js";
20
+ export * from "./topics.js";
21
+ export * from "./user.js";
22
+ export * from "./util.js";
23
+ export * from "./wot.js";
24
+ export * from "./zappers.js";
25
+ import { sortBy, throttleWithValue, tryCatch } from "@welshman/lib";
26
+ import { verifyEvent, isEphemeralKind, isDVMKind } from "@welshman/util";
27
+ import { routerContext } from "@welshman/router";
28
+ import { Pool, SocketEvent, isRelayEvent } from "@welshman/net";
29
+ import { pubkey } from "./session.js";
30
+ import { repository, tracker } from "./core.js";
31
+ import { getPubkeyRelays } from "./relaySelections.js";
32
+ import { relays, loadRelay, trackRelayStats, getRelayQuality } from "./relays.js";
33
+ // Sync relays with our database
34
+ Pool.get().subscribe(socket => {
35
+ loadRelay(socket.url);
36
+ trackRelayStats(socket);
37
+ socket.on(SocketEvent.Receive, message => {
38
+ if (isRelayEvent(message)) {
39
+ const event = message[2];
40
+ if (!isEphemeralKind(event.kind) && !isDVMKind(event.kind) && verifyEvent(event)) {
41
+ tracker.track(event.id, socket.url);
42
+ repository.publish(event);
43
+ }
44
+ }
45
+ });
46
+ });
47
+ // Configure the router
48
+ const _relayGetter = (fn) => throttleWithValue(200, () => {
49
+ let _relays = relays.get();
50
+ if (fn) {
51
+ _relays = _relays.filter(fn);
52
+ }
53
+ return sortBy(r => -getRelayQuality(r.url), _relays)
54
+ .slice(0, 5)
55
+ .map(r => r.url);
56
+ });
57
+ routerContext.getUserPubkey = () => pubkey.get();
58
+ routerContext.getPubkeyRelays = getPubkeyRelays;
59
+ routerContext.getRelayQuality = getRelayQuality;
60
+ routerContext.getDefaultRelays = _relayGetter();
61
+ routerContext.getIndexerRelays = _relayGetter();
62
+ routerContext.getSearchRelays = _relayGetter(r => tryCatch(() => r.profile?.supported_nips?.includes(50)));
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { PublishedList } from "@welshman/util";
2
+ export declare const mutes: import("@welshman/store").WritableWithGetter<PublishedList[]>;
3
+ export declare const mutesByPubkey: import("@welshman/store").ReadableWithGetter<Map<string, PublishedList>>, deriveMutes: (key: string | undefined, relays?: string[]) => import("svelte/store").Readable<PublishedList | undefined>, loadMutes: (key: string, relays?: string[]) => Promise<PublishedList | undefined>;
4
+ //# sourceMappingURL=mutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutes.d.ts","sourceRoot":"","sources":["../../../src/mutes.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAM1D,eAAO,MAAM,KAAK,+DAShB,CAAA;AAEF,eAAO,MACO,aAAa,4EACb,WAAW,8GACb,SAAS,wEAMnB,CAAA"}
@@ -1,11 +1,8 @@
1
1
  import { MUTES, asDecryptedEvent, readList } from "@welshman/util";
2
- import { load } from "@welshman/net";
3
- import { deriveEventsMapped } from "@welshman/store";
2
+ import { deriveEventsMapped, collection } from "@welshman/store";
4
3
  import { repository } from "./core.js";
5
- import { Router } from "./router.js";
6
- import { collection } from "./collection.js";
7
4
  import { ensurePlaintext } from "./plaintext.js";
8
- import { loadRelaySelections } from "./relaySelections.js";
5
+ import { makeOutboxLoader } from "./relaySelections.js";
9
6
  export const mutes = deriveEventsMapped(repository, {
10
7
  filters: [{ kinds: [MUTES] }],
11
8
  itemToEvent: item => item.event,
@@ -17,11 +14,6 @@ export const { indexStore: mutesByPubkey, deriveItem: deriveMutes, loadItem: loa
17
14
  name: "mutes",
18
15
  store: mutes,
19
16
  getKey: mute => mute.event.pubkey,
20
- load: async (pubkey, request = {}) => {
21
- await loadRelaySelections(pubkey, request);
22
- const filters = [{ kinds: [MUTES], authors: [pubkey] }];
23
- const relays = Router.get().FromPubkey(pubkey).getUrls();
24
- await load({ relays, ...request, filters });
25
- },
17
+ load: makeOutboxLoader(MUTES),
26
18
  });
27
19
  //# sourceMappingURL=mutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutes.js","sourceRoot":"","sources":["../../../src/mutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAEhE,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AACpC,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAA;AAErD,MAAM,CAAC,MAAM,KAAK,GAAG,kBAAkB,CAAgB,UAAU,EAAE;IACjE,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAC,CAAC;IAC3B,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;IAC/B,WAAW,EAAE,KAAK,EAAE,KAAmB,EAAE,EAAE,CACzC,QAAQ,CACN,gBAAgB,CAAC,KAAK,EAAE;QACtB,OAAO,EAAE,MAAM,eAAe,CAAC,KAAK,CAAC;KACtC,CAAC,CACH;CACJ,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,EACX,UAAU,EAAE,aAAa,EACzB,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,SAAS,GACpB,GAAG,UAAU,CAAC;IACb,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;IACjC,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC;CAC9B,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { PublishedList } from "@welshman/util";
2
+ export declare const pins: import("@welshman/store").WritableWithGetter<PublishedList[]>;
3
+ export declare const pinsByPubkey: import("@welshman/store").ReadableWithGetter<Map<string, PublishedList>>, derivePins: (key: string | undefined, relays?: string[]) => import("svelte/store").Readable<PublishedList | undefined>, loadPins: (key: string, relays?: string[]) => Promise<PublishedList | undefined>;
4
+ //# sourceMappingURL=pins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pins.d.ts","sourceRoot":"","sources":["../../../src/pins.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAK1D,eAAO,MAAM,IAAI,+DAIf,CAAA;AAEF,eAAO,MACO,YAAY,4EACZ,UAAU,8GACZ,QAAQ,wEAMlB,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { PINS, asDecryptedEvent, readList } from "@welshman/util";
2
+ import { deriveEventsMapped, collection } from "@welshman/store";
3
+ import { repository } from "./core.js";
4
+ import { makeOutboxLoader } from "./relaySelections.js";
5
+ export const pins = deriveEventsMapped(repository, {
6
+ filters: [{ kinds: [PINS] }],
7
+ itemToEvent: item => item.event,
8
+ eventToItem: (event) => readList(asDecryptedEvent(event)),
9
+ });
10
+ export const { indexStore: pinsByPubkey, deriveItem: derivePins, loadItem: loadPins, } = collection({
11
+ name: "pins",
12
+ store: pins,
13
+ getKey: pins => pins.event.pubkey,
14
+ load: makeOutboxLoader(PINS),
15
+ });
16
+ //# sourceMappingURL=pins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pins.js","sourceRoot":"","sources":["../../../src/pins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAE/D,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAA;AAErD,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAgB,UAAU,EAAE;IAChE,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC;IAC1B,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;IAC/B,WAAW,EAAE,CAAC,KAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;CACxE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,EACX,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,GACnB,GAAG,UAAU,CAAC;IACb,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;IACjC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;CAC7B,CAAC,CAAA"}
@@ -3,3 +3,4 @@ export declare const plaintext: import("@welshman/store").WritableWithGetter<Rec
3
3
  export declare const getPlaintext: (e: TrustedEvent) => string;
4
4
  export declare const setPlaintext: (e: TrustedEvent, content: string) => void;
5
5
  export declare const ensurePlaintext: (e: TrustedEvent) => Promise<string | undefined>;
6
+ //# sourceMappingURL=plaintext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plaintext.d.ts","sourceRoot":"","sources":["../../../src/plaintext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAKhD,eAAO,MAAM,SAAS,sEAAmD,CAAA;AAEzE,eAAO,MAAM,YAAY,GAAI,GAAG,YAAY,WAA0B,CAAA;AAEtE,eAAO,MAAM,YAAY,GAAI,GAAG,YAAY,EAAE,SAAS,MAAM,SACrB,CAAA;AAExC,eAAO,MAAM,eAAe,GAAU,GAAG,YAAY,gCA0BpD,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plaintext.js","sourceRoot":"","sources":["../../../src/plaintext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAA;AACrC,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;AAEnC,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAC,SAAS,EAAE,UAAU,EAAC,MAAM,cAAc,CAAA;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAyB,EAAE,CAAC,CAAC,CAAA;AAEzE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAEtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAe,EAAE,OAAe,EAAE,EAAE,CAC/D,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,CAAe,EAAE,EAAE;IACvD,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAErC,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;QAEnC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,IAAI,MAAM,CAAA;QAEV,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
- import { MultiRequestOptions } from "@welshman/net";
2
1
  import { PublishedProfile } from "@welshman/util";
3
2
  export declare const profiles: import("@welshman/store").WritableWithGetter<PublishedProfile[]>;
4
- export declare const profilesByPubkey: import("@welshman/store").ReadableWithGetter<Map<string, PublishedProfile>>, deriveProfile: (key: import("@welshman/lib").Maybe<string>, request?: Partial<MultiRequestOptions> | undefined) => import("svelte/store").Readable<PublishedProfile | undefined>, loadProfile: (key: string, request?: Partial<MultiRequestOptions> | undefined) => Promise<PublishedProfile | undefined>;
3
+ export declare const profilesByPubkey: import("@welshman/store").ReadableWithGetter<Map<string, PublishedProfile>>, deriveProfile: (key: string | undefined, relays?: string[]) => import("svelte/store").Readable<PublishedProfile | undefined>, loadProfile: (key: string, relays?: string[]) => Promise<PublishedProfile | undefined>;
5
4
  export declare const displayProfileByPubkey: (pubkey: string | undefined) => string;
6
- export declare const deriveProfileDisplay: (pubkey: string | undefined) => import("svelte/store").Readable<string>;
5
+ export declare const deriveProfileDisplay: (pubkey: string | undefined, relays?: string[]) => import("svelte/store").Readable<string>;
6
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/profiles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAA;AAK/C,eAAO,MAAM,QAAQ,kEAMpB,CAAA;AAED,eAAO,MACO,gBAAgB,+EAChB,aAAa,iHACf,WAAW,2EAMrB,CAAA;AAEF,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,GAAG,SAAS,WACwB,CAAA;AAEzF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,GAAG,SAAS,EAAE,SAAQ,MAAM,EAAO,4CAKpE,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { derived, readable } from "svelte/store";
2
+ import { readProfile, displayProfile, displayPubkey, PROFILE } from "@welshman/util";
3
+ import { deriveEventsMapped, collection, withGetter } from "@welshman/store";
4
+ import { repository } from "./core.js";
5
+ import { makeOutboxLoader } from "./relaySelections.js";
6
+ export const profiles = withGetter(deriveEventsMapped(repository, {
7
+ filters: [{ kinds: [PROFILE] }],
8
+ eventToItem: readProfile,
9
+ itemToEvent: item => item.event,
10
+ }));
11
+ export const { indexStore: profilesByPubkey, deriveItem: deriveProfile, loadItem: loadProfile, } = collection({
12
+ name: "profiles",
13
+ store: profiles,
14
+ getKey: profile => profile.event.pubkey,
15
+ load: makeOutboxLoader(PROFILE),
16
+ });
17
+ export const displayProfileByPubkey = (pubkey) => pubkey ? displayProfile(profilesByPubkey.get().get(pubkey), displayPubkey(pubkey)) : "";
18
+ export const deriveProfileDisplay = (pubkey, relays = []) => pubkey
19
+ ? derived(deriveProfile(pubkey, relays), $profile => displayProfile($profile, displayPubkey(pubkey)))
20
+ : readable("");
21
+ //# sourceMappingURL=profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAA;AAElF,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAA;AAErD,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,kBAAkB,CAAmB,UAAU,EAAE;IAC/C,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAC,CAAC;IAC7B,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;CAChC,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,EACX,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,WAAW,GACtB,GAAG,UAAU,CAAC;IACb,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;IACvC,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC;CAChC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAA0B,EAAE,EAAE,CACnE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAEzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAA0B,EAAE,SAAmB,EAAE,EAAE,EAAE,CACxF,MAAM;IACJ,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,CAChD,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAChD;IACH,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { TrustedEvent, PublishedList, RelayMode } from "@welshman/util";
2
+ export type OutboxLoaderRequest = {
3
+ pubkey: string;
4
+ relays: string[];
5
+ kind: number;
6
+ };
7
+ export declare const loadUsingOutbox: (request: OutboxLoaderRequest) => Promise<Promise<TrustedEvent[]>>;
8
+ export declare const makeOutboxLoader: (kind: number) => (pubkey: string, relays: string[]) => Promise<Promise<TrustedEvent[]>>;
9
+ export declare const relaySelections: import("@welshman/store").WritableWithGetter<PublishedList[]>;
10
+ export declare const relaySelectionsByPubkey: import("@welshman/store").ReadableWithGetter<Map<string, PublishedList>>, deriveRelaySelections: (key: string | undefined, relays?: string[]) => import("svelte/store").Readable<PublishedList | undefined>, loadRelaySelections: (key: string, relays?: string[]) => Promise<PublishedList | undefined>;
11
+ export declare const getPubkeyRelays: (pubkey: string, mode?: RelayMode) => string[];
12
+ export declare const derivePubkeyRelays: (pubkey: string, mode?: RelayMode) => import("svelte/store").Readable<string[]>;
13
+ export declare const inboxRelaySelections: import("@welshman/store").WritableWithGetter<PublishedList[]>;
14
+ export declare const inboxRelaySelectionsByPubkey: import("@welshman/store").ReadableWithGetter<Map<string, PublishedList>>, deriveInboxRelaySelections: (key: string | undefined, relays?: string[]) => import("svelte/store").Readable<PublishedList | undefined>, loadInboxRelaySelections: (key: string, relays?: string[]) => Promise<PublishedList | undefined>;
15
+ //# sourceMappingURL=relaySelections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relaySelections.d.ts","sourceRoot":"","sources":["../../../src/relaySelections.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AAMrE,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,oEAiB1B,CAAA;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,MAAM,QAAQ,MAAM,EAAE,QAAQ,MAAM,EAAE,qCAC1C,CAAA;AAEzC,eAAO,MAAM,eAAe,+DAI1B,CAAA;AAEF,eAAO,MACO,uBAAuB,4EACvB,qBAAqB,8GACvB,mBAAmB,wEAM7B,CAAA;AAEF,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,EAAE,OAAO,SAAS,aAGQ,CAAA;AAExE,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,OAAO,SAAS,8CAGkB,CAAA;AAErF,eAAO,MAAM,oBAAoB,+DAI/B,CAAA;AAEF,eAAO,MACO,4BAA4B,4EAC5B,0BAA0B,8GAC5B,wBAAwB,wEAMlC,CAAA"}