@welshman/app 0.9.0-pre2 → 0.9.0-pre3

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 (179) hide show
  1. package/dist/app/src/app.d.ts +6 -2
  2. package/dist/app/src/app.d.ts.map +1 -1
  3. package/dist/app/src/app.js +6 -5
  4. package/dist/app/src/app.js.map +1 -1
  5. package/dist/app/src/index.d.ts +2 -0
  6. package/dist/app/src/index.d.ts.map +1 -1
  7. package/dist/app/src/index.js +2 -0
  8. package/dist/app/src/index.js.map +1 -1
  9. package/dist/app/src/plugins/base.d.ts +6 -5
  10. package/dist/app/src/plugins/base.d.ts.map +1 -1
  11. package/dist/app/src/plugins/base.js +9 -2
  12. package/dist/app/src/plugins/base.js.map +1 -1
  13. package/dist/app/src/plugins/domain.d.ts +5 -4
  14. package/dist/app/src/plugins/domain.d.ts.map +1 -1
  15. package/dist/app/src/plugins/domain.js +5 -1
  16. package/dist/app/src/plugins/domain.js.map +1 -1
  17. package/dist/app/src/plugins/events.d.ts +31 -0
  18. package/dist/app/src/plugins/events.d.ts.map +1 -0
  19. package/dist/app/src/plugins/events.js +64 -0
  20. package/dist/app/src/plugins/events.js.map +1 -0
  21. package/dist/app/src/plugins/feeds.d.ts.map +1 -1
  22. package/dist/app/src/plugins/feeds.js +8 -4
  23. package/dist/app/src/plugins/feeds.js.map +1 -1
  24. package/dist/app/src/plugins/logger.d.ts +1 -4
  25. package/dist/app/src/plugins/logger.d.ts.map +1 -1
  26. package/dist/app/src/plugins/network.d.ts +2 -0
  27. package/dist/app/src/plugins/network.d.ts.map +1 -1
  28. package/dist/app/src/plugins/network.js +14 -3
  29. package/dist/app/src/plugins/network.js.map +1 -1
  30. package/dist/app/src/plugins/profiles.d.ts.map +1 -1
  31. package/dist/app/src/plugins/profiles.js +7 -7
  32. package/dist/app/src/plugins/profiles.js.map +1 -1
  33. package/dist/app/src/plugins/reactions.js +4 -4
  34. package/dist/app/src/plugins/reactions.js.map +1 -1
  35. package/dist/app/src/plugins/relayRoles.js +1 -1
  36. package/dist/app/src/plugins/relayRoles.js.map +1 -1
  37. package/dist/app/src/plugins/relays.d.ts +1 -1
  38. package/dist/app/src/plugins/relays.js +1 -1
  39. package/dist/app/src/plugins/roomLists.d.ts +11 -7
  40. package/dist/app/src/plugins/roomLists.d.ts.map +1 -1
  41. package/dist/app/src/plugins/roomLists.js +17 -4
  42. package/dist/app/src/plugins/roomLists.js.map +1 -1
  43. package/dist/app/src/plugins/roomPins.d.ts +18 -0
  44. package/dist/app/src/plugins/roomPins.d.ts.map +1 -0
  45. package/dist/app/src/plugins/roomPins.js +34 -0
  46. package/dist/app/src/plugins/roomPins.js.map +1 -0
  47. package/dist/app/src/plugins/rooms.d.ts +24 -10
  48. package/dist/app/src/plugins/rooms.d.ts.map +1 -1
  49. package/dist/app/src/plugins/rooms.js +113 -46
  50. package/dist/app/src/plugins/rooms.js.map +1 -1
  51. package/dist/app/src/plugins/thunk.d.ts.map +1 -1
  52. package/dist/app/src/plugins/thunk.js +18 -2
  53. package/dist/app/src/plugins/thunk.js.map +1 -1
  54. package/dist/app/src/plugins/wot.d.ts +45 -19
  55. package/dist/app/src/plugins/wot.d.ts.map +1 -1
  56. package/dist/app/src/plugins/wot.js +155 -94
  57. package/dist/app/src/plugins/wot.js.map +1 -1
  58. package/dist/app/src/plugins/wraps.d.ts.map +1 -1
  59. package/dist/app/src/plugins/wraps.js +13 -7
  60. package/dist/app/src/plugins/wraps.js.map +1 -1
  61. package/dist/app/src/plugins/zappers.d.ts.map +1 -1
  62. package/dist/app/src/plugins/zappers.js +5 -9
  63. package/dist/app/src/plugins/zappers.js.map +1 -1
  64. package/dist/app/src/policy.d.ts.map +1 -1
  65. package/dist/app/src/policy.js +6 -5
  66. package/dist/app/src/policy.js.map +1 -1
  67. package/dist/app/src/user.d.ts +2 -2
  68. package/dist/app/src/user.d.ts.map +1 -1
  69. package/dist/app/src/user.js +1 -1
  70. package/dist/app/src/user.js.map +1 -1
  71. package/dist/domain/src/core/EventReader.d.ts +30 -3
  72. package/dist/domain/src/core/EventReader.d.ts.map +1 -1
  73. package/dist/domain/src/core/EventReader.js +24 -3
  74. package/dist/domain/src/core/EventReader.js.map +1 -1
  75. package/dist/domain/src/core/EventWriter.d.ts +6 -6
  76. package/dist/domain/src/core/EventWriter.d.ts.map +1 -1
  77. package/dist/domain/src/core/EventWriter.js +12 -12
  78. package/dist/domain/src/core/EventWriter.js.map +1 -1
  79. package/dist/domain/src/core/Kind.d.ts +5 -5
  80. package/dist/domain/src/core/Kind.d.ts.map +1 -1
  81. package/dist/domain/src/core/Kind.js +4 -6
  82. package/dist/domain/src/core/Kind.js.map +1 -1
  83. package/dist/domain/src/core/ListReader.d.ts +3 -3
  84. package/dist/domain/src/core/ListReader.d.ts.map +1 -1
  85. package/dist/domain/src/core/ListReader.js +3 -2
  86. package/dist/domain/src/core/ListReader.js.map +1 -1
  87. package/dist/domain/src/index.d.ts +3 -1
  88. package/dist/domain/src/index.d.ts.map +1 -1
  89. package/dist/domain/src/index.js +3 -1
  90. package/dist/domain/src/index.js.map +1 -1
  91. package/dist/domain/src/kinds/AppData.d.ts +3 -3
  92. package/dist/domain/src/kinds/AppData.d.ts.map +1 -1
  93. package/dist/domain/src/kinds/AppData.js +5 -4
  94. package/dist/domain/src/kinds/AppData.js.map +1 -1
  95. package/dist/domain/src/kinds/CommunityList.d.ts +12 -0
  96. package/dist/domain/src/kinds/CommunityList.d.ts.map +1 -0
  97. package/dist/domain/src/kinds/{GroupList.js → CommunityList.js} +10 -9
  98. package/dist/domain/src/kinds/CommunityList.js.map +1 -0
  99. package/dist/domain/src/kinds/Delete.d.ts +1 -1
  100. package/dist/domain/src/kinds/Delete.d.ts.map +1 -1
  101. package/dist/domain/src/kinds/Delete.js +7 -7
  102. package/dist/domain/src/kinds/Delete.js.map +1 -1
  103. package/dist/domain/src/kinds/Handler.d.ts +1 -1
  104. package/dist/domain/src/kinds/Handler.d.ts.map +1 -1
  105. package/dist/domain/src/kinds/Handler.js +2 -1
  106. package/dist/domain/src/kinds/Handler.js.map +1 -1
  107. package/dist/domain/src/kinds/Profile.d.ts +1 -1
  108. package/dist/domain/src/kinds/Profile.d.ts.map +1 -1
  109. package/dist/domain/src/kinds/Profile.js +2 -1
  110. package/dist/domain/src/kinds/Profile.js.map +1 -1
  111. package/dist/domain/src/kinds/RoomCreate.js +2 -2
  112. package/dist/domain/src/kinds/RoomCreate.js.map +1 -1
  113. package/dist/domain/src/kinds/RoomDelete.js +3 -3
  114. package/dist/domain/src/kinds/RoomDelete.js.map +1 -1
  115. package/dist/domain/src/kinds/RoomEdit.js +3 -3
  116. package/dist/domain/src/kinds/RoomEdit.js.map +1 -1
  117. package/dist/domain/src/kinds/RoomJoin.js +2 -2
  118. package/dist/domain/src/kinds/RoomJoin.js.map +1 -1
  119. package/dist/domain/src/kinds/RoomLeave.js +3 -3
  120. package/dist/domain/src/kinds/RoomLeave.js.map +1 -1
  121. package/dist/domain/src/kinds/RoomList.d.ts +7 -5
  122. package/dist/domain/src/kinds/RoomList.d.ts.map +1 -1
  123. package/dist/domain/src/kinds/RoomList.js +44 -16
  124. package/dist/domain/src/kinds/RoomList.js.map +1 -1
  125. package/dist/domain/src/kinds/RoomPins.d.ts +15 -0
  126. package/dist/domain/src/kinds/RoomPins.d.ts.map +1 -0
  127. package/dist/domain/src/kinds/RoomPins.js +34 -0
  128. package/dist/domain/src/kinds/RoomPins.js.map +1 -0
  129. package/dist/domain/src/kinds/RoomUpdatePins.d.ts +15 -0
  130. package/dist/domain/src/kinds/RoomUpdatePins.d.ts.map +1 -0
  131. package/dist/domain/src/kinds/RoomUpdatePins.js +38 -0
  132. package/dist/domain/src/kinds/RoomUpdatePins.js.map +1 -0
  133. package/dist/domain/src/kinds/ZapGoal.d.ts +5 -0
  134. package/dist/domain/src/kinds/ZapGoal.d.ts.map +1 -1
  135. package/dist/domain/src/kinds/ZapGoal.js +29 -4
  136. package/dist/domain/src/kinds/ZapGoal.js.map +1 -1
  137. package/dist/domain/src/kinds/ZapReceipt.d.ts +1 -1
  138. package/dist/domain/src/kinds/ZapReceipt.d.ts.map +1 -1
  139. package/dist/domain/src/kinds/ZapReceipt.js +2 -1
  140. package/dist/domain/src/kinds/ZapReceipt.js.map +1 -1
  141. package/dist/lib/src/Tools.js +1 -1
  142. package/dist/lib/src/Tools.js.map +1 -1
  143. package/dist/net/src/auth.d.ts.map +1 -1
  144. package/dist/net/src/auth.js +2 -2
  145. package/dist/net/src/auth.js.map +1 -1
  146. package/dist/net/src/publish.d.ts.map +1 -1
  147. package/dist/net/src/publish.js +13 -0
  148. package/dist/net/src/publish.js.map +1 -1
  149. package/dist/net/src/request.d.ts +1 -2
  150. package/dist/net/src/request.d.ts.map +1 -1
  151. package/dist/net/src/request.js +16 -2
  152. package/dist/net/src/request.js.map +1 -1
  153. package/dist/signer/src/nip59.d.ts +1 -1
  154. package/dist/signer/src/nip59.d.ts.map +1 -1
  155. package/dist/signer/src/nip59.js +26 -30
  156. package/dist/signer/src/nip59.js.map +1 -1
  157. package/dist/signer/src/signers/nip07.d.ts.map +1 -1
  158. package/dist/signer/src/signers/nip07.js +19 -5
  159. package/dist/signer/src/signers/nip07.js.map +1 -1
  160. package/dist/signer/src/util.d.ts +2 -2
  161. package/dist/signer/src/util.d.ts.map +1 -1
  162. package/dist/signer/src/util.js +2 -6
  163. package/dist/signer/src/util.js.map +1 -1
  164. package/dist/store/src/misc.d.ts +4 -2
  165. package/dist/store/src/misc.d.ts.map +1 -1
  166. package/dist/store/src/misc.js +2 -4
  167. package/dist/store/src/misc.js.map +1 -1
  168. package/dist/store/src/repository.d.ts.map +1 -1
  169. package/dist/store/src/repository.js +44 -19
  170. package/dist/store/src/repository.js.map +1 -1
  171. package/dist/tsconfig.build.tsbuildinfo +1 -1
  172. package/dist/util/src/Kinds.d.ts +2 -0
  173. package/dist/util/src/Kinds.d.ts.map +1 -1
  174. package/dist/util/src/Kinds.js +2 -0
  175. package/dist/util/src/Kinds.js.map +1 -1
  176. package/package.json +18 -18
  177. package/dist/domain/src/kinds/GroupList.d.ts +0 -12
  178. package/dist/domain/src/kinds/GroupList.d.ts.map +0 -1
  179. package/dist/domain/src/kinds/GroupList.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import type { Unsubscriber } from "svelte/store";
1
2
  import { Pool, Tracker, Repository, WrapManager } from "@welshman/net";
2
3
  import type { NetContext, AdapterFactory } from "@welshman/net";
3
4
  import type { User } from "./user.js";
@@ -14,10 +15,12 @@ export type AppOptions = {
14
15
  getAdapter?: AdapterFactory;
15
16
  policies?: AppPolicy[];
16
17
  };
18
+ export type Plugin<T = unknown> = new (app: IApp) => T;
17
19
  export interface IApp {
18
20
  user?: User;
19
21
  config: AppConfig;
20
- use: <T>(Ctor: new (app: IApp) => T) => T;
22
+ use: <T>(Ctor: Plugin<T>) => T;
23
+ onCleanup: (unsubscriber: Unsubscriber) => void;
21
24
  netContext: NetContext;
22
25
  pool: Pool;
23
26
  tracker: Tracker;
@@ -41,7 +44,8 @@ export declare class App implements IApp {
41
44
  private singletons;
42
45
  private unsubscribers;
43
46
  constructor(options?: AppOptions);
44
- use: <T>(Ctor: new (app: IApp) => T) => T;
47
+ use: <T>(Ctor: Plugin<T>) => T;
48
+ onCleanup: (unsubscriber: Unsubscriber) => void;
45
49
  cleanup(): void;
46
50
  }
47
51
  //# sourceMappingURL=app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAA;AACpE,OAAO,KAAK,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAE1C,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAA;IACjC,gBAAgB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,MAAM,EAAE,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,EAAE,SAAS,CAAA;IACjB,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;IACzC,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED;;;;;GAKG;AACH,qBAAa,GAAI,YAAW,IAAI;IAC9B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,EAAE,SAAS,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;IAExB,OAAO,CAAC,UAAU,CAAiD;IACnE,OAAO,CAAC,aAAa,CAAqB;gBAE9B,OAAO,GAAE,UAAe;IAwBpC,GAAG,GAAI,CAAC,EAAE,MAAM,KAAK,GAAG,EAAE,IAAI,KAAK,CAAC,KAAG,CAAC,CAQvC;IAED,OAAO;CAOR"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAA;AACpE,OAAO,KAAK,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAE1C,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAA;IACjC,gBAAgB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,MAAM,EAAE,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,CAAC,CAAA;AAEtD,MAAM,WAAW,IAAI;IACnB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,EAAE,SAAS,CAAA;IACjB,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC9B,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAA;IAC/C,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED;;;;;GAKG;AACH,qBAAa,GAAI,YAAW,IAAI;IAC9B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,EAAE,SAAS,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;IAExB,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,aAAa,CAAqB;gBAE9B,OAAO,GAAE,UAAe;IAqBpC,GAAG,GAAI,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,CAAC,KAAG,CAAC,CAQ5B;IAED,SAAS,GAAI,cAAc,YAAY,UAEtC;IAED,OAAO;CASR"}
@@ -32,12 +32,9 @@ export class App {
32
32
  getAdapter: options.getAdapter,
33
33
  };
34
34
  for (const policy of options.policies ?? []) {
35
- this.unsubscribers.push(policy(this));
35
+ this.onCleanup(policy(this));
36
36
  }
37
37
  }
38
- // Resolve the per-app singleton of a data module, constructing it on first
39
- // use. This is how modules reach their dependencies (e.g. app.use(RelayLists)),
40
- // replacing constructor injection and letting cycles resolve lazily.
41
38
  use = (Ctor) => {
42
39
  let instance = this.singletons.get(Ctor);
43
40
  if (!instance) {
@@ -45,8 +42,12 @@ export class App {
45
42
  }
46
43
  return instance;
47
44
  };
45
+ onCleanup = (unsubscriber) => {
46
+ this.unsubscribers.push(unsubscriber);
47
+ };
48
48
  cleanup() {
49
- this.unsubscribers.forEach(call);
49
+ // Unwind in reverse, since some teardowns only compose LIFO
50
+ this.unsubscribers.slice().reverse().forEach(call);
50
51
  this.pool.clear();
51
52
  this.tracker.clear();
52
53
  this.repository.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAClC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAA;AA8BpE;;;;;GAKG;AACH,MAAM,OAAO,GAAG;IACd,IAAI,CAAO;IACX,MAAM,CAAW;IACjB,UAAU,CAAY;IACtB,IAAI,CAAM;IACV,OAAO,CAAS;IAChB,UAAU,CAAY;IACtB,WAAW,CAAa;IAEhB,UAAU,GAAG,IAAI,GAAG,EAAuC,CAAA;IAC3D,aAAa,GAAmB,EAAE,CAAA;IAE1C,YAAY,UAAsB,EAAE;QAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAA;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAA;QACF,IAAI,CAAC,UAAU,GAAG;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAA;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,gFAAgF;IAChF,qEAAqE;IACrE,GAAG,GAAG,CAAI,IAA0B,EAAK,EAAE;QACzC,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAkB,CAAA;QAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxD,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;IAED,OAAO;QACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACpB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAClC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAA;AAiCpE;;;;;GAKG;AACH,MAAM,OAAO,GAAG;IACd,IAAI,CAAO;IACX,MAAM,CAAW;IACjB,UAAU,CAAY;IACtB,IAAI,CAAM;IACV,OAAO,CAAS;IAChB,UAAU,CAAY;IACtB,WAAW,CAAa;IAEhB,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAA;IACvC,aAAa,GAAmB,EAAE,CAAA;IAE1C,YAAY,UAAsB,EAAE;QAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAA;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAA;QACF,IAAI,CAAC,UAAU,GAAG;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAA;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,GAAG,GAAG,CAAI,IAAe,EAAK,EAAE;QAC9B,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAkB,CAAA;QAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxD,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;IAED,SAAS,GAAG,CAAC,YAA0B,EAAE,EAAE;QACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACvC,CAAC,CAAA;IAED,OAAO;QACL,4DAA4D;QAC5D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAElD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACpB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;CACF"}
@@ -29,10 +29,12 @@ export * from "./plugins/handles.js";
29
29
  export * from "./plugins/zappers.js";
30
30
  export * from "./plugins/topics.js";
31
31
  export * from "./plugins/wot.js";
32
+ export * from "./plugins/events.js";
32
33
  export * from "./plugins/feeds.js";
33
34
  export * from "./plugins/feedLists.js";
34
35
  export * from "./plugins/sync.js";
35
36
  export * from "./plugins/wraps.js";
37
+ export * from "./plugins/roomPins.js";
36
38
  export * from "./plugins/rooms.js";
37
39
  export * from "./plugins/relayRoles.js";
38
40
  export * from "./plugins/relayMembers.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA"}
@@ -29,10 +29,12 @@ export * from "./plugins/handles.js";
29
29
  export * from "./plugins/zappers.js";
30
30
  export * from "./plugins/topics.js";
31
31
  export * from "./plugins/wot.js";
32
+ export * from "./plugins/events.js";
32
33
  export * from "./plugins/feeds.js";
33
34
  export * from "./plugins/feedLists.js";
34
35
  export * from "./plugins/sync.js";
35
36
  export * from "./plugins/wraps.js";
37
+ export * from "./plugins/roomPins.js";
36
38
  export * from "./plugins/rooms.js";
37
39
  export * from "./plugins/relayRoles.js";
38
40
  export * from "./plugins/relayMembers.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA"}
@@ -30,10 +30,11 @@ export type Search<V, T> = {
30
30
  * their collection. Blends fuse scoring with an optional `sortFn`.
31
31
  */
32
32
  export declare const createSearch: <V, T>(options: T[], opts: SearchOptions<V, T>) => Search<V, T>;
33
- export declare const projection: <T>($: Readable<T>, get?: () => T) => {
34
- $: Readable<T>;
35
- get: () => T;
36
- };
33
+ /**
34
+ * Build a `Projection` from a readable store and an optional `read` function, which falls
35
+ * back to `get($)`. On hot paths, the store value is cached, and read is skipped.
36
+ */
37
+ export declare const projection: <T>($: Readable<T>, read?: () => T) => Projection<T>;
37
38
  /**
38
39
  * Build a `Projection` derived from another `Projection`: re-read `src`
39
40
  * reactively via `.$` or synchronously via `.get()`.
@@ -115,7 +116,7 @@ export type RelayScopedDerivedPluginOptions<T> = {
115
116
  * `getKey(item, url)` once per relay it was seen on (via the tracker), so the
116
117
  * same addressable coordinate on two relays stays two distinct entries. Use it
117
118
  * for collections that only make sense relative to a relay — NIP-29 rooms
118
- * (`${url}'${group}`), relay roles (`${url}|${d}`), per-relay replaceables
119
+ * (`${url}'${room}`), relay roles (`${url}|${d}`), per-relay replaceables
119
120
  * (`${url}`). Subclasses implement `fetch` (loading from the relevant relay).
120
121
  */
121
122
  export declare abstract class RelayScopedDerivedPlugin<T> {
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/plugins/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/plugins/base.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,14 @@ export const createSearch = (options, opts) => {
26
26
  searchValues: (term) => search(term).map(opts.getValue),
27
27
  };
28
28
  };
29
- export const projection = ($, get = getter($)) => ({ $, get });
29
+ /**
30
+ * Build a `Projection` from a readable store and an optional `read` function, which falls
31
+ * back to `get($)`. On hot paths, the store value is cached, and read is skipped.
32
+ */
33
+ export const projection = ($, read) => ({
34
+ $,
35
+ get: getter($, { read }),
36
+ });
30
37
  /**
31
38
  * Build a `Projection` derived from another `Projection`: re-read `src`
32
39
  * reactively via `.$` or synchronously via `.get()`.
@@ -152,7 +159,7 @@ export class DerivedPlugin {
152
159
  * `getKey(item, url)` once per relay it was seen on (via the tracker), so the
153
160
  * same addressable coordinate on two relays stays two distinct entries. Use it
154
161
  * for collections that only make sense relative to a relay — NIP-29 rooms
155
- * (`${url}'${group}`), relay roles (`${url}|${d}`), per-relay replaceables
162
+ * (`${url}'${room}`), relay roles (`${url}|${d}`), per-relay replaceables
156
163
  * (`${url}`). Subclasses implement `fetch` (loading from the relevant relay).
157
164
  */
158
165
  export class RelayScopedDerivedPlugin {
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/plugins/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/plugins/base.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { EventReader, EventWriter, KindFactory, ConfiguredKind } from "@welshman/domain";
1
+ import type { TrustedEvent } from "@welshman/util";
2
+ import type { BaseEventReader, EventWriter, KindFactory, ConfiguredKind, Parsed } from "@welshman/domain";
2
3
  import { Command } from "../command.js";
3
4
  import type { IApp } from "../app.js";
4
5
  /**
@@ -8,9 +9,9 @@ export declare class Domain {
8
9
  readonly app: IApp;
9
10
  constructor(app: IApp);
10
11
  private configured;
11
- configure: <R extends EventReader, W extends EventWriter<R>>(factory: KindFactory<R, W>) => ConfiguredKind<R, W>;
12
- reader: <R extends EventReader, W extends EventWriter<R>>(factory: KindFactory<R, W>) => (event: import("@welshman/util").TrustedEvent) => Promise<R>;
13
- writer: <R extends EventReader, W extends EventWriter<R>>(factory: KindFactory<R, W>, reader?: R) => W;
12
+ configure: <R extends BaseEventReader, W extends EventWriter<R>>(factory: KindFactory<R, W>) => ConfiguredKind<R, W>;
13
+ reader: <R extends BaseEventReader, W extends EventWriter<R>>(factory: KindFactory<R, W>) => (event: TrustedEvent) => Parsed<R>;
14
+ writer: <R extends BaseEventReader, W extends EventWriter<R>>(factory: KindFactory<R, W>, reader?: R) => W;
14
15
  command: (writer: EventWriter<any>) => Promise<Command>;
15
16
  }
16
17
  //# sourceMappingURL=domain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/plugins/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAE3F,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;GAEG;AACH,qBAAa,MAAM;IACL,QAAQ,CAAC,GAAG,EAAE,IAAI;gBAAT,GAAG,EAAE,IAAI;IAE9B,OAAO,CAAC,UAAU,CAA6D;IAK/E,SAAS,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAC1D,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KACzB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAkBtB;IAED,MAAM,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,kEACrD;IAEhC,MAAM,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EACvD,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,SAAS,CAAC,KACT,CAAC,CAA0C;IAE9C,OAAO,GAAU,QAAQ,WAAW,CAAC,GAAG,CAAC,KAAG,OAAO,CAAC,OAAO,CAAC,CAM3D;CACF"}
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/plugins/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,cAAc,EACd,MAAM,EACP,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;GAEG;AACH,qBAAa,MAAM;IACL,QAAQ,CAAC,GAAG,EAAE,IAAI;gBAAT,GAAG,EAAE,IAAI;IAE9B,OAAO,CAAC,UAAU,CAA6D;IAK/E,SAAS,GAAI,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAC9D,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KACzB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAkBtB;IAMD,MAAM,GACH,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,MAC/E,OAAO,YAAY,KAAG,MAAM,CAAC,CAAC,CAAC,CAC4B;IAE9D,MAAM,GAAI,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAC3D,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,SAAS,CAAC,KACT,CAAC,CAA0C;IAE9C,OAAO,GAAU,QAAQ,WAAW,CAAC,GAAG,CAAC,KAAG,OAAO,CAAC,OAAO,CAAC,CAM3D;CACF"}
@@ -26,7 +26,11 @@ export class Domain {
26
26
  }
27
27
  return configured;
28
28
  };
29
- reader = (factory) => this.configure(factory).reader;
29
+ // An event-to-reader function for a kind, parsed and ready to use. The result is
30
+ // the reader itself for kinds that parse synchronously and a promise of it for
31
+ // kinds that decrypt, which is exactly what `EventToItem` accepts — so
32
+ // collections keep their sync path where the kind allows one.
33
+ reader = (factory) => (event) => this.configure(factory).reader(event).parse();
30
34
  writer = (factory, reader) => this.configure(factory).writer(reader);
31
35
  command = async (writer) => {
32
36
  User.require(this.app);
@@ -1 +1 @@
1
- {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../../src/plugins/domain.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAG/B;;GAEG;AACH,MAAM,OAAO,MAAM;IACI;IAArB,YAAqB,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;IAAG,CAAC;IAE1B,UAAU,GAAG,IAAI,GAAG,EAAmD,CAAA;IAE/E,8EAA8E;IAC9E,kFAAkF;IAClF,gFAAgF;IAChF,SAAS,GAAG,CACV,OAA0B,EACJ,EAAE;QACxB,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAqC,CAAA;QAEjF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,EAAC,GAAG,EAAC,GAAG,IAAI,CAAA;YAElB,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,OAAO,EACP,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC9B,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ;gBAClC,IAAI,MAAM;oBACR,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,CAAA;gBACzB,CAAC;aACF,CAAC,CAAC,CACJ,CAAA;QACH,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,GAAG,CAAkD,OAA0B,EAAE,EAAE,CACvF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;IAEhC,MAAM,GAAG,CACP,OAA0B,EAC1B,MAAU,EACP,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAE9C,OAAO,GAAG,KAAK,EAAE,MAAwB,EAAoB,EAAE;QAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEtB,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAA;QAE7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC7C,CAAC,CAAA;CACF"}
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../../src/plugins/domain.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAG/B;;GAEG;AACH,MAAM,OAAO,MAAM;IACI;IAArB,YAAqB,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;IAAG,CAAC;IAE1B,UAAU,GAAG,IAAI,GAAG,EAAmD,CAAA;IAE/E,8EAA8E;IAC9E,kFAAkF;IAClF,gFAAgF;IAChF,SAAS,GAAG,CACV,OAA0B,EACJ,EAAE;QACxB,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAqC,CAAA;QAEjF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,EAAC,GAAG,EAAC,GAAG,IAAI,CAAA;YAElB,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,OAAO,EACP,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC9B,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ;gBAClC,IAAI,MAAM;oBACR,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,CAAA;gBACzB,CAAC;aACF,CAAC,CAAC,CACJ,CAAA;QACH,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,iFAAiF;IACjF,+EAA+E;IAC/E,uEAAuE;IACvE,8DAA8D;IAC9D,MAAM,GACJ,CAAsD,OAA0B,EAAE,EAAE,CACpF,CAAC,KAAmB,EAAa,EAAE,CACjC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAe,CAAA;IAE9D,MAAM,GAAG,CACP,OAA0B,EAC1B,MAAU,EACP,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAE9C,OAAO,GAAG,KAAK,EAAE,MAAwB,EAAoB,EAAE;QAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEtB,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAA;QAE7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC7C,CAAC,CAAA;CACF"}
@@ -0,0 +1,31 @@
1
+ import type { Maybe } from "@welshman/lib";
2
+ import type { Filter, TrustedEvent } from "@welshman/util";
3
+ import type { EventsById, EventsByIdByUrl } from "@welshman/store";
4
+ import type { Projection } from "./base.js";
5
+ import type { IApp } from "../app.js";
6
+ /**
7
+ * Reactive views over the app's repository. Every method binds this app's
8
+ * repository and tracker and hands back a `Projection` — read it synchronously
9
+ * with `.get()`, or subscribe to `.$` — so callers never build one from the
10
+ * other, and never construct `{repository, tracker}` by hand.
11
+ *
12
+ * Each projection supplies its own getter that queries the repository/tracker
13
+ * directly, rather than falling back to reading through the derived store. Those
14
+ * queries are index-backed; standing a derived store up and tearing it down just
15
+ * to read a value is not.
16
+ */
17
+ export declare class Events {
18
+ readonly app: IApp;
19
+ constructor(app: IApp);
20
+ byId: (filters?: Filter[]) => Projection<EventsById>;
21
+ all: (filters?: Filter[]) => Projection<TrustedEvent[]>;
22
+ asc: (filters?: Filter[]) => Projection<TrustedEvent[]>;
23
+ desc: (filters?: Filter[]) => Projection<TrustedEvent[]>;
24
+ one: (idOrAddress: string, relays?: string[]) => Projection<Maybe<TrustedEvent>>;
25
+ isDeleted: (event: TrustedEvent) => Projection<boolean>;
26
+ byIdForUrl: (url: string, filters?: Filter[]) => Projection<EventsById>;
27
+ forUrl: (url: string, filters?: Filter[]) => Projection<TrustedEvent[]>;
28
+ byIdByUrl: (filters?: Filter[]) => Projection<EventsByIdByUrl>;
29
+ relaySignedForUrl: (url: string, filters?: Filter[]) => Projection<TrustedEvent[]>;
30
+ }
31
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/plugins/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;AAExC,OAAO,KAAK,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAcxD,OAAO,KAAK,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,iBAAiB,CAAA;AAIhE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AAGzC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;;;;;;;;GAUG;AACH,qBAAa,MAAM;IACL,QAAQ,CAAC,GAAG,EAAE,IAAI;gBAAT,GAAG,EAAE,IAAI;IAE9B,IAAI,GAAI,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,UAAU,CAAC,CAIxD;IAED,GAAG,GAAI,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAM3D;IAED,GAAG,GAAI,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAM3D;IAED,IAAI,GAAI,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAM5D;IAED,GAAG,GAAI,aAAa,MAAM,EAAE,SAAQ,MAAM,EAAO,KAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAShF;IAEH,SAAS,GAAI,OAAO,YAAY,KAAG,UAAU,CAAC,OAAO,CAAC,CAGnD;IAIH,UAAU,GAAI,KAAK,MAAM,EAAE,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,UAAU,CAAC,CAI3E;IAED,MAAM,GAAI,KAAK,MAAM,EAAE,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAM3E;IAED,SAAS,GAAI,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,eAAe,CAAC,CAIlE;IAED,iBAAiB,GAAI,KAAK,MAAM,EAAE,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAWtF;CACF"}
@@ -0,0 +1,64 @@
1
+ import { filter, spec } from "@welshman/lib";
2
+ import { sortEventsAsc, sortEventsDesc } from "@welshman/util";
3
+ import { deriveArray, deriveEventsAsc, deriveEventsByIdByUrl, deriveEventsByIdForUrl, deriveEventsById, deriveEventsDesc, deriveIsDeleted, getEventsByIdByUrl, getEventsByIdForUrl, getEventsById, makeDeriveEvent, } from "@welshman/store";
4
+ import { derived } from "svelte/store";
5
+ import { projection } from "./base.js";
6
+ import { Network } from "./network.js";
7
+ import { Relays } from "./relays.js";
8
+ /**
9
+ * Reactive views over the app's repository. Every method binds this app's
10
+ * repository and tracker and hands back a `Projection` — read it synchronously
11
+ * with `.get()`, or subscribe to `.$` — so callers never build one from the
12
+ * other, and never construct `{repository, tracker}` by hand.
13
+ *
14
+ * Each projection supplies its own getter that queries the repository/tracker
15
+ * directly, rather than falling back to reading through the derived store. Those
16
+ * queries are index-backed; standing a derived store up and tearing it down just
17
+ * to read a value is not.
18
+ */
19
+ export class Events {
20
+ app;
21
+ constructor(app) {
22
+ this.app = app;
23
+ }
24
+ byId = (filters = [{}]) => {
25
+ const options = { repository: this.app.repository, filters };
26
+ return projection(deriveEventsById(options), () => getEventsById(options));
27
+ };
28
+ all = (filters = [{}]) => {
29
+ const options = { repository: this.app.repository, filters };
30
+ return projection(deriveArray(deriveEventsById(options)), () => Array.from(getEventsById(options).values()));
31
+ };
32
+ asc = (filters = [{}]) => {
33
+ const options = { repository: this.app.repository, filters };
34
+ return projection(deriveEventsAsc(deriveEventsById(options)), () => sortEventsAsc(getEventsById(options).values()));
35
+ };
36
+ desc = (filters = [{}]) => {
37
+ const options = { repository: this.app.repository, filters };
38
+ return projection(deriveEventsDesc(deriveEventsById(options)), () => sortEventsDesc(getEventsById(options).values()));
39
+ };
40
+ one = (idOrAddress, relays = []) => projection(makeDeriveEvent({
41
+ repository: this.app.repository,
42
+ includeDeleted: true,
43
+ onDerive: (filters, hints) => this.app.use(Network).load({ filters, relays: hints }),
44
+ })(idOrAddress, relays), () => this.app.repository.getEvent(idOrAddress));
45
+ isDeleted = (event) => projection(deriveIsDeleted(this.app.repository, event), () => this.app.repository.isDeleted(event));
46
+ // Scoped to one relay, via the tracker
47
+ byIdForUrl = (url, filters = [{}]) => {
48
+ const options = { url, filters, tracker: this.app.tracker, repository: this.app.repository };
49
+ return projection(deriveEventsByIdForUrl(options), () => getEventsByIdForUrl(options));
50
+ };
51
+ forUrl = (url, filters = [{}]) => {
52
+ const options = { url, filters, tracker: this.app.tracker, repository: this.app.repository };
53
+ return projection(deriveArray(deriveEventsByIdForUrl(options)), () => Array.from(getEventsByIdForUrl(options).values()));
54
+ };
55
+ byIdByUrl = (filters = [{}]) => {
56
+ const options = { filters, tracker: this.app.tracker, repository: this.app.repository };
57
+ return projection(deriveEventsByIdByUrl(options), () => getEventsByIdByUrl(options));
58
+ };
59
+ relaySignedForUrl = (url, filters = [{}]) => {
60
+ const forUrl = this.forUrl(url, filters);
61
+ return projection(derived([this.app.use(Relays).one(url), forUrl.$], ([$relay, $events]) => filter(spec({ pubkey: $relay?.self }), $events)), () => filter(spec({ pubkey: this.app.use(Relays).get(url)?.self }), forUrl.get()));
62
+ };
63
+ }
64
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/plugins/events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/plugins/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAC,qBAAqB,EAAE,IAAI,IAAI,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAElF,OAAO,EAAO,UAAU,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAC,aAAa,EAAc,MAAM,WAAW,CAAA;AACpD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AAKzC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,GAAG;IACrF,IAAI,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,cAAc,CAAA;CAC3B,CAAA;AAED;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,aAAa,CAAC,UAAU,CAAC;gBACtC,GAAG,EAAE,IAAI;IAQrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO;IAQhD,SAAS,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,UAAU,EAAE,CAAC,CAC0B;IAEhF,aAAa,GAAI,QAAQ,MAAM,EAAE,aAAY,MAAM,EAAO,sDACqB;IAE/E,MAAM,GAAU,QAAQ,UAAU,8CAQjC;IAED,MAAM,GAAU,SAAS,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,8CAUhE;IAED,kBAAkB,GAAI,OAAO,KAAK,KAAG,MAAM,EAAE,CAmB5C;IAED,qBAAqB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,EAAE,CAa3D;IAED,kBAAkB,GAAI,SAAS,yBAAyB,oBAWpD;CACL"}
1
+ {"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/plugins/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAC,qBAAqB,EAAE,IAAI,IAAI,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAGlF,OAAO,EAAO,UAAU,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAC,aAAa,EAAc,MAAM,WAAW,CAAA;AACpD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AAKzC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,GAAG;IACrF,IAAI,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,cAAc,CAAA;CAC3B,CAAA;AAED;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,aAAa,CAAC,UAAU,CAAC;gBACtC,GAAG,EAAE,IAAI;IAQrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO;IAQhD,SAAS,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,UAAU,EAAE,CAAC,CAC0B;IAEhF,aAAa,GAAI,QAAQ,MAAM,EAAE,aAAY,MAAM,EAAO,sDACqB;IAE/E,MAAM,GAAU,QAAQ,UAAU,8CAQjC;IAED,MAAM,GAAU,SAAS,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,8CAUhE;IAED,kBAAkB,GAAI,OAAO,KAAK,KAAG,MAAM,EAAE,CAmB5C;IAED,qBAAqB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,EAAE,CAgB3D;IAED,kBAAkB,GAAI,SAAS,yBAAyB,oBAWpD;CACL"}
@@ -1,11 +1,12 @@
1
1
  import { Scope, FeedController } from "@welshman/feeds";
2
+ import { max as maxValue } from "@welshman/lib";
2
3
  import { Address, FEED } from "@welshman/util";
3
4
  import { Feed } from "@welshman/domain";
4
5
  import { DerivedPlugin, projectFrom } from "./base.js";
5
6
  import { Network } from "./network.js";
6
7
  import { Router } from "./router.js";
7
8
  import { Domain } from "./domain.js";
8
- import { Wot } from "./wot.js";
9
+ import { Wot, WotScope } from "./wot.js";
9
10
  /**
10
11
  * NIP-51 kind-31890 saved feeds, keyed by address (many feeds per author).
11
12
  * Also builds `FeedController`s wired to this app. Scope/WOT pubkey resolution
@@ -56,17 +57,20 @@ export class Feeds extends DerivedPlugin {
56
57
  case Scope.Network:
57
58
  return this.app.use(Wot).network($pubkey).get();
58
59
  case Scope.Followers:
59
- return this.app.use(Wot).followers($pubkey).get();
60
+ return this.app.use(Wot).followers($pubkey, WotScope.Global).get();
60
61
  default:
61
62
  return [];
62
63
  }
63
64
  };
64
65
  getPubkeysForWOTRange = (min, max) => {
65
66
  const pubkeys = [];
66
- const $maxWot = this.app.use(Wot).max.get() ?? 0;
67
+ // Scored against the user's follows, so a range means the same thing to them as
68
+ // it does in their client's UI
69
+ const $scores = this.app.use(Wot).scores(WotScope.Follows).get();
70
+ const $maxWot = maxValue(Array.from($scores.values())) ?? 0;
67
71
  const thresholdMin = $maxWot * min;
68
72
  const thresholdMax = $maxWot * max;
69
- for (const [tpk, score] of this.app.use(Wot).graph.get().entries()) {
73
+ for (const [tpk, score] of $scores) {
70
74
  if (score >= thresholdMin && score <= thresholdMax) {
71
75
  pubkeys.push(tpk);
72
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../../../src/plugins/feeds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../../../src/plugins/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAErD,OAAO,EAAC,GAAG,IAAI,QAAQ,EAAC,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAC,IAAI,EAAyB,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,WAAW,CAAA;AAEpD,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAA;AAatC;;;;;GAKG;AACH,MAAM,OAAO,KAAM,SAAQ,aAAyB;IAClD,YAAY,GAAS;QACnB,KAAK,CAAC,GAAG,EAAE;YACT,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC;YAC1B,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACzC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;SAC/B,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,aAAuB,EAAE;QAC9C,MAAM,EAAC,MAAM,EAAE,UAAU,EAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAElD,OAAO,IAAI,CAAC,GAAG;aACZ,GAAG,CAAC,OAAO,CAAC;aACZ,eAAe,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAC,EAAE,UAAU,CAAC,CAAA;IAC7E,CAAC;IAED,SAAS,GAAG,CAAC,MAAc,EAA4B,EAAE,CACvD,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC,CAAC,CAAA;IAEhF,aAAa,GAAG,CAAC,MAAc,EAAE,aAAuB,EAAE,EAAE,EAAE,CAC5D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAC,EAAE,UAAU,CAAC,CAAA;IAE/E,MAAM,GAAG,KAAK,EAAE,MAAkB,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEvF,IAAI,MAAM,CAAC,WAAW;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAEjE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEvC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC,CAAA;IAED,MAAM,GAAG,KAAK,EAAE,OAAe,EAAE,EAAgC,EAAE,EAAE;QACnE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAE1C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAA;QAErD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAEtD,EAAE,CAAC,MAAM,CAAC,CAAA;QAEV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC,CAAA;IAED,kBAAkB,GAAG,CAAC,KAAY,EAAY,EAAE;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAA;QAErC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,CAAA;QACX,CAAC;QAED,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,KAAK,CAAC,IAAI;gBACb,OAAO,CAAC,OAAO,CAAC,CAAA;YAClB,KAAK,KAAK,CAAC,OAAO;gBAChB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAA;YACjD,KAAK,KAAK,CAAC,OAAO;gBAChB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAA;YACjD,KAAK,KAAK,CAAC,SAAS;gBAClB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;YACpE;gBACE,OAAO,EAAE,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,qBAAqB,GAAG,CAAC,GAAW,EAAE,GAAW,EAAY,EAAE;QAC7D,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,gFAAgF;QAChF,+BAA+B;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAA;QAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QAC3D,MAAM,YAAY,GAAG,OAAO,GAAG,GAAG,CAAA;QAClC,MAAM,YAAY,GAAG,OAAO,GAAG,GAAG,CAAA;QAElC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,kBAAkB,GAAG,CAAC,OAAkC,EAAE,EAAE,CAC1D,IAAI,cAAc,CAAC;QACjB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QAC5B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM;QAC7B,OAAO,EAAE;YACP,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;YACnB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;SAChC;QACD,GAAG,OAAO;KACX,CAAC,CAAA;CACL"}
@@ -12,10 +12,7 @@ export type LogMessage = {
12
12
  export declare class Logger {
13
13
  protected readonly app: IApp;
14
14
  protected store: import("svelte/store").Writable<LogMessage[]>;
15
- messages: {
16
- $: import("svelte/store").Readable<LogMessage[]>;
17
- get: () => LogMessage[];
18
- };
15
+ messages: import("./base.js").Projection<LogMessage[]>;
19
16
  constructor(app: IApp);
20
17
  log(source: string, { id, at, ...message }: {
21
18
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/plugins/logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED;;;GAGG;AACH,qBAAa,MAAM;IAIL,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI;IAHxC,SAAS,CAAC,KAAK,gDAA6B;IAC5C,QAAQ;;;MAAyB;gBAEF,GAAG,EAAE,IAAI;IAExC,GAAG,CACD,MAAM,EAAE,MAAM,EACd,EACE,EAAe,EACf,EAAe,EACf,GAAG,OAAO,EACX,EAAE;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC;CAIxD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/plugins/logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED;;;GAGG;AACH,qBAAa,MAAM;IAIL,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI;IAHxC,SAAS,CAAC,KAAK,gDAA6B;IAC5C,QAAQ,+CAAyB;gBAEF,GAAG,EAAE,IAAI;IAExC,GAAG,CACD,MAAM,EAAE,MAAM,EACd,EACE,EAAe,EACf,EAAe,EACf,GAAG,OAAO,EACX,EAAE;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC;CAIxD"}
@@ -8,7 +8,9 @@ import type { IApp } from "../app.js";
8
8
  export declare class Network {
9
9
  readonly app: IApp;
10
10
  load: Loader;
11
+ private controller;
11
12
  constructor(app: IApp);
13
+ private withSignal;
12
14
  makeLoader: (options: Omit<LoaderOptions, "context">) => Loader;
13
15
  request: (options: Omit<RequestOptions, "context">) => Promise<import("@welshman/util").TrustedEvent[]>;
14
16
  publish: (options: Omit<PublishOptions, "context">) => Promise<import("@welshman/net").PublishResultsByRelay>;
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../src/plugins/network.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAE1C,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,eAAe,CAAA;AAExF,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;GAGG;AACH,qBAAa,OAAO;IAGN,QAAQ,CAAC,GAAG,EAAE,IAAI;IAF9B,IAAI,EAAE,MAAM,CAAA;gBAES,GAAG,EAAE,IAAI;IAI9B,UAAU,GAAI,SAAS,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,KAAG,MAAM,CACN;IAExD,OAAO,GAAI,SAAS,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,sDACE;IAErD,OAAO,GAAI,SAAS,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,4DACE;IAErD,eAAe,GAAU,QAAQ,MAAM,EAAE,SAAQ,MAAW,EAAE,QAAO,MAAM,EAAO,gEAOjF;IAID,kBAAkB,GAAU,QAAQ,MAAM,EAAE,SAAQ,MAAW,EAAE,QAAO,MAAM,EAAO,sDAMpF;CACF"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../src/plugins/network.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAE1C,OAAO,KAAK,EACV,MAAM,EAEN,aAAa,EACb,cAAc,EACd,cAAc,EACf,MAAM,eAAe,CAAA;AAEtB,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;GAGG;AACH,qBAAa,OAAO;IAKN,QAAQ,CAAC,GAAG,EAAE,IAAI;IAJ9B,IAAI,EAAE,MAAM,CAAA;IAEZ,OAAO,CAAC,UAAU,CAAwB;gBAErB,GAAG,EAAE,IAAI;IAM9B,OAAO,CAAC,UAAU,CAKhB;IAEF,UAAU,GAAI,SAAS,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,KAAG,MAAM,CAI7D;IAED,OAAO,GAAI,SAAS,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,sDACmB;IAEtE,OAAO,GAAI,SAAS,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,4DACmB;IAEtE,eAAe,GAAU,QAAQ,MAAM,EAAE,SAAQ,MAAW,EAAE,QAAO,MAAM,EAAO,gEAOjF;IAID,kBAAkB,GAAU,QAAQ,MAAM,EAAE,SAAQ,MAAW,EAAE,QAAO,MAAM,EAAO,sDAMpF;CACF"}
@@ -9,13 +9,24 @@ import { Router } from "./router.js";
9
9
  export class Network {
10
10
  app;
11
11
  load;
12
+ controller = new AbortController();
12
13
  constructor(app) {
13
14
  this.app = app;
14
15
  this.load = this.makeLoader({ delay: 50, timeout: 3000, threshold: 0.5 });
16
+ app.onCleanup(() => this.controller.abort());
15
17
  }
16
- makeLoader = (options) => makeLoader({ ...options, context: this.app.netContext });
17
- request = (options) => request({ ...options, context: this.app.netContext });
18
- publish = (options) => publish({ ...options, context: this.app.netContext });
18
+ withSignal = (options) => ({
19
+ ...options,
20
+ signal: options.signal
21
+ ? AbortSignal.any([options.signal, this.controller.signal])
22
+ : this.controller.signal,
23
+ });
24
+ makeLoader = (options) => {
25
+ const load = makeLoader({ ...options, context: this.app.netContext });
26
+ return (loadOptions) => load(this.withSignal(loadOptions));
27
+ };
28
+ request = (options) => request({ ...this.withSignal(options), context: this.app.netContext });
29
+ publish = (options) => publish({ ...this.withSignal(options), context: this.app.netContext });
19
30
  loadUsingOutbox = async (pubkey, filter = {}, hints = []) => {
20
31
  const filters = [{ ...filter, authors: [pubkey] }];
21
32
  const scenario = await this.app.use(Router).resolve([...relays(hints), outbox(pubkey)]);
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/plugins/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;AACnC,OAAO,EAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAE7D,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAC,MAAM,eAAe,CAAA;AAE1D,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAGlC;;;GAGG;AACH,MAAM,OAAO,OAAO;IAGG;IAFrB,IAAI,CAAQ;IAEZ,YAAqB,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAC,CAAC,CAAA;IACzE,CAAC;IAED,UAAU,GAAG,CAAC,OAAuC,EAAU,EAAE,CAC/D,UAAU,CAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAC,CAAC,CAAA;IAExD,OAAO,GAAG,CAAC,OAAwC,EAAE,EAAE,CACrD,OAAO,CAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAC,CAAC,CAAA;IAErD,OAAO,GAAG,CAAC,OAAwC,EAAE,EAAE,CACrD,OAAO,CAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAC,CAAC,CAAA;IAErD,eAAe,GAAG,KAAK,EAAE,MAAc,EAAE,SAAiB,EAAE,EAAE,QAAkB,EAAE,EAAE,EAAE;QACpF,MAAM,OAAO,GAAa,CAAC,EAAC,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACvF,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAA;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;QAEvD,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;IACtC,CAAC,CAAA;IAED,iGAAiG;IACjG,+DAA+D;IAC/D,kBAAkB,GAAG,KAAK,EAAE,MAAc,EAAE,SAAiB,EAAE,EAAE,QAAkB,EAAE,EAAE,EAAE;QACvF,MAAM,OAAO,GAAa,CAAC,EAAC,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACvF,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAA;QAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;IAC3C,CAAC,CAAA;CACF"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/plugins/network.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../../src/plugins/profiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAA;AAK1C,OAAO,EAAU,aAAa,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAA;AAErF,OAAO,EAAC,aAAa,EAA2B,MAAM,WAAW,CAAA;AACjE,OAAO,KAAK,EAAC,UAAU,EAAE,MAAM,EAAC,MAAM,WAAW,CAAA;AAOjD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;GAGG;AACH,qBAAa,QAAS,SAAQ,aAAa,CAAC,aAAa,CAAC;IACxD,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;gBAE1C,GAAG,EAAE,IAAI;IAYrB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO;IAI/C,MAAM,GAAU,IAAI,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,8CAOlD;IAED,OAAO,GAAI,QAAQ,MAAM,GAAG,SAAS,EAAE,GAAG,MAAM,GAAG,EAAE,KAAG,UAAU,CAAC,MAAM,CAAC,CAOzE;IAED,OAAO,CAAC,UAAU,CAwCjB;CACF"}
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../../src/plugins/profiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAA;AAK1C,OAAO,EAAU,aAAa,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAA;AAErF,OAAO,EAAC,aAAa,EAA2B,MAAM,WAAW,CAAA;AACjE,OAAO,KAAK,EAAC,UAAU,EAAE,MAAM,EAAC,MAAM,WAAW,CAAA;AAOjD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;GAGG;AACH,qBAAa,QAAS,SAAQ,aAAa,CAAC,aAAa,CAAC;IACxD,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;gBAE1C,GAAG,EAAE,IAAI;IAYrB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO;IAI/C,MAAM,GAAU,IAAI,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,8CAOlD;IAED,OAAO,GAAI,QAAQ,MAAM,GAAG,SAAS,EAAE,GAAG,MAAM,GAAG,EAAE,KAAG,UAAU,CAAC,MAAM,CAAC,CAOzE;IAED,OAAO,CAAC,UAAU,CAyCjB;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { derived, readable } from "svelte/store";
2
2
  import { debounce } from "throttle-debounce";
3
- import { dec, inc } from "@welshman/lib";
3
+ import { dec, inc, max } from "@welshman/lib";
4
4
  import { PROFILE, searchRelays } from "@welshman/util";
5
5
  import { Profile, displayPubkey } from "@welshman/domain";
6
6
  import { throttled } from "@welshman/store";
@@ -9,7 +9,7 @@ import { Network } from "./network.js";
9
9
  import { Router } from "./router.js";
10
10
  import { Domain } from "./domain.js";
11
11
  import { Handles } from "./handles.js";
12
- import { Wot } from "./wot.js";
12
+ import { Wot, WotScope } from "./wot.js";
13
13
  import { User } from "../user.js";
14
14
  /**
15
15
  * Kind-0 profiles, keyed by pubkey. Loaded via the outbox model (the author's
@@ -39,6 +39,10 @@ export class Profiles extends DerivedPlugin {
39
39
  return projection(pubkey ? derived(this.one(pubkey, ...args), read) : readable(""), () => read(pubkey ? this.get(pubkey) : undefined));
40
40
  };
41
41
  makeSearch = ($profiles = this.all.get()) => {
42
+ // Snapshot the scores the search ranks by — one walk of the web of trust per
43
+ // search, rather than a lookup per result per keystroke
44
+ const $scores = this.app.use(Wot).scores(WotScope.Follows).get();
45
+ const $maxScore = max(Array.from($scores.values())) || 1;
42
46
  return createSearch($profiles, {
43
47
  onSearch: debounce(500, async (search) => {
44
48
  if (search.length > 2) {
@@ -50,11 +54,7 @@ export class Profiles extends DerivedPlugin {
50
54
  }
51
55
  }),
52
56
  getValue: (profile) => profile.author(),
53
- sortFn: ({ score = 1, item }) => {
54
- const wot = this.app.use(Wot);
55
- const wotScore = wot.graph.get().get(item.author()) || 0;
56
- return dec(score) * inc(wotScore / (wot.max.get() || 1));
57
- },
57
+ sortFn: ({ score = 1, item }) => dec(score) * inc(($scores.get(item.author()) ?? 0) / $maxScore),
58
58
  fuseOptions: {
59
59
  keys: ["nip05", { name: "name", weight: 0.8 }, { name: "about", weight: 0.3 }],
60
60
  threshold: 0.3,