@dxos/messaging 0.8.4-main.e8ec1fe → 0.8.4-main.ef1bc66f44

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.
@@ -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-5MOQVHHI.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,10 +187,10 @@ 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,
193
+ F: __dxlog_file,
600
194
  L: 80,
601
195
  S: this,
602
196
  C: (f, a) => f(...a)
@@ -645,10 +239,10 @@ 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,
245
+ F: __dxlog_file,
652
246
  L: 116,
653
247
  S: this,
654
248
  C: (f, a) => f(...a)
@@ -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,10 +625,10 @@ 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,
631
+ F: __dxlog_file3,
1038
632
  L: 97,
1039
633
  S: this,
1040
634
  C: (f, a) => f(...a)
@@ -1051,8 +645,8 @@ 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,
648
+ invariant2(this._state === SignalState.CONNECTED, "Not connected to Signal Server", {
649
+ F: __dxlog_file3,
1056
650
  L: 107,
1057
651
  S: this,
1058
652
  A: [
@@ -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,10 +686,10 @@ 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,
692
+ F: __dxlog_file3,
1099
693
  L: 140,
1100
694
  S: this,
1101
695
  C: (f, a) => f(...a)
@@ -1106,8 +700,8 @@ 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,
703
+ log3.warn("SignalClient error:", err, {
704
+ F: __dxlog_file3,
1111
705
  L: 149,
1112
706
  S: this,
1113
707
  C: (f, a) => f(...a)
@@ -1116,8 +710,8 @@ var SignalClient = class extends Resource {
1116
710
  this._scheduleReconcileAfterError();
1117
711
  }
1118
712
  async _close() {
1119
- log4("closing...", void 0, {
1120
- F: __dxlog_file4,
713
+ log3("closing...", void 0, {
714
+ F: __dxlog_file3,
1121
715
  L: 155,
1122
716
  S: this,
1123
717
  C: (f, a) => f(...a)
@@ -1129,8 +723,8 @@ 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,
726
+ log3("closed", void 0, {
727
+ F: __dxlog_file3,
1134
728
  L: 163,
1135
729
  S: this,
1136
730
  C: (f, a) => f(...a)
@@ -1146,11 +740,11 @@ var SignalClient = class extends Resource {
1146
740
  };
1147
741
  }
1148
742
  async join(args) {
1149
- log4("joining", {
743
+ log3("joining", {
1150
744
  topic: args.topic,
1151
745
  peerId: args.peer.peerKey
1152
746
  }, {
1153
- F: __dxlog_file4,
747
+ F: __dxlog_file3,
1154
748
  L: 177,
1155
749
  S: this,
1156
750
  C: (f, a) => f(...a)
@@ -1158,16 +752,16 @@ var SignalClient = class extends Resource {
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
759
  async leave(args) {
1166
- log4("leaving", {
760
+ log3("leaving", {
1167
761
  topic: args.topic,
1168
762
  peerId: args.peer.peerKey
1169
763
  }, {
1170
- F: __dxlog_file4,
764
+ F: __dxlog_file3,
1171
765
  L: 184,
1172
766
  S: this,
1173
767
  C: (f, a) => f(...a)
@@ -1175,7 +769,7 @@ var SignalClient = class extends Resource {
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
775
  async query(params) {
@@ -1184,8 +778,8 @@ var SignalClient = class extends Resource {
1184
778
  async sendMessage(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,
781
+ invariant2(this._state === SignalState.CONNECTED, "Not connected to Signal Server", {
782
+ F: __dxlog_file3,
1189
783
  L: 196,
1190
784
  S: this,
1191
785
  A: [
@@ -1193,8 +787,8 @@ var SignalClient = class extends Resource {
1193
787
  "'Not connected to Signal Server'"
1194
788
  ]
1195
789
  });
1196
- invariant3(msg.author.peerKey, "Author key required", {
1197
- F: __dxlog_file4,
790
+ invariant2(msg.author.peerKey, "Author key required", {
791
+ F: __dxlog_file3,
1198
792
  L: 197,
1199
793
  S: this,
1200
794
  A: [
@@ -1202,8 +796,8 @@ var SignalClient = class extends Resource {
1202
796
  "'Author key required'"
1203
797
  ]
1204
798
  });
1205
- invariant3(msg.recipient.peerKey, "Recipient key required", {
1206
- F: __dxlog_file4,
799
+ invariant2(msg.recipient.peerKey, "Recipient key required", {
800
+ F: __dxlog_file3,
1207
801
  L: 198,
1208
802
  S: this,
1209
803
  A: [
@@ -1212,15 +806,15 @@ 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,
816
+ invariant2(peer.peerKey, "Peer key required", {
817
+ F: __dxlog_file3,
1224
818
  L: 208,
1225
819
  S: this,
1226
820
  A: [
@@ -1228,20 +822,20 @@ var SignalClient = class extends Resource {
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,
828
+ F: __dxlog_file3,
1235
829
  L: 209,
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,
837
+ invariant2(peer.peerKey, "Peer key required", {
838
+ F: __dxlog_file3,
1245
839
  L: 215,
1246
840
  S: this,
1247
841
  A: [
@@ -1249,31 +843,31 @@ var SignalClient = class extends Resource {
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,
849
+ F: __dxlog_file3,
1256
850
  L: 216,
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,
864
+ F: __dxlog_file3,
1271
865
  L: 225,
1272
866
  S: this,
1273
867
  C: (f, a) => f(...a)
1274
868
  });
1275
- invariant3(!this._client, "Client already created", {
1276
- F: __dxlog_file4,
869
+ invariant2(!this._client, "Client already created", {
870
+ F: __dxlog_file3,
1277
871
  L: 226,
1278
872
  S: this,
1279
873
  A: [
@@ -1284,8 +878,8 @@ 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,
881
+ log3("connection context disposed", void 0, {
882
+ F: __dxlog_file3,
1289
883
  L: 233,
1290
884
  S: this,
1291
885
  C: (f, a) => f(...a)
@@ -1299,8 +893,8 @@ 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,
896
+ log3("socket connected", void 0, {
897
+ F: __dxlog_file3,
1304
898
  L: 244,
1305
899
  S: this,
1306
900
  C: (f, a) => f(...a)
@@ -1312,10 +906,10 @@ 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,
912
+ F: __dxlog_file3,
1319
913
  L: 253,
1320
914
  S: this,
1321
915
  C: (f, a) => f(...a)
@@ -1328,11 +922,11 @@ 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,
929
+ F: __dxlog_file3,
1336
930
  L: 265,
1337
931
  S: this,
1338
932
  C: (f, a) => f(...a)
@@ -1354,17 +948,17 @@ 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,
954
+ F: __dxlog_file3,
1361
955
  L: 280,
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,
960
+ log3.info("Signal api already reconnecting.", void 0, {
961
+ F: __dxlog_file3,
1368
962
  L: 283,
1369
963
  S: this,
1370
964
  C: (f, a) => f(...a)
@@ -1403,10 +997,10 @@ 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,
1003
+ F: __dxlog_file3,
1410
1004
  L: 324,
1411
1005
  S: this,
1412
1006
  C: (f, a) => f(...a)
@@ -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,16 +1068,16 @@ 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,
1080
+ F: __dxlog_file4,
1757
1081
  L: 59,
1758
1082
  S: this,
1759
1083
  C: (f, a) => f(...a)
@@ -1772,27 +1096,27 @@ 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,
1102
+ F: __dxlog_file4,
1779
1103
  L: 79,
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,
1110
+ F: __dxlog_file4,
1787
1111
  L: 80,
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,
1119
+ F: __dxlog_file4,
1796
1120
  L: 84,
1797
1121
  S: this,
1798
1122
  C: (f, a) => f(...a)
@@ -1802,16 +1126,16 @@ 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,
1132
+ F: __dxlog_file4,
1809
1133
  L: 92,
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,
1137
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1138
+ F: __dxlog_file4,
1815
1139
  L: 93,
1816
1140
  S: this,
1817
1141
  A: [
@@ -1820,8 +1144,8 @@ 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,
1147
+ invariant3(server, "server not found", {
1148
+ F: __dxlog_file4,
1825
1149
  L: 96,
1826
1150
  S: this,
1827
1151
  A: [
@@ -1837,17 +1161,17 @@ var WebsocketSignalManager = class extends Resource2 {
1837
1161
  return Array.from(this._servers.values()).map((server) => server.getStatus());
1838
1162
  }
1839
1163
  async join({ topic, peer }) {
1840
- log6("join", {
1164
+ log4("join", {
1841
1165
  topic,
1842
1166
  peer
1843
1167
  }, {
1844
- F: __dxlog_file6,
1168
+ F: __dxlog_file4,
1845
1169
  L: 109,
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,
1173
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1174
+ F: __dxlog_file4,
1851
1175
  L: 110,
1852
1176
  S: this,
1853
1177
  A: [
@@ -1861,17 +1185,17 @@ var WebsocketSignalManager = class extends Resource2 {
1861
1185
  }));
1862
1186
  }
1863
1187
  async leave({ topic, peer }) {
1864
- log6("leaving", {
1188
+ log4("leaving", {
1865
1189
  topic,
1866
1190
  peer
1867
1191
  }, {
1868
- F: __dxlog_file6,
1192
+ F: __dxlog_file4,
1869
1193
  L: 116,
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,
1197
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1198
+ F: __dxlog_file4,
1875
1199
  L: 117,
1876
1200
  S: this,
1877
1201
  A: [
@@ -1888,16 +1212,16 @@ var WebsocketSignalManager = class extends Resource2 {
1888
1212
  throw new Error("Not implemented");
1889
1213
  }
1890
1214
  async sendMessage({ author, recipient, payload }) {
1891
- log6("signal", {
1215
+ log4("signal", {
1892
1216
  recipient
1893
1217
  }, {
1894
- F: __dxlog_file6,
1218
+ F: __dxlog_file4,
1895
1219
  L: 126,
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,
1223
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1224
+ F: __dxlog_file4,
1901
1225
  L: 127,
1902
1226
  S: this,
1903
1227
  A: [
@@ -1912,30 +1236,30 @@ var WebsocketSignalManager = class extends Resource2 {
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,
1242
+ F: __dxlog_file4,
1919
1243
  L: 135,
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,
1252
+ F: __dxlog_file4,
1929
1253
  L: 138,
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,
1262
+ F: __dxlog_file4,
1939
1263
  L: 141,
1940
1264
  S: this,
1941
1265
  C: (f, a) => f(...a)
@@ -1954,11 +1278,11 @@ 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,
1285
+ F: __dxlog_file4,
1962
1286
  L: 155,
1963
1287
  S: this,
1964
1288
  C: (f, a) => f(...a)
@@ -1973,10 +1297,10 @@ 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,
1303
+ F: __dxlog_file4,
1980
1304
  L: 168,
1981
1305
  S: this,
1982
1306
  C: (f, a) => f(...a)
@@ -1986,16 +1310,16 @@ 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,
1316
+ F: __dxlog_file4,
1993
1317
  L: 175,
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,
1321
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1322
+ F: __dxlog_file4,
1999
1323
  L: 176,
2000
1324
  S: this,
2001
1325
  A: [
@@ -2006,16 +1330,16 @@ 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,
1336
+ F: __dxlog_file4,
2013
1337
  L: 182,
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,
1341
+ invariant3(this._lifecycleState === LifecycleState.OPEN, void 0, {
1342
+ F: __dxlog_file4,
2019
1343
  L: 183,
2020
1344
  S: this,
2021
1345
  A: [
@@ -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();
@@ -2079,14 +1403,14 @@ var EdgeSignalManager = class extends Resource3 {
2079
1403
  */
2080
1404
  async join({ 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,
1413
+ F: __dxlog_file5,
2090
1414
  L: 66,
2091
1415
  S: this,
2092
1416
  C: (f, a) => f(...a)
@@ -2096,7 +1420,7 @@ 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
1425
  await this._edgeConnection.send(protocol.createMessage(SwarmRequestSchema, {
2102
1426
  serviceId: EdgeService.SWARM,
@@ -2148,14 +1472,14 @@ var EdgeSignalManager = class extends Resource3 {
2148
1472
  }
2149
1473
  async sendMessage(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,
1482
+ F: __dxlog_file5,
2159
1483
  L: 131,
2160
1484
  S: this,
2161
1485
  C: (f, a) => f(...a)
@@ -2189,8 +1513,8 @@ 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,
1516
+ invariant4(protocol.getPayloadType(message) === SwarmResponseSchema.typeName, "Wrong payload type", {
1517
+ F: __dxlog_file5,
2194
1518
  L: 168,
2195
1519
  S: this,
2196
1520
  A: [
@@ -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,8 +1557,8 @@ 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,
1560
+ invariant4(protocol.getPayloadType(message) === bufWkt.AnySchema.typeName, "Wrong payload type", {
1561
+ F: __dxlog_file5,
2238
1562
  L: 206,
2239
1563
  S: this,
2240
1564
  A: [
@@ -2243,8 +1567,8 @@ 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,
1570
+ invariant4(message.source, "source is missing", {
1571
+ F: __dxlog_file5,
2248
1572
  L: 208,
2249
1573
  S: this,
2250
1574
  A: [
@@ -2252,8 +1576,8 @@ var EdgeSignalManager = class extends Resource3 {
2252
1576
  "'source is missing'"
2253
1577
  ]
2254
1578
  });
2255
- invariant6(message.target, "target is missing", {
2256
- F: __dxlog_file7,
1579
+ invariant4(message.target, "target is missing", {
1580
+ F: __dxlog_file5,
2257
1581
  L: 209,
2258
1582
  S: this,
2259
1583
  A: [
@@ -2261,8 +1585,8 @@ var EdgeSignalManager = class extends Resource3 {
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,
1588
+ invariant4(message.target.length === 1, "target should have exactly one item", {
1589
+ F: __dxlog_file5,
2266
1590
  L: 210,
2267
1591
  S: this,
2268
1592
  A: [
@@ -2283,10 +1607,10 @@ 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,
1613
+ F: __dxlog_file5,
2290
1614
  L: 229,
2291
1615
  S: this,
2292
1616
  C: (f, a) => f(...a)
@@ -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