@dxos/messaging 0.1.58-main.afe71a8 → 0.1.58-main.b2aa5cf

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 +1 @@
1
- {"inputs":{"packages/core/mesh/messaging/src/timeouts.ts":{"bytes":656,"imports":[],"format":"esm"},"packages/core/mesh/messaging/src/messenger.ts":{"bytes":34784,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/mesh/messaging/src/timeouts.ts","kind":"import-statement","original":"./timeouts"}],"format":"esm"},"packages/core/mesh/messaging/src/signal-client/signal-rpc-client.ts":{"bytes":20028,"imports":[{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"format":"esm"},"packages/core/mesh/messaging/src/signal-client/signal-client.ts":{"bytes":52172,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/mesh/signal","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/mesh/messaging/src/signal-client/signal-rpc-client.ts","kind":"import-statement","original":"./signal-rpc-client"}],"format":"esm"},"packages/core/mesh/messaging/src/signal-client/index.ts":{"bytes":499,"imports":[{"path":"packages/core/mesh/messaging/src/signal-client/signal-client.ts","kind":"import-statement","original":"./signal-client"}],"format":"esm"},"packages/core/mesh/messaging/src/signal-manager/memory-signal-manager.ts":{"bytes":24541,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/mesh/messaging/src/signal-manager/signal-manager.ts":{"bytes":1268,"imports":[],"format":"esm"},"packages/core/mesh/messaging/src/signal-manager/websocket-signal-manager.ts":{"bytes":18581,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"packages/core/mesh/messaging/src/signal-client/index.ts","kind":"import-statement","original":"../signal-client"}],"format":"esm"},"packages/core/mesh/messaging/src/signal-manager/index.ts":{"bytes":750,"imports":[{"path":"packages/core/mesh/messaging/src/signal-manager/memory-signal-manager.ts","kind":"import-statement","original":"./memory-signal-manager"},{"path":"packages/core/mesh/messaging/src/signal-manager/signal-manager.ts","kind":"import-statement","original":"./signal-manager"},{"path":"packages/core/mesh/messaging/src/signal-manager/websocket-signal-manager.ts","kind":"import-statement","original":"./websocket-signal-manager"}],"format":"esm"},"packages/core/mesh/messaging/src/signal-methods.ts":{"bytes":1621,"imports":[],"format":"esm"},"packages/core/mesh/messaging/src/index.ts":{"bytes":782,"imports":[{"path":"packages/core/mesh/messaging/src/messenger.ts","kind":"import-statement","original":"./messenger"},{"path":"packages/core/mesh/messaging/src/signal-client/index.ts","kind":"import-statement","original":"./signal-client"},{"path":"packages/core/mesh/messaging/src/signal-manager/index.ts","kind":"import-statement","original":"./signal-manager"},{"path":"packages/core/mesh/messaging/src/signal-methods.ts","kind":"import-statement","original":"./signal-methods"}],"format":"esm"}},"outputs":{"packages/core/mesh/messaging/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":69070},"packages/core/mesh/messaging/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/mesh/signal","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"exports":["MemorySignalManager","MemorySignalManagerContext","Messenger","SignalClient","WebsocketSignalManager"],"entryPoint":"packages/core/mesh/messaging/src/index.ts","inputs":{"packages/core/mesh/messaging/src/messenger.ts":{"bytesInOutput":10112},"packages/core/mesh/messaging/src/timeouts.ts":{"bytesInOutput":27},"packages/core/mesh/messaging/src/index.ts":{"bytesInOutput":0},"packages/core/mesh/messaging/src/signal-client/signal-client.ts":{"bytesInOutput":13561},"packages/core/mesh/messaging/src/signal-client/signal-rpc-client.ts":{"bytesInOutput":6017},"packages/core/mesh/messaging/src/signal-client/index.ts":{"bytesInOutput":0},"packages/core/mesh/messaging/src/signal-manager/memory-signal-manager.ts":{"bytesInOutput":6682},"packages/core/mesh/messaging/src/signal-manager/index.ts":{"bytesInOutput":0},"packages/core/mesh/messaging/src/signal-manager/websocket-signal-manager.ts":{"bytesInOutput":6027}},"bytes":43127}}}
1
+ {"inputs":{"packages/core/mesh/messaging/src/timeouts.ts":{"bytes":656,"imports":[],"format":"esm"},"packages/core/mesh/messaging/src/messenger.ts":{"bytes":37849,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/mesh/messaging/src/timeouts.ts","kind":"import-statement","original":"./timeouts"}],"format":"esm"},"packages/core/mesh/messaging/src/signal-client/signal-rpc-client.ts":{"bytes":20028,"imports":[{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"format":"esm"},"packages/core/mesh/messaging/src/signal-client/signal-client.ts":{"bytes":52172,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/mesh/signal","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/mesh/messaging/src/signal-client/signal-rpc-client.ts","kind":"import-statement","original":"./signal-rpc-client"}],"format":"esm"},"packages/core/mesh/messaging/src/signal-client/index.ts":{"bytes":499,"imports":[{"path":"packages/core/mesh/messaging/src/signal-client/signal-client.ts","kind":"import-statement","original":"./signal-client"}],"format":"esm"},"packages/core/mesh/messaging/src/signal-manager/memory-signal-manager.ts":{"bytes":24541,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/mesh/messaging/src/signal-manager/signal-manager.ts":{"bytes":1268,"imports":[],"format":"esm"},"packages/core/mesh/messaging/src/signal-manager/websocket-signal-manager.ts":{"bytes":18581,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"packages/core/mesh/messaging/src/signal-client/index.ts","kind":"import-statement","original":"../signal-client"}],"format":"esm"},"packages/core/mesh/messaging/src/signal-manager/index.ts":{"bytes":750,"imports":[{"path":"packages/core/mesh/messaging/src/signal-manager/memory-signal-manager.ts","kind":"import-statement","original":"./memory-signal-manager"},{"path":"packages/core/mesh/messaging/src/signal-manager/signal-manager.ts","kind":"import-statement","original":"./signal-manager"},{"path":"packages/core/mesh/messaging/src/signal-manager/websocket-signal-manager.ts","kind":"import-statement","original":"./websocket-signal-manager"}],"format":"esm"},"packages/core/mesh/messaging/src/signal-methods.ts":{"bytes":1621,"imports":[],"format":"esm"},"packages/core/mesh/messaging/src/index.ts":{"bytes":782,"imports":[{"path":"packages/core/mesh/messaging/src/messenger.ts","kind":"import-statement","original":"./messenger"},{"path":"packages/core/mesh/messaging/src/signal-client/index.ts","kind":"import-statement","original":"./signal-client"},{"path":"packages/core/mesh/messaging/src/signal-manager/index.ts","kind":"import-statement","original":"./signal-manager"},{"path":"packages/core/mesh/messaging/src/signal-methods.ts","kind":"import-statement","original":"./signal-methods"}],"format":"esm"}},"outputs":{"packages/core/mesh/messaging/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":70566},"packages/core/mesh/messaging/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/mesh/signal","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"exports":["MemorySignalManager","MemorySignalManagerContext","Messenger","SignalClient","WebsocketSignalManager"],"entryPoint":"packages/core/mesh/messaging/src/index.ts","inputs":{"packages/core/mesh/messaging/src/messenger.ts":{"bytesInOutput":10944},"packages/core/mesh/messaging/src/timeouts.ts":{"bytesInOutput":27},"packages/core/mesh/messaging/src/index.ts":{"bytesInOutput":0},"packages/core/mesh/messaging/src/signal-client/signal-client.ts":{"bytesInOutput":13587},"packages/core/mesh/messaging/src/signal-client/signal-rpc-client.ts":{"bytesInOutput":6017},"packages/core/mesh/messaging/src/signal-client/index.ts":{"bytesInOutput":0},"packages/core/mesh/messaging/src/signal-manager/memory-signal-manager.ts":{"bytesInOutput":6682},"packages/core/mesh/messaging/src/signal-manager/index.ts":{"bytesInOutput":0},"packages/core/mesh/messaging/src/signal-manager/websocket-signal-manager.ts":{"bytesInOutput":6027}},"bytes":43985}}}
@@ -57,6 +57,7 @@ var ReliablePayload = import_protocols.schema.getCodecForType("dxos.mesh.messagi
57
57
  var Acknowledgement = import_protocols.schema.getCodecForType("dxos.mesh.messaging.Acknowledgement");
58
58
  var ERROR_LIMIT = 5;
59
59
  var NETWORK_REBOOT_DELAY = 3e3;
60
+ var RECEIVED_MESSAGES_GC_INTERVAL = 12e4;
60
61
  var Messenger = class {
61
62
  constructor({ signalManager, retryDelay = 300 }) {
62
63
  // { peerId, payloadType } => listeners set
@@ -64,7 +65,11 @@ var Messenger = class {
64
65
  // peerId => listeners set
65
66
  this._defaultListeners = new import_util.ComplexMap(import_keys.PublicKey.hash);
66
67
  this._onAckCallbacks = new import_util.ComplexMap(import_keys.PublicKey.hash);
67
- this._receivedMessages = new import_util.ComplexSet((key) => key.toHex());
68
+ this._receivedMessages = new import_util.ComplexSet(import_keys.PublicKey.hash);
69
+ /**
70
+ * Keys scheduled to be cleared from _receivedMessages on the next iteration.
71
+ */
72
+ this._toClear = new import_util.ComplexSet(import_keys.PublicKey.hash);
68
73
  this._closed = true;
69
74
  this._errorCount = 0;
70
75
  this._rebooting = false;
@@ -81,14 +86,14 @@ var Messenger = class {
81
86
  id: traceId
82
87
  }), {
83
88
  F: __dxlog_file,
84
- L: 68,
89
+ L: 75,
85
90
  S: this,
86
91
  C: (f, a) => f(...a)
87
92
  });
88
93
  this._ctx = new import_context.Context({
89
94
  onError: (err) => import_log.log.catch(err, void 0, {
90
95
  F: __dxlog_file,
91
- L: 70,
96
+ L: 77,
92
97
  S: this,
93
98
  C: (f, a) => f(...a)
94
99
  })
@@ -98,18 +103,21 @@ var Messenger = class {
98
103
  from: message.author
99
104
  }, {
100
105
  F: __dxlog_file,
101
- L: 74,
106
+ L: 81,
102
107
  S: this,
103
108
  C: (f, a) => f(...a)
104
109
  });
105
110
  await this._handleMessage(message);
106
111
  }));
112
+ (0, import_async.scheduleTaskInterval)(this._ctx, async () => {
113
+ this._performGc();
114
+ }, RECEIVED_MESSAGES_GC_INTERVAL);
107
115
  this._closed = false;
108
116
  import_log.log.trace("dxos.mesh.messenger.open", import_protocols.trace.end({
109
117
  id: traceId
110
118
  }), {
111
119
  F: __dxlog_file,
112
- L: 79,
120
+ L: 96,
113
121
  S: this,
114
122
  C: (f, a) => f(...a)
115
123
  });
@@ -124,7 +132,7 @@ var Messenger = class {
124
132
  async sendMessage({ author, recipient, payload }) {
125
133
  (0, import_invariant.invariant)(!this._closed, "Closed", {
126
134
  F: __dxlog_file,
127
- L: 91,
135
+ L: 108,
128
136
  S: this,
129
137
  A: [
130
138
  "!this._closed",
@@ -138,7 +146,7 @@ var Messenger = class {
138
146
  };
139
147
  (0, import_invariant.invariant)(!this._onAckCallbacks.has(reliablePayload.messageId), void 0, {
140
148
  F: __dxlog_file,
141
- L: 98,
149
+ L: 115,
142
150
  S: this,
143
151
  A: [
144
152
  "!this._onAckCallbacks.has(reliablePayload.messageId!)",
@@ -151,7 +159,7 @@ var Messenger = class {
151
159
  recipient
152
160
  }, {
153
161
  F: __dxlog_file,
154
- L: 99,
162
+ L: 116,
155
163
  S: this,
156
164
  C: (f, a) => f(...a)
157
165
  });
@@ -166,7 +174,7 @@ var Messenger = class {
166
174
  messageId: reliablePayload.messageId
167
175
  }, {
168
176
  F: __dxlog_file,
169
- L: 113,
177
+ L: 130,
170
178
  S: this,
171
179
  C: (f, a) => f(...a)
172
180
  });
@@ -178,7 +186,7 @@ var Messenger = class {
178
186
  err
179
187
  }, {
180
188
  F: __dxlog_file,
181
- L: 115,
189
+ L: 132,
182
190
  S: this,
183
191
  C: (f, a) => f(...a)
184
192
  }));
@@ -188,7 +196,7 @@ var Messenger = class {
188
196
  messageId: reliablePayload.messageId
189
197
  }, {
190
198
  F: __dxlog_file,
191
- L: 124,
199
+ L: 141,
192
200
  S: this,
193
201
  C: (f, a) => f(...a)
194
202
  });
@@ -212,7 +220,7 @@ var Messenger = class {
212
220
  async errorLimitCheck() {
213
221
  (0, import_log.log)(`checking error limit ${this._errorCount}`, void 0, {
214
222
  F: __dxlog_file,
215
- L: 149,
223
+ L: 166,
216
224
  S: this,
217
225
  C: (f, a) => f(...a)
218
226
  });
@@ -227,7 +235,7 @@ var Messenger = class {
227
235
  this._rebooting = true;
228
236
  (0, import_log.log)("rebooting Messenger/SignalManager", void 0, {
229
237
  F: __dxlog_file,
230
- L: 161,
238
+ L: 178,
231
239
  S: this,
232
240
  C: (f, a) => f(...a)
233
241
  });
@@ -235,14 +243,14 @@ var Messenger = class {
235
243
  await this._signalManager.close();
236
244
  (0, import_log.log)("pausing", void 0, {
237
245
  F: __dxlog_file,
238
- L: 164,
246
+ L: 181,
239
247
  S: this,
240
248
  C: (f, a) => f(...a)
241
249
  });
242
250
  await new Promise((resolve) => setTimeout(resolve, NETWORK_REBOOT_DELAY));
243
251
  (0, import_log.log)("done pausing", void 0, {
244
252
  F: __dxlog_file,
245
- L: 166,
253
+ L: 183,
246
254
  S: this,
247
255
  C: (f, a) => f(...a)
248
256
  });
@@ -250,7 +258,7 @@ var Messenger = class {
250
258
  await this._signalManager.open();
251
259
  (0, import_log.log)("done rebooting", void 0, {
252
260
  F: __dxlog_file,
253
- L: 169,
261
+ L: 186,
254
262
  S: this,
255
263
  C: (f, a) => f(...a)
256
264
  });
@@ -264,7 +272,7 @@ var Messenger = class {
264
272
  async listen({ peerId, payloadType, onMessage }) {
265
273
  (0, import_invariant.invariant)(!this._closed, "Closed", {
266
274
  F: __dxlog_file,
267
- L: 188,
275
+ L: 205,
268
276
  S: this,
269
277
  A: [
270
278
  "!this._closed",
@@ -328,7 +336,7 @@ var Messenger = class {
328
336
  async _handleReliablePayload({ author, recipient, payload }) {
329
337
  (0, import_invariant.invariant)(payload.type_url === "dxos.mesh.messaging.ReliablePayload", void 0, {
330
338
  F: __dxlog_file,
331
- L: 249,
339
+ L: 266,
332
340
  S: this,
333
341
  A: [
334
342
  "payload.type_url === 'dxos.mesh.messaging.ReliablePayload'",
@@ -342,7 +350,7 @@ var Messenger = class {
342
350
  messageId: reliablePayload.messageId
343
351
  }, {
344
352
  F: __dxlog_file,
345
- L: 252,
353
+ L: 269,
346
354
  S: this,
347
355
  C: (f, a) => f(...a)
348
356
  });
@@ -364,7 +372,7 @@ var Messenger = class {
364
372
  async _handleAcknowledgement({ payload }) {
365
373
  (0, import_invariant.invariant)(payload.type_url === "dxos.mesh.messaging.Acknowledgement", void 0, {
366
374
  F: __dxlog_file,
367
- L: 274,
375
+ L: 291,
368
376
  S: this,
369
377
  A: [
370
378
  "payload.type_url === 'dxos.mesh.messaging.Acknowledgement'",
@@ -380,7 +388,7 @@ var Messenger = class {
380
388
  to: author
381
389
  }, {
382
390
  F: __dxlog_file,
383
- L: 287,
391
+ L: 304,
384
392
  S: this,
385
393
  C: (f, a) => f(...a)
386
394
  });
@@ -416,6 +424,27 @@ var Messenger = class {
416
424
  }
417
425
  }
418
426
  }
427
+ _performGc() {
428
+ const start = performance.now();
429
+ for (const key of this._toClear.keys()) {
430
+ this._receivedMessages.delete(key);
431
+ }
432
+ this._toClear.clear();
433
+ for (const key of this._receivedMessages.keys()) {
434
+ this._toClear.add(key);
435
+ }
436
+ const elapsed = performance.now() - start;
437
+ if (elapsed > 100) {
438
+ import_log.log.warn("GC took too long", {
439
+ elapsed
440
+ }, {
441
+ F: __dxlog_file,
442
+ L: 352,
443
+ S: this,
444
+ C: (f, a) => f(...a)
445
+ });
446
+ }
447
+ }
419
448
  };
420
449
 
421
450
  // packages/core/mesh/messaging/src/signal-client/signal-client.ts