@welshman/app 0.14.0-pre4 → 0.14.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 (224) hide show
  1. package/dist/app/src/app.d.ts +10 -17
  2. package/dist/app/src/app.d.ts.map +1 -1
  3. package/dist/app/src/app.js +20 -24
  4. package/dist/app/src/app.js.map +1 -1
  5. package/dist/app/src/index.d.ts +1 -0
  6. package/dist/app/src/index.d.ts.map +1 -1
  7. package/dist/app/src/index.js +1 -0
  8. package/dist/app/src/index.js.map +1 -1
  9. package/dist/app/src/plugins/base.d.ts +5 -29
  10. package/dist/app/src/plugins/base.d.ts.map +1 -1
  11. package/dist/app/src/plugins/base.js +6 -30
  12. package/dist/app/src/plugins/base.js.map +1 -1
  13. package/dist/app/src/plugins/commandLists.d.ts +19 -0
  14. package/dist/app/src/plugins/commandLists.d.ts.map +1 -0
  15. package/dist/app/src/plugins/commandLists.js +28 -0
  16. package/dist/app/src/plugins/commandLists.js.map +1 -0
  17. package/dist/app/src/plugins/deletes.js +1 -1
  18. package/dist/app/src/plugins/deletes.js.map +1 -1
  19. package/dist/app/src/plugins/events.d.ts +11 -21
  20. package/dist/app/src/plugins/events.d.ts.map +1 -1
  21. package/dist/app/src/plugins/events.js +10 -26
  22. package/dist/app/src/plugins/events.js.map +1 -1
  23. package/dist/app/src/plugins/feeds.d.ts +1 -1
  24. package/dist/app/src/plugins/feeds.d.ts.map +1 -1
  25. package/dist/app/src/plugins/feeds.js +1 -1
  26. package/dist/app/src/plugins/feeds.js.map +1 -1
  27. package/dist/app/src/plugins/handles.d.ts +1 -1
  28. package/dist/app/src/plugins/handles.d.ts.map +1 -1
  29. package/dist/app/src/plugins/handles.js.map +1 -1
  30. package/dist/app/src/plugins/logger.d.ts +1 -1
  31. package/dist/app/src/plugins/logger.d.ts.map +1 -1
  32. package/dist/app/src/plugins/logger.js +1 -2
  33. package/dist/app/src/plugins/logger.js.map +1 -1
  34. package/dist/app/src/plugins/pinboards.d.ts +1 -1
  35. package/dist/app/src/plugins/pinboards.d.ts.map +1 -1
  36. package/dist/app/src/plugins/pinboards.js +1 -1
  37. package/dist/app/src/plugins/pinboards.js.map +1 -1
  38. package/dist/app/src/plugins/profiles.d.ts +1 -2
  39. package/dist/app/src/plugins/profiles.d.ts.map +1 -1
  40. package/dist/app/src/plugins/profiles.js +1 -2
  41. package/dist/app/src/plugins/profiles.js.map +1 -1
  42. package/dist/app/src/plugins/publisher.d.ts +2 -2
  43. package/dist/app/src/plugins/publisher.d.ts.map +1 -1
  44. package/dist/app/src/plugins/publisher.js +8 -6
  45. package/dist/app/src/plugins/publisher.js.map +1 -1
  46. package/dist/app/src/plugins/reactions.js +1 -1
  47. package/dist/app/src/plugins/reactions.js.map +1 -1
  48. package/dist/app/src/plugins/relayMembers.d.ts +1 -1
  49. package/dist/app/src/plugins/relayMembers.d.ts.map +1 -1
  50. package/dist/app/src/plugins/relayRoles.d.ts +2 -2
  51. package/dist/app/src/plugins/relayRoles.d.ts.map +1 -1
  52. package/dist/app/src/plugins/relayRoles.js +1 -1
  53. package/dist/app/src/plugins/relayRoles.js.map +1 -1
  54. package/dist/app/src/plugins/relays.d.ts +1 -2
  55. package/dist/app/src/plugins/relays.d.ts.map +1 -1
  56. package/dist/app/src/plugins/relays.js +1 -1
  57. package/dist/app/src/plugins/relays.js.map +1 -1
  58. package/dist/app/src/plugins/roomLists.d.ts +1 -1
  59. package/dist/app/src/plugins/roomLists.d.ts.map +1 -1
  60. package/dist/app/src/plugins/roomLists.js +1 -1
  61. package/dist/app/src/plugins/roomLists.js.map +1 -1
  62. package/dist/app/src/plugins/roomPins.d.ts +2 -2
  63. package/dist/app/src/plugins/roomPins.d.ts.map +1 -1
  64. package/dist/app/src/plugins/roomPins.js +1 -1
  65. package/dist/app/src/plugins/roomPins.js.map +1 -1
  66. package/dist/app/src/plugins/rooms.d.ts +1 -2
  67. package/dist/app/src/plugins/rooms.d.ts.map +1 -1
  68. package/dist/app/src/plugins/rooms.js +13 -13
  69. package/dist/app/src/plugins/rooms.js.map +1 -1
  70. package/dist/app/src/plugins/router.d.ts +2 -1
  71. package/dist/app/src/plugins/router.d.ts.map +1 -1
  72. package/dist/app/src/plugins/router.js +23 -13
  73. package/dist/app/src/plugins/router.js.map +1 -1
  74. package/dist/app/src/plugins/sync.d.ts +2 -2
  75. package/dist/app/src/plugins/sync.d.ts.map +1 -1
  76. package/dist/app/src/plugins/sync.js +6 -3
  77. package/dist/app/src/plugins/sync.js.map +1 -1
  78. package/dist/app/src/plugins/topics.d.ts +2 -6
  79. package/dist/app/src/plugins/topics.d.ts.map +1 -1
  80. package/dist/app/src/plugins/topics.js +48 -34
  81. package/dist/app/src/plugins/topics.js.map +1 -1
  82. package/dist/app/src/plugins/wot.d.ts +5 -0
  83. package/dist/app/src/plugins/wot.d.ts.map +1 -1
  84. package/dist/app/src/plugins/wot.js +59 -24
  85. package/dist/app/src/plugins/wot.js.map +1 -1
  86. package/dist/app/src/plugins/wraps.d.ts.map +1 -1
  87. package/dist/app/src/plugins/wraps.js +11 -9
  88. package/dist/app/src/plugins/wraps.js.map +1 -1
  89. package/dist/app/src/plugins/zapGoals.d.ts +3 -9
  90. package/dist/app/src/plugins/zapGoals.d.ts.map +1 -1
  91. package/dist/app/src/plugins/zapGoals.js +6 -10
  92. package/dist/app/src/plugins/zapGoals.js.map +1 -1
  93. package/dist/app/src/plugins/zappers.d.ts +1 -1
  94. package/dist/app/src/plugins/zappers.d.ts.map +1 -1
  95. package/dist/app/src/plugins/zappers.js +1 -1
  96. package/dist/app/src/plugins/zappers.js.map +1 -1
  97. package/dist/app/src/policy.d.ts +1 -1
  98. package/dist/app/src/policy.d.ts.map +1 -1
  99. package/dist/app/src/policy.js +4 -10
  100. package/dist/app/src/policy.js.map +1 -1
  101. package/dist/domain/src/behaviors/Expiration.d.ts +1 -8
  102. package/dist/domain/src/behaviors/Expiration.d.ts.map +1 -1
  103. package/dist/domain/src/behaviors/Expiration.js +1 -9
  104. package/dist/domain/src/behaviors/Expiration.js.map +1 -1
  105. package/dist/domain/src/index.d.ts +1 -0
  106. package/dist/domain/src/index.d.ts.map +1 -1
  107. package/dist/domain/src/index.js +1 -0
  108. package/dist/domain/src/index.js.map +1 -1
  109. package/dist/domain/src/kinds/CommandList.d.ts +18 -0
  110. package/dist/domain/src/kinds/CommandList.d.ts.map +1 -0
  111. package/dist/domain/src/kinds/CommandList.js +38 -0
  112. package/dist/domain/src/kinds/CommandList.js.map +1 -0
  113. package/dist/domain/src/kinds/ZapRequest.d.ts.map +1 -1
  114. package/dist/domain/src/kinds/ZapRequest.js +8 -3
  115. package/dist/domain/src/kinds/ZapRequest.js.map +1 -1
  116. package/dist/feeds/src/compiler.d.ts.map +1 -1
  117. package/dist/feeds/src/compiler.js +6 -1
  118. package/dist/feeds/src/compiler.js.map +1 -1
  119. package/dist/feeds/src/controller.d.ts +1 -1
  120. package/dist/feeds/src/controller.d.ts.map +1 -1
  121. package/dist/feeds/src/request.d.ts +2 -1
  122. package/dist/feeds/src/request.d.ts.map +1 -1
  123. package/dist/feeds/src/request.js +2 -1
  124. package/dist/feeds/src/request.js.map +1 -1
  125. package/dist/net/src/adapter.d.ts +3 -2
  126. package/dist/net/src/adapter.d.ts.map +1 -1
  127. package/dist/net/src/adapter.js +29 -16
  128. package/dist/net/src/adapter.js.map +1 -1
  129. package/dist/net/src/context.d.ts +1 -1
  130. package/dist/net/src/context.d.ts.map +1 -1
  131. package/dist/net/src/index.d.ts +0 -2
  132. package/dist/net/src/index.d.ts.map +1 -1
  133. package/dist/net/src/index.js +0 -2
  134. package/dist/net/src/index.js.map +1 -1
  135. package/dist/net/src/request.d.ts +1 -1
  136. package/dist/net/src/request.d.ts.map +1 -1
  137. package/dist/net/src/request.js +1 -1
  138. package/dist/net/src/request.js.map +1 -1
  139. package/dist/net/src/wrapManager.d.ts +3 -4
  140. package/dist/net/src/wrapManager.d.ts.map +1 -1
  141. package/dist/net/src/wrapManager.js +8 -6
  142. package/dist/net/src/wrapManager.js.map +1 -1
  143. package/dist/store/src/{repository.d.ts → derive.d.ts} +33 -41
  144. package/dist/store/src/derive.d.ts.map +1 -0
  145. package/dist/store/src/derive.js +706 -0
  146. package/dist/store/src/derive.js.map +1 -0
  147. package/dist/store/src/index.d.ts +9 -1
  148. package/dist/store/src/index.d.ts.map +1 -1
  149. package/dist/store/src/index.js +9 -1
  150. package/dist/store/src/index.js.map +1 -1
  151. package/dist/store/src/misc.d.ts +2 -7
  152. package/dist/store/src/misc.d.ts.map +1 -1
  153. package/dist/store/src/misc.js +1 -1
  154. package/dist/store/src/misc.js.map +1 -1
  155. package/dist/{net/src/repository.d.ts → store/src/repository/adapters/memory.d.ts} +22 -30
  156. package/dist/store/src/repository/adapters/memory.d.ts.map +1 -0
  157. package/dist/{net/src/repository.js → store/src/repository/adapters/memory.js} +96 -106
  158. package/dist/store/src/repository/adapters/memory.js.map +1 -0
  159. package/dist/store/src/repository/adapters/sqlite/engine.d.ts +65 -0
  160. package/dist/store/src/repository/adapters/sqlite/engine.d.ts.map +1 -0
  161. package/dist/store/src/repository/adapters/sqlite/engine.js +420 -0
  162. package/dist/store/src/repository/adapters/sqlite/engine.js.map +1 -0
  163. package/dist/store/src/repository/adapters/sqlite/leader.d.ts +8 -0
  164. package/dist/store/src/repository/adapters/sqlite/leader.d.ts.map +1 -0
  165. package/dist/store/src/repository/adapters/sqlite/leader.js +222 -0
  166. package/dist/store/src/repository/adapters/sqlite/leader.js.map +1 -0
  167. package/dist/store/src/repository/adapters/sqlite/protocol.d.ts +52 -0
  168. package/dist/store/src/repository/adapters/sqlite/protocol.d.ts.map +1 -0
  169. package/dist/store/src/repository/adapters/sqlite/protocol.js +52 -0
  170. package/dist/store/src/repository/adapters/sqlite/protocol.js.map +1 -0
  171. package/dist/store/src/repository/adapters/sqlite/repository.d.ts +54 -0
  172. package/dist/store/src/repository/adapters/sqlite/repository.d.ts.map +1 -0
  173. package/dist/store/src/repository/adapters/sqlite/repository.js +238 -0
  174. package/dist/store/src/repository/adapters/sqlite/repository.js.map +1 -0
  175. package/dist/store/src/repository/core.d.ts +68 -0
  176. package/dist/store/src/repository/core.d.ts.map +1 -0
  177. package/dist/store/src/repository/core.js +123 -0
  178. package/dist/store/src/repository/core.js.map +1 -0
  179. package/dist/store/src/svelte.d.ts +22 -0
  180. package/dist/store/src/svelte.d.ts.map +1 -0
  181. package/dist/store/src/svelte.js +100 -0
  182. package/dist/store/src/svelte.js.map +1 -0
  183. package/dist/store/src/synced.d.ts +1 -1
  184. package/dist/store/src/synced.d.ts.map +1 -1
  185. package/dist/store/src/synced.js +1 -1
  186. package/dist/store/src/synced.js.map +1 -1
  187. package/dist/{net → store}/src/tracker.d.ts +2 -0
  188. package/dist/store/src/tracker.d.ts.map +1 -0
  189. package/dist/{net → store}/src/tracker.js +8 -4
  190. package/dist/store/src/tracker.js.map +1 -0
  191. package/dist/tsconfig.build.tsbuildinfo +1 -1
  192. package/dist/util/src/Command.d.ts +1 -1
  193. package/dist/util/src/Command.d.ts.map +1 -1
  194. package/dist/util/src/Command.js +12 -5
  195. package/dist/util/src/Command.js.map +1 -1
  196. package/dist/util/src/Events.d.ts +3 -2
  197. package/dist/util/src/Events.d.ts.map +1 -1
  198. package/dist/util/src/Events.js.map +1 -1
  199. package/dist/util/src/Filters.d.ts.map +1 -1
  200. package/dist/util/src/Filters.js +6 -2
  201. package/dist/util/src/Filters.js.map +1 -1
  202. package/dist/util/src/Kinds.d.ts +1 -0
  203. package/dist/util/src/Kinds.d.ts.map +1 -1
  204. package/dist/util/src/Kinds.js +1 -0
  205. package/dist/util/src/Kinds.js.map +1 -1
  206. package/dist/util/src/RelaySelection.d.ts +5 -0
  207. package/dist/util/src/RelaySelection.d.ts.map +1 -1
  208. package/dist/util/src/RelaySelection.js.map +1 -1
  209. package/dist/util/src/Tags.d.ts +5 -0
  210. package/dist/util/src/Tags.d.ts.map +1 -1
  211. package/dist/util/src/Tags.js +3 -0
  212. package/dist/util/src/Tags.js.map +1 -1
  213. package/dist/util/src/index.d.ts +1 -0
  214. package/dist/util/src/index.d.ts.map +1 -1
  215. package/dist/util/src/index.js +1 -0
  216. package/dist/util/src/index.js.map +1 -1
  217. package/package.json +15 -17
  218. package/dist/net/src/repository.d.ts.map +0 -1
  219. package/dist/net/src/repository.js.map +0 -1
  220. package/dist/net/src/tracker.d.ts.map +0 -1
  221. package/dist/net/src/tracker.js.map +0 -1
  222. package/dist/store/src/repository.d.ts.map +0 -1
  223. package/dist/store/src/repository.js +0 -580
  224. package/dist/store/src/repository.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"roomPins.d.ts","sourceRoot":"","sources":["../../../../src/plugins/roomPins.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,cAAc,EAAiB,MAAM,kBAAkB,CAAA;AAEzE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAG/C,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAA;AAEpD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,wBAAwB,CAAC,cAAc,CAAC;gBAC5D,GAAG,EAAE,IAAI;IAQrB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAUvC,OAAO,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,oFAAkC;IAEnE,WAAW,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,WAAW,4DACd;IAE7C,IAAI,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAC2B;IAEhF,OAAO,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,EAAE,gBAAgB,MAAM,EAAE,8CAGsC;CAClG"}
1
+ {"version":3,"file":"roomPins.d.ts","sourceRoot":"","sources":["../../../../src/plugins/roomPins.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAW,cAAc,EAAiB,MAAM,kBAAkB,CAAA;AAGzE,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAA;AAEpD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,wBAAwB,CAAC,cAAc,CAAC;gBAC5D,GAAG,EAAE,IAAI;IAQrB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAUvC,OAAO,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,uFAAkC;IAEnE,WAAW,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,WAAW,4DACd;IAE7C,IAAI,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAC2B;IAEhF,OAAO,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,EAAE,gBAAgB,MAAM,EAAE,8CAGsC;CAClG"}
@@ -1,6 +1,6 @@
1
1
  import { ROOM_PINS } from "@welshman/util";
2
- import { RoomPins, RoomUpdatePins } from "@welshman/domain";
3
2
  import { projectFrom } from "@welshman/store";
3
+ import { RoomPins, RoomUpdatePins } from "@welshman/domain";
4
4
  import { Domain } from "./domain.js";
5
5
  import { Network } from "./network.js";
6
6
  import { RelaySignedDerivedPlugin } from "./relays.js";
@@ -1 +1 @@
1
- {"version":3,"file":"roomPins.js","sourceRoot":"","sources":["../../../../src/plugins/roomPins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAC,QAAQ,EAAkB,cAAc,EAAC,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAA;AACpD,OAAO,EAAC,WAAW,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AAGpD;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,wBAAwC;IACxE,YAAY,GAAS;QACnB,KAAK,CAAC,GAAG,EAAE;YACT,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAC,CAAC;YAC/B,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;SACjE,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,MAAoB;QACrC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAElC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;YAChC,MAAM,EAAE,CAAC,GAAG,CAAC;YACb,MAAM;YACN,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC;SAC3C,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,GAAG,CAAC,GAAW,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAEnE,WAAW,GAAG,CAAC,GAAW,EAAE,CAAS,EAAE,MAAoB,EAAE,EAAE,CAC7D,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAE7C,IAAI,GAAG,CAAC,GAAW,EAAE,CAAS,EAAwB,EAAE,CACtD,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAEhF,OAAO,GAAG,CAAC,GAAW,EAAE,CAAS,EAAE,cAAwB,EAAE,EAAE,CAC7D,IAAI,CAAC,GAAG;SACL,GAAG,CAAC,MAAM,CAAC;SACX,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAA;CAClG"}
1
+ {"version":3,"file":"roomPins.js","sourceRoot":"","sources":["../../../../src/plugins/roomPins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAC,QAAQ,EAAkB,cAAc,EAAC,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAA;AACpD,OAAO,EAAC,WAAW,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AAGpD;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,wBAAwC;IACxE,YAAY,GAAS;QACnB,KAAK,CAAC,GAAG,EAAE;YACT,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAC,CAAC;YAC/B,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;SACjE,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,MAAoB;QACrC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAElC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;YAChC,MAAM,EAAE,CAAC,GAAG,CAAC;YACb,MAAM;YACN,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC;SAC3C,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,GAAG,CAAC,GAAW,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAEnE,WAAW,GAAG,CAAC,GAAW,EAAE,CAAS,EAAE,MAAoB,EAAE,EAAE,CAC7D,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAE7C,IAAI,GAAG,CAAC,GAAW,EAAE,CAAS,EAAwB,EAAE,CACtD,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAEhF,OAAO,GAAG,CAAC,GAAW,EAAE,CAAS,EAAE,cAAwB,EAAE,EAAE,CAC7D,IAAI,CAAC,GAAG;SACL,GAAG,CAAC,MAAM,CAAC;SACX,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAA;CAClG"}
@@ -1,7 +1,6 @@
1
- import type { Readable } from "svelte/store";
2
1
  import type { Maybe } from "@welshman/lib";
3
2
  import type { TrustedEvent } from "@welshman/util";
4
- import type { ItemsByKey, Projection } from "@welshman/store";
3
+ import type { Readable, ItemsByKey, Projection } from "@welshman/store";
5
4
  import { RoomMetaReader, RoomMembersReader, RoomAdminsReader } from "@welshman/domain";
6
5
  import type { IApp } from "../app.js";
7
6
  export declare const makeRoomKey: (url: string, room: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../../../src/plugins/rooms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../../../src/plugins/rooms.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- import { derived } from "svelte/store";
2
- import { gte, max, pushToMapKey } from "@welshman/lib";
1
+ import { gte, max, noop, pushToMapKey } from "@welshman/lib";
3
2
  import { ROOM_META, ROOM_MEMBERS, ROOM_ADMINS, ROOM_DELETE, ROOM_ADD_MEMBER, ROOM_REMOVE_MEMBER, ROOM_JOIN, ROOM_LEAVE, hexTags, sortEventsAsc, sortEventsDesc, tagSpec, tagValues, } from "@welshman/util";
4
- import { deriveEventsByIdByUrl, deriveItems, deriveItemsByKeyByUrl, makeDeriveItem, makeForceLoadItem, makeLoadItem, projection, projectFrom, } from "@welshman/store";
3
+ import { derived, deriveEventsByIdByUrl, deriveItems, deriveItemsByKeyByUrl, makeDeriveItem, makeForceLoadItem, makeLoadItem, projection, projectFrom, } from "@welshman/store";
5
4
  import { RoomCreate, RoomDelete, RoomDeleteEvent, RoomEdit, RoomJoin, RoomLeave, RoomAddMember, RoomRemoveMember, RoomMeta as RoomMetaKind, RoomMembers, RoomAdmins, } from "@welshman/domain";
6
5
  import { Domain } from "./domain.js";
7
6
  import { Network } from "./network.js";
@@ -27,7 +26,6 @@ const deriveRoomState = (app, kind, eventToItem) => deriveItemsByKeyByUrl({
27
26
  ? makeRoomKey(url, item.identifier() ?? "")
28
27
  : undefined,
29
28
  revalidateOn: app.use(Relays).index.$,
30
- tracker: app.tracker,
31
29
  repository: app.repository,
32
30
  });
33
31
  export var MembershipStatus;
@@ -127,7 +125,6 @@ export class Rooms {
127
125
  // Keep the newest per room, since a room can be re-created after a delete.
128
126
  const deletedAt = derived(deriveEventsByIdByUrl({
129
127
  filters: [{ kinds: [ROOM_DELETE] }],
130
- tracker: app.tracker,
131
128
  repository: app.repository,
132
129
  }), $eventsByIdByUrl => {
133
130
  const result = new Map();
@@ -141,12 +138,10 @@ export class Rooms {
141
138
  }
142
139
  return result;
143
140
  });
144
- const index = derived([
145
- deriveRoomState(app, ROOM_META, app.use(Domain).reader(RoomMetaKind)),
146
- deriveRoomState(app, ROOM_MEMBERS, app.use(Domain).reader(RoomMembers)),
147
- deriveRoomState(app, ROOM_ADMINS, app.use(Domain).reader(RoomAdmins)),
148
- deletedAt,
149
- ], ([$metas, $members, $admins, $deletedAt]) => {
141
+ const roomMetas = deriveRoomState(app, ROOM_META, app.use(Domain).reader(RoomMetaKind));
142
+ const roomMembers = deriveRoomState(app, ROOM_MEMBERS, app.use(Domain).reader(RoomMembers));
143
+ const roomAdmins = deriveRoomState(app, ROOM_ADMINS, app.use(Domain).reader(RoomAdmins));
144
+ const index = derived([roomMetas, roomMembers, roomAdmins, deletedAt], ([$metas, $members, $admins, $deletedAt]) => {
150
145
  const result = new Map();
151
146
  for (const id of new Set([...$metas.keys(), ...$members.keys(), ...$admins.keys()])) {
152
147
  const meta = $metas.get(id);
@@ -174,7 +169,6 @@ export class Rooms {
174
169
  app.use(Relays).index.$,
175
170
  deriveEventsByIdByUrl({
176
171
  filters: [{ kinds: [ROOM_ADD_MEMBER, ROOM_REMOVE_MEMBER, ROOM_JOIN, ROOM_LEAVE] }],
177
- tracker: app.tracker,
178
172
  repository: app.repository,
179
173
  }),
180
174
  ], ([$index, $relays, $eventsByIdByUrl]) => {
@@ -195,10 +189,16 @@ export class Rooms {
195
189
  return result;
196
190
  }));
197
191
  const fetch = (key) => this.fetch(key);
198
- const read = (key) => this.index.get().get(key);
192
+ // A room is read once each of its states has the writes and parses it has outstanding
193
+ const read = async (key) => {
194
+ await Promise.all([roomMetas.read(key), roomMembers.read(key), roomAdmins.read(key)]);
195
+ return this.index.get().get(key);
196
+ };
199
197
  this.load = makeLoadItem(fetch, read);
200
198
  this.forceLoad = makeForceLoadItem(fetch, read);
201
199
  this.one = makeDeriveItem(index, this.load);
200
+ // The repository answers asynchronously, so a read is only current while something listens
201
+ app.onCleanup(this.membership.subscribe(noop));
202
202
  }
203
203
  // The relay's `self` pubkey gates every room-state event, so load the relay
204
204
  // profile before the events that depend on it.
@@ -1 +1 @@
1
- {"version":3,"file":"rooms.js","sourceRoot":"","sources":["../../../../src/plugins/rooms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rooms.js","sourceRoot":"","sources":["../../../../src/plugins/rooms.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,8 @@ export declare class Router implements FeedRouter {
15
15
  resolver: Resolver;
16
16
  constructor(app: IApp);
17
17
  resolve: (selections: RelaySelection[]) => Promise<import("@welshman/util").RelayScenario>;
18
- resolveRoute: (route: RelayRoute) => string[] | Promise<string[]>;
18
+ resolveRoute: (route: RelayRoute) => import("@welshman/lib").MaybeAsync<string[]>;
19
+ private resolveOwnRoute;
19
20
  private inboxRelays;
20
21
  private outboxRelays;
21
22
  private messagingRelays;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/plugins/router.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAA6B,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAC,UAAU,EAAE,cAAc,EAAY,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAI/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;;;;;GAOG;AACH,qBAAa,MAAO,YAAW,UAAU;IAG3B,QAAQ,CAAC,GAAG,EAAE,IAAI;IAF9B,QAAQ,EAAE,QAAQ,CAAA;gBAEG,GAAG,EAAE,IAAI;IAQ9B,OAAO,GAAI,YAAY,cAAc,EAAE,qDAAuC;IAG9E,YAAY,GAAI,OAAO,UAAU,kCA6BhC;IAGD,OAAO,CAAC,WAAW,CAC0E;IAG7F,OAAO,CAAC,YAAY,CAC0E;IAG9F,OAAO,CAAC,eAAe,CAC2E;IAKlG,OAAO,CAAC,YAAY,CAmBnB;IAID,OAAO,CAAC,WAAW,CAelB;CACF"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/plugins/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAA6B,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAC,UAAU,EAAE,cAAc,EAA0B,MAAM,gBAAgB,CAAA;AACvF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAI/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAanC;;;;;;;GAOG;AACH,qBAAa,MAAO,YAAW,UAAU;IAG3B,QAAQ,CAAC,GAAG,EAAE,IAAI;IAF9B,QAAQ,EAAE,QAAQ,CAAA;gBAEG,GAAG,EAAE,IAAI;IAQ9B,OAAO,GAAI,YAAY,cAAc,EAAE,qDAAuC;IAG9E,YAAY,GAAI,OAAO,UAAU,kDAKhC;IAED,OAAO,CAAC,eAAe,CA6BtB;IAGD,OAAO,CAAC,WAAW,CAC0E;IAG7F,OAAO,CAAC,YAAY,CAC0E;IAG9F,OAAO,CAAC,eAAe,CAC2E;IAKlG,OAAO,CAAC,YAAY,CAmBnB;IAGD,OAAO,CAAC,WAAW,CAclB;CACF"}
@@ -3,6 +3,14 @@ import { Resolver, Address, isReplaceableKind } from "@welshman/util";
3
3
  import { RelayLists } from "./relayLists.js";
4
4
  import { MessagingRelayLists } from "./messagingRelayLists.js";
5
5
  import { RelayStats } from "./relayStats.js";
6
+ // The id a reference names, or the address of the replaceable event it names
7
+ const getRefIdOrAddress = (ref) => {
8
+ let idOrAddress = ref.id;
9
+ if (!idOrAddress && ref.pubkey && ref.kind !== undefined && isReplaceableKind(ref.kind)) {
10
+ idOrAddress = new Address(ref.kind, ref.pubkey, ref.identifier ?? "").toString();
11
+ }
12
+ return idOrAddress;
13
+ };
6
14
  /**
7
15
  * The app's relay router. Reach it via `app.use(Router)`.
8
16
  *
@@ -23,8 +31,13 @@ export class Router {
23
31
  }
24
32
  // Resolve selections into a scored `RelayScenario`
25
33
  resolve = (selections) => this.resolver.scenario(selections);
26
- // Resolve a single route into concrete relay urls.
34
+ // Resolve a single route into concrete relay urls, through the app's override for its type if it has one.
27
35
  resolveRoute = (route) => {
36
+ // Overrides are keyed by type, so the one found takes this route
37
+ const override = this.app.config.routes?.[route.type];
38
+ return override ? override(route) : this.resolveOwnRoute(route);
39
+ };
40
+ resolveOwnRoute = (route) => {
28
41
  switch (route.type) {
29
42
  // Signed out is a legitimate state on a read path, so contribute no relays
30
43
  // rather than rejecting the whole resolution.
@@ -69,25 +82,22 @@ export class Router {
69
82
  relays.push(...(await getRelays(ref.pubkey)));
70
83
  }
71
84
  if (ref.id) {
72
- const event = this.app.repository.getEvent(ref.id);
85
+ const event = await this.app.repository.getEvent(ref.id);
73
86
  if (event) {
74
87
  relays.push(...(await getRelays(event.pubkey)));
75
88
  }
76
89
  }
77
90
  return uniq(relays);
78
91
  };
79
- // Relays an event was found on: the tracker's record (keyed by event id) plus
80
- // any relay hints carried on the reference.
81
- resolveSeen = (ref) => {
92
+ // The reference's hints, plus the tracker's relays once reading the event has hydrated them
93
+ resolveSeen = async (ref) => {
82
94
  const relays = ref.relays ? [...ref.relays] : [];
83
- if (ref.id) {
84
- relays.push(...this.app.tracker.getRelays(ref.id));
85
- }
86
- else if (ref.pubkey && ref.kind !== undefined && isReplaceableKind(ref.kind)) {
87
- const address = new Address(ref.kind, ref.pubkey, ref.identifier ?? "").toString();
88
- const event = this.app.repository.getEvent(address);
89
- if (event) {
90
- relays.push(...this.app.tracker.getRelays(event.id));
95
+ const idOrAddress = getRefIdOrAddress(ref);
96
+ if (idOrAddress) {
97
+ const event = await this.app.repository.getEvent(idOrAddress);
98
+ const id = event?.id ?? ref.id;
99
+ if (id) {
100
+ relays.push(...this.app.repository.tracker.getRelays(id));
91
101
  }
92
102
  }
93
103
  return relays;
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/plugins/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/plugins/router.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Filter } from "@welshman/util";
1
+ import type { Filter, SignedEvent } from "@welshman/util";
2
2
  import type { IApp } from "../app.js";
3
3
  export type AppSyncOpts = {
4
4
  relays: string[];
@@ -13,7 +13,7 @@ export type AppSyncOpts = {
13
13
  export declare class Sync {
14
14
  readonly app: IApp;
15
15
  constructor(app: IApp);
16
- query: (filters: Filter[]) => import("@welshman/util").TrustedEvent[];
16
+ query: (filters: Filter[]) => Promise<SignedEvent[]>;
17
17
  pull: ({ relays, filters }: AppSyncOpts) => Promise<void>;
18
18
  push: ({ relays, filters }: AppSyncOpts) => Promise<void>;
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/plugins/sync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAc,MAAM,gBAAgB,CAAA;AAEvD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAInC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED;;;;;GAKG;AACH,qBAAa,IAAI;IACH,QAAQ,CAAC,GAAG,EAAE,IAAI;gBAAT,GAAG,EAAE,IAAI;IAE9B,KAAK,GAAI,SAAS,MAAM,EAAE,6CACmE;IAE7F,IAAI,GAAU,qBAAmB,WAAW,mBAa3C;IAED,IAAI,GAAU,qBAAmB,WAAW,mBAe3C;CACF"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/plugins/sync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAEvD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAInC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED;;;;;GAKG;AACH,qBAAa,IAAI;IACH,QAAQ,CAAC,GAAG,EAAE,IAAI;gBAAT,GAAG,EAAE,IAAI;IAE9B,KAAK,GAAU,SAAS,MAAM,EAAE,4BAI/B;IAED,IAAI,GAAU,qBAAmB,WAAW,mBAa3C;IAED,IAAI,GAAU,qBAAmB,WAAW,mBAe3C;CACF"}
@@ -13,10 +13,13 @@ export class Sync {
13
13
  constructor(app) {
14
14
  this.app = app;
15
15
  }
16
- query = (filters) => this.app.repository.query(filters, { shouldSort: filters.every(f => f.limit === undefined) });
16
+ query = async (filters) => {
17
+ const events = await this.app.repository.query(filters);
18
+ return events.filter(isSignedEvent);
19
+ };
17
20
  pull = async ({ relays, filters }) => {
18
21
  const net = this.app.use(Network);
19
- const events = this.query(filters).filter(isSignedEvent);
22
+ const events = await this.query(filters);
20
23
  await Promise.all(relays.map(async (relay) => {
21
24
  if (await this.app.use(Relays).hasNegentropy(relay)) {
22
25
  await pull({ filters, events, relays: [relay], context: this.app.netContext });
@@ -28,7 +31,7 @@ export class Sync {
28
31
  };
29
32
  push = async ({ relays, filters }) => {
30
33
  const net = this.app.use(Network);
31
- const events = this.query(filters).filter(isSignedEvent);
34
+ const events = await this.query(filters);
32
35
  await Promise.all(relays.map(async (relay) => {
33
36
  if (await this.app.use(Relays).hasNegentropy(relay)) {
34
37
  await push({ filters, events, relays: [relay], context: this.app.netContext });
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../src/plugins/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAE5C,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AAExC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAOlC;;;;;GAKG;AACH,MAAM,OAAO,IAAI;IACM;IAArB,YAAqB,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;IAAG,CAAC;IAElC,KAAK,GAAG,CAAC,OAAiB,EAAE,EAAE,CAC5B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,EAAC,CAAC,CAAA;IAE7F,IAAI,GAAG,KAAK,EAAE,EAAC,MAAM,EAAE,OAAO,EAAc,EAAE,EAAE;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAExD,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACvB,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,CAAC,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAC,CAAC,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAC,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC,CAAA;IAED,IAAI,GAAG,KAAK,EAAE,EAAC,MAAM,EAAE,OAAO,EAAc,EAAE,EAAE;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAExD,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACvB,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,CAAC,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAC,CAAC,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAkB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,CAC1E,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC,CAAA;CACF"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../src/plugins/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAE5C,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AAExC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAOlC;;;;;GAKG;AACH,MAAM,OAAO,IAAI;IACM;IAArB,YAAqB,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;IAAG,CAAC;IAElC,KAAK,GAAG,KAAK,EAAE,OAAiB,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEvD,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,IAAI,GAAG,KAAK,EAAE,EAAC,MAAM,EAAE,OAAO,EAAc,EAAE,EAAE;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAExC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACvB,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,CAAC,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAC,CAAC,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAC,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC,CAAA;IAED,IAAI,GAAG,KAAK,EAAE,EAAC,MAAM,EAAE,OAAO,EAAc,EAAE,EAAE;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAExC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACvB,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,CAAC,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAC,CAAC,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAkB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,CAC1E,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC,CAAA;CACF"}
@@ -1,15 +1,11 @@
1
- import type { Readable } from "svelte/store";
2
- import type { Projection } from "@welshman/store";
1
+ import type { Readable, Projection } from "@welshman/store";
3
2
  import type { Search } from "./base.js";
4
3
  import type { IApp } from "../app.js";
5
4
  export type Topic = {
6
5
  name: string;
7
6
  count: number;
8
7
  };
9
- /**
10
- * Hashtag topics with occurrence counts, derived live from the app's
11
- * repository tag index.
12
- */
8
+ /** Hashtag topics, each counted by the stored events that carry it. */
13
9
  export declare class Topics {
14
10
  readonly app: IApp;
15
11
  byName: Projection<Map<string, Topic>>;
@@ -1 +1 @@
1
- {"version":3,"file":"topics.d.ts","sourceRoot":"","sources":["../../../../src/plugins/topics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAA;AAM1C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;GAGG;AACH,qBAAa,MAAM;IAKL,QAAQ,CAAC,GAAG,EAAE,IAAI;IAJ9B,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IACtC,GAAG,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;IACxB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;gBAEvB,GAAG,EAAE,IAAI;CAgD/B"}
1
+ {"version":3,"file":"topics.d.ts","sourceRoot":"","sources":["../../../../src/plugins/topics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,QAAQ,EAAoB,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE3E,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAiBD,uEAAuE;AACvE,qBAAa,MAAM;IAKL,QAAQ,CAAC,GAAG,EAAE,IAAI;IAJ9B,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IACtC,GAAG,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;IACxB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;gBAEvB,GAAG,EAAE,IAAI;CA0D/B"}
@@ -1,12 +1,18 @@
1
- import { readable, derived } from "svelte/store";
2
- import { on } from "@welshman/lib";
3
- import { tagValues, topicTags } from "@welshman/util";
4
- import { deriveItems, projection } from "@welshman/store";
1
+ import { on, add, call, throttle } from "@welshman/lib";
2
+ import { normalizeTopic } from "@welshman/util";
3
+ import { readable, derived, deriveItems, projection } from "@welshman/store";
5
4
  import { createSearch } from "./base.js";
6
- /**
7
- * Hashtag topics with occurrence counts, derived live from the app's
8
- * repository tag index.
9
- */
5
+ const onCountError = (error) => console.error("Failed to count topics", error);
6
+ // Tag values that normalize to the same topic count together
7
+ const toTopicsByName = (counts) => {
8
+ const topicsByName = new Map();
9
+ for (const [value, count] of counts) {
10
+ const name = normalizeTopic(value).toLowerCase();
11
+ topicsByName.set(name, { name, count: add(topicsByName.get(name)?.count, count) });
12
+ }
13
+ return topicsByName;
14
+ };
15
+ /** Hashtag topics, each counted by the stored events that carry it. */
10
16
  export class Topics {
11
17
  app;
12
18
  byName;
@@ -14,33 +20,41 @@ export class Topics {
14
20
  topicSearch;
15
21
  constructor(app) {
16
22
  this.app = app;
17
- const topicsByName = new Map();
18
- const addTopic = (name) => {
19
- const topic = topicsByName.get(name);
20
- if (topic) {
21
- topic.count++;
22
- }
23
- else {
24
- topicsByName.set(name, { name, count: 1 });
25
- }
26
- };
27
- for (const tagString of app.repository.eventsByTag.keys()) {
28
- if (tagString.startsWith("t:")) {
29
- addTopic(tagString.slice(2).toLowerCase());
30
- }
31
- }
32
- this.byName = projection(readable(topicsByName, set => on(app.repository, "update", ({ added }) => {
33
- let dirty = false;
34
- for (const event of added) {
35
- for (const name of tagValues(topicTags("t"), event.tags)) {
36
- addTopic(name);
37
- dirty = true;
23
+ let topicsByName = new Map();
24
+ this.byName = projection(readable(topicsByName, set => {
25
+ let stopped = false;
26
+ let current;
27
+ // A recount supersedes any still in flight, whose answer would be older
28
+ const recount = throttle(1000, () => {
29
+ if (!stopped) {
30
+ current?.abort();
31
+ current = new AbortController();
32
+ const { signal } = current;
33
+ app.repository.countTags("t", { signal }).then(counts => {
34
+ topicsByName = toTopicsByName(counts);
35
+ set(topicsByName);
36
+ }, error => {
37
+ if (!signal.aborted)
38
+ onCountError(error);
39
+ });
38
40
  }
39
- }
40
- if (dirty) {
41
- set(topicsByName);
42
- }
43
- })), () => topicsByName);
41
+ });
42
+ const unsubscribers = [
43
+ // Removals carry only ids, so any of them might have been tagged
44
+ on(app.repository, "update", ({ added, removed }) => {
45
+ if (removed.size > 0 || added.some(event => event.tags.some(tag => tag[0] === "t"))) {
46
+ recount();
47
+ }
48
+ }),
49
+ on(app.repository, "clear", recount),
50
+ ];
51
+ recount();
52
+ return () => {
53
+ stopped = true;
54
+ current?.abort();
55
+ unsubscribers.forEach(call);
56
+ };
57
+ }), () => topicsByName);
44
58
  this.all = projection(deriveItems(this.byName.$));
45
59
  this.topicSearch = derived(this.all.$, $topics => createSearch($topics, {
46
60
  getValue: (topic) => topic.name,
@@ -1 +1 @@
1
- {"version":3,"file":"topics.js","sourceRoot":"","sources":["../../../../src/plugins/topics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAC,EAAE,EAAC,MAAM,eAAe,CAAA;AAChC,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AAEnD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAA;AAUtC;;;GAGG;AACH,MAAM,OAAO,MAAM;IAKI;IAJrB,MAAM,CAAgC;IACtC,GAAG,CAAqB;IACxB,WAAW,CAAiC;IAE5C,YAAqB,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;QAC5B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiB,CAAA;QAE7C,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEpC,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC,CAAA;QAED,KAAK,MAAM,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1D,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,UAAU,CACtB,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAC3B,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAmB,EAAE,EAAE;YACzD,IAAI,KAAK,GAAG,KAAK,CAAA;YAEjB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzD,QAAQ,CAAC,IAAI,CAAC,CAAA;oBACd,KAAK,GAAG,IAAI,CAAA;gBACd,CAAC;YACH,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,GAAG,CAAC,YAAY,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAC,CACH,EACD,GAAG,EAAE,CAAC,YAAY,CACnB,CAAA;QAED,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAEjD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAC/C,YAAY,CAAC,OAAO,EAAE;YACpB,QAAQ,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;YACtC,WAAW,EAAE,EAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAC;SAC9B,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"topics.js","sourceRoot":"","sources":["../../../../src/plugins/topics.ts"],"names":[],"mappings":"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"}
@@ -27,8 +27,13 @@ export declare class Wot {
27
27
  private followersByPubkey;
28
28
  private mutesByPubkey;
29
29
  private mutersByPubkey;
30
+ private lists;
31
+ private listKeys;
30
32
  private updates;
31
33
  constructor(app: IApp);
34
+ private reset;
35
+ private addList;
36
+ private removeList;
32
37
  private setList;
33
38
  private setEdges;
34
39
  private project;
@@ -1 +1 @@
1
- {"version":3,"file":"wot.d.ts","sourceRoot":"","sources":["../../../../src/plugins/wot.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAOnC;;;GAGG;AACH,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AA4BD;;;;;;;;;;;;GAYG;AACH,qBAAa,GAAG;IASF,QAAQ,CAAC,GAAG,EAAE,IAAI;IAR9B,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,cAAc,CAAmB;IAGzC,OAAO,CAAC,OAAO,CAAc;gBAER,GAAG,EAAE,IAAI;IAoC9B,OAAO,CAAC,OAAO,CAUd;IAGD,OAAO,CAAC,QAAQ,CAoBf;IAID,OAAO,CAAC,OAAO,CAC2C;IAE1D;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAIZ;IAED,OAAO,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CACgC;IAEhF,KAAK,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CACgC;IAE9E,SAAS,GAAI,QAAQ,MAAM,EAAE,OAAO,QAAQ,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CACiB;IAEpF,MAAM,GAAI,QAAQ,MAAM,EAAE,OAAO,QAAQ,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CACiB;IAEjF,KAAK,GAAI,QAAQ,MAAM,EAAE,OAAO,QAAQ,KAAG,UAAU,CAAC,MAAM,CAAC,CAQzD;IAEJ,OAAO,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAc5C;IAEJ;;;;OAIG;IACH,MAAM,GAAI,OAAO,QAAQ,KAAG,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA0BvD;CACL"}
1
+ {"version":3,"file":"wot.d.ts","sourceRoot":"","sources":["../../../../src/plugins/wot.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAOnC;;;GAGG;AACH,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AA4BD;;;;;;;;;;;;GAYG;AACH,qBAAa,GAAG;IAaF,QAAQ,CAAC,GAAG,EAAE,IAAI;IAZ9B,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,cAAc,CAAmB;IAGzC,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,QAAQ,CAA4B;IAG5C,OAAO,CAAC,OAAO,CAAc;gBAER,GAAG,EAAE,IAAI;IAsC9B,OAAO,CAAC,KAAK,CAOZ;IAGD,OAAO,CAAC,OAAO,CAiBd;IAGD,OAAO,CAAC,UAAU,CAKjB;IAID,OAAO,CAAC,OAAO,CAUd;IAGD,OAAO,CAAC,QAAQ,CAoBf;IAID,OAAO,CAAC,OAAO,CAC2C;IAE1D;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAIZ;IAED,OAAO,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CACgC;IAEhF,KAAK,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CACgC;IAE9E,SAAS,GAAI,QAAQ,MAAM,EAAE,OAAO,QAAQ,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CACiB;IAEpF,MAAM,GAAI,QAAQ,MAAM,EAAE,OAAO,QAAQ,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CACiB;IAEjF,KAAK,GAAI,QAAQ,MAAM,EAAE,OAAO,QAAQ,KAAG,UAAU,CAAC,MAAM,CAAC,CAQzD;IAEJ,OAAO,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAc5C;IAEJ;;;;OAIG;IACH,MAAM,GAAI,OAAO,QAAQ,KAAG,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA0BvD;CACL"}