@dxos/messaging 0.6.9 → 0.6.10-main.48c066e
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.
- package/dist/lib/browser/index.mjs +71 -48
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +84 -61
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/types/src/messenger.d.ts.map +1 -1
- package/dist/types/src/signal-client/signal-rpc-client.d.ts.map +1 -1
- package/dist/types/src/signal-manager/edge-signal-manager.d.ts +1 -0
- package/dist/types/src/signal-manager/edge-signal-manager.d.ts.map +1 -1
- package/dist/types/src/testing/test-messages.d.ts +1 -1
- package/dist/types/src/testing/test-messages.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/messenger.test.ts +1 -1
- package/src/messenger.ts +2 -1
- package/src/signal-client/signal-client.test.ts +1 -1
- package/src/signal-client/signal-rpc-client.test.ts +1 -1
- package/src/signal-client/signal-rpc-client.ts +2 -1
- package/src/signal-manager/edge-signal-manager.test.ts +1 -1
- package/src/signal-manager/edge-signal-manager.ts +17 -6
- package/src/signal-manager/memory-signal-manager.ts +1 -1
- package/src/testing/test-messages.ts +1 -1
- package/src/testing/utils.ts +2 -2
|
@@ -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,
|
|
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
|
+
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 {
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
2037
|
-
identityKey: this._edgeConnection.identityKey
|
|
2040
|
+
peerKey: this._edgeConnection.peerKey,
|
|
2041
|
+
identityKey: this._edgeConnection.identityKey
|
|
2038
2042
|
}
|
|
2039
2043
|
}, {
|
|
2040
2044
|
F: __dxlog_file7,
|
|
2041
|
-
L:
|
|
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.
|
|
2078
|
+
peerKey: this._edgeConnection.peerKey,
|
|
2075
2079
|
identityKey: this._edgeConnection.identityKey
|
|
2076
2080
|
}
|
|
2077
2081
|
}, {
|
|
2078
2082
|
F: __dxlog_file7,
|
|
2079
|
-
L:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
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
|
|