@welshman/app 0.0.17 → 0.0.19

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.
@@ -26,9 +26,8 @@ _a = (0, collection_1.collection)({
26
26
  // better selections the moment we have a result, even if it's outdated
27
27
  await new Promise(resolve => {
28
28
  (0, relaySelections_1.loadRelaySelections)(pubkey, {
29
- onEvent: (event) => {
30
- resolve();
31
- }
29
+ onEvent: () => resolve(),
30
+ onComplete: () => resolve(),
32
31
  });
33
32
  });
34
33
  await (0, core_1.load)({ ...request, filters });
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.cjs","sourceRoot":"","sources":["../../src/profiles.ts"],"names":[],"mappings":";;;;AAAA,wCAA8C;AAC9C,yCAAkF;AAGlF,2CAA8D;AAC9D,qCAAuC;AACvC,iDAAuC;AACvC,2DAAqD;AAExC,QAAA,QAAQ,GAAG,IAAA,kBAAU,EAChC,IAAA,0BAAkB,EAAmB,iBAAU,EAAE;IAC/C,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,cAAO,CAAC,EAAC,CAAC;IAC7B,WAAW,EAAE,kBAAW;IACxB,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;CAChC,CAAC,CACH,CAAA;AAEY,KAIT,IAAA,uBAAU,EAAC;IACb,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,gBAAQ;IACf,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;IACvC,IAAI,EAAE,KAAK,EAAE,MAAc,EAAE,UAAiD,EAAE,EAAE,EAAE;QAClF,MAAM,OAAO,GAAG,CAAC,EAAC,KAAK,EAAE,CAAC,cAAO,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA;QAEvD,qFAAqF;QACrF,mCAAmC;QACnC,IAAA,WAAI,EAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAC,CAAC,CAAA;QAE3B,oFAAoF;QACpF,uEAAuE;QACvE,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAChC,IAAA,qCAAmB,EAAC,MAAM,EAAE;gBAC1B,OAAO,EAAE,CAAC,KAAmB,EAAE,EAAE;oBAC/B,OAAO,EAAE,CAAA;gBACX,CAAC;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,MAAM,IAAA,WAAI,EAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAC,CAAC,CAAA;IACnC,CAAC;CACF,CAAC,EA1BY,wBAAgB,kBAChB,qBAAa,kBACf,mBAAW,eAwBrB;AAEK,MAAM,sBAAsB,GAAG,CAAC,MAA0B,EAAE,EAAE,CACnE,MAAM;IACJ,CAAC,CAAC,IAAA,qBAAc,EAAC,wBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC;IAC3E,CAAC,CAAC,EAAE,CAAA;AAHK,QAAA,sBAAsB,0BAG3B;AAED,MAAM,oBAAoB,GAAG,CAAC,MAA0B,EAAE,EAAE,CACjE,MAAM;IACJ,CAAC,CAAC,IAAA,eAAO,EAAC,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAA,qBAAc,EAAC,QAAQ,EAAE,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;AAHL,QAAA,oBAAoB,wBAGf"}
1
+ {"version":3,"file":"profiles.cjs","sourceRoot":"","sources":["../../src/profiles.ts"],"names":[],"mappings":";;;;AAAA,wCAA8C;AAC9C,yCAAkF;AAGlF,2CAA8D;AAC9D,qCAAuC;AACvC,iDAAuC;AACvC,2DAAqD;AAExC,QAAA,QAAQ,GAAG,IAAA,kBAAU,EAChC,IAAA,0BAAkB,EAAmB,iBAAU,EAAE;IAC/C,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,cAAO,CAAC,EAAC,CAAC;IAC7B,WAAW,EAAE,kBAAW;IACxB,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;CAChC,CAAC,CACH,CAAA;AAEY,KAIT,IAAA,uBAAU,EAAC;IACb,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,gBAAQ;IACf,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;IACvC,IAAI,EAAE,KAAK,EAAE,MAAc,EAAE,UAAiD,EAAE,EAAE,EAAE;QAClF,MAAM,OAAO,GAAG,CAAC,EAAC,KAAK,EAAE,CAAC,cAAO,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA;QAEvD,qFAAqF;QACrF,mCAAmC;QACnC,IAAA,WAAI,EAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAC,CAAC,CAAA;QAE3B,oFAAoF;QACpF,uEAAuE;QACvE,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAChC,IAAA,qCAAmB,EAAC,MAAM,EAAE;gBAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;gBACxB,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;aAC5B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,MAAM,IAAA,WAAI,EAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAC,CAAC,CAAA;IACnC,CAAC;CACF,CAAC,EAzBY,wBAAgB,kBAChB,qBAAa,kBACf,mBAAW,eAuBrB;AAEK,MAAM,sBAAsB,GAAG,CAAC,MAA0B,EAAE,EAAE,CACnE,MAAM;IACJ,CAAC,CAAC,IAAA,qBAAc,EAAC,wBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC;IAC3E,CAAC,CAAC,EAAE,CAAA;AAHK,QAAA,sBAAsB,0BAG3B;AAED,MAAM,oBAAoB,GAAG,CAAC,MAA0B,EAAE,EAAE,CACjE,MAAM;IACJ,CAAC,CAAC,IAAA,eAAO,EAAC,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAA,qBAAc,EAAC,QAAQ,EAAE,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;AAHL,QAAA,oBAAoB,wBAGf"}
@@ -22,9 +22,8 @@ export const { indexStore: profilesByPubkey, deriveItem: deriveProfile, loadItem
22
22
  // better selections the moment we have a result, even if it's outdated
23
23
  await new Promise(resolve => {
24
24
  loadRelaySelections(pubkey, {
25
- onEvent: (event) => {
26
- resolve();
27
- }
25
+ onEvent: () => resolve(),
26
+ onComplete: () => resolve(),
28
27
  });
29
28
  });
30
29
  await load({ ...request, filters });
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.mjs","sourceRoot":"","sources":["../../src/profiles.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,cAAc;OACvC,EAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAC,MAAM,gBAAgB;OAG3E,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,iBAAiB;OACvD,EAAC,UAAU,EAAE,IAAI,EAAC;OAClB,EAAC,UAAU,EAAC;OACZ,EAAC,mBAAmB,EAAC;AAE5B,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,kBAAkB,CAAmB,UAAU,EAAE;IAC/C,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAC,CAAC;IAC7B,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;CAChC,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,EACX,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,WAAW,GACtB,GAAG,UAAU,CAAC;IACb,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;IACvC,IAAI,EAAE,KAAK,EAAE,MAAc,EAAE,UAAiD,EAAE,EAAE,EAAE;QAClF,MAAM,OAAO,GAAG,CAAC,EAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA;QAEvD,qFAAqF;QACrF,mCAAmC;QACnC,IAAI,CAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAC,CAAC,CAAA;QAE3B,oFAAoF;QACpF,uEAAuE;QACvE,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAChC,mBAAmB,CAAC,MAAM,EAAE;gBAC1B,OAAO,EAAE,CAAC,KAAmB,EAAE,EAAE;oBAC/B,OAAO,EAAE,CAAA;gBACX,CAAC;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAC,CAAC,CAAA;IACnC,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAA0B,EAAE,EAAE,CACnE,MAAM;IACJ,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC,CAAC,EAAE,CAAA;AAER,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAA0B,EAAE,EAAE,CACjE,MAAM;IACJ,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"profiles.mjs","sourceRoot":"","sources":["../../src/profiles.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,cAAc;OACvC,EAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAC,MAAM,gBAAgB;OAG3E,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,iBAAiB;OACvD,EAAC,UAAU,EAAE,IAAI,EAAC;OAClB,EAAC,UAAU,EAAC;OACZ,EAAC,mBAAmB,EAAC;AAE5B,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,kBAAkB,CAAmB,UAAU,EAAE;IAC/C,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAC,CAAC;IAC7B,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;CAChC,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,EACX,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,WAAW,GACtB,GAAG,UAAU,CAAC;IACb,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;IACvC,IAAI,EAAE,KAAK,EAAE,MAAc,EAAE,UAAiD,EAAE,EAAE,EAAE;QAClF,MAAM,OAAO,GAAG,CAAC,EAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA;QAEvD,qFAAqF;QACrF,mCAAmC;QACnC,IAAI,CAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAC,CAAC,CAAA;QAE3B,oFAAoF;QACpF,uEAAuE;QACvE,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAChC,mBAAmB,CAAC,MAAM,EAAE;gBAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;gBACxB,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;aAC5B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,EAAC,GAAG,OAAO,EAAE,OAAO,EAAC,CAAC,CAAA;IACnC,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAA0B,EAAE,EAAE,CACnE,MAAM;IACJ,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC,CAAC,EAAE,CAAA;AAER,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAA0B,EAAE,EAAE,CACjE,MAAM;IACJ,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.thunkWorker = exports.publishThunk = exports.makeThunk = exports.prepEvent = void 0;
3
+ exports.thunkWorker = exports.publishThunk = exports.mergeThunks = exports.makeThunk = exports.prepEvent = void 0;
4
4
  const store_1 = require("svelte/store");
5
5
  const lib_1 = require("@welshman/lib");
6
6
  const signer_1 = require("@welshman/signer");
@@ -8,6 +8,7 @@ const util_1 = require("@welshman/util");
8
8
  const net_1 = require("@welshman/net");
9
9
  const core_1 = require("./core.cjs");
10
10
  const session_1 = require("./session.cjs");
11
+ const { Pending, Success, Failure, Timeout, Aborted } = net_1.PublishStatus;
11
12
  const prepEvent = (event) => {
12
13
  if (!(0, util_1.isStampedEvent)(event)) {
13
14
  event = (0, signer_1.stamp)(event);
@@ -29,6 +30,33 @@ const makeThunk = (request) => {
29
30
  return { event, request, controller, result, status };
30
31
  };
31
32
  exports.makeThunk = makeThunk;
33
+ const mergeThunks = (thunks) => {
34
+ const controller = new AbortController();
35
+ controller.signal.addEventListener('abort', () => {
36
+ for (const thunk of thunks) {
37
+ thunk.controller.abort();
38
+ }
39
+ });
40
+ return {
41
+ thunks,
42
+ controller,
43
+ result: Promise.all(thunks.map(thunk => thunk.result)),
44
+ status: (0, store_1.derived)(thunks.map(thunk => thunk.status), statuses => {
45
+ const mergedStatus = {};
46
+ for (const url of (0, lib_1.uniq)(statuses.flatMap(s => Object.keys(s)))) {
47
+ const urlStatuses = statuses.map(s => s[url]);
48
+ const thunkStatus = [Aborted, Failure, Timeout, Pending, Success]
49
+ .map(status => urlStatuses.find(s => (s === null || s === void 0 ? void 0 : s.status) === status))
50
+ .find(lib_1.identity);
51
+ if (thunkStatus) {
52
+ mergedStatus[url] = thunkStatus;
53
+ }
54
+ }
55
+ return mergedStatus;
56
+ })
57
+ };
58
+ };
59
+ exports.mergeThunks = mergeThunks;
32
60
  const publishThunk = (request) => {
33
61
  const thunk = (0, exports.makeThunk)(request);
34
62
  exports.thunkWorker.push(thunk);
@@ -40,7 +68,7 @@ const publishThunk = (request) => {
40
68
  };
41
69
  exports.publishThunk = publishThunk;
42
70
  exports.thunkWorker = new lib_1.Worker();
43
- exports.thunkWorker.addGlobalHandler(async (thunk) => {
71
+ exports.thunkWorker.addGlobalHandler((thunk) => {
44
72
  let event = thunk.event;
45
73
  // Handle abort immediately if possible
46
74
  if (thunk.controller.signal.aborted)
@@ -49,45 +77,48 @@ exports.thunkWorker.addGlobalHandler(async (thunk) => {
49
77
  if ((0, util_1.isUnwrappedEvent)(event)) {
50
78
  event = event.wrap;
51
79
  }
52
- // If the event was already signed, leave it alone. Otherwise, sign it now. This is to
53
- // decrease apparent latency in the UI that results from waiting for remote signers
54
- if (!(0, util_1.isSignedEvent)(event)) {
55
- const signer = (0, session_1.getSigner)((0, session_1.getSession)(event.pubkey));
56
- if (!signer) {
57
- return console.warn(`No signer found for ${event.pubkey}`);
80
+ // Avoid making this function async so multiple publishes can run concurrently
81
+ Promise.resolve().then(async () => {
82
+ // If the event was already signed, leave it alone. Otherwise, sign it now. This is to
83
+ // decrease apparent latency in the UI that results from waiting for remote signers
84
+ if (!(0, util_1.isSignedEvent)(event)) {
85
+ const signer = (0, session_1.getSigner)((0, session_1.getSession)(event.pubkey));
86
+ if (!signer) {
87
+ return console.warn(`No signer found for ${event.pubkey}`);
88
+ }
89
+ event = await signer.sign(event);
58
90
  }
59
- event = await signer.sign(event);
60
- }
61
- // We're guaranteed to have a signed event at this point
62
- const signedEvent = event;
63
- // Wait if the thunk is to be delayed
64
- if (thunk.request.delay) {
65
- await (0, lib_1.sleep)(thunk.request.delay);
66
- }
67
- // Skip publishing if aborted
68
- if (thunk.controller.signal.aborted) {
69
- return;
70
- }
71
- // Send it off
72
- const pub = (0, net_1.publish)({ event: signedEvent, relays: thunk.request.relays });
73
- // Copy the signature over since we had deferred it
74
- const savedEvent = core_1.repository.getEvent(signedEvent.id);
75
- // The event may already be replaced or deleted
76
- if (savedEvent) {
77
- savedEvent.sig = signedEvent.sig;
78
- }
79
- const completed = new Set();
80
- pub.emitter.on("*", async (status, url, message) => {
81
- thunk.status.update((0, lib_1.assoc)(url, { status, message }));
82
- if (status !== net_1.PublishStatus.Pending) {
83
- completed.add(url);
91
+ // We're guaranteed to have a signed event at this point
92
+ const signedEvent = event;
93
+ // Wait if the thunk is to be delayed
94
+ if (thunk.request.delay) {
95
+ await (0, lib_1.sleep)(thunk.request.delay);
84
96
  }
85
- if (status === net_1.PublishStatus.Success) {
86
- core_1.tracker.track(signedEvent.id, url);
97
+ // Skip publishing if aborted
98
+ if (thunk.controller.signal.aborted) {
99
+ return;
87
100
  }
88
- if (completed.size === thunk.request.relays.length) {
89
- thunk.result.resolve((0, store_1.get)(thunk.status));
101
+ // Send it off
102
+ const pub = (0, net_1.publish)({ event: signedEvent, relays: thunk.request.relays });
103
+ // Copy the signature over since we had deferred it
104
+ const savedEvent = core_1.repository.getEvent(signedEvent.id);
105
+ // The event may already be replaced or deleted
106
+ if (savedEvent) {
107
+ savedEvent.sig = signedEvent.sig;
90
108
  }
109
+ const completed = new Set();
110
+ pub.emitter.on("*", async (status, url, message = "") => {
111
+ thunk.status.update((0, lib_1.assoc)(url, { status, message }));
112
+ if (status !== net_1.PublishStatus.Pending) {
113
+ completed.add(url);
114
+ }
115
+ if (status === net_1.PublishStatus.Success) {
116
+ core_1.tracker.track(signedEvent.id, url);
117
+ }
118
+ if (completed.size === thunk.request.relays.length) {
119
+ thunk.result.resolve((0, store_1.get)(thunk.status));
120
+ }
121
+ });
91
122
  });
92
123
  });
93
124
  //# sourceMappingURL=thunk.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"thunk.cjs","sourceRoot":"","sources":["../../src/thunk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thunk.cjs","sourceRoot":"","sources":["../../src/thunk.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="svelte" />
2
- import type { Writable } from 'svelte/store';
2
+ import type { Writable, Readable } from 'svelte/store';
3
3
  import { Worker } from '@welshman/lib';
4
4
  import type { Deferred } from '@welshman/lib';
5
5
  import type { TrustedEvent, EventTemplate, StampedEvent, OwnedEvent } from '@welshman/util';
@@ -30,6 +30,18 @@ export declare const makeThunk: (request: ThunkRequest) => {
30
30
  result: Deferred<ThunkStatusByUrl>;
31
31
  status: Writable<ThunkStatusByUrl>;
32
32
  };
33
+ export type MergedThunk = {
34
+ thunks: Thunk[];
35
+ controller: AbortController;
36
+ result: Promise<ThunkStatusByUrl[]>;
37
+ status: Readable<ThunkStatusByUrl>;
38
+ };
39
+ export declare const mergeThunks: (thunks: Thunk[]) => {
40
+ thunks: Thunk[];
41
+ controller: AbortController;
42
+ result: Promise<ThunkStatusByUrl[]>;
43
+ status: Readable<ThunkStatusByUrl>;
44
+ };
33
45
  export declare const publishThunk: (request: ThunkRequest) => {
34
46
  event: TrustedEvent;
35
47
  request: ThunkRequest;
@@ -1,10 +1,11 @@
1
- import { writable, get } from 'svelte/store';
2
- import { Worker, defer, sleep, assoc } from '@welshman/lib';
1
+ import { writable, derived, get } from 'svelte/store';
2
+ import { Worker, identity, uniq, defer, sleep, assoc } from '@welshman/lib';
3
3
  import { stamp, own, hash } from "@welshman/signer";
4
4
  import { isStampedEvent, isOwnedEvent, isHashedEvent, isUnwrappedEvent, isSignedEvent } from '@welshman/util';
5
5
  import { publish, PublishStatus } from "@welshman/net";
6
6
  import { repository, tracker } from "./core.mjs";
7
7
  import { pubkey, getSession, getSigner } from "./session.mjs";
8
+ const { Pending, Success, Failure, Timeout, Aborted } = PublishStatus;
8
9
  export const prepEvent = (event) => {
9
10
  if (!isStampedEvent(event)) {
10
11
  event = stamp(event);
@@ -24,6 +25,32 @@ export const makeThunk = (request) => {
24
25
  const status = writable({});
25
26
  return { event, request, controller, result, status };
26
27
  };
28
+ export const mergeThunks = (thunks) => {
29
+ const controller = new AbortController();
30
+ controller.signal.addEventListener('abort', () => {
31
+ for (const thunk of thunks) {
32
+ thunk.controller.abort();
33
+ }
34
+ });
35
+ return {
36
+ thunks,
37
+ controller,
38
+ result: Promise.all(thunks.map(thunk => thunk.result)),
39
+ status: derived(thunks.map(thunk => thunk.status), statuses => {
40
+ const mergedStatus = {};
41
+ for (const url of uniq(statuses.flatMap(s => Object.keys(s)))) {
42
+ const urlStatuses = statuses.map(s => s[url]);
43
+ const thunkStatus = [Aborted, Failure, Timeout, Pending, Success]
44
+ .map(status => urlStatuses.find(s => (s === null || s === void 0 ? void 0 : s.status) === status))
45
+ .find(identity);
46
+ if (thunkStatus) {
47
+ mergedStatus[url] = thunkStatus;
48
+ }
49
+ }
50
+ return mergedStatus;
51
+ })
52
+ };
53
+ };
27
54
  export const publishThunk = (request) => {
28
55
  const thunk = makeThunk(request);
29
56
  thunkWorker.push(thunk);
@@ -34,7 +61,7 @@ export const publishThunk = (request) => {
34
61
  return thunk;
35
62
  };
36
63
  export const thunkWorker = new Worker();
37
- thunkWorker.addGlobalHandler(async (thunk) => {
64
+ thunkWorker.addGlobalHandler((thunk) => {
38
65
  let event = thunk.event;
39
66
  // Handle abort immediately if possible
40
67
  if (thunk.controller.signal.aborted)
@@ -43,45 +70,48 @@ thunkWorker.addGlobalHandler(async (thunk) => {
43
70
  if (isUnwrappedEvent(event)) {
44
71
  event = event.wrap;
45
72
  }
46
- // If the event was already signed, leave it alone. Otherwise, sign it now. This is to
47
- // decrease apparent latency in the UI that results from waiting for remote signers
48
- if (!isSignedEvent(event)) {
49
- const signer = getSigner(getSession(event.pubkey));
50
- if (!signer) {
51
- return console.warn(`No signer found for ${event.pubkey}`);
73
+ // Avoid making this function async so multiple publishes can run concurrently
74
+ Promise.resolve().then(async () => {
75
+ // If the event was already signed, leave it alone. Otherwise, sign it now. This is to
76
+ // decrease apparent latency in the UI that results from waiting for remote signers
77
+ if (!isSignedEvent(event)) {
78
+ const signer = getSigner(getSession(event.pubkey));
79
+ if (!signer) {
80
+ return console.warn(`No signer found for ${event.pubkey}`);
81
+ }
82
+ event = await signer.sign(event);
52
83
  }
53
- event = await signer.sign(event);
54
- }
55
- // We're guaranteed to have a signed event at this point
56
- const signedEvent = event;
57
- // Wait if the thunk is to be delayed
58
- if (thunk.request.delay) {
59
- await sleep(thunk.request.delay);
60
- }
61
- // Skip publishing if aborted
62
- if (thunk.controller.signal.aborted) {
63
- return;
64
- }
65
- // Send it off
66
- const pub = publish({ event: signedEvent, relays: thunk.request.relays });
67
- // Copy the signature over since we had deferred it
68
- const savedEvent = repository.getEvent(signedEvent.id);
69
- // The event may already be replaced or deleted
70
- if (savedEvent) {
71
- savedEvent.sig = signedEvent.sig;
72
- }
73
- const completed = new Set();
74
- pub.emitter.on("*", async (status, url, message) => {
75
- thunk.status.update(assoc(url, { status, message }));
76
- if (status !== PublishStatus.Pending) {
77
- completed.add(url);
84
+ // We're guaranteed to have a signed event at this point
85
+ const signedEvent = event;
86
+ // Wait if the thunk is to be delayed
87
+ if (thunk.request.delay) {
88
+ await sleep(thunk.request.delay);
78
89
  }
79
- if (status === PublishStatus.Success) {
80
- tracker.track(signedEvent.id, url);
90
+ // Skip publishing if aborted
91
+ if (thunk.controller.signal.aborted) {
92
+ return;
81
93
  }
82
- if (completed.size === thunk.request.relays.length) {
83
- thunk.result.resolve(get(thunk.status));
94
+ // Send it off
95
+ const pub = publish({ event: signedEvent, relays: thunk.request.relays });
96
+ // Copy the signature over since we had deferred it
97
+ const savedEvent = repository.getEvent(signedEvent.id);
98
+ // The event may already be replaced or deleted
99
+ if (savedEvent) {
100
+ savedEvent.sig = signedEvent.sig;
84
101
  }
102
+ const completed = new Set();
103
+ pub.emitter.on("*", async (status, url, message = "") => {
104
+ thunk.status.update(assoc(url, { status, message }));
105
+ if (status !== PublishStatus.Pending) {
106
+ completed.add(url);
107
+ }
108
+ if (status === PublishStatus.Success) {
109
+ tracker.track(signedEvent.id, url);
110
+ }
111
+ if (completed.size === thunk.request.relays.length) {
112
+ thunk.result.resolve(get(thunk.status));
113
+ }
114
+ });
85
115
  });
86
116
  });
87
117
  //# sourceMappingURL=thunk.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"thunk.mjs","sourceRoot":"","sources":["../../src/thunk.ts"],"names":[],"mappings":"OAAO,EAAC,QAAQ,EAAE,GAAG,EAAC,MAAM,cAAc;OAEnC,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM,eAAe;OAElD,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAC,MAAM,kBAAkB;OAE1C,EAAC,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,gBAAgB;OACpG,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,eAAe;OAC7C,EAAC,UAAU,EAAE,OAAO,EAAC;OACrB,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAC;AAyBtC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAE,EAAE;IAC7C,IAAI,CAAC,cAAc,CAAC,KAAqB,CAAC,EAAE;QAC1C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;KACrB;IAED,IAAI,CAAC,YAAY,CAAC,KAAmB,CAAC,EAAE;QACtC,KAAK,GAAG,GAAG,CAAC,KAAqB,EAAE,GAAG,CAAC,MAAM,CAAE,CAAC,CAAA;KACjD;IAED,IAAI,CAAC,aAAa,CAAC,KAAoB,CAAC,EAAE;QACxC,KAAK,GAAG,IAAI,CAAC,KAAmB,CAAC,CAAA;KAClC;IAED,OAAO,KAAqB,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAqB,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,MAAM,GAAoB,KAAK,EAAE,CAAA;IACvC,MAAM,MAAM,GAAoB,QAAQ,CAAC,EAAE,CAAC,CAAA;IAE5C,OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAC,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAqB,EAAE,EAAE;IACpD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IAEhC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEvB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAE/B,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACrD,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,MAAM,EAAS,CAAA;AAE9C,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAY,EAAE,EAAE;IAClD,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IAEvB,uCAAuC;IACvC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;QAAE,OAAM;IAE3C,oFAAoF;IACpF,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;QAC3B,KAAK,GAAG,KAAK,CAAC,IAAI,CAAA;KACnB;IAED,sFAAsF;IACtF,mFAAmF;IACnF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QACzB,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAElD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,OAAO,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;SAC3D;QAED,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACjC;IAED,wDAAwD;IACxD,MAAM,WAAW,GAAG,KAAoB,CAAA;IAExC,qCAAqC;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;QACvB,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;KACjC;IAED,6BAA6B;IAC7B,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE;QACnC,OAAM;KACP;IAED,cAAc;IACd,MAAM,GAAG,GAAG,OAAO,CAAC,EAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAC,CAAC,CAAA;IAEvE,mDAAmD;IACnD,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAgB,CAAA;IAErE,+CAA+C;IAC/C,IAAI,UAAU,EAAE;QACd,UAAU,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAA;KACjC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;IAE3B,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAqB,EAAE,GAAW,EAAE,OAAe,EAAE,EAAE;QAChF,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC,CAAA;QAElD,IAAI,MAAM,KAAK,aAAa,CAAC,OAAO,EAAE;YACpC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACnB;QAED,IAAI,MAAM,KAAK,aAAa,CAAC,OAAO,EAAE;YACpC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;SACnC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YAClD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;SACxC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"thunk.mjs","sourceRoot":"","sources":["../../src/thunk.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@welshman/app",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "author": "hodlbod",
5
5
  "license": "MIT",
6
6
  "description": "A collection of svelte stores for use in building nostr client applications.",
@@ -31,13 +31,13 @@
31
31
  "typescript": "~5.1.6"
32
32
  },
33
33
  "dependencies": {
34
- "@welshman/lib": "~0.0.22",
34
+ "@welshman/lib": "~0.0.23",
35
35
  "@welshman/feeds": "~0.0.20",
36
36
  "@welshman/dvm": "~0.0.10",
37
- "@welshman/net": "~0.0.28",
37
+ "@welshman/net": "~0.0.29",
38
38
  "@welshman/signer": "~0.0.9",
39
- "@welshman/store": "~0.0.10",
40
- "@welshman/util": "~0.0.39",
39
+ "@welshman/store": "~0.0.11",
40
+ "@welshman/util": "~0.0.42",
41
41
  "fuse.js": "^7.0.0",
42
42
  "idb": "^8.0.0",
43
43
  "svelte": "^4.2.18",