@welshman/app 0.11.2 → 0.12.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 (42) hide show
  1. package/dist/app/src/command.d.ts +5 -5
  2. package/dist/app/src/command.d.ts.map +1 -1
  3. package/dist/app/src/command.js +3 -3
  4. package/dist/app/src/command.js.map +1 -1
  5. package/dist/app/src/index.d.ts +1 -1
  6. package/dist/app/src/index.d.ts.map +1 -1
  7. package/dist/app/src/index.js +1 -1
  8. package/dist/app/src/index.js.map +1 -1
  9. package/dist/app/src/plugins/publisher.d.ts +122 -0
  10. package/dist/app/src/plugins/publisher.d.ts.map +1 -0
  11. package/dist/app/src/plugins/publisher.js +368 -0
  12. package/dist/app/src/plugins/publisher.js.map +1 -0
  13. package/dist/app/src/plugins/wraps.d.ts +4 -4
  14. package/dist/app/src/plugins/wraps.d.ts.map +1 -1
  15. package/dist/app/src/plugins/wraps.js +5 -3
  16. package/dist/app/src/plugins/wraps.js.map +1 -1
  17. package/dist/domain/src/kinds/CalendarRsvp.d.ts +2 -2
  18. package/dist/domain/src/kinds/CalendarRsvp.d.ts.map +1 -1
  19. package/dist/domain/src/kinds/CalendarRsvp.js +13 -10
  20. package/dist/domain/src/kinds/CalendarRsvp.js.map +1 -1
  21. package/dist/domain/src/kinds/MuteList.d.ts +4 -0
  22. package/dist/domain/src/kinds/MuteList.d.ts.map +1 -1
  23. package/dist/domain/src/kinds/MuteList.js +13 -1
  24. package/dist/domain/src/kinds/MuteList.js.map +1 -1
  25. package/dist/domain/src/kinds/RelayMembers.d.ts +4 -1
  26. package/dist/domain/src/kinds/RelayMembers.d.ts.map +1 -1
  27. package/dist/domain/src/kinds/RelayMembers.js +24 -6
  28. package/dist/domain/src/kinds/RelayMembers.js.map +1 -1
  29. package/dist/domain/src/kinds/RoomAdmins.d.ts +4 -1
  30. package/dist/domain/src/kinds/RoomAdmins.d.ts.map +1 -1
  31. package/dist/domain/src/kinds/RoomAdmins.js +21 -6
  32. package/dist/domain/src/kinds/RoomAdmins.js.map +1 -1
  33. package/dist/store/src/misc.d.ts +3 -2
  34. package/dist/store/src/misc.d.ts.map +1 -1
  35. package/dist/store/src/misc.js +2 -3
  36. package/dist/store/src/misc.js.map +1 -1
  37. package/dist/tsconfig.build.tsbuildinfo +1 -1
  38. package/package.json +15 -15
  39. package/dist/app/src/plugins/thunk.d.ts +0 -76
  40. package/dist/app/src/plugins/thunk.d.ts.map +0 -1
  41. package/dist/app/src/plugins/thunk.js +0 -341
  42. package/dist/app/src/plugins/thunk.js.map +0 -1
@@ -4,7 +4,7 @@ import type { IApp } from "./app.js";
4
4
  * An event paired with the relays it's meant for, without committing to how
5
5
  * it gets published. Plugin mutation methods (`create`/`update`/etc.) build
6
6
  * the event and return a `Command` instead of publishing it directly, so the
7
- * caller decides: `publish()` sends it through the normal `Thunks` pipeline,
7
+ * caller decides: `publish()` sends it through the normal `Publisher` pipeline,
8
8
  * and `publishToRelays(urls)` targets a specific set of relays.
9
9
  */
10
10
  export declare class Command {
@@ -12,9 +12,9 @@ export declare class Command {
12
12
  readonly event: EventTemplate;
13
13
  readonly relays: string[];
14
14
  constructor(app: IApp, event: EventTemplate, relays: string[]);
15
- publish: () => import("./index.js").Thunk;
16
- publishToRelays: (urls: string[]) => import("./index.js").Thunk;
15
+ publish: () => import("./index.js").Publication;
16
+ publishToRelays: (urls: string[]) => import("./index.js").Publication;
17
17
  }
18
- export declare const publish: (command: Command) => import("./index.js").Thunk;
19
- export declare const publishToRelays: (urls: string[]) => (command: Command) => import("./index.js").Thunk;
18
+ export declare const publish: (command: Command) => import("./index.js").Publication;
19
+ export declare const publishToRelays: (urls: string[]) => (command: Command) => import("./index.js").Publication;
20
20
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,UAAU,CAAA;AAGlC;;;;;;GAMG;AACH,qBAAa,OAAO;IAEhB,QAAQ,CAAC,GAAG,EAAE,IAAI;IAClB,QAAQ,CAAC,KAAK,EAAE,aAAa;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE;gBAFhB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM,EAAE;IAG3B,OAAO,mCAA0C;IAEjD,eAAe,GAAI,MAAM,MAAM,EAAE,gCACgC;CAClE;AAED,eAAO,MAAM,OAAO,GAAI,SAAS,OAAO,+BAAsB,CAAA;AAE9D,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,MAAM,SAAS,OAAO,+BACrC,CAAA"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,UAAU,CAAA;AAGlC;;;;;;GAMG;AACH,qBAAa,OAAO;IAEhB,QAAQ,CAAC,GAAG,EAAE,IAAI;IAClB,QAAQ,CAAC,KAAK,EAAE,aAAa;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE;gBAFhB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM,EAAE;IAG3B,OAAO,yCAA0C;IAEjD,eAAe,GAAI,MAAM,MAAM,EAAE,sCACmC;CACrE;AAED,eAAO,MAAM,OAAO,GAAI,SAAS,OAAO,qCAAsB,CAAA;AAE9D,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,MAAM,SAAS,OAAO,qCACrC,CAAA"}
@@ -1,9 +1,9 @@
1
- import { Thunks } from "./plugins/thunk.js";
1
+ import { Publisher } from "./plugins/publisher.js";
2
2
  /**
3
3
  * An event paired with the relays it's meant for, without committing to how
4
4
  * it gets published. Plugin mutation methods (`create`/`update`/etc.) build
5
5
  * the event and return a `Command` instead of publishing it directly, so the
6
- * caller decides: `publish()` sends it through the normal `Thunks` pipeline,
6
+ * caller decides: `publish()` sends it through the normal `Publisher` pipeline,
7
7
  * and `publishToRelays(urls)` targets a specific set of relays.
8
8
  */
9
9
  export class Command {
@@ -16,7 +16,7 @@ export class Command {
16
16
  this.relays = relays;
17
17
  }
18
18
  publish = () => this.publishToRelays(this.relays);
19
- publishToRelays = (urls) => this.app.use(Thunks).publish({ event: this.event, relays: urls });
19
+ publishToRelays = (urls) => this.app.use(Publisher).publish({ event: this.event, relays: urls });
20
20
  }
21
21
  export const publish = (command) => command.publish();
22
22
  export const publishToRelays = (urls) => (command) => command.publishToRelays(urls);
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAA;AAEzC;;;;;;GAMG;AACH,MAAM,OAAO,OAAO;IAEP;IACA;IACA;IAHX,YACW,GAAS,EACT,KAAoB,EACpB,MAAgB;QAFhB,QAAG,GAAH,GAAG,CAAM;QACT,UAAK,GAAL,KAAK,CAAe;QACpB,WAAM,GAAN,MAAM,CAAU;IACxB,CAAC;IAEJ,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEjD,eAAe,GAAG,CAAC,IAAc,EAAE,EAAE,CACnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;CAClE;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;AAE9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,CAAC,OAAgB,EAAE,EAAE,CACtE,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAA;AAEhD;;;;;;GAMG;AACH,MAAM,OAAO,OAAO;IAEP;IACA;IACA;IAHX,YACW,GAAS,EACT,KAAoB,EACpB,MAAgB;QAFhB,QAAG,GAAH,GAAG,CAAM;QACT,UAAK,GAAL,KAAK,CAAe;QACpB,WAAM,GAAN,MAAM,CAAU;IACxB,CAAC;IAEJ,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEjD,eAAe,GAAG,CAAC,IAAc,EAAE,EAAE,CACnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;CACrE;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;AAE9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,CAAC,OAAgB,EAAE,EAAE,CACtE,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA"}
@@ -40,5 +40,5 @@ export * from "./plugins/rooms.js";
40
40
  export * from "./plugins/relayRoles.js";
41
41
  export * from "./plugins/relayMembers.js";
42
42
  export * from "./plugins/relayManagement.js";
43
- export * from "./plugins/thunk.js";
43
+ export * from "./plugins/publisher.js";
44
44
  //# sourceMappingURL=index.d.ts.map
@@ -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,uBAAuB,CAAA;AACrC,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"}
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,uBAAuB,CAAA;AACrC,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,wBAAwB,CAAA"}
@@ -40,5 +40,5 @@ export * from "./plugins/rooms.js";
40
40
  export * from "./plugins/relayRoles.js";
41
41
  export * from "./plugins/relayMembers.js";
42
42
  export * from "./plugins/relayManagement.js";
43
- export * from "./plugins/thunk.js";
43
+ export * from "./plugins/publisher.js";
44
44
  //# sourceMappingURL=index.js.map
@@ -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,uBAAuB,CAAA;AACrC,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"}
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,uBAAuB,CAAA;AACrC,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,wBAAwB,CAAA"}
@@ -0,0 +1,122 @@
1
+ import type { Subscriber } from "svelte/store";
2
+ import { TaskQueue } from "@welshman/lib";
3
+ import { HashedEvent, EventTemplate } from "@welshman/util";
4
+ import { PublishStatus, PublishResultsByRelay } from "@welshman/net";
5
+ import { ISigner } from "@welshman/signer";
6
+ import type { IApp } from "../app.js";
7
+ /** What the caller asked for. A retry rebuilds from it and the publication's current event. */
8
+ export type PublishRequest = {
9
+ event: EventTemplate;
10
+ relays: string[];
11
+ recipient?: string;
12
+ delay?: number;
13
+ pow?: number;
14
+ priority?: number;
15
+ timeout?: number;
16
+ };
17
+ /** A publication's place in the pipeline. Every terminal state has a result for each relay. */
18
+ export type PublicationState = {
19
+ stage: "queued";
20
+ } | {
21
+ stage: "delayed";
22
+ until: number;
23
+ } | {
24
+ stage: "wrapping";
25
+ } | {
26
+ stage: "pow";
27
+ difficulty: number;
28
+ } | {
29
+ stage: "signing";
30
+ } | {
31
+ stage: "sending";
32
+ results: PublishResultsByRelay;
33
+ } | {
34
+ stage: "sent";
35
+ results: PublishResultsByRelay;
36
+ } | {
37
+ stage: "failed";
38
+ error: string;
39
+ results: PublishResultsByRelay;
40
+ } | {
41
+ stage: "aborted";
42
+ results: PublishResultsByRelay;
43
+ };
44
+ export type PublicationStage = PublicationState["stage"];
45
+ export declare const TERMINAL_STAGES: PublicationStage[];
46
+ /** Status queries over per-relay results. A relay with no result is still in progress. */
47
+ export declare abstract class PublishStatusView {
48
+ abstract readonly relays: string[];
49
+ abstract readonly results: PublishResultsByRelay;
50
+ abstract isComplete(): boolean;
51
+ abstract abort(): void;
52
+ getUrlsWithStatus(statuses: PublishStatus | PublishStatus[]): string[];
53
+ getCompleteUrls(): string[];
54
+ getIncompleteUrls(): string[];
55
+ getFailedUrls(): string[];
56
+ hasStatus(statuses: PublishStatus | PublishStatus[]): boolean;
57
+ canAbort(): boolean;
58
+ getError(): string | undefined;
59
+ }
60
+ /** One event on its way to a set of relays. The `Publisher` moves it with `advance`. */
61
+ export declare class Publication extends PublishStatusView {
62
+ readonly request: PublishRequest;
63
+ state: PublicationState;
64
+ event: HashedEvent;
65
+ wrap?: HashedEvent;
66
+ readonly controller: AbortController;
67
+ private _subs;
68
+ private _settled;
69
+ constructor(request: PublishRequest, event: HashedEvent);
70
+ get relays(): string[];
71
+ get results(): PublishResultsByRelay;
72
+ get signal(): AbortSignal;
73
+ isComplete(): boolean;
74
+ advance(state: PublicationState, draft?: {
75
+ event: HashedEvent;
76
+ wrap?: HashedEvent;
77
+ }): void;
78
+ abort(): void;
79
+ subscribe(subscriber: Subscriber<this>): () => void;
80
+ settled(): import("@welshman/lib").Deferred<this, this>;
81
+ }
82
+ export declare const mergeResults: (publications: Publication[]) => PublishResultsByRelay;
83
+ /** Several publications watched as one, e.g. a rumor gift-wrapped for each recipient. */
84
+ export declare class PublicationGroup extends PublishStatusView {
85
+ readonly publications: Publication[];
86
+ private _subs;
87
+ constructor(publications: Publication[]);
88
+ get relays(): string[];
89
+ get results(): PublishResultsByRelay;
90
+ isComplete(): boolean;
91
+ abort(): void;
92
+ subscribe(subscriber: Subscriber<this>): () => void;
93
+ settled(): Promise<this>;
94
+ }
95
+ export type Publishable = Publication | PublicationGroup;
96
+ type Draft = {
97
+ event: HashedEvent;
98
+ wrap?: HashedEvent;
99
+ wrapper?: ISigner;
100
+ };
101
+ type StageContext = {
102
+ app: IApp;
103
+ publication: Publication;
104
+ enter: (state: PublicationState) => void;
105
+ };
106
+ type Stage = (draft: Draft, ctx: StageContext) => Promise<Draft>;
107
+ export declare const STAGES: Stage[];
108
+ /** Per-app publish pipeline, reached via `app.use(Publisher)`. */
109
+ export declare class Publisher {
110
+ readonly app: IApp;
111
+ history: import("svelte/store").Writable<Publication[]>;
112
+ queue: TaskQueue<Publication>;
113
+ constructor(app: IApp);
114
+ publish: (request: PublishRequest) => Publication;
115
+ retry(target: Publication, relays?: string[]): Publication;
116
+ retry(target: PublicationGroup, relays?: string[]): PublicationGroup;
117
+ merge(items: Publishable[]): PublicationGroup;
118
+ private run;
119
+ private observe;
120
+ }
121
+ export {};
122
+ //# sourceMappingURL=publisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../../../src/plugins/publisher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,368 @@
1
+ import { get, writable } from "svelte/store";
2
+ import { append, TaskQueue, ensurePlural, remove, defer, sleep, now, uniq } from "@welshman/lib";
3
+ import { isSignedEvent, WRAPPED_KINDS, prep, makePow, } from "@welshman/util";
4
+ import { PublishStatus } from "@welshman/net";
5
+ import { Nip01Signer, Nip59 } from "@welshman/signer";
6
+ import { Network } from "./network.js";
7
+ import { User } from "../user.js";
8
+ export const TERMINAL_STAGES = ["sent", "failed", "aborted"];
9
+ const { Pending, Success, Failure, Timeout, Aborted } = PublishStatus;
10
+ const resultsFor = (relays, status, detail) => {
11
+ const results = {};
12
+ for (const relay of relays) {
13
+ results[relay] = { relay, status, detail };
14
+ }
15
+ return results;
16
+ };
17
+ /** Status queries over per-relay results. A relay with no result is still in progress. */
18
+ export class PublishStatusView {
19
+ getUrlsWithStatus(statuses) {
20
+ const matches = ensurePlural(statuses);
21
+ return this.relays.filter(relay => {
22
+ const result = this.results[relay];
23
+ return result !== undefined && matches.includes(result.status);
24
+ });
25
+ }
26
+ getCompleteUrls() {
27
+ return this.getUrlsWithStatus([Success, Failure, Timeout, Aborted]);
28
+ }
29
+ getIncompleteUrls() {
30
+ return this.relays.filter(relay => [undefined, Pending].includes(this.results[relay]?.status));
31
+ }
32
+ getFailedUrls() {
33
+ return this.getUrlsWithStatus([Failure, Timeout]);
34
+ }
35
+ hasStatus(statuses) {
36
+ return this.getUrlsWithStatus(statuses).length > 0;
37
+ }
38
+ // Nothing has reached a relay yet, so aborting still undoes the publish entirely.
39
+ canAbort() {
40
+ return this.relays.some(relay => this.results[relay] === undefined);
41
+ }
42
+ getError() {
43
+ return this.relays.map(relay => this.results[relay]).find(result => result?.status === Failure)
44
+ ?.detail;
45
+ }
46
+ }
47
+ /** One event on its way to a set of relays. The `Publisher` moves it with `advance`. */
48
+ export class Publication extends PublishStatusView {
49
+ request;
50
+ state = { stage: "queued" };
51
+ // Mined and signed as the pipeline runs. For a gift wrap, this is the rumor inside `wrap`.
52
+ event;
53
+ wrap;
54
+ controller = new AbortController();
55
+ _subs = [];
56
+ _settled = defer();
57
+ constructor(request, event) {
58
+ super();
59
+ this.request = request;
60
+ this.event = event;
61
+ }
62
+ get relays() {
63
+ return this.request.relays;
64
+ }
65
+ get results() {
66
+ return "results" in this.state ? this.state.results : {};
67
+ }
68
+ get signal() {
69
+ return this.controller.signal;
70
+ }
71
+ isComplete() {
72
+ return TERMINAL_STAGES.includes(this.state.stage);
73
+ }
74
+ advance(state, draft) {
75
+ if (!this.isComplete()) {
76
+ this.state = state;
77
+ if (draft) {
78
+ this.event = draft.event;
79
+ this.wrap = draft.wrap;
80
+ }
81
+ for (const subscriber of this._subs) {
82
+ subscriber(this);
83
+ }
84
+ if (this.isComplete()) {
85
+ this._subs = [];
86
+ this._settled.resolve(this);
87
+ }
88
+ }
89
+ }
90
+ // Relays that already answered keep their result.
91
+ abort() {
92
+ const results = { ...resultsFor(this.relays, Aborted, "aborted"), ...this.results };
93
+ for (const [relay, result] of Object.entries(results)) {
94
+ if (result.status === Pending) {
95
+ results[relay] = { relay, status: Aborted, detail: "aborted" };
96
+ }
97
+ }
98
+ this.advance({ stage: "aborted", results });
99
+ this.controller.abort();
100
+ }
101
+ // A settled publication never changes again, so its subscribers aren't kept.
102
+ subscribe(subscriber) {
103
+ subscriber(this);
104
+ if (!this.isComplete()) {
105
+ this._subs.push(subscriber);
106
+ }
107
+ return () => {
108
+ this._subs = remove(subscriber, this._subs);
109
+ };
110
+ }
111
+ settled() {
112
+ return this._settled;
113
+ }
114
+ }
115
+ // Pending first, then the worst outcome, so a relay succeeds only when every publication did.
116
+ const MERGE_PRECEDENCE = [Pending, Failure, Timeout, Aborted, Success];
117
+ export const mergeResults = (publications) => {
118
+ const results = {};
119
+ const rank = (result) => MERGE_PRECEDENCE.indexOf(result.status);
120
+ for (const relay of uniq(publications.flatMap(p => p.relays))) {
121
+ const sending = publications.filter(p => p.relays.includes(relay));
122
+ const answered = sending
123
+ .map(p => p.results[relay])
124
+ .filter((result) => result !== undefined);
125
+ if (answered.length === sending.length) {
126
+ results[relay] = answered.reduce((a, b) => (rank(b) < rank(a) ? b : a));
127
+ }
128
+ }
129
+ return results;
130
+ };
131
+ /** Several publications watched as one, e.g. a rumor gift-wrapped for each recipient. */
132
+ export class PublicationGroup extends PublishStatusView {
133
+ publications;
134
+ _subs = [];
135
+ constructor(publications) {
136
+ super();
137
+ this.publications = publications;
138
+ for (const publication of publications) {
139
+ publication.subscribe(() => {
140
+ for (const subscriber of this._subs) {
141
+ subscriber(this);
142
+ }
143
+ if (this.isComplete()) {
144
+ this._subs = [];
145
+ }
146
+ });
147
+ }
148
+ }
149
+ get relays() {
150
+ return uniq(this.publications.flatMap(p => p.relays));
151
+ }
152
+ get results() {
153
+ return mergeResults(this.publications);
154
+ }
155
+ isComplete() {
156
+ return this.publications.every(p => p.isComplete());
157
+ }
158
+ abort() {
159
+ this.publications.forEach(p => p.abort());
160
+ }
161
+ // As with a publication, a settled group never changes again, so its subscribers aren't kept.
162
+ subscribe(subscriber) {
163
+ subscriber(this);
164
+ if (!this.isComplete()) {
165
+ this._subs.push(subscriber);
166
+ }
167
+ return () => {
168
+ this._subs = remove(subscriber, this._subs);
169
+ };
170
+ }
171
+ async settled() {
172
+ await Promise.all(this.publications.map(p => p.settled()));
173
+ return this;
174
+ }
175
+ }
176
+ // A remote signer can otherwise hang the publication indefinitely.
177
+ const SIGN_TIMEOUT = 30_000;
178
+ // The soft-undo window comes before anything is signed.
179
+ const delayStage = async (draft, { publication, enter }) => {
180
+ const { delay } = publication.request;
181
+ if (delay) {
182
+ enter({ stage: "delayed", until: now() + delay / 1000 });
183
+ await Promise.race([
184
+ sleep(delay),
185
+ new Promise(resolve => publication.signal.addEventListener("abort", resolve, { once: true })),
186
+ ]);
187
+ }
188
+ return draft;
189
+ };
190
+ // The user signs the seal, and a throwaway key signs the wrap.
191
+ const wrapStage = async (draft, { app, publication, enter }) => {
192
+ const { recipient } = publication.request;
193
+ let result = draft;
194
+ if (recipient) {
195
+ enter({ stage: "wrapping" });
196
+ const wrapper = Nip01Signer.ephemeral();
197
+ const nip59 = new Nip59(User.require(app).signer, wrapper);
198
+ result = { ...draft, wrapper, wrap: await nip59.wrap(recipient, draft.event) };
199
+ }
200
+ return result;
201
+ };
202
+ // Relays receive the wrap rather than the rumor, so the wrap is what gets mined.
203
+ const powStage = async (draft, { publication, enter }) => {
204
+ const { pow } = publication.request;
205
+ const target = draft.wrap ?? draft.event;
206
+ let result = draft;
207
+ if (pow && (draft.wrap || !isSignedEvent(target))) {
208
+ enter({ stage: "pow", difficulty: pow });
209
+ // Mining re-hashes, so it starts from the owned fields and leaves any id or signature behind.
210
+ const { kind, tags, content, created_at, pubkey } = target;
211
+ const mined = await makePow({ kind, tags, content, created_at, pubkey }, pow).result;
212
+ result = draft.wrap ? { ...draft, wrap: mined } : { ...draft, event: mined };
213
+ }
214
+ return result;
215
+ };
216
+ const signStage = async (draft, { app, enter }) => {
217
+ const options = { signal: AbortSignal.timeout(SIGN_TIMEOUT) };
218
+ let result = draft;
219
+ if (draft.wrap && draft.wrapper && !isSignedEvent(draft.wrap)) {
220
+ result = { ...draft, wrap: await draft.wrapper.sign(draft.wrap, options) };
221
+ }
222
+ if (!draft.wrap && !isSignedEvent(draft.event)) {
223
+ enter({ stage: "signing" });
224
+ result = { ...draft, event: await User.require(app).sign(draft.event, options) };
225
+ }
226
+ return result;
227
+ };
228
+ const sendStage = async (draft, { app, publication, enter }) => {
229
+ const { relays, priority, timeout } = publication.request;
230
+ let results = resultsFor(relays, Pending, "");
231
+ const update = (result) => {
232
+ results = { ...results, [result.relay]: result };
233
+ enter({ stage: "sending", results });
234
+ };
235
+ const event = draft.wrap ?? draft.event;
236
+ if (!isSignedEvent(event)) {
237
+ throw new Error("Attempted to send an unsigned event");
238
+ }
239
+ enter({ stage: "sending", results });
240
+ await app.use(Network).publish({
241
+ event,
242
+ relays,
243
+ priority,
244
+ timeout,
245
+ signal: publication.signal,
246
+ onPending: update,
247
+ onSuccess: update,
248
+ onFailure: update,
249
+ onTimeout: update,
250
+ onAborted: update,
251
+ });
252
+ enter({ stage: "sent", results });
253
+ return draft;
254
+ };
255
+ export const STAGES = [delayStage, wrapStage, powStage, signStage, sendStage];
256
+ /** Per-app publish pipeline, reached via `app.use(Publisher)`. */
257
+ export class Publisher {
258
+ app;
259
+ history = writable([]);
260
+ // Paces how fast publications enter the pipeline.
261
+ queue = new TaskQueue({
262
+ batchSize: 10,
263
+ batchDelay: 100,
264
+ processItem: (publication) => {
265
+ this.run(publication);
266
+ },
267
+ });
268
+ constructor(app) {
269
+ this.app = app;
270
+ app.onCleanup(() => {
271
+ this.queue.clear();
272
+ // Stops in-flight publishes and unwinds their optimistic writes.
273
+ for (const publication of get(this.history)) {
274
+ publication.abort();
275
+ }
276
+ });
277
+ }
278
+ publish = (request) => {
279
+ if (!request.recipient && WRAPPED_KINDS.includes(request.event.kind)) {
280
+ throw new Error(`Attempted to publish a kind ${request.event.kind} without wrapping it`);
281
+ }
282
+ const event = prep(request.event, User.require(this.app).pubkey);
283
+ const publication = new Publication(request, event);
284
+ this.observe(publication);
285
+ this.history.update($history => append(publication, $history));
286
+ this.queue.push(publication);
287
+ return publication;
288
+ };
289
+ retry(target, relays) {
290
+ const targets = (p) => relays ? p.relays.filter(r => relays.includes(r)) : p.relays;
291
+ const replaced = target instanceof PublicationGroup
292
+ ? target.publications.filter(p => targets(p).length > 0)
293
+ : [target];
294
+ this.history.update($history => $history.filter(p => !replaced.includes(p)));
295
+ const retried = replaced.map(p => this.publish({ ...p.request, event: p.event, relays: targets(p) }));
296
+ return target instanceof PublicationGroup ? new PublicationGroup(retried) : retried[0];
297
+ }
298
+ merge(items) {
299
+ return new PublicationGroup(items.flatMap(p => (p instanceof PublicationGroup ? p.publications : [p])));
300
+ }
301
+ async run(publication) {
302
+ const ctx = { app: this.app, publication };
303
+ let draft = { event: publication.event };
304
+ try {
305
+ for (const stage of STAGES) {
306
+ if (!publication.isComplete()) {
307
+ draft = await stage(draft, { ...ctx, enter: state => publication.advance(state, draft) });
308
+ }
309
+ }
310
+ }
311
+ catch (e) {
312
+ const error = String(e || "Failed to publish event");
313
+ console.error("Failed to publish event", e);
314
+ publication.advance({
315
+ stage: "failed",
316
+ error,
317
+ results: resultsFor(publication.relays, Failure, error),
318
+ });
319
+ }
320
+ }
321
+ observe(publication) {
322
+ const { repository, tracker, wrapManager } = this.app;
323
+ const { recipient } = publication.request;
324
+ let current = publication.event;
325
+ let registeredWrap;
326
+ for (const url of publication.relays) {
327
+ tracker.track(current.id, url);
328
+ }
329
+ repository.publish(current);
330
+ publication.subscribe(({ state, event, wrap }) => {
331
+ // Only pow changes the id. A signature on the same id is taken in place.
332
+ if (event.id !== current.id) {
333
+ for (const url of publication.relays) {
334
+ tracker.removeRelay(current.id, url);
335
+ tracker.track(event.id, url);
336
+ }
337
+ repository.removeEvent(current.id);
338
+ }
339
+ if (event !== current) {
340
+ repository.publish(event);
341
+ current = event;
342
+ }
343
+ if (recipient &&
344
+ wrap &&
345
+ isSignedEvent(wrap) &&
346
+ state.stage === "sending" &&
347
+ !registeredWrap) {
348
+ registeredWrap = wrap;
349
+ wrapManager.add({ recipient, wrap, rumor: event });
350
+ }
351
+ if ("results" in state) {
352
+ for (const { relay, status } of Object.values(state.results)) {
353
+ if (![Pending, Success].includes(status)) {
354
+ tracker.removeRelay(current.id, relay);
355
+ }
356
+ }
357
+ }
358
+ if (state.stage === "aborted") {
359
+ if (registeredWrap) {
360
+ wrapManager.remove(registeredWrap.id);
361
+ }
362
+ repository.removeEvent(current.id);
363
+ this.history.update($history => remove(publication, $history));
364
+ }
365
+ });
366
+ }
367
+ }
368
+ //# sourceMappingURL=publisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../../../src/plugins/publisher.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { TaskQueue } from "@welshman/lib";
2
2
  import type { TrustedEvent, EventTemplate } from "@welshman/util";
3
- import { MergedThunk } from "./thunk.js";
4
- import type { ThunkOptions } from "./thunk.js";
3
+ import { PublicationGroup } from "./publisher.js";
4
+ import type { PublishRequest } from "./publisher.js";
5
5
  import type { IApp } from "../app.js";
6
- export type SendWrappedOptions = Omit<ThunkOptions, "event" | "relays" | "recipient" | "app" | "user"> & {
6
+ export type SendWrappedOptions = Omit<PublishRequest, "event" | "relays" | "recipient"> & {
7
7
  event: EventTemplate;
8
8
  recipients: string[];
9
9
  };
@@ -29,6 +29,6 @@ export declare class Wraps {
29
29
  constructor(app: IApp);
30
30
  retry: (wrap: TrustedEvent, delay: number) => void;
31
31
  enqueue: (wrap: TrustedEvent) => void;
32
- publish: ({ event, recipients, ...options }: SendWrappedOptions) => Promise<MergedThunk>;
32
+ publish: ({ event, recipients, ...options }: SendWrappedOptions) => Promise<PublicationGroup>;
33
33
  }
34
34
  //# sourceMappingURL=wraps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wraps.d.ts","sourceRoot":"","sources":["../../../../src/plugins/wraps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAY,MAAM,eAAe,CAAA;AAElD,OAAO,KAAK,EAAC,YAAY,EAAe,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAC,WAAW,EAAS,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAA;AAG5C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,YAAY,EACZ,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAClD,GAAG;IACF,KAAK,EAAE,aAAa,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAGpC,eAAO,MAAM,cAAc,QAAS,CAAA;AAGpC,eAAO,MAAM,kBAAkB,OAAQ,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,qBAAa,KAAK;IAKJ,QAAQ,CAAC,GAAG,EAAE,IAAI;IAJ9B,cAAc,sBAA4B;IAC1C,WAAW,sBAA2C;IACtD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,CAAA;gBAET,GAAG,EAAE,IAAI;IA+C9B,KAAK,GAAI,MAAM,YAAY,EAAE,OAAO,MAAM,UAOzC;IAED,OAAO,GAAI,MAAM,YAAY,UAM5B;IAID,OAAO,GAAU,mCAAiC,kBAAkB,0BAenE;CACF"}
1
+ {"version":3,"file":"wraps.d.ts","sourceRoot":"","sources":["../../../../src/plugins/wraps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAY,MAAM,eAAe,CAAA;AAElD,OAAO,KAAK,EAAC,YAAY,EAAe,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAC,gBAAgB,EAAY,MAAM,gBAAgB,CAAA;AAC1D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAA;AAGlD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC,GAAG;IACxF,KAAK,EAAE,aAAa,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAGpC,eAAO,MAAM,cAAc,QAAS,CAAA;AAGpC,eAAO,MAAM,kBAAkB,OAAQ,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,qBAAa,KAAK;IAKJ,QAAQ,CAAC,GAAG,EAAE,IAAI;IAJ9B,cAAc,sBAA4B;IAC1C,WAAW,sBAA2C;IACtD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,CAAA;gBAET,GAAG,EAAE,IAAI;IA+C9B,KAAK,GAAI,MAAM,YAAY,EAAE,OAAO,MAAM,UAOzC;IAED,OAAO,GAAI,MAAM,YAAY,UAM5B;IAID,OAAO,GAAU,mCAAiC,kBAAkB,+BAiBnE;CACF"}