@dxos/messaging 0.8.3 → 0.8.4-main.28f8d3d
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/{chunk-ISA3S2ZX.mjs → chunk-TPBTNKLU.mjs} +228 -154
- package/dist/lib/browser/chunk-TPBTNKLU.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +17 -9
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/{chunk-SO4RY3ON.mjs → chunk-SHJNQUOF.mjs} +228 -154
- package/dist/lib/node-esm/chunk-SHJNQUOF.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +1 -1
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +17 -9
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/types/src/messenger.blueprint-test.d.ts.map +1 -1
- package/dist/types/src/messenger.d.ts +1 -1
- package/dist/types/src/messenger.d.ts.map +1 -1
- package/dist/types/src/signal-client/signal-client.d.ts +2 -2
- package/dist/types/src/signal-client/signal-client.d.ts.map +1 -1
- package/dist/types/src/signal-client/signal-local-state.d.ts +1 -1
- package/dist/types/src/signal-client/signal-local-state.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 -1
- package/dist/types/src/signal-manager/edge-signal-manager.d.ts.map +1 -1
- package/dist/types/src/signal-manager/index.d.ts +1 -1
- package/dist/types/src/signal-manager/index.d.ts.map +1 -1
- package/dist/types/src/signal-manager/memory-signal-manager.d.ts +1 -1
- package/dist/types/src/signal-manager/memory-signal-manager.d.ts.map +1 -1
- package/dist/types/src/signal-manager/signal-manager.d.ts +1 -1
- package/dist/types/src/signal-manager/signal-manager.d.ts.map +1 -1
- package/dist/types/src/signal-manager/websocket-signal-manager.d.ts +1 -1
- package/dist/types/src/signal-manager/websocket-signal-manager.d.ts.map +1 -1
- package/dist/types/src/signal-methods.d.ts +2 -2
- package/dist/types/src/signal-methods.d.ts.map +1 -1
- package/dist/types/src/testing/test-builder.d.ts +1 -1
- package/dist/types/src/testing/test-builder.d.ts.map +1 -1
- package/dist/types/src/testing/test-peer.d.ts +1 -1
- package/dist/types/src/testing/test-peer.d.ts.map +1 -1
- package/dist/types/src/testing/utils.d.ts +1 -1
- package/dist/types/src/testing/utils.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -16
- package/src/messenger.blueprint-test.ts +2 -2
- package/src/messenger.node.test.ts +2 -2
- package/src/messenger.ts +1 -1
- package/src/signal-client/signal-client.node.test.ts +4 -3
- package/src/signal-client/signal-client.ts +7 -6
- package/src/signal-client/signal-local-state.ts +4 -3
- package/src/signal-client/signal-rpc-client.node.test.ts +1 -1
- package/src/signal-client/signal-rpc-client.ts +4 -4
- package/src/signal-manager/edge-signal-manager.ts +6 -5
- package/src/signal-manager/index.ts +1 -1
- package/src/signal-manager/memory-signal-manager.ts +2 -1
- package/src/signal-manager/signal-manager.ts +1 -1
- package/src/signal-manager/websocket-signal-manager.node.test.ts +3 -2
- package/src/signal-manager/websocket-signal-manager.ts +4 -3
- package/src/signal-methods.ts +3 -3
- package/src/testing/test-builder.ts +3 -2
- package/src/testing/test-peer.ts +3 -2
- package/src/testing/utils.ts +3 -2
- package/dist/lib/browser/chunk-ISA3S2ZX.mjs.map +0 -7
- package/dist/lib/node/chunk-GMND65DN.cjs +0 -2291
- package/dist/lib/node/chunk-GMND65DN.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -43
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/testing/index.cjs +0 -159
- package/dist/lib/node/testing/index.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-SO4RY3ON.mjs.map +0 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "@dxos/node-std/globals";
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// src/messenger.ts
|
|
4
4
|
import { TimeoutError, scheduleExponentialBackoffTaskInterval, scheduleTask, scheduleTaskInterval } from "@dxos/async";
|
|
5
5
|
import { Context } from "@dxos/context";
|
|
6
6
|
import { invariant } from "@dxos/invariant";
|
|
@@ -10,7 +10,7 @@ import { TimeoutError as ProtocolTimeoutError, trace as trace2 } from "@dxos/pro
|
|
|
10
10
|
import { schema } from "@dxos/protocols/proto";
|
|
11
11
|
import { ComplexMap, ComplexSet } from "@dxos/util";
|
|
12
12
|
|
|
13
|
-
//
|
|
13
|
+
// src/messenger-monitor.ts
|
|
14
14
|
import { trace } from "@dxos/tracing";
|
|
15
15
|
var MessengerMonitor = class {
|
|
16
16
|
recordMessageAckFailed() {
|
|
@@ -26,28 +26,31 @@ var MessengerMonitor = class {
|
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
//
|
|
29
|
+
// src/timeouts.ts
|
|
30
30
|
var MESSAGE_TIMEOUT = 1e4;
|
|
31
31
|
|
|
32
|
-
//
|
|
33
|
-
var __dxlog_file = "/
|
|
32
|
+
// src/messenger.ts
|
|
33
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/mesh/messaging/src/messenger.ts";
|
|
34
34
|
var ReliablePayload = schema.getCodecForType("dxos.mesh.messaging.ReliablePayload");
|
|
35
35
|
var Acknowledgement = schema.getCodecForType("dxos.mesh.messaging.Acknowledgement");
|
|
36
36
|
var RECEIVED_MESSAGES_GC_INTERVAL = 12e4;
|
|
37
37
|
var Messenger = class {
|
|
38
|
+
_monitor = new MessengerMonitor();
|
|
39
|
+
_signalManager;
|
|
40
|
+
// { peerId, payloadType } => listeners set
|
|
41
|
+
_listeners = new ComplexMap(({ peerId, payloadType }) => peerId + payloadType);
|
|
42
|
+
// peerId => listeners set
|
|
43
|
+
_defaultListeners = /* @__PURE__ */ new Map();
|
|
44
|
+
_onAckCallbacks = new ComplexMap(PublicKey.hash);
|
|
45
|
+
_receivedMessages = new ComplexSet(PublicKey.hash);
|
|
46
|
+
/**
|
|
47
|
+
* Keys scheduled to be cleared from _receivedMessages on the next iteration.
|
|
48
|
+
*/
|
|
49
|
+
_toClear = new ComplexSet(PublicKey.hash);
|
|
50
|
+
_ctx;
|
|
51
|
+
_closed = true;
|
|
52
|
+
_retryDelay;
|
|
38
53
|
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
54
|
this._signalManager = signalManager;
|
|
52
55
|
this._retryDelay = retryDelay;
|
|
53
56
|
this.open();
|
|
@@ -409,35 +412,33 @@ var Messenger = class {
|
|
|
409
412
|
}
|
|
410
413
|
};
|
|
411
414
|
|
|
412
|
-
//
|
|
415
|
+
// src/signal-client/signal-client.ts
|
|
413
416
|
import { DeferredTask, Event as Event2, Trigger as Trigger2, scheduleTask as scheduleTask2, scheduleTaskInterval as scheduleTaskInterval3, sleep } from "@dxos/async";
|
|
414
|
-
import { cancelWithContext as cancelWithContext2
|
|
417
|
+
import { Resource, cancelWithContext as cancelWithContext2 } from "@dxos/context";
|
|
415
418
|
import { invariant as invariant3 } from "@dxos/invariant";
|
|
416
419
|
import { PublicKey as PublicKey4 } from "@dxos/keys";
|
|
417
420
|
import { log as log4 } from "@dxos/log";
|
|
418
421
|
import { trace as trace6 } from "@dxos/protocols";
|
|
419
422
|
import { SignalState } from "@dxos/protocols/proto/dxos/mesh/signal";
|
|
420
423
|
|
|
421
|
-
//
|
|
424
|
+
// src/signal-client/signal-client-monitor.ts
|
|
422
425
|
import { trace as trace3 } from "@dxos/tracing";
|
|
423
426
|
var SignalClientMonitor = class {
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
this._lastStateChange = /* @__PURE__ */ new Date();
|
|
440
|
-
}
|
|
427
|
+
_performance = {
|
|
428
|
+
sentMessages: 0,
|
|
429
|
+
receivedMessages: 0,
|
|
430
|
+
reconnectCounter: 0,
|
|
431
|
+
joinCounter: 0,
|
|
432
|
+
leaveCounter: 0
|
|
433
|
+
};
|
|
434
|
+
/**
|
|
435
|
+
* Timestamp of when the connection attempt was began.
|
|
436
|
+
*/
|
|
437
|
+
_connectionStarted = /* @__PURE__ */ new Date();
|
|
438
|
+
/**
|
|
439
|
+
* Timestamp of last state change.
|
|
440
|
+
*/
|
|
441
|
+
_lastStateChange = /* @__PURE__ */ new Date();
|
|
441
442
|
getRecordedTimestamps() {
|
|
442
443
|
return {
|
|
443
444
|
connectionStarted: this._connectionStarted,
|
|
@@ -517,14 +518,38 @@ var createIdentityTags = (message) => {
|
|
|
517
518
|
};
|
|
518
519
|
};
|
|
519
520
|
|
|
520
|
-
//
|
|
521
|
-
import {
|
|
521
|
+
// src/signal-client/signal-local-state.ts
|
|
522
|
+
import { Event, asyncTimeout } from "@dxos/async";
|
|
522
523
|
import { cancelWithContext } from "@dxos/context";
|
|
523
524
|
import { PublicKey as PublicKey2 } from "@dxos/keys";
|
|
524
525
|
import { log as log2 } from "@dxos/log";
|
|
525
526
|
import { ComplexMap as ComplexMap2, ComplexSet as ComplexSet2, safeAwaitAll } from "@dxos/util";
|
|
526
|
-
var __dxlog_file2 = "/
|
|
527
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-local-state.ts";
|
|
527
528
|
var SignalLocalState = class {
|
|
529
|
+
_onMessage;
|
|
530
|
+
_onSwarmEvent;
|
|
531
|
+
/**
|
|
532
|
+
* Swarm events streams. Keys represent actually joined topic and peerId.
|
|
533
|
+
*/
|
|
534
|
+
_swarmStreams;
|
|
535
|
+
/**
|
|
536
|
+
* Represent desired joined topic and peerId.
|
|
537
|
+
*/
|
|
538
|
+
_joinedTopics;
|
|
539
|
+
/**
|
|
540
|
+
* Represent desired message subscriptions.
|
|
541
|
+
*/
|
|
542
|
+
_subscribedMessages;
|
|
543
|
+
/**
|
|
544
|
+
* Message streams. Keys represents actually subscribed peers.
|
|
545
|
+
* @internal
|
|
546
|
+
*/
|
|
547
|
+
messageStreams;
|
|
548
|
+
/**
|
|
549
|
+
* Event to use in tests to wait till subscription is successfully established.
|
|
550
|
+
* @internal
|
|
551
|
+
*/
|
|
552
|
+
reconciled;
|
|
528
553
|
constructor(_onMessage, _onSwarmEvent) {
|
|
529
554
|
this._onMessage = _onMessage;
|
|
530
555
|
this._onSwarmEvent = _onSwarmEvent;
|
|
@@ -577,7 +602,7 @@ var SignalLocalState = class {
|
|
|
577
602
|
peerId
|
|
578
603
|
}, {
|
|
579
604
|
F: __dxlog_file2,
|
|
580
|
-
L:
|
|
605
|
+
L: 80,
|
|
581
606
|
S: this,
|
|
582
607
|
C: (f, a) => f(...a)
|
|
583
608
|
});
|
|
@@ -629,7 +654,7 @@ var SignalLocalState = class {
|
|
|
629
654
|
swarmEvent
|
|
630
655
|
}, {
|
|
631
656
|
F: __dxlog_file2,
|
|
632
|
-
L:
|
|
657
|
+
L: 116,
|
|
633
658
|
S: this,
|
|
634
659
|
C: (f, a) => f(...a)
|
|
635
660
|
});
|
|
@@ -695,9 +720,9 @@ var SignalLocalState = class {
|
|
|
695
720
|
}
|
|
696
721
|
};
|
|
697
722
|
|
|
698
|
-
//
|
|
723
|
+
// src/signal-client/signal-rpc-client.ts
|
|
699
724
|
import WebSocket from "isomorphic-ws";
|
|
700
|
-
import {
|
|
725
|
+
import { TimeoutError as TimeoutError2, Trigger, scheduleTaskInterval as scheduleTaskInterval2 } from "@dxos/async";
|
|
701
726
|
import { Context as Context2 } from "@dxos/context";
|
|
702
727
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
703
728
|
import { PublicKey as PublicKey3 } from "@dxos/keys";
|
|
@@ -706,7 +731,7 @@ import { trace as trace5 } from "@dxos/protocols";
|
|
|
706
731
|
import { schema as schema2 } from "@dxos/protocols/proto";
|
|
707
732
|
import { createProtoRpcPeer } from "@dxos/rpc";
|
|
708
733
|
|
|
709
|
-
//
|
|
734
|
+
// src/signal-client/signal-rpc-client-monitor.ts
|
|
710
735
|
import { trace as trace4 } from "@dxos/tracing";
|
|
711
736
|
var SignalRpcClientMonitor = class {
|
|
712
737
|
recordClientCloseFailure(params) {
|
|
@@ -718,15 +743,20 @@ var SignalRpcClientMonitor = class {
|
|
|
718
743
|
}
|
|
719
744
|
};
|
|
720
745
|
|
|
721
|
-
//
|
|
722
|
-
var __dxlog_file3 = "/
|
|
746
|
+
// src/signal-client/signal-rpc-client.ts
|
|
747
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-rpc-client.ts";
|
|
723
748
|
var SIGNAL_KEEPALIVE_INTERVAL = 1e4;
|
|
724
749
|
var SignalRPCClient = class {
|
|
750
|
+
_socket;
|
|
751
|
+
_rpc;
|
|
752
|
+
_connectTrigger = new Trigger();
|
|
753
|
+
_keepaliveCtx;
|
|
754
|
+
_closed = false;
|
|
755
|
+
_url;
|
|
756
|
+
_callbacks;
|
|
757
|
+
_closeComplete = new Trigger();
|
|
758
|
+
_monitor = new SignalRpcClientMonitor();
|
|
725
759
|
constructor({ url, callbacks = {} }) {
|
|
726
|
-
this._connectTrigger = new Trigger();
|
|
727
|
-
this._closed = false;
|
|
728
|
-
this._closeComplete = new Trigger();
|
|
729
|
-
this._monitor = new SignalRpcClientMonitor();
|
|
730
760
|
const traceId = PublicKey3.random().toHex();
|
|
731
761
|
log3.trace("dxos.mesh.signal-rpc-client.constructor", trace5.begin({
|
|
732
762
|
id: traceId
|
|
@@ -959,13 +989,36 @@ var SignalRPCClient = class {
|
|
|
959
989
|
}
|
|
960
990
|
};
|
|
961
991
|
|
|
962
|
-
//
|
|
963
|
-
var __dxlog_file4 = "/
|
|
992
|
+
// src/signal-client/signal-client.ts
|
|
993
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-client.ts";
|
|
964
994
|
var DEFAULT_RECONNECT_TIMEOUT = 100;
|
|
965
995
|
var MAX_RECONNECT_TIMEOUT = 5e3;
|
|
966
996
|
var ERROR_RECONCILE_DELAY = 1e3;
|
|
967
997
|
var RECONCILE_INTERVAL = 5e3;
|
|
968
998
|
var SignalClient = class extends Resource {
|
|
999
|
+
_host;
|
|
1000
|
+
_getMetadata;
|
|
1001
|
+
_monitor;
|
|
1002
|
+
_state;
|
|
1003
|
+
_lastError;
|
|
1004
|
+
_lastReconciliationFailed;
|
|
1005
|
+
_clientReady;
|
|
1006
|
+
_connectionCtx;
|
|
1007
|
+
_client;
|
|
1008
|
+
_reconcileTask;
|
|
1009
|
+
_reconnectTask;
|
|
1010
|
+
/**
|
|
1011
|
+
* Number of milliseconds after which the connection will be attempted again in case of error.
|
|
1012
|
+
*/
|
|
1013
|
+
_reconnectAfter;
|
|
1014
|
+
_instanceId;
|
|
1015
|
+
/**
|
|
1016
|
+
* @internal
|
|
1017
|
+
*/
|
|
1018
|
+
localState;
|
|
1019
|
+
statusChanged;
|
|
1020
|
+
onMessage;
|
|
1021
|
+
swarmEvent;
|
|
969
1022
|
/**
|
|
970
1023
|
* @param _host Signal server websocket URL.
|
|
971
1024
|
* @param onMessage called when a new message is received.
|
|
@@ -987,7 +1040,7 @@ var SignalClient = class extends Resource {
|
|
|
987
1040
|
id: this._instanceId
|
|
988
1041
|
}), {
|
|
989
1042
|
F: __dxlog_file4,
|
|
990
|
-
L:
|
|
1043
|
+
L: 97,
|
|
991
1044
|
S: this,
|
|
992
1045
|
C: (f, a) => f(...a)
|
|
993
1046
|
});
|
|
@@ -1005,7 +1058,7 @@ var SignalClient = class extends Resource {
|
|
|
1005
1058
|
}));
|
|
1006
1059
|
invariant3(this._state === SignalState.CONNECTED, "Not connected to Signal Server", {
|
|
1007
1060
|
F: __dxlog_file4,
|
|
1008
|
-
L:
|
|
1061
|
+
L: 107,
|
|
1009
1062
|
S: this,
|
|
1010
1063
|
A: [
|
|
1011
1064
|
"this._state === SignalState.CONNECTED",
|
|
@@ -1048,7 +1101,7 @@ var SignalClient = class extends Resource {
|
|
|
1048
1101
|
id: this._instanceId
|
|
1049
1102
|
}), {
|
|
1050
1103
|
F: __dxlog_file4,
|
|
1051
|
-
L:
|
|
1104
|
+
L: 140,
|
|
1052
1105
|
S: this,
|
|
1053
1106
|
C: (f, a) => f(...a)
|
|
1054
1107
|
});
|
|
@@ -1060,7 +1113,7 @@ var SignalClient = class extends Resource {
|
|
|
1060
1113
|
if (this._state === SignalState.CONNECTED && !this._lastReconciliationFailed) {
|
|
1061
1114
|
log4.warn("SignalClient error:", err, {
|
|
1062
1115
|
F: __dxlog_file4,
|
|
1063
|
-
L:
|
|
1116
|
+
L: 149,
|
|
1064
1117
|
S: this,
|
|
1065
1118
|
C: (f, a) => f(...a)
|
|
1066
1119
|
});
|
|
@@ -1070,7 +1123,7 @@ var SignalClient = class extends Resource {
|
|
|
1070
1123
|
async _close() {
|
|
1071
1124
|
log4("closing...", void 0, {
|
|
1072
1125
|
F: __dxlog_file4,
|
|
1073
|
-
L:
|
|
1126
|
+
L: 155,
|
|
1074
1127
|
S: this,
|
|
1075
1128
|
C: (f, a) => f(...a)
|
|
1076
1129
|
});
|
|
@@ -1083,7 +1136,7 @@ var SignalClient = class extends Resource {
|
|
|
1083
1136
|
await this._safeResetClient();
|
|
1084
1137
|
log4("closed", void 0, {
|
|
1085
1138
|
F: __dxlog_file4,
|
|
1086
|
-
L:
|
|
1139
|
+
L: 163,
|
|
1087
1140
|
S: this,
|
|
1088
1141
|
C: (f, a) => f(...a)
|
|
1089
1142
|
});
|
|
@@ -1103,7 +1156,7 @@ var SignalClient = class extends Resource {
|
|
|
1103
1156
|
peerId: args.peer.peerKey
|
|
1104
1157
|
}, {
|
|
1105
1158
|
F: __dxlog_file4,
|
|
1106
|
-
L:
|
|
1159
|
+
L: 177,
|
|
1107
1160
|
S: this,
|
|
1108
1161
|
C: (f, a) => f(...a)
|
|
1109
1162
|
});
|
|
@@ -1120,7 +1173,7 @@ var SignalClient = class extends Resource {
|
|
|
1120
1173
|
peerId: args.peer.peerKey
|
|
1121
1174
|
}, {
|
|
1122
1175
|
F: __dxlog_file4,
|
|
1123
|
-
L:
|
|
1176
|
+
L: 184,
|
|
1124
1177
|
S: this,
|
|
1125
1178
|
C: (f, a) => f(...a)
|
|
1126
1179
|
});
|
|
@@ -1138,7 +1191,7 @@ var SignalClient = class extends Resource {
|
|
|
1138
1191
|
await this._clientReady.wait();
|
|
1139
1192
|
invariant3(this._state === SignalState.CONNECTED, "Not connected to Signal Server", {
|
|
1140
1193
|
F: __dxlog_file4,
|
|
1141
|
-
L:
|
|
1194
|
+
L: 196,
|
|
1142
1195
|
S: this,
|
|
1143
1196
|
A: [
|
|
1144
1197
|
"this._state === SignalState.CONNECTED",
|
|
@@ -1147,7 +1200,7 @@ var SignalClient = class extends Resource {
|
|
|
1147
1200
|
});
|
|
1148
1201
|
invariant3(msg.author.peerKey, "Author key required", {
|
|
1149
1202
|
F: __dxlog_file4,
|
|
1150
|
-
L:
|
|
1203
|
+
L: 197,
|
|
1151
1204
|
S: this,
|
|
1152
1205
|
A: [
|
|
1153
1206
|
"msg.author.peerKey",
|
|
@@ -1156,7 +1209,7 @@ var SignalClient = class extends Resource {
|
|
|
1156
1209
|
});
|
|
1157
1210
|
invariant3(msg.recipient.peerKey, "Recipient key required", {
|
|
1158
1211
|
F: __dxlog_file4,
|
|
1159
|
-
L:
|
|
1212
|
+
L: 198,
|
|
1160
1213
|
S: this,
|
|
1161
1214
|
A: [
|
|
1162
1215
|
"msg.recipient.peerKey",
|
|
@@ -1173,7 +1226,7 @@ var SignalClient = class extends Resource {
|
|
|
1173
1226
|
async subscribeMessages(peer) {
|
|
1174
1227
|
invariant3(peer.peerKey, "Peer key required", {
|
|
1175
1228
|
F: __dxlog_file4,
|
|
1176
|
-
L:
|
|
1229
|
+
L: 208,
|
|
1177
1230
|
S: this,
|
|
1178
1231
|
A: [
|
|
1179
1232
|
"peer.peerKey",
|
|
@@ -1184,7 +1237,7 @@ var SignalClient = class extends Resource {
|
|
|
1184
1237
|
peer
|
|
1185
1238
|
}, {
|
|
1186
1239
|
F: __dxlog_file4,
|
|
1187
|
-
L:
|
|
1240
|
+
L: 209,
|
|
1188
1241
|
S: this,
|
|
1189
1242
|
C: (f, a) => f(...a)
|
|
1190
1243
|
});
|
|
@@ -1194,7 +1247,7 @@ var SignalClient = class extends Resource {
|
|
|
1194
1247
|
async unsubscribeMessages(peer) {
|
|
1195
1248
|
invariant3(peer.peerKey, "Peer key required", {
|
|
1196
1249
|
F: __dxlog_file4,
|
|
1197
|
-
L:
|
|
1250
|
+
L: 215,
|
|
1198
1251
|
S: this,
|
|
1199
1252
|
A: [
|
|
1200
1253
|
"peer.peerKey",
|
|
@@ -1205,7 +1258,7 @@ var SignalClient = class extends Resource {
|
|
|
1205
1258
|
peer
|
|
1206
1259
|
}, {
|
|
1207
1260
|
F: __dxlog_file4,
|
|
1208
|
-
L:
|
|
1261
|
+
L: 216,
|
|
1209
1262
|
S: this,
|
|
1210
1263
|
C: (f, a) => f(...a)
|
|
1211
1264
|
});
|
|
@@ -1220,13 +1273,13 @@ var SignalClient = class extends Resource {
|
|
|
1220
1273
|
state: this._state
|
|
1221
1274
|
}, {
|
|
1222
1275
|
F: __dxlog_file4,
|
|
1223
|
-
L:
|
|
1276
|
+
L: 225,
|
|
1224
1277
|
S: this,
|
|
1225
1278
|
C: (f, a) => f(...a)
|
|
1226
1279
|
});
|
|
1227
1280
|
invariant3(!this._client, "Client already created", {
|
|
1228
1281
|
F: __dxlog_file4,
|
|
1229
|
-
L:
|
|
1282
|
+
L: 226,
|
|
1230
1283
|
S: this,
|
|
1231
1284
|
A: [
|
|
1232
1285
|
"!this._client",
|
|
@@ -1238,7 +1291,7 @@ var SignalClient = class extends Resource {
|
|
|
1238
1291
|
this._connectionCtx.onDispose(async () => {
|
|
1239
1292
|
log4("connection context disposed", void 0, {
|
|
1240
1293
|
F: __dxlog_file4,
|
|
1241
|
-
L:
|
|
1294
|
+
L: 233,
|
|
1242
1295
|
S: this,
|
|
1243
1296
|
C: (f, a) => f(...a)
|
|
1244
1297
|
});
|
|
@@ -1253,7 +1306,7 @@ var SignalClient = class extends Resource {
|
|
|
1253
1306
|
if (client === this._client) {
|
|
1254
1307
|
log4("socket connected", void 0, {
|
|
1255
1308
|
F: __dxlog_file4,
|
|
1256
|
-
L:
|
|
1309
|
+
L: 244,
|
|
1257
1310
|
S: this,
|
|
1258
1311
|
C: (f, a) => f(...a)
|
|
1259
1312
|
});
|
|
@@ -1268,7 +1321,7 @@ var SignalClient = class extends Resource {
|
|
|
1268
1321
|
state: this._state
|
|
1269
1322
|
}, {
|
|
1270
1323
|
F: __dxlog_file4,
|
|
1271
|
-
L:
|
|
1324
|
+
L: 253,
|
|
1272
1325
|
S: this,
|
|
1273
1326
|
C: (f, a) => f(...a)
|
|
1274
1327
|
});
|
|
@@ -1285,7 +1338,7 @@ var SignalClient = class extends Resource {
|
|
|
1285
1338
|
state: this._state
|
|
1286
1339
|
}, {
|
|
1287
1340
|
F: __dxlog_file4,
|
|
1288
|
-
L:
|
|
1341
|
+
L: 265,
|
|
1289
1342
|
S: this,
|
|
1290
1343
|
C: (f, a) => f(...a)
|
|
1291
1344
|
});
|
|
@@ -1310,14 +1363,14 @@ var SignalClient = class extends Resource {
|
|
|
1310
1363
|
state: this._state
|
|
1311
1364
|
}, {
|
|
1312
1365
|
F: __dxlog_file4,
|
|
1313
|
-
L:
|
|
1366
|
+
L: 280,
|
|
1314
1367
|
S: this,
|
|
1315
1368
|
C: (f, a) => f(...a)
|
|
1316
1369
|
});
|
|
1317
1370
|
if (this._state === SignalState.RECONNECTING) {
|
|
1318
1371
|
log4.info("Signal api already reconnecting.", void 0, {
|
|
1319
1372
|
F: __dxlog_file4,
|
|
1320
|
-
L:
|
|
1373
|
+
L: 283,
|
|
1321
1374
|
S: this,
|
|
1322
1375
|
C: (f, a) => f(...a)
|
|
1323
1376
|
});
|
|
@@ -1359,7 +1412,7 @@ var SignalClient = class extends Resource {
|
|
|
1359
1412
|
status: this.getStatus()
|
|
1360
1413
|
}, {
|
|
1361
1414
|
F: __dxlog_file4,
|
|
1362
|
-
L:
|
|
1415
|
+
L: 324,
|
|
1363
1416
|
S: this,
|
|
1364
1417
|
C: (f, a) => f(...a)
|
|
1365
1418
|
});
|
|
@@ -1381,10 +1434,10 @@ var SignalClient = class extends Resource {
|
|
|
1381
1434
|
}
|
|
1382
1435
|
};
|
|
1383
1436
|
|
|
1384
|
-
//
|
|
1437
|
+
// src/signal-methods.ts
|
|
1385
1438
|
var PeerInfoHash = ({ peerKey }) => peerKey;
|
|
1386
1439
|
|
|
1387
|
-
//
|
|
1440
|
+
// src/signal-manager/memory-signal-manager.ts
|
|
1388
1441
|
import { Event as Event3, Trigger as Trigger3 } from "@dxos/async";
|
|
1389
1442
|
import { Context as Context3 } from "@dxos/context";
|
|
1390
1443
|
import { invariant as invariant4 } from "@dxos/invariant";
|
|
@@ -1392,18 +1445,25 @@ import { PublicKey as PublicKey5 } from "@dxos/keys";
|
|
|
1392
1445
|
import { log as log5 } from "@dxos/log";
|
|
1393
1446
|
import { schema as schema3 } from "@dxos/protocols/proto";
|
|
1394
1447
|
import { ComplexMap as ComplexMap3, ComplexSet as ComplexSet3 } from "@dxos/util";
|
|
1395
|
-
var __dxlog_file5 = "/
|
|
1448
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/memory-signal-manager.ts";
|
|
1396
1449
|
var MemorySignalManagerContext = class {
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
this.connections = new ComplexMap3(PeerInfoHash);
|
|
1404
|
-
}
|
|
1450
|
+
// Swarm messages.
|
|
1451
|
+
swarmEvent = new Event3();
|
|
1452
|
+
// Mapping from topic to set of peers.
|
|
1453
|
+
swarms = new ComplexMap3(PublicKey5.hash);
|
|
1454
|
+
// Map of connections for each peer for signaling.
|
|
1455
|
+
connections = new ComplexMap3(PeerInfoHash);
|
|
1405
1456
|
};
|
|
1406
1457
|
var MemorySignalManager = class {
|
|
1458
|
+
_context;
|
|
1459
|
+
statusChanged;
|
|
1460
|
+
swarmEvent;
|
|
1461
|
+
onMessage;
|
|
1462
|
+
/** Will be used to emit SwarmEvents on .open() and .close() */
|
|
1463
|
+
_joinedSwarms;
|
|
1464
|
+
_ctx;
|
|
1465
|
+
// TODO(dmaretskyi): Replace with callback.
|
|
1466
|
+
_freezeTrigger;
|
|
1407
1467
|
constructor(_context) {
|
|
1408
1468
|
this._context = _context;
|
|
1409
1469
|
this.statusChanged = new Event3();
|
|
@@ -1413,7 +1473,7 @@ var MemorySignalManager = class {
|
|
|
1413
1473
|
this._freezeTrigger = new Trigger3().wake();
|
|
1414
1474
|
this._ctx = new Context3(void 0, {
|
|
1415
1475
|
F: __dxlog_file5,
|
|
1416
|
-
L:
|
|
1476
|
+
L: 54
|
|
1417
1477
|
});
|
|
1418
1478
|
this._ctx.onDispose(this._context.swarmEvent.on((data) => this.swarmEvent.emit(data)));
|
|
1419
1479
|
}
|
|
@@ -1423,7 +1483,7 @@ var MemorySignalManager = class {
|
|
|
1423
1483
|
}
|
|
1424
1484
|
this._ctx = new Context3(void 0, {
|
|
1425
1485
|
F: __dxlog_file5,
|
|
1426
|
-
L:
|
|
1486
|
+
L: 63
|
|
1427
1487
|
});
|
|
1428
1488
|
this._ctx.onDispose(this._context.swarmEvent.on((data) => this.swarmEvent.emit(data)));
|
|
1429
1489
|
await Promise.all([
|
|
@@ -1449,7 +1509,7 @@ var MemorySignalManager = class {
|
|
|
1449
1509
|
async join({ topic, peer }) {
|
|
1450
1510
|
invariant4(!this._ctx.disposed, "Closed", {
|
|
1451
1511
|
F: __dxlog_file5,
|
|
1452
|
-
L:
|
|
1512
|
+
L: 92,
|
|
1453
1513
|
S: this,
|
|
1454
1514
|
A: [
|
|
1455
1515
|
"!this._ctx.disposed",
|
|
@@ -1486,7 +1546,7 @@ var MemorySignalManager = class {
|
|
|
1486
1546
|
async leave({ topic, peer }) {
|
|
1487
1547
|
invariant4(!this._ctx.disposed, "Closed", {
|
|
1488
1548
|
F: __dxlog_file5,
|
|
1489
|
-
L:
|
|
1549
|
+
L: 124,
|
|
1490
1550
|
S: this,
|
|
1491
1551
|
A: [
|
|
1492
1552
|
"!this._ctx.disposed",
|
|
@@ -1519,13 +1579,13 @@ var MemorySignalManager = class {
|
|
|
1519
1579
|
...dec(payload)
|
|
1520
1580
|
}, {
|
|
1521
1581
|
F: __dxlog_file5,
|
|
1522
|
-
L:
|
|
1582
|
+
L: 157,
|
|
1523
1583
|
S: this,
|
|
1524
1584
|
C: (f, a) => f(...a)
|
|
1525
1585
|
});
|
|
1526
1586
|
invariant4(recipient, void 0, {
|
|
1527
1587
|
F: __dxlog_file5,
|
|
1528
|
-
L:
|
|
1588
|
+
L: 159,
|
|
1529
1589
|
S: this,
|
|
1530
1590
|
A: [
|
|
1531
1591
|
"recipient",
|
|
@@ -1534,7 +1594,7 @@ var MemorySignalManager = class {
|
|
|
1534
1594
|
});
|
|
1535
1595
|
invariant4(!this._ctx.disposed, "Closed", {
|
|
1536
1596
|
F: __dxlog_file5,
|
|
1537
|
-
L:
|
|
1597
|
+
L: 160,
|
|
1538
1598
|
S: this,
|
|
1539
1599
|
A: [
|
|
1540
1600
|
"!this._ctx.disposed",
|
|
@@ -1549,7 +1609,7 @@ var MemorySignalManager = class {
|
|
|
1549
1609
|
recipient
|
|
1550
1610
|
}, {
|
|
1551
1611
|
F: __dxlog_file5,
|
|
1552
|
-
L:
|
|
1612
|
+
L: 166,
|
|
1553
1613
|
S: this,
|
|
1554
1614
|
C: (f, a) => f(...a)
|
|
1555
1615
|
});
|
|
@@ -1561,7 +1621,7 @@ var MemorySignalManager = class {
|
|
|
1561
1621
|
recipient
|
|
1562
1622
|
}, {
|
|
1563
1623
|
F: __dxlog_file5,
|
|
1564
|
-
L:
|
|
1624
|
+
L: 171,
|
|
1565
1625
|
S: this,
|
|
1566
1626
|
C: (f, a) => f(...a)
|
|
1567
1627
|
});
|
|
@@ -1574,7 +1634,7 @@ var MemorySignalManager = class {
|
|
|
1574
1634
|
recipient
|
|
1575
1635
|
}, {
|
|
1576
1636
|
F: __dxlog_file5,
|
|
1577
|
-
L:
|
|
1637
|
+
L: 179,
|
|
1578
1638
|
S: this,
|
|
1579
1639
|
C: (f, a) => f(...a)
|
|
1580
1640
|
});
|
|
@@ -1586,7 +1646,7 @@ var MemorySignalManager = class {
|
|
|
1586
1646
|
...dec(payload)
|
|
1587
1647
|
}, {
|
|
1588
1648
|
F: __dxlog_file5,
|
|
1589
|
-
L:
|
|
1649
|
+
L: 183,
|
|
1590
1650
|
S: this,
|
|
1591
1651
|
C: (f, a) => f(...a)
|
|
1592
1652
|
});
|
|
@@ -1600,7 +1660,7 @@ var MemorySignalManager = class {
|
|
|
1600
1660
|
err
|
|
1601
1661
|
}, {
|
|
1602
1662
|
F: __dxlog_file5,
|
|
1603
|
-
L:
|
|
1663
|
+
L: 188,
|
|
1604
1664
|
S: this,
|
|
1605
1665
|
C: (f, a) => f(...a)
|
|
1606
1666
|
});
|
|
@@ -1611,7 +1671,7 @@ var MemorySignalManager = class {
|
|
|
1611
1671
|
peerInfo
|
|
1612
1672
|
}, {
|
|
1613
1673
|
F: __dxlog_file5,
|
|
1614
|
-
L:
|
|
1674
|
+
L: 193,
|
|
1615
1675
|
S: this,
|
|
1616
1676
|
C: (f, a) => f(...a)
|
|
1617
1677
|
});
|
|
@@ -1622,7 +1682,7 @@ var MemorySignalManager = class {
|
|
|
1622
1682
|
peerInfo
|
|
1623
1683
|
}, {
|
|
1624
1684
|
F: __dxlog_file5,
|
|
1625
|
-
L:
|
|
1685
|
+
L: 198,
|
|
1626
1686
|
S: this,
|
|
1627
1687
|
C: (f, a) => f(...a)
|
|
1628
1688
|
});
|
|
@@ -1649,7 +1709,7 @@ var dec = (payload) => {
|
|
|
1649
1709
|
return {};
|
|
1650
1710
|
};
|
|
1651
1711
|
|
|
1652
|
-
//
|
|
1712
|
+
// src/signal-manager/websocket-signal-manager.ts
|
|
1653
1713
|
import { Event as Event4, sleep as sleep2, synchronized } from "@dxos/async";
|
|
1654
1714
|
import { LifecycleState, Resource as Resource2 } from "@dxos/context";
|
|
1655
1715
|
import { invariant as invariant5 } from "@dxos/invariant";
|
|
@@ -1658,7 +1718,7 @@ import { log as log6 } from "@dxos/log";
|
|
|
1658
1718
|
import { RateLimitExceededError, TimeoutError as TimeoutError3, trace as trace8 } from "@dxos/protocols";
|
|
1659
1719
|
import { BitField, safeAwaitAll as safeAwaitAll2 } from "@dxos/util";
|
|
1660
1720
|
|
|
1661
|
-
//
|
|
1721
|
+
// src/signal-manager/websocket-signal-manager-monitor.ts
|
|
1662
1722
|
import { trace as trace7 } from "@dxos/tracing";
|
|
1663
1723
|
var WebsocketSignalManagerMonitor = class {
|
|
1664
1724
|
recordRateLimitExceeded() {
|
|
@@ -1674,24 +1734,37 @@ var WebsocketSignalManagerMonitor = class {
|
|
|
1674
1734
|
}
|
|
1675
1735
|
};
|
|
1676
1736
|
|
|
1677
|
-
//
|
|
1737
|
+
// src/signal-manager/websocket-signal-manager.ts
|
|
1678
1738
|
function _ts_decorate(decorators, target, key, desc) {
|
|
1679
1739
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1680
1740
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1681
1741
|
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
1742
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1683
1743
|
}
|
|
1684
|
-
var __dxlog_file6 = "/
|
|
1744
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/websocket-signal-manager.ts";
|
|
1685
1745
|
var MAX_SERVER_FAILURES = 5;
|
|
1686
1746
|
var WSS_SIGNAL_SERVER_REBOOT_DELAY = 3e3;
|
|
1687
1747
|
var WebsocketSignalManager = class extends Resource2 {
|
|
1748
|
+
_hosts;
|
|
1749
|
+
_getMetadata;
|
|
1750
|
+
_servers;
|
|
1751
|
+
_monitor;
|
|
1752
|
+
/**
|
|
1753
|
+
* Used to avoid logging failed server restarts more than once until the server actually recovers.
|
|
1754
|
+
*/
|
|
1755
|
+
_failedServersBitfield;
|
|
1756
|
+
failureCount;
|
|
1757
|
+
statusChanged;
|
|
1758
|
+
swarmEvent;
|
|
1759
|
+
onMessage;
|
|
1760
|
+
_instanceId;
|
|
1688
1761
|
constructor(_hosts, _getMetadata) {
|
|
1689
1762
|
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
1763
|
log6("Created WebsocketSignalManager", {
|
|
1691
1764
|
hosts: this._hosts
|
|
1692
1765
|
}, {
|
|
1693
1766
|
F: __dxlog_file6,
|
|
1694
|
-
L:
|
|
1767
|
+
L: 59,
|
|
1695
1768
|
S: this,
|
|
1696
1769
|
C: (f, a) => f(...a)
|
|
1697
1770
|
});
|
|
@@ -1713,7 +1786,7 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1713
1786
|
hosts: this._hosts
|
|
1714
1787
|
}, {
|
|
1715
1788
|
F: __dxlog_file6,
|
|
1716
|
-
L:
|
|
1789
|
+
L: 79,
|
|
1717
1790
|
S: this,
|
|
1718
1791
|
C: (f, a) => f(...a)
|
|
1719
1792
|
});
|
|
@@ -1721,7 +1794,7 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1721
1794
|
id: this._instanceId
|
|
1722
1795
|
}), {
|
|
1723
1796
|
F: __dxlog_file6,
|
|
1724
|
-
L:
|
|
1797
|
+
L: 80,
|
|
1725
1798
|
S: this,
|
|
1726
1799
|
C: (f, a) => f(...a)
|
|
1727
1800
|
});
|
|
@@ -1730,7 +1803,7 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1730
1803
|
id: this._instanceId
|
|
1731
1804
|
}), {
|
|
1732
1805
|
F: __dxlog_file6,
|
|
1733
|
-
L:
|
|
1806
|
+
L: 84,
|
|
1734
1807
|
S: this,
|
|
1735
1808
|
C: (f, a) => f(...a)
|
|
1736
1809
|
});
|
|
@@ -1743,13 +1816,13 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1743
1816
|
serverName
|
|
1744
1817
|
}, {
|
|
1745
1818
|
F: __dxlog_file6,
|
|
1746
|
-
L:
|
|
1819
|
+
L: 92,
|
|
1747
1820
|
S: this,
|
|
1748
1821
|
C: (f, a) => f(...a)
|
|
1749
1822
|
});
|
|
1750
1823
|
invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
|
|
1751
1824
|
F: __dxlog_file6,
|
|
1752
|
-
L:
|
|
1825
|
+
L: 93,
|
|
1753
1826
|
S: this,
|
|
1754
1827
|
A: [
|
|
1755
1828
|
"this._lifecycleState === LifecycleState.OPEN",
|
|
@@ -1759,7 +1832,7 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1759
1832
|
const server = this._servers.get(serverName);
|
|
1760
1833
|
invariant5(server, "server not found", {
|
|
1761
1834
|
F: __dxlog_file6,
|
|
1762
|
-
L:
|
|
1835
|
+
L: 96,
|
|
1763
1836
|
S: this,
|
|
1764
1837
|
A: [
|
|
1765
1838
|
"server",
|
|
@@ -1779,13 +1852,13 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1779
1852
|
peer
|
|
1780
1853
|
}, {
|
|
1781
1854
|
F: __dxlog_file6,
|
|
1782
|
-
L:
|
|
1855
|
+
L: 109,
|
|
1783
1856
|
S: this,
|
|
1784
1857
|
C: (f, a) => f(...a)
|
|
1785
1858
|
});
|
|
1786
1859
|
invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
|
|
1787
1860
|
F: __dxlog_file6,
|
|
1788
|
-
L:
|
|
1861
|
+
L: 110,
|
|
1789
1862
|
S: this,
|
|
1790
1863
|
A: [
|
|
1791
1864
|
"this._lifecycleState === LifecycleState.OPEN",
|
|
@@ -1803,13 +1876,13 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1803
1876
|
peer
|
|
1804
1877
|
}, {
|
|
1805
1878
|
F: __dxlog_file6,
|
|
1806
|
-
L:
|
|
1879
|
+
L: 116,
|
|
1807
1880
|
S: this,
|
|
1808
1881
|
C: (f, a) => f(...a)
|
|
1809
1882
|
});
|
|
1810
1883
|
invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
|
|
1811
1884
|
F: __dxlog_file6,
|
|
1812
|
-
L:
|
|
1885
|
+
L: 117,
|
|
1813
1886
|
S: this,
|
|
1814
1887
|
A: [
|
|
1815
1888
|
"this._lifecycleState === LifecycleState.OPEN",
|
|
@@ -1829,13 +1902,13 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1829
1902
|
recipient
|
|
1830
1903
|
}, {
|
|
1831
1904
|
F: __dxlog_file6,
|
|
1832
|
-
L:
|
|
1905
|
+
L: 126,
|
|
1833
1906
|
S: this,
|
|
1834
1907
|
C: (f, a) => f(...a)
|
|
1835
1908
|
});
|
|
1836
1909
|
invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
|
|
1837
1910
|
F: __dxlog_file6,
|
|
1838
|
-
L:
|
|
1911
|
+
L: 127,
|
|
1839
1912
|
S: this,
|
|
1840
1913
|
A: [
|
|
1841
1914
|
"this._lifecycleState === LifecycleState.OPEN",
|
|
@@ -1853,7 +1926,7 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1853
1926
|
err
|
|
1854
1927
|
}, {
|
|
1855
1928
|
F: __dxlog_file6,
|
|
1856
|
-
L:
|
|
1929
|
+
L: 135,
|
|
1857
1930
|
S: this,
|
|
1858
1931
|
C: (f, a) => f(...a)
|
|
1859
1932
|
});
|
|
@@ -1863,7 +1936,7 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1863
1936
|
err
|
|
1864
1937
|
}, {
|
|
1865
1938
|
F: __dxlog_file6,
|
|
1866
|
-
L:
|
|
1939
|
+
L: 138,
|
|
1867
1940
|
S: this,
|
|
1868
1941
|
C: (f, a) => f(...a)
|
|
1869
1942
|
});
|
|
@@ -1873,7 +1946,7 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1873
1946
|
err
|
|
1874
1947
|
}, {
|
|
1875
1948
|
F: __dxlog_file6,
|
|
1876
|
-
L:
|
|
1949
|
+
L: 141,
|
|
1877
1950
|
S: this,
|
|
1878
1951
|
C: (f, a) => f(...a)
|
|
1879
1952
|
});
|
|
@@ -1896,7 +1969,7 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1896
1969
|
failureCount
|
|
1897
1970
|
}, {
|
|
1898
1971
|
F: __dxlog_file6,
|
|
1899
|
-
L:
|
|
1972
|
+
L: 155,
|
|
1900
1973
|
S: this,
|
|
1901
1974
|
C: (f, a) => f(...a)
|
|
1902
1975
|
});
|
|
@@ -1914,7 +1987,7 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1914
1987
|
serverName
|
|
1915
1988
|
}, {
|
|
1916
1989
|
F: __dxlog_file6,
|
|
1917
|
-
L:
|
|
1990
|
+
L: 168,
|
|
1918
1991
|
S: this,
|
|
1919
1992
|
C: (f, a) => f(...a)
|
|
1920
1993
|
});
|
|
@@ -1927,13 +2000,13 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1927
2000
|
peer
|
|
1928
2001
|
}, {
|
|
1929
2002
|
F: __dxlog_file6,
|
|
1930
|
-
L:
|
|
2003
|
+
L: 175,
|
|
1931
2004
|
S: this,
|
|
1932
2005
|
C: (f, a) => f(...a)
|
|
1933
2006
|
});
|
|
1934
2007
|
invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
|
|
1935
2008
|
F: __dxlog_file6,
|
|
1936
|
-
L:
|
|
2009
|
+
L: 176,
|
|
1937
2010
|
S: this,
|
|
1938
2011
|
A: [
|
|
1939
2012
|
"this._lifecycleState === LifecycleState.OPEN",
|
|
@@ -1947,13 +2020,13 @@ var WebsocketSignalManager = class extends Resource2 {
|
|
|
1947
2020
|
peer
|
|
1948
2021
|
}, {
|
|
1949
2022
|
F: __dxlog_file6,
|
|
1950
|
-
L:
|
|
2023
|
+
L: 182,
|
|
1951
2024
|
S: this,
|
|
1952
2025
|
C: (f, a) => f(...a)
|
|
1953
2026
|
});
|
|
1954
2027
|
invariant5(this._lifecycleState === LifecycleState.OPEN, void 0, {
|
|
1955
2028
|
F: __dxlog_file6,
|
|
1956
|
-
L:
|
|
2029
|
+
L: 183,
|
|
1957
2030
|
S: this,
|
|
1958
2031
|
A: [
|
|
1959
2032
|
"this._lifecycleState === LifecycleState.OPEN",
|
|
@@ -1976,32 +2049,33 @@ _ts_decorate([
|
|
|
1976
2049
|
synchronized
|
|
1977
2050
|
], WebsocketSignalManager.prototype, "checkServerFailure", null);
|
|
1978
2051
|
|
|
1979
|
-
//
|
|
2052
|
+
// src/signal-manager/edge-signal-manager.ts
|
|
1980
2053
|
import { Event as Event5, scheduleMicroTask } from "@dxos/async";
|
|
1981
|
-
import {
|
|
2054
|
+
import { Resource as Resource3, cancelWithContext as cancelWithContext3 } from "@dxos/context";
|
|
1982
2055
|
import { protocol } from "@dxos/edge-client";
|
|
1983
2056
|
import { invariant as invariant6 } from "@dxos/invariant";
|
|
1984
2057
|
import { PublicKey as PublicKey7 } from "@dxos/keys";
|
|
1985
2058
|
import { log as log7 } from "@dxos/log";
|
|
1986
2059
|
import { EdgeService } from "@dxos/protocols";
|
|
1987
2060
|
import { bufWkt } from "@dxos/protocols/buf";
|
|
1988
|
-
import {
|
|
2061
|
+
import { SwarmRequest_Action as SwarmRequestAction, SwarmRequestSchema, SwarmResponseSchema } from "@dxos/protocols/buf/dxos/edge/messenger_pb";
|
|
1989
2062
|
import { ComplexMap as ComplexMap4, ComplexSet as ComplexSet4 } from "@dxos/util";
|
|
1990
|
-
var __dxlog_file7 = "/
|
|
2063
|
+
var __dxlog_file7 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/edge-signal-manager.ts";
|
|
1991
2064
|
var EdgeSignalManager = class extends Resource3 {
|
|
2065
|
+
/**
|
|
2066
|
+
* @deprecated
|
|
2067
|
+
*/
|
|
2068
|
+
swarmEvent = new Event5();
|
|
2069
|
+
swarmState = new Event5();
|
|
2070
|
+
onMessage = new Event5();
|
|
2071
|
+
/**
|
|
2072
|
+
* Swarm key -> { peer: <own state payload>, joinedPeers: <state of swarm> }.
|
|
2073
|
+
*/
|
|
2074
|
+
// TODO(mykola): This class should not contain swarm state joinedPeers. Temporary before network-manager API changes to accept list of peers.
|
|
2075
|
+
_swarmPeers = new ComplexMap4(PublicKey7.hash);
|
|
2076
|
+
_edgeConnection;
|
|
1992
2077
|
constructor({ edgeConnection }) {
|
|
1993
2078
|
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
2079
|
this._edgeConnection = edgeConnection;
|
|
2006
2080
|
}
|
|
2007
2081
|
async _open() {
|
|
@@ -2023,7 +2097,7 @@ var EdgeSignalManager = class extends Resource3 {
|
|
|
2023
2097
|
}
|
|
2024
2098
|
}, {
|
|
2025
2099
|
F: __dxlog_file7,
|
|
2026
|
-
L:
|
|
2100
|
+
L: 66,
|
|
2027
2101
|
S: this,
|
|
2028
2102
|
C: (f, a) => f(...a)
|
|
2029
2103
|
});
|
|
@@ -2085,7 +2159,7 @@ var EdgeSignalManager = class extends Resource3 {
|
|
|
2085
2159
|
}
|
|
2086
2160
|
}, {
|
|
2087
2161
|
F: __dxlog_file7,
|
|
2088
|
-
L:
|
|
2162
|
+
L: 122,
|
|
2089
2163
|
S: this,
|
|
2090
2164
|
C: (f, a) => f(...a)
|
|
2091
2165
|
});
|
|
@@ -2120,7 +2194,7 @@ var EdgeSignalManager = class extends Resource3 {
|
|
|
2120
2194
|
_processSwarmResponse(message) {
|
|
2121
2195
|
invariant6(protocol.getPayloadType(message) === SwarmResponseSchema.typeName, "Wrong payload type", {
|
|
2122
2196
|
F: __dxlog_file7,
|
|
2123
|
-
L:
|
|
2197
|
+
L: 159,
|
|
2124
2198
|
S: this,
|
|
2125
2199
|
A: [
|
|
2126
2200
|
"protocol.getPayloadType(message) === SwarmResponseSchema.typeName",
|
|
@@ -2164,7 +2238,7 @@ var EdgeSignalManager = class extends Resource3 {
|
|
|
2164
2238
|
_processMessage(message) {
|
|
2165
2239
|
invariant6(protocol.getPayloadType(message) === bufWkt.AnySchema.typeName, "Wrong payload type", {
|
|
2166
2240
|
F: __dxlog_file7,
|
|
2167
|
-
L:
|
|
2241
|
+
L: 197,
|
|
2168
2242
|
S: this,
|
|
2169
2243
|
A: [
|
|
2170
2244
|
"protocol.getPayloadType(message) === bufWkt.AnySchema.typeName",
|
|
@@ -2174,7 +2248,7 @@ var EdgeSignalManager = class extends Resource3 {
|
|
|
2174
2248
|
const payload = protocol.getPayload(message, bufWkt.AnySchema);
|
|
2175
2249
|
invariant6(message.source, "source is missing", {
|
|
2176
2250
|
F: __dxlog_file7,
|
|
2177
|
-
L:
|
|
2251
|
+
L: 199,
|
|
2178
2252
|
S: this,
|
|
2179
2253
|
A: [
|
|
2180
2254
|
"message.source",
|
|
@@ -2183,7 +2257,7 @@ var EdgeSignalManager = class extends Resource3 {
|
|
|
2183
2257
|
});
|
|
2184
2258
|
invariant6(message.target, "target is missing", {
|
|
2185
2259
|
F: __dxlog_file7,
|
|
2186
|
-
L:
|
|
2260
|
+
L: 200,
|
|
2187
2261
|
S: this,
|
|
2188
2262
|
A: [
|
|
2189
2263
|
"message.target",
|
|
@@ -2192,7 +2266,7 @@ var EdgeSignalManager = class extends Resource3 {
|
|
|
2192
2266
|
});
|
|
2193
2267
|
invariant6(message.target.length === 1, "target should have exactly one item", {
|
|
2194
2268
|
F: __dxlog_file7,
|
|
2195
|
-
L:
|
|
2269
|
+
L: 201,
|
|
2196
2270
|
S: this,
|
|
2197
2271
|
A: [
|
|
2198
2272
|
"message.target.length === 1",
|
|
@@ -2216,7 +2290,7 @@ var EdgeSignalManager = class extends Resource3 {
|
|
|
2216
2290
|
swarms: Array.from(this._swarmPeers.keys())
|
|
2217
2291
|
}, {
|
|
2218
2292
|
F: __dxlog_file7,
|
|
2219
|
-
L:
|
|
2293
|
+
L: 220,
|
|
2220
2294
|
S: this,
|
|
2221
2295
|
C: (f, a) => f(...a)
|
|
2222
2296
|
});
|
|
@@ -2239,11 +2313,11 @@ var createMessageSource = (topic, peerInfo) => {
|
|
|
2239
2313
|
};
|
|
2240
2314
|
};
|
|
2241
2315
|
|
|
2242
|
-
//
|
|
2316
|
+
// src/signal-manager/utils.ts
|
|
2243
2317
|
import { invariant as invariant7 } from "@dxos/invariant";
|
|
2244
2318
|
import { log as log8 } from "@dxos/log";
|
|
2245
2319
|
import { DeviceKind } from "@dxos/protocols/proto/dxos/client/services";
|
|
2246
|
-
var __dxlog_file8 = "/
|
|
2320
|
+
var __dxlog_file8 = "/__w/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/utils.ts";
|
|
2247
2321
|
var setIdentityTags = ({ identityService, devicesService, setTag }) => {
|
|
2248
2322
|
identityService.queryIdentity().subscribe((idqr) => {
|
|
2249
2323
|
if (!idqr?.identity?.identityKey) {
|
|
@@ -2306,4 +2380,4 @@ export {
|
|
|
2306
2380
|
EdgeSignalManager,
|
|
2307
2381
|
setIdentityTags
|
|
2308
2382
|
};
|
|
2309
|
-
//# sourceMappingURL=chunk-
|
|
2383
|
+
//# sourceMappingURL=chunk-TPBTNKLU.mjs.map
|