@dxos/messaging 0.8.3 → 0.8.4-main.1068cf700f

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