@dxos/messaging 0.8.4-main.72ec0f3 → 0.8.4-main.74a063c4e0

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 (53) hide show
  1. package/dist/lib/neutral/chunk-ZNKR3G44.mjs +694 -0
  2. package/dist/lib/neutral/chunk-ZNKR3G44.mjs.map +7 -0
  3. package/dist/lib/{browser/chunk-L7NDSF6K.mjs → neutral/index.mjs} +315 -992
  4. package/dist/lib/neutral/index.mjs.map +7 -0
  5. package/dist/lib/{browser → neutral}/meta.json +1 -1
  6. package/dist/lib/{browser → neutral}/testing/index.mjs +4 -4
  7. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  8. package/dist/types/src/messenger.blueprint-test.d.ts.map +1 -1
  9. package/dist/types/src/messenger.d.ts +2 -1
  10. package/dist/types/src/messenger.d.ts.map +1 -1
  11. package/dist/types/src/signal-client/signal-client.d.ts +5 -5
  12. package/dist/types/src/signal-client/signal-client.d.ts.map +1 -1
  13. package/dist/types/src/signal-client/signal-local-state.d.ts.map +1 -1
  14. package/dist/types/src/signal-client/signal-rpc-client.d.ts +2 -2
  15. package/dist/types/src/signal-client/signal-rpc-client.d.ts.map +1 -1
  16. package/dist/types/src/signal-manager/edge-signal-manager.d.ts +5 -5
  17. package/dist/types/src/signal-manager/edge-signal-manager.d.ts.map +1 -1
  18. package/dist/types/src/signal-manager/memory-signal-manager.d.ts +5 -4
  19. package/dist/types/src/signal-manager/memory-signal-manager.d.ts.map +1 -1
  20. package/dist/types/src/signal-manager/websocket-signal-manager.d.ts +5 -5
  21. package/dist/types/src/signal-manager/websocket-signal-manager.d.ts.map +1 -1
  22. package/dist/types/src/signal-methods.d.ts +5 -5
  23. package/dist/types/src/signal-methods.d.ts.map +1 -1
  24. package/dist/types/src/testing/test-builder.d.ts.map +1 -1
  25. package/dist/types/src/testing/test-peer.d.ts.map +1 -1
  26. package/dist/types/src/testing/utils.d.ts.map +1 -1
  27. package/dist/types/tsconfig.tsbuildinfo +1 -1
  28. package/package.json +24 -22
  29. package/src/messenger.blueprint-test.ts +13 -12
  30. package/src/messenger.ts +34 -28
  31. package/src/signal-client/signal-client.node.test.ts +9 -9
  32. package/src/signal-client/signal-client.ts +4 -5
  33. package/src/signal-client/signal-local-state.ts +0 -1
  34. package/src/signal-client/signal-rpc-client.ts +2 -2
  35. package/src/signal-manager/edge-signal-manager.ts +10 -7
  36. package/src/signal-manager/memory-signal-manager.ts +17 -15
  37. package/src/signal-manager/websocket-signal-manager.node.test.ts +13 -13
  38. package/src/signal-manager/websocket-signal-manager.ts +8 -9
  39. package/src/signal-methods.ts +5 -5
  40. package/src/testing/test-builder.ts +4 -3
  41. package/src/testing/test-peer.ts +0 -1
  42. package/src/testing/utils.ts +0 -1
  43. package/dist/lib/browser/chunk-L7NDSF6K.mjs.map +0 -7
  44. package/dist/lib/browser/index.mjs +0 -22
  45. package/dist/lib/browser/index.mjs.map +0 -7
  46. package/dist/lib/browser/testing/index.mjs.map +0 -7
  47. package/dist/lib/node-esm/chunk-PVWR5V42.mjs +0 -2380
  48. package/dist/lib/node-esm/chunk-PVWR5V42.mjs.map +0 -7
  49. package/dist/lib/node-esm/index.mjs +0 -22
  50. package/dist/lib/node-esm/index.mjs.map +0 -7
  51. package/dist/lib/node-esm/meta.json +0 -1
  52. package/dist/lib/node-esm/testing/index.mjs +0 -149
  53. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
@@ -1,428 +1,22 @@
1
1
  import "@dxos/node-std/globals";
2
-
3
- // src/messenger.ts
4
- import { TimeoutError, scheduleExponentialBackoffTaskInterval, scheduleTask, scheduleTaskInterval } from "@dxos/async";
5
- import { Context } from "@dxos/context";
6
- import { invariant } from "@dxos/invariant";
7
- import { PublicKey } from "@dxos/keys";
8
- import { log } from "@dxos/log";
9
- import { TimeoutError as ProtocolTimeoutError, trace as trace2 } from "@dxos/protocols";
10
- import { schema } from "@dxos/protocols/proto";
11
- import { ComplexMap, ComplexSet } from "@dxos/util";
12
-
13
- // src/messenger-monitor.ts
14
- import { trace } from "@dxos/tracing";
15
- var MessengerMonitor = class {
16
- recordMessageAckFailed() {
17
- trace.metrics.increment("dxos.mesh.signal.messenger.failed-ack", 1);
18
- }
19
- recordReliableMessage(params) {
20
- trace.metrics.increment("dxos.mesh.signal.messenger.reliable-send", 1, {
21
- tags: {
22
- success: params.sent,
23
- attempts: params.sendAttempts
24
- }
25
- });
26
- }
27
- };
28
-
29
- // src/timeouts.ts
30
- var MESSAGE_TIMEOUT = 1e4;
31
-
32
- // src/messenger.ts
33
- var __dxlog_file = "/__w/dxos/dxos/packages/core/mesh/messaging/src/messenger.ts";
34
- var ReliablePayload = schema.getCodecForType("dxos.mesh.messaging.ReliablePayload");
35
- var Acknowledgement = schema.getCodecForType("dxos.mesh.messaging.Acknowledgement");
36
- var RECEIVED_MESSAGES_GC_INTERVAL = 12e4;
37
- var Messenger = class {
38
- _monitor = new MessengerMonitor();
39
- _signalManager;
40
- // { peerId, payloadType } => listeners set
41
- _listeners = new ComplexMap(({ peerId, payloadType }) => peerId + payloadType);
42
- // peerId => listeners set
43
- _defaultListeners = /* @__PURE__ */ new Map();
44
- _onAckCallbacks = new ComplexMap(PublicKey.hash);
45
- _receivedMessages = new ComplexSet(PublicKey.hash);
46
- /**
47
- * Keys scheduled to be cleared from _receivedMessages on the next iteration.
48
- */
49
- _toClear = new ComplexSet(PublicKey.hash);
50
- _ctx;
51
- _closed = true;
52
- _retryDelay;
53
- constructor({ signalManager, retryDelay = 1e3 }) {
54
- this._signalManager = signalManager;
55
- this._retryDelay = retryDelay;
56
- this.open();
57
- }
58
- open() {
59
- if (!this._closed) {
60
- return;
61
- }
62
- const traceId = PublicKey.random().toHex();
63
- log.trace("dxos.mesh.messenger.open", trace2.begin({
64
- id: traceId
65
- }), {
66
- F: __dxlog_file,
67
- L: 72,
68
- S: this,
69
- C: (f, a) => f(...a)
70
- });
71
- this._ctx = new Context({
72
- onError: (err) => log.catch(err, void 0, {
73
- F: __dxlog_file,
74
- L: 74,
75
- S: this,
76
- C: (f, a) => f(...a)
77
- })
78
- }, {
79
- F: __dxlog_file,
80
- L: 73
81
- });
82
- this._ctx.onDispose(this._signalManager.onMessage.on(async (message) => {
83
- log("received message", {
84
- from: message.author
85
- }, {
86
- F: __dxlog_file,
87
- L: 78,
88
- S: this,
89
- C: (f, a) => f(...a)
90
- });
91
- await this._handleMessage(message);
92
- }));
93
- scheduleTaskInterval(this._ctx, async () => {
94
- this._performGc();
95
- }, RECEIVED_MESSAGES_GC_INTERVAL);
96
- this._closed = false;
97
- log.trace("dxos.mesh.messenger.open", trace2.end({
98
- id: traceId
99
- }), {
100
- F: __dxlog_file,
101
- L: 93,
102
- S: this,
103
- C: (f, a) => f(...a)
104
- });
105
- }
106
- async close() {
107
- if (this._closed) {
108
- return;
109
- }
110
- this._closed = true;
111
- await this._ctx.dispose();
112
- }
113
- async sendMessage({ author, recipient, payload }) {
114
- invariant(!this._closed, "Closed", {
115
- F: __dxlog_file,
116
- L: 105,
117
- S: this,
118
- A: [
119
- "!this._closed",
120
- "'Closed'"
121
- ]
122
- });
123
- const messageContext = this._ctx.derive();
124
- const reliablePayload = {
125
- messageId: PublicKey.random(),
126
- payload
127
- };
128
- invariant(!this._onAckCallbacks.has(reliablePayload.messageId), void 0, {
129
- F: __dxlog_file,
130
- L: 112,
131
- S: this,
132
- A: [
133
- "!this._onAckCallbacks.has(reliablePayload.messageId!)",
134
- ""
135
- ]
136
- });
137
- log("send message", {
138
- messageId: reliablePayload.messageId,
139
- author,
140
- recipient
141
- }, {
142
- F: __dxlog_file,
143
- L: 113,
144
- S: this,
145
- C: (f, a) => f(...a)
146
- });
147
- let messageReceived;
148
- let timeoutHit;
149
- let sendAttempts = 0;
150
- const promise = new Promise((resolve, reject) => {
151
- messageReceived = resolve;
152
- timeoutHit = reject;
153
- });
154
- scheduleExponentialBackoffTaskInterval(messageContext, async () => {
155
- log("retrying message", {
156
- messageId: reliablePayload.messageId
157
- }, {
158
- F: __dxlog_file,
159
- L: 128,
160
- S: this,
161
- C: (f, a) => f(...a)
162
- });
163
- sendAttempts++;
164
- await this._encodeAndSend({
165
- author,
166
- recipient,
167
- reliablePayload
168
- }).catch((err) => log("failed to send message", {
169
- err
170
- }, {
171
- F: __dxlog_file,
172
- L: 131,
173
- S: this,
174
- C: (f, a) => f(...a)
175
- }));
176
- }, this._retryDelay);
177
- scheduleTask(messageContext, () => {
178
- log("message not delivered", {
179
- messageId: reliablePayload.messageId
180
- }, {
181
- F: __dxlog_file,
182
- L: 140,
183
- S: this,
184
- C: (f, a) => f(...a)
185
- });
186
- this._onAckCallbacks.delete(reliablePayload.messageId);
187
- timeoutHit(new ProtocolTimeoutError("signaling message not delivered", new TimeoutError(MESSAGE_TIMEOUT, "Message not delivered")));
188
- void messageContext.dispose();
189
- this._monitor.recordReliableMessage({
190
- sendAttempts,
191
- sent: false
192
- });
193
- }, MESSAGE_TIMEOUT);
194
- this._onAckCallbacks.set(reliablePayload.messageId, () => {
195
- messageReceived();
196
- this._onAckCallbacks.delete(reliablePayload.messageId);
197
- void messageContext.dispose();
198
- this._monitor.recordReliableMessage({
199
- sendAttempts,
200
- sent: true
201
- });
202
- });
203
- await this._encodeAndSend({
204
- author,
205
- recipient,
206
- reliablePayload
207
- });
208
- return promise;
209
- }
210
- /**
211
- * Subscribes onMessage function to messages that contains payload with payloadType.
212
- * @param payloadType if not specified, onMessage will be subscribed to all types of messages.
213
- */
214
- async listen({ peer, payloadType, onMessage }) {
215
- invariant(!this._closed, "Closed", {
216
- F: __dxlog_file,
217
- L: 178,
218
- S: this,
219
- A: [
220
- "!this._closed",
221
- "'Closed'"
222
- ]
223
- });
224
- await this._signalManager.subscribeMessages(peer);
225
- let listeners;
226
- invariant(peer.peerKey, "Peer key is required", {
227
- F: __dxlog_file,
228
- L: 182,
229
- S: this,
230
- A: [
231
- "peer.peerKey",
232
- "'Peer key is required'"
233
- ]
234
- });
235
- if (!payloadType) {
236
- listeners = this._defaultListeners.get(peer.peerKey);
237
- if (!listeners) {
238
- listeners = /* @__PURE__ */ new Set();
239
- this._defaultListeners.set(peer.peerKey, listeners);
240
- }
241
- } else {
242
- listeners = this._listeners.get({
243
- peerId: peer.peerKey,
244
- payloadType
245
- });
246
- if (!listeners) {
247
- listeners = /* @__PURE__ */ new Set();
248
- this._listeners.set({
249
- peerId: peer.peerKey,
250
- payloadType
251
- }, listeners);
252
- }
253
- }
254
- listeners.add(onMessage);
255
- return {
256
- unsubscribe: async () => {
257
- listeners.delete(onMessage);
258
- }
259
- };
260
- }
261
- async _encodeAndSend({ author, recipient, reliablePayload }) {
262
- await this._signalManager.sendMessage({
263
- author,
264
- recipient,
265
- payload: {
266
- type_url: "dxos.mesh.messaging.ReliablePayload",
267
- value: ReliablePayload.encode(reliablePayload, {
268
- preserveAny: true
269
- })
270
- }
271
- });
272
- }
273
- async _handleMessage(message) {
274
- switch (message.payload.type_url) {
275
- case "dxos.mesh.messaging.ReliablePayload": {
276
- await this._handleReliablePayload(message);
277
- break;
278
- }
279
- case "dxos.mesh.messaging.Acknowledgement": {
280
- await this._handleAcknowledgement({
281
- payload: message.payload
282
- });
283
- break;
284
- }
285
- }
286
- }
287
- async _handleReliablePayload({ author, recipient, payload }) {
288
- invariant(payload.type_url === "dxos.mesh.messaging.ReliablePayload", void 0, {
289
- F: __dxlog_file,
290
- L: 240,
291
- S: this,
292
- A: [
293
- "payload.type_url === 'dxos.mesh.messaging.ReliablePayload'",
294
- ""
295
- ]
296
- });
297
- const reliablePayload = ReliablePayload.decode(payload.value, {
298
- preserveAny: true
299
- });
300
- log("handling message", {
301
- messageId: reliablePayload.messageId
302
- }, {
303
- F: __dxlog_file,
304
- L: 243,
305
- S: this,
306
- C: (f, a) => f(...a)
307
- });
308
- try {
309
- await this._sendAcknowledgement({
310
- author,
311
- recipient,
312
- messageId: reliablePayload.messageId
313
- });
314
- } catch (err) {
315
- this._monitor.recordMessageAckFailed();
316
- throw err;
317
- }
318
- if (this._receivedMessages.has(reliablePayload.messageId)) {
319
- return;
320
- }
321
- this._receivedMessages.add(reliablePayload.messageId);
322
- await this._callListeners({
323
- author,
324
- recipient,
325
- payload: reliablePayload.payload
326
- });
327
- }
328
- async _handleAcknowledgement({ payload }) {
329
- invariant(payload.type_url === "dxos.mesh.messaging.Acknowledgement", void 0, {
330
- F: __dxlog_file,
331
- L: 271,
332
- S: this,
333
- A: [
334
- "payload.type_url === 'dxos.mesh.messaging.Acknowledgement'",
335
- ""
336
- ]
337
- });
338
- this._onAckCallbacks.get(Acknowledgement.decode(payload.value).messageId)?.();
339
- }
340
- async _sendAcknowledgement({ author, recipient, messageId }) {
341
- log("sending ACK", {
342
- messageId,
343
- from: recipient,
344
- to: author
345
- }, {
346
- F: __dxlog_file,
347
- L: 284,
348
- S: this,
349
- C: (f, a) => f(...a)
350
- });
351
- await this._signalManager.sendMessage({
352
- author: recipient,
353
- recipient: author,
354
- payload: {
355
- type_url: "dxos.mesh.messaging.Acknowledgement",
356
- value: Acknowledgement.encode({
357
- messageId
358
- })
359
- }
360
- });
361
- }
362
- async _callListeners(message) {
363
- {
364
- invariant(message.recipient.peerKey, "Peer key is required", {
365
- F: __dxlog_file,
366
- L: 298,
367
- S: this,
368
- A: [
369
- "message.recipient.peerKey",
370
- "'Peer key is required'"
371
- ]
372
- });
373
- const defaultListenerMap = this._defaultListeners.get(message.recipient.peerKey);
374
- if (defaultListenerMap) {
375
- for (const listener of defaultListenerMap) {
376
- await listener(message);
377
- }
378
- }
379
- }
380
- {
381
- const listenerMap = this._listeners.get({
382
- peerId: message.recipient.peerKey,
383
- payloadType: message.payload.type_url
384
- });
385
- if (listenerMap) {
386
- for (const listener of listenerMap) {
387
- await listener(message);
388
- }
389
- }
390
- }
391
- }
392
- _performGc() {
393
- const start = performance.now();
394
- for (const key of this._toClear.keys()) {
395
- this._receivedMessages.delete(key);
396
- }
397
- this._toClear.clear();
398
- for (const key of this._receivedMessages.keys()) {
399
- this._toClear.add(key);
400
- }
401
- const elapsed = performance.now() - start;
402
- if (elapsed > 100) {
403
- log.warn("GC took too long", {
404
- elapsed
405
- }, {
406
- F: __dxlog_file,
407
- L: 333,
408
- S: this,
409
- C: (f, a) => f(...a)
410
- });
411
- }
412
- }
413
- };
2
+ import {
3
+ MemorySignalManager,
4
+ MemorySignalManagerContext,
5
+ Messenger,
6
+ PeerInfoHash
7
+ } from "./chunk-ZNKR3G44.mjs";
414
8
 
415
9
  // src/signal-client/signal-client.ts
416
- import { DeferredTask, Event as Event2, Trigger as Trigger2, scheduleTask as scheduleTask2, scheduleTaskInterval as scheduleTaskInterval3, sleep } from "@dxos/async";
10
+ import { DeferredTask, Event as Event2, Trigger as Trigger2, scheduleTask, scheduleTaskInterval as scheduleTaskInterval2, sleep } from "@dxos/async";
417
11
  import { Resource, cancelWithContext as cancelWithContext2 } from "@dxos/context";
418
- import { invariant as invariant3 } from "@dxos/invariant";
419
- import { PublicKey as PublicKey4 } from "@dxos/keys";
420
- import { log as log4 } from "@dxos/log";
421
- import { trace as trace6 } from "@dxos/protocols";
12
+ import { invariant as invariant2 } from "@dxos/invariant";
13
+ import { PublicKey as PublicKey3 } from "@dxos/keys";
14
+ import { log as log3 } from "@dxos/log";
15
+ import { trace as trace4 } from "@dxos/protocols";
422
16
  import { SignalState } from "@dxos/protocols/proto/dxos/mesh/signal";
423
17
 
424
18
  // src/signal-client/signal-client-monitor.ts
425
- import { trace as trace3 } from "@dxos/tracing";
19
+ import { trace } from "@dxos/tracing";
426
20
  var SignalClientMonitor = class {
427
21
  _performance = {
428
22
  sentMessages: 0,
@@ -453,7 +47,7 @@ var SignalClientMonitor = class {
453
47
  }
454
48
  recordReconnect(params) {
455
49
  this._performance.reconnectCounter++;
456
- trace3.metrics.increment("dxos.mesh.signal.signal-client.reconnect", 1, {
50
+ trace.metrics.increment("dxos.mesh.signal.signal-client.reconnect", 1, {
457
51
  tags: {
458
52
  success: params.success
459
53
  }
@@ -467,10 +61,10 @@ var SignalClientMonitor = class {
467
61
  }
468
62
  recordMessageReceived(message) {
469
63
  this._performance.receivedMessages++;
470
- trace3.metrics.increment("dxos.mesh.signal.signal-client.received-total", 1, {
64
+ trace.metrics.increment("dxos.mesh.signal.signal-client.received-total", 1, {
471
65
  tags: createIdentityTags(message)
472
66
  });
473
- trace3.metrics.distribution("dxos.mesh.signal.signal-client.bytes-in", getByteCount(message), {
67
+ trace.metrics.distribution("dxos.mesh.signal.signal-client.bytes-in", getByteCount(message), {
474
68
  tags: createIdentityTags(message)
475
69
  });
476
70
  }
@@ -482,16 +76,16 @@ var SignalClientMonitor = class {
482
76
  const reqStart = Date.now();
483
77
  await sendMessage();
484
78
  const reqDuration = Date.now() - reqStart;
485
- trace3.metrics.distribution("dxos.mesh.signal.signal-client.send-duration", reqDuration, {
79
+ trace.metrics.distribution("dxos.mesh.signal.signal-client.send-duration", reqDuration, {
486
80
  tags
487
81
  });
488
- trace3.metrics.distribution("dxos.mesh.signal.signal-client.bytes-out", getByteCount(message), {
82
+ trace.metrics.distribution("dxos.mesh.signal.signal-client.bytes-out", getByteCount(message), {
489
83
  tags
490
84
  });
491
85
  } catch (err) {
492
86
  success = false;
493
87
  }
494
- trace3.metrics.increment("dxos.mesh.signal.signal-client.sent-total", 1, {
88
+ trace.metrics.increment("dxos.mesh.signal.signal-client.sent-total", 1, {
495
89
  tags: {
496
90
  ...tags,
497
91
  success
@@ -499,10 +93,10 @@ var SignalClientMonitor = class {
499
93
  });
500
94
  }
501
95
  recordStreamCloseErrors(count) {
502
- trace3.metrics.increment("dxos.mesh.signal.signal-client.stream-close-errors", count);
96
+ trace.metrics.increment("dxos.mesh.signal.signal-client.stream-close-errors", count);
503
97
  }
504
98
  recordReconciliation(params) {
505
- trace3.metrics.increment("dxos.mesh.signal.signal-client.reconciliation", 1, {
99
+ trace.metrics.increment("dxos.mesh.signal.signal-client.reconciliation", 1, {
506
100
  tags: {
507
101
  success: params.success
508
102
  }
@@ -521,30 +115,30 @@ var createIdentityTags = (message) => {
521
115
  // src/signal-client/signal-local-state.ts
522
116
  import { Event, asyncTimeout } from "@dxos/async";
523
117
  import { cancelWithContext } from "@dxos/context";
524
- import { PublicKey as PublicKey2 } from "@dxos/keys";
525
- import { log as log2 } from "@dxos/log";
526
- import { ComplexMap as ComplexMap2, ComplexSet as ComplexSet2, safeAwaitAll } from "@dxos/util";
527
- var __dxlog_file2 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-local-state.ts";
118
+ import { PublicKey } from "@dxos/keys";
119
+ import { log } from "@dxos/log";
120
+ import { ComplexMap, ComplexSet, safeAwaitAll } from "@dxos/util";
121
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-local-state.ts";
528
122
  var SignalLocalState = class {
529
123
  _onMessage;
530
124
  _onSwarmEvent;
531
125
  /**
532
126
  * Swarm events streams. Keys represent actually joined topic and peerId.
533
127
  */
534
- _swarmStreams = new ComplexMap2(({ topic, peerId }) => topic.toHex() + peerId.toHex());
128
+ _swarmStreams = new ComplexMap(({ topic, peerId }) => topic.toHex() + peerId.toHex());
535
129
  /**
536
130
  * Represent desired joined topic and peerId.
537
131
  */
538
- _joinedTopics = new ComplexSet2(({ topic, peerId }) => topic.toHex() + peerId.toHex());
132
+ _joinedTopics = new ComplexSet(({ topic, peerId }) => topic.toHex() + peerId.toHex());
539
133
  /**
540
134
  * Represent desired message subscriptions.
541
135
  */
542
- _subscribedMessages = new ComplexSet2(({ peerId }) => peerId.toHex());
136
+ _subscribedMessages = new ComplexSet(({ peerId }) => peerId.toHex());
543
137
  /**
544
138
  * Message streams. Keys represents actually subscribed peers.
545
139
  * @internal
546
140
  */
547
- messageStreams = new ComplexMap2((key) => key.toHex());
141
+ messageStreams = new ComplexMap((key) => key.toHex());
548
142
  /**
549
143
  * Event to use in tests to wait till subscription is successfully established.
550
144
  * @internal
@@ -593,11 +187,11 @@ var SignalLocalState = class {
593
187
  });
594
188
  }
595
189
  unsubscribeMessages(peerId) {
596
- log2("unsubscribing from messages", {
190
+ log("unsubscribing from messages", {
597
191
  peerId
598
192
  }, {
599
- F: __dxlog_file2,
600
- L: 80,
193
+ F: __dxlog_file,
194
+ L: 79,
601
195
  S: this,
602
196
  C: (f, a) => f(...a)
603
197
  });
@@ -645,11 +239,11 @@ var SignalLocalState = class {
645
239
  topic,
646
240
  peerId
647
241
  })) {
648
- log2("swarm event", {
242
+ log("swarm event", {
649
243
  swarmEvent
650
244
  }, {
651
- F: __dxlog_file2,
652
- L: 116,
245
+ F: __dxlog_file,
246
+ L: 115,
653
247
  S: this,
654
248
  C: (f, a) => f(...a)
655
249
  });
@@ -658,7 +252,7 @@ var SignalLocalState = class {
658
252
  peerAvailable: {
659
253
  ...swarmEvent.peerAvailable,
660
254
  peer: {
661
- peerKey: PublicKey2.from(swarmEvent.peerAvailable.peer).toHex()
255
+ peerKey: PublicKey.from(swarmEvent.peerAvailable.peer).toHex()
662
256
  }
663
257
  }
664
258
  } : {
@@ -666,7 +260,7 @@ var SignalLocalState = class {
666
260
  peerLeft: {
667
261
  ...swarmEvent.peerLeft,
668
262
  peer: {
669
- peerKey: PublicKey2.from(swarmEvent.peerLeft.peer).toHex()
263
+ peerKey: PublicKey.from(swarmEvent.peerLeft.peer).toHex()
670
264
  }
671
265
  }
672
266
  };
@@ -700,10 +294,10 @@ var SignalLocalState = class {
700
294
  })) {
701
295
  const message = {
702
296
  author: {
703
- peerKey: PublicKey2.from(signalMessage.author).toHex()
297
+ peerKey: PublicKey.from(signalMessage.author).toHex()
704
298
  },
705
299
  recipient: {
706
- peerKey: PublicKey2.from(signalMessage.recipient).toHex()
300
+ peerKey: PublicKey.from(signalMessage.recipient).toHex()
707
301
  },
708
302
  payload: signalMessage.payload
709
303
  };
@@ -717,20 +311,20 @@ var SignalLocalState = class {
717
311
 
718
312
  // src/signal-client/signal-rpc-client.ts
719
313
  import WebSocket from "isomorphic-ws";
720
- import { TimeoutError as TimeoutError2, Trigger, scheduleTaskInterval as scheduleTaskInterval2 } from "@dxos/async";
721
- import { Context as Context2 } from "@dxos/context";
722
- import { invariant as invariant2 } from "@dxos/invariant";
723
- import { PublicKey as PublicKey3 } from "@dxos/keys";
724
- import { log as log3 } from "@dxos/log";
725
- import { trace as trace5 } from "@dxos/protocols";
726
- import { schema as schema2 } from "@dxos/protocols/proto";
314
+ import { TimeoutError, Trigger, scheduleTaskInterval } from "@dxos/async";
315
+ import { Context } from "@dxos/context";
316
+ import { invariant } from "@dxos/invariant";
317
+ import { PublicKey as PublicKey2 } from "@dxos/keys";
318
+ import { log as log2 } from "@dxos/log";
319
+ import { trace as trace3 } from "@dxos/protocols";
320
+ import { schema } from "@dxos/protocols/proto";
727
321
  import { createProtoRpcPeer } from "@dxos/rpc";
728
322
 
729
323
  // src/signal-client/signal-rpc-client-monitor.ts
730
- import { trace as trace4 } from "@dxos/tracing";
324
+ import { trace as trace2 } from "@dxos/tracing";
731
325
  var SignalRpcClientMonitor = class {
732
326
  recordClientCloseFailure(params) {
733
- trace4.metrics.increment("dxos.mesh.signal.signal-rpc-client.close-failure", 1, {
327
+ trace2.metrics.increment("dxos.mesh.signal.signal-rpc-client.close-failure", 1, {
734
328
  tags: {
735
329
  reason: params.failureReason
736
330
  }
@@ -739,7 +333,7 @@ var SignalRpcClientMonitor = class {
739
333
  };
740
334
 
741
335
  // src/signal-client/signal-rpc-client.ts
742
- var __dxlog_file3 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-rpc-client.ts";
336
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-rpc-client.ts";
743
337
  var SIGNAL_KEEPALIVE_INTERVAL = 1e4;
744
338
  var SignalRPCClient = class {
745
339
  _socket;
@@ -752,11 +346,11 @@ var SignalRPCClient = class {
752
346
  _closeComplete = new Trigger();
753
347
  _monitor = new SignalRpcClientMonitor();
754
348
  constructor({ url, callbacks = {} }) {
755
- const traceId = PublicKey3.random().toHex();
756
- log3.trace("dxos.mesh.signal-rpc-client.constructor", trace5.begin({
349
+ const traceId = PublicKey2.random().toHex();
350
+ log2.trace("dxos.mesh.signal-rpc-client.constructor", trace3.begin({
757
351
  id: traceId
758
352
  }), {
759
- F: __dxlog_file3,
353
+ F: __dxlog_file2,
760
354
  L: 66,
761
355
  S: this,
762
356
  C: (f, a) => f(...a)
@@ -766,7 +360,7 @@ var SignalRPCClient = class {
766
360
  this._socket = new WebSocket(this._url);
767
361
  this._rpc = createProtoRpcPeer({
768
362
  requested: {
769
- Signal: schema2.getService("dxos.mesh.signal.Signal")
363
+ Signal: schema.getService("dxos.mesh.signal.Signal")
770
364
  },
771
365
  noHandshake: true,
772
366
  port: {
@@ -777,8 +371,8 @@ var SignalRPCClient = class {
777
371
  try {
778
372
  this._socket.send(msg);
779
373
  } catch (err) {
780
- log3.warn("send error", err, {
781
- F: __dxlog_file3,
374
+ log2.warn("send error", err, {
375
+ F: __dxlog_file2,
782
376
  L: 85,
783
377
  S: this,
784
378
  C: (f, a) => f(...a)
@@ -806,19 +400,19 @@ var SignalRPCClient = class {
806
400
  await this._safeCloseRpc();
807
401
  return;
808
402
  }
809
- log3(`RPC open ${this._url}`, void 0, {
810
- F: __dxlog_file3,
403
+ log2(`RPC open ${this._url}`, void 0, {
404
+ F: __dxlog_file2,
811
405
  L: 110,
812
406
  S: this,
813
407
  C: (f, a) => f(...a)
814
408
  });
815
409
  this._callbacks.onConnected?.();
816
410
  this._connectTrigger.wake();
817
- this._keepaliveCtx = new Context2(void 0, {
818
- F: __dxlog_file3,
411
+ this._keepaliveCtx = new Context(void 0, {
412
+ F: __dxlog_file2,
819
413
  L: 113
820
414
  });
821
- scheduleTaskInterval2(this._keepaliveCtx, async () => {
415
+ scheduleTaskInterval(this._keepaliveCtx, async () => {
822
416
  this._socket?.send("__ping__");
823
417
  }, SIGNAL_KEEPALIVE_INTERVAL);
824
418
  } catch (err) {
@@ -828,8 +422,8 @@ var SignalRPCClient = class {
828
422
  }
829
423
  };
830
424
  this._socket.onclose = async () => {
831
- log3(`Disconnected ${this._url}`, void 0, {
832
- F: __dxlog_file3,
425
+ log2(`Disconnected ${this._url}`, void 0, {
426
+ F: __dxlog_file2,
833
427
  L: 133,
834
428
  S: this,
835
429
  C: (f, a) => f(...a)
@@ -846,20 +440,20 @@ var SignalRPCClient = class {
846
440
  this._closed = true;
847
441
  this._callbacks.onError?.(event.error ?? new Error(event.message));
848
442
  await this._safeCloseRpc();
849
- log3.warn(`Socket ${event.type ?? "unknown"} error`, {
443
+ log2.warn(`Socket ${event.type ?? "unknown"} error`, {
850
444
  message: event.message,
851
445
  url: this._url
852
446
  }, {
853
- F: __dxlog_file3,
447
+ F: __dxlog_file2,
854
448
  L: 149,
855
449
  S: this,
856
450
  C: (f, a) => f(...a)
857
451
  });
858
452
  };
859
- log3.trace("dxos.mesh.signal-rpc-client.constructor", trace5.end({
453
+ log2.trace("dxos.mesh.signal-rpc-client.constructor", trace3.end({
860
454
  id: traceId
861
455
  }), {
862
- F: __dxlog_file3,
456
+ F: __dxlog_file2,
863
457
  L: 152,
864
458
  S: this,
865
459
  C: (f, a) => f(...a)
@@ -880,25 +474,25 @@ var SignalRPCClient = class {
880
474
  timeout: 1e3
881
475
  });
882
476
  } catch (err) {
883
- const failureReason = err instanceof TimeoutError2 ? "timeout" : err?.constructor?.name ?? "unknown";
477
+ const failureReason = err instanceof TimeoutError ? "timeout" : err?.constructor?.name ?? "unknown";
884
478
  this._monitor.recordClientCloseFailure({
885
479
  failureReason
886
480
  });
887
481
  }
888
482
  }
889
483
  async join({ topic, peerId }) {
890
- log3("join", {
484
+ log2("join", {
891
485
  topic,
892
486
  peerId,
893
487
  metadata: this._callbacks?.getMetadata?.()
894
488
  }, {
895
- F: __dxlog_file3,
489
+ F: __dxlog_file2,
896
490
  L: 178,
897
491
  S: this,
898
492
  C: (f, a) => f(...a)
899
493
  });
900
- invariant2(!this._closed, "SignalRPCClient is closed", {
901
- F: __dxlog_file3,
494
+ invariant(!this._closed, "SignalRPCClient is closed", {
495
+ F: __dxlog_file2,
902
496
  L: 179,
903
497
  S: this,
904
498
  A: [
@@ -916,16 +510,16 @@ var SignalRPCClient = class {
916
510
  return swarmStream;
917
511
  }
918
512
  async receiveMessages(peerId) {
919
- log3("receiveMessages", {
513
+ log2("receiveMessages", {
920
514
  peerId
921
515
  }, {
922
- F: __dxlog_file3,
516
+ F: __dxlog_file2,
923
517
  L: 191,
924
518
  S: this,
925
519
  C: (f, a) => f(...a)
926
520
  });
927
- invariant2(!this._closed, "SignalRPCClient is closed", {
928
- F: __dxlog_file3,
521
+ invariant(!this._closed, "SignalRPCClient is closed", {
522
+ F: __dxlog_file2,
929
523
  L: 192,
930
524
  S: this,
931
525
  A: [
@@ -941,19 +535,19 @@ var SignalRPCClient = class {
941
535
  return messageStream;
942
536
  }
943
537
  async sendMessage({ author, recipient, payload }) {
944
- log3("sendMessage", {
538
+ log2("sendMessage", {
945
539
  author,
946
540
  recipient,
947
541
  payload,
948
542
  metadata: this._callbacks?.getMetadata?.()
949
543
  }, {
950
- F: __dxlog_file3,
544
+ F: __dxlog_file2,
951
545
  L: 210,
952
546
  S: this,
953
547
  C: (f, a) => f(...a)
954
548
  });
955
- invariant2(!this._closed, "SignalRPCClient is closed", {
956
- F: __dxlog_file3,
549
+ invariant(!this._closed, "SignalRPCClient is closed", {
550
+ F: __dxlog_file2,
957
551
  L: 211,
958
552
  S: this,
959
553
  A: [
@@ -974,8 +568,8 @@ var SignalRPCClient = class {
974
568
  this._connectTrigger.reset();
975
569
  await this._rpc.close();
976
570
  } catch (err) {
977
- log3.catch(err, void 0, {
978
- F: __dxlog_file3,
571
+ log2.catch(err, void 0, {
572
+ F: __dxlog_file2,
979
573
  L: 226,
980
574
  S: this,
981
575
  C: (f, a) => f(...a)
@@ -985,7 +579,7 @@ var SignalRPCClient = class {
985
579
  };
986
580
 
987
581
  // src/signal-client/signal-client.ts
988
- var __dxlog_file4 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-client.ts";
582
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-client.ts";
989
583
  var DEFAULT_RECONNECT_TIMEOUT = 100;
990
584
  var MAX_RECONNECT_TIMEOUT = 5e3;
991
585
  var ERROR_RECONCILE_DELAY = 1e3;
@@ -1006,7 +600,7 @@ var SignalClient = class extends Resource {
1006
600
  * Number of milliseconds after which the connection will be attempted again in case of error.
1007
601
  */
1008
602
  _reconnectAfter = DEFAULT_RECONNECT_TIMEOUT;
1009
- _instanceId = PublicKey4.random().toHex();
603
+ _instanceId = PublicKey3.random().toHex();
1010
604
  /**
1011
605
  * @internal
1012
606
  */
@@ -1031,11 +625,11 @@ var SignalClient = class extends Resource {
1031
625
  }, async (event) => this.swarmEvent.emit(event));
1032
626
  }
1033
627
  async _open() {
1034
- log4.trace("dxos.mesh.signal-client.open", trace6.begin({
628
+ log3.trace("dxos.mesh.signal-client.open", trace4.begin({
1035
629
  id: this._instanceId
1036
630
  }), {
1037
- F: __dxlog_file4,
1038
- L: 97,
631
+ F: __dxlog_file3,
632
+ L: 96,
1039
633
  S: this,
1040
634
  C: (f, a) => f(...a)
1041
635
  });
@@ -1051,9 +645,9 @@ var SignalClient = class extends Resource {
1051
645
  await cancelWithContext2(this._connectionCtx, this._clientReady.wait({
1052
646
  timeout: 5e3
1053
647
  }));
1054
- invariant3(this._state === SignalState.CONNECTED, "Not connected to Signal Server", {
1055
- F: __dxlog_file4,
1056
- L: 107,
648
+ invariant2(this._state === SignalState.CONNECTED, "Not connected to Signal Server", {
649
+ F: __dxlog_file3,
650
+ L: 106,
1057
651
  S: this,
1058
652
  A: [
1059
653
  "this._state === SignalState.CONNECTED",
@@ -1073,7 +667,7 @@ var SignalClient = class extends Resource {
1073
667
  throw err;
1074
668
  }
1075
669
  });
1076
- scheduleTaskInterval3(this._ctx, async () => {
670
+ scheduleTaskInterval2(this._ctx, async () => {
1077
671
  if (this._state === SignalState.CONNECTED) {
1078
672
  this._reconcileTask.schedule();
1079
673
  }
@@ -1092,11 +686,11 @@ var SignalClient = class extends Resource {
1092
686
  }
1093
687
  });
1094
688
  this._createClient();
1095
- log4.trace("dxos.mesh.signal-client.open", trace6.end({
689
+ log3.trace("dxos.mesh.signal-client.open", trace4.end({
1096
690
  id: this._instanceId
1097
691
  }), {
1098
- F: __dxlog_file4,
1099
- L: 140,
692
+ F: __dxlog_file3,
693
+ L: 139,
1100
694
  S: this,
1101
695
  C: (f, a) => f(...a)
1102
696
  });
@@ -1106,9 +700,9 @@ var SignalClient = class extends Resource {
1106
700
  return;
1107
701
  }
1108
702
  if (this._state === SignalState.CONNECTED && !this._lastReconciliationFailed) {
1109
- log4.warn("SignalClient error:", err, {
1110
- F: __dxlog_file4,
1111
- L: 149,
703
+ log3.warn("SignalClient error:", err, {
704
+ F: __dxlog_file3,
705
+ L: 148,
1112
706
  S: this,
1113
707
  C: (f, a) => f(...a)
1114
708
  });
@@ -1116,9 +710,9 @@ var SignalClient = class extends Resource {
1116
710
  this._scheduleReconcileAfterError();
1117
711
  }
1118
712
  async _close() {
1119
- log4("closing...", void 0, {
1120
- F: __dxlog_file4,
1121
- L: 155,
713
+ log3("closing...", void 0, {
714
+ F: __dxlog_file3,
715
+ L: 154,
1122
716
  S: this,
1123
717
  C: (f, a) => f(...a)
1124
718
  });
@@ -1129,9 +723,9 @@ var SignalClient = class extends Resource {
1129
723
  }
1130
724
  this._setState(SignalState.CLOSED);
1131
725
  await this._safeResetClient();
1132
- log4("closed", void 0, {
1133
- F: __dxlog_file4,
1134
- L: 163,
726
+ log3("closed", void 0, {
727
+ F: __dxlog_file3,
728
+ L: 162,
1135
729
  S: this,
1136
730
  C: (f, a) => f(...a)
1137
731
  });
@@ -1145,66 +739,66 @@ var SignalClient = class extends Resource {
1145
739
  ...this._monitor.getRecordedTimestamps()
1146
740
  };
1147
741
  }
1148
- async join(args) {
1149
- log4("joining", {
742
+ async join(_ctx, args) {
743
+ log3("joining", {
1150
744
  topic: args.topic,
1151
745
  peerId: args.peer.peerKey
1152
746
  }, {
1153
- F: __dxlog_file4,
1154
- L: 177,
747
+ F: __dxlog_file3,
748
+ L: 176,
1155
749
  S: this,
1156
750
  C: (f, a) => f(...a)
1157
751
  });
1158
752
  this._monitor.recordJoin();
1159
753
  this.localState.join({
1160
754
  topic: args.topic,
1161
- peerId: PublicKey4.from(args.peer.peerKey)
755
+ peerId: PublicKey3.from(args.peer.peerKey)
1162
756
  });
1163
757
  this._reconcileTask?.schedule();
1164
758
  }
1165
- async leave(args) {
1166
- log4("leaving", {
759
+ async leave(_ctx, args) {
760
+ log3("leaving", {
1167
761
  topic: args.topic,
1168
762
  peerId: args.peer.peerKey
1169
763
  }, {
1170
- F: __dxlog_file4,
1171
- L: 184,
764
+ F: __dxlog_file3,
765
+ L: 183,
1172
766
  S: this,
1173
767
  C: (f, a) => f(...a)
1174
768
  });
1175
769
  this._monitor.recordLeave();
1176
770
  this.localState.leave({
1177
771
  topic: args.topic,
1178
- peerId: PublicKey4.from(args.peer.peerKey)
772
+ peerId: PublicKey3.from(args.peer.peerKey)
1179
773
  });
1180
774
  }
1181
- async query(params) {
775
+ async query(_ctx, params) {
1182
776
  throw new Error("Not implemented");
1183
777
  }
1184
- async sendMessage(msg) {
778
+ async sendMessage(_ctx, msg) {
1185
779
  return this._monitor.recordMessageSending(msg, async () => {
1186
780
  await this._clientReady.wait();
1187
- invariant3(this._state === SignalState.CONNECTED, "Not connected to Signal Server", {
1188
- F: __dxlog_file4,
1189
- L: 196,
781
+ invariant2(this._state === SignalState.CONNECTED, "Not connected to Signal Server", {
782
+ F: __dxlog_file3,
783
+ L: 195,
1190
784
  S: this,
1191
785
  A: [
1192
786
  "this._state === SignalState.CONNECTED",
1193
787
  "'Not connected to Signal Server'"
1194
788
  ]
1195
789
  });
1196
- invariant3(msg.author.peerKey, "Author key required", {
1197
- F: __dxlog_file4,
1198
- L: 197,
790
+ invariant2(msg.author.peerKey, "Author key required", {
791
+ F: __dxlog_file3,
792
+ L: 196,
1199
793
  S: this,
1200
794
  A: [
1201
795
  "msg.author.peerKey",
1202
796
  "'Author key required'"
1203
797
  ]
1204
798
  });
1205
- invariant3(msg.recipient.peerKey, "Recipient key required", {
1206
- F: __dxlog_file4,
1207
- L: 198,
799
+ invariant2(msg.recipient.peerKey, "Recipient key required", {
800
+ F: __dxlog_file3,
801
+ L: 197,
1208
802
  S: this,
1209
803
  A: [
1210
804
  "msg.recipient.peerKey",
@@ -1212,69 +806,69 @@ var SignalClient = class extends Resource {
1212
806
  ]
1213
807
  });
1214
808
  await this._client.sendMessage({
1215
- author: PublicKey4.from(msg.author.peerKey),
1216
- recipient: PublicKey4.from(msg.recipient.peerKey),
809
+ author: PublicKey3.from(msg.author.peerKey),
810
+ recipient: PublicKey3.from(msg.recipient.peerKey),
1217
811
  payload: msg.payload
1218
812
  });
1219
813
  });
1220
814
  }
1221
815
  async subscribeMessages(peer) {
1222
- invariant3(peer.peerKey, "Peer key required", {
1223
- F: __dxlog_file4,
1224
- L: 208,
816
+ invariant2(peer.peerKey, "Peer key required", {
817
+ F: __dxlog_file3,
818
+ L: 207,
1225
819
  S: this,
1226
820
  A: [
1227
821
  "peer.peerKey",
1228
822
  "'Peer key required'"
1229
823
  ]
1230
824
  });
1231
- log4("subscribing to messages", {
825
+ log3("subscribing to messages", {
1232
826
  peer
1233
827
  }, {
1234
- F: __dxlog_file4,
1235
- L: 209,
828
+ F: __dxlog_file3,
829
+ L: 208,
1236
830
  S: this,
1237
831
  C: (f, a) => f(...a)
1238
832
  });
1239
- this.localState.subscribeMessages(PublicKey4.from(peer.peerKey));
833
+ this.localState.subscribeMessages(PublicKey3.from(peer.peerKey));
1240
834
  this._reconcileTask?.schedule();
1241
835
  }
1242
836
  async unsubscribeMessages(peer) {
1243
- invariant3(peer.peerKey, "Peer key required", {
1244
- F: __dxlog_file4,
1245
- L: 215,
837
+ invariant2(peer.peerKey, "Peer key required", {
838
+ F: __dxlog_file3,
839
+ L: 214,
1246
840
  S: this,
1247
841
  A: [
1248
842
  "peer.peerKey",
1249
843
  "'Peer key required'"
1250
844
  ]
1251
845
  });
1252
- log4("unsubscribing from messages", {
846
+ log3("unsubscribing from messages", {
1253
847
  peer
1254
848
  }, {
1255
- F: __dxlog_file4,
1256
- L: 216,
849
+ F: __dxlog_file3,
850
+ L: 215,
1257
851
  S: this,
1258
852
  C: (f, a) => f(...a)
1259
853
  });
1260
- this.localState.unsubscribeMessages(PublicKey4.from(peer.peerKey));
854
+ this.localState.unsubscribeMessages(PublicKey3.from(peer.peerKey));
1261
855
  }
1262
856
  _scheduleReconcileAfterError() {
1263
- scheduleTask2(this._ctx, () => this._reconcileTask.schedule(), ERROR_RECONCILE_DELAY);
857
+ scheduleTask(this._ctx, () => this._reconcileTask.schedule(), ERROR_RECONCILE_DELAY);
1264
858
  }
1265
859
  _createClient() {
1266
- log4("creating client", {
860
+ log3("creating client", {
1267
861
  host: this._host,
1268
862
  state: this._state
1269
863
  }, {
1270
- F: __dxlog_file4,
1271
- L: 225,
864
+ F: __dxlog_file3,
865
+ L: 224,
1272
866
  S: this,
1273
867
  C: (f, a) => f(...a)
1274
868
  });
1275
- invariant3(!this._client, "Client already created", {
1276
- F: __dxlog_file4,
1277
- L: 226,
869
+ invariant2(!this._client, "Client already created", {
870
+ F: __dxlog_file3,
871
+ L: 225,
1278
872
  S: this,
1279
873
  A: [
1280
874
  "!this._client",
@@ -1284,9 +878,9 @@ var SignalClient = class extends Resource {
1284
878
  this._monitor.recordConnectionStartTime();
1285
879
  this._connectionCtx = this._ctx.derive();
1286
880
  this._connectionCtx.onDispose(async () => {
1287
- log4("connection context disposed", void 0, {
1288
- F: __dxlog_file4,
1289
- L: 233,
881
+ log3("connection context disposed", void 0, {
882
+ F: __dxlog_file3,
883
+ L: 232,
1290
884
  S: this,
1291
885
  C: (f, a) => f(...a)
1292
886
  });
@@ -1299,9 +893,9 @@ var SignalClient = class extends Resource {
1299
893
  callbacks: {
1300
894
  onConnected: () => {
1301
895
  if (client === this._client) {
1302
- log4("socket connected", void 0, {
1303
- F: __dxlog_file4,
1304
- L: 244,
896
+ log3("socket connected", void 0, {
897
+ F: __dxlog_file3,
898
+ L: 243,
1305
899
  S: this,
1306
900
  C: (f, a) => f(...a)
1307
901
  });
@@ -1312,11 +906,11 @@ var SignalClient = class extends Resource {
1312
906
  if (client !== this._client) {
1313
907
  return;
1314
908
  }
1315
- log4("socket disconnected", {
909
+ log3("socket disconnected", {
1316
910
  state: this._state
1317
911
  }, {
1318
- F: __dxlog_file4,
1319
- L: 253,
912
+ F: __dxlog_file3,
913
+ L: 252,
1320
914
  S: this,
1321
915
  C: (f, a) => f(...a)
1322
916
  });
@@ -1328,12 +922,12 @@ var SignalClient = class extends Resource {
1328
922
  },
1329
923
  onError: (error) => {
1330
924
  if (client === this._client) {
1331
- log4("socket error", {
925
+ log3("socket error", {
1332
926
  error,
1333
927
  state: this._state
1334
928
  }, {
1335
- F: __dxlog_file4,
1336
- L: 265,
929
+ F: __dxlog_file3,
930
+ L: 264,
1337
931
  S: this,
1338
932
  C: (f, a) => f(...a)
1339
933
  });
@@ -1354,18 +948,18 @@ var SignalClient = class extends Resource {
1354
948
  }
1355
949
  }
1356
950
  async _reconnect() {
1357
- log4(`reconnecting in ${this._reconnectAfter}ms`, {
951
+ log3(`reconnecting in ${this._reconnectAfter}ms`, {
1358
952
  state: this._state
1359
953
  }, {
1360
- F: __dxlog_file4,
1361
- L: 280,
954
+ F: __dxlog_file3,
955
+ L: 279,
1362
956
  S: this,
1363
957
  C: (f, a) => f(...a)
1364
958
  });
1365
959
  if (this._state === SignalState.RECONNECTING) {
1366
- log4.info("Signal api already reconnecting.", void 0, {
1367
- F: __dxlog_file4,
1368
- L: 283,
960
+ log3.info("Signal api already reconnecting.", void 0, {
961
+ F: __dxlog_file3,
962
+ L: 282,
1369
963
  S: this,
1370
964
  C: (f, a) => f(...a)
1371
965
  });
@@ -1403,11 +997,11 @@ var SignalClient = class extends Resource {
1403
997
  _setState(newState) {
1404
998
  this._state = newState;
1405
999
  this._monitor.recordStateChangeTime();
1406
- log4("signal state changed", {
1000
+ log3("signal state changed", {
1407
1001
  status: this.getStatus()
1408
1002
  }, {
1409
- F: __dxlog_file4,
1410
- L: 324,
1003
+ F: __dxlog_file3,
1004
+ L: 323,
1411
1005
  S: this,
1412
1006
  C: (f, a) => f(...a)
1413
1007
  });
@@ -1429,293 +1023,23 @@ var SignalClient = class extends Resource {
1429
1023
  }
1430
1024
  };
1431
1025
 
1432
- // src/signal-methods.ts
1433
- var PeerInfoHash = ({ peerKey }) => peerKey;
1434
-
1435
- // src/signal-manager/memory-signal-manager.ts
1436
- import { Event as Event3, Trigger as Trigger3 } from "@dxos/async";
1437
- import { Context as Context3 } from "@dxos/context";
1438
- import { invariant as invariant4 } from "@dxos/invariant";
1439
- import { PublicKey as PublicKey5 } from "@dxos/keys";
1440
- import { log as log5 } from "@dxos/log";
1441
- import { schema as schema3 } from "@dxos/protocols/proto";
1442
- import { ComplexMap as ComplexMap3, ComplexSet as ComplexSet3 } from "@dxos/util";
1443
- var __dxlog_file5 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/memory-signal-manager.ts";
1444
- var MemorySignalManagerContext = class {
1445
- // Swarm messages.
1446
- swarmEvent = new Event3();
1447
- // Mapping from topic to set of peers.
1448
- swarms = new ComplexMap3(PublicKey5.hash);
1449
- // Map of connections for each peer for signaling.
1450
- connections = new ComplexMap3(PeerInfoHash);
1451
- };
1452
- var MemorySignalManager = class {
1453
- _context;
1454
- statusChanged = new Event3();
1455
- swarmEvent = new Event3();
1456
- onMessage = new Event3();
1457
- /** Will be used to emit SwarmEvents on .open() and .close() */
1458
- _joinedSwarms = new ComplexSet3(({ topic, peer }) => topic.toHex() + peer.peerKey);
1459
- _ctx;
1460
- // TODO(dmaretskyi): Replace with callback.
1461
- _freezeTrigger = new Trigger3().wake();
1462
- constructor(_context) {
1463
- this._context = _context;
1464
- this._ctx = new Context3(void 0, {
1465
- F: __dxlog_file5,
1466
- L: 54
1467
- });
1468
- this._ctx.onDispose(this._context.swarmEvent.on((data) => this.swarmEvent.emit(data)));
1469
- }
1470
- async open() {
1471
- if (!this._ctx.disposed) {
1472
- return;
1473
- }
1474
- this._ctx = new Context3(void 0, {
1475
- F: __dxlog_file5,
1476
- L: 63
1477
- });
1478
- this._ctx.onDispose(this._context.swarmEvent.on((data) => this.swarmEvent.emit(data)));
1479
- await Promise.all([
1480
- ...this._joinedSwarms.values()
1481
- ].map((value) => this.join(value)));
1482
- }
1483
- async close() {
1484
- if (this._ctx.disposed) {
1485
- return;
1486
- }
1487
- const joinedSwarmsCopy = new ComplexSet3(({ topic, peer }) => topic.toHex() + peer.peerKey, [
1488
- ...this._joinedSwarms.values()
1489
- ]);
1490
- await Promise.all([
1491
- ...this._joinedSwarms.values()
1492
- ].map((value) => this.leave(value)));
1493
- this._joinedSwarms = joinedSwarmsCopy;
1494
- await this._ctx.dispose();
1495
- }
1496
- getStatus() {
1497
- return [];
1498
- }
1499
- async join({ topic, peer }) {
1500
- invariant4(!this._ctx.disposed, "Closed", {
1501
- F: __dxlog_file5,
1502
- L: 92,
1503
- S: this,
1504
- A: [
1505
- "!this._ctx.disposed",
1506
- "'Closed'"
1507
- ]
1508
- });
1509
- this._joinedSwarms.add({
1510
- topic,
1511
- peer
1512
- });
1513
- if (!this._context.swarms.has(topic)) {
1514
- this._context.swarms.set(topic, new ComplexSet3(PeerInfoHash));
1515
- }
1516
- this._context.swarms.get(topic).add(peer);
1517
- this._context.swarmEvent.emit({
1518
- topic,
1519
- peerAvailable: {
1520
- peer,
1521
- since: /* @__PURE__ */ new Date()
1522
- }
1523
- });
1524
- for (const [topic2, peers] of this._context.swarms) {
1525
- Array.from(peers).forEach((peer2) => {
1526
- this.swarmEvent.emit({
1527
- topic: topic2,
1528
- peerAvailable: {
1529
- peer: peer2,
1530
- since: /* @__PURE__ */ new Date()
1531
- }
1532
- });
1533
- });
1534
- }
1535
- }
1536
- async leave({ topic, peer }) {
1537
- invariant4(!this._ctx.disposed, "Closed", {
1538
- F: __dxlog_file5,
1539
- L: 124,
1540
- S: this,
1541
- A: [
1542
- "!this._ctx.disposed",
1543
- "'Closed'"
1544
- ]
1545
- });
1546
- this._joinedSwarms.delete({
1547
- topic,
1548
- peer
1549
- });
1550
- if (!this._context.swarms.has(topic)) {
1551
- this._context.swarms.set(topic, new ComplexSet3(PeerInfoHash));
1552
- }
1553
- this._context.swarms.get(topic).delete(peer);
1554
- const swarmEvent = {
1555
- topic,
1556
- peerLeft: {
1557
- peer
1558
- }
1559
- };
1560
- this._context.swarmEvent.emit(swarmEvent);
1561
- }
1562
- async query(request) {
1563
- throw new Error("Not implemented");
1564
- }
1565
- async sendMessage({ author, recipient, payload }) {
1566
- log5("send message", {
1567
- author,
1568
- recipient,
1569
- ...dec(payload)
1570
- }, {
1571
- F: __dxlog_file5,
1572
- L: 157,
1573
- S: this,
1574
- C: (f, a) => f(...a)
1575
- });
1576
- invariant4(recipient, void 0, {
1577
- F: __dxlog_file5,
1578
- L: 159,
1579
- S: this,
1580
- A: [
1581
- "recipient",
1582
- ""
1583
- ]
1584
- });
1585
- invariant4(!this._ctx.disposed, "Closed", {
1586
- F: __dxlog_file5,
1587
- L: 160,
1588
- S: this,
1589
- A: [
1590
- "!this._ctx.disposed",
1591
- "'Closed'"
1592
- ]
1593
- });
1594
- await this._freezeTrigger.wait();
1595
- const remote = this._context.connections.get(recipient);
1596
- if (!remote) {
1597
- log5.warn("recipient is not subscribed for messages", {
1598
- author,
1599
- recipient
1600
- }, {
1601
- F: __dxlog_file5,
1602
- L: 166,
1603
- S: this,
1604
- C: (f, a) => f(...a)
1605
- });
1606
- return;
1607
- }
1608
- if (remote._ctx.disposed) {
1609
- log5.warn("recipient is disposed", {
1610
- author,
1611
- recipient
1612
- }, {
1613
- F: __dxlog_file5,
1614
- L: 171,
1615
- S: this,
1616
- C: (f, a) => f(...a)
1617
- });
1618
- return;
1619
- }
1620
- remote._freezeTrigger.wait().then(() => {
1621
- if (remote._ctx.disposed) {
1622
- log5.warn("recipient is disposed", {
1623
- author,
1624
- recipient
1625
- }, {
1626
- F: __dxlog_file5,
1627
- L: 179,
1628
- S: this,
1629
- C: (f, a) => f(...a)
1630
- });
1631
- return;
1632
- }
1633
- log5("receive message", {
1634
- author,
1635
- recipient,
1636
- ...dec(payload)
1637
- }, {
1638
- F: __dxlog_file5,
1639
- L: 183,
1640
- S: this,
1641
- C: (f, a) => f(...a)
1642
- });
1643
- remote.onMessage.emit({
1644
- author,
1645
- recipient,
1646
- payload
1647
- });
1648
- }).catch((err) => {
1649
- log5.error("error while waiting for freeze", {
1650
- err
1651
- }, {
1652
- F: __dxlog_file5,
1653
- L: 188,
1654
- S: this,
1655
- C: (f, a) => f(...a)
1656
- });
1657
- });
1658
- }
1659
- async subscribeMessages(peerInfo) {
1660
- log5("subscribing", {
1661
- peerInfo
1662
- }, {
1663
- F: __dxlog_file5,
1664
- L: 193,
1665
- S: this,
1666
- C: (f, a) => f(...a)
1667
- });
1668
- this._context.connections.set(peerInfo, this);
1669
- }
1670
- async unsubscribeMessages(peerInfo) {
1671
- log5("unsubscribing", {
1672
- peerInfo
1673
- }, {
1674
- F: __dxlog_file5,
1675
- L: 198,
1676
- S: this,
1677
- C: (f, a) => f(...a)
1678
- });
1679
- this._context.connections.delete(peerInfo);
1680
- }
1681
- freeze() {
1682
- this._freezeTrigger.reset();
1683
- }
1684
- unfreeze() {
1685
- this._freezeTrigger.wake();
1686
- }
1687
- };
1688
- var dec = (payload) => {
1689
- if (!payload.type_url.endsWith("ReliablePayload")) {
1690
- return {};
1691
- }
1692
- const relPayload = schema3.getCodecForType("dxos.mesh.messaging.ReliablePayload").decode(payload.value);
1693
- if (typeof relPayload?.payload?.data === "object") {
1694
- return {
1695
- payload: Object.keys(relPayload?.payload?.data)[0],
1696
- sessionId: relPayload?.payload?.sessionId
1697
- };
1698
- }
1699
- return {};
1700
- };
1701
-
1702
1026
  // src/signal-manager/websocket-signal-manager.ts
1703
- import { Event as Event4, sleep as sleep2, synchronized } from "@dxos/async";
1027
+ import { Event as Event3, sleep as sleep2, synchronized } from "@dxos/async";
1704
1028
  import { LifecycleState, Resource as Resource2 } from "@dxos/context";
1705
- import { invariant as invariant5 } from "@dxos/invariant";
1706
- import { PublicKey as PublicKey6 } from "@dxos/keys";
1707
- import { log as log6 } from "@dxos/log";
1708
- import { RateLimitExceededError, TimeoutError as TimeoutError3, trace as trace8 } from "@dxos/protocols";
1029
+ import { invariant as invariant3 } from "@dxos/invariant";
1030
+ import { PublicKey as PublicKey4 } from "@dxos/keys";
1031
+ import { log as log4 } from "@dxos/log";
1032
+ import { RateLimitExceededError, TimeoutError as TimeoutError2, trace as trace6 } from "@dxos/protocols";
1709
1033
  import { BitField, safeAwaitAll as safeAwaitAll2 } from "@dxos/util";
1710
1034
 
1711
1035
  // src/signal-manager/websocket-signal-manager-monitor.ts
1712
- import { trace as trace7 } from "@dxos/tracing";
1036
+ import { trace as trace5 } from "@dxos/tracing";
1713
1037
  var WebsocketSignalManagerMonitor = class {
1714
1038
  recordRateLimitExceeded() {
1715
- trace7.metrics.increment("dxos.mesh.signal.signal-manager.rate-limit-hit", 1);
1039
+ trace5.metrics.increment("dxos.mesh.signal.signal-manager.rate-limit-hit", 1);
1716
1040
  }
1717
1041
  recordServerFailure(params) {
1718
- trace7.metrics.increment("dxos.mesh.signal.signal-manager.server-failure", 1, {
1042
+ trace5.metrics.increment("dxos.mesh.signal.signal-manager.server-failure", 1, {
1719
1043
  tags: {
1720
1044
  server: params.serverName,
1721
1045
  restarted: params.willRestart
@@ -1731,7 +1055,7 @@ function _ts_decorate(decorators, target, key, desc) {
1731
1055
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1732
1056
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1733
1057
  }
1734
- var __dxlog_file6 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/websocket-signal-manager.ts";
1058
+ var __dxlog_file4 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/websocket-signal-manager.ts";
1735
1059
  var MAX_SERVER_FAILURES = 5;
1736
1060
  var WSS_SIGNAL_SERVER_REBOOT_DELAY = 3e3;
1737
1061
  var WebsocketSignalManager = class extends Resource2 {
@@ -1744,17 +1068,17 @@ var WebsocketSignalManager = class extends Resource2 {
1744
1068
  */
1745
1069
  _failedServersBitfield;
1746
1070
  failureCount = /* @__PURE__ */ new Map();
1747
- statusChanged = new Event4();
1748
- swarmEvent = new Event4();
1749
- onMessage = new Event4();
1750
- _instanceId = PublicKey6.random().toHex();
1071
+ statusChanged = new Event3();
1072
+ swarmEvent = new Event3();
1073
+ onMessage = new Event3();
1074
+ _instanceId = PublicKey4.random().toHex();
1751
1075
  constructor(_hosts, _getMetadata) {
1752
1076
  super(), this._hosts = _hosts, this._getMetadata = _getMetadata;
1753
- log6("Created WebsocketSignalManager", {
1077
+ log4("Created WebsocketSignalManager", {
1754
1078
  hosts: this._hosts
1755
1079
  }, {
1756
- F: __dxlog_file6,
1757
- L: 59,
1080
+ F: __dxlog_file4,
1081
+ L: 58,
1758
1082
  S: this,
1759
1083
  C: (f, a) => f(...a)
1760
1084
  });
@@ -1772,28 +1096,28 @@ var WebsocketSignalManager = class extends Resource2 {
1772
1096
  this._failedServersBitfield = BitField.zeros(this._hosts.length);
1773
1097
  }
1774
1098
  async _open() {
1775
- log6("open signal manager", {
1099
+ log4("open signal manager", {
1776
1100
  hosts: this._hosts
1777
1101
  }, {
1778
- F: __dxlog_file6,
1779
- L: 79,
1102
+ F: __dxlog_file4,
1103
+ L: 78,
1780
1104
  S: this,
1781
1105
  C: (f, a) => f(...a)
1782
1106
  });
1783
- log6.trace("dxos.mesh.websocket-signal-manager.open", trace8.begin({
1107
+ log4.trace("dxos.mesh.websocket-signal-manager.open", trace6.begin({
1784
1108
  id: this._instanceId
1785
1109
  }), {
1786
- F: __dxlog_file6,
1787
- L: 80,
1110
+ F: __dxlog_file4,
1111
+ L: 79,
1788
1112
  S: this,
1789
1113
  C: (f, a) => f(...a)
1790
1114
  });
1791
1115
  await safeAwaitAll2(this._servers.values(), (server) => server.open());
1792
- log6.trace("dxos.mesh.websocket-signal-manager.open", trace8.end({
1116
+ log4.trace("dxos.mesh.websocket-signal-manager.open", trace6.end({
1793
1117
  id: this._instanceId
1794
1118
  }), {
1795
- F: __dxlog_file6,
1796
- L: 84,
1119
+ F: __dxlog_file4,
1120
+ L: 83,
1797
1121
  S: this,
1798
1122
  C: (f, a) => f(...a)
1799
1123
  });
@@ -1802,17 +1126,17 @@ var WebsocketSignalManager = class extends Resource2 {
1802
1126
  await safeAwaitAll2(this._servers.values(), (server) => server.close());
1803
1127
  }
1804
1128
  async restartServer(serverName) {
1805
- log6("restarting server", {
1129
+ log4("restarting server", {
1806
1130
  serverName
1807
1131
  }, {
1808
- F: __dxlog_file6,
1809
- L: 92,
1132
+ F: __dxlog_file4,
1133
+ L: 91,
1810
1134
  S: this,
1811
1135
  C: (f, a) => f(...a)
1812
1136
  });
1813
- invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
1814
- F: __dxlog_file6,
1815
- L: 93,
1137
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1138
+ F: __dxlog_file4,
1139
+ L: 92,
1816
1140
  S: this,
1817
1141
  A: [
1818
1142
  "this._lifecycleState === LifecycleState.OPEN",
@@ -1820,9 +1144,9 @@ var WebsocketSignalManager = class extends Resource2 {
1820
1144
  ]
1821
1145
  });
1822
1146
  const server = this._servers.get(serverName);
1823
- invariant5(server, "server not found", {
1824
- F: __dxlog_file6,
1825
- L: 96,
1147
+ invariant3(server, "server not found", {
1148
+ F: __dxlog_file4,
1149
+ L: 95,
1826
1150
  S: this,
1827
1151
  A: [
1828
1152
  "server",
@@ -1836,69 +1160,69 @@ var WebsocketSignalManager = class extends Resource2 {
1836
1160
  getStatus() {
1837
1161
  return Array.from(this._servers.values()).map((server) => server.getStatus());
1838
1162
  }
1839
- async join({ topic, peer }) {
1840
- log6("join", {
1163
+ async join(_ctx, { topic, peer }) {
1164
+ log4("join", {
1841
1165
  topic,
1842
1166
  peer
1843
1167
  }, {
1844
- F: __dxlog_file6,
1845
- L: 109,
1168
+ F: __dxlog_file4,
1169
+ L: 108,
1846
1170
  S: this,
1847
1171
  C: (f, a) => f(...a)
1848
1172
  });
1849
- invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
1850
- F: __dxlog_file6,
1851
- L: 110,
1173
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1174
+ F: __dxlog_file4,
1175
+ L: 109,
1852
1176
  S: this,
1853
1177
  A: [
1854
1178
  "this._lifecycleState === LifecycleState.OPEN",
1855
1179
  ""
1856
1180
  ]
1857
1181
  });
1858
- await this._forEachServer((server) => server.join({
1182
+ await this._forEachServer((server) => server.join(_ctx, {
1859
1183
  topic,
1860
1184
  peer
1861
1185
  }));
1862
1186
  }
1863
- async leave({ topic, peer }) {
1864
- log6("leaving", {
1187
+ async leave(_ctx, { topic, peer }) {
1188
+ log4("leaving", {
1865
1189
  topic,
1866
1190
  peer
1867
1191
  }, {
1868
- F: __dxlog_file6,
1869
- L: 116,
1192
+ F: __dxlog_file4,
1193
+ L: 115,
1870
1194
  S: this,
1871
1195
  C: (f, a) => f(...a)
1872
1196
  });
1873
- invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
1874
- F: __dxlog_file6,
1875
- L: 117,
1197
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1198
+ F: __dxlog_file4,
1199
+ L: 116,
1876
1200
  S: this,
1877
1201
  A: [
1878
1202
  "this._lifecycleState === LifecycleState.OPEN",
1879
1203
  ""
1880
1204
  ]
1881
1205
  });
1882
- await this._forEachServer((server) => server.leave({
1206
+ await this._forEachServer((server) => server.leave(_ctx, {
1883
1207
  topic,
1884
1208
  peer
1885
1209
  }));
1886
1210
  }
1887
- async query({ topic }) {
1211
+ async query(_ctx, { topic }) {
1888
1212
  throw new Error("Not implemented");
1889
1213
  }
1890
- async sendMessage({ author, recipient, payload }) {
1891
- log6("signal", {
1214
+ async sendMessage(_ctx, { author, recipient, payload }) {
1215
+ log4("signal", {
1892
1216
  recipient
1893
1217
  }, {
1894
- F: __dxlog_file6,
1895
- L: 126,
1218
+ F: __dxlog_file4,
1219
+ L: 125,
1896
1220
  S: this,
1897
1221
  C: (f, a) => f(...a)
1898
1222
  });
1899
- invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
1900
- F: __dxlog_file6,
1901
- L: 127,
1223
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1224
+ F: __dxlog_file4,
1225
+ L: 126,
1902
1226
  S: this,
1903
1227
  A: [
1904
1228
  "this._lifecycleState === LifecycleState.OPEN",
@@ -1906,37 +1230,37 @@ var WebsocketSignalManager = class extends Resource2 {
1906
1230
  ]
1907
1231
  });
1908
1232
  void this._forEachServer(async (server, serverName, index) => {
1909
- void server.sendMessage({
1233
+ void server.sendMessage(_ctx, {
1910
1234
  author,
1911
1235
  recipient,
1912
1236
  payload
1913
1237
  }).then(() => this._clearServerFailedFlag(serverName, index)).catch((err) => {
1914
1238
  if (err instanceof RateLimitExceededError) {
1915
- log6.info("WSS rate limit exceeded", {
1239
+ log4.info("WSS rate limit exceeded", {
1916
1240
  err
1917
1241
  }, {
1918
- F: __dxlog_file6,
1919
- L: 135,
1242
+ F: __dxlog_file4,
1243
+ L: 134,
1920
1244
  S: this,
1921
1245
  C: (f, a) => f(...a)
1922
1246
  });
1923
1247
  this._monitor.recordRateLimitExceeded();
1924
- } else if (err instanceof TimeoutError3 || err.constructor.name === "TimeoutError") {
1925
- log6.info("WSS sendMessage timeout", {
1248
+ } else if (err instanceof TimeoutError2 || err.constructor.name === "TimeoutError") {
1249
+ log4.info("WSS sendMessage timeout", {
1926
1250
  err
1927
1251
  }, {
1928
- F: __dxlog_file6,
1929
- L: 138,
1252
+ F: __dxlog_file4,
1253
+ L: 137,
1930
1254
  S: this,
1931
1255
  C: (f, a) => f(...a)
1932
1256
  });
1933
1257
  void this.checkServerFailure(serverName, index);
1934
1258
  } else {
1935
- log6.warn(`error sending to ${serverName}`, {
1259
+ log4.warn(`error sending to ${serverName}`, {
1936
1260
  err
1937
1261
  }, {
1938
- F: __dxlog_file6,
1939
- L: 141,
1262
+ F: __dxlog_file4,
1263
+ L: 140,
1940
1264
  S: this,
1941
1265
  C: (f, a) => f(...a)
1942
1266
  });
@@ -1954,12 +1278,12 @@ var WebsocketSignalManager = class extends Resource2 {
1954
1278
  });
1955
1279
  if (isRestartRequired) {
1956
1280
  if (!BitField.get(this._failedServersBitfield, index)) {
1957
- log6.warn("too many failures for ws-server, restarting", {
1281
+ log4.warn("too many failures for ws-server, restarting", {
1958
1282
  serverName,
1959
1283
  failureCount
1960
1284
  }, {
1961
- F: __dxlog_file6,
1962
- L: 155,
1285
+ F: __dxlog_file4,
1286
+ L: 154,
1963
1287
  S: this,
1964
1288
  C: (f, a) => f(...a)
1965
1289
  });
@@ -1973,11 +1297,11 @@ var WebsocketSignalManager = class extends Resource2 {
1973
1297
  }
1974
1298
  _clearServerFailedFlag(serverName, index) {
1975
1299
  if (BitField.get(this._failedServersBitfield, index)) {
1976
- log6.info("server connection restored", {
1300
+ log4.info("server connection restored", {
1977
1301
  serverName
1978
1302
  }, {
1979
- F: __dxlog_file6,
1980
- L: 168,
1303
+ F: __dxlog_file4,
1304
+ L: 167,
1981
1305
  S: this,
1982
1306
  C: (f, a) => f(...a)
1983
1307
  });
@@ -1986,17 +1310,17 @@ var WebsocketSignalManager = class extends Resource2 {
1986
1310
  }
1987
1311
  }
1988
1312
  async subscribeMessages(peer) {
1989
- log6("subscribed for message stream", {
1313
+ log4("subscribed for message stream", {
1990
1314
  peer
1991
1315
  }, {
1992
- F: __dxlog_file6,
1993
- L: 175,
1316
+ F: __dxlog_file4,
1317
+ L: 174,
1994
1318
  S: this,
1995
1319
  C: (f, a) => f(...a)
1996
1320
  });
1997
- invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
1998
- F: __dxlog_file6,
1999
- L: 176,
1321
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1322
+ F: __dxlog_file4,
1323
+ L: 175,
2000
1324
  S: this,
2001
1325
  A: [
2002
1326
  "this._lifecycleState === LifecycleState.OPEN",
@@ -2006,17 +1330,17 @@ var WebsocketSignalManager = class extends Resource2 {
2006
1330
  await this._forEachServer(async (server) => server.subscribeMessages(peer));
2007
1331
  }
2008
1332
  async unsubscribeMessages(peer) {
2009
- log6("subscribed for message stream", {
1333
+ log4("subscribed for message stream", {
2010
1334
  peer
2011
1335
  }, {
2012
- F: __dxlog_file6,
2013
- L: 182,
1336
+ F: __dxlog_file4,
1337
+ L: 181,
2014
1338
  S: this,
2015
1339
  C: (f, a) => f(...a)
2016
1340
  });
2017
- invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
2018
- F: __dxlog_file6,
2019
- L: 183,
1341
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1342
+ F: __dxlog_file4,
1343
+ L: 182,
2020
1344
  S: this,
2021
1345
  A: [
2022
1346
  "this._lifecycleState === LifecycleState.OPEN",
@@ -2040,29 +1364,29 @@ _ts_decorate([
2040
1364
  ], WebsocketSignalManager.prototype, "checkServerFailure", null);
2041
1365
 
2042
1366
  // src/signal-manager/edge-signal-manager.ts
2043
- import { Event as Event5, scheduleMicroTask } from "@dxos/async";
1367
+ import { Event as Event4, scheduleMicroTask } from "@dxos/async";
2044
1368
  import { Resource as Resource3, cancelWithContext as cancelWithContext3 } from "@dxos/context";
2045
1369
  import { EdgeIdentityChangedError, protocol } from "@dxos/edge-client";
2046
- import { invariant as invariant6 } from "@dxos/invariant";
2047
- import { PublicKey as PublicKey7 } from "@dxos/keys";
2048
- import { log as log7 } from "@dxos/log";
1370
+ import { invariant as invariant4 } from "@dxos/invariant";
1371
+ import { PublicKey as PublicKey5 } from "@dxos/keys";
1372
+ import { log as log5 } from "@dxos/log";
2049
1373
  import { EdgeService } from "@dxos/protocols";
2050
1374
  import { bufWkt } from "@dxos/protocols/buf";
2051
1375
  import { SwarmRequest_Action as SwarmRequestAction, SwarmRequestSchema, SwarmResponseSchema } from "@dxos/protocols/buf/dxos/edge/messenger_pb";
2052
- import { ComplexMap as ComplexMap4, ComplexSet as ComplexSet4 } from "@dxos/util";
2053
- var __dxlog_file7 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/edge-signal-manager.ts";
1376
+ import { ComplexMap as ComplexMap2, ComplexSet as ComplexSet2 } from "@dxos/util";
1377
+ var __dxlog_file5 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/edge-signal-manager.ts";
2054
1378
  var EdgeSignalManager = class extends Resource3 {
2055
1379
  /**
2056
1380
  * @deprecated
2057
1381
  */
2058
- swarmEvent = new Event5();
2059
- swarmState = new Event5();
2060
- onMessage = new Event5();
1382
+ swarmEvent = new Event4();
1383
+ swarmState = new Event4();
1384
+ onMessage = new Event4();
2061
1385
  /**
2062
1386
  * Swarm key -> { peer: <own state payload>, joinedPeers: <state of swarm> }.
2063
1387
  */
2064
1388
  // TODO(mykola): This class should not contain swarm state joinedPeers. Temporary before network-manager API changes to accept list of peers.
2065
- _swarmPeers = new ComplexMap4(PublicKey7.hash);
1389
+ _swarmPeers = new ComplexMap2(PublicKey5.hash);
2066
1390
  _edgeConnection;
2067
1391
  constructor({ edgeConnection }) {
2068
1392
  super();
@@ -2077,17 +1401,17 @@ var EdgeSignalManager = class extends Resource3 {
2077
1401
  /**
2078
1402
  * Warning: PeerInfo is inferred from edgeConnection.
2079
1403
  */
2080
- async join({ topic, peer }) {
1404
+ async join(ctx, { topic, peer }) {
2081
1405
  if (!this._matchSelfPeerInfo(peer)) {
2082
- log7.warn("ignoring peer info on join request", {
1406
+ log5.warn("ignoring peer info on join request", {
2083
1407
  peer,
2084
1408
  expected: {
2085
1409
  peerKey: this._edgeConnection.peerKey,
2086
1410
  identityKey: this._edgeConnection.identityKey
2087
1411
  }
2088
1412
  }, {
2089
- F: __dxlog_file7,
2090
- L: 66,
1413
+ F: __dxlog_file5,
1414
+ L: 65,
2091
1415
  S: this,
2092
1416
  C: (f, a) => f(...a)
2093
1417
  });
@@ -2096,9 +1420,9 @@ var EdgeSignalManager = class extends Resource3 {
2096
1420
  }
2097
1421
  this._swarmPeers.set(topic, {
2098
1422
  lastState: peer.state,
2099
- joinedPeers: new ComplexSet4(PeerInfoHash)
1423
+ joinedPeers: new ComplexSet2(PeerInfoHash)
2100
1424
  });
2101
- await this._edgeConnection.send(protocol.createMessage(SwarmRequestSchema, {
1425
+ await this._edgeConnection.send(ctx, protocol.createMessage(SwarmRequestSchema, {
2102
1426
  serviceId: EdgeService.SWARM,
2103
1427
  source: createMessageSource(topic, peer),
2104
1428
  payload: {
@@ -2109,10 +1433,10 @@ var EdgeSignalManager = class extends Resource3 {
2109
1433
  }
2110
1434
  }));
2111
1435
  }
2112
- async leave({ topic, peer }) {
1436
+ async leave(ctx, { topic, peer }) {
2113
1437
  this._swarmPeers.delete(topic);
2114
1438
  try {
2115
- await this._edgeConnection.send(protocol.createMessage(SwarmRequestSchema, {
1439
+ await this._edgeConnection.send(ctx, protocol.createMessage(SwarmRequestSchema, {
2116
1440
  serviceId: EdgeService.SWARM,
2117
1441
  source: createMessageSource(topic, peer),
2118
1442
  payload: {
@@ -2129,9 +1453,9 @@ var EdgeSignalManager = class extends Resource3 {
2129
1453
  throw err;
2130
1454
  }
2131
1455
  }
2132
- async query({ topic }) {
1456
+ async query(ctx, { topic }) {
2133
1457
  const response = cancelWithContext3(this._ctx, this.swarmState.waitFor((state) => state.swarmKey === topic.toHex()));
2134
- await this._edgeConnection.send(protocol.createMessage(SwarmRequestSchema, {
1458
+ await this._edgeConnection.send(ctx, protocol.createMessage(SwarmRequestSchema, {
2135
1459
  serviceId: EdgeService.SWARM,
2136
1460
  source: createMessageSource(topic, {
2137
1461
  peerKey: this._edgeConnection.peerKey,
@@ -2146,22 +1470,22 @@ var EdgeSignalManager = class extends Resource3 {
2146
1470
  }));
2147
1471
  return response;
2148
1472
  }
2149
- async sendMessage(message) {
1473
+ async sendMessage(ctx, message) {
2150
1474
  if (!this._matchSelfPeerInfo(message.author)) {
2151
- log7.warn("ignoring author on send request", {
1475
+ log5.warn("ignoring author on send request", {
2152
1476
  author: message.author,
2153
1477
  expected: {
2154
1478
  peerKey: this._edgeConnection.peerKey,
2155
1479
  identityKey: this._edgeConnection.identityKey
2156
1480
  }
2157
1481
  }, {
2158
- F: __dxlog_file7,
2159
- L: 131,
1482
+ F: __dxlog_file5,
1483
+ L: 133,
2160
1484
  S: this,
2161
1485
  C: (f, a) => f(...a)
2162
1486
  });
2163
1487
  }
2164
- await this._edgeConnection.send(protocol.createMessage(bufWkt.AnySchema, {
1488
+ await this._edgeConnection.send(ctx, protocol.createMessage(bufWkt.AnySchema, {
2165
1489
  serviceId: EdgeService.SIGNAL,
2166
1490
  source: message.author,
2167
1491
  target: [
@@ -2189,9 +1513,9 @@ var EdgeSignalManager = class extends Resource3 {
2189
1513
  }
2190
1514
  }
2191
1515
  _processSwarmResponse(message) {
2192
- invariant6(protocol.getPayloadType(message) === SwarmResponseSchema.typeName, "Wrong payload type", {
2193
- F: __dxlog_file7,
2194
- L: 168,
1516
+ invariant4(protocol.getPayloadType(message) === SwarmResponseSchema.typeName, "Wrong payload type", {
1517
+ F: __dxlog_file5,
1518
+ L: 171,
2195
1519
  S: this,
2196
1520
  A: [
2197
1521
  "protocol.getPayloadType(message) === SwarmResponseSchema.typeName",
@@ -2200,13 +1524,13 @@ var EdgeSignalManager = class extends Resource3 {
2200
1524
  });
2201
1525
  const payload = protocol.getPayload(message, SwarmResponseSchema);
2202
1526
  this.swarmState.emit(payload);
2203
- const topic = PublicKey7.from(payload.swarmKey);
1527
+ const topic = PublicKey5.from(payload.swarmKey);
2204
1528
  if (!this._swarmPeers.has(topic)) {
2205
1529
  return;
2206
1530
  }
2207
1531
  const { joinedPeers: oldPeers } = this._swarmPeers.get(topic);
2208
1532
  const timestamp = message.timestamp ? new Date(Date.parse(message.timestamp)) : /* @__PURE__ */ new Date();
2209
- const newPeers = new ComplexSet4(PeerInfoHash, payload.peers);
1533
+ const newPeers = new ComplexSet2(PeerInfoHash, payload.peers);
2210
1534
  for (const peer of newPeers) {
2211
1535
  if (oldPeers.has(peer)) {
2212
1536
  continue;
@@ -2233,9 +1557,9 @@ var EdgeSignalManager = class extends Resource3 {
2233
1557
  this._swarmPeers.get(topic).joinedPeers = newPeers;
2234
1558
  }
2235
1559
  _processMessage(message) {
2236
- invariant6(protocol.getPayloadType(message) === bufWkt.AnySchema.typeName, "Wrong payload type", {
2237
- F: __dxlog_file7,
2238
- L: 206,
1560
+ invariant4(protocol.getPayloadType(message) === bufWkt.AnySchema.typeName, "Wrong payload type", {
1561
+ F: __dxlog_file5,
1562
+ L: 209,
2239
1563
  S: this,
2240
1564
  A: [
2241
1565
  "protocol.getPayloadType(message) === bufWkt.AnySchema.typeName",
@@ -2243,27 +1567,27 @@ var EdgeSignalManager = class extends Resource3 {
2243
1567
  ]
2244
1568
  });
2245
1569
  const payload = protocol.getPayload(message, bufWkt.AnySchema);
2246
- invariant6(message.source, "source is missing", {
2247
- F: __dxlog_file7,
2248
- L: 208,
1570
+ invariant4(message.source, "source is missing", {
1571
+ F: __dxlog_file5,
1572
+ L: 211,
2249
1573
  S: this,
2250
1574
  A: [
2251
1575
  "message.source",
2252
1576
  "'source is missing'"
2253
1577
  ]
2254
1578
  });
2255
- invariant6(message.target, "target is missing", {
2256
- F: __dxlog_file7,
2257
- L: 209,
1579
+ invariant4(message.target, "target is missing", {
1580
+ F: __dxlog_file5,
1581
+ L: 212,
2258
1582
  S: this,
2259
1583
  A: [
2260
1584
  "message.target",
2261
1585
  "'target is missing'"
2262
1586
  ]
2263
1587
  });
2264
- invariant6(message.target.length === 1, "target should have exactly one item", {
2265
- F: __dxlog_file7,
2266
- L: 210,
1588
+ invariant4(message.target.length === 1, "target should have exactly one item", {
1589
+ F: __dxlog_file5,
1590
+ L: 213,
2267
1591
  S: this,
2268
1592
  A: [
2269
1593
  "message.target.length === 1",
@@ -2283,16 +1607,16 @@ var EdgeSignalManager = class extends Resource3 {
2283
1607
  return peer && (peer.peerKey === this._edgeConnection.peerKey || peer.identityKey === this._edgeConnection.identityKey);
2284
1608
  }
2285
1609
  async _rejoinAllSwarms() {
2286
- log7("rejoin swarms", {
1610
+ log5("rejoin swarms", {
2287
1611
  swarms: Array.from(this._swarmPeers.keys())
2288
1612
  }, {
2289
- F: __dxlog_file7,
2290
- L: 229,
1613
+ F: __dxlog_file5,
1614
+ L: 232,
2291
1615
  S: this,
2292
1616
  C: (f, a) => f(...a)
2293
1617
  });
2294
1618
  for (const [topic, { lastState }] of this._swarmPeers.entries()) {
2295
- await this.join({
1619
+ await this.join(this._ctx, {
2296
1620
  topic,
2297
1621
  peer: {
2298
1622
  peerKey: this._edgeConnection.peerKey,
@@ -2311,17 +1635,17 @@ var createMessageSource = (topic, peerInfo) => {
2311
1635
  };
2312
1636
 
2313
1637
  // src/signal-manager/utils.ts
2314
- import { invariant as invariant7 } from "@dxos/invariant";
2315
- import { log as log8 } from "@dxos/log";
1638
+ import { invariant as invariant5 } from "@dxos/invariant";
1639
+ import { log as log6 } from "@dxos/log";
2316
1640
  import { DeviceKind } from "@dxos/protocols/proto/dxos/client/services";
2317
- var __dxlog_file8 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/utils.ts";
1641
+ var __dxlog_file6 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/utils.ts";
2318
1642
  var setIdentityTags = ({ identityService, devicesService, setTag }) => {
2319
1643
  identityService.queryIdentity().subscribe((idqr) => {
2320
1644
  if (!idqr?.identity?.identityKey) {
2321
- log8("empty response from identity service", {
1645
+ log6("empty response from identity service", {
2322
1646
  idqr
2323
1647
  }, {
2324
- F: __dxlog_file8,
1648
+ F: __dxlog_file6,
2325
1649
  L: 21,
2326
1650
  S: void 0,
2327
1651
  C: (f, a) => f(...a)
@@ -2332,18 +1656,18 @@ var setIdentityTags = ({ identityService, devicesService, setTag }) => {
2332
1656
  });
2333
1657
  devicesService.queryDevices().subscribe((dqr) => {
2334
1658
  if (!dqr || !dqr.devices || dqr.devices.length === 0) {
2335
- log8("empty response from device service", {
1659
+ log6("empty response from device service", {
2336
1660
  device: dqr
2337
1661
  }, {
2338
- F: __dxlog_file8,
1662
+ F: __dxlog_file6,
2339
1663
  L: 30,
2340
1664
  S: void 0,
2341
1665
  C: (f, a) => f(...a)
2342
1666
  });
2343
1667
  return;
2344
1668
  }
2345
- invariant7(dqr, "empty response from device service", {
2346
- F: __dxlog_file8,
1669
+ invariant5(dqr, "empty response from device service", {
1670
+ F: __dxlog_file6,
2347
1671
  L: 33,
2348
1672
  S: void 0,
2349
1673
  A: [
@@ -2353,10 +1677,10 @@ var setIdentityTags = ({ identityService, devicesService, setTag }) => {
2353
1677
  });
2354
1678
  const thisDevice = dqr.devices.find((device) => device.kind === DeviceKind.CURRENT);
2355
1679
  if (!thisDevice) {
2356
- log8("no current device", {
1680
+ log6("no current device", {
2357
1681
  device: dqr
2358
1682
  }, {
2359
- F: __dxlog_file8,
1683
+ F: __dxlog_file6,
2360
1684
  L: 37,
2361
1685
  S: void 0,
2362
1686
  C: (f, a) => f(...a)
@@ -2366,15 +1690,14 @@ var setIdentityTags = ({ identityService, devicesService, setTag }) => {
2366
1690
  setTag("deviceKey", thisDevice.deviceKey.truncate());
2367
1691
  });
2368
1692
  };
2369
-
2370
1693
  export {
1694
+ EdgeSignalManager,
1695
+ MemorySignalManager,
1696
+ MemorySignalManagerContext,
2371
1697
  Messenger,
2372
- SignalClient,
2373
1698
  PeerInfoHash,
2374
- MemorySignalManagerContext,
2375
- MemorySignalManager,
1699
+ SignalClient,
2376
1700
  WebsocketSignalManager,
2377
- EdgeSignalManager,
2378
1701
  setIdentityTags
2379
1702
  };
2380
- //# sourceMappingURL=chunk-L7NDSF6K.mjs.map
1703
+ //# sourceMappingURL=index.mjs.map