@dxos/messaging 0.6.9 → 0.6.10-main.3cfcc89

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.
@@ -13,7 +13,8 @@ import { Context } from "@dxos/context";
13
13
  import { invariant } from "@dxos/invariant";
14
14
  import { PublicKey } from "@dxos/keys";
15
15
  import { log } from "@dxos/log";
16
- import { TimeoutError as ProtocolTimeoutError, schema, trace as trace2 } from "@dxos/protocols";
16
+ import { TimeoutError as ProtocolTimeoutError, trace as trace2 } from "@dxos/protocols";
17
+ import { schema } from "@dxos/protocols/proto";
17
18
  import { ComplexMap, ComplexSet } from "@dxos/util";
18
19
 
19
20
  // packages/core/mesh/messaging/src/messenger-monitor.ts
@@ -67,27 +68,27 @@ var Messenger = class {
67
68
  id: traceId
68
69
  }), {
69
70
  F: __dxlog_file,
70
- L: 71,
71
+ L: 72,
71
72
  S: this,
72
73
  C: (f, a) => f(...a)
73
74
  });
74
75
  this._ctx = new Context({
75
76
  onError: (err) => log.catch(err, void 0, {
76
77
  F: __dxlog_file,
77
- L: 73,
78
+ L: 74,
78
79
  S: this,
79
80
  C: (f, a) => f(...a)
80
81
  })
81
82
  }, {
82
83
  F: __dxlog_file,
83
- L: 72
84
+ L: 73
84
85
  });
85
86
  this._ctx.onDispose(this._signalManager.onMessage.on(async (message) => {
86
87
  log("received message", {
87
88
  from: message.author
88
89
  }, {
89
90
  F: __dxlog_file,
90
- L: 77,
91
+ L: 78,
91
92
  S: this,
92
93
  C: (f, a) => f(...a)
93
94
  });
@@ -101,7 +102,7 @@ var Messenger = class {
101
102
  id: traceId
102
103
  }), {
103
104
  F: __dxlog_file,
104
- L: 92,
105
+ L: 93,
105
106
  S: this,
106
107
  C: (f, a) => f(...a)
107
108
  });
@@ -116,7 +117,7 @@ var Messenger = class {
116
117
  async sendMessage({ author, recipient, payload }) {
117
118
  invariant(!this._closed, "Closed", {
118
119
  F: __dxlog_file,
119
- L: 104,
120
+ L: 105,
120
121
  S: this,
121
122
  A: [
122
123
  "!this._closed",
@@ -130,7 +131,7 @@ var Messenger = class {
130
131
  };
131
132
  invariant(!this._onAckCallbacks.has(reliablePayload.messageId), void 0, {
132
133
  F: __dxlog_file,
133
- L: 111,
134
+ L: 112,
134
135
  S: this,
135
136
  A: [
136
137
  "!this._onAckCallbacks.has(reliablePayload.messageId!)",
@@ -143,7 +144,7 @@ var Messenger = class {
143
144
  recipient
144
145
  }, {
145
146
  F: __dxlog_file,
146
- L: 112,
147
+ L: 113,
147
148
  S: this,
148
149
  C: (f, a) => f(...a)
149
150
  });
@@ -159,7 +160,7 @@ var Messenger = class {
159
160
  messageId: reliablePayload.messageId
160
161
  }, {
161
162
  F: __dxlog_file,
162
- L: 127,
163
+ L: 128,
163
164
  S: this,
164
165
  C: (f, a) => f(...a)
165
166
  });
@@ -172,7 +173,7 @@ var Messenger = class {
172
173
  err
173
174
  }, {
174
175
  F: __dxlog_file,
175
- L: 130,
176
+ L: 131,
176
177
  S: this,
177
178
  C: (f, a) => f(...a)
178
179
  }));
@@ -182,7 +183,7 @@ var Messenger = class {
182
183
  messageId: reliablePayload.messageId
183
184
  }, {
184
185
  F: __dxlog_file,
185
- L: 139,
186
+ L: 140,
186
187
  S: this,
187
188
  C: (f, a) => f(...a)
188
189
  });
@@ -217,7 +218,7 @@ var Messenger = class {
217
218
  async listen({ peer, payloadType, onMessage }) {
218
219
  invariant(!this._closed, "Closed", {
219
220
  F: __dxlog_file,
220
- L: 177,
221
+ L: 178,
221
222
  S: this,
222
223
  A: [
223
224
  "!this._closed",
@@ -228,7 +229,7 @@ var Messenger = class {
228
229
  let listeners;
229
230
  invariant(peer.peerKey, "Peer key is required", {
230
231
  F: __dxlog_file,
231
- L: 181,
232
+ L: 182,
232
233
  S: this,
233
234
  A: [
234
235
  "peer.peerKey",
@@ -290,7 +291,7 @@ var Messenger = class {
290
291
  async _handleReliablePayload({ author, recipient, payload }) {
291
292
  invariant(payload.type_url === "dxos.mesh.messaging.ReliablePayload", void 0, {
292
293
  F: __dxlog_file,
293
- L: 239,
294
+ L: 240,
294
295
  S: this,
295
296
  A: [
296
297
  "payload.type_url === 'dxos.mesh.messaging.ReliablePayload'",
@@ -304,7 +305,7 @@ var Messenger = class {
304
305
  messageId: reliablePayload.messageId
305
306
  }, {
306
307
  F: __dxlog_file,
307
- L: 242,
308
+ L: 243,
308
309
  S: this,
309
310
  C: (f, a) => f(...a)
310
311
  });
@@ -331,7 +332,7 @@ var Messenger = class {
331
332
  async _handleAcknowledgement({ payload }) {
332
333
  invariant(payload.type_url === "dxos.mesh.messaging.Acknowledgement", void 0, {
333
334
  F: __dxlog_file,
334
- L: 270,
335
+ L: 271,
335
336
  S: this,
336
337
  A: [
337
338
  "payload.type_url === 'dxos.mesh.messaging.Acknowledgement'",
@@ -347,7 +348,7 @@ var Messenger = class {
347
348
  to: author
348
349
  }, {
349
350
  F: __dxlog_file,
350
- L: 283,
351
+ L: 284,
351
352
  S: this,
352
353
  C: (f, a) => f(...a)
353
354
  });
@@ -366,7 +367,7 @@ var Messenger = class {
366
367
  {
367
368
  invariant(message.recipient.peerKey, "Peer key is required", {
368
369
  F: __dxlog_file,
369
- L: 297,
370
+ L: 298,
370
371
  S: this,
371
372
  A: [
372
373
  "message.recipient.peerKey",
@@ -407,7 +408,7 @@ var Messenger = class {
407
408
  elapsed
408
409
  }, {
409
410
  F: __dxlog_file,
410
- L: 332,
411
+ L: 333,
411
412
  S: this,
412
413
  C: (f, a) => f(...a)
413
414
  });
@@ -708,7 +709,8 @@ import { Context as Context2 } from "@dxos/context";
708
709
  import { invariant as invariant2 } from "@dxos/invariant";
709
710
  import { PublicKey as PublicKey3 } from "@dxos/keys";
710
711
  import { log as log3 } from "@dxos/log";
711
- import { schema as schema2, trace as trace5 } from "@dxos/protocols";
712
+ import { trace as trace5 } from "@dxos/protocols";
713
+ import { schema as schema2 } from "@dxos/protocols/proto";
712
714
  import { createProtoRpcPeer } from "@dxos/rpc";
713
715
 
714
716
  // packages/core/mesh/messaging/src/signal-client/signal-rpc-client-monitor.ts
@@ -737,7 +739,7 @@ var SignalRPCClient = class {
737
739
  id: traceId
738
740
  }), {
739
741
  F: __dxlog_file3,
740
- L: 60,
742
+ L: 61,
741
743
  S: this,
742
744
  C: (f, a) => f(...a)
743
745
  });
@@ -759,7 +761,7 @@ var SignalRPCClient = class {
759
761
  } catch (err) {
760
762
  log3.warn("send error", err, {
761
763
  F: __dxlog_file3,
762
- L: 79,
764
+ L: 80,
763
765
  S: this,
764
766
  C: (f, a) => f(...a)
765
767
  });
@@ -788,7 +790,7 @@ var SignalRPCClient = class {
788
790
  }
789
791
  log3(`RPC open ${this._url}`, void 0, {
790
792
  F: __dxlog_file3,
791
- L: 104,
793
+ L: 105,
792
794
  S: this,
793
795
  C: (f, a) => f(...a)
794
796
  });
@@ -796,7 +798,7 @@ var SignalRPCClient = class {
796
798
  this._connectTrigger.wake();
797
799
  this._keepaliveCtx = new Context2(void 0, {
798
800
  F: __dxlog_file3,
799
- L: 107
801
+ L: 108
800
802
  });
801
803
  scheduleTaskInterval2(this._keepaliveCtx, async () => {
802
804
  this._socket?.send("__ping__");
@@ -810,7 +812,7 @@ var SignalRPCClient = class {
810
812
  this._socket.onclose = async () => {
811
813
  log3(`Disconnected ${this._url}`, void 0, {
812
814
  F: __dxlog_file3,
813
- L: 127,
815
+ L: 128,
814
816
  S: this,
815
817
  C: (f, a) => f(...a)
816
818
  });
@@ -831,7 +833,7 @@ var SignalRPCClient = class {
831
833
  url: this._url
832
834
  }, {
833
835
  F: __dxlog_file3,
834
- L: 143,
836
+ L: 144,
835
837
  S: this,
836
838
  C: (f, a) => f(...a)
837
839
  });
@@ -840,7 +842,7 @@ var SignalRPCClient = class {
840
842
  id: traceId
841
843
  }), {
842
844
  F: __dxlog_file3,
843
- L: 146,
845
+ L: 147,
844
846
  S: this,
845
847
  C: (f, a) => f(...a)
846
848
  });
@@ -873,13 +875,13 @@ var SignalRPCClient = class {
873
875
  metadata: this._callbacks?.getMetadata?.()
874
876
  }, {
875
877
  F: __dxlog_file3,
876
- L: 172,
878
+ L: 173,
877
879
  S: this,
878
880
  C: (f, a) => f(...a)
879
881
  });
880
882
  invariant2(!this._closed, "SignalRPCClient is closed", {
881
883
  F: __dxlog_file3,
882
- L: 173,
884
+ L: 174,
883
885
  S: this,
884
886
  A: [
885
887
  "!this._closed",
@@ -900,13 +902,13 @@ var SignalRPCClient = class {
900
902
  peerId
901
903
  }, {
902
904
  F: __dxlog_file3,
903
- L: 185,
905
+ L: 186,
904
906
  S: this,
905
907
  C: (f, a) => f(...a)
906
908
  });
907
909
  invariant2(!this._closed, "SignalRPCClient is closed", {
908
910
  F: __dxlog_file3,
909
- L: 186,
911
+ L: 187,
910
912
  S: this,
911
913
  A: [
912
914
  "!this._closed",
@@ -928,13 +930,13 @@ var SignalRPCClient = class {
928
930
  metadata: this._callbacks?.getMetadata?.()
929
931
  }, {
930
932
  F: __dxlog_file3,
931
- L: 196,
933
+ L: 197,
932
934
  S: this,
933
935
  C: (f, a) => f(...a)
934
936
  });
935
937
  invariant2(!this._closed, "SignalRPCClient is closed", {
936
938
  F: __dxlog_file3,
937
- L: 197,
939
+ L: 198,
938
940
  S: this,
939
941
  A: [
940
942
  "!this._closed",
@@ -956,7 +958,7 @@ var SignalRPCClient = class {
956
958
  } catch (err) {
957
959
  log3.catch(err, void 0, {
958
960
  F: __dxlog_file3,
959
- L: 212,
961
+ L: 213,
960
962
  S: this,
961
963
  C: (f, a) => f(...a)
962
964
  });
@@ -1400,7 +1402,7 @@ import { Context as Context3 } from "@dxos/context";
1400
1402
  import { invariant as invariant4 } from "@dxos/invariant";
1401
1403
  import { PublicKey as PublicKey5 } from "@dxos/keys";
1402
1404
  import { log as log5 } from "@dxos/log";
1403
- import { schema as schema3 } from "@dxos/protocols";
1405
+ import { schema as schema3 } from "@dxos/protocols/proto";
1404
1406
  import { ComplexMap as ComplexMap3, ComplexSet as ComplexSet3 } from "@dxos/util";
1405
1407
 
1406
1408
  // packages/core/mesh/messaging/src/signal-methods.ts
@@ -2024,6 +2026,8 @@ var EdgeSignalManager = class extends Resource3 {
2024
2026
  }
2025
2027
  async _open() {
2026
2028
  this._ctx.onDispose(this._edgeConnection.addListener((message) => this._onMessage(message)));
2029
+ this._edgeConnection.reconnect.on(this._ctx, () => this._rejoinAllSwarms());
2030
+ await this._rejoinAllSwarms();
2027
2031
  }
2028
2032
  /**
2029
2033
  * Warning: PeerInfo is inferred from edgeConnection.
@@ -2033,12 +2037,12 @@ var EdgeSignalManager = class extends Resource3 {
2033
2037
  log7.warn("ignoring peer info on join request", {
2034
2038
  peer,
2035
2039
  expected: {
2036
- peerKey: this._edgeConnection.deviceKey.toHex(),
2037
- identityKey: this._edgeConnection.identityKey.toHex()
2040
+ peerKey: this._edgeConnection.peerKey,
2041
+ identityKey: this._edgeConnection.identityKey
2038
2042
  }
2039
2043
  }, {
2040
2044
  F: __dxlog_file7,
2041
- L: 51,
2045
+ L: 53,
2042
2046
  S: this,
2043
2047
  C: (f, a) => f(...a)
2044
2048
  });
@@ -2071,12 +2075,12 @@ var EdgeSignalManager = class extends Resource3 {
2071
2075
  log7.warn("ignoring author on send request", {
2072
2076
  author: message.author,
2073
2077
  expected: {
2074
- peerKey: this._edgeConnection.deviceKey,
2078
+ peerKey: this._edgeConnection.peerKey,
2075
2079
  identityKey: this._edgeConnection.identityKey
2076
2080
  }
2077
2081
  }, {
2078
2082
  F: __dxlog_file7,
2079
- L: 82,
2083
+ L: 84,
2080
2084
  S: this,
2081
2085
  C: (f, a) => f(...a)
2082
2086
  });
@@ -2111,7 +2115,7 @@ var EdgeSignalManager = class extends Resource3 {
2111
2115
  _processSwarmResponse(message) {
2112
2116
  invariant6(protocol.getPayloadType(message) === SwarmResponseSchema.typeName, "Wrong payload type", {
2113
2117
  F: __dxlog_file7,
2114
- L: 119,
2118
+ L: 121,
2115
2119
  S: this,
2116
2120
  A: [
2117
2121
  "protocol.getPayloadType(message) === SwarmResponseSchema.typeName",
@@ -2125,7 +2129,7 @@ var EdgeSignalManager = class extends Resource3 {
2125
2129
  topic
2126
2130
  }, {
2127
2131
  F: __dxlog_file7,
2128
- L: 123,
2132
+ L: 125,
2129
2133
  S: this,
2130
2134
  C: (f, a) => f(...a)
2131
2135
  });
@@ -2162,7 +2166,7 @@ var EdgeSignalManager = class extends Resource3 {
2162
2166
  _processMessage(message) {
2163
2167
  invariant6(protocol.getPayloadType(message) === AnySchema.typeName, "Wrong payload type", {
2164
2168
  F: __dxlog_file7,
2165
- L: 156,
2169
+ L: 158,
2166
2170
  S: this,
2167
2171
  A: [
2168
2172
  "protocol.getPayloadType(message) === AnySchema.typeName",
@@ -2172,7 +2176,7 @@ var EdgeSignalManager = class extends Resource3 {
2172
2176
  const payload = protocol.getPayload(message, AnySchema);
2173
2177
  invariant6(message.source, "source is missing", {
2174
2178
  F: __dxlog_file7,
2175
- L: 158,
2179
+ L: 160,
2176
2180
  S: this,
2177
2181
  A: [
2178
2182
  "message.source",
@@ -2181,7 +2185,7 @@ var EdgeSignalManager = class extends Resource3 {
2181
2185
  });
2182
2186
  invariant6(message.target, "target is missing", {
2183
2187
  F: __dxlog_file7,
2184
- L: 159,
2188
+ L: 161,
2185
2189
  S: this,
2186
2190
  A: [
2187
2191
  "message.target",
@@ -2190,7 +2194,7 @@ var EdgeSignalManager = class extends Resource3 {
2190
2194
  });
2191
2195
  invariant6(message.target.length === 1, "target should have exactly one item", {
2192
2196
  F: __dxlog_file7,
2193
- L: 160,
2197
+ L: 162,
2194
2198
  S: this,
2195
2199
  A: [
2196
2200
  "message.target.length === 1",
@@ -2207,7 +2211,26 @@ var EdgeSignalManager = class extends Resource3 {
2207
2211
  });
2208
2212
  }
2209
2213
  _matchSelfPeerInfo(peer) {
2210
- return peer && (peer.peerKey === this._edgeConnection.deviceKey.toHex() || peer.identityKey === this._edgeConnection.identityKey.toHex());
2214
+ return peer && (peer.peerKey === this._edgeConnection.peerKey || peer.identityKey === this._edgeConnection.identityKey);
2215
+ }
2216
+ async _rejoinAllSwarms() {
2217
+ log7("rejoin swarms", {
2218
+ swarms: Array.from(this._swarmPeers.keys())
2219
+ }, {
2220
+ F: __dxlog_file7,
2221
+ L: 181,
2222
+ S: this,
2223
+ C: (f, a) => f(...a)
2224
+ });
2225
+ for (const topic of this._swarmPeers.keys()) {
2226
+ await this.join({
2227
+ topic,
2228
+ peer: {
2229
+ peerKey: this._edgeConnection.peerKey,
2230
+ identityKey: this._edgeConnection.identityKey
2231
+ }
2232
+ });
2233
+ }
2211
2234
  }
2212
2235
  };
2213
2236